diff --git a/Android.mk b/Android.mk
index fb08395..9dc4aef 100644
--- a/Android.mk
+++ b/Android.mk
@@ -75,6 +75,7 @@
 	core/java/android/app/IAppTask.aidl \
 	core/java/android/app/ITaskStackListener.aidl \
 	core/java/android/app/IBackupAgent.aidl \
+	core/java/android/app/IEphemeralResolver.aidl \
 	core/java/android/app/IInstrumentationWatcher.aidl \
 	core/java/android/app/INotificationManager.aidl \
 	core/java/android/app/IProcessObserver.aidl \
@@ -305,7 +306,6 @@
 	core/java/com/android/internal/app/IAppOpsService.aidl \
 	core/java/com/android/internal/app/IAssistScreenshotReceiver.aidl \
 	core/java/com/android/internal/app/IBatteryStats.aidl \
-	core/java/com/android/internal/app/IEphemeralResolver.aidl \
 	core/java/com/android/internal/app/ISoundTriggerService.aidl \
 	core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl \
 	core/java/com/android/internal/app/IVoiceInteractionSessionListener.aidl \
@@ -1199,20 +1199,45 @@
 
 LOCAL_DROIDDOC_OPTIONS:= \
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
-		-devsite \
-		-hdf devsite true \
 		-toroot / \
 		-hdf android.whichdoc online \
+		-devsite \
 		$(sample_groups) \
-		-useUpdatedTemplates \
 		-hdf android.hasSamples true \
-		-yaml _book.yaml \
 		-samplesdir $(samples_dir)
 
 LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
 
 include $(BUILD_DROIDDOC)
 
+# ==== docs for the web (on the devsite app engine server) =======================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
+LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
+LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES)
+LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
+LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
+LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
+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)
+# specify a second html input dir and an output path relative to OUT_DIR)
+LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl /
+
+LOCAL_MODULE := ds-static
+
+LOCAL_DROIDDOC_OPTIONS:= \
+		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+		-hdf android.whichdoc online \
+		-staticonly \
+		-toroot / \
+		-devsite \
+		-ignoreJdLinks
+
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
+
+include $(BUILD_DROIDDOC)
+
 # ==== site updates for docs (on the androiddevdocs app engine server) =======================
 include $(CLEAR_VARS)
 
diff --git a/api/current.txt b/api/current.txt
index e1d1af6..533b577 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -43913,6 +43913,7 @@
     field public static final int TYPE_APPLICATION_SUB_PANEL = 1002; // 0x3ea
     field public static final int TYPE_BASE_APPLICATION = 1; // 0x1
     field public static final int TYPE_CHANGED = 2; // 0x2
+    field public static final int TYPE_DRAWN_APPLICATION = 4; // 0x4
     field public static final int TYPE_INPUT_METHOD = 2011; // 0x7db
     field public static final int TYPE_INPUT_METHOD_DIALOG = 2012; // 0x7dc
     field public static final int TYPE_KEYGUARD_DIALOG = 2009; // 0x7d9
diff --git a/api/system-current.txt b/api/system-current.txt
index 6cd6020..c33fe6e 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4525,6 +4525,15 @@
     field public static final int VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION = 3; // 0x3
   }
 
+  public abstract class EphemeralResolverService extends android.app.Service {
+    ctor public EphemeralResolverService();
+    method public final void attachBaseContext(android.content.Context);
+    method public final android.os.IBinder onBind(android.content.Intent);
+    method public abstract java.util.List<android.content.pm.EphemeralResolveInfo> onEphemeralResolveInfoList(int[], int);
+    field public static final java.lang.String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO";
+    field public static final java.lang.String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE";
+  }
+
   public class ExpandableListActivity extends android.app.Activity implements android.widget.ExpandableListView.OnChildClickListener android.widget.ExpandableListView.OnGroupCollapseListener android.widget.ExpandableListView.OnGroupExpandListener android.view.View.OnCreateContextMenuListener {
     ctor public ExpandableListActivity();
     method public android.widget.ExpandableListAdapter getExpandableListAdapter();
@@ -40531,6 +40540,7 @@
     method public boolean isSmsCapable();
     method public boolean isTtyModeSupported();
     method public boolean isVideoCallingEnabled();
+    method public boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
     method public boolean isVoiceCapable();
     method public boolean isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle);
     method public boolean isWorldPhone();
@@ -40544,6 +40554,7 @@
     method public boolean setPreferredNetworkTypeToGlobal();
     method public boolean setRadio(boolean);
     method public boolean setRadioPower(boolean);
+    method public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
     method public boolean setVoiceMailNumber(java.lang.String, java.lang.String);
     method public void silenceRinger();
     method public boolean supplyPin(java.lang.String);
@@ -47082,6 +47093,7 @@
     field public static final int TYPE_APPLICATION_SUB_PANEL = 1002; // 0x3ea
     field public static final int TYPE_BASE_APPLICATION = 1; // 0x1
     field public static final int TYPE_CHANGED = 2; // 0x2
+    field public static final int TYPE_DRAWN_APPLICATION = 4; // 0x4
     field public static final int TYPE_INPUT_METHOD = 2011; // 0x7db
     field public static final int TYPE_INPUT_METHOD_DIALOG = 2012; // 0x7dc
     field public static final int TYPE_KEYGUARD_DIALOG = 2009; // 0x7d9
diff --git a/api/test-current.txt b/api/test-current.txt
index ed078d2..3b5c223 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -43994,6 +43994,7 @@
     field public static final int TYPE_APPLICATION_SUB_PANEL = 1002; // 0x3ea
     field public static final int TYPE_BASE_APPLICATION = 1; // 0x1
     field public static final int TYPE_CHANGED = 2; // 0x2
+    field public static final int TYPE_DRAWN_APPLICATION = 4; // 0x4
     field public static final int TYPE_INPUT_METHOD = 2011; // 0x7db
     field public static final int TYPE_INPUT_METHOD_DIALOG = 2012; // 0x7dc
     field public static final int TYPE_KEYGUARD_DIALOG = 2009; // 0x7d9
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index ebcc9ff..a2d34e4 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -75,13 +75,25 @@
 // Java timestamp format. Don't show the clock if the date is before 2000-01-01 00:00:00.
 static const long long ACCURATE_TIME_EPOCH = 946684800000;
 static const char EXIT_PROP_NAME[] = "service.bootanim.exit";
+static const char PLAY_SOUND_PROP_NAME[] = "persist.sys.bootanim.play_sound";
 static const int ANIM_ENTRY_NAME_MAX = 256;
+static const char BOOT_COMPLETED_PROP_NAME[] = "sys.boot_completed";
+static const char BOOTREASON_PROP_NAME[] = "ro.boot.bootreason";
+// bootreasons list in "system/core/bootstat/bootstat.cpp".
+static const std::vector<std::string> PLAY_SOUND_BOOTREASON_BLACKLIST {
+  "kernel_panic",
+  "Panic",
+  "Watchdog",
+};
 
 // ---------------------------------------------------------------------------
 
 BootAnimation::BootAnimation() : Thread(false), mClockEnabled(true), mTimeIsAccurate(false),
         mTimeCheckThread(NULL) {
     mSession = new SurfaceComposerClient();
+
+    // If the system has already booted, the animation is not being used for a boot.
+    mSystemBoot = !property_get_bool(BOOT_COMPLETED_PROP_NAME, 0);
 }
 
 BootAnimation::~BootAnimation() {}
@@ -777,7 +789,7 @@
                 break;
 
             // only play audio file the first time we animate the part
-            if (r == 0 && part.audioData) {
+            if (r == 0 && part.audioData && playSoundsAllowed()) {
                 ALOGD("playing clip for part%d, size=%d", (int) i, part.audioLength);
                 audioplay::playClip(part.audioData, part.audioLength);
             }
@@ -915,6 +927,30 @@
     return animation;
 }
 
+bool BootAnimation::playSoundsAllowed() const {
+    // Only play sounds for system boots, not runtime restarts.
+    if (!mSystemBoot) {
+        return false;
+    }
+
+    // Read the system property to see if we should play the sound.
+    // If it's not present, default to allowed.
+    if (!property_get_bool(PLAY_SOUND_PROP_NAME, 1)) {
+        return false;
+    }
+
+    // Don't play sounds if this is a reboot due to an error.
+    char bootreason[PROPERTY_VALUE_MAX];
+    if (property_get(BOOTREASON_PROP_NAME, bootreason, nullptr) > 0) {
+        for (const auto& str : PLAY_SOUND_BOOTREASON_BLACKLIST) {
+            if (strcasecmp(str.c_str(), bootreason) == 0) {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
 bool BootAnimation::updateIsTimeAccurate() {
     static constexpr long long MAX_TIME_IN_PAST =   60000LL * 60LL * 24LL * 30LL;  // 30 days
     static constexpr long long MAX_TIME_IN_FUTURE = 60000LL * 90LL;  // 90 minutes
diff --git a/cmds/bootanimation/BootAnimation.h b/cmds/bootanimation/BootAnimation.h
index a53216e..fd497a3 100644
--- a/cmds/bootanimation/BootAnimation.h
+++ b/cmds/bootanimation/BootAnimation.h
@@ -120,6 +120,7 @@
     void releaseAnimation(Animation*) const;
     bool parseAnimationDesc(Animation&);
     bool preloadZip(Animation &animation);
+    bool playSoundsAllowed() const;
 
     void checkExit();
 
@@ -137,6 +138,7 @@
     sp<Surface> mFlingerSurface;
     bool        mClockEnabled;
     bool        mTimeIsAccurate;
+    bool        mSystemBoot;
     String8     mZipFileName;
     SortedVector<String8> mLoadedFiles;
     sp<TimeCheckThread> mTimeCheckThread;
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index ae78e218..c4eaccc 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -628,8 +628,8 @@
         if (connection == null) {
             return false;
         }
-        List<MotionEvent> events = MotionEventGenerator.getMotionEventsFromGestureDescription(
-                gesture, 100);
+        List<GestureDescription.GestureStep> steps =
+                MotionEventGenerator.getGestureStepsFromGestureDescription(gesture, 100);
         try {
             synchronized (mLock) {
                 mGestureStatusCallbackSequence++;
@@ -641,8 +641,8 @@
                             callback, handler);
                     mGestureStatusCallbackInfos.put(mGestureStatusCallbackSequence, callbackInfo);
                 }
-                connection.sendMotionEvents(mGestureStatusCallbackSequence,
-                        new ParceledListSlice<>(events));
+                connection.sendGesture(mGestureStatusCallbackSequence,
+                        new ParceledListSlice<>(steps));
             }
         } catch (RemoteException re) {
             throw new RuntimeException(re);
diff --git a/core/java/android/accessibilityservice/GestureDescription.java b/core/java/android/accessibilityservice/GestureDescription.java
index fc9581e..d9b03fa 100644
--- a/core/java/android/accessibilityservice/GestureDescription.java
+++ b/core/java/android/accessibilityservice/GestureDescription.java
@@ -21,6 +21,8 @@
 import android.graphics.Path;
 import android.graphics.PathMeasure;
 import android.graphics.RectF;
+import android.os.Parcel;
+import android.os.Parcelable;
 import android.view.InputDevice;
 import android.view.MotionEvent;
 import android.view.MotionEvent.PointerCoords;
@@ -303,13 +305,37 @@
         }
     }
 
-    private static class TouchPoint {
+    /**
+     * The location of a finger for gesture dispatch
+     *
+     * @hide
+     */
+    public static class TouchPoint implements Parcelable {
+        private static final int FLAG_IS_START_OF_PATH = 0x01;
+        private static final int FLAG_IS_END_OF_PATH = 0x02;
+
         int mPathIndex;
         boolean mIsStartOfPath;
         boolean mIsEndOfPath;
         float mX;
         float mY;
 
+        public TouchPoint() {
+        }
+
+        public TouchPoint(TouchPoint pointToCopy) {
+            copyFrom(pointToCopy);
+        }
+
+        public TouchPoint(Parcel parcel) {
+            mPathIndex = parcel.readInt();
+            int startEnd = parcel.readInt();
+            mIsStartOfPath = (startEnd & FLAG_IS_START_OF_PATH) != 0;
+            mIsEndOfPath = (startEnd & FLAG_IS_END_OF_PATH) != 0;
+            mX = parcel.readFloat();
+            mY = parcel.readFloat();
+        }
+
         void copyFrom(TouchPoint other) {
             mPathIndex = other.mPathIndex;
             mIsStartOfPath = other.mIsStartOfPath;
@@ -317,12 +343,94 @@
             mX = other.mX;
             mY = other.mY;
         }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(mPathIndex);
+            int startEnd = mIsStartOfPath ? FLAG_IS_START_OF_PATH : 0;
+            startEnd |= mIsEndOfPath ? FLAG_IS_END_OF_PATH : 0;
+            dest.writeInt(startEnd);
+            dest.writeFloat(mX);
+            dest.writeFloat(mY);
+        }
+
+        public static final Parcelable.Creator<TouchPoint> CREATOR
+                = new Parcelable.Creator<TouchPoint>() {
+            public TouchPoint createFromParcel(Parcel in) {
+                return new TouchPoint(in);
+            }
+
+            public TouchPoint[] newArray(int size) {
+                return new TouchPoint[size];
+            }
+        };
+    }
+
+    /**
+     * A step along a gesture. Contains all of the touch points at a particular time
+     *
+     * @hide
+     */
+    public static class GestureStep implements Parcelable {
+        public long timeSinceGestureStart;
+        public int numTouchPoints;
+        public TouchPoint[] touchPoints;
+
+        public GestureStep(long timeSinceGestureStart, int numTouchPoints,
+                TouchPoint[] touchPointsToCopy) {
+            this.timeSinceGestureStart = timeSinceGestureStart;
+            this.numTouchPoints = numTouchPoints;
+            this.touchPoints = new TouchPoint[numTouchPoints];
+            for (int i = 0; i < numTouchPoints; i++) {
+                this.touchPoints[i] = new TouchPoint(touchPointsToCopy[i]);
+            }
+        }
+
+        public GestureStep(Parcel parcel) {
+            timeSinceGestureStart = parcel.readLong();
+            Parcelable[] parcelables =
+                    parcel.readParcelableArray(TouchPoint.class.getClassLoader());
+            numTouchPoints = (parcelables == null) ? 0 : parcelables.length;
+            touchPoints = new TouchPoint[numTouchPoints];
+            for (int i = 0; i < numTouchPoints; i++) {
+                touchPoints[i] = (TouchPoint) parcelables[i];
+            }
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeLong(timeSinceGestureStart);
+            dest.writeParcelableArray(touchPoints, flags);
+        }
+
+        public static final Parcelable.Creator<GestureStep> CREATOR
+                = new Parcelable.Creator<GestureStep>() {
+            public GestureStep createFromParcel(Parcel in) {
+                return new GestureStep(in);
+            }
+
+            public GestureStep[] newArray(int size) {
+                return new GestureStep[size];
+            }
+        };
     }
 
     /**
      * Class to convert a GestureDescription to a series of MotionEvents.
+     *
+     * @hide
      */
-    static class MotionEventGenerator {
+    public static class MotionEventGenerator {
         /**
          * Constants used to initialize all MotionEvents
          */
@@ -341,39 +449,53 @@
         private static PointerCoords[] sPointerCoords;
         private static PointerProperties[] sPointerProps;
 
-        static List<MotionEvent> getMotionEventsFromGestureDescription(
+        static List<GestureStep> getGestureStepsFromGestureDescription(
                 GestureDescription description, int sampleTimeMs) {
-            final List<MotionEvent> motionEvents = new ArrayList<>();
+            final List<GestureStep> gestureSteps = new ArrayList<>();
 
             // Point data at each time we generate an event for
             final TouchPoint[] currentTouchPoints =
                     getCurrentTouchPoints(description.getStrokeCount());
-            // Point data sent in last touch event
-            int lastTouchPointSize = 0;
-            final TouchPoint[] lastTouchPoints =
-                    getLastTouchPoints(description.getStrokeCount());
-
+            int currentTouchPointSize = 0;
             /* Loop through each time slice where there are touch points */
             long timeSinceGestureStart = 0;
             long nextKeyPointTime = description.getNextKeyPointAtLeast(timeSinceGestureStart);
             while (nextKeyPointTime >= 0) {
-                timeSinceGestureStart = (lastTouchPointSize == 0) ? nextKeyPointTime
+                timeSinceGestureStart = (currentTouchPointSize == 0) ? nextKeyPointTime
                         : Math.min(nextKeyPointTime, timeSinceGestureStart + sampleTimeMs);
-                int currentTouchPointSize = description.getPointsForTime(timeSinceGestureStart,
+                currentTouchPointSize = description.getPointsForTime(timeSinceGestureStart,
                         currentTouchPoints);
-
-                appendMoveEventIfNeeded(motionEvents, lastTouchPoints, lastTouchPointSize,
-                        currentTouchPoints, currentTouchPointSize, timeSinceGestureStart);
-                lastTouchPointSize = appendUpEvents(motionEvents, lastTouchPoints,
-                        lastTouchPointSize, currentTouchPoints, currentTouchPointSize,
-                        timeSinceGestureStart);
-                lastTouchPointSize = appendDownEvents(motionEvents, lastTouchPoints,
-                        lastTouchPointSize, currentTouchPoints, currentTouchPointSize,
-                        timeSinceGestureStart);
+                gestureSteps.add(new GestureStep(timeSinceGestureStart, currentTouchPointSize,
+                        currentTouchPoints));
 
                 /* Move to next time slice */
                 nextKeyPointTime = description.getNextKeyPointAtLeast(timeSinceGestureStart + 1);
             }
+            return gestureSteps;
+        }
+
+        public static List<MotionEvent> getMotionEventsFromGestureSteps(List<GestureStep> steps) {
+            final List<MotionEvent> motionEvents = new ArrayList<>();
+
+            // Number of points in last touch event
+            int lastTouchPointSize = 0;
+            TouchPoint[] lastTouchPoints;
+
+            for (int i = 0; i < steps.size(); i++) {
+                GestureStep step = steps.get(i);
+                int currentTouchPointSize = step.numTouchPoints;
+                lastTouchPoints = getLastTouchPoints(
+                        Math.max(lastTouchPointSize, currentTouchPointSize));
+
+                appendMoveEventIfNeeded(motionEvents, lastTouchPoints, lastTouchPointSize,
+                        step.touchPoints, currentTouchPointSize, step.timeSinceGestureStart);
+                lastTouchPointSize = appendUpEvents(motionEvents, lastTouchPoints,
+                        lastTouchPointSize, step.touchPoints, currentTouchPointSize,
+                        step.timeSinceGestureStart);
+                lastTouchPointSize = appendDownEvents(motionEvents, lastTouchPoints,
+                        lastTouchPointSize, step.touchPoints, currentTouchPointSize,
+                        step.timeSinceGestureStart);
+            }
             return motionEvents;
         }
 
diff --git a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
index 7a55079..81cddba 100644
--- a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
+++ b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
@@ -88,5 +88,5 @@
 
     void setSoftKeyboardCallbackEnabled(boolean enabled);
 
-    void sendMotionEvents(int sequence, in ParceledListSlice events);
+    void sendGesture(int sequence, in ParceledListSlice gestureSteps);
 }
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index 83e2678..0ba937a 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -171,4 +171,12 @@
      */
     public abstract int startActivitiesAsPackage(String packageName,
             int userId, Intent[] intents, Bundle bOptions);
+
+    /**
+     * Get the procstate for the UID.  The return value will be between
+     * {@link ActivityManager#MIN_PROCESS_STATE} and {@link ActivityManager#MAX_PROCESS_STATE}.
+     * Note if the UID doesn't exist, it'll return {@link ActivityManager#PROCESS_STATE_NONEXISTENT}
+     * (-1).
+     */
+    public abstract int getUidProcessState(int uid);
 }
diff --git a/core/java/android/app/ActivityTransitionState.java b/core/java/android/app/ActivityTransitionState.java
index 2219238..aef1d0c 100644
--- a/core/java/android/app/ActivityTransitionState.java
+++ b/core/java/android/app/ActivityTransitionState.java
@@ -337,11 +337,12 @@
     }
 
     public void startExitOutTransition(Activity activity, Bundle options) {
-        if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)) {
+        mEnterTransitionCoordinator = null;
+        if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
+                mExitTransitionCoordinators == null) {
             return;
         }
         ActivityOptions activityOptions = new ActivityOptions(options);
-        mEnterTransitionCoordinator = null;
         if (activityOptions.getAnimationType() == ActivityOptions.ANIM_SCENE_TRANSITION) {
             int key = activityOptions.getExitCoordinatorKey();
             int index = mExitTransitionCoordinators.indexOfKey(key);
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 8cc1bc4..37faa2e 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -1245,18 +1245,16 @@
             return mContext.mMainThread.getSystemContext().getResources();
         }
         final boolean sameUid = (app.uid == Process.myUid());
-        try {
-            return mContext.mMainThread.getTopLevelResources(
+        final Resources r = mContext.mMainThread.getTopLevelResources(
                     sameUid ? app.sourceDir : app.publicSourceDir,
                     sameUid ? app.splitSourceDirs : app.splitPublicSourceDirs,
                     app.resourceDirs, app.sharedLibraryFiles, Display.DEFAULT_DISPLAY,
                     mContext.mPackageInfo);
-        } catch (Resources.NotFoundException cause) {
-            final NameNotFoundException ex =
-                    new NameNotFoundException("Unable to open " + app.publicSourceDir);
-            ex.initCause(cause);
-            throw ex;
+        if (r != null) {
+            return r;
         }
+        throw new NameNotFoundException("Unable to open " + app.publicSourceDir);
+
     }
 
     @Override
diff --git a/core/java/com/android/internal/app/EphemeralResolveInfo.aidl b/core/java/android/app/EphemeralResolveInfo.aidl
similarity index 94%
rename from core/java/com/android/internal/app/EphemeralResolveInfo.aidl
rename to core/java/android/app/EphemeralResolveInfo.aidl
index 529527b..db71d25 100644
--- a/core/java/com/android/internal/app/EphemeralResolveInfo.aidl
+++ b/core/java/android/app/EphemeralResolveInfo.aidl
@@ -14,6 +14,6 @@
 ** limitations under the License.
 */
 
-package com.android.internal.app;
+package android.app;
 
 parcelable EphemeralResolveInfo;
diff --git a/core/java/com/android/internal/app/EphemeralResolverService.java b/core/java/android/app/EphemeralResolverService.java
similarity index 87%
rename from core/java/com/android/internal/app/EphemeralResolverService.java
rename to core/java/android/app/EphemeralResolverService.java
index 68724a7..ba79108 100644
--- a/core/java/com/android/internal/app/EphemeralResolverService.java
+++ b/core/java/android/app/EphemeralResolverService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.internal.app;
+package android.app;
 
 import android.annotation.SystemApi;
 import android.app.Service;
@@ -37,9 +37,9 @@
  */
 @SystemApi
 public abstract class EphemeralResolverService extends Service {
-    public static final String EXTRA_RESOLVE_INFO = "com.android.internal.app.RESOLVE_INFO";
-    public static final String EXTRA_SEQUENCE = "com.android.internal.app.SEQUENCE";
-    private static final String EXTRA_PREFIX = "com.android.internal.app.PREFIX";
+    public static final String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO";
+    public static final String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE";
+    private static final String EXTRA_PREFIX = "android.app.PREFIX";
     private Handler mHandler;
 
     /**
@@ -50,11 +50,11 @@
      *      be used when comparing against the digest prefixes as all bits might
      *      not be set.
      */
-    protected abstract List<EphemeralResolveInfo> getEphemeralResolveInfoList(
+    public abstract List<EphemeralResolveInfo> onEphemeralResolveInfoList(
             int digestPrefix[], int prefixMask);
 
     @Override
-    protected final void attachBaseContext(Context base) {
+    public final void attachBaseContext(Context base) {
         super.attachBaseContext(base);
         mHandler = new ServiceHandler(base.getMainLooper());
     }
@@ -91,7 +91,7 @@
                     final IRemoteCallback callback = (IRemoteCallback) message.obj;
                     final int[] digestPrefix = message.getData().getIntArray(EXTRA_PREFIX);
                     final List<EphemeralResolveInfo> resolveInfo =
-                            getEphemeralResolveInfoList(digestPrefix, message.arg1);
+                            onEphemeralResolveInfoList(digestPrefix, message.arg1);
                     final Bundle data = new Bundle();
                     data.putInt(EXTRA_SEQUENCE, message.arg2);
                     data.putParcelableList(EXTRA_RESOLVE_INFO, resolveInfo);
diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java
index a637ef4..8afca78 100644
--- a/core/java/android/app/Fragment.java
+++ b/core/java/android/app/Fragment.java
@@ -1483,9 +1483,10 @@
      * at this point.  If you want to do work once the activity itself is
      * created, see {@link #onActivityCreated(Bundle)}.
      *
-     * <p>If your app's <code>targetSdkVersion</code> is 23 or lower, child fragments
-     * being restored from the savedInstanceState are restored after <code>onCreate</code>
-     * returns. When targeting N or above and running on an N or newer platform version
+     * <p>If your app's <code>targetSdkVersion</code> is {@link android.os.Build.VERSION_CODES#M}
+     * or lower, child fragments being restored from the savedInstanceState are restored after
+     * <code>onCreate</code> returns. When targeting {@link android.os.Build.VERSION_CODES#N} or
+     * above and running on an N or newer platform version
      * they are restored by <code>Fragment.onCreate</code>.</p>
      *
      * @param savedInstanceState If the fragment is being re-created from
diff --git a/core/java/android/app/FragmentTransaction.java b/core/java/android/app/FragmentTransaction.java
index e435580..633e85b 100644
--- a/core/java/android/app/FragmentTransaction.java
+++ b/core/java/android/app/FragmentTransaction.java
@@ -17,7 +17,8 @@
  * <div class="special reference">
  * <h3>Developer Guides</h3>
  * <p>For more information about using fragments, read the
- * <a href="{@docRoot}guide/topics/fundamentals/fragments.html">Fragments</a> developer guide.</p>
+ * <a href="{@docRoot}guide/components/fragments.html">Fragments</a> developer
+ * guide.</p>
  * </div>
  */
 public abstract class FragmentTransaction {
@@ -25,17 +26,17 @@
      * Calls {@link #add(int, Fragment, String)} with a 0 containerViewId.
      */
     public abstract FragmentTransaction add(Fragment fragment, String tag);
-    
+
     /**
      * Calls {@link #add(int, Fragment, String)} with a null tag.
      */
     public abstract FragmentTransaction add(@IdRes int containerViewId, Fragment fragment);
-    
+
     /**
      * Add a fragment to the activity state.  This fragment may optionally
      * also have its view (if {@link Fragment#onCreateView Fragment.onCreateView}
      * returns non-null) inserted into a container view of the activity.
-     * 
+     *
      * @param containerViewId Optional identifier of the container this fragment is
      * to be placed in.  If 0, it will not be placed in a container.
      * @param fragment The fragment to be added.  This fragment must not already
@@ -43,64 +44,64 @@
      * @param tag Optional tag name for the fragment, to later retrieve the
      * fragment with {@link FragmentManager#findFragmentByTag(String)
      * FragmentManager.findFragmentByTag(String)}.
-     * 
+     *
      * @return Returns the same FragmentTransaction instance.
      */
     public abstract FragmentTransaction add(@IdRes int containerViewId, Fragment fragment,
             String tag);
-    
+
     /**
      * Calls {@link #replace(int, Fragment, String)} with a null tag.
      */
     public abstract FragmentTransaction replace(@IdRes int containerViewId, Fragment fragment);
-    
+
     /**
      * Replace an existing fragment that was added to a container.  This is
      * essentially the same as calling {@link #remove(Fragment)} for all
      * currently added fragments that were added with the same containerViewId
      * and then {@link #add(int, Fragment, String)} with the same arguments
      * given here.
-     * 
+     *
      * @param containerViewId Identifier of the container whose fragment(s) are
      * to be replaced.
      * @param fragment The new fragment to place in the container.
      * @param tag Optional tag name for the fragment, to later retrieve the
      * fragment with {@link FragmentManager#findFragmentByTag(String)
      * FragmentManager.findFragmentByTag(String)}.
-     * 
+     *
      * @return Returns the same FragmentTransaction instance.
      */
     public abstract FragmentTransaction replace(@IdRes int containerViewId, Fragment fragment,
             String tag);
-    
+
     /**
      * Remove an existing fragment.  If it was added to a container, its view
      * is also removed from that container.
-     * 
+     *
      * @param fragment The fragment to be removed.
-     * 
+     *
      * @return Returns the same FragmentTransaction instance.
      */
     public abstract FragmentTransaction remove(Fragment fragment);
-    
+
     /**
      * Hides an existing fragment.  This is only relevant for fragments whose
      * views have been added to a container, as this will cause the view to
      * be hidden.
-     * 
+     *
      * @param fragment The fragment to be hidden.
-     * 
+     *
      * @return Returns the same FragmentTransaction instance.
      */
     public abstract FragmentTransaction hide(Fragment fragment);
-    
+
     /**
      * Shows a previously hidden fragment.  This is only relevant for fragments whose
      * views have been added to a container, as this will cause the view to
      * be shown.
-     * 
+     *
      * @param fragment The fragment to be shown.
-     * 
+     *
      * @return Returns the same FragmentTransaction instance.
      */
     public abstract FragmentTransaction show(Fragment fragment);
@@ -135,17 +136,17 @@
      * <code>false</code> otherwise.
      */
     public abstract boolean isEmpty();
-    
+
     /**
      * Bit mask that is set for all enter transitions.
      */
     public static final int TRANSIT_ENTER_MASK = 0x1000;
-    
+
     /**
      * Bit mask that is set for all exit transitions.
      */
     public static final int TRANSIT_EXIT_MASK = 0x2000;
-    
+
     /** Not set up for a transition. */
     public static final int TRANSIT_UNSET = -1;
     /** No animation for transition. */
@@ -202,7 +203,7 @@
      * animations.
      */
     public abstract FragmentTransaction setTransitionStyle(@StyleRes int styleRes);
-    
+
     /**
      * Add this transaction to the back stack.  This means that the transaction
      * will be remembered after it is committed, and will reverse its operation
@@ -269,7 +270,7 @@
      * because the state after the commit can be lost if the activity needs to
      * be restored from its state.  See {@link #commitAllowingStateLoss()} for
      * situations where it may be okay to lose the commit.</p>
-     * 
+     *
      * @return Returns the identifier of this transaction's back stack entry,
      * if {@link #addToBackStack(String)} had been called.  Otherwise, returns
      * a negative number.
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index d54ce4b..e411e03 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -662,9 +662,11 @@
     public void setRenderThread(int tid) throws RemoteException;
 
     /**
-     * Let's activity manager know whether the calling process is currently showing "top-level" UI
+     * Lets activity manager know whether the calling process is currently showing "top-level" UI
      * that is not an activity, i.e. windows on the screen the user is currently interacting with.
      *
+     * <p>This flag can only be set for persistent processes.
+     *
      * @param hasTopUi Whether the calling process has "top-level" UI.
      */
     public void setHasTopUi(boolean hasTopUi) throws RemoteException;
diff --git a/core/java/com/android/internal/app/IEphemeralResolver.aidl b/core/java/android/app/IEphemeralResolver.aidl
similarity index 92%
rename from core/java/com/android/internal/app/IEphemeralResolver.aidl
rename to core/java/android/app/IEphemeralResolver.aidl
index 9ff1322..ee869ea 100644
--- a/core/java/com/android/internal/app/IEphemeralResolver.aidl
+++ b/core/java/android/app/IEphemeralResolver.aidl
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-package com.android.internal.app;
+package android.app;
 
-import android.content.Intent;
 import android.os.IRemoteCallback;
 
+/** @hide */
 oneway interface IEphemeralResolver {
     void getEphemeralResolveInfoList(IRemoteCallback callback, in int[] digestPrefix,
             int prefixMask, int sequence);
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index db7d54b..ec22ff6 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -128,7 +128,7 @@
     /*
      * Backup: is the current system wallpaper image eligible for off-device backup?
      */
-    boolean isWallpaperBackupEligible(int userId);
+    boolean isWallpaperBackupEligible(int which, int userId);
 
     /*
      * Keyguard: register a callback for being notified that lock-state relevant
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 4802b29..29ed97e 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -3256,7 +3256,8 @@
          * Resets the notification header to its original state
          */
         private void resetNotificationHeader(RemoteViews contentView) {
-            contentView.setImageViewResource(R.id.icon, 0);
+            // Small icon doesn't need to be reset, as it's always set. Resetting would prevent
+            // re-using the drawable when the notification is updated.
             contentView.setBoolean(R.id.notification_header, "setExpanded", false);
             contentView.setTextViewText(R.id.app_name_text, null);
             contentView.setViewVisibility(R.id.chronometer, View.GONE);
@@ -4424,9 +4425,15 @@
             //          mN.mLargeIcon
             //   2. !mBigLargeIconSet -> mN.mLargeIcon applies
             Icon oldLargeIcon = null;
+            Bitmap largeIconLegacy = null;
             if (mBigLargeIconSet) {
                 oldLargeIcon = mBuilder.mN.mLargeIcon;
                 mBuilder.mN.mLargeIcon = mBigLargeIcon;
+                // The legacy largeIcon might not allow us to clear the image, as it's taken in
+                // replacement if the other one is null. Because we're restoring these legacy icons
+                // for old listeners, this is in general non-null.
+                largeIconLegacy = mBuilder.mN.largeIcon;
+                mBuilder.mN.largeIcon = null;
             }
 
             RemoteViews contentView = getStandardView(mBuilder.getBigPictureLayoutResource());
@@ -4438,6 +4445,7 @@
 
             if (mBigLargeIconSet) {
                 mBuilder.mN.mLargeIcon = oldLargeIcon;
+                mBuilder.mN.largeIcon = largeIconLegacy;
             }
 
             contentView.setImageViewBitmap(R.id.big_picture, mPicture);
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 18b72e2..ff514bd 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -312,8 +312,8 @@
         try {
             service.enqueueNotificationWithTag(pkg, mContext.getOpPackageName(), tag, id,
                     copy, idOut, user.getIdentifier());
-            if (id != idOut[0]) {
-                Log.w(TAG, "notify: id corrupted: sent " + id + ", got back " + idOut[0]);
+            if (localLOGV && id != idOut[0]) {
+                Log.v(TAG, "notify: id corrupted: sent " + id + ", got back " + idOut[0]);
             }
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index 9a9f793..d2e0327 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -242,7 +242,7 @@
      * @return a new AssetManager.
     */
     @VisibleForTesting
-    protected @NonNull AssetManager createAssetManager(@NonNull final ResourcesKey key) {
+    protected @Nullable AssetManager createAssetManager(@NonNull final ResourcesKey key) {
         AssetManager assets = new AssetManager();
 
         // resDir can be null if the 'android' package is creating a new Resources object.
@@ -250,15 +250,16 @@
         // already.
         if (key.mResDir != null) {
             if (assets.addAssetPath(key.mResDir) == 0) {
-                throw new Resources.NotFoundException("failed to add asset path " + key.mResDir);
+                Log.e(TAG, "failed to add asset path " + key.mResDir);
+                return null;
             }
         }
 
         if (key.mSplitResDirs != null) {
             for (final String splitResDir : key.mSplitResDirs) {
                 if (assets.addAssetPath(splitResDir) == 0) {
-                    throw new Resources.NotFoundException(
-                            "failed to add split asset path " + splitResDir);
+                    Log.e(TAG, "failed to add split asset path " + splitResDir);
+                    return null;
                 }
             }
         }
@@ -303,11 +304,15 @@
         return config;
     }
 
-    private @NonNull ResourcesImpl createResourcesImpl(@NonNull ResourcesKey key) {
+    private @Nullable ResourcesImpl createResourcesImpl(@NonNull ResourcesKey key) {
         final DisplayAdjustments daj = new DisplayAdjustments(key.mOverrideConfiguration);
         daj.setCompatibilityInfo(key.mCompatInfo);
 
         final AssetManager assets = createAssetManager(key);
+        if (assets == null) {
+            return null;
+        }
+
         final DisplayMetrics dm = getDisplayMetrics(key.mDisplayId, daj);
         final Configuration config = generateConfig(key, dm);
         final ResourcesImpl impl = new ResourcesImpl(assets, dm, config, daj);
@@ -323,7 +328,7 @@
      * @param key The key to match.
      * @return a ResourcesImpl if the key matches a cache entry, null otherwise.
      */
-    private ResourcesImpl findResourcesImplForKeyLocked(@NonNull ResourcesKey key) {
+    private @Nullable ResourcesImpl findResourcesImplForKeyLocked(@NonNull ResourcesKey key) {
         WeakReference<ResourcesImpl> weakImplRef = mResourceImpls.get(key);
         ResourcesImpl impl = weakImplRef != null ? weakImplRef.get() : null;
         if (impl != null && impl.getAssets().isUpToDate()) {
@@ -338,12 +343,14 @@
      * @param key The key to match.
      * @return a ResourcesImpl object matching the key.
      */
-    private @NonNull ResourcesImpl findOrCreateResourcesImplForKeyLocked(
+    private @Nullable ResourcesImpl findOrCreateResourcesImplForKeyLocked(
             @NonNull ResourcesKey key) {
         ResourcesImpl impl = findResourcesImplForKeyLocked(key);
         if (impl == null) {
             impl = createResourcesImpl(key);
-            mResourceImpls.put(key, new WeakReference<>(impl));
+            if (impl != null) {
+                mResourceImpls.put(key, new WeakReference<>(impl));
+            }
         }
         return impl;
     }
@@ -352,7 +359,8 @@
      * Find the ResourcesKey that this ResourcesImpl object is associated with.
      * @return the ResourcesKey or null if none was found.
      */
-    private ResourcesKey findKeyForResourceImplLocked(@NonNull ResourcesImpl resourceImpl) {
+    private @Nullable ResourcesKey findKeyForResourceImplLocked(
+            @NonNull ResourcesImpl resourceImpl) {
         final int refCount = mResourceImpls.size();
         for (int i = 0; i < refCount; i++) {
             WeakReference<ResourcesImpl> weakImplRef = mResourceImpls.valueAt(i);
@@ -480,7 +488,7 @@
      *                    {@link ClassLoader#getSystemClassLoader()} is used.
      * @return a Resources object from which to access resources.
      */
-    public @NonNull Resources createBaseActivityResources(@NonNull IBinder activityToken,
+    public @Nullable Resources createBaseActivityResources(@NonNull IBinder activityToken,
             @Nullable String resDir,
             @Nullable String[] splitResDirs,
             @Nullable String[] overlayDirs,
@@ -534,7 +542,7 @@
      *         {@link #applyConfigurationToResourcesLocked(Configuration, CompatibilityInfo)}
      *         is called.
      */
-    private @NonNull Resources getOrCreateResources(@Nullable IBinder activityToken,
+    private @Nullable Resources getOrCreateResources(@Nullable IBinder activityToken,
             @NonNull ResourcesKey key, @NonNull ClassLoader classLoader) {
         synchronized (this) {
             if (DEBUG) {
@@ -589,6 +597,9 @@
 
         // If we're here, we didn't find a suitable ResourcesImpl to use, so create one now.
         ResourcesImpl resourcesImpl = createResourcesImpl(key);
+        if (resourcesImpl == null) {
+            return null;
+        }
 
         synchronized (this) {
             ResourcesImpl existingResourcesImpl = findResourcesImplForKeyLocked(key);
@@ -642,7 +653,7 @@
      * {@link ClassLoader#getSystemClassLoader()} is used.
      * @return a Resources object from which to access resources.
      */
-    public @NonNull Resources getResources(@Nullable IBinder activityToken,
+    public @Nullable Resources getResources(@Nullable IBinder activityToken,
             @Nullable String resDir,
             @Nullable String[] splitResDirs,
             @Nullable String[] overlayDirs,
@@ -765,10 +776,12 @@
                     ResourcesImpl resourcesImpl = findResourcesImplForKeyLocked(newKey);
                     if (resourcesImpl == null) {
                         resourcesImpl = createResourcesImpl(newKey);
-                        mResourceImpls.put(newKey, new WeakReference<>(resourcesImpl));
+                        if (resourcesImpl != null) {
+                            mResourceImpls.put(newKey, new WeakReference<>(resourcesImpl));
+                        }
                     }
 
-                    if (resourcesImpl != resources.getImpl()) {
+                    if (resourcesImpl != null && resourcesImpl != resources.getImpl()) {
                         // Set the ResourcesImpl, updating it for all users of this Resources
                         // object.
                         resources.setImpl(resourcesImpl);
@@ -910,7 +923,11 @@
                 if (r != null) {
                     final ResourcesKey key = updatedResourceKeys.get(r.getImpl());
                     if (key != null) {
-                        r.setImpl(findOrCreateResourcesImplForKeyLocked(key));
+                        final ResourcesImpl impl = findOrCreateResourcesImplForKeyLocked(key);
+                        if (impl == null) {
+                            throw new Resources.NotFoundException("failed to load " + libAsset);
+                        }
+                        r.setImpl(impl);
                     }
                 }
             }
@@ -923,7 +940,11 @@
                     if (r != null) {
                         final ResourcesKey key = updatedResourceKeys.get(r.getImpl());
                         if (key != null) {
-                            r.setImpl(findOrCreateResourcesImplForKeyLocked(key));
+                            final ResourcesImpl impl = findOrCreateResourcesImplForKeyLocked(key);
+                            if (impl == null) {
+                                throw new Resources.NotFoundException("failed to load " + libAsset);
+                            }
+                            r.setImpl(impl);
                         }
                     }
                 }
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 20cbde1..6e44662 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -1680,13 +1680,13 @@
      * Only the OS itself may use this method.
      * @hide
      */
-    public boolean isWallpaperBackupEligible() {
+    public boolean isWallpaperBackupEligible(int which) {
         if (sGlobals.mService == null) {
             Log.w(TAG, "WallpaperService not running");
             throw new RuntimeException(new DeadSystemException());
         }
         try {
-            return sGlobals.mService.isWallpaperBackupEligible(mContext.getUserId());
+            return sGlobals.mService.isWallpaperBackupEligible(which, mContext.getUserId());
         } catch (RemoteException e) {
             Log.e(TAG, "Exception querying wallpaper backup eligibility: " + e.getMessage());
         }
diff --git a/core/java/android/app/backup/FullBackup.java b/core/java/android/app/backup/FullBackup.java
index 478024d..76828ee 100644
--- a/core/java/android/app/backup/FullBackup.java
+++ b/core/java/android/app/backup/FullBackup.java
@@ -21,6 +21,8 @@
 import android.content.res.XmlResourceParser;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
+import android.os.storage.StorageManager;
+import android.os.storage.StorageVolume;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.text.TextUtils;
@@ -223,8 +225,12 @@
 
         final int mFullBackupContent;
         final PackageManager mPackageManager;
+        final StorageManager mStorageManager;
         final String mPackageName;
 
+        // lazy initialized, only when needed
+        private StorageVolume[] mVolumes = null;
+
         /**
          * Parse out the semantic domains into the correct physical location.
          */
@@ -260,16 +266,41 @@
                     } else {
                         return null;
                     }
+                } else if (domainToken.startsWith(FullBackup.SHARED_PREFIX)) {
+                    return sharedDomainToPath(domainToken);
                 }
                 // Not a supported location
                 Log.i(TAG, "Unrecognized domain " + domainToken);
                 return null;
-            } catch (IOException e) {
+            } catch (Exception e) {
                 Log.i(TAG, "Error reading directory for domain: " + domainToken);
                 return null;
             }
 
         }
+
+        private String sharedDomainToPath(String domain) throws IOException {
+            // already known to start with SHARED_PREFIX, so we just look after that
+            final String volume = domain.substring(FullBackup.SHARED_PREFIX.length());
+            final StorageVolume[] volumes = getVolumeList();
+            final int volNum = Integer.parseInt(volume);
+            if (volNum < mVolumes.length) {
+                return volumes[volNum].getPathFile().getCanonicalPath();
+            }
+            return null;
+        }
+
+        private StorageVolume[] getVolumeList() {
+            if (mStorageManager != null) {
+                if (mVolumes == null) {
+                    mVolumes = mStorageManager.getVolumeList();
+                }
+            } else {
+                Log.e(TAG, "Unable to access Storage Manager");
+            }
+            return mVolumes;
+        }
+
         /**
         * A map of domain -> list of canonical file names in that domain that are to be included.
         * We keep track of the domain so that we can go through the file system in order later on.
@@ -283,6 +314,7 @@
 
         BackupScheme(Context context) {
             mFullBackupContent = context.getApplicationInfo().fullBackupContent;
+            mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
             mPackageManager = context.getPackageManager();
             mPackageName = context.getPackageName();
 
diff --git a/core/java/android/content/SharedPreferences.java b/core/java/android/content/SharedPreferences.java
index 7f9e176..4b09fed 100644
--- a/core/java/android/content/SharedPreferences.java
+++ b/core/java/android/content/SharedPreferences.java
@@ -72,7 +72,9 @@
          * {@link #commit} or {@link #apply} are called.
          * 
          * @param key The name of the preference to modify.
-         * @param value The new value for the preference.
+         * @param value The new value for the preference.  Passing {@code null}
+         *    for this argument is equivalent to calling {@link #remove(String)} with
+         *    this key.
          * 
          * @return Returns a reference to the same Editor object, so you can
          * chain put calls together.
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 2eb767e..6b23da9 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -492,6 +492,8 @@
      * If the calling launcher application contains pinned shortcuts, they will still work,
      * even though the caller no longer has the shortcut host permission.
      *
+     * @throws IllegalStateException when the user is locked.
+     *
      * @see ShortcutManager
      */
     public boolean hasShortcutHostPermission() {
@@ -512,6 +514,8 @@
      * @param user The UserHandle of the profile.
      *
      * @return the IDs of {@link ShortcutInfo}s that match the query.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @see ShortcutManager
      */
@@ -554,6 +558,8 @@
      * @param packageName The target package name.
      * @param shortcutIds The IDs of the shortcut to be pinned.
      * @param user The UserHandle of the profile.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @see ShortcutManager
      */
@@ -626,6 +632,8 @@
      * density DPI values from {@link DisplayMetrics}.
      *
      * @return The drawable associated with the shortcut.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @see ShortcutManager
      * @see #getShortcutBadgedIconDrawable(ShortcutInfo, int)
@@ -672,6 +680,8 @@
      *
      * @param density Optional density for the icon, or 0 to use the default density. Use
      * @return A badged icon for the shortcut.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @see ShortcutManager
      * @see #getShortcutIconDrawable(ShortcutInfo, int)
@@ -695,6 +705,8 @@
      * @param sourceBounds The Rect containing the source bounds of the clicked icon.
      * @param startActivityOptions Options to pass to startActivity.
      * @param user The UserHandle of the profile.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g.
      * the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
@@ -715,6 +727,8 @@
      * @param shortcut The target shortcut.
      * @param sourceBounds The Rect containing the source bounds of the clicked icon.
      * @param startActivityOptions Options to pass to startActivity.
+     * @throws IllegalStateException when the user is locked, or when the {@code user} user
+     * is locked or not running.
      *
      * @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g.
      * the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
diff --git a/core/java/android/content/pm/ShortcutManager.java b/core/java/android/content/pm/ShortcutManager.java
index 99d578b..cd248ea 100644
--- a/core/java/android/content/pm/ShortcutManager.java
+++ b/core/java/android/content/pm/ShortcutManager.java
@@ -434,6 +434,12 @@
  * <h3>Launcher API</h3>
  *
  * The {@link LauncherApps} class provides APIs for launcher applications to access shortcuts.
+ *
+ *
+ * <h3>Direct Boot and Shortcuts</h3>
+ *
+ * All shortcut information is stored in credential encrypted storage, so no shortcuts can be
+ * accessed when the user is locked.
  */
 public class ShortcutManager {
     private static final String TAG = "ShortcutManager";
@@ -469,6 +475,8 @@
      *
      * @throws IllegalArgumentException if {@link #getMaxShortcutCountPerActivity()} is exceeded,
      * or when trying to update immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public boolean setDynamicShortcuts(@NonNull List<ShortcutInfo> shortcutInfoList) {
         try {
@@ -481,6 +489,8 @@
 
     /**
      * Return all dynamic shortcuts from the caller application.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     @NonNull
     public List<ShortcutInfo> getDynamicShortcuts() {
@@ -494,6 +504,8 @@
 
     /**
      * Return all manifest shortcuts from the caller application.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     @NonNull
     public List<ShortcutInfo> getManifestShortcuts() {
@@ -515,6 +527,8 @@
      *
      * @throws IllegalArgumentException if {@link #getMaxShortcutCountPerActivity()} is exceeded,
      * or when trying to update immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public boolean addDynamicShortcuts(@NonNull List<ShortcutInfo> shortcutInfoList) {
         try {
@@ -527,6 +541,8 @@
 
     /**
      * Delete dynamic shortcuts by ID.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void removeDynamicShortcuts(@NonNull List<String> shortcutIds) {
         try {
@@ -539,6 +555,8 @@
 
     /**
      * Delete all dynamic shortcuts from the caller application.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void removeAllDynamicShortcuts() {
         try {
@@ -550,6 +568,8 @@
 
     /**
      * Return all pinned shortcuts from the caller application.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     @NonNull
     public List<ShortcutInfo> getPinnedShortcuts() {
@@ -570,6 +590,8 @@
      * @return {@code true} if the call has succeeded. {@code false} if the call is rate-limited.
      *
      * @throws IllegalArgumentException If trying to update immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public boolean updateShortcuts(List<ShortcutInfo> shortcutInfoList) {
         try {
@@ -585,6 +607,8 @@
      * class.
      *
      * @throws IllegalArgumentException If trying to disable immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void disableShortcuts(@NonNull List<String> shortcutIds) {
         try {
@@ -622,6 +646,8 @@
      * For more details, see the Javadoc for the {@link ShortcutManager} class.
      *
      * @throws IllegalArgumentException If trying to disable immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void disableShortcuts(@NonNull List<String> shortcutIds, CharSequence disabledMessage) {
         try {
@@ -638,6 +664,8 @@
      * already enabled, this method does nothing.
      *
      * @throws IllegalArgumentException If trying to enable immutable shortcuts.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void enableShortcuts(@NonNull List<String> shortcutIds) {
         try {
@@ -704,6 +732,8 @@
      * Return {@code true} when rate-limiting is active for the caller application.
      *
      * <p>See the class level javadoc for details.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public boolean isRateLimitingActive() {
         try {
@@ -747,6 +777,8 @@
      * <p>The information is accessible via {@link UsageStatsManager#queryEvents}
      * Typically, launcher applications use this information to build a prediction model
      * so that they can promote the shortcuts that are likely to be used at the moment.
+     *
+     * @throws IllegalStateException when the user is locked.
      */
     public void reportShortcutUsed(String shortcutId) {
         try {
diff --git a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
index c23bd5b..b10c341 100644
--- a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
@@ -286,23 +286,29 @@
     }
 
     @Override
-    public synchronized void abortCaptures() throws CameraAccessException {
-        checkNotClosed();
+    public void abortCaptures() throws CameraAccessException {
+        synchronized (this) {
+            checkNotClosed();
 
-        if (DEBUG) {
-            Log.v(TAG, mIdString + "abortCaptures");
+            if (DEBUG) {
+                Log.v(TAG, mIdString + "abortCaptures");
+            }
+
+            if (mAborting) {
+                Log.w(TAG, mIdString + "abortCaptures - Session is already aborting; doing nothing");
+                return;
+            }
+
+            mAborting = true;
+            mAbortDrainer.taskStarted();
         }
 
-        if (mAborting) {
-            Log.w(TAG, mIdString + "abortCaptures - Session is already aborting; doing nothing");
-            return;
+        synchronized (mDeviceImpl.mInterfaceLock) {
+            synchronized (this) {
+                mDeviceImpl.flush();
+                // The next BUSY -> IDLE set of transitions will mark the end of the abort.
+            }
         }
-
-        mAborting = true;
-        mAbortDrainer.taskStarted();
-
-        mDeviceImpl.flush();
-        // The next BUSY -> IDLE set of transitions will mark the end of the abort.
     }
 
     @Override
@@ -330,78 +336,86 @@
      * @see CameraCaptureSession#close
      */
     @Override
-    public synchronized void replaceSessionClose() {
-        /*
-         * In order for creating new sessions to be fast, the new session should be created
-         * before the old session is closed.
-         *
-         * Otherwise the old session will always unconfigure if there is no new session to
-         * replace it.
-         *
-         * Unconfiguring could add hundreds of milliseconds of delay. We could race and attempt
-         * to skip unconfigure if a new session is created before the captures are all drained,
-         * but this would introduce nondeterministic behavior.
-         */
+    public void replaceSessionClose() {
+        synchronized (this) {
+            /*
+             * In order for creating new sessions to be fast, the new session should be created
+             * before the old session is closed.
+             *
+             * Otherwise the old session will always unconfigure if there is no new session to
+             * replace it.
+             *
+             * Unconfiguring could add hundreds of milliseconds of delay. We could race and attempt
+             * to skip unconfigure if a new session is created before the captures are all drained,
+             * but this would introduce nondeterministic behavior.
+             */
 
-        if (DEBUG) Log.v(TAG, mIdString + "replaceSessionClose");
+            if (DEBUG) Log.v(TAG, mIdString + "replaceSessionClose");
 
-        // Set up fast shutdown. Possible alternative paths:
-        // - This session is active, so close() below starts the shutdown drain
-        // - This session is mid-shutdown drain, and hasn't yet reached the idle drain listener.
-        // - This session is already closed and has executed the idle drain listener, and
-        //   configureOutputsChecked(null) has already been called.
-        //
-        // Do not call configureOutputsChecked(null) going forward, since it would race with the
-        // configuration for the new session. If it was already called, then we don't care, since it
-        // won't get called again.
-        mSkipUnconfigure = true;
-
+            // Set up fast shutdown. Possible alternative paths:
+            // - This session is active, so close() below starts the shutdown drain
+            // - This session is mid-shutdown drain, and hasn't yet reached the idle drain listener.
+            // - This session is already closed and has executed the idle drain listener, and
+            //   configureOutputsChecked(null) has already been called.
+            //
+            // Do not call configureOutputsChecked(null) going forward, since it would race with the
+            // configuration for the new session. If it was already called, then we don't care,
+            // since it won't get called again.
+            mSkipUnconfigure = true;
+        }
         close();
     }
 
     @Override
-    public synchronized void close() {
+    public void close() {
+        synchronized (this) {
+            if (mClosed) {
+                if (DEBUG) Log.v(TAG, mIdString + "close - reentering");
+                return;
+            }
 
-        if (mClosed) {
-            if (DEBUG) Log.v(TAG, mIdString + "close - reentering");
-            return;
+            if (DEBUG) Log.v(TAG, mIdString + "close - first time");
+
+            mClosed = true;
         }
 
-        if (DEBUG) Log.v(TAG, mIdString + "close - first time");
+        synchronized (mDeviceImpl.mInterfaceLock) {
+            synchronized (this) {
+                /*
+                 * Flush out any repeating request. Since camera is closed, no new requests
+                 * can be queued, and eventually the entire request queue will be drained.
+                 *
+                 * If the camera device was already closed, short circuit and do nothing; since
+                 * no more internal device callbacks will fire anyway.
+                 *
+                 * Otherwise, once stopRepeating is done, wait for camera to idle, then unconfigure
+                 * the camera. Once that's done, fire #onClosed.
+                 */
+                try {
+                    mDeviceImpl.stopRepeating();
+                } catch (IllegalStateException e) {
+                    // OK: Camera device may already be closed, nothing else to do
 
-        mClosed = true;
+                    // TODO: Fire onClosed anytime we get the device onClosed or the ISE?
+                    // or just suppress the ISE only and rely onClosed.
+                    // Also skip any of the draining work if this is already closed.
 
-        /*
-         * Flush out any repeating request. Since camera is closed, no new requests
-         * can be queued, and eventually the entire request queue will be drained.
-         *
-         * If the camera device was already closed, short circuit and do nothing; since
-         * no more internal device callbacks will fire anyway.
-         *
-         * Otherwise, once stopRepeating is done, wait for camera to idle, then unconfigure the
-         * camera. Once that's done, fire #onClosed.
-         */
-        try {
-            mDeviceImpl.stopRepeating();
-        } catch (IllegalStateException e) {
-            // OK: Camera device may already be closed, nothing else to do
+                    // Short-circuit; queue callback immediately and return
+                    mStateCallback.onClosed(this);
+                    return;
+                } catch (CameraAccessException e) {
+                    // OK: close does not throw checked exceptions.
+                    Log.e(TAG, mIdString + "Exception while stopping repeating: ", e);
 
-            // TODO: Fire onClosed anytime we get the device onClosed or the ISE?
-            // or just suppress the ISE only and rely onClosed.
-            // Also skip any of the draining work if this is already closed.
-
-            // Short-circuit; queue callback immediately and return
-            mStateCallback.onClosed(this);
-            return;
-        } catch (CameraAccessException e) {
-            // OK: close does not throw checked exceptions.
-            Log.e(TAG, mIdString + "Exception while stopping repeating: ", e);
-
-            // TODO: call onError instead of onClosed if this happens
+                    // TODO: call onError instead of onClosed if this happens
+                }
+            }
         }
 
-        // If no sequences are pending, fire #onClosed immediately
-        mSequenceDrainer.beginDrain();
+        synchronized (this) {
+            // If no sequences are pending, fire #onClosed immediately
+            mSequenceDrainer.beginDrain();
+        }
     }
 
     /**
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index 1ff2e8a..f17fd55 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -259,6 +259,7 @@
     public static class AuthenticationResult {
         private Fingerprint mFingerprint;
         private CryptoObject mCryptoObject;
+        private int mUserId;
 
         /**
          * Authentication result
@@ -267,9 +268,10 @@
          * @param fingerprint the recognized fingerprint data, if allowed.
          * @hide
          */
-        public AuthenticationResult(CryptoObject crypto, Fingerprint fingerprint) {
+        public AuthenticationResult(CryptoObject crypto, Fingerprint fingerprint, int userId) {
             mCryptoObject = crypto;
             mFingerprint = fingerprint;
+            mUserId = userId;
         }
 
         /**
@@ -286,6 +288,12 @@
          * @hide
          */
         public Fingerprint getFingerprint() { return mFingerprint; }
+
+        /**
+         * Obtain the userId for which this fingerprint was authenticated.
+         * @hide
+         */
+        public int getUserId() { return mUserId; }
     };
 
     /**
@@ -792,7 +800,7 @@
                     sendAcquiredResult((Long) msg.obj /* deviceId */, msg.arg1 /* acquire info */);
                     break;
                 case MSG_AUTHENTICATION_SUCCEEDED:
-                    sendAuthenticatedSucceeded((Fingerprint) msg.obj);
+                    sendAuthenticatedSucceeded((Fingerprint) msg.obj, msg.arg1 /* userId */);
                     break;
                 case MSG_AUTHENTICATION_FAILED:
                     sendAuthenticatedFailed();
@@ -840,9 +848,10 @@
             }
         }
 
-        private void sendAuthenticatedSucceeded(Fingerprint fp) {
+        private void sendAuthenticatedSucceeded(Fingerprint fp, int userId) {
             if (mAuthenticationCallback != null) {
-                final AuthenticationResult result = new AuthenticationResult(mCryptoObject, fp);
+                final AuthenticationResult result =
+                        new AuthenticationResult(mCryptoObject, fp, userId);
                 mAuthenticationCallback.onAuthenticationSucceeded(result);
             }
         }
@@ -981,8 +990,8 @@
         }
 
         @Override // binder call
-        public void onAuthenticationSucceeded(long deviceId, Fingerprint fp) {
-            mHandler.obtainMessage(MSG_AUTHENTICATION_SUCCEEDED, fp).sendToTarget();
+        public void onAuthenticationSucceeded(long deviceId, Fingerprint fp, int userId) {
+            mHandler.obtainMessage(MSG_AUTHENTICATION_SUCCEEDED, userId, 0, fp).sendToTarget();
         }
 
         @Override // binder call
diff --git a/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl b/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
index 57a429f..b024b29 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
@@ -26,7 +26,7 @@
 oneway interface IFingerprintServiceReceiver {
     void onEnrollResult(long deviceId, int fingerId, int groupId, int remaining);
     void onAcquired(long deviceId, int acquiredInfo);
-    void onAuthenticationSucceeded(long deviceId, in Fingerprint fp);
+    void onAuthenticationSucceeded(long deviceId, in Fingerprint fp, int userId);
     void onAuthenticationFailed(long deviceId);
     void onError(long deviceId, int error);
     void onRemoved(long deviceId, int fingerId, int groupId);
diff --git a/core/java/android/net/ConnectivityMetricsLogger.java b/core/java/android/net/ConnectivityMetricsLogger.java
index 029c5bd..9a2d4e0 100644
--- a/core/java/android/net/ConnectivityMetricsLogger.java
+++ b/core/java/android/net/ConnectivityMetricsLogger.java
@@ -46,11 +46,12 @@
 
     public static final String DATA_KEY_EVENTS_COUNT = "count";
 
-    /** {@hide} */ protected final IConnectivityMetricsLogger mService;
+    /** {@hide} */ protected IConnectivityMetricsLogger mService;
     /** {@hide} */ protected volatile long mServiceUnblockedTimestampMillis;
     private int mNumSkippedEvents;
 
     public ConnectivityMetricsLogger() {
+        // TODO: consider not initializing mService in constructor
         this(IConnectivityMetricsLogger.Stub.asInterface(
                 ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE)));
     }
@@ -61,6 +62,18 @@
         mService = service;
     }
 
+    /** {@hide} */
+    protected boolean checkLoggerService() {
+        if (mService != null) {
+            return true;
+        }
+        // Two threads racing here will write the same pointer because getService
+        // is idempotent once MetricsLoggerService is initialized.
+        mService = IConnectivityMetricsLogger.Stub.asInterface(
+                ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE));
+        return mService != null;
+    }
+
     /**
      * Log a ConnectivityMetricsEvent.
      *
@@ -96,6 +109,12 @@
             // Log number of skipped events
             Bundle b = new Bundle();
             b.putInt(DATA_KEY_EVENTS_COUNT, mNumSkippedEvents);
+
+            // Log the skipped event.
+            // TODO: Note that some of the clients push all states events into the server,
+            // If we lose some states logged here, we might mess up the statistics happened at the
+            // backend. One of the options is to introduce a non-skippable flag for important events
+            // that are logged.
             skippedEventsEvent = new ConnectivityMetricsEvent(mServiceUnblockedTimestampMillis,
                     componentTag, TAG_SKIPPED_EVENTS, b);
 
diff --git a/core/java/android/net/metrics/IpConnectivityLog.java b/core/java/android/net/metrics/IpConnectivityLog.java
index a7c1d40..dd7bd1b 100644
--- a/core/java/android/net/metrics/IpConnectivityLog.java
+++ b/core/java/android/net/metrics/IpConnectivityLog.java
@@ -31,7 +31,7 @@
  */
 public class IpConnectivityLog extends ConnectivityMetricsLogger {
     private static String TAG = "IpConnectivityMetricsLogger";
-    private static final boolean DBG = false;
+    private static final boolean DBG = true;
 
     public IpConnectivityLog() {
         // mService initialized in super constructor.
@@ -52,9 +52,9 @@
      * @return true if the event was successfully logged.
      */
     public boolean log(long timestamp, Parcelable data) {
-        if (mService == null) {
+        if (!checkLoggerService()) {
             if (DBG) {
-                Log.d(TAG, CONNECTIVITY_METRICS_LOGGER_SERVICE + " service not ready");
+                Log.d(TAG, CONNECTIVITY_METRICS_LOGGER_SERVICE + " service was not ready");
             }
             return false;
         }
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index f0cc390..a0c2efd 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -30,6 +30,8 @@
 import android.telephony.SignalStrength;
 import android.text.format.DateFormat;
 import android.util.ArrayMap;
+import android.util.Log;
+import android.util.LongSparseArray;
 import android.util.MutableBoolean;
 import android.util.Pair;
 import android.util.Printer;
@@ -47,6 +49,7 @@
  * @hide
  */
 public abstract class BatteryStats implements Parcelable {
+    private static final String TAG = "BatteryStats";
 
     private static final boolean LOCAL_LOGV = false;
 
@@ -175,8 +178,11 @@
 
     /**
      * Current version of checkin data format.
+     *
+     * New in version 19:
+     *   - Wakelock data (wl) gets current and max times.
      */
-    static final String CHECKIN_VERSION = "18";
+    static final String CHECKIN_VERSION = "19";
 
     /**
      * Old version, we hit 9 and ran out of room, need to remove.
@@ -352,6 +358,32 @@
         public abstract long getTimeSinceMarkLocked(long elapsedRealtimeUs);
 
         /**
+         * Returns the max duration if it is being tracked.
+         * Not all Timer subclasses track the max duration and the current duration.
+
+         */
+        public long getMaxDurationMsLocked(long elapsedRealtimeMs) {
+            return -1;
+        }
+
+        /**
+         * Returns the current time the timer has been active, if it is being tracked.
+         * Not all Timer subclasses track the max duration and the current duration.
+         */
+        public long getCurrentDurationMsLocked(long elapsedRealtimeMs) {
+            return -1;
+        }
+
+        /**
+         * Returns whether the timer is currently running.  Some types of timers
+         * (e.g. BatchTimers) don't know whether the event is currently active,
+         * and report false.
+         */
+        public boolean isRunningLocked() {
+            return false;
+        }
+
+        /**
          * Temporary for debugging.
          */
         public abstract void logState(Printer pw, String prefix);
@@ -2558,6 +2590,22 @@
                 sb.append('(');
                 sb.append(count);
                 sb.append(" times)");
+                final long maxDurationMs = timer.getMaxDurationMsLocked(elapsedRealtimeUs/1000);
+                if (maxDurationMs >= 0) {
+                    sb.append(" max=");
+                    sb.append(maxDurationMs);
+                }
+                if (timer.isRunningLocked()) {
+                    final long currentMs = timer.getCurrentDurationMsLocked(elapsedRealtimeUs/1000);
+                    if (currentMs >= 0) {
+                        sb.append(" (running for ");
+                        sb.append(currentMs);
+                        sb.append("ms)");
+                    } else {
+                        sb.append(" (running)");
+                    }
+                }
+
                 return ", ";
             }
         }
@@ -2565,6 +2613,7 @@
     }
 
     /**
+     * Prints details about a timer, if its total time was greater than 0.
      *
      * @param pw a PrintWriter object to print to.
      * @param sb a StringBuilder object.
@@ -2573,24 +2622,40 @@
      * @param which which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT.
      * @param prefix a String to be prepended to each line of output.
      * @param type the name of the timer.
+     * @return true if anything was printed.
      */
     private static final boolean printTimer(PrintWriter pw, StringBuilder sb, Timer timer,
-            long rawRealtime, int which, String prefix, String type) {
+            long rawRealtimeUs, int which, String prefix, String type) {
         if (timer != null) {
             // Convert from microseconds to milliseconds with rounding
-            final long totalTime = (timer.getTotalTimeLocked(
-                    rawRealtime, which) + 500) / 1000;
+            final long totalTimeMs = (timer.getTotalTimeLocked(
+                    rawRealtimeUs, which) + 500) / 1000;
             final int count = timer.getCountLocked(which);
-            if (totalTime != 0) {
+            if (totalTimeMs != 0) {
                 sb.setLength(0);
                 sb.append(prefix);
                 sb.append("    ");
                 sb.append(type);
                 sb.append(": ");
-                formatTimeMs(sb, totalTime);
+                formatTimeMs(sb, totalTimeMs);
                 sb.append("realtime (");
                 sb.append(count);
                 sb.append(" times)");
+                final long maxDurationMs = timer.getMaxDurationMsLocked(rawRealtimeUs/1000);
+                if (maxDurationMs >= 0) {
+                    sb.append(" max=");
+                    sb.append(maxDurationMs);
+                }
+                if (timer.isRunningLocked()) {
+                    final long currentMs = timer.getCurrentDurationMsLocked(rawRealtimeUs/1000);
+                    if (currentMs >= 0) {
+                        sb.append(" (running for ");
+                        sb.append(currentMs);
+                        sb.append("ms)");
+                    } else {
+                        sb.append(" (running)");
+                    }
+                }
                 pw.println(sb.toString());
                 return true;
             }
@@ -2613,15 +2678,23 @@
             long elapsedRealtimeUs, String name, int which, String linePrefix) {
         long totalTimeMicros = 0;
         int count = 0;
+        long max = -1;
+        long current = -1;
         if (timer != null) {
             totalTimeMicros = timer.getTotalTimeLocked(elapsedRealtimeUs, which);
             count = timer.getCountLocked(which); 
+            current = timer.getCurrentDurationMsLocked(elapsedRealtimeUs/1000);
+            max = timer.getMaxDurationMsLocked(elapsedRealtimeUs/1000);
         }
         sb.append(linePrefix);
         sb.append((totalTimeMicros + 500) / 1000); // microseconds to milliseconds with rounding
         sb.append(',');
         sb.append(name != null ? name + "," : "");
         sb.append(count);
+        sb.append(',');
+        sb.append(current);
+        sb.append(',');
+        sb.append(max);
         return ",";
     }
     
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index c5e09bd..3d3dc9c 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -669,12 +669,52 @@
         public static final int M = 23;
 
         /**
-         * N is for ¯\_(ツ)_/¯.
+         * N is for Nougat.
+         *
+         * <p>Applications targeting this or a later release will get these
+         * new changes in behavior:</p>
+         * <ul>
+         * <li> {@link android.app.DownloadManager.Request#setAllowedNetworkTypes
+         * DownloadManager.Request.setAllowedNetworkTypes}
+         * will disable "allow over metered" when specifying only
+         * {@link android.app.DownloadManager.Request#NETWORK_WIFI}.</li>
+         * <li> {@link android.app.DownloadManager} no longer allows access to raw
+         * file paths.</li>
+         * <li> {@link android.app.Notification.Builder#setShowWhen
+         * Notification.Builder.setShowWhen}
+         * must be called explicitly to have the time shown, and various other changes in
+         * {@link android.app.Notification.Builder Notification.Builder} to how notifications
+         * are shown.</li>
+         * <li>{@link android.content.Context#MODE_WORLD_READABLE} and
+         * {@link android.content.Context#MODE_WORLD_WRITEABLE} are no longer supported.</li>
+         * <li>{@link android.os.FileUriExposedException} will be thrown to applications.</li>
+         * <li>Applications will see global drag and drops as per
+         * {@link android.view.View#DRAG_FLAG_GLOBAL}.</li>
+         * <li>{@link android.webkit.WebView#evaluateJavascript WebView.evaluateJavascript}
+         * will not persist state from an empty WebView.</li>
+         * <li>{@link android.animation.AnimatorSet} will not ignore calls to end() before
+         * start().</li>
+         * <li>{@link android.app.AlarmManager#cancel(android.app.PendingIntent)
+         * AlarmManager.cancel} will throw a NullPointerException if given a null operation.</li>
+         * <li>{@link android.app.FragmentManager} will ensure fragments have been created
+         * before being placed on the back stack.</li>
+         * <li>{@link android.app.FragmentManager} restores fragments in
+         * {@link android.app.Fragment#onCreate Fragment.onCreate} rather than after the
+         * method returns.</li>
+         * <li>{@link android.R.attr#resizeableActivity} defaults to true.</li>
+         * <li>{@link android.graphics.drawable.AnimatedVectorDrawable} throws exceptions when
+         * opening invalid VectorDrawable animations.</li>
+         * <li>{@link android.view.ViewGroup.MarginLayoutParams} will no longer be dropped
+         * when converting between some types of layout params (such as
+         * {@link android.widget.LinearLayout.LayoutParams LinearLayout.LayoutParams} to
+         * {@link android.widget.RelativeLayout.LayoutParams RelativeLayout.LayoutParams}).</li>
+         * <li>Your application processes will not be killed when the device density changes.</li>
+         * </ul>
          */
         public static final int N = 24;
 
         /**
-         * N MR1: Still ¯\_(シ)_/¯.
+         * N MR1: Nougat++.
          */
         public static final int N_MR1 = 25;
     }
diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java
index b58ff1f..d299672 100644
--- a/core/java/android/os/Looper.java
+++ b/core/java/android/os/Looper.java
@@ -147,7 +147,7 @@
             }
 
             final long traceTag = me.mTraceTag;
-            if (traceTag != 0) {
+            if (traceTag != 0 && Trace.isTagEnabled(traceTag)) {
                 Trace.traceBegin(traceTag, msg.target.getTraceName(msg));
             }
             try {
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 4ef882e..e1b7fda 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -567,6 +567,15 @@
             ZygoteState zygoteState, ArrayList<String> args)
             throws ZygoteStartFailedEx {
         try {
+            // Throw early if any of the arguments are malformed. This means we can
+            // avoid writing a partial response to the zygote.
+            int sz = args.size();
+            for (int i = 0; i < sz; i++) {
+                if (args.get(i).indexOf('\n') >= 0) {
+                    throw new ZygoteStartFailedEx("embedded newlines not allowed");
+                }
+            }
+
             /**
              * See com.android.internal.os.ZygoteInit.readArgumentList()
              * Presently the wire format to the zygote process is:
@@ -583,13 +592,8 @@
             writer.write(Integer.toString(args.size()));
             writer.newLine();
 
-            int sz = args.size();
             for (int i = 0; i < sz; i++) {
                 String arg = args.get(i);
-                if (arg.indexOf('\n') >= 0) {
-                    throw new ZygoteStartFailedEx(
-                            "embedded newlines not allowed");
-                }
                 writer.write(arg);
                 writer.newLine();
             }
@@ -598,11 +602,16 @@
 
             // Should there be a timeout on this?
             ProcessStartResult result = new ProcessStartResult();
+
+            // Always read the entire result from the input stream to avoid leaving
+            // bytes in the stream for future process starts to accidentally stumble
+            // upon.
             result.pid = inputStream.readInt();
+            result.usingWrapper = inputStream.readBoolean();
+
             if (result.pid < 0) {
                 throw new ZygoteStartFailedEx("fork() failed");
             }
-            result.usingWrapper = inputStream.readBoolean();
             return result;
         } catch (IOException ex) {
             zygoteState.close();
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 1dae0f8..03d3cf2 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -614,7 +614,8 @@
 
     /**
      * Specifies if a user is not allowed to enable the oem unlock setting. The default value is
-     * <code>false</code>.
+     * <code>false</code>. Setting this restriction has no effect if the bootloader is already
+     * unlocked.
      *
      * @see DevicePolicyManager#addUserRestriction(ComponentName, String)
      * @see DevicePolicyManager#clearUserRestriction(ComponentName, String)
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index da09922..1d6927a 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5345,6 +5345,13 @@
         public static final String LONG_PRESS_TIMEOUT = "long_press_timeout";
 
         /**
+         * The duration in milliseconds between the first tap's up event and the second tap's
+         * down event for an interaction to be considered part of the same multi-press.
+         * @hide
+         */
+        public static final String MULTI_PRESS_TIMEOUT = "multi_press_timeout";
+
+        /**
          * List of the enabled print services.
          *
          * N and beyond uses {@link #DISABLED_PRINT_SERVICES}. But this might be used in an upgrade
@@ -6019,6 +6026,17 @@
         public static final String ASSIST_SCREENSHOT_ENABLED = "assist_screenshot_enabled";
 
         /**
+         * Specifies whether the screen will show an animation if screen contents are sent to the
+         * assist application (active voice interaction service).
+         *
+         * Note that the disclosure will be forced for third-party assistants or if the device
+         * does not support disabling it.
+         *
+         * @hide
+         */
+        public static final String ASSIST_DISCLOSURE_ENABLED = "assist_disclosure_enabled";
+
+        /**
          * Names of the service components that the current user has explicitly allowed to
          * see all of the user's notifications, separated by ':'.
          *
@@ -6230,6 +6248,20 @@
         public static final int VR_DISPLAY_MODE_OFF = 1;
 
         /**
+         * Whether CarrierAppUtils#disableCarrierAppsUntilPrivileged has been executed at least
+         * once.
+         *
+         * <p>This is used to ensure that we only take one pass which will disable apps that are not
+         * privileged (if any). From then on, we only want to enable apps (when a matching SIM is
+         * inserted), to avoid disabling an app that the user might actively be using.
+         *
+         * <p>Will be set to 1 once executed.
+         *
+         * @hide
+         */
+        public static final String CARRIER_APPS_HANDLED = "carrier_apps_handled";
+
+        /**
          * Whether parent user can access remote contact in managed profile.
          *
          * @hide
@@ -6285,6 +6317,12 @@
         public static final String SYSTEM_NAVIGATION_KEYS_ENABLED =
                 "system_navigation_keys_enabled";
 
+        /**
+         * Whether preloaded APKs have been installed for the user.
+         * @hide
+         */
+        public static final String DEMO_USER_SETUP_COMPLETE
+                = "demo_user_setup_complete";
 
         /**
          * This are the settings to be backed up.
diff --git a/core/java/android/service/persistentdata/PersistentDataBlockManager.java b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
index cfeed51..0f92ed0 100644
--- a/core/java/android/service/persistentdata/PersistentDataBlockManager.java
+++ b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
@@ -163,10 +163,9 @@
     /**
      * Retrieves available information about this device's flash lock state.
      *
-     * @return FLASH_LOCK_STATE_LOCKED if device bootloader is locked,
-     * FLASH_LOCK_STATE_UNLOCKED if device bootloader is unlocked,
-     * or FLASH_LOCK_STATE unknown if this information cannot be ascertained
-     * on this device.
+     * @return {@link #FLASH_LOCK_LOCKED} if device bootloader is locked,
+     * {@link #FLASH_LOCK_UNLOCKED} if device bootloader is unlocked, or {@link #FLASH_LOCK_UNKNOWN}
+     * if this information cannot be ascertained on this device.
      */
     @FlashLockState
     public int getFlashLockState() {
diff --git a/core/java/android/view/Choreographer.java b/core/java/android/view/Choreographer.java
index d3db74d..3316f3a 100644
--- a/core/java/android/view/Choreographer.java
+++ b/core/java/android/view/Choreographer.java
@@ -25,6 +25,7 @@
 import android.os.Trace;
 import android.util.Log;
 import android.util.TimeUtils;
+import android.view.animation.AnimationUtils;
 
 import java.io.PrintWriter;
 
@@ -608,6 +609,7 @@
 
         try {
             Trace.traceBegin(Trace.TRACE_TAG_VIEW, "Choreographer#doFrame");
+            AnimationUtils.lockAnimationClock(frameTimeNanos / TimeUtils.NANOS_PER_MS);
 
             mFrameInfo.markInputHandlingStart();
             doCallbacks(Choreographer.CALLBACK_INPUT, frameTimeNanos);
@@ -620,6 +622,7 @@
 
             doCallbacks(Choreographer.CALLBACK_COMMIT, frameTimeNanos);
         } finally {
+            AnimationUtils.unlockAnimationClock();
             Trace.traceEnd(Trace.TRACE_TAG_VIEW);
         }
 
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 899ae49..85a4bf9 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -1227,6 +1227,33 @@
             return mMinLuminance;
         }
 
+        @Override
+        public boolean equals(Object other) {
+            if (this == other) {
+                return true;
+            }
+
+            if (!(other instanceof HdrCapabilities)) {
+                return false;
+            }
+            HdrCapabilities that = (HdrCapabilities) other;
+
+            return Arrays.equals(mSupportedHdrTypes, that.mSupportedHdrTypes)
+                && mMaxLuminance == that.mMaxLuminance
+                && mMaxAverageLuminance == that.mMaxAverageLuminance
+                && mMinLuminance == that.mMinLuminance;
+        }
+
+        @Override
+        public int hashCode() {
+            int hash = 23;
+            hash = hash * 17 + Arrays.hashCode(mSupportedHdrTypes);
+            hash = hash * 17 + Float.floatToIntBits(mMaxLuminance);
+            hash = hash * 17 + Float.floatToIntBits(mMaxAverageLuminance);
+            hash = hash * 17 + Float.floatToIntBits(mMinLuminance);
+            return hash;
+        }
+
         public static final Creator<HdrCapabilities> CREATOR = new Creator<HdrCapabilities>() {
             @Override
             public HdrCapabilities createFromParcel(Parcel source) {
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 49c3c46..bc40849 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -289,7 +289,7 @@
                 && modeId == other.modeId
                 && defaultModeId == other.defaultModeId
                 && colorMode == other.colorMode
-                && Objects.equal(supportedColorModes, other.supportedColorModes)
+                && Arrays.equals(supportedColorModes, other.supportedColorModes)
                 && Objects.equal(hdrCapabilities, other.hdrCapabilities)
                 && logicalDensityDpi == other.logicalDensityDpi
                 && physicalXDpi == other.physicalXDpi
diff --git a/core/java/android/view/FrameMetrics.java b/core/java/android/view/FrameMetrics.java
index 5c4450a..2b938d0 100644
--- a/core/java/android/view/FrameMetrics.java
+++ b/core/java/android/view/FrameMetrics.java
@@ -198,7 +198,7 @@
         int SWAP_BUFFERS = 12;
         int FRAME_COMPLETED = 13;
 
-        int FRAME_STATS_COUNT = 14; // must always be last
+        int FRAME_STATS_COUNT = 16; // must always be last
     }
 
     /*
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index b2e2505..c7eca44 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -218,15 +218,32 @@
     /** @hide */
     @Override
     protected void onDetachedFromWindowInternal() {
-        destroySurface();
+        destroyHardwareLayer();
+        releaseSurfaceTexture();
         super.onDetachedFromWindowInternal();
     }
 
-    private void destroySurface() {
+    /**
+     * @hide
+     */
+    @Override
+    protected void destroyHardwareResources() {
+        destroyHardwareLayer();
+    }
+
+    private void destroyHardwareLayer() {
         if (mLayer != null) {
             mLayer.detachSurfaceTexture();
+            mLayer.destroy();
+            mLayer = null;
+            mMatrixChanged = true;
+        }
+    }
 
+    private void releaseSurfaceTexture() {
+        if (mSurface != null) {
             boolean shouldRelease = true;
+
             if (mListener != null) {
                 shouldRelease = mListener.onSurfaceTextureDestroyed(mSurface);
             }
@@ -235,14 +252,10 @@
                 nDestroyNativeWindow();
             }
 
-            mLayer.destroy();
-            if (shouldRelease) mSurface.release();
+            if (shouldRelease) {
+                mSurface.release();
+            }
             mSurface = null;
-            mLayer = null;
-
-            // Make sure if/when new layer gets re-created, transform matrix will
-            // be re-applied.
-            mMatrixChanged = true;
             mHadSurface = true;
         }
     }
@@ -362,17 +375,17 @@
             }
 
             mLayer = mAttachInfo.mHardwareRenderer.createTextureLayer();
-            if (!mUpdateSurface) {
+            boolean createNewSurface = (mSurface == null);
+            if (createNewSurface) {
                 // Create a new SurfaceTexture for the layer.
                 mSurface = new SurfaceTexture(false);
-                mLayer.setSurfaceTexture(mSurface);
+                nCreateNativeWindow(mSurface);
             }
+            mLayer.setSurfaceTexture(mSurface);
             mSurface.setDefaultBufferSize(getWidth(), getHeight());
-            nCreateNativeWindow(mSurface);
-
             mSurface.setOnFrameAvailableListener(mUpdateListener, mAttachInfo.mHandler);
 
-            if (mListener != null && !mUpdateSurface) {
+            if (mListener != null && createNewSurface) {
                 mListener.onSurfaceTextureAvailable(mSurface, getWidth(), getHeight());
             }
             mLayer.setLayerPaint(mLayerPaint);
@@ -731,9 +744,11 @@
                     "released SurfaceTexture");
         }
         if (mSurface != null) {
+            nDestroyNativeWindow();
             mSurface.release();
         }
         mSurface = surfaceTexture;
+        nCreateNativeWindow(mSurface);
 
         /*
          * If the view is visible and we already made a layer, update the
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index e129a06..2e0729b 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -520,16 +520,6 @@
     }
 
     /**
-     * This method should be invoked whenever the current hardware renderer
-     * context should be reset.
-     *
-     * @param surface The surface to hardware accelerate
-     */
-    void invalidate(Surface surface) {
-        updateSurface(surface);
-    }
-
-    /**
      * Detaches the layer's surface texture from the GL context and releases
      * the texture id
      */
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d93f8af..51a188b 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -821,6 +821,16 @@
     static boolean sTextureViewIgnoresDrawableSetters = false;
 
     /**
+     * Prior to N, some ViewGroups would not convert LayoutParams properly even though both extend
+     * MarginLayoutParams. For instance, converting LinearLayout.LayoutParams to
+     * RelativeLayout.LayoutParams would lose margin information. This is fixed on N but target API
+     * check is implemented for backwards compatibility.
+     *
+     * {@hide}
+     */
+    protected static boolean sPreserveMarginParamsInLayoutParamConversion;
+
+    /**
      * This view does not want keystrokes. Use with TAKES_FOCUS_MASK when
      * calling setFlags.
      */
@@ -3760,9 +3770,9 @@
      * {@link android.os.Build.VERSION_CODES#N API 24} will be able to participate
      * in the drag operation and receive the dragged content.
      *
-     * If this is the only flag set, then the drag recipient will only have access to text data
+     * <p>If this is the only flag set, then the drag recipient will only have access to text data
      * and intents contained in the {@link ClipData} object. Access to URIs contained in the
-     * {@link ClipData} is determined by other DRAG_FLAG_GLOBAL_* flags.
+     * {@link ClipData} is determined by other DRAG_FLAG_GLOBAL_* flags</p>
      */
     public static final int DRAG_FLAG_GLOBAL = 1 << 8;  // 256
 
@@ -4052,6 +4062,10 @@
             // On N+, we throw, but that breaks compatibility with apps that use these methods.
             sTextureViewIgnoresDrawableSetters = targetSdkVersion <= M;
 
+            // Prior to N, we would drop margins in LayoutParam conversions. The fix triggers bugs
+            // in apps so we target check it to avoid breaking existing apps.
+            sPreserveMarginParamsInLayoutParamConversion = targetSdkVersion >= N;
+
             sCompatibilityDone = true;
         }
     }
@@ -9837,6 +9851,18 @@
     }
 
     /**
+     * Tells whether the {@link View} is in the state between {@link #onStartTemporaryDetach()}
+     * and {@link #onFinishTemporaryDetach()}.
+     *
+     * <p>This method always returns {@code true} when called directly or indirectly from
+     * {@link #onStartTemporaryDetach()}. The return value when called directly or indirectly from
+     * {@link #onFinishTemporaryDetach()}, however, depends on the OS version.
+     * <ul>
+     *     <li>{@code true} on {@link android.os.Build.VERSION_CODES#N API 24}</li>
+     *     <li>{@code false} on {@link android.os.Build.VERSION_CODES#N_MR1 API 25}} and later</li>
+     * </ul>
+     * </p>
+     *
      * @return {@code true} when the View is in the state between {@link #onStartTemporaryDetach()}
      * and {@link #onFinishTemporaryDetach()}.
      */
@@ -9871,8 +9897,11 @@
      */
     @CallSuper
     public void dispatchFinishTemporaryDetach() {
-        onFinishTemporaryDetach();
         mPrivateFlags3 &= ~PFLAG3_TEMPORARY_DETACH;
+        onFinishTemporaryDetach();
+        if (hasWindowFocus() && hasFocus()) {
+            InputMethodManager.getInstance().focusIn(this);
+        }
     }
 
     /**
@@ -12359,6 +12388,10 @@
     public void setAlpha(@FloatRange(from=0.0, to=1.0) float alpha) {
         ensureTransformationInfo();
         if (mTransformationInfo.mAlpha != alpha) {
+            // Report visibility changes, which can affect children, to accessibility
+            if ((alpha == 0) ^ (mTransformationInfo.mAlpha == 0)) {
+                notifySubtreeAccessibilityStateChangedIfNeeded();
+            }
             mTransformationInfo.mAlpha = alpha;
             if (onSetAlpha((int) (alpha * 255))) {
                 mPrivateFlags |= PFLAG_ALPHA_SET;
@@ -12369,8 +12402,6 @@
                 mPrivateFlags &= ~PFLAG_ALPHA_SET;
                 invalidateViewProperty(true, false);
                 mRenderNode.setAlpha(getFinalAlpha());
-                notifyViewAccessibilityStateChangedIfNeeded(
-                        AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
             }
         }
     }
@@ -14778,26 +14809,14 @@
     }
 
     private void getRoundVerticalScrollBarBounds(Rect bounds) {
-        final int inside = (mViewFlags & SCROLLBARS_OUTSIDE_MASK) == 0 ? ~0 : 0;
-        int verticalScrollbarPosition = mVerticalScrollbarPosition;
-        if (verticalScrollbarPosition == SCROLLBAR_POSITION_DEFAULT) {
-            verticalScrollbarPosition = isLayoutRtl() ?
-                    SCROLLBAR_POSITION_LEFT : SCROLLBAR_POSITION_RIGHT;
-        }
         final int width = mRight - mLeft;
         final int height = mBottom - mTop;
-        switch (verticalScrollbarPosition) {
-            default:
-            case SCROLLBAR_POSITION_RIGHT:
-                bounds.left = mScrollX - (mUserPaddingRight & inside);
-                break;
-            case SCROLLBAR_POSITION_LEFT:
-                bounds.left = mScrollX + (mUserPaddingLeft & inside);
-                break;
-        }
-        bounds.top = mScrollY + (mPaddingTop & inside);
+        // Do not take padding into account as we always want the scrollbars
+        // to hug the screen for round wearable devices.
+        bounds.left = mScrollX;
+        bounds.top = mScrollY;
         bounds.right = bounds.left + width;
-        bounds.bottom = mScrollY + height - (mUserPaddingBottom & inside);
+        bounds.bottom = mScrollY + height;
     }
 
     private void getStraightVerticalScrollBarBounds(Rect bounds) {
@@ -20643,7 +20662,6 @@
      *         <li>{@link #DRAG_FLAG_GLOBAL}</li>
      *         <li>{@link #DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION}</li>
      *         <li>{@link #DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION}</li>
-     *         <li>{@link #DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION}</li>
      *         <li>{@link #DRAG_FLAG_GLOBAL_URI_READ}</li>
      *         <li>{@link #DRAG_FLAG_GLOBAL_URI_WRITE}</li>
      *         <li>{@link #DRAG_FLAG_OPAQUE}</li>
@@ -22960,7 +22978,7 @@
         /**
          * Last global system UI visibility reported by the window manager.
          */
-        int mGlobalSystemUiVisibility;
+        int mGlobalSystemUiVisibility = -1;
 
         /**
          * True if a view in this hierarchy has an OnSystemUiVisibilityChangeListener
@@ -23851,7 +23869,7 @@
      * on the screen.
      */
     private boolean shouldDrawRoundScrollbar() {
-        if (!mResources.getConfiguration().isScreenRound()) {
+        if (!mResources.getConfiguration().isScreenRound() || mAttachInfo == null) {
             return false;
         }
 
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 4d584a3..9a73d0b 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -64,6 +64,12 @@
     private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500;
 
     /**
+     * Defines the default duration in milliseconds between the first tap's up event and the second
+     * tap's down event for an interaction to be considered part of the same multi-press.
+     */
+    private static final int DEFAULT_MULTI_PRESS_TIMEOUT = 300;
+
+    /**
      * Defines the time between successive key repeats in milliseconds.
      */
     private static final int KEY_REPEAT_DELAY = 50;
@@ -441,6 +447,16 @@
     }
 
     /**
+     * @return the duration in milliseconds between the first tap's up event and the second tap's
+     * down event for an interaction to be considered part of the same multi-press.
+     * @hide
+     */
+    public static int getMultiPressTimeout() {
+        return AppGlobals.getIntCoreSetting(Settings.Secure.MULTI_PRESS_TIMEOUT,
+                DEFAULT_MULTI_PRESS_TIMEOUT);
+    }
+
+    /**
      * @return the time before the first key repeat in milliseconds.
      */
     public static int getKeyRepeatTimeout() {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 4dc1009..03c97bd 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -6039,7 +6039,8 @@
                 return true;
             }
             return mEvent instanceof MotionEvent
-                    && mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER);
+                    && (mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER)
+                        || mEvent.isFromSource(InputDevice.SOURCE_ROTARY_ENCODER));
         }
 
         public boolean shouldSendToSynthesizer() {
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index fe24230..0dbf00d 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -221,6 +221,7 @@
          * @see #TYPE_BASE_APPLICATION
          * @see #TYPE_APPLICATION
          * @see #TYPE_APPLICATION_STARTING
+         * @see #TYPE_DRAWN_APPLICATION
          * @see #TYPE_APPLICATION_PANEL
          * @see #TYPE_APPLICATION_MEDIA
          * @see #TYPE_APPLICATION_SUB_PANEL
@@ -244,6 +245,7 @@
             @ViewDebug.IntToString(from = TYPE_BASE_APPLICATION, to = "TYPE_BASE_APPLICATION"),
             @ViewDebug.IntToString(from = TYPE_APPLICATION, to = "TYPE_APPLICATION"),
             @ViewDebug.IntToString(from = TYPE_APPLICATION_STARTING, to = "TYPE_APPLICATION_STARTING"),
+            @ViewDebug.IntToString(from = TYPE_DRAWN_APPLICATION, to = "TYPE_DRAWN_APPLICATION"),
             @ViewDebug.IntToString(from = TYPE_APPLICATION_PANEL, to = "TYPE_APPLICATION_PANEL"),
             @ViewDebug.IntToString(from = TYPE_APPLICATION_MEDIA, to = "TYPE_APPLICATION_MEDIA"),
             @ViewDebug.IntToString(from = TYPE_APPLICATION_SUB_PANEL, to = "TYPE_APPLICATION_SUB_PANEL"),
@@ -315,6 +317,13 @@
         public static final int TYPE_APPLICATION_STARTING = 3;
 
         /**
+         * Window type: a variation on TYPE_APPLICATION that ensures the window
+         * manager will wait for this window to be drawn before the app is shown.
+         * In multiuser systems shows only on the owning user's window.
+         */
+        public static final int TYPE_DRAWN_APPLICATION = 4;
+
+        /**
          * End of types of application windows.
          */
         public static final int LAST_APPLICATION_WINDOW = 99;
@@ -636,7 +645,7 @@
 
         /**
          * Window type: shares similar characteristics with {@link #TYPE_DREAM}. The layer is
-         * reserved for screenshot region selection.
+         * reserved for screenshot region selection. These windows must not take input focus.
          * @hide
          */
         public static final int TYPE_SCREENSHOT = FIRST_SYSTEM_WINDOW + 36;
@@ -1581,6 +1590,15 @@
         public static final int ROTATION_ANIMATION_JUMPCUT = 2;
 
         /**
+         * Value for {@link #rotationAnimation} to specify seamless rotation mode.
+         * This works like JUMPCUT but will fall back to CROSSFADE if rotation
+         * can't be applied without pausing the screen.
+         *
+         * @hide
+         */
+        public static final int ROTATION_ANIMATION_SEAMLESS = 3;
+
+        /**
          * Define the exit and entry animations used on this window when the device is rotated.
          * This only has an affect if the incoming and outgoing topmost
          * opaque windows have the #FLAG_FULLSCREEN bit set and are not covered
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 9a8c8a8..b52e4b0 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -136,6 +136,12 @@
             throws RemoteException;
 
     /**
+     * @return true if windows with FLAG_DISMISS_KEYGUARD should be allowed to show even if
+     *         the keyguard is locked.
+     */
+    boolean canShowDismissingWindowWhileLockedLw();
+
+    /**
      * Interface to the Window Manager state associated with a particular
      * window.  You can hold on to an instance of this interface from the call
      * to prepareAddWindow() until removeWindow().
@@ -478,6 +484,7 @@
         public void switchInputMethod(boolean forwardDirection);
 
         public void shutdown(boolean confirm);
+        public void reboot(boolean confirm);
         public void rebootSafeMode(boolean confirm);
 
         /**
diff --git a/core/java/android/view/animation/AnimationUtils.java b/core/java/android/view/animation/AnimationUtils.java
index a54d94c..351b6db 100644
--- a/core/java/android/view/animation/AnimationUtils.java
+++ b/core/java/android/view/animation/AnimationUtils.java
@@ -44,6 +44,31 @@
     private static final int TOGETHER = 0;
     private static final int SEQUENTIALLY = 1;
 
+    private static class AnimationState {
+        boolean animationClockLocked;
+        long currentVsyncTimeMillis;
+        long lastReportedTimeMillis;
+    };
+
+    private static ThreadLocal<AnimationState> sAnimationState
+            = new ThreadLocal<AnimationState>() {
+        @Override
+        protected AnimationState initialValue() {
+            return new AnimationState();
+        }
+    };
+
+    /** @hide */
+    public static void lockAnimationClock(long vsyncMillis) {
+        AnimationState state = sAnimationState.get();
+        state.animationClockLocked = true;
+        state.currentVsyncTimeMillis = vsyncMillis;
+    }
+
+    /** @hide */
+    public static void unlockAnimationClock() {
+        sAnimationState.get().animationClockLocked = false;
+    }
 
     /**
      * Returns the current animation time in milliseconds. This time should be used when invoking
@@ -56,7 +81,14 @@
      * @see android.os.SystemClock
      */
     public static long currentAnimationTimeMillis() {
-        return SystemClock.uptimeMillis();
+        AnimationState state = sAnimationState.get();
+        if (state.animationClockLocked) {
+            // It's important that time never rewinds
+            return Math.max(state.currentVsyncTimeMillis,
+                    state.lastReportedTimeMillis);
+        }
+        state.lastReportedTimeMillis = SystemClock.uptimeMillis();
+        return state.lastReportedTimeMillis;
     }
 
     /**
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index b65f933..7b45d8c 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -1546,7 +1546,7 @@
         switch (action) {
             case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD:
             case R.id.accessibilityActionScrollDown: {
-                if (isEnabled() && getLastVisiblePosition() < getCount() - 1) {
+                if (isEnabled() && canScrollDown()) {
                     final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom;
                     smoothScrollBy(viewportHeight, PositionScroller.SCROLL_DURATION);
                     return true;
@@ -1554,7 +1554,7 @@
             } return false;
             case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD:
             case R.id.accessibilityActionScrollUp: {
-                if (isEnabled() && mFirstPosition > 0) {
+                if (isEnabled() && canScrollUp()) {
                     final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom;
                     smoothScrollBy(-viewportHeight, PositionScroller.SCROLL_DURATION);
                     return true;
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java
index 2fd52b5..af22ec7 100755
--- a/core/java/android/widget/DatePickerCalendarDelegate.java
+++ b/core/java/android/widget/DatePickerCalendarDelegate.java
@@ -65,6 +65,8 @@
 
     private SimpleDateFormat mYearFormat;
     private SimpleDateFormat mMonthDayFormat;
+    private SimpleDateFormat mAccessibilityEventFormat;
+
 
     // Top-level container.
     private ViewGroup mContainer;
@@ -307,6 +309,9 @@
         mMonthDayFormat.setContext(DisplayContext.CAPITALIZATION_FOR_STANDALONE);
         mYearFormat = new SimpleDateFormat("y", locale);
 
+        // Clear out the lazily-initialized accessibility event formatter.
+        mAccessibilityEventFormat = null;
+
         // Update the header text.
         onCurrentDateChanged(false);
     }
@@ -586,7 +591,12 @@
 
     @Override
     public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
-        event.getText().add(mCurrentDate.getTime().toString());
+        if (mAccessibilityEventFormat == null) {
+            final String pattern = DateFormat.getBestDateTimePattern(mCurrentLocale, "EMMMMdy");
+            mAccessibilityEventFormat = new SimpleDateFormat(pattern);
+        }
+        final CharSequence text = mAccessibilityEventFormat.format(mCurrentDate.getTime());
+        event.getText().add(text);
     }
 
     public CharSequence getAccessibilityClassName() {
diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java
index 029313c..b8c74d8 100644
--- a/core/java/android/widget/FrameLayout.java
+++ b/core/java/android/widget/FrameLayout.java
@@ -382,13 +382,14 @@
 
     @Override
     protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
-        if (lp instanceof LayoutParams) {
-            return new LayoutParams((LayoutParams) lp);
-        } else if (lp instanceof MarginLayoutParams) {
-            return new LayoutParams((MarginLayoutParams) lp);
-        } else {
-            return new LayoutParams(lp);
+        if (sPreserveMarginParamsInLayoutParamConversion) {
+            if (lp instanceof LayoutParams) {
+                return new LayoutParams((LayoutParams) lp);
+            } else if (lp instanceof MarginLayoutParams) {
+                return new LayoutParams((MarginLayoutParams) lp);
+            }
         }
+        return new LayoutParams(lp);
     }
 
     @Override
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java
index 726586e..af2852c 100644
--- a/core/java/android/widget/GridLayout.java
+++ b/core/java/android/widget/GridLayout.java
@@ -868,13 +868,14 @@
 
     @Override
     protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
-        if (lp instanceof LayoutParams) {
-            return new LayoutParams((LayoutParams) lp);
-        } else if (lp instanceof MarginLayoutParams) {
-            return new LayoutParams((MarginLayoutParams) lp);
-        } else {
-            return new LayoutParams(lp);
+        if (sPreserveMarginParamsInLayoutParamConversion) {
+            if (lp instanceof LayoutParams) {
+                return new LayoutParams((LayoutParams) lp);
+            } else if (lp instanceof MarginLayoutParams) {
+                return new LayoutParams((MarginLayoutParams) lp);
+            }
         }
+        return new LayoutParams(lp);
     }
 
     // Draw grid
diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java
index 38d7cd4..f897372 100644
--- a/core/java/android/widget/LinearLayout.java
+++ b/core/java/android/widget/LinearLayout.java
@@ -1844,13 +1844,14 @@
 
     @Override
     protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
-        if (lp instanceof LayoutParams) {
-            return new LayoutParams((LayoutParams) lp);
-        } else if (lp instanceof MarginLayoutParams) {
-            return new LayoutParams((MarginLayoutParams) lp);
-        } else {
-            return new LayoutParams(lp);
+        if (sPreserveMarginParamsInLayoutParamConversion) {
+            if (lp instanceof LayoutParams) {
+                return new LayoutParams((LayoutParams) lp);
+            } else if (lp instanceof MarginLayoutParams) {
+                return new LayoutParams((MarginLayoutParams) lp);
+            }
         }
+        return new LayoutParams(lp);
     }
 
 
diff --git a/core/java/android/widget/RadialTimePickerView.java b/core/java/android/widget/RadialTimePickerView.java
index 02ee2df..6f198e7 100644
--- a/core/java/android/widget/RadialTimePickerView.java
+++ b/core/java/android/widget/RadialTimePickerView.java
@@ -16,7 +16,11 @@
 
 package android.widget;
 
+import com.android.internal.R;
+import com.android.internal.widget.ExploreByTouchHelper;
+
 import android.animation.ObjectAnimator;
+import android.annotation.IntDef;
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
@@ -43,9 +47,8 @@
 import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
 
-import com.android.internal.R;
-import com.android.internal.widget.ExploreByTouchHelper;
-
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.Calendar;
 import java.util.Locale;
 
@@ -55,11 +58,16 @@
  * @hide
  */
 public class RadialTimePickerView extends View {
-
     private static final String TAG = "RadialTimePickerView";
 
     public static final int HOURS = 0;
     public static final int MINUTES = 1;
+
+    /** @hide */
+    @IntDef({HOURS, MINUTES})
+    @Retention(RetentionPolicy.SOURCE)
+    @interface PickerType {}
+
     private static final int HOURS_INNER = 2;
 
     private static final int SELECTOR_CIRCLE = 0;
@@ -185,8 +193,24 @@
 
     private boolean mInputEnabled = true;
 
-    public interface OnValueSelectedListener {
-        void onValueSelected(int pickerIndex, int newValue, boolean autoAdvance);
+    interface OnValueSelectedListener {
+        /**
+         * Called when the selected value at a given picker index has changed.
+         *
+         * @param pickerType the type of value that has changed, one of:
+         *                   <ul>
+         *                       <li>{@link #MINUTES}
+         *                       <li>{@link #HOURS}
+         *                   </ul>
+         * @param newValue the new value as minute in hour (0-59) or hour in
+         *                 day (0-23)
+         * @param autoAdvance when the picker type is {@link #HOURS},
+         *                    {@code true} to switch to the {@link #MINUTES}
+         *                    picker or {@code false} to stay on the current
+         *                    picker. No effect when picker type is
+         *                    {@link #MINUTES}.
+         */
+        void onValueSelected(@PickerType int pickerType, int newValue, boolean autoAdvance);
     }
 
     /**
@@ -977,7 +1001,7 @@
         // Ensure we're showing the correct picker.
         animatePicker(mShowHours, ANIM_DURATION_TOUCH);
 
-        final int type;
+        final @PickerType int type;
         final int newValue;
         final boolean valueChanged;
 
diff --git a/core/java/android/widget/RatingBar.java b/core/java/android/widget/RatingBar.java
index 2230961..3ad05b5 100644
--- a/core/java/android/widget/RatingBar.java
+++ b/core/java/android/widget/RatingBar.java
@@ -110,8 +110,8 @@
         }
 
         // A touch inside a star fill up to that fractional area (slightly more
-        // than 1 so boundaries round up).
-        mTouchProgressOffset = 1.1f;
+        // than 0.5 so boundaries round up).
+        mTouchProgressOffset = 0.6f;
     }
 
     public RatingBar(Context context, AttributeSet attrs) {
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 0136542..a189d3c 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -1104,13 +1104,14 @@
 
     @Override
     protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
-        if (lp instanceof LayoutParams) {
-            return new LayoutParams((LayoutParams) lp);
-        } else if (lp instanceof MarginLayoutParams) {
-            return new LayoutParams((MarginLayoutParams) lp);
-        } else {
-            return new LayoutParams(lp);
+        if (sPreserveMarginParamsInLayoutParamConversion) {
+            if (lp instanceof LayoutParams) {
+                return new LayoutParams((LayoutParams) lp);
+            } else if (lp instanceof MarginLayoutParams) {
+                return new LayoutParams((MarginLayoutParams) lp);
+            }
         }
+        return new LayoutParams(lp);
     }
 
     /** @hide */
diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java
index c21f1df..aa0b93d 100644
--- a/core/java/android/widget/TimePickerClockDelegate.java
+++ b/core/java/android/widget/TimePickerClockDelegate.java
@@ -61,9 +61,6 @@
     private static final int HOUR_INDEX = RadialTimePickerView.HOURS;
     private static final int MINUTE_INDEX = RadialTimePickerView.MINUTES;
 
-    // NOT a real index for the purpose of what's showing.
-    private static final int AMPM_INDEX = 2;
-
     private static final int[] ATTRS_TEXT_COLOR = new int[] {R.attr.textColor};
     private static final int[] ATTRS_DISABLED_ALPHA = new int[] {R.attr.disabledAlpha};
 
@@ -701,22 +698,21 @@
     /** Listener for RadialTimePickerView interaction. */
     private final OnValueSelectedListener mOnValueSelectedListener = new OnValueSelectedListener() {
         @Override
-        public void onValueSelected(int pickerIndex, int newValue, boolean autoAdvance) {
-            switch (pickerIndex) {
-                case HOUR_INDEX:
+        public void onValueSelected(int pickerType, int newValue, boolean autoAdvance) {
+            switch (pickerType) {
+                case RadialTimePickerView.HOURS:
                     final boolean isTransition = mAllowAutoAdvance && autoAdvance;
                     setHourInternal(newValue, true, !isTransition);
                     if (isTransition) {
                         setCurrentItemShowing(MINUTE_INDEX, true, false);
-                        mDelegator.announceForAccessibility(newValue + ". " + mSelectMinutes);
+
+                        final int localizedHour = getLocalizedHour(newValue);
+                        mDelegator.announceForAccessibility(localizedHour + ". " + mSelectMinutes);
                     }
                     break;
-                case MINUTE_INDEX:
+                case RadialTimePickerView.MINUTES:
                     setMinuteInternal(newValue, true);
                     break;
-                case AMPM_INDEX:
-                    updateAmPmLabelStates(newValue);
-                    break;
             }
 
             if (mOnTimeChangedListener != null) {
diff --git a/core/java/com/android/internal/app/AssistUtils.java b/core/java/com/android/internal/app/AssistUtils.java
index 56c5cc9..2940079 100644
--- a/core/java/com/android/internal/app/AssistUtils.java
+++ b/core/java/com/android/internal/app/AssistUtils.java
@@ -16,10 +16,13 @@
 
 package com.android.internal.app;
 
+import com.android.internal.R;
+
 import android.app.SearchManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
@@ -166,4 +169,41 @@
         return null;
     }
 
+    public static boolean isPreinstalledAssistant(Context context, ComponentName assistant) {
+        if (assistant == null) {
+            return false;
+        }
+        ApplicationInfo applicationInfo;
+        try {
+            applicationInfo = context.getPackageManager().getApplicationInfo(
+                    assistant.getPackageName(), 0);
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+        return applicationInfo.isSystemApp() || applicationInfo.isUpdatedSystemApp();
+    }
+
+    private static boolean isDisclosureEnabled(Context context) {
+        return Settings.Secure.getInt(context.getContentResolver(),
+                Settings.Secure.ASSIST_DISCLOSURE_ENABLED, 0) != 0;
+    }
+
+    /**
+     * @return if the disclosure animation should trigger for the given assistant.
+     *
+     * Third-party assistants will always need to disclose, while the user can configure this for
+     * pre-installed assistants.
+     */
+    public static boolean shouldDisclose(Context context, ComponentName assistant) {
+        if (!allowDisablingAssistDisclosure(context)) {
+            return true;
+        }
+
+        return isDisclosureEnabled(context) || !isPreinstalledAssistant(context, assistant);
+    }
+
+    public static boolean allowDisablingAssistDisclosure(Context context) {
+        return context.getResources().getBoolean(
+                com.android.internal.R.bool.config_allowDisablingAssistDisclosure);
+    }
 }
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index b174e33..2538d60 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -108,7 +108,7 @@
     private static final int MAGIC = 0xBA757475; // 'BATSTATS'
 
     // Current on-disk Parcel version
-    private static final int VERSION = 148 + (USE_OLD_HISTORY ? 1000 : 0);
+    private static final int VERSION = 150 + (USE_OLD_HISTORY ? 1000 : 0);
 
     // Maximum number of items we will record in the history.
     private static final int MAX_HISTORY_ITEMS = 2000;
@@ -1415,22 +1415,6 @@
             mUnpluggedReportedCount = 0;
             return true;
         }
-
-        @Override
-        public void writeSummaryFromParcelLocked(Parcel out, long batteryRealtime) {
-            super.writeSummaryFromParcelLocked(out, batteryRealtime);
-            out.writeLong(mCurrentReportedTotalTime);
-            out.writeInt(mCurrentReportedCount);
-            out.writeInt(mTrackingReportedValues ? 1 : 0);
-        }
-
-        @Override
-        public void readSummaryFromParcelLocked(Parcel in) {
-            super.readSummaryFromParcelLocked(in);
-            mUnpluggedReportedTotalTime = mCurrentReportedTotalTime = in.readLong();
-            mUnpluggedReportedCount = mCurrentReportedCount = in.readInt();
-            mTrackingReportedValues = in.readInt() == 1;
-        }
     }
 
     /**
@@ -1566,6 +1550,186 @@
         }
     }
 
+
+    /**
+     * A StopwatchTimer that also tracks the total and max individual
+     * time spent active according to the given timebase.  Whereas
+     * StopwatchTimer apportions the time amongst all in the pool,
+     * the total and max durations are not apportioned.
+     */
+    public static class DurationTimer extends StopwatchTimer {
+        /**
+         * The time (in ms) that the timer was last acquired or the time base
+         * last (re-)started. Increasing the nesting depth does not reset this time.
+         *
+         * -1 if the timer is currently not running or the time base is not running.
+         *
+         * If written to a parcel, the start time is reset, as is mNesting in the base class
+         * StopwatchTimer.
+         */
+        long mStartTimeMs = -1;
+
+        /**
+         * The longest time period (in ms) that the timer has been active.
+         */
+        long mMaxDurationMs;
+
+        /**
+         * The total time (in ms) that that the timer has been active since reset().
+         */
+        long mCurrentDurationMs;
+
+        public DurationTimer(Clocks clocks, Uid uid, int type, ArrayList<StopwatchTimer> timerPool,
+                TimeBase timeBase, Parcel in) {
+            super(clocks, uid, type, timerPool, timeBase, in);
+            mMaxDurationMs = in.readLong();
+        }
+
+        public DurationTimer(Clocks clocks, Uid uid, int type, ArrayList<StopwatchTimer> timerPool,
+                TimeBase timeBase) {
+            super(clocks, uid, type, timerPool, timeBase);
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, long elapsedRealtimeUs) {
+            super.writeToParcel(out, elapsedRealtimeUs);
+            out.writeLong(mMaxDurationMs);
+        }
+
+        /**
+         * Write the summary to the parcel.
+         *
+         * Since the time base is probably meaningless after we come back, reading
+         * from this will have the effect of stopping the timer. So here all we write
+         * is the max duration.
+         */
+        @Override
+        public void writeSummaryFromParcelLocked(Parcel out, long elapsedRealtimeUs) {
+            super.writeSummaryFromParcelLocked(out, elapsedRealtimeUs);
+            out.writeLong(mMaxDurationMs);
+        }
+
+        /**
+         * Read the summary parcel.
+         *
+         * Has the side effect of stopping the timer.
+         */
+        @Override
+        public void readSummaryFromParcelLocked(Parcel in) {
+            super.readSummaryFromParcelLocked(in);
+            mMaxDurationMs = in.readLong();
+            mStartTimeMs = -1;
+            mCurrentDurationMs = 0;
+        }
+
+        /**
+         * The TimeBase time started (again).
+         *
+         * If the timer is also running, store the start time.
+         */
+        public void onTimeStarted(long elapsedRealtimeUs, long baseUptime, long baseRealtime) {
+            super.onTimeStarted(elapsedRealtimeUs, baseUptime, baseRealtime);
+            if (mNesting > 0) {
+                mStartTimeMs = mTimeBase.getRealtime(mClocks.elapsedRealtime()*1000) / 1000;
+            }
+        }
+
+        /**
+         * The TimeBase stopped running.
+         *
+         * If the timer is running, add the duration into mCurrentDurationMs.
+         */
+        @Override
+        public void onTimeStopped(long elapsedRealtimeUs, long baseUptime, long baseRealtime) {
+            super.onTimeStopped(elapsedRealtimeUs, baseUptime, baseRealtime);
+            if (mNesting > 0) {
+                mCurrentDurationMs += (elapsedRealtimeUs / 1000) - mStartTimeMs;
+            }
+            mStartTimeMs = -1;
+        }
+
+        @Override
+        public void logState(Printer pw, String prefix) {
+            super.logState(pw, prefix);
+        }
+
+        @Override
+        public void startRunningLocked(long elapsedRealtimeMs) {
+            super.startRunningLocked(elapsedRealtimeMs);
+            if (mNesting == 1 && mTimeBase.isRunning()) {
+                // Just started
+                mStartTimeMs = mTimeBase.getRealtime(mClocks.elapsedRealtime()*1000) / 1000;
+            }
+        }
+
+        /**
+         * Decrements the mNesting ref-count on this timer.
+         *
+         * If it actually stopped (mNesting went to 0), then possibly update
+         * mMaxDuration if the current duration was the longest ever.
+         */
+        @Override
+        public void stopRunningLocked(long elapsedRealtimeMs) {
+            super.stopRunningLocked(elapsedRealtimeMs);
+            if (mNesting == 0) {
+                final long durationMs = getCurrentDurationMsLocked(elapsedRealtimeMs);
+                if (durationMs > mMaxDurationMs) {
+                    mMaxDurationMs = durationMs;
+                }
+                mStartTimeMs = -1;
+                mCurrentDurationMs = 0;
+            }
+        }
+
+        @Override
+        public boolean reset(boolean detachIfReset) {
+            boolean result = super.reset(detachIfReset);
+            mMaxDurationMs = 0;
+            mCurrentDurationMs = 0;
+            if (mNesting > 0) {
+                mStartTimeMs = mTimeBase.getRealtime(mClocks.elapsedRealtime()*1000) / 1000;
+            } else {
+                mStartTimeMs = -1;
+            }
+            return result;
+        }
+
+        /**
+         * Returns the max duration that this timer has ever seen.
+         *
+         * Note that this time is NOT split between the timers in the timer group that
+         * this timer is attached to.  It is the TOTAL time.
+         */
+        @Override
+        public long getMaxDurationMsLocked(long elapsedRealtimeMs) {
+            if (mNesting > 0) {
+                final long durationMs = getCurrentDurationMsLocked(elapsedRealtimeMs);
+                if (durationMs > mMaxDurationMs) {
+                    return durationMs;
+                }
+            }
+            return mMaxDurationMs;
+        }
+
+        /**
+         * Returns the time since the timer was started.
+         *
+         * Note that this time is NOT split between the timers in the timer group that
+         * this timer is attached to.  It is the TOTAL time.
+         */
+        @Override
+        public long getCurrentDurationMsLocked(long elapsedRealtimeMs) {
+            long durationMs = mCurrentDurationMs;
+            if (mNesting > 0) {
+                if (mTimeBase.isRunning()) {
+                    durationMs += (mTimeBase.getRealtime(elapsedRealtimeMs*1000)/1000)
+                            - mStartTimeMs;
+                }
+            }
+            return durationMs;
+        }
+    }
+
     /**
      * State for keeping track of timing information.
      */
@@ -1791,11 +1955,17 @@
     public abstract class OverflowArrayMap<T> {
         private static final String OVERFLOW_NAME = "*overflow*";
 
+        final int mUid;
         final ArrayMap<String, T> mMap = new ArrayMap<>();
         T mCurOverflow;
         ArrayMap<String, MutableInt> mActiveOverflow;
+        long mLastOverflowTime;
+        long mLastOverflowFinishTime;
+        long mLastClearTime;
+        long mLastCleanupTime;
 
-        public OverflowArrayMap() {
+        public OverflowArrayMap(int uid) {
+            mUid = uid;
         }
 
         public ArrayMap<String, T> getMap() {
@@ -1803,6 +1973,7 @@
         }
 
         public void clear() {
+            mLastClearTime = SystemClock.elapsedRealtime();
             mMap.clear();
             mCurOverflow = null;
             mActiveOverflow = null;
@@ -1819,6 +1990,7 @@
         }
 
         public void cleanup() {
+            mLastCleanupTime = SystemClock.elapsedRealtime();
             if (mActiveOverflow != null) {
                 if (mActiveOverflow.size() == 0) {
                     mActiveOverflow = null;
@@ -1885,6 +2057,7 @@
                     mActiveOverflow = new ArrayMap<>();
                 }
                 mActiveOverflow.put(name, new MutableInt(1));
+                mLastOverflowTime = SystemClock.elapsedRealtime();
                 return obj;
             }
 
@@ -1914,6 +2087,7 @@
                         over.value--;
                         if (over.value <= 0) {
                             mActiveOverflow.remove(name);
+                            mLastOverflowFinishTime = SystemClock.elapsedRealtime();
                         }
                         return obj;
                     }
@@ -1922,9 +2096,35 @@
 
             // Huh, they are stopping an active operation but we can't find one!
             // That's not good.
-            Slog.wtf(TAG, "Unable to find object for " + name + " mapsize="
-                    + mMap.size() + " activeoverflow=" + mActiveOverflow
-                    + " curoverflow=" + mCurOverflow);
+            StringBuilder sb = new StringBuilder();
+            sb.append("Unable to find object for ");
+            sb.append(name);
+            sb.append(" in uid ");
+            sb.append(mUid);
+            sb.append(" mapsize=");
+            sb.append(mMap.size());
+            sb.append(" activeoverflow=");
+            sb.append(mActiveOverflow);
+            sb.append(" curoverflow=");
+            sb.append(mCurOverflow);
+            long now = SystemClock.elapsedRealtime();
+            if (mLastOverflowTime != 0) {
+                sb.append(" lastOverflowTime=");
+                TimeUtils.formatDuration(mLastOverflowTime-now, sb);
+            }
+            if (mLastOverflowFinishTime != 0) {
+                sb.append(" lastOverflowFinishTime=");
+                TimeUtils.formatDuration(mLastOverflowFinishTime-now, sb);
+            }
+            if (mLastClearTime != 0) {
+                sb.append(" lastClearTime=");
+                TimeUtils.formatDuration(mLastClearTime-now, sb);
+            }
+            if (mLastCleanupTime != 0) {
+                sb.append(" lastCleanupTime=");
+                TimeUtils.formatDuration(mLastCleanupTime-now, sb);
+            }
+            Slog.wtf(TAG, sb.toString());
             return null;
         }
 
@@ -5084,18 +5284,18 @@
             mSystemCpuTime = new LongSamplingCounter(mBsi.mOnBatteryTimeBase);
             mCpuPower = new LongSamplingCounter(mBsi.mOnBatteryTimeBase);
 
-            mWakelockStats = mBsi.new OverflowArrayMap<Wakelock>() {
+            mWakelockStats = mBsi.new OverflowArrayMap<Wakelock>(uid) {
                 @Override public Wakelock instantiateObject() {
                     return new Wakelock(mBsi, Uid.this);
                 }
             };
-            mSyncStats = mBsi.new OverflowArrayMap<StopwatchTimer>() {
+            mSyncStats = mBsi.new OverflowArrayMap<StopwatchTimer>(uid) {
                 @Override public StopwatchTimer instantiateObject() {
                     return new StopwatchTimer(mBsi.mClocks, Uid.this, SYNC, null,
                             mBsi.mOnBatteryTimeBase);
                 }
             };
-            mJobStats = mBsi.new OverflowArrayMap<StopwatchTimer>() {
+            mJobStats = mBsi.new OverflowArrayMap<StopwatchTimer>(uid) {
                 @Override public StopwatchTimer instantiateObject() {
                     return new StopwatchTimer(mBsi.mClocks, Uid.this, JOB, null,
                             mBsi.mOnBatteryTimeBase);
@@ -6499,7 +6699,7 @@
             /**
              * How long (in ms) this uid has been keeping the device partially awake.
              */
-            StopwatchTimer mTimerPartial;
+            DurationTimer mTimerPartial;
 
             /**
              * How long (in ms) this uid has been keeping the device fully awake.
@@ -6528,8 +6728,8 @@
              * @param in the Parcel to be read from.
              * return a new Timer, or null.
              */
-            private StopwatchTimer readTimerFromParcel(int type, ArrayList<StopwatchTimer> pool,
-                    TimeBase timeBase, Parcel in) {
+            private StopwatchTimer readStopwatchTimerFromParcel(int type,
+                    ArrayList<StopwatchTimer> pool, TimeBase timeBase, Parcel in) {
                 if (in.readInt() == 0) {
                     return null;
                 }
@@ -6537,6 +6737,22 @@
                 return new StopwatchTimer(mBsi.mClocks, mUid, type, pool, timeBase, in);
             }
 
+            /**
+             * Reads a possibly null Timer from a Parcel.  The timer is associated with the
+             * proper timer pool from the given BatteryStatsImpl object.
+             *
+             * @param in the Parcel to be read from.
+             * return a new Timer, or null.
+             */
+            private DurationTimer readDurationTimerFromParcel(int type,
+                    ArrayList<StopwatchTimer> pool, TimeBase timeBase, Parcel in) {
+                if (in.readInt() == 0) {
+                    return null;
+                }
+
+                return new DurationTimer(mBsi.mClocks, mUid, type, pool, timeBase, in);
+            }
+
             boolean reset() {
                 boolean wlactive = false;
                 if (mTimerFull != null) {
@@ -6573,11 +6789,14 @@
             }
 
             void readFromParcelLocked(TimeBase timeBase, TimeBase screenOffTimeBase, Parcel in) {
-                mTimerPartial = readTimerFromParcel(WAKE_TYPE_PARTIAL,
+                mTimerPartial = readDurationTimerFromParcel(WAKE_TYPE_PARTIAL,
                         mBsi.mPartialTimers, screenOffTimeBase, in);
-                mTimerFull = readTimerFromParcel(WAKE_TYPE_FULL, mBsi.mFullTimers, timeBase, in);
-                mTimerWindow = readTimerFromParcel(WAKE_TYPE_WINDOW, mBsi.mWindowTimers, timeBase, in);
-                mTimerDraw = readTimerFromParcel(WAKE_TYPE_DRAW, mBsi.mDrawTimers, timeBase, in);
+                mTimerFull = readStopwatchTimerFromParcel(WAKE_TYPE_FULL,
+                        mBsi.mFullTimers, timeBase, in);
+                mTimerWindow = readStopwatchTimerFromParcel(WAKE_TYPE_WINDOW,
+                        mBsi.mWindowTimers, timeBase, in);
+                mTimerDraw = readStopwatchTimerFromParcel(WAKE_TYPE_DRAW,
+                        mBsi.mDrawTimers, timeBase, in);
             }
 
             void writeToParcelLocked(Parcel out, long elapsedRealtimeUs) {
@@ -6599,40 +6818,43 @@
             }
 
             public StopwatchTimer getStopwatchTimer(int type) {
-                StopwatchTimer t;
                 switch (type) {
-                    case WAKE_TYPE_PARTIAL:
-                        t = mTimerPartial;
+                    case WAKE_TYPE_PARTIAL: {
+                        DurationTimer t = mTimerPartial;
                         if (t == null) {
-                            t = new StopwatchTimer(mBsi.mClocks, mUid, WAKE_TYPE_PARTIAL,
+                            t = new DurationTimer(mBsi.mClocks, mUid, WAKE_TYPE_PARTIAL,
                                     mBsi.mPartialTimers, mBsi.mOnBatteryScreenOffTimeBase);
                             mTimerPartial = t;
                         }
                         return t;
-                    case WAKE_TYPE_FULL:
-                        t = mTimerFull;
+                    }
+                    case WAKE_TYPE_FULL: {
+                        StopwatchTimer t = mTimerFull;
                         if (t == null) {
                             t = new StopwatchTimer(mBsi.mClocks, mUid, WAKE_TYPE_FULL,
                                     mBsi.mFullTimers, mBsi.mOnBatteryTimeBase);
                             mTimerFull = t;
                         }
                         return t;
-                    case WAKE_TYPE_WINDOW:
-                        t = mTimerWindow;
+                    }
+                    case WAKE_TYPE_WINDOW: {
+                        StopwatchTimer t = mTimerWindow;
                         if (t == null) {
                             t = new StopwatchTimer(mBsi.mClocks, mUid, WAKE_TYPE_WINDOW,
                                     mBsi.mWindowTimers, mBsi.mOnBatteryTimeBase);
                             mTimerWindow = t;
                         }
                         return t;
-                    case WAKE_TYPE_DRAW:
-                        t = mTimerDraw;
+                    }
+                    case WAKE_TYPE_DRAW: {
+                        StopwatchTimer t = mTimerDraw;
                         if (t == null) {
                             t = new StopwatchTimer(mBsi.mClocks, mUid, WAKE_TYPE_DRAW,
                                     mBsi.mDrawTimers, mBsi.mOnBatteryTimeBase);
                             mTimerDraw = t;
                         }
                         return t;
+                    }
                     default:
                         throw new IllegalArgumentException("type=" + type);
                 }
diff --git a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
index c828d11..e8919ed 100644
--- a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
+++ b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
@@ -120,7 +120,7 @@
                             sb.append(" s=");
                             TimeUtils.formatDuration(systemTimeDeltaUs / 1000, sb);
                             sb.append(" p=").append(powerDeltaMaUs / 1000).append("mAms");
-                            Slog.wtf(TAG, sb.toString());
+                            Slog.e(TAG, sb.toString());
 
                             userTimeDeltaUs = 0;
                             systemTimeDeltaUs = 0;
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 73a3a0b..6829961 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -586,21 +586,42 @@
                 // System server is fully AOTed and never profiled
                 // for profile guided compilation.
                 // TODO: Make this configurable between INTERPRET_ONLY, SPEED, SPACE and EVERYTHING?
-                final int dexoptNeeded = DexFile.getDexOptNeeded(
+
+                int dexoptNeeded;
+                try {
+                    dexoptNeeded = DexFile.getDexOptNeeded(
                         classPathElement, instructionSet, "speed",
                         false /* newProfile */);
-                if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
-                    installer.dexopt(classPathElement, Process.SYSTEM_UID, instructionSet,
-                            dexoptNeeded, 0 /*dexFlags*/, "speed", null /*volumeUuid*/,
-                            sharedLibraries);
+                } catch (FileNotFoundException ignored) {
+                    // Do not add to the classpath.
+                    Log.w(TAG, "Missing classpath element for system server: " + classPathElement);
+                    continue;
+                } catch (IOException e) {
+                    // Not fully clear what to do here as we don't know the cause of the
+                    // IO exception. Add to the classpath to be conservative, but don't
+                    // attempt to compile it.
+                    Log.w(TAG, "Error checking classpath element for system server: "
+                            + classPathElement, e);
+                    dexoptNeeded = DexFile.NO_DEXOPT_NEEDED;
                 }
+
+                if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
+                    try {
+                        installer.dexopt(classPathElement, Process.SYSTEM_UID, instructionSet,
+                                dexoptNeeded, 0 /*dexFlags*/, "speed", null /*volumeUuid*/,
+                                sharedLibraries);
+                    } catch (InstallerException e) {
+                        // Ignore (but log), we need this on the classpath for fallback mode.
+                        Log.w(TAG, "Failed compiling classpath element for system server: "
+                                + classPathElement, e);
+                    }
+                }
+
                 if (!sharedLibraries.isEmpty()) {
                     sharedLibraries += ":";
                 }
                 sharedLibraries += classPathElement;
             }
-        } catch (IOException | InstallerException e) {
-            throw new RuntimeException("Error starting system_server", e);
         } finally {
             installer.disconnect();
         }
diff --git a/core/java/com/android/internal/policy/BackdropFrameRenderer.java b/core/java/com/android/internal/policy/BackdropFrameRenderer.java
index 0ab3a41..619303f 100644
--- a/core/java/com/android/internal/policy/BackdropFrameRenderer.java
+++ b/core/java/com/android/internal/policy/BackdropFrameRenderer.java
@@ -385,7 +385,7 @@
             final int size = DecorView.getNavBarSize(bottomInset, rightInset, leftInset);
             if (DecorView.isNavBarToRightEdge(bottomInset, rightInset)) {
                 mNavigationBarColor.setBounds(width - size, 0, width, height);
-            } else if (DecorView.isNavBarToLeftEdge(bottomInset, rightInset)) {
+            } else if (DecorView.isNavBarToLeftEdge(bottomInset, leftInset)) {
                 mNavigationBarColor.setBounds(0, 0, size, height);
             } else {
                 mNavigationBarColor.setBounds(0, height - size, width, height);
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 366fc1a..92ab324 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -101,6 +101,7 @@
 import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION;
 import static com.android.internal.policy.PhoneWindow.FEATURE_OPTIONS_PANEL;
 
 /** @hide */
@@ -1860,7 +1861,7 @@
         }
         final WindowManager.LayoutParams attrs = mWindow.getAttributes();
         final boolean isApplication = attrs.type == TYPE_BASE_APPLICATION ||
-                attrs.type == TYPE_APPLICATION;
+                attrs.type == TYPE_APPLICATION || attrs.type == TYPE_DRAWN_APPLICATION;
         // Only a non floating application window on one of the allowed workspaces can get a caption
         if (!mWindow.isFloating() && isApplication && StackId.hasWindowDecor(mStackId)) {
             // Dependent on the brightness of the used title we either use the
diff --git a/core/java/com/android/internal/policy/IKeyguardService.aidl b/core/java/com/android/internal/policy/IKeyguardService.aidl
index 171a264..83d75fb 100644
--- a/core/java/com/android/internal/policy/IKeyguardService.aidl
+++ b/core/java/com/android/internal/policy/IKeyguardService.aidl
@@ -34,7 +34,7 @@
     void addStateMonitorCallback(IKeyguardStateCallback callback);
     void verifyUnlock(IKeyguardExitCallback callback);
     void keyguardDone(boolean authenticated, boolean wakeup);
-    void dismiss();
+    void dismiss(boolean allowWhileOccluded);
     void onDreamingStarted();
     void onDreamingStopped();
 
diff --git a/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl b/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl
index db3b40b..8e454db 100644
--- a/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl
+++ b/core/java/com/android/internal/policy/IKeyguardStateCallback.aidl
@@ -19,4 +19,6 @@
     void onShowingStateChanged(boolean showing);
     void onSimSecureStateChanged(boolean simSecure);
     void onInputRestrictedStateChanged(boolean inputRestricted);
+    void onTrustedChanged(boolean trusted);
+    void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper);
 }
\ No newline at end of file
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 9ad750d..878f3a6 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -92,8 +92,6 @@
 import android.util.Log;
 import android.util.SparseArray;
 import android.util.TypedValue;
-import android.view.accessibility.AccessibilityNodeInfo;
-import android.view.accessibility.AccessibilityNodeProvider;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.widget.FrameLayout;
@@ -2057,9 +2055,6 @@
     }
 
     static private final String FOCUSED_ID_TAG = "android:focusedViewId";
-    static private final String ACCESSIBILITY_FOCUSED_ID_TAG = "android:accessibilityFocusedViewId";
-    static private final String ACCESSIBILITY_FOCUSED_VIRTUAL_ID_TAG =
-            "android:accessibilityFocusedVirtualViewId";
     static private final String VIEWS_TAG = "android:views";
     static private final String PANELS_TAG = "android:Panels";
     static private final String ACTION_BAR_TAG = "android:ActionBar";
@@ -2082,26 +2077,6 @@
             outState.putInt(FOCUSED_ID_TAG, focusedView.getId());
         }
 
-        // Save the accessibility focused view ID.
-        if (mDecor != null) {
-            final ViewRootImpl viewRootImpl = mDecor.getViewRootImpl();
-            if (viewRootImpl != null) {
-                final View accessFocusHost = viewRootImpl.getAccessibilityFocusedHost();
-                if (accessFocusHost != null && accessFocusHost.getId() != View.NO_ID) {
-                    outState.putInt(ACCESSIBILITY_FOCUSED_ID_TAG, accessFocusHost.getId());
-
-                    // If we have a focused virtual node ID, save that too.
-                    final AccessibilityNodeInfo accessFocusedNode =
-                            viewRootImpl.getAccessibilityFocusedVirtualView();
-                    if (accessFocusedNode != null) {
-                        final int virtualNodeId = AccessibilityNodeInfo.getVirtualDescendantId(
-                                accessFocusedNode.getSourceNodeId());
-                        outState.putInt(ACCESSIBILITY_FOCUSED_VIRTUAL_ID_TAG, virtualNodeId);
-                    }
-                }
-            }
-        }
-
         // save the panels
         SparseArray<Parcelable> panelStates = new SparseArray<Parcelable>();
         savePanelState(panelStates);
@@ -2144,13 +2119,6 @@
             }
         }
 
-        // Restore the accessibility focused view.
-        final int accessFocusHostViewId = savedInstanceState.getInt(
-                ACCESSIBILITY_FOCUSED_ID_TAG, View.NO_ID);
-        final int accessFocusVirtualViewId = savedInstanceState.getInt(
-                ACCESSIBILITY_FOCUSED_VIRTUAL_ID_TAG, AccessibilityNodeInfo.UNDEFINED_ITEM_ID);
-        tryRestoreAccessibilityFocus(accessFocusHostViewId, accessFocusVirtualViewId);
-
         // Restore the panels.
         SparseArray<Parcelable> panelStates = savedInstanceState.getSparseParcelableArray(PANELS_TAG);
         if (panelStates != null) {
@@ -2170,33 +2138,6 @@
         }
     }
 
-    private void tryRestoreAccessibilityFocus(int hostViewId, int virtualViewId) {
-        if (hostViewId != View.NO_ID && mDecor != null) {
-            final View needsAccessFocus = mDecor.findViewById(hostViewId);
-            if (needsAccessFocus != null) {
-                if (!tryFocusingVirtualView(needsAccessFocus, virtualViewId)
-                        && !needsAccessFocus.requestAccessibilityFocus()) {
-                    Log.w(TAG, "Failed to restore focus to previously accessibility"
-                            + " focused view with id " + hostViewId);
-                }
-            } else {
-                Log.w(TAG, "Previously accessibility focused view reported id " + hostViewId
-                        + " during save, but can't be found during restore.");
-            }
-        }
-    }
-
-    private boolean tryFocusingVirtualView(View host, int virtualViewId) {
-        if (virtualViewId != AccessibilityNodeInfo.UNDEFINED_ITEM_ID) {
-            final AccessibilityNodeProvider nodeProvider = host.getAccessibilityNodeProvider();
-            if (nodeProvider != null) {
-                return nodeProvider.performAction(virtualViewId,
-                        AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
-            }
-        }
-        return false;
-    }
-
     /**
      * Invoked when the panels should freeze their state.
      *
diff --git a/core/java/com/android/internal/view/menu/CascadingMenuPopup.java b/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
index ddf3a76..69e974c 100644
--- a/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
+++ b/core/java/com/android/internal/view/menu/CascadingMenuPopup.java
@@ -366,7 +366,7 @@
         final int menuWidth = measureIndividualMenuWidth(adapter, null, mContext, mMenuMaxWidth);
         final MenuPopupWindow popupWindow = createPopupWindow();
         popupWindow.setAdapter(adapter);
-        popupWindow.setWidth(menuWidth);
+        popupWindow.setContentWidth(menuWidth);
         popupWindow.setDropDownGravity(mDropDownGravity);
 
         final CascadingMenuInfo parentInfo;
diff --git a/core/java/com/android/internal/widget/CachingIconView.java b/core/java/com/android/internal/widget/CachingIconView.java
new file mode 100644
index 0000000..293b77b
--- /dev/null
+++ b/core/java/com/android/internal/widget/CachingIconView.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.internal.widget;
+
+import android.annotation.DrawableRes;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.RemotableViewMethod;
+import android.widget.ImageView;
+import android.widget.RemoteViews;
+
+import libcore.util.Objects;
+
+/**
+ * An ImageView for displaying an Icon. Avoids reloading the Icon when possible.
+ */
+@RemoteViews.RemoteView
+public class CachingIconView extends ImageView {
+
+    private String mLastPackage;
+    private int mLastResId;
+    private boolean mInternalSetDrawable;
+
+    public CachingIconView(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    @RemotableViewMethod(asyncImpl="setImageIconAsync")
+    public void setImageIcon(@Nullable Icon icon) {
+        if (!testAndSetCache(icon)) {
+            mInternalSetDrawable = true;
+            // This calls back to setImageDrawable, make sure we don't clear the cache there.
+            super.setImageIcon(icon);
+            mInternalSetDrawable = false;
+        }
+    }
+
+    @Override
+    public Runnable setImageIconAsync(@Nullable Icon icon) {
+        resetCache();
+        return super.setImageIconAsync(icon);
+    }
+
+    @Override
+    @RemotableViewMethod(asyncImpl="setImageResourceAsync")
+    public void setImageResource(@DrawableRes int resId) {
+        if (!testAndSetCache(resId)) {
+            mInternalSetDrawable = true;
+            // This calls back to setImageDrawable, make sure we don't clear the cache there.
+            super.setImageResource(resId);
+            mInternalSetDrawable = false;
+        }
+    }
+
+    @Override
+    public Runnable setImageResourceAsync(@DrawableRes int resId) {
+        resetCache();
+        return super.setImageResourceAsync(resId);
+    }
+
+    @Override
+    @RemotableViewMethod(asyncImpl="setImageURIAsync")
+    public void setImageURI(@Nullable Uri uri) {
+        resetCache();
+        super.setImageURI(uri);
+    }
+
+    @Override
+    public Runnable setImageURIAsync(@Nullable Uri uri) {
+        resetCache();
+        return super.setImageURIAsync(uri);
+    }
+
+    @Override
+    public void setImageDrawable(@Nullable Drawable drawable) {
+        if (!mInternalSetDrawable) {
+            // Only clear the cache if we were externally called.
+            resetCache();
+        }
+        super.setImageDrawable(drawable);
+    }
+
+    @Override
+    @RemotableViewMethod
+    public void setImageBitmap(Bitmap bm) {
+        resetCache();
+        super.setImageBitmap(bm);
+    }
+
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        resetCache();
+    }
+
+    /**
+     * @return true if the currently set image is the same as {@param icon}
+     */
+    private synchronized boolean testAndSetCache(Icon icon) {
+        if (icon != null && icon.getType() == Icon.TYPE_RESOURCE) {
+            String iconPackage = normalizeIconPackage(icon);
+
+            boolean isCached = mLastResId != 0
+                    && icon.getResId() == mLastResId
+                    && Objects.equal(iconPackage, mLastPackage);
+
+            mLastPackage = iconPackage;
+            mLastResId = icon.getResId();
+
+            return isCached;
+        } else {
+            resetCache();
+            return false;
+        }
+    }
+
+    /**
+     * @return true if the currently set image is the same as {@param resId}
+     */
+    private synchronized boolean testAndSetCache(int resId) {
+        boolean isCached;
+        if (resId == 0 || mLastResId == 0) {
+            isCached = false;
+        } else {
+            isCached = resId == mLastResId && null == mLastPackage;
+        }
+        mLastPackage = null;
+        mLastResId = resId;
+        return isCached;
+    }
+
+    /**
+     * Returns the normalized package name of {@param icon}.
+     * @return null if icon is null or if the icons package is null, empty or matches the current
+     *         context. Otherwise returns the icon's package context.
+     */
+    private String normalizeIconPackage(Icon icon) {
+        if (icon == null) {
+            return null;
+        }
+
+        String pkg = icon.getResPackage();
+        if (TextUtils.isEmpty(pkg)) {
+            return null;
+        }
+        if (pkg.equals(mContext.getPackageName())) {
+            return null;
+        }
+        return pkg;
+    }
+
+    private synchronized void resetCache() {
+        mLastResId = 0;
+        mLastPackage = null;
+    }
+}
diff --git a/core/java/com/android/internal/widget/DecorCaptionView.java b/core/java/com/android/internal/widget/DecorCaptionView.java
index e59d7ba..fc68b84 100644
--- a/core/java/com/android/internal/widget/DecorCaptionView.java
+++ b/core/java/com/android/internal/widget/DecorCaptionView.java
@@ -244,6 +244,11 @@
         return mTouchDispatchList;
     }
 
+    @Override
+    public boolean shouldDelayChildPressedState() {
+        return false;
+    }
+
     private boolean passedSlop(int x, int y) {
         return Math.abs(x - mTouchDownX) > mDragSlop || Math.abs(y - mTouchDownY) > mDragSlop;
     }
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index d3792ad..479b3b7 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -288,7 +288,6 @@
     public void reportFailedPasswordAttempt(int userId) {
         getDevicePolicyManager().reportFailedPasswordAttempt(userId);
         getTrustManager().reportUnlockAttempt(false /* authenticated */, userId);
-        requireStrongAuth(StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL, userId);
     }
 
     public void reportSuccessfulPasswordAttempt(int userId) {
@@ -1544,7 +1543,8 @@
                 value = { STRONG_AUTH_NOT_REQUIRED,
                         STRONG_AUTH_REQUIRED_AFTER_BOOT,
                         STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW,
-                        SOME_AUTH_REQUIRED_AFTER_USER_REQUEST})
+                        SOME_AUTH_REQUIRED_AFTER_USER_REQUEST,
+                        STRONG_AUTH_REQUIRED_AFTER_LOCKOUT})
         @Retention(RetentionPolicy.SOURCE)
         public @interface StrongAuthFlags {}
 
@@ -1575,13 +1575,12 @@
         public static final int STRONG_AUTH_REQUIRED_AFTER_LOCKOUT = 0x8;
 
         /**
-         * Some authentication is required because the user has entered a wrong credential.
+         * Strong auth flags that do not prevent fingerprint from being accepted as auth.
+         *
+         * If any other flags are set, fingerprint is disabled.
          */
-        public static final int SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL = 0x10;
-
         private static final int ALLOWING_FINGERPRINT = STRONG_AUTH_NOT_REQUIRED
-                | SOME_AUTH_REQUIRED_AFTER_USER_REQUEST
-                | SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL;
+                | SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
 
         private final SparseIntArray mStrongAuthRequiredForUser = new SparseIntArray();
         private final H mHandler;
diff --git a/core/java/com/android/internal/widget/WatchHeaderListView.java b/core/java/com/android/internal/widget/WatchHeaderListView.java
index 3d32d86..4fd19c3 100644
--- a/core/java/com/android/internal/widget/WatchHeaderListView.java
+++ b/core/java/com/android/internal/widget/WatchHeaderListView.java
@@ -103,7 +103,8 @@
 
     @Override
     public int getHeaderViewsCount() {
-        return mTopPanel == null ? super.getHeaderViewsCount() : super.getHeaderViewsCount() + 1;
+        return mTopPanel == null ? super.getHeaderViewsCount()
+                : super.getHeaderViewsCount() + (mTopPanel.getVisibility() == GONE ? 0 : 1);
     }
 
     private void wrapAdapterIfNecessary() {
@@ -133,7 +134,7 @@
         }
 
         private int getTopPanelCount() {
-            return mTopPanel == null ? 0 : 1;
+            return (mTopPanel == null || mTopPanel.getVisibility() == GONE) ? 0 : 1;
         }
 
         @Override
@@ -143,33 +144,19 @@
 
         @Override
         public boolean areAllItemsEnabled() {
-            return mTopPanel == null && super.areAllItemsEnabled();
+            return getTopPanelCount() == 0 && super.areAllItemsEnabled();
         }
 
         @Override
         public boolean isEnabled(int position) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return false;
-                } else {
-                    return super.isEnabled(position - 1);
-                }
-            }
-
-            return super.isEnabled(position);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount ? false : super.isEnabled(position - topPanelCount);
         }
 
         @Override
         public Object getItem(int position) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return null;
-                } else {
-                    return super.getItem(position - 1);
-                }
-            }
-
-            return super.getItem(position);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount ? null : super.getItem(position - topPanelCount);
         }
 
         @Override
@@ -187,15 +174,9 @@
 
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
-            if (mTopPanel != null) {
-                if (position == 0) {
-                    return mTopPanel;
-                } else {
-                    return super.getView(position - 1, convertView, parent);
-                }
-            }
-
-            return super.getView(position, convertView, parent);
+            int topPanelCount = getTopPanelCount();
+            return position < topPanelCount
+                    ? mTopPanel : super.getView(position - topPanelCount, convertView, parent);
         }
 
         @Override
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java
index 886265a..429131b 100644
--- a/core/java/com/android/server/SystemConfig.java
+++ b/core/java/com/android/server/SystemConfig.java
@@ -42,6 +42,8 @@
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Loads global system configuration info.
@@ -122,6 +124,11 @@
     // These are the permitted backup transport service components
     final ArraySet<ComponentName> mBackupTransportWhitelist = new ArraySet<>();
 
+    // These are the packages of carrier-associated apps which should be disabled until used until
+    // a SIM is inserted which grants carrier privileges to that carrier app.
+    final ArrayMap<String, List<String>> mDisabledUntilUsedPreinstalledCarrierAssociatedApps =
+            new ArrayMap<>();
+
     public static SystemConfig getInstance() {
         synchronized (SystemConfig.class) {
             if (sInstance == null) {
@@ -183,6 +190,10 @@
         return mBackupTransportWhitelist;
     }
 
+    public ArrayMap<String, List<String>> getDisabledUntilUsedPreinstalledCarrierAssociatedApps() {
+        return mDisabledUntilUsedPreinstalledCarrierAssociatedApps;
+    }
+
     SystemConfig() {
         // Read configuration from system
         readPermissions(Environment.buildPath(
@@ -476,6 +487,26 @@
                         }
                     }
                     XmlUtils.skipCurrentTag(parser);
+                } else if ("disabled-until-used-preinstalled-carrier-associated-app".equals(name)
+                        && allowAppConfigs) {
+                    String pkgname = parser.getAttributeValue(null, "package");
+                    String carrierPkgname = parser.getAttributeValue(null, "carrierAppPackage");
+                    if (pkgname == null || carrierPkgname == null) {
+                        Slog.w(TAG, "<disabled-until-used-preinstalled-carrier-associated-app"
+                                + " without package or carrierAppPackage in " + permFile + " at "
+                                + parser.getPositionDescription());
+                    } else {
+                        List<String> associatedPkgs =
+                                mDisabledUntilUsedPreinstalledCarrierAssociatedApps.get(
+                                        carrierPkgname);
+                        if (associatedPkgs == null) {
+                            associatedPkgs = new ArrayList<>();
+                            mDisabledUntilUsedPreinstalledCarrierAssociatedApps.put(
+                                    carrierPkgname, associatedPkgs);
+                        }
+                        associatedPkgs.add(pkgname);
+                    }
+                    XmlUtils.skipCurrentTag(parser);
                 } else {
                     XmlUtils.skipCurrentTag(parser);
                     continue;
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index d681246..d7550a4 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -18,6 +18,7 @@
 #include "CreateJavaOutputStreamAdaptor.h"
 #include <Caches.h>
 #include <hwui/Paint.h>
+#include <renderthread/RenderProxy.h>
 
 #include "core_jni_helpers.h"
 
@@ -1361,6 +1362,14 @@
     return reinterpret_cast<jlong>(pixelRef);
 }
 
+static void Bitmap_prepareToDraw(JNIEnv* env, jobject, jlong bitmapPtr) {
+    LocalScopedBitmap bitmapHandle(bitmapPtr);
+    if (!bitmapHandle.valid()) return;
+    SkBitmap bitmap;
+    bitmapHandle->getSkBitmap(&bitmap);
+    android::uirenderer::renderthread::RenderProxy::prepareToDraw(bitmap);
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 
 static const JNINativeMethod gBitmapMethods[] = {
@@ -1404,6 +1413,7 @@
                                             (void*)Bitmap_copyPixelsFromBuffer },
     {   "nativeSameAs",             "(JJ)Z", (void*)Bitmap_sameAs },
     {   "nativeRefPixelRef",        "(J)J", (void*)Bitmap_refPixelRef },
+    {   "nativePrepareToDraw",      "(J)V", (void*)Bitmap_prepareToDraw },
 };
 
 int register_android_graphics_Bitmap(JNIEnv* env)
diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp
index ded4dac..2ab4a35 100644
--- a/core/jni/android_graphics_Canvas.cpp
+++ b/core/jni/android_graphics_Canvas.cpp
@@ -614,10 +614,10 @@
     {"native_drawPath","!(JJJ)V", (void*) CanvasJNI::drawPath},
     {"nativeDrawVertices", "!(JII[FI[FI[II[SIIJ)V", (void*)CanvasJNI::drawVertices},
     {"native_drawNinePatch", "!(JJJFFFFJII)V", (void*)CanvasJNI::drawNinePatch},
-    {"native_drawBitmap","!(JLandroid/graphics/Bitmap;FFJIII)V", (void*) CanvasJNI::drawBitmap},
+    {"native_drawBitmap","(JLandroid/graphics/Bitmap;FFJIII)V", (void*) CanvasJNI::drawBitmap},
     {"nativeDrawBitmapMatrix", "!(JLandroid/graphics/Bitmap;JJ)V", (void*)CanvasJNI::drawBitmapMatrix},
-    {"native_drawBitmap","!(JLandroid/graphics/Bitmap;FFFFFFFFJII)V", (void*) CanvasJNI::drawBitmapRect},
-    {"native_drawBitmap", "!(J[IIIFFIIZJ)V", (void*)CanvasJNI::drawBitmapArray},
+    {"native_drawBitmap","(JLandroid/graphics/Bitmap;FFFFFFFFJII)V", (void*) CanvasJNI::drawBitmapRect},
+    {"native_drawBitmap", "(J[IIIFFIIZJ)V", (void*)CanvasJNI::drawBitmapArray},
     {"nativeDrawBitmapMesh", "!(JLandroid/graphics/Bitmap;II[FI[IIJ)V", (void*)CanvasJNI::drawBitmapMesh},
     {"native_drawText","!(J[CIIFFIJJ)V", (void*) CanvasJNI::drawTextChars},
     {"native_drawText","!(JLjava/lang/String;IIFFIJJ)V", (void*) CanvasJNI::drawTextString},
diff --git a/core/jni/android_graphics_drawable_AnimatedVectorDrawable.cpp b/core/jni/android_graphics_drawable_AnimatedVectorDrawable.cpp
index 47252ad..ade718b 100644
--- a/core/jni/android_graphics_drawable_AnimatedVectorDrawable.cpp
+++ b/core/jni/android_graphics_drawable_AnimatedVectorDrawable.cpp
@@ -83,11 +83,13 @@
 }
 
 static void addAnimator(JNIEnv*, jobject, jlong animatorSetPtr, jlong propertyHolderPtr,
-        jlong interpolatorPtr, jlong startDelay, jlong duration, jint repeatCount) {
+        jlong interpolatorPtr, jlong startDelay, jlong duration, jint repeatCount,
+        jint repeatMode) {
     PropertyValuesAnimatorSet* set = reinterpret_cast<PropertyValuesAnimatorSet*>(animatorSetPtr);
     PropertyValuesHolder* holder = reinterpret_cast<PropertyValuesHolder*>(propertyHolderPtr);
     Interpolator* interpolator = reinterpret_cast<Interpolator*>(interpolatorPtr);
-    set->addPropertyAnimator(holder, interpolator, startDelay, duration, repeatCount);
+    RepeatMode mode = static_cast<RepeatMode>(repeatMode);
+    set->addPropertyAnimator(holder, interpolator, startDelay, duration, repeatCount, mode);
 }
 
 static jlong createAnimatorSet(JNIEnv*, jobject) {
@@ -185,7 +187,7 @@
 static const JNINativeMethod gMethods[] = {
     {"nCreateAnimatorSet", "()J", (void*)createAnimatorSet},
     {"nSetVectorDrawableTarget", "(JJ)V", (void*)setVectorDrawableTarget},
-    {"nAddAnimator", "(JJJJJI)V", (void*)addAnimator},
+    {"nAddAnimator", "(JJJJJII)V", (void*)addAnimator},
     {"nCreateGroupPropertyHolder", "!(JIFF)J", (void*)createGroupPropertyHolder},
     {"nCreatePathDataPropertyHolder", "!(JJJ)J", (void*)createPathDataPropertyHolder},
     {"nCreatePathColorPropertyHolder", "!(JIII)J", (void*)createPathColorPropertyHolder},
diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp
index 9515a0e..7a8a574 100644
--- a/core/jni/android_hardware_location_ContextHubService.cpp
+++ b/core/jni/android_hardware_location_ContextHubService.cpp
@@ -603,6 +603,8 @@
     env->CallIntMethod(db.jniInfo.jContextHubService,
                        db.jniInfo.contextHubServiceMsgReceiptCallback,
                        jheader, jmsg);
+    env->DeleteLocalRef(jmsg);
+    env->DeleteLocalRef(jheader);
 
     delete[] msg;
 }
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index ef16ef5..4976002 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -20,13 +20,14 @@
 #define LOG_TAG "AudioSystem-JNI"
 #include <utils/Log.h>
 
+#include <sstream>
 #include <jni.h>
 #include <JNIHelp.h>
 #include "core_jni_helpers.h"
 
 #include <media/AudioSystem.h>
 #include <media/AudioPolicy.h>
-
+#include <nativehelper/ScopedLocalRef.h>
 #include <system/audio.h>
 #include <system/audio_policy.h>
 #include "android_media_AudioFormat.h"
@@ -903,6 +904,12 @@
     return false; // not found
 }
 
+// TODO: pull out to separate file
+template <typename T, size_t N>
+static constexpr size_t array_size(const T (&)[N]) {
+    return N;
+}
+
 static jint convertAudioPortFromNative(JNIEnv *env,
                                            jobject *jAudioPort, const struct audio_port *nAudioPort)
 {
@@ -923,6 +930,38 @@
     ALOGV("convertAudioPortFromNative id %d role %d type %d name %s",
         nAudioPort->id, nAudioPort->role, nAudioPort->type, nAudioPort->name);
 
+    // Verify audio port array count info.
+    if (nAudioPort->num_sample_rates > array_size(nAudioPort->sample_rates)
+            || nAudioPort->num_channel_masks > array_size(nAudioPort->channel_masks)
+            || nAudioPort->num_formats > array_size(nAudioPort->formats)
+            || nAudioPort->num_gains > array_size(nAudioPort->gains)) {
+
+        std::stringstream ss;
+        ss << "convertAudioPortFromNative array count out of bounds:"
+                << " num_sample_rates " << nAudioPort->num_sample_rates
+                << " num_channel_masks " << nAudioPort->num_channel_masks
+                << " num_formats " << nAudioPort->num_formats
+                << " num_gains " << nAudioPort->num_gains
+                ;
+        std::string s = ss.str();
+
+        // Prefer to log through Java wtf instead of native ALOGE.
+        ScopedLocalRef<jclass> jLogClass(env, env->FindClass("android/util/Log"));
+        jmethodID jWtfId = (jLogClass.get() == nullptr)
+                ? nullptr
+                : env->GetStaticMethodID(jLogClass.get(), "wtf",
+                        "(Ljava/lang/String;Ljava/lang/String;)I");
+        if (jWtfId != nullptr) {
+            ScopedLocalRef<jstring> jMessage(env, env->NewStringUTF(s.c_str()));
+            ScopedLocalRef<jstring> jTag(env, env->NewStringUTF(LOG_TAG));
+            (void)env->CallStaticIntMethod(jLogClass.get(), jWtfId, jTag.get(), jMessage.get());
+        } else {
+            ALOGE("%s", s.c_str());
+        }
+        jStatus = (jint)AUDIO_JAVA_ERROR;
+        goto exit;
+    }
+
     jSamplingRates = env->NewIntArray(nAudioPort->num_sample_rates);
     if (jSamplingRates == NULL) {
         jStatus = (jint)AUDIO_JAVA_ERROR;
@@ -1066,7 +1105,7 @@
                                                        &jAudioPortConfig,
                                                        &nAudioPort->active_config);
     if (jStatus != AUDIO_JAVA_SUCCESS) {
-        return jStatus;
+        goto exit;
     }
 
     env->SetObjectField(*jAudioPort, gAudioPortFields.mActiveConfig, jAudioPortConfig);
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index a693f29..3c72274 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -58,21 +58,19 @@
 #endif
 
 // For both of these, err should be in the errno range (positive), not a status_t (negative)
-
-static void signalExceptionForPriorityError(JNIEnv* env, int err)
-{
+static void signalExceptionForError(JNIEnv* env, int err, int tid) {
     switch (err) {
         case EINVAL:
-            jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+            jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
+                                 "Invalid argument: %d", tid);
             break;
         case ESRCH:
-            jniThrowException(env, "java/lang/IllegalArgumentException", "Given thread does not exist");
+            jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
+                                 "Given thread %d does not exist", tid);
             break;
         case EPERM:
-            jniThrowException(env, "java/lang/SecurityException", "No permission to modify given thread");
-            break;
-        case EACCES:
-            jniThrowException(env, "java/lang/SecurityException", "No permission to set to given priority");
+            jniThrowExceptionFmt(env, "java/lang/SecurityException",
+                                 "No permission to modify given thread %d", tid);
             break;
         default:
             jniThrowException(env, "java/lang/RuntimeException", "Unknown error");
@@ -80,23 +78,27 @@
     }
 }
 
-static void signalExceptionForGroupError(JNIEnv* env, int err)
-{
+static void signalExceptionForPriorityError(JNIEnv* env, int err, int tid) {
     switch (err) {
-        case EINVAL:
-            jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
-            break;
-        case ESRCH:
-            jniThrowException(env, "java/lang/IllegalArgumentException", "Given thread does not exist");
-            break;
-        case EPERM:
-            jniThrowException(env, "java/lang/SecurityException", "No permission to modify given thread");
-            break;
         case EACCES:
-            jniThrowException(env, "java/lang/SecurityException", "No permission to set to given group");
+            jniThrowExceptionFmt(env, "java/lang/SecurityException",
+                                 "No permission to set the priority of %d", tid);
             break;
         default:
-            jniThrowException(env, "java/lang/RuntimeException", "Unknown error");
+            signalExceptionForError(env, err, tid);
+            break;
+    }
+
+}
+
+static void signalExceptionForGroupError(JNIEnv* env, int err, int tid) {
+    switch (err) {
+        case EACCES:
+            jniThrowExceptionFmt(env, "java/lang/SecurityException",
+                                 "No permission to set the group of %d", tid);
+            break;
+        default:
+            signalExceptionForError(env, err, tid);
             break;
     }
 }
@@ -171,7 +173,7 @@
     SchedPolicy sp = (SchedPolicy) grp;
     int res = set_sched_policy(tid, sp);
     if (res != NO_ERROR) {
-        signalExceptionForGroupError(env, -res);
+        signalExceptionForGroupError(env, -res, tid);
     }
 }
 
@@ -183,7 +185,7 @@
     struct dirent *de;
 
     if ((grp == SP_FOREGROUND) || (grp > SP_MAX)) {
-        signalExceptionForGroupError(env, EINVAL);
+        signalExceptionForGroupError(env, EINVAL, pid);
         return;
     }
 
@@ -219,7 +221,7 @@
     if (!(d = opendir(proc_path))) {
         // If the process exited on us, don't generate an exception
         if (errno != ENOENT)
-            signalExceptionForGroupError(env, errno);
+            signalExceptionForGroupError(env, errno, pid);
         return;
     }
 
@@ -254,7 +256,7 @@
 #ifdef ENABLE_CPUSETS
                 int err = set_cpuset_policy(t_pid, sp);
                 if (err != NO_ERROR) {
-                    signalExceptionForGroupError(env, -err);
+                    signalExceptionForGroupError(env, -err, t_pid);
                     break;
                 }
 #endif
@@ -266,14 +268,14 @@
         // set both cpuset and cgroup for general threads
         err = set_cpuset_policy(t_pid, sp);
         if (err != NO_ERROR) {
-            signalExceptionForGroupError(env, -err);
+            signalExceptionForGroupError(env, -err, t_pid);
             break;
         }
 #endif
 
         err = set_sched_policy(t_pid, sp);
         if (err != NO_ERROR) {
-            signalExceptionForGroupError(env, -err);
+            signalExceptionForGroupError(env, -err, t_pid);
             break;
         }
 
@@ -285,7 +287,7 @@
 {
     SchedPolicy sp;
     if (get_sched_policy(pid, &sp) != 0) {
-        signalExceptionForGroupError(env, errno);
+        signalExceptionForGroupError(env, errno, pid);
     }
     return (int) sp;
 }
@@ -400,7 +402,7 @@
     jintArray cpus;
     int pid = getpid();
     if (get_sched_policy(pid, &sp) != 0) {
-        signalExceptionForGroupError(env, errno);
+        signalExceptionForGroupError(env, errno, pid);
         return NULL;
     }
     get_exclusive_cpuset_cores(sp, &cpu_set);
@@ -449,10 +451,10 @@
     errno = 0;
     policy = sched_getscheduler(tid);
     if (errno != 0) {
-        signalExceptionForPriorityError(env, errno);
+        signalExceptionForPriorityError(env, errno, tid);
     }
 #else
-    signalExceptionForPriorityError(env, ENOSYS);
+    signalExceptionForPriorityError(env, ENOSYS, tid);
 #endif
     return policy;
 }
@@ -466,10 +468,10 @@
     param.sched_priority = pri;
     int rc = sched_setscheduler(tid, policy, &param);
     if (rc) {
-        signalExceptionForPriorityError(env, errno);
+        signalExceptionForPriorityError(env, errno, tid);
     }
 #else
-    signalExceptionForPriorityError(env, ENOSYS);
+    signalExceptionForPriorityError(env, ENOSYS, tid);
 #endif
 }
 
@@ -494,9 +496,9 @@
     int rc = androidSetThreadPriority(pid, pri);
     if (rc != 0) {
         if (rc == INVALID_OPERATION) {
-            signalExceptionForPriorityError(env, errno);
+            signalExceptionForPriorityError(env, errno, pid);
         } else {
-            signalExceptionForGroupError(env, errno);
+            signalExceptionForGroupError(env, errno, pid);
         }
     }
 
@@ -516,7 +518,7 @@
     errno = 0;
     jint pri = getpriority(PRIO_PROCESS, pid);
     if (errno != 0) {
-        signalExceptionForPriorityError(env, errno);
+        signalExceptionForPriorityError(env, errno, pid);
     }
     //ALOGI("Returning priority of %" PRId32 ": %" PRId32 "\n", pid, pri);
     return pri;
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 037ca73..7cd0d2a 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -195,10 +195,13 @@
             // the animation list, 2) post a delayed message to end them at end time so their
             // listeners can receive the corresponding callbacks.
             anim->getVectorDrawable()->setPropertyChangeWillBeConsumed(false);
+            // Mark the VD dirty so it will damage itself during prepareTree.
+            anim->getVectorDrawable()->markDirty();
         }
         if (info.mode == TreeInfo::MODE_FULL) {
             for (auto &anim : mPausedVDAnimators) {
                 anim->getVectorDrawable()->setPropertyChangeWillBeConsumed(false);
+                anim->getVectorDrawable()->markDirty();
             }
         }
         // TODO: This is hacky
@@ -210,34 +213,6 @@
         info.windowInsetLeft = 0;
         info.windowInsetTop = 0;
         info.errorHandler = nullptr;
-
-        for (auto it = mRunningVDAnimators.begin(); it != mRunningVDAnimators.end();) {
-            if (!(*it)->getVectorDrawable()->getPropertyChangeWillBeConsumed()) {
-                // Vector Drawable is not in the display list, we should remove this animator from
-                // the list, put it in the paused list, and post a delayed message to end the
-                // animator.
-                detachVectorDrawableAnimator(it->get());
-                mPausedVDAnimators.insert(*it);
-                it = mRunningVDAnimators.erase(it);
-            } else {
-                it++;
-            }
-        }
-
-        if (info.mode == TreeInfo::MODE_FULL) {
-            // Check whether any paused animator's target is back in Display List. If so, put the
-            // animator back in the running list.
-            for (auto it = mPausedVDAnimators.begin(); it != mPausedVDAnimators.end();) {
-                if ((*it)->getVectorDrawable()->getPropertyChangeWillBeConsumed()) {
-                    mRunningVDAnimators.insert(*it);
-                    it = mPausedVDAnimators.erase(it);
-                } else {
-                    it++;
-                }
-            }
-        }
-        info.out.hasAnimations |= !mRunningVDAnimators.empty();
-
     }
 
     void sendMessage(const sp<MessageHandler>& handler) {
@@ -267,6 +242,16 @@
         mPausedVDAnimators.clear();
     }
 
+    // Move all the animators to the paused list, and send a delayed message to notify the finished
+    // listener.
+    void pauseAnimators() {
+        mPausedVDAnimators.insert(mRunningVDAnimators.begin(), mRunningVDAnimators.end());
+        for (auto& anim : mRunningVDAnimators) {
+            detachVectorDrawableAnimator(anim.get());
+        }
+        mRunningVDAnimators.clear();
+    }
+
     void doAttachAnimatingNodes(AnimationContext* context) {
         for (size_t i = 0; i < mPendingAnimatingRenderNodes.size(); i++) {
             RenderNode* node = mPendingAnimatingRenderNodes[i].get();
@@ -275,7 +260,14 @@
         mPendingAnimatingRenderNodes.clear();
     }
 
-    void runVectorDrawableAnimators(AnimationContext* context, TreeInfo::TraversalMode mode) {
+    // Run VectorDrawable animators after prepareTree.
+    void runVectorDrawableAnimators(AnimationContext* context, TreeInfo& info) {
+        // Push staging.
+        if (info.mode == TreeInfo::MODE_FULL) {
+            pushStagingVectorDrawableAnimators(context);
+        }
+
+        // Run the animators in the running list.
         for (auto it = mRunningVDAnimators.begin(); it != mRunningVDAnimators.end();) {
             if ((*it)->animate(*context)) {
                 it = mRunningVDAnimators.erase(it);
@@ -284,7 +276,8 @@
             }
         }
 
-        if (mode == TreeInfo::MODE_FULL) {
+        // Run the animators in paused list during full sync.
+        if (info.mode == TreeInfo::MODE_FULL) {
             // During full sync we also need to pulse paused animators, in case their targets
             // have been added back to the display list. All the animators that passed the
             // scheduled finish time will be removed from the paused list.
@@ -297,6 +290,42 @@
                 }
             }
         }
+
+        // Move the animators with a target not in DisplayList to paused list.
+        for (auto it = mRunningVDAnimators.begin(); it != mRunningVDAnimators.end();) {
+            if (!(*it)->getVectorDrawable()->getPropertyChangeWillBeConsumed()) {
+                // Vector Drawable is not in the display list, we should remove this animator from
+                // the list, put it in the paused list, and post a delayed message to end the
+                // animator.
+                detachVectorDrawableAnimator(it->get());
+                mPausedVDAnimators.insert(*it);
+                it = mRunningVDAnimators.erase(it);
+            } else {
+                it++;
+            }
+        }
+
+        // Move the animators with a target in DisplayList from paused list to running list, and
+        // trim paused list.
+        if (info.mode == TreeInfo::MODE_FULL) {
+            // Check whether any paused animator's target is back in Display List. If so, put the
+            // animator back in the running list.
+            for (auto it = mPausedVDAnimators.begin(); it != mPausedVDAnimators.end();) {
+                if ((*it)->getVectorDrawable()->getPropertyChangeWillBeConsumed()) {
+                    mRunningVDAnimators.insert(*it);
+                    it = mPausedVDAnimators.erase(it);
+                } else {
+                    it++;
+                }
+            }
+            // Trim paused VD animators at full sync, so that when Java loses reference to an
+            // animator, we know we won't be requested to animate it any more, then we remove such
+            // animators from the paused list so they can be properly freed. We also remove the
+            // animators from paused list when the time elapsed since start has exceeded duration.
+            trimPausedVDAnimators(context);
+        }
+
+        info.out.hasAnimations |= !mRunningVDAnimators.empty();
     }
 
     void trimPausedVDAnimators(AnimationContext* context) {
@@ -387,33 +416,17 @@
             mRootNode->attachPendingVectorDrawableAnimators();
         }
         AnimationContext::startFrame(mode);
-        // Run VectorDrawable animators in the beginning of the frame instead of during prepareTree,
-        // because one VD can be in multiple render nodes' display list. So it's more simple to
-        // run them all at once before prepareTree than running them or checking whether they have
-        // already ran in each RenderNode. Note that these animators don't damage the RenderNodes.
-        // The damaging is done in prepareTree as needed after checking whether a VD has been
-        // modified.
-        if (mode == TreeInfo::MODE_FULL) {
-            mRootNode->pushStagingVectorDrawableAnimators(this);
-        }
-        mRootNode->runVectorDrawableAnimators(this, mode);
     }
 
     // Runs any animations still left in mCurrentFrameAnimations
     virtual void runRemainingAnimations(TreeInfo& info) {
         AnimationContext::runRemainingAnimations(info);
+        mRootNode->runVectorDrawableAnimators(this, info);
         postOnFinishedEvents();
-        if (info.mode == TreeInfo::MODE_FULL) {
-            // Trim paused VD animators at full sync, so that when Java loses reference to an
-            // animator, we know we won't be requested to animate it any more, then we remove such
-            // animators from the paused list so they can be properly freed. We also remove the
-            // animators from paused list when the time elapsed since start has exceeded duration.
-            mRootNode->trimPausedVDAnimators(this);
-        }
     }
 
-    virtual void detachAnimators() override {
-        mRootNode->detachAnimators();
+    virtual void pauseAnimators() override {
+        mRootNode->pauseAnimators();
     }
 
     virtual void callOnFinished(BaseRenderNodeAnimator* animator, AnimationListener* listener) {
@@ -423,7 +436,7 @@
 
     virtual void destroy() {
         AnimationContext::destroy();
-        detachAnimators();
+        mRootNode->detachAnimators();
         postOnFinishedEvents();
     }
 
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 3f4b2a6..a04fc2a 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -176,7 +176,9 @@
   }
   int rc = setgroups(gids.size(), reinterpret_cast<const gid_t*>(&gids[0]));
   if (rc == -1) {
-    RuntimeAbort(env, __LINE__, "setgroups failed");
+    std::ostringstream oss;
+    oss << "setgroups failed: " << strerror(errno) << ", gids.size=" << gids.size();
+    RuntimeAbort(env, __LINE__, oss.str().c_str());
   }
 }
 
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index ed71fc2..3339d02 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -183,6 +183,7 @@
     <protected-broadcast
         android:name="android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED" />
     <protected-broadcast android:name="android.bluetooth.pbap.intent.action.PBAP_STATE_CHANGED" />
+    <protected-broadcast android:name="android.bluetooth.sap.profile.action.CONNECTION_STATE_CHANGED" />
     <protected-broadcast android:name="android.btopp.intent.action.INCOMING_FILE_NOTIFICATION" />
     <protected-broadcast android:name="android.btopp.intent.action.USER_CONFIRMATION_TIMEOUT" />
     <protected-broadcast android:name="android.btopp.intent.action.LIST" />
@@ -199,6 +200,8 @@
     <protected-broadcast android:name="com.android.bluetooth.pbap.userconfirmtimeout" />
     <protected-broadcast android:name="com.android.bluetooth.pbap.authresponse" />
     <protected-broadcast android:name="com.android.bluetooth.pbap.authcancelled" />
+    <protected-broadcast android:name="com.android.bluetooth.sap.USER_CONFIRM_TIMEOUT" />
+    <protected-broadcast android:name="com.android.bluetooth.sap.action.DISCONNECT_ACTION" />
 
     <protected-broadcast android:name="android.hardware.display.action.WIFI_DISPLAY_STATUS_CHANGED" />
 
@@ -394,6 +397,8 @@
 
     <protected-broadcast android:name="android.bluetooth.adapter.action.BLE_STATE_CHANGED" />
     <protected-broadcast android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT" />
+    <protected-broadcast android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_SENT" />
+    <protected-broadcast android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_DELIVERY" />
     <protected-broadcast android:name="android.content.jobscheduler.JOB_DELAY_EXPIRED" />
     <protected-broadcast android:name="android.content.syncmanager.SYNC_ALARM" />
     <protected-broadcast android:name="android.media.INTERNAL_RINGER_MODE_CHANGED_ACTION" />
diff --git a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml b/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
index cd02e0d..c300894 100644
--- a/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
+++ b/core/res/res/anim/watch_switch_thumb_to_off_animation.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2016 The Android Open Source Project
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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
@@ -17,20 +18,34 @@
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueType="pathType" />
+    <objectAnimator
+        android:duration="49"
+        android:interpolator="@android:interpolator/linear"
+        android:propertyName="pathData"
+        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
     <objectAnimator
-        android:duration="66"
+        android:duration="83"
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
     <objectAnimator
-        android:duration="66"
+        android:duration="50"
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
+    <objectAnimator
+        android:duration="33"
+        android:interpolator="@android:interpolator/linear"
+        android:propertyName="pathData"
+        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueType="pathType" />
 </set>
diff --git a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml b/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
index e644217..c300894 100644
--- a/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
+++ b/core/res/res/anim/watch_switch_thumb_to_on_animation.xml
@@ -18,20 +18,34 @@
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueType="pathType" />
+    <objectAnimator
+        android:duration="49"
+        android:interpolator="@android:interpolator/linear"
+        android:propertyName="pathData"
+        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
     <objectAnimator
-        android:duration="66"
+        android:duration="83"
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
     <objectAnimator
-        android:duration="66"
+        android:duration="50"
         android:interpolator="@android:interpolator/linear"
         android:propertyName="pathData"
         android:valueFrom="M -3.0,-7.0 l 6.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l -6.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
         android:valueType="pathType" />
+    <objectAnimator
+        android:duration="33"
+        android:interpolator="@android:interpolator/linear"
+        android:propertyName="pathData"
+        android:valueFrom="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueTo="M 0.0,-7.0 l 0.0,0.0 c 3.8659932486,0.0 7.0,3.1340067514 7.0,7.0 l 0.0,0.0 c 0.0,3.8659932486 -3.1340067514,7.0 -7.0,7.0 l 0.0,0.0 c -3.8659932486,0.0 -7.0,-3.1340067514 -7.0,-7.0 l 0.0,0.0 c 0.0,-3.8659932486 3.1340067514,-7.0 7.0,-7.0 Z"
+        android:valueType="pathType" />
 </set>
diff --git a/core/res/res/color/watch_switch_thumb_color_material.xml b/core/res/res/color/watch_switch_thumb_color_material.xml
index a931724..f78d9b6 100644
--- a/core/res/res/color/watch_switch_thumb_color_material.xml
+++ b/core/res/res/color/watch_switch_thumb_color_material.xml
@@ -10,8 +10,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="?android:colorAccent" android:state_checked="true" />
-    <item android:color="?android:colorButtonNormal" android:state_checked="false" />
-</selector>
\ No newline at end of file
+    <item android:color="?attr/colorButtonNormal" android:alpha="?attr/disabledAlpha"
+            android:state_enabled="false" />
+    <item android:color="?attr/colorControlActivated" android:state_checked="true" />
+    <item android:color="?attr/colorButtonNormal" />
+</selector>
diff --git a/core/res/res/values-notround-watch/styles_material.xml b/core/res/res/color/watch_switch_track_color_material.xml
similarity index 63%
rename from core/res/res/values-notround-watch/styles_material.xml
rename to core/res/res/color/watch_switch_track_color_material.xml
index cd8521f4..402a536 100644
--- a/core/res/res/values-notround-watch/styles_material.xml
+++ b/core/res/res/color/watch_switch_track_color_material.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2016 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,6 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <style name="TextAppearance.Material.AlertDialogMessage" parent="TextAppearance.Material.Body1"/>
-</resources>
+<!-- Used for the background of switch track for watch switch preference. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false"
+          android:alpha="0.4" android:color="?attr/colorPrimary" />
+    <item android:color="?attr/colorPrimary" />
+</selector>
diff --git a/core/res/res/drawable/ic_lock_power_off.xml b/core/res/res/drawable/ic_lock_power_off.xml
index 718f17e..babd1be 100644
--- a/core/res/res/drawable/ic_lock_power_off.xml
+++ b/core/res/res/drawable/ic_lock_power_off.xml
@@ -1,19 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+    Copyright (C) 2016 The Android Open Source Project
 
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
 
-          http://www.apache.org/licenses/LICENSE-2.0
+         http://www.apache.org/licenses/LICENSE-2.0
 
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
+    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.
 -->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/ic_lock_power_off_alpha"
-    android:tint="?attr/colorControlNormal" />
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24.0dp"
+        android:height="24.0dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M13.0,3.0l-2.0,0.0l0.0,10.0l2.0,0.0L13.0,3.0zm4.83,2.17l-1.42,1.42C17.99,7.86 19.0,9.81 19.0,12.0c0.0,3.87 -3.13,7.0 -7.0,7.0s-7.0,-3.13 -7.0,-7.0c0.0,-2.19 1.01,-4.14 2.58,-5.42L6.17,5.17C4.23,6.82 3.0,9.26 3.0,12.0c0.0,4.97 4.03,9.0 9.0,9.0s9.0,-4.03 9.0,-9.0c0.0,-2.74 -1.23,-5.18 -3.17,-6.83z"/>
+</vector>
diff --git a/core/res/res/drawable/ic_restart.xml b/core/res/res/drawable/ic_restart.xml
new file mode 100644
index 0000000..47ac483
--- /dev/null
+++ b/core/res/res/drawable/ic_restart.xml
@@ -0,0 +1,28 @@
+<!--
+    Copyright (C) 2016 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24.0dp"
+        android:height="24.0dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12.0,4.0L12.0,1.0L8.0,5.0l4.0,4.0L12.0,6.0c3.9,0.0 7.0,3.1 7.0,7.0c0.0,3.9 -3.1,7.0 -7.0,7.0l0.0,2.0c5.0,0.0 9.0,-4.0 9.0,-9.0C21.0,8.0 17.0,4.0 12.0,4.0z"/>
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M5.0,12.9C5.0,11.0 5.8,9.2 7.2,7.9L5.8,6.4C4.0,8.1 3.0,10.5 3.0,12.9c0.0,4.0 2.7,7.6 6.5,8.7l0.5,-1.9C7.1,18.8 5.0,16.1 5.0,12.9z"/>
+</vector>
diff --git a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
similarity index 85%
rename from core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-notround-watch/alert_dialog_title_material.xml
index fc840d9..307c6db 100644
--- a/core/res/res/layout-notround-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-notround-watch/alert_dialog_title_material.xml
@@ -30,12 +30,9 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@null" />
-    <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
+    <TextView android:id="@+id/alertTitle"
             style="?android:attr/windowTitleStyle"
-            android:ellipsize="end"
-            android:layout_marginStart="8dp"
             android:layout_marginBottom="8dp"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAlignment="viewStart" />
+            android:layout_height="wrap_content" />
 </LinearLayout>
diff --git a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
similarity index 84%
rename from core/res/res/layout-round-watch/alert_dialog_header_micro.xml
rename to core/res/res/layout-round-watch/alert_dialog_title_material.xml
index 6f7ae02..0279911 100644
--- a/core/res/res/layout-round-watch/alert_dialog_header_micro.xml
+++ b/core/res/res/layout-round-watch/alert_dialog_title_material.xml
@@ -27,12 +27,10 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@null" />
-    <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
+    <TextView android:id="@+id/alertTitle"
             style="?android:attr/windowTitleStyle"
-            android:ellipsize="end"
             android:layout_marginTop="36dp"
-            android:layout_marginBottom="4dp"
+            android:layout_marginBottom="8dp"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAlignment="center" />
+            android:layout_height="wrap_content" />
 </FrameLayout>
diff --git a/core/res/res/layout-watch/alert_dialog_material.xml b/core/res/res/layout-watch/alert_dialog_material.xml
index ce8e20a..002dde8 100644
--- a/core/res/res/layout-watch/alert_dialog_material.xml
+++ b/core/res/res/layout-watch/alert_dialog_material.xml
@@ -39,7 +39,7 @@
                 <include android:id="@+id/title_template"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        layout="@layout/alert_dialog_header_micro"/>
+                        layout="@layout/alert_dialog_title_material"/>
             </FrameLayout>
 
             <!-- Content Panel -->
@@ -50,7 +50,8 @@
                 <TextView android:id="@+id/message"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:textAppearance="@style/TextAppearance.Material.Body1"
+                        android:gravity="@integer/config_dialogTextGravity"
+                        android:textAppearance="@style/TextAppearance.Material.Subhead"
                         android:paddingStart="?dialogPreferredPadding"
                         android:paddingEnd="?dialogPreferredPadding"
                         android:paddingTop="8dip"
@@ -77,6 +78,7 @@
                 <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
+                        android:layout_gravity="bottom"
                         android:orientation="vertical"
                         android:minHeight="@dimen/alert_dialog_button_bar_height"
                         android:paddingBottom="?dialogPreferredPadding"
diff --git a/core/res/res/layout-watch/date_picker_dialog.xml b/core/res/res/layout-watch/date_picker_dialog.xml
new file mode 100644
index 0000000..b8772bc
--- /dev/null
+++ b/core/res/res/layout-watch/date_picker_dialog.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/datePicker"
+    android:layout_gravity="center_horizontal"
+    android:gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:spinnersShown="true"
+    android:calendarViewShown="false"
+    android:datePickerMode="@integer/date_picker_mode" />
diff --git a/core/res/res/layout-watch/number_picker_material.xml b/core/res/res/layout-watch/number_picker_material.xml
deleted file mode 100644
index a1c0921..0000000
--- a/core/res/res/layout-watch/number_picker_material.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <view class="android.widget.NumberPicker$CustomEditText"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:id="@+id/numberpicker_input"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:singleLine="true"
-        android:background="@null" />
-
-</merge>
diff --git a/core/res/res/layout-watch/preference_widget_switch.xml b/core/res/res/layout-watch/preference_widget_switch.xml
index 37d0c6b..ffc00b4 100644
--- a/core/res/res/layout-watch/preference_widget_switch.xml
+++ b/core/res/res/layout-watch/preference_widget_switch.xml
@@ -24,7 +24,7 @@
     android:thumb="@drawable/watch_switch_thumb_material_anim"
     android:thumbTint="@color/watch_switch_thumb_color_material"
     android:track="@drawable/watch_switch_track_material"
-    android:trackTint="?android:colorPrimary"
+    android:trackTint="@color/watch_switch_track_color_material"
     android:focusable="false"
     android:clickable="false"
     android:background="@null" />
diff --git a/core/res/res/layout-watch/time_picker_dialog.xml b/core/res/res/layout-watch/time_picker_dialog.xml
new file mode 100644
index 0000000..788602b
--- /dev/null
+++ b/core/res/res/layout-watch/time_picker_dialog.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 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.
+*/
+-->
+
+<TimePicker xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/timePicker"
+    android:layout_gravity="center_horizontal"
+    android:gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:timePickerMode="@integer/time_picker_mode" />
diff --git a/core/res/res/layout/alert_dialog_material.xml b/core/res/res/layout/alert_dialog_material.xml
index 6d33de6..178505c 100644
--- a/core/res/res/layout/alert_dialog_material.xml
+++ b/core/res/res/layout/alert_dialog_material.xml
@@ -20,6 +20,7 @@
     android:id="@+id/parentPanel"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:gravity="start|top"
     android:orientation="vertical">
 
     <include layout="@layout/alert_dialog_title_material" />
diff --git a/core/res/res/layout/chooser_grid.xml b/core/res/res/layout/chooser_grid.xml
index d12c8ba..d8dd447 100644
--- a/core/res/res/layout/chooser_grid.xml
+++ b/core/res/res/layout/chooser_grid.xml
@@ -41,7 +41,7 @@
                   android:visibility="gone"
                   style="?attr/borderlessButtonStyle"
                   android:textAppearance="?attr/textAppearanceButton"
-                  android:textColor="@color/material_deep_teal_500"
+                  android:textColor="?attr/colorAccent"
                   android:gravity="center_vertical"
                   android:layout_alignParentTop="true"
                   android:layout_alignParentRight="true"
diff --git a/core/res/res/layout/date_picker_legacy_holo.xml b/core/res/res/layout/date_picker_legacy_holo.xml
index b465d97..a6e93c9 100644
--- a/core/res/res/layout/date_picker_legacy_holo.xml
+++ b/core/res/res/layout/date_picker_legacy_holo.xml
@@ -41,8 +41,8 @@
             android:id="@+id/month"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="8dip"
             android:focusable="true"
@@ -54,8 +54,8 @@
             android:id="@+id/day"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="8dip"
             android:focusable="true"
@@ -67,8 +67,8 @@
             android:id="@+id/year"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:layout_marginStart="8dip"
             android:layout_marginEnd="16dip"
             android:focusable="true"
diff --git a/core/res/res/layout/notification_template_header.xml b/core/res/res/layout/notification_template_header.xml
index 38f671c2..1f71a18 100644
--- a/core/res/res/layout/notification_template_header.xml
+++ b/core/res/res/layout/notification_template_header.xml
@@ -26,7 +26,7 @@
     android:paddingBottom="16dp"
     android:paddingStart="@dimen/notification_content_margin_start"
     android:paddingEnd="16dp">
-    <ImageView
+    <com.android.internal.widget.CachingIconView
         android:id="@+id/icon"
         android:layout_width="18dp"
         android:layout_height="18dp"
diff --git a/core/res/res/layout/number_picker_material.xml b/core/res/res/layout/number_picker_material.xml
index b045585..6fbd2b2 100644
--- a/core/res/res/layout/number_picker_material.xml
+++ b/core/res/res/layout/number_picker_material.xml
@@ -22,4 +22,4 @@
       android:gravity="center"
       android:singleLine="true"
       android:background="@null"
-      android:textAppearance="@style/TextAppearance.Material.Body1" />
+      android:textAppearance="@style/TextAppearance.Material.NumberPicker" />
diff --git a/core/res/res/layout/resolver_list.xml b/core/res/res/layout/resolver_list.xml
index ae94503..c4e8e9c 100644
--- a/core/res/res/layout/resolver_list.xml
+++ b/core/res/res/layout/resolver_list.xml
@@ -42,7 +42,7 @@
             android:visibility="gone"
             style="?attr/borderlessButtonStyle"
             android:textAppearance="?attr/textAppearanceButton"
-            android:textColor="@color/material_deep_teal_500"
+            android:textColor="?attr/colorAccent"
             android:gravity="center_vertical"
             android:layout_alignParentTop="true"
             android:layout_alignParentRight="true"
diff --git a/core/res/res/layout/time_picker_legacy_material.xml b/core/res/res/layout/time_picker_legacy_material.xml
index c6b7d3a..ee56266 100644
--- a/core/res/res/layout/time_picker_legacy_material.xml
+++ b/core/res/res/layout/time_picker_legacy_material.xml
@@ -40,8 +40,8 @@
             android:id="@+id/hour"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:focusable="true"
             android:focusableInTouchMode="true"
             />
@@ -62,8 +62,8 @@
             android:id="@+id/minute"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dip"
-            android:layout_marginBottom="16dip"
+            android:layout_marginTop="@dimen/picker_top_margin"
+            android:layout_marginBottom="@dimen/picker_bottom_margin"
             android:focusable="true"
             android:focusableInTouchMode="true"
             />
@@ -75,8 +75,8 @@
         android:id="@+id/amPm"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="16dip"
-        android:layout_marginBottom="16dip"
+        android:layout_marginTop="@dimen/picker_top_margin"
+        android:layout_marginBottom="@dimen/picker_bottom_margin"
         android:layout_marginStart="8dip"
         android:layout_marginEnd="8dip"
         android:focusable="true"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 923dea1..bd92ab6 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Reg!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Probeer weer"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Probeer weer"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ontsluit vir alle kenmerke en data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maksimum gesigontsluit-pogings oorskry"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Geen SIM-kaart nie"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Geen SIM-kaart in tablet nie."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android gradeer tans op..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android begin tans …"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimeer tans berging."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android gradeer tans op"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Voltooi tans Android-opdatering …"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sommige programme sal dalk nie behoorlik werk voordat die opgradering voltooi is nie"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> gradeer tans op …"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimeer program <xliff:g id="NUMBER_0">%1$d</xliff:g> van <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index aca5cc5..98fcebb 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ትክክል!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"እንደገና ሞክር"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"እንደገና ሞክር"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ለሁሉም ባህሪያት እና ውሂብ ያስከፍቱ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"የመጨረሻውን  የገጽ ክፈት ሙከራዎችን አልፏል"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ምንም ሲም ካርድ የለም"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"በጡባዊ ውስጥ ምንም SIM ካርድ የለም።"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android እያሻሻለ ነው..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android በመጀመር ላይ ነው…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ማከማቻን በማመቻቸት ላይ።"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android በማላቅ ላይ ነው"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"የAndroid ዝማኔን በመጨረስ ላይ…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"አንዳንድ መተግበሪያዎች ማላቁ እስኪጠናቀቅ ድረስ በአግባቡ ላይሰሩ ይችላሉ"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> በማላቅ ላይ…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"መተግበሪያዎች በአግባቡ በመጠቀም ላይ <xliff:g id="NUMBER_0">%1$d</xliff:g> ከ <xliff:g id="NUMBER_1">%2$d</xliff:g> ፡፡"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 2d8221f..32df247 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -690,6 +690,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحيح!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"أعد المحاولة"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"أعد المحاولة"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"إلغاء قفل جميع الميزات والبيانات"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"تم تجاوز الحد الأقصى لعدد محاولات تأمين الجهاز بالوجه"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏ليست هناك شريحة SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏ليس هناك شريحة SIM في الجهاز اللوحي."</string>
@@ -1114,7 +1115,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"‏جارٍ ترقية Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"‏جارٍ تشغيل Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"جارٍ تحسين السعة التخزينية."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏جارٍ ترقية Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"‏جارٍ إتمام تحديث Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"قد لا تعمل بعض التطبيقات بشكل مناسب إلا بعد انتهاء الترقية"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"جارٍ ترقية <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"جارٍ تحسين التطبيق <xliff:g id="NUMBER_0">%1$d</xliff:g> من <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml
index f922c7f..b1ed7dd 100644
--- a/core/res/res/values-az-rAZ/strings.xml
+++ b/core/res/res/values-az-rAZ/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Düzdür!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bir də cəhd edin"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Bir daha cəhd et"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Bütün funksiyalar və data üçün kiliddən çıxarın"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Sifət kilidi cəhdləriniz bitdi"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM kart yoxdur."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planşetdə SIM kart yoxdur."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android təkmilləşdirilir..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android işə başlayır..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Yaddaş optimallaşdırılır."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android təkmilləşdirilir"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android güncəlləməsi tamamlanır..."</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Güncəllənmə tamamlanana kimi bəzi tətbiqlər düzgün işləməyə bilər"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> təkmilləşdirilir…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> əddədən <xliff:g id="NUMBER_0">%1$d</xliff:g> tətbiq optimallaşır."</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 9108861..ad74e2e 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Tačno!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključaj za sve funkcije i podatke"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen je najveći dozvoljeni broj pokušaja Otključavanja licem"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"U tabletu nema SIM kartice."</string>
@@ -1045,7 +1046,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android se nadograđuje…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android se pokreće…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Memorija se optimizuje."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje…"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dovršavamo ažuriranje Android-a…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće ispravno funkcionisati dok se nadogradnja ne dovrši"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se nadograđuje…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizovanje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml
index 99eee23..237820c 100644
--- a/core/res/res/values-be-rBY/strings.xml
+++ b/core/res/res/values-be-rBY/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правільна!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Паспрабуйце яшчэ раз"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Паўтарыце спробу"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Разблакіраваць для ўсіх функцый і даных"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Перавышана максімальная колькасць спроб разблакоўкі праз Фэйскантроль"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Няма SIM-карты"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Няма SIM-карты ў планшэце."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Абнаўленне Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android запускаецца..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Аптымізацыя сховішча."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Абнаўленне Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Абнаўленне Android завяршаецца…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Пэўныя праграмы могуць не працаваць належным чынам, пакуль не скончыцца абнаўленне"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> абнаўляецца…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Аптымізацыя прыкладання <xliff:g id="NUMBER_0">%1$d</xliff:g> з <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index d800320..098a1a5 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правилно!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Опитайте отново"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Опитайте отново"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Отключете за достъп до всички функции и данни"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Максималният брой опити за отключване с лице е надвишен"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Няма SIM карта"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"В таблета няма SIM карта."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android се надстройва..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android се стартира…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Хранилището се оптимизира."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се надстройва"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Актуализацията на Android приключва…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Някои приложения може да не работят правилно, докато надстройването не завърши"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надстройва…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизира се приложение <xliff:g id="NUMBER_0">%1$d</xliff:g> от <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index 79ea586..c9e921a 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"সঠিক!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"আবার চেষ্টা করুন"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"আবার চেষ্টা করুন"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"সমস্ত বৈশিষ্ট্য এবং ডেটার জন্য আনলক করুন"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"মুখের সাহায্যে আনলক করার প্রচেষ্টা যতবার করা যায় তার সীমা পেরিয়ে গেছে"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"কোনো সিম কার্ড নেই"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ট্যাবলেটের মধ্যে কোনো সিম কার্ড নেই৷"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android আপগ্রেড করা হচ্ছে..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android চালু হচ্ছে…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"সঞ্চয়স্থান অপ্টিমাইজ করা হচ্ছে৷"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android আপগ্রেড করা হচ্ছে"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android আপডেট সম্পন্ন করা হচ্ছে…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"আপগ্রেড সম্পন্ন না হওয়া পর্যন্ত কিছু অ্যাপ্লিকেশান সঠিকভাবে কাজ নাও করতে পারে"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> আপগ্রেড করা হচ্ছে…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>টির মধ্যে <xliff:g id="NUMBER_0">%1$d</xliff:g>টি অ্যাপ্লিকেশান অপ্টিমাইজ করা হচ্ছে৷"</string>
@@ -1069,8 +1070,8 @@
       <item quantity="one">খোলা ওয়াই-ফাই নেটওয়ার্কগুলি উপলব্ধ রয়েছে</item>
       <item quantity="other">খোলা ওয়াই-ফাই নেটওয়ার্কগুলি উপলব্ধ রয়েছে</item>
     </plurals>
-    <string name="wifi_available_sign_in" msgid="9157196203958866662">"ওয়াই-ফাই নেটওয়ার্কে প্রবেশ করুন করুন"</string>
-    <string name="network_available_sign_in" msgid="1848877297365446605">"নেটওয়ার্কে প্রবেশ করুন করুন"</string>
+    <string name="wifi_available_sign_in" msgid="9157196203958866662">"ওয়াই-ফাই নেটওয়ার্কে প্রবেশ করুন"</string>
+    <string name="network_available_sign_in" msgid="1848877297365446605">"নেটওয়ার্কে প্রবেশ করুন"</string>
     <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) -->
     <skip />
     <string name="wifi_no_internet" msgid="8451173622563841546">"ওয়াই-ফাই -তে কোনো ইন্টারনেট অ্যাক্সেস নেই"</string>
@@ -1400,7 +1401,7 @@
     <string name="kg_login_instructions" msgid="1100551261265506448">"আনলক করতে আপনার Google অ্যাকাউন্টের মাধ্যমে প্রবেশ করুন করুন৷"</string>
     <string name="kg_login_username_hint" msgid="5718534272070920364">"ব্যবহারকারী নাম (ইমেল)"</string>
     <string name="kg_login_password_hint" msgid="9057289103827298549">"পাসওয়ার্ড"</string>
-    <string name="kg_login_submit_button" msgid="5355904582674054702">"প্রবেশ করুন করুন"</string>
+    <string name="kg_login_submit_button" msgid="5355904582674054702">"প্রবেশ করুন"</string>
     <string name="kg_login_invalid_input" msgid="5754664119319872197">"অবৈধ ব্যবহারকারী নাম অথবা পাসওয়ার্ড৷"</string>
     <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"আপনার ব্যবহারকারী নাম অথবা পাসওয়ার্ড ভুলে গেছেন?\n"<b>"google.com/accounts/recovery"</b>" এ যান৷"</string>
     <string name="kg_login_checking_password" msgid="1052685197710252395">"অ্যাকাউন্ট পরীক্ষা করা হচ্ছে..."</string>
diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml
index 661548b..20104a6 100644
--- a/core/res/res/values-bs-rBA/strings.xml
+++ b/core/res/res/values-bs-rBA/strings.xml
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ispravno!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključajte uređaj za sve funkcije i podatke"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen maksimalni broj pokušaja otključavanja licem"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nema SIM kartice u tabletu."</string>
@@ -1047,7 +1048,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Nadogradnja sistema Android u toku..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android se pokreće..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje pohrane."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dovršava se ažuriranje Androida…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće raditi ispravno dok traje nadogradnja"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikacija <xliff:g id="APPLICATION">%1$s</xliff:g> se nadograđuje…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiziranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1164,8 +1165,8 @@
     <string name="usb_midi_notification_title" msgid="4850904915889144654">"USB za MIDI"</string>
     <string name="usb_accessory_notification_title" msgid="7848236974087653666">"Uspostavljena veza sa USB pohranom"</string>
     <string name="usb_notification_message" msgid="3370903770828407960">"Dodirnite za više opcija."</string>
-    <string name="adb_active_notification_title" msgid="6729044778949189918">"Uređaj za USB otklanjanje grešaka povezan"</string>
-    <string name="adb_active_notification_message" msgid="4948470599328424059">"Dodirnite da onemogućite otklanjanje grešaka preko USB veze."</string>
+    <string name="adb_active_notification_title" msgid="6729044778949189918">"Otklanjanje grešaka putem uređaja spojenog na USB je uspostavljeno"</string>
+    <string name="adb_active_notification_message" msgid="4948470599328424059">"Dodirnite da onemogućite otklanjanje grešaka putem uređaja spojenog na USB."</string>
     <string name="taking_remote_bugreport_notification_title" msgid="6742483073875060934">"Prijem izvještaja o grešci..."</string>
     <string name="share_remote_bugreport_notification_title" msgid="4987095013583691873">"Podijeliti izvještaj o grešci?"</string>
     <string name="sharing_remote_bugreport_notification_title" msgid="7572089031496651372">"Dijeljenje izvještaja o grešci..."</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index fffcc74..eeed892 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcte!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Torna-ho a provar"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Torna-ho a provar"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbl. per accedir a totes les funcions i dades"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"S\'ha superat el nombre màxim d\'intents de desbloqueig facial"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No hi ha cap targeta SIM."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No hi ha cap targeta SIM a la tauleta."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android s\'està actualitzant..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"S\'està iniciant Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"S\'està optimitzant l\'emmagatzematge."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android s\'està actualitzant"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"S\'està acabant d\'actualitzar Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Pot ser que algunes aplicacions no funcionin correctament fins que no es completi l\'actualització"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"S\'està actualitzant <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"S\'està optimitzant l\'aplicació <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index e7a7b60..df8bffd 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správně!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zkusit znovu"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Zkusit znovu"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Funkce a data jsou k dispozici po odemčení"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Překročili jste maximální povolený počet pokusů o odemknutí obličejem."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Není vložena SIM karta"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tabletu není SIM karta."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android se upgraduje..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Spouštění systému Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Probíhá optimalizace úložiště."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se upgraduje"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dokončování aktualizace Androidu…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Před dokončením upgradu nemusí některé aplikace fungovat správně"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikace <xliff:g id="APPLICATION">%1$s</xliff:g> se upgraduje…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimalizování aplikace <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index faa11be..731c847 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -245,7 +245,7 @@
     <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktpersoner"</string>
     <string name="permgroupdesc_contacts" msgid="6951499528303668046">"have adgang til dine kontaktpersoner"</string>
     <string name="permgrouplab_location" msgid="7275582855722310164">"Placering"</string>
-    <string name="permgroupdesc_location" msgid="1346617465127855033">"få adgang til enhedens placering"</string>
+    <string name="permgroupdesc_location" msgid="1346617465127855033">"at få adgang til enhedens placering"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"have adgang til din kalender"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rigtigt!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv igen"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Prøv igen"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås op for at se alle funktioner og data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Det maksimale antal forsøg på at bruge Ansigtslås er overskredet"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Intet SIM-kort"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Der er ikke noget SIM-kort i tabletcomputeren."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android opgraderes..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android starter..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Lageret optimeres."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android opgraderes"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Afslutter Android-opdateringen…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Nogle apps fungerer muligvis ikke korrekt, før opgraderingen er gennemført"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> opgraderer…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimerer app <xliff:g id="NUMBER_0">%1$d</xliff:g> ud af <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index e98eda7..c478607 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Erneut versuchen"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Erneut versuchen"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Entsperren, um alle Funktionen und Daten zu nutzen"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Die maximal zulässige Anzahl an Face Unlock-Versuchen wurde überschritten."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Keine SIM-Karte"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Keine SIM-Karte im Tablet"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android wird aktualisiert..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android wird gestartet…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Speicher wird optimiert"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android wird aktualisiert"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android-Update wird beendet…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Einige Apps funktionieren unter Umständen nicht richtig, bis das Upgrade abgeschlossen ist"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Für <xliff:g id="APPLICATION">%1$s</xliff:g> wird gerade ein Upgrade ausgeführt…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"App <xliff:g id="NUMBER_0">%1$d</xliff:g> von <xliff:g id="NUMBER_1">%2$d</xliff:g> wird optimiert..."</string>
@@ -1214,7 +1215,7 @@
     <string name="deny" msgid="2081879885755434506">"Ablehnen"</string>
     <string name="permission_request_notification_title" msgid="6486759795926237907">"Berechtigung angefordert"</string>
     <string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">"Berechtigung angefordert\nfür Konto <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
-    <string name="forward_intent_to_owner" msgid="1207197447013960896">"Du verwendest diese App außerhalb deines Arbeitsprofils."</string>
+    <string name="forward_intent_to_owner" msgid="1207197447013960896">"Sie verwenden diese App außerhalb Ihres Arbeitsprofils"</string>
     <string name="forward_intent_to_work" msgid="621480743856004612">"Du verwendest diese App in deinem Arbeitsprofil."</string>
     <string name="input_method_binding_label" msgid="1283557179944992649">"Eingabemethode"</string>
     <string name="sync_binding_label" msgid="3687969138375092423">"Synchronisieren"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 2ceaa7a..3c6e832 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Σωστό!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Προσπαθήστε ξανά"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Προσπαθήστε ξανά"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ξεκλείδωμα για όλες τις λειτουργίες και δεδομένα"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Έγινε υπέρβαση του μέγιστου αριθμού προσπαθειών Face Unlock"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Δεν υπάρχει κάρτα SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Δεν υπάρχει κάρτα SIM στο tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Το Android αναβαθμίζεται..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Εκκίνηση Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Βελτιστοποίηση αποθηκευτικού χώρου."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Το Android αναβαθμίζεται"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Ολοκλήρωση ενημέρωσης Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν σωστά μέχρι την ολοκλήρωση της αναβάθμισης"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Η εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g> αναβαθμίζεται…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Βελτιστοποίηση της εφαρμογής <xliff:g id="NUMBER_0">%1$d</xliff:g> από <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 3495216..12b7aa5 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finishing Android update…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 3495216..12b7aa5 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finishing Android update…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 3495216..12b7aa5 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finishing Android update…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 0e59e05..136902b 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo."</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Volver a intentarlo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquea para acceder a funciones y datos"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Se superó el máximo de intentos permitido para el desbloqueo facial del dispositivo."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sin tarjeta SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No hay tarjeta SIM en el tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android se está actualizando..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Iniciando Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamiento"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se está actualizando"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finalizando actualización de Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Es posible que algunas apps no funcionen correctamente hasta que termine la actualización"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Se está actualizando <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando la aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 946a23a..c4ebb02 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Vuelve a intentarlo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquear para todos los datos y funciones"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Se ha superado el número máximo de intentos de desbloqueo facial."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Falta la tarjeta SIM."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No se ha insertado ninguna tarjeta SIM en el tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Actualizando Android"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android se está iniciando…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamiento."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Actualizando Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Terminando de actualizar Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Es posible que algunas aplicaciones no funcionen correctamente hasta que finalice la actualización"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se está actualizando…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>..."</string>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index aa1a252..8922379 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Õige."</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Proovige uuesti"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Proovige uuesti"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ava kõigi funktsioonide ja andmete nägemiseks"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maksimaalne teenusega Face Unlock avamise katsete arv on ületatud"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-kaarti pole"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tahvelarvutis pole SIM-kaarti."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android viiakse üle uuemale versioonile ..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android käivitub ..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Salvestusruumi optimeerimine."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android viiakse üle uuemale versioonile"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Androidi värskenduse lõpetamine …"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Mõned rakendused ei pruugi enne uuemale versioonile ülemineku lõpetamist korralikult töötada"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Rakenduse <xliff:g id="APPLICATION">%1$s</xliff:g> versiooni uuendatakse …"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>. rakenduse <xliff:g id="NUMBER_1">%2$d</xliff:g>-st optimeerimine."</string>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index cf3cdf7..7dc0877c 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -439,7 +439,7 @@
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hatz-marka digitala ez da osorik hauteman. Saiatu berriro."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ezin izan da hatza-marka prozesatu. Saiatu berriro."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Hatz-marka digitalen sentsorea zikina dago. Garbi ezazu, eta saiatu berriro."</string>
-    <string name="fingerprint_acquired_too_fast" msgid="6470642383109155969">"Hatza bizkorregi mugitu duzu. Saiatu berriro."</string>
+    <string name="fingerprint_acquired_too_fast" msgid="6470642383109155969">"Hatza azkarregi mugitu duzu. Saiatu berriro."</string>
     <string name="fingerprint_acquired_too_slow" msgid="59250885689661653">"Mantsoegi mugitu duzu hatza. Saiatu berriro."</string>
   <string-array name="fingerprint_acquired_vendor">
   </string-array>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Eredua zuzena da!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Saiatu berriro"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Saiatu berriro"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desblokeatu eginbide eta datu guztiak erabiltzeko"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Aurpegiaren bidez desblokeatzeko saiakera muga gainditu da"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ez dago SIM txartelik"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Ez dago SIM txartelik tabletan."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android bertsio-berritzen ari da…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android abiarazten ari da…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Memoria optimizatzen."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android bertsioa berritzen ari gara"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android eguneratzen amaitzen…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Aplikazio batzuek agian ez dute behar bezala funtzionatuko bertsioa berritzen amaitu arte"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> bertsio-berritzen ari da…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g> aplikazio optimizatzen."</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 638b49e0..5976ad1 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -127,7 +127,7 @@
     <item msgid="2254967670088539682">"‏برای برقراری تماس و ارسال پیام از طریق Wi-Fi، ابتدا از شرکت مخابراتی‌تان درخواست کنید این سرویس را راه‌اندازی کند. سپس دوباره از تنظیمات، تماس Wi-Fi را روشن کنید."</item>
   </string-array>
   <string-array name="wfcOperatorErrorNotificationMessages">
-    <item msgid="6177300162212449033">"ثبت نام با شرکت مخابراتی شما"</item>
+    <item msgid="6177300162212449033">"ثبت‌نام با شرکت مخابراتی شما"</item>
   </string-array>
   <string-array name="wfcSpnFormats">
     <item msgid="6830082633573257149">"%s"</item>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح است!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوباره امتحان کنید"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"دوباره امتحان کنید"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"باز کردن قفل تمام قابلیت‌ها و داده‌ها"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"‏دفعات تلاش برای Face Unlock از حداکثر مجاز بیشتر شد"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"سیم کارت موجود نیست"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"سیم کارت درون رایانهٔ لوحی نیست."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"‏Android در حال ارتقا است..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"‏Android در حال راه‌اندازی است..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"بهینه‌سازی فضای ذخیره‌سازی."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android درحال ارتقا است"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"‏درحال پایان به‌روزرسانی Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"تا پایان ارتقا، ممکن است برخی از برنامه‌ها به‌درستی کار نکنند."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> درحال ارتقا است...."</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"در حال بهینه‌سازی برنامهٔ <xliff:g id="NUMBER_0">%1$d</xliff:g> از <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1511,8 +1512,8 @@
     <string name="mediasize_japanese_kahu" msgid="6872696027560065173">"Kahu"</string>
     <string name="mediasize_japanese_kaku2" msgid="2359077233775455405">"Kaku2"</string>
     <string name="mediasize_japanese_you4" msgid="2091777168747058008">"You4"</string>
-    <string name="mediasize_unknown_portrait" msgid="3088043641616409762">"عمودی ناشناخته"</string>
-    <string name="mediasize_unknown_landscape" msgid="4876995327029361552">"افقی ناشناخته"</string>
+    <string name="mediasize_unknown_portrait" msgid="3088043641616409762">"عمودی ناشناس"</string>
+    <string name="mediasize_unknown_landscape" msgid="4876995327029361552">"افقی ناشناس"</string>
     <string name="write_fail_reason_cancelled" msgid="7091258378121627624">"لغو شد"</string>
     <string name="write_fail_reason_cannot_write" msgid="8132505417935337724">"خطا هنگام نوشتن محتوا"</string>
     <string name="reason_unknown" msgid="6048913880184628119">"نامعلوم"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 75d44f5..b221750 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Oikein!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Yritä uudelleen"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Yritä uudelleen"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Käytä kaikkia ominaisuuksia avaamalla lukitus."</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Face Unlock -yrityksiä tehty suurin sallittu määrä."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ei SIM-korttia"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tablet-laitteessa ei ole SIM-korttia."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Androidia päivitetään…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android käynnistyy…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimoidaan tallennustilaa."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Androidia päivitetään"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Viimeistellään Android-päivitystä…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kaikki sovellukset eivät ehkä toimi oikein, ennen kuin päivitys on valmis."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> päivittyy…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimoidaan sovellusta <xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 5d4210a..d9fbceb 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -21,7 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="byteShort" msgid="8340973892742019101">"B"</string>
-    <string name="kilobyteShort" msgid="5973789783504771878">"Ko"</string>
+    <string name="kilobyteShort" msgid="5973789783504771878">"ko"</string>
     <string name="megabyteShort" msgid="6355851576770428922">"Mo"</string>
     <string name="gigabyteShort" msgid="3259882455212193214">"Go"</string>
     <string name="terabyteShort" msgid="231613018159186962">"To"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"C\'est exact!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Réessayer"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Réessayer"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Déverr. pour acc. aux autres fonction. et données"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nombre maximal autorisé de tentatives Face Unlock atteint."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Aucune carte SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Aucune carte SIM n\'est insérée dans la tablette."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Mise à jour d\'Android…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android en cours de démarrage..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimisation du stockage."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Installation de la m. à niveau d\'Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finalisation de la mise à jour d\'Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Il se peut que certaines applications ne fonctionnent pas correctement jusqu\'à ce que la mise à niveau soit terminée"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Mise à niveau de <xliff:g id="APPLICATION">%1$s</xliff:g> en cours…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimisation de l\'application <xliff:g id="NUMBER_0">%1$d</xliff:g> sur <xliff:g id="NUMBER_1">%2$d</xliff:g>…"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index bbe2223..6600f09 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Combinaison correcte !"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Veuillez réessayer."</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Veuillez réessayer."</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Déverr. pour autres fonctionnalités et données"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nombre maximal autorisé de tentatives Face Unlock atteint."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Pas de carte SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Aucune carte SIM n\'est insérée dans la tablette."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Mise à jour d\'Android…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Démarrage d\'Android en cours"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimisation du stockage en cours…"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Mise à jour d\'Android…"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finalisation de la mise à jour Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Certaines applications peuvent ne pas fonctionner correctement jusqu\'à ce que la mise à jour soit terminée."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Mise à jour de l\'application <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimisation de l\'application <xliff:g id="NUMBER_0">%1$d</xliff:g> sur <xliff:g id="NUMBER_1">%2$d</xliff:g>…"</string>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index 5b5b3a3..350caaa 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -249,7 +249,7 @@
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder ao teu calendario"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
-    <string name="permgroupdesc_sms" msgid="4656988620100940350">"envíar e consultar mensaxes de SMS"</string>
+    <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar e consultar mensaxes de SMS"</string>
     <string name="permgrouplab_storage" msgid="1971118770546336966">"Almacenamento"</string>
     <string name="permgroupdesc_storage" msgid="637758554581589203">"acceder a fotos, contido multimedia e ficheiros no teu dispositivo"</string>
     <string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string>
@@ -259,7 +259,7 @@
     <string name="permgrouplab_phone" msgid="5229115638567440675">"Teléfono"</string>
     <string name="permgroupdesc_phone" msgid="6234224354060641055">"facer e xestionar chamadas telefónicas"</string>
     <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporais"</string>
-    <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accede aos datos do sensor sobre as túas constantes vitais"</string>
+    <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceder aos datos do sensor sobre as túas constantes vitais"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar contido da ventá"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona o contido dunha ventá coa que estás interactuando."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar a exploración táctil"</string>
@@ -598,7 +598,7 @@
     <string name="phoneTypeCallback" msgid="2712175203065678206">"Devolver chamada"</string>
     <string name="phoneTypeCar" msgid="8738360689616716982">"Coche"</string>
     <string name="phoneTypeCompanyMain" msgid="540434356461478916">"Empresa (ppal.)"</string>
-    <string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
+    <string name="phoneTypeIsdn" msgid="8022453193171370337">"RDSI"</string>
     <string name="phoneTypeMain" msgid="6766137010628326916">"Principal"</string>
     <string name="phoneTypeOtherFax" msgid="8587657145072446565">"Outro fax"</string>
     <string name="phoneTypeRadio" msgid="4093738079908667513">"Radio"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Téntao de novo"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Téntao de novo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquea para gozar todas as funcións e datos"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Superouse o número máximo de intentos de desbloqueo facial"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Non hai ningunha tarxeta SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Non hai ningunha tarxeta SIM na tableta."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Estase actualizando Android…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Estase iniciando Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamento."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Estase actualizando Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Finalizando a actualización de Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"É posible que algunhas aplicacións non funcionen correctamente ata que finalice o proceso de actualización"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Actualizando <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml
index 2982c85..5c3bf93 100644
--- a/core/res/res/values-gu-rIN/strings.xml
+++ b/core/res/res/values-gu-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"સાચું!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ફરી પ્રયાસ કરો"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ફરી પ્રયાસ કરો"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"તમામ સુવિધાઓ અને ડેટા માટે અનલૉક કરો"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"મહત્તમ ફેસ અનલૉક પ્રયાસો ઓળંગાયા"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"કોઈ SIM કાર્ડ નથી"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ટેબ્લેટમાં SIM કાર્ડ નથી."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android અપગ્રેડ થઈ રહ્યું છે..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android પ્રારંભ થઈ રહ્યું છે…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"સંગ્રહ ઓપ્ટિમાઇઝ કરી રહ્યું છે."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android અપગ્રેડ થઈ રહ્યું છે"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android અપડેટ સમાપ્ત કરી રહ્યાં છે…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"અપગ્રેડ સમાપ્ત ન થાય ત્યાં સુધી કેટલીક ઍપ્લિકેશનો કદાચ યોગ્ય રીતે કામ ન કરે"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> અપગ્રેડ થઈ રહી છે…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> માંથી <xliff:g id="NUMBER_0">%1$d</xliff:g> ઍપ્લિકેશન ઓપ્ટિમાઇઝ કરી રહ્યું છે."</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 7227880..bea243b 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फिर से प्रयास करें"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"फिर से प्रयास करें"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सभी सुविधाओं और डेटा के लिए अनलॉक करें"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"फेस अनलॉक के अधिकतम प्रयासों की सीमा पार हो गई"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"कोई सिम कार्ड नहीं है"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"टेबलेट में कोई सिम कार्ड नहीं है."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android अपग्रेड हो रहा है..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android प्रारंभ हो रहा है…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"मेमोरी ऑप्‍टिमाइज़ हो रही है."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android अपग्रेड हो रहा है"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android अपडेट समाप्त हो रहा है…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"जब तक अपग्रेड पूरा नहीं हो जाता, तब तक संभव है कि कुछ ऐप्लिकेशन ठीक से कार्य ना करें"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> अपग्रेड हो रहा है…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> में से <xliff:g id="NUMBER_0">%1$d</xliff:g> ऐप्स  अनुकूलित हो रहा है."</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 71337e2..b181f6d 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ispravno!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključajte za sve značajke i podatke"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen je maksimalni broj Otključavanja licem"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"U tabletnom uređaju nema SIM kartice."</string>
@@ -1045,7 +1046,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android se nadograđuje…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Pokretanje Androida..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje pohrane."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dovršavanje ažuriranja Androida…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće funkcionirati pravilno dok nadogradnja ne završi"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Nadogradnja aplikacije <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiziranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index ce4bef5..aea12a6 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Helyes!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Próbálja újra"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Újra"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Oldja fel a funkciók és adatok eléréséhez"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Elérte az arcalapú feloldási kísérletek maximális számát"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nincs SIM-kártya."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nincs SIM-kártya a táblagépben."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android frissítése folyamatban..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Az Android indítása…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Tárhely-optimalizálás."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android frissítése folyamatban"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Az Android frissítésének befejezése…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"A frissítés befejezéséig előfordulhat, hogy egyes alkalmazások nem megfelelően működnek."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"A(z) <xliff:g id="APPLICATION">%1$s</xliff:g> frissítése folyamatban van"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Alkalmazás optimalizálása: <xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 25a069d..ba97468 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ճիշտ է:"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Կրկին փորձեք"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Կրկին փորձեք"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ապակողպեք՝ բոլոր գործառույթներն ու տվյալներն օգտագործելու համար"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Առավելագույն Դեմքով ապակողպման փորձերը գերազանցված են"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM քարտ չկա"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Գրասալիկում SIM քարտ չկա:"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android-ը նորացվում է..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android-ը մեկնարկում է…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Պահեստի օպտիմալացում:"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android-ը նորացվում է"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android-ի թարմացումն ավարտվում է…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Հնարավոր է՝ որոշ հավելվածներ մինչև նորացման ավարտը ճիշտ չաշխատեն"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածը նորացվում է…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Օպտիմալացվում է հավելված <xliff:g id="NUMBER_0">%1$d</xliff:g>-ը <xliff:g id="NUMBER_1">%2$d</xliff:g>-ից:"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 213d9b6..132789b 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Perbaiki!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Coba lagi"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Coba lagi"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Membuka kunci untuk semua fitur dan data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Percobaan Face Unlock melebihi batas maksimum"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Tidak ada kartu SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tidak ada kartu SIM dalam tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android sedang meningkatkan versi..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Memulai Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Mengoptimalkan penyimpanan."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android sedang meningkatkan versi"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Menyelesaikan pembaruan Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Beberapa aplikasi mungkin tidak berfungsi dengan baik jika peningkatan versi belum selesai"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> sedang ditingkatkan versinya…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Mengoptimalkan aplikasi <xliff:g id="NUMBER_0">%1$d</xliff:g> dari <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index 20a5b17..a897ba8 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rétt!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Reyndu aftur"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Reyndu aftur"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Taktu úr lás til að sjá alla eiginleika og gögn"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Hámarksfjölda tilrauna til að opna með andliti náð"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ekkert SIM-kort"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Ekkert SIM-kort í spjaldtölvunni."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android er að uppfæra…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android er að ræsast…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Fínstillir geymslu."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android er að uppfæra"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Lýkur við Android uppfærslu…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Hugsanlega virka sum forrit ekki fyrr en uppfærslunni lýkur"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> uppfærir…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Fínstillir forrit <xliff:g id="NUMBER_0">%1$d</xliff:g> af <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index d89bf1b..9cd74dc 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -310,7 +310,7 @@
     <string name="permdesc_enableCarMode" msgid="4853187425751419467">"Consente all\'applicazione di abilitare la modalità automobile."</string>
     <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"chiusura altre applicazioni"</string>
     <string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"Consente all\'applicazione di terminare i processi in background di altre applicazioni. Ciò potrebbe causare l\'interruzione di altre applicazioni."</string>
-    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"posizionamento davanti ad altre app"</string>
+    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"visualizzazione sopra altre app"</string>
     <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Consente all\'applicazione di spostarsi sopra ad altre applicazioni o parti dell\'interfaccia utente. Potrebbe interferire con il tuo utilizzo dell\'interfaccia in qualsiasi applicazione o cambiare ciò che credi di vedere in altre applicazioni."</string>
     <string name="permlab_persistentActivity" msgid="8841113627955563938">"esecuzione permanente delle applicazioni"</string>
     <string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"Consente all\'applicazione di rendere persistenti in memoria alcune sue parti. Ciò può limitare la memoria disponibile per altre applicazioni, rallentando il tablet."</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corretta."</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Riprova"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Riprova"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Sblocca per accedere a funzioni e dati"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Numero massimo di tentativi di Sblocco col sorriso superato"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nessuna scheda SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nessuna scheda SIM presente nel tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Aggiornamento di Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Avvio di Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ottimizzazione archiviazione."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Aggiornamento di Android in corso"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Completamento aggiornamento Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alcune app potrebbero non funzionare correttamente fino al completamento dell\'upgrade"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Upgrade dell\'app <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Ottimizzazione applicazione <xliff:g id="NUMBER_0">%1$d</xliff:g> di <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 6907773..10c5836 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"נכון!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"נסה שוב"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"נסה שוב"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"בטל את הנעילה לכל התכונות והנתונים"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"חרגת ממספר הניסיונות המרבי של זיהוי פנים"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏אין כרטיס SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏אין כרטיס SIM בטאבלט."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"‏Android מבצע שדרוג…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"‏הפעלת Android מתחילה…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"מתבצעת אופטימיזציה של האחסון."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android מבצע שדרוג"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"‏מסיים עדכון Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ייתכן שאפליקציות מסוימות לא יפעלו כראוי עד סיום השדרוג"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> מבצעת שדרוג…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"מבצע אופטימיזציה של אפליקציה <xliff:g id="NUMBER_0">%1$d</xliff:g> מתוך <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1361,7 +1362,7 @@
     <string name="action_menu_overflow_description" msgid="2295659037509008453">"אפשרויות נוספות"</string>
     <string name="action_bar_home_description_format" msgid="7965984360903693903">"‏%1$s‏, %2$s"</string>
     <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"‏%1$s‏, %2$s‏, %3$s"</string>
-    <string name="storage_internal" msgid="3570990907910199483">"אחסון משותף פנימי"</string>
+    <string name="storage_internal" msgid="3570990907910199483">"אחסון שיתוף פנימי"</string>
     <string name="storage_sd_card" msgid="3282948861378286745">"‏כרטיס SD"</string>
     <string name="storage_sd_card_label" msgid="6347111320774379257">"‏כרטיס SD של <xliff:g id="MANUFACTURER">%s</xliff:g>"</string>
     <string name="storage_usb_drive" msgid="6261899683292244209">"‏כונן USB"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 2327c72..b2a7bd2 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"一致しました"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"もう一度お試しください"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"もう一度お試しください"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"すべての機能とデータを利用するにはロック解除"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"フェイスアンロックの最大試行回数を超えました"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIMカードが挿入されていません"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"タブレット内にSIMカードがありません。"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Androidをアップグレードしています..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Androidの起動中…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ストレージを最適化しています。"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android のアップグレード中"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android の更新の終了中…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"アップグレードが完了するまで一部のアプリが正常に動作しない可能性があります"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"「<xliff:g id="APPLICATION">%1$s</xliff:g>」をアップグレードしています…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>個中<xliff:g id="NUMBER_0">%1$d</xliff:g>個のアプリを最適化しています。"</string>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index e22602a..0295ea5 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"სწორია!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"კიდევ სცადეთ"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"კიდევ სცადეთ"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ყველა ფუნქციისა და მონაცემის განბლოკვა"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"სახის ამოცნობით განბლოკვის მცდელობამ დაშვებულ რაოდენობას გადააჭარბა"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM ბარათი არ არის"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ტაბლეტში არ დევს SIM ბარათი."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android ახალ ვერსიაზე გადადის…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android იწყება…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"მეხსიერების ოპტიმიზირება."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ახალ ვერსიაზე გადადის"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android-ის განახლება სრულდება…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ახალ ვერსიაზე გადასვლის დასრულებამდე, ზოგიერთმა აპმა შეიძლება არასწორად იმუშაოს"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ახალ ვერსიაზე გადადის…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"მიმდინარეობს აპლიკაციების ოპტიმიზაცია. დასრულებულია <xliff:g id="NUMBER_0">%1$d</xliff:g>, სულ <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index 88c1136..b5931c1 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Дұрыс!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Қайталап көріңіз"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Қайталап көріңіз"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Мүмкіндіктер мен деректер үшін құлыпты ашыңыз"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Бет-әлпет арқылы ашу әрекеттері анықталған шегінен асып кетті"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM картасы жоқ"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Планшетте SIM картасы жоқ."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android жаңартылуда…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android іске қосылуда…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Қойманы оңтайландыру."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android жаңартылуда"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android жүйесін жаңарту аяқталуда…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Жаңарту аяқталғанға дейін кейбір қолданбалар дұрыс жұмыс істемеуі мүмкін"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> жаңартылуда…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ішінен <xliff:g id="NUMBER_0">%1$d</xliff:g> қолданба оңтайландырылуда."</string>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index 1bf6ae5..71f8cba 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ត្រឹមត្រូវ!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ព្យាយាម​ម្ដង​ទៀត"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ព្យាយាម​ម្ដង​ទៀត"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ដោះសោលក្ខណៈពិសេស និងទិន្នន័យទាំងអស់"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"បាន​លើស​ការ​ព្យាយាម​ដោះ​សោ​តាម​ទម្រង់​មុខ"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"គ្មាន​ស៊ី​ម​កាត"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"គ្មាន​ស៊ីម​កាត​ក្នុង​កុំព្យូទ័រ​បន្ទះ។"</string>
@@ -1024,7 +1025,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android កំពុង​ធ្វើ​បច្ចុប្បន្នភាព..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android កំពុង​ចាប់ផ្ដើម…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"កំពុងធ្វើឲ្យឧបករណ៍ផ្ទុកមានប្រសិទ្ធភាព។"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android កំពុងអាប់គ្រេត..."</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"កំពុងបញ្ចប់ការអាប់ដេត Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"កម្មវិធីមួយចំនួនអាចនឹងមិនដំណើរការប្រក្រតីនោះទេ រហូតដល់ការអាប់គ្រេតបញ្ចប់"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> អាប់គ្រេត…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"ធ្វើ​ឲ្យ​កម្មវិធី​ប្រសើរ​ឡើង <xliff:g id="NUMBER_0">%1$d</xliff:g> នៃ <xliff:g id="NUMBER_1">%2$d</xliff:g> ។"</string>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index 9973972..770af19 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ಸರಿಯಾಗಿದೆ!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ಎಲ್ಲ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಡೇಟಾಗೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ಗರಿಷ್ಠ ಫೇಸ್ ಅನ್‍ಲಾಕ್ ಪ್ರಯತ್ನಗಳು ಮೀರಿವೆ"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ಯಾವುದೇ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ."</string>
@@ -969,9 +970,9 @@
     <string name="whichViewApplication" msgid="3272778576700572102">"ಇದರ ಮೂಲಕ ತೆರೆಯಿರಿ"</string>
     <string name="whichViewApplicationNamed" msgid="2286418824011249620">"%1$s ಜೊತೆಗೆ ತೆರೆಯಿರಿ"</string>
     <string name="whichViewApplicationLabel" msgid="2666774233008808473">"ತೆರೆ"</string>
-    <string name="whichEditApplication" msgid="144727838241402655">"ಇವರ ಜೊತೆಗೆ ಸಂಪಾದಿಸಿ"</string>
-    <string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ಜೊತೆಗೆ ಸಂಪಾದಿಸಿ"</string>
-    <string name="whichEditApplicationLabel" msgid="7183524181625290300">"ಸಂಪಾದಿಸು"</string>
+    <string name="whichEditApplication" msgid="144727838241402655">"ಇವರ ಜೊತೆಗೆ ಎಡಿಟ್ ಮಾಡಿ"</string>
+    <string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ಜೊತೆಗೆ ಎಡಿಟ್ ಮಾಡಿ"</string>
+    <string name="whichEditApplicationLabel" msgid="7183524181625290300">"ಎಡಿಟ್"</string>
     <string name="whichSendApplication" msgid="6902512414057341668">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
     <string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
     <string name="whichSendApplicationLabel" msgid="4579076294675975354">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ಸಂಗ್ರಹಣೆಯನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android ಅಪ್‌ಡೇಟ್‌ ಮುಗಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ಅಪ್‌ಗ್ರೇಡ್ ಮುಗಿಯುವ ತನಕ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡದಿರಬಹುದು"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ಅಪ್‌ಗ್ರೇಡ್ ಆಗುತ್ತಿದೆ..."</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="NUMBER_0">%1$d</xliff:g> ಅಪ್ಲಿಕೇಶನ್‌ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
@@ -1315,7 +1316,7 @@
     <string name="storage_usb_drive" msgid="6261899683292244209">"USB ಡ್ರೈವ್"</string>
     <string name="storage_usb_drive_label" msgid="4501418548927759953">"<xliff:g id="MANUFACTURER">%s</xliff:g> USB ಡ್ರೈವ್"</string>
     <string name="storage_usb" msgid="3017954059538517278">"USB ಸಂಗ್ರಹಣೆ"</string>
-    <string name="extract_edit_menu_button" msgid="8940478730496610137">"ಸಂಪಾದಿಸು"</string>
+    <string name="extract_edit_menu_button" msgid="8940478730496610137">"ಎಡಿಟ್"</string>
     <string name="data_usage_warning_title" msgid="1955638862122232342">"ಡೇಟಾ ಬಳಕೆಯ ಎಚ್ಚರಿಕೆ"</string>
     <string name="data_usage_warning_body" msgid="6660692274311972007">"ಬಳಕೆ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‍ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"2G-3G ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 8392b8d..8bd7160 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -245,17 +245,17 @@
     <string name="permgrouplab_contacts" msgid="3657758145679177612">"주소록"</string>
     <string name="permgroupdesc_contacts" msgid="6951499528303668046">"주소록에 접근할 수 있도록"</string>
     <string name="permgrouplab_location" msgid="7275582855722310164">"위치"</string>
-    <string name="permgroupdesc_location" msgid="1346617465127855033">"이 기기의 위치정보에 접근할 수 있도록"</string>
+    <string name="permgroupdesc_location" msgid="1346617465127855033">"이 기기의 위치정보에 액세스"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"캘린더"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"일정에 접근할 수 있도록"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
     <string name="permgroupdesc_sms" msgid="4656988620100940350">"문자 메시지를 보내고 확인할 수 있도록"</string>
     <string name="permgrouplab_storage" msgid="1971118770546336966">"저장"</string>
-    <string name="permgroupdesc_storage" msgid="637758554581589203">"기기 사진, 미디어, 파일에 접근할 수 있도록"</string>
+    <string name="permgroupdesc_storage" msgid="637758554581589203">"기기 사진, 미디어, 파일 액세스"</string>
     <string name="permgrouplab_microphone" msgid="171539900250043464">"마이크"</string>
     <string name="permgroupdesc_microphone" msgid="4988812113943554584">"오디오를 녹음할 수 있도록"</string>
     <string name="permgrouplab_camera" msgid="4820372495894586615">"카메라"</string>
-    <string name="permgroupdesc_camera" msgid="3250611594678347720">"사진 및 동영상을 촬영할 수 있도록"</string>
+    <string name="permgroupdesc_camera" msgid="3250611594678347720">"사진 및 동영상 촬영"</string>
     <string name="permgrouplab_phone" msgid="5229115638567440675">"전화"</string>
     <string name="permgroupdesc_phone" msgid="6234224354060641055">"통화 상태를 관리하거나 전화를 걸 수 있도록"</string>
     <string name="permgrouplab_sensors" msgid="416037179223226722">"신체 센서"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"맞습니다."</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"다시 시도"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"다시 시도"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"모든 기능 및 데이터 잠금 해제"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"얼굴 인식 잠금해제 최대 시도 횟수를 초과했습니다."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM 카드가 없습니다."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"태블릿에 SIM 카드가 없습니다."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android 업그레이드 중.."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android가 시작되는 중…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"저장소 최적화 중"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android 업그레이드 중"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android 업데이트 완료 중…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"특정 앱은 업그레이드가 완료될 때까지 제대로 작동하지 않을 수 있습니다."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> 업그레이드 중…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"앱 <xliff:g id="NUMBER_1">%2$d</xliff:g>개 중 <xliff:g id="NUMBER_0">%1$d</xliff:g>개 최적화 중"</string>
@@ -1309,7 +1310,7 @@
     <string name="action_menu_overflow_description" msgid="2295659037509008453">"옵션 더보기"</string>
     <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
     <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
-    <string name="storage_internal" msgid="3570990907910199483">"내부 공유 저장공간"</string>
+    <string name="storage_internal" msgid="3570990907910199483">"내부 공유 저장용량"</string>
     <string name="storage_sd_card" msgid="3282948861378286745">"SD 카드"</string>
     <string name="storage_sd_card_label" msgid="6347111320774379257">"<xliff:g id="MANUFACTURER">%s</xliff:g> SD 카드"</string>
     <string name="storage_usb_drive" msgid="6261899683292244209">"USB 드라이브"</string>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index 3676522..58c2c8a 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Туура!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дагы аракет кылыңыз"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Дагы аракет кылыңыз"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Элементтердин жана дайындардын кулпусун ачуу"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Жүзүнөн таанып ачуу аракеттеринин чегинен аштыңыз"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-карта жок"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Планшетте SIM-карта жок."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android жаңыртылууда…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android жүргүзүлүүдө…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Сактагыч ыңгайлаштырылууда."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android жаңыртылууда"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android\'ди жаңыртуу аякталууда..."</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Жаңыртуу аягына чыкмайынча айрым колдонмолор талаптагыдай иштебей калышы мүмкүн"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> жаңыртылууда..."</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ичинен <xliff:g id="NUMBER_0">%1$d</xliff:g> колдонмо ыңгайлаштырылууда."</string>
@@ -1196,8 +1197,7 @@
     <string name="permdesc_readInstallSessions" msgid="2049771699626019849">"Колдонмого орнотуу сеанстарын окуу мүмкүнчүлүгүн берет. Ушуну менен, ал жигердүү топтом орнотууларынын чоо-жайын көрө алат."</string>
     <string name="permlab_requestInstallPackages" msgid="5782013576218172577">"орнотуу топтомдорун суроо"</string>
     <string name="permdesc_requestInstallPackages" msgid="5740101072486783082">"Колдонмо топтомдорду орнотууга уруксат сурай алат."</string>
-    <!-- no translation found for tutorial_double_tap_to_zoom_message_short (1311810005957319690) -->
-    <skip />
+    <string name="tutorial_double_tap_to_zoom_message_short" msgid="1311810005957319690">"Масштабдын параметрлерин өзгөртүү үчүн бул жерди эки жолу басыңыз."</string>
     <string name="gadget_host_error_inflating" msgid="4882004314906466162">"Виджетти кошуу мүмкүн болбоду."</string>
     <string name="ime_action_go" msgid="8320845651737369027">"Өтүү"</string>
     <string name="ime_action_search" msgid="658110271822807811">"Издөө"</string>
@@ -1228,10 +1228,8 @@
     <string name="notification_ranker_binding_label" msgid="774540592299064747">"Эскертмелердин маанилүүлүгүн баалоо кызматы"</string>
     <string name="vpn_title" msgid="19615213552042827">"VPN иштетилди"</string>
     <string name="vpn_title_long" msgid="6400714798049252294">"VPN <xliff:g id="APP">%s</xliff:g> аркылуу жандырылды"</string>
-    <!-- no translation found for vpn_text (1610714069627824309) -->
-    <skip />
-    <!-- no translation found for vpn_text_long (4907843483284977618) -->
-    <skip />
+    <string name="vpn_text" msgid="1610714069627824309">"Тармактын параметрлерин өзгөртүү үчүн бул жерди басыңыз."</string>
+    <string name="vpn_text_long" msgid="4907843483284977618">"<xliff:g id="SESSION">%s</xliff:g> сеансына туташуу ишке ашты. Желенин параметрлерин өзгөртүү үчүн бул жерди басыңыз."</string>
     <string name="vpn_lockdown_connecting" msgid="6443438964440960745">"Дайым иштеген VPN туташууда…"</string>
     <string name="vpn_lockdown_connected" msgid="8202679674819213931">"Дайым иштеген VPN туташтырылды"</string>
     <string name="vpn_lockdown_error" msgid="6009249814034708175">"Дайым иштеген VPN\'де ката кетти"</string>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index aa4d468..e2720c7 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ຖືກຕ້ອງ!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ລອງໃໝ່ອີກຄັ້ງ"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ທົດລອງອີກຄັ້ງ"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ປົດລັອກຄຸນສົມບັດ ແລະ ຂໍ້ມູນທັງໝົດ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ຄວາມພະຍາຍາມປົດລັອກດ້ວຍໜ້ານັ້ນ ເກີນຈຳນວນທີ່ກຳນົດແລ້ວ"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ບໍ່ມີ SIM card."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ບໍ່ມີຊິມກາດໃນແທັບເລັດ."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"ກຳລັງອັບເກຣດ Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"ກຳ​ລັງ​ເລີ່ມລະ​ບົບ​ Android …"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ການ​ປັບ​ບ່ອນ​ເກັບ​ຂໍ້​ມູນ​ໃຫ້​ເໝາະ​ສົມ."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"ກຳລັງອັບເກຣດ Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"ກຳລັງສຳເລັດຂັ້ນຕອນການອັບເດດ Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ບາງແອັບອາດບໍ່ສາມາດເຮັດວຽກໄດ້ປົກກະຕິຈົນກວ່າຈະອັບເກຣດສຳເລັດ"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"ກຳລັງອັບເກຣດ<xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"ກຳລັງ​ປັບປຸງ​ປະສິດທິພາບ​ແອັບຯ​ທີ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຈາກ​ທັງ​ໝົດ <xliff:g id="NUMBER_1">%2$d</xliff:g> ແອັບຯ."</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 8d67b18..ab38c0c 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Teisingai!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bandykite dar kartą"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Bandykite dar kartą"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Atrakinę pasieksite visas funkcijas ir duomenis"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Viršijote maksimalų atrakinimo pagal veidą bandymų skaičių"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nėra SIM kortelės"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planšetiniame kompiuteryje nėra SIM kortelės."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"„Android“ naujovinama..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Paleidžiama „Android“…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizuojama saugykla."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"„Android“ naujovinama"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Baigiamas „Android“ atnauj. procesas…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kai kurios programos gali tinkamai neveikti, kol naujovinimo procesas nebus baigtas"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"„<xliff:g id="APPLICATION">%1$s</xliff:g>“ naujovinama..."</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizuojama <xliff:g id="NUMBER_0">%1$d</xliff:g> progr. iš <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index d18a59b..35b699f 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pareizi!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Mēģināt vēlreiz"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Mēģināt vēlreiz"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Atbloķēt visām funkcijām un datiem"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Ir pārsniegts maksimālais Autorizācijas pēc sejas mēģinājumu skaits."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nav SIM kartes"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planšetdatorā nav SIM kartes."</string>
@@ -1045,7 +1046,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Notiek Android jaunināšana..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Notiek Android palaišana…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Notiek krātuves optimizēšana."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Notiek Android jaunināšana..."</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Tiek pabeigta Android atjaunināšana…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kamēr jaunināšana nebūs pabeigta, dažas lietotnes, iespējams, nedarbosies pareizi."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Notiek lietotnes <xliff:g id="APPLICATION">%1$s</xliff:g> jaunināšana…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Tiek optimizēta <xliff:g id="NUMBER_0">%1$d</xliff:g>. lietotne no <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index 9130990..e0ec16a 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -254,7 +254,7 @@
     <string name="permgroupdesc_storage" msgid="637758554581589203">"пристапува до фотографии, аудио-видео и датотеки на уредот"</string>
     <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
     <string name="permgroupdesc_microphone" msgid="4988812113943554584">"снима аудио"</string>
-    <string name="permgrouplab_camera" msgid="4820372495894586615">"Фотоапарат"</string>
+    <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
     <string name="permgroupdesc_camera" msgid="3250611594678347720">"фотографира и снима видео"</string>
     <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
     <string name="permgroupdesc_phone" msgid="6234224354060641055">"упатува и управува со телефонски повици"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Точно!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Обидете се повторно"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Обидете се повторно"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Отклучи за сите функции и податоци"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Максималниот број обиди на отклучување со лице е надминат"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нема СИМ картичка"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Во таблетот нема СИМ картичка."</string>
@@ -740,7 +741,7 @@
     <string name="keyguard_accessibility_widget" msgid="6527131039741808240">"Виџет <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>."</string>
     <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Избирач на корисник"</string>
     <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Статус"</string>
-    <string name="keyguard_accessibility_camera" msgid="8904231194181114603">"Фотоапарат"</string>
+    <string name="keyguard_accessibility_camera" msgid="8904231194181114603">"Камера"</string>
     <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Контроли на медиуми"</string>
     <string name="keyguard_accessibility_widget_reorder_start" msgid="8736853615588828197">"Прередувањето виџети започна."</string>
     <string name="keyguard_accessibility_widget_reorder_end" msgid="7170190950870468320">"Прередувањето виџети заврши."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android се ажурира…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android стартува…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимизирање на складирањето."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се ажурира"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Се завршува ажурирањето на Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Некои апликации може да не работат правилно додека не се заврши надградбата"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надградува…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Се оптимизира апликација <xliff:g id="NUMBER_0">%1$d</xliff:g> од <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 33764f5..39d493a 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ശരി!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"വീണ്ടും ശ്രമിക്കുക"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"വീണ്ടും ശ്രമിക്കുക"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"എല്ലാ ഫീച്ചറുകളും വിവരങ്ങളും ലഭിക്കാൻ അൺലോക്കുചെയ്യുക"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"മുഖം തിരിച്ചറിഞ്ഞുള്ള അൺലോക്ക് ശ്രമങ്ങളുടെ പരമാവധി കഴിഞ്ഞു"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"സിം കാർഡില്ല"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ടാബ്‌ലെറ്റിൽ സിം കാർഡൊന്നുമില്ല."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android അപ്ഗ്രേഡുചെയ്യുന്നു…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ആരംഭിക്കുന്നു…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"സ്റ്റോറേജ്  ഒപ്‌റ്റിമൈസ് ചെയ്യുന്നു."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android അപ്ഗ്രേഡുചെയ്യുന്നു"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android അപ്ഡേറ്റ് പൂർത്തിയാക്കുന്നു…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"അപ്‌ഗ്രേഡ് പൂർത്തിയാകുന്നത് വരെ ചില ആപ്‌സ് ശരിയായി പ്രവർത്തിച്ചേക്കില്ല"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> അപ്ഗ്രേഡ് ചെയ്യുന്നു…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g> അപ്ലിക്കേഷൻ ഓപ്റ്റിമൈസ് ചെയ്യുന്നു."</string>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 543f4cc..5f384a1 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Зөв!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дахин оролдох"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Дахин оролдох"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Бүх онцлог, өгөгдлийн түгжээг тайлах"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Нүүрээр түгжээ тайлах оролдлогын тоо дээд хэмжээнээс хэтэрсэн"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM карт байхгүй"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Таблет SIM картгүй."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Андройдыг дэвшүүлж байна…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Андройд эхэлж байна..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Хадгалалтыг сайжруулж байна."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Андройдыг дэвшүүлж байна"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Андройдын шинэчлэлтийг дуусгаж байна…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Шинэчилж дуустал зарим апп хэвийн бус ажиллаж болзошгүй"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>-г сайжруулж байна…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>-н <xliff:g id="NUMBER_0">%1$d</xliff:g> апп-г тохируулж байна."</string>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index 90bbc6b..36d6f6a 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"अचूक!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"पुन्हा प्रयत्न करा"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"पुन्हा प्रयत्न करा"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सर्व वैशिष्‍ट्ये आणि डेटासाठी अनलॉक करा"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"कमाल चेहरा अनलॉक प्रयत्न ओलांडले"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"सिम कार्ड नाही"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"टॅब्लेटमध्ये सिम कार्ड नाही."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android श्रेणीसुधारित होत आहे..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android प्रारंभ करत आहे…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"संचयन ऑप्टिमाइझ करत आहे."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android श्रेणीसुधारित होत आहे"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android अद्यतन समाप्त करीत आहे..."</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"श्रेणीसुधारणा पूर्ण होईपर्यंत काही अॅप्स योग्यरित्या कार्य करणार नाहीत"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> श्रेणीसुधारित करीत आहे…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> पैकी <xliff:g id="NUMBER_0">%1$d</xliff:g> अॅप ऑप्टिमाइझ करत आहे."</string>
@@ -1181,7 +1182,7 @@
     <string name="ext_media_status_removed" msgid="6576172423185918739">"काढले"</string>
     <string name="ext_media_status_unmounted" msgid="2551560878416417752">"बाहेर काढले"</string>
     <string name="ext_media_status_checking" msgid="6193921557423194949">"तपासत आहे..."</string>
-    <string name="ext_media_status_mounted" msgid="7253821726503179202">"सज्ज"</string>
+    <string name="ext_media_status_mounted" msgid="7253821726503179202">"तयार"</string>
     <string name="ext_media_status_mounted_ro" msgid="8020978752406021015">"केवळ-वाचनीय"</string>
     <string name="ext_media_status_bad_removal" msgid="8395398567890329422">"असुरक्षितपणे काढले"</string>
     <string name="ext_media_status_unmountable" msgid="805594039236667894">"दूषित झाले"</string>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index 98f00cc..7db5c74 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Betul!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Cuba lagi"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Cuba lagi"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Buka kunci semua ciri dan data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Telah melepasi had cubaan Buka Kunci Wajah"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Tiada kad SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tiada kad SIM dalam tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android sedang menaik taraf..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android sedang dimulakan…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Mengoptimumkan storan."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android sedang ditingkatkan"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Menyelesaikan kemas kini Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sesetengah apl mungkin tidak berfungsi dengan betul sehingga peningkatan selesai"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> sedang ditingkatkan…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Mengoptimumkan apl <xliff:g id="NUMBER_0">%1$d</xliff:g> daripada <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index e959065..077b889 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"မှန်ပါသည်"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ထပ် စမ်းပါ"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ထပ် စမ်းပါ"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ဝန်ဆောင်မှုနှင့် ဒေတာအားလုံးအတွက် လော့ခ်ဖွင့်ပါ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"မျက်မှာမှတ် သော့ဖွင့်ခြင်း ခွင့်ပြုသော အကြိမ်ရေထက် ကျော်လွန်သွားပါပြီ"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ဆင်းကဒ် မရှိပါ"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"တက်ပလက်ထဲတွင်း ဆင်းကဒ် မရှိပါ"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"အန်ဒရွိုက်ကို မွမ်းမံနေ…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android စတင်နေ…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"သိုလှောင်မှုအား ပြုပြင်ခြင်း။"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ကိုအဆင့်မြှင့်တင်နေပါသည်"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android အပ်ဒိတ်ကို အပြီးသတ်နေသည်…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"အဆင့်မြှင့်တင်ခြင်း မပြီးဆုံးသေးသ၍ အချို့အက်ပ်များကို ကောင်းမွန်စွာအသုံးပြုနိုင်ဦးမည် မဟုတ်ပါ"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ကို အဆင့်မြှင့်တင်နေပါသည်…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> ထဲက အက်ပ်<xliff:g id="NUMBER_1">%2$d</xliff:g>ကို ဆီလျော်အောင် လုပ်နေ"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index f45d26d..c9b275c 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Riktig!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv på nytt"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Prøv på nytt"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås opp for å få alle funksjoner og data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Du har overskredet grensen for opplåsingsforsøk med Ansiktslås"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-kortet mangler"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nettbrettet mangler SIM-kort."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android oppgraderes …"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android starter …"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimaliser lagring."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android oppgraderes"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Fullfører Android-oppdatering …"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Noen apper fungerer kanskje ikke skikkelig før oppgraderingen er fullført"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> oppgraderes …"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimaliserer app <xliff:g id="NUMBER_0">%1$d</xliff:g> av <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 88e9c5d..a0dcfeb 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फेरि प्रयास गर्नुहोस्"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"फेरि प्रयास गर्नुहोस्"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सबै सुविधाहरू र डेटाका लागि अनलक गर्नुहोस्"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"अत्याधिक मोहडा खोल्ने प्रयासहरू बढी भए।"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM कार्ड छैन"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ट्याब्लेटमा SIM कार्ड छैन।"</string>
@@ -1028,7 +1029,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"एन्ड्रोइड अपग्रेड हुँदैछ…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android शुरू हुँदैछ..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"भण्डारण अनुकूलन गर्दै।"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android को स्तरवृद्धि हुँदैछ"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android को अद्यावधिकलाई सम्पन्न गर्दै…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"स्तरवृद्धि सम्पन्न नभएसम्म केही अनुप्रयोगहरू राम्ररी काम नगर्न सक्छन्"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> को स्तरवृद्धि हुँदैछ…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"अनुप्रयोग अनुकुल हुँदै <xliff:g id="NUMBER_0">%1$d</xliff:g> को <xliff:g id="NUMBER_1">%2$d</xliff:g>।"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index b4d9f6e..d7f10d3 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Juist!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Opnieuw proberen"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Nogmaals proberen"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ontgrendelen voor alle functies en gegevens"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximaal aantal pogingen voor Ontgrendelen via gezichtsherkenning overschreden"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Geen simkaart"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Geen SIM-kaart in tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android wordt bijgewerkt..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android wordt gestart…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Opslagruimte wordt geoptimaliseerd."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android wordt geüpgraded"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android-update voltooien…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sommige apps werken mogelijk pas correct nadat de upgrade is voltooid"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> upgraden…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"App <xliff:g id="NUMBER_0">%1$d</xliff:g> van <xliff:g id="NUMBER_1">%2$d</xliff:g> optimaliseren."</string>
@@ -1214,7 +1215,7 @@
     <string name="deny" msgid="2081879885755434506">"Weigeren"</string>
     <string name="permission_request_notification_title" msgid="6486759795926237907">"Toestemming gevraagd"</string>
     <string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">"Toestemming gevraagd\nvoor account <xliff:g id="ACCOUNT">%s</xliff:g>."</string>
-    <string name="forward_intent_to_owner" msgid="1207197447013960896">"U gebruikt deze app buiten je werkprofiel"</string>
+    <string name="forward_intent_to_owner" msgid="1207197447013960896">"Je gebruikt deze app buiten je werkprofiel"</string>
     <string name="forward_intent_to_work" msgid="621480743856004612">"U gebruikt deze app in je werkprofiel"</string>
     <string name="input_method_binding_label" msgid="1283557179944992649">"Invoermethode"</string>
     <string name="sync_binding_label" msgid="3687969138375092423">"Synchroniseren"</string>
diff --git a/core/res/res/values-notround-watch/config_material.xml b/core/res/res/values-notround-watch/config_material.xml
new file mode 100644
index 0000000..a99674f
--- /dev/null
+++ b/core/res/res/values-notround-watch/config_material.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds, only for Material theme.  Do not translate.
+
+     NOTE: The naming convention is "config_camelCaseValue".  -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Gravity that should be used for dialog text styles. Equivalent to: Gravity.START | Gravity.TOP -->
+    <integer name="config_dialogTextGravity">0x00800033</integer>
+</resources>
diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml
index 578767c..e717e69 100644
--- a/core/res/res/values-pa-rIN/strings.xml
+++ b/core/res/res/values-pa-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ਸਹੀ!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਡੈਟੇ ਲਈ ਅਨਲੌਕ ਕਰੋ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ਅਧਿਕਤਮ ਚਿਹਰਾ ਅਨਲੌਕ ਕੋਸ਼ਿਸ਼ਾਂ ਵਧੀਆਂ"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ਟੈਬਲੇਟ ਵਿੱਚ ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ।"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android ਅਪਗ੍ਰੇਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ਸਟੋਰੇਜ ਅਨੁਕੂਲ ਕਰ ਰਿਹਾ ਹੈ।"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ਅੱਪਗ੍ਰੇਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android ਅੱਪਡੇਟ ਮੁਕੰਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਐਪਾਂ ਅੱਪਗ੍ਰੇਡ ਦੇ ਪੂਰੀ ਹੋਣ ਤੱਕ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਾ ਕਰਨ"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ਅੱਪਗ੍ਰੇਡ ਹੋ ਰਹੀ ਹੈ…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> <xliff:g id="NUMBER_1">%2$d</xliff:g> ਦਾ ਐਪ ਅਨੁਕੂਲ ਕਰ ਰਿਹਾ ਹੈ।"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 8d0f707..d9e63a6 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Poprawnie!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Spróbuj ponownie."</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Spróbuj ponownie."</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Odblokowanie wszystkich funkcji i danych"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Przekroczono maksymalną liczbę prób rozpoznania twarzy."</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Brak karty SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Brak karty SIM w tablecie."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android jest uaktualniany..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android się uruchamia…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optymalizacja pamięci."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android jest uaktualniany"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Kończę aktualizowanie Androida…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Niektóre aplikacje mogą nie działać prawidłowo, dopóki nie zakończy się aktualizacja."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Uaktualniam aplikację <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optymalizowanie aplikacji <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index dcacac6..eaaad25c 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tente novamente"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tente novamente"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloqueio para todos os recursos e dados"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"O número máximo de tentativas de Desbloqueio por reconhecimento facial foi excedido"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sem cartão SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Não há um cartão SIM no tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"O Android está sendo atualizado..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"O Android está iniciando..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Otimizando o armazenamento."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está sendo atualizado"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Concluindo atualização do Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alguns apps podem não funcionar corretamente até que a atualização seja concluída"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> está fazendo upgrade…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Otimizando app <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 3acdc91..5a356d5 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tentar novamente"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tentar novamente"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloqueio de todas as funcionalidades e dados"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Excedido o n.º máximo de tentativas de Desbloqueio Através do Rosto"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nenhum cartão SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nenhum cartão SIM no tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"O Android está a ser atualizado..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"O Android está a iniciar…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"A otimizar o armazenamento."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está a ser atualizado"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"A terminar a atualização do Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Algumas aplicações podem não funcionar corretamente enquanto a atualização não for concluída"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"O <xliff:g id="APPLICATION">%1$s</xliff:g> está a ser atualizado…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"A otimizar a aplicação <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1309,7 +1310,7 @@
     <string name="action_menu_overflow_description" msgid="2295659037509008453">"Mais opções"</string>
     <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
     <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
-    <string name="storage_internal" msgid="3570990907910199483">"Armazenamento interno partilhado"</string>
+    <string name="storage_internal" msgid="3570990907910199483">"Armazen. interno partilhado"</string>
     <string name="storage_sd_card" msgid="3282948861378286745">"Cartão SD"</string>
     <string name="storage_sd_card_label" msgid="6347111320774379257">"Cartão SD <xliff:g id="MANUFACTURER">%s</xliff:g>"</string>
     <string name="storage_usb_drive" msgid="6261899683292244209">"Unidade USB"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index dcacac6..eaaad25c 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tente novamente"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tente novamente"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloqueio para todos os recursos e dados"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"O número máximo de tentativas de Desbloqueio por reconhecimento facial foi excedido"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sem cartão SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Não há um cartão SIM no tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"O Android está sendo atualizado..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"O Android está iniciando..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Otimizando o armazenamento."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está sendo atualizado"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Concluindo atualização do Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alguns apps podem não funcionar corretamente até que a atualização seja concluída"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> está fazendo upgrade…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Otimizando app <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index fa5a188..6198f12 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -27,11 +27,11 @@
     <string name="terabyteShort" msgid="231613018159186962">"TO"</string>
     <string name="petabyteShort" msgid="5637816680144990219">"PO"</string>
     <string name="fileSizeSuffix" msgid="8897567456150907538">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
-    <string name="durationDays" msgid="6652371460511178259">"<xliff:g id="DAYS">%1$d</xliff:g> (de) zile"</string>
+    <string name="durationDays" msgid="6652371460511178259">"<xliff:g id="DAYS">%1$d</xliff:g>   zile"</string>
     <string name="durationDayHours" msgid="2713107458736744435">"<xliff:g id="DAYS">%1$d</xliff:g> zile <xliff:g id="HOURS">%2$d</xliff:g> h"</string>
     <string name="durationDayHour" msgid="7293789639090958917">"<xliff:g id="DAYS">%1$d</xliff:g> zi <xliff:g id="HOURS">%2$d</xliff:g> h"</string>
     <string name="durationHours" msgid="4266858287167358988">"<xliff:g id="HOURS">%1$d</xliff:g> h"</string>
-    <string name="durationHourMinutes" msgid="9029176248692041549">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> (de) min"</string>
+    <string name="durationHourMinutes" msgid="9029176248692041549">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g>   min"</string>
     <string name="durationHourMinute" msgid="2741677355177402539">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="durationMinutes" msgid="3134226679883579347">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
     <string name="durationMinute" msgid="7155301744174623818">"<xliff:g id="MINUTES">%1$d</xliff:g> min."</string>
@@ -140,7 +140,7 @@
     <string name="wfc_mode_wifi_only_summary" msgid="2379919155237869320">"Numai Wi-Fi"</string>
     <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: neredirecționată"</string>
     <string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
-    <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> după <xliff:g id="TIME_DELAY">{2}</xliff:g> (de) secunde"</string>
+    <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> după <xliff:g id="TIME_DELAY">{2}</xliff:g>   secunde"</string>
     <string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: neredirecționat"</string>
     <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: neredirecționat"</string>
     <string name="fcComplete" msgid="3118848230966886575">"Cod de funcție complet."</string>
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corect!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Încercați din nou"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Încercați din nou"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Deblocați pentru toate funcțiile și datele"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"S-a depășit numărul maxim de încercări pentru Deblocare facială"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Fără SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nu există card SIM în computerul tablet PC."</string>
@@ -703,19 +704,19 @@
     <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Consultați Ghidul de utilizare sau contactați Serviciul de relații cu clienții."</string>
     <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"Cardul SIM este blocat."</string>
     <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"Se deblochează cardul SIM..."</string>
-    <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați televizorul cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
+    <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați televizorul cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, aceasta va fi resetată la setările prestabilite din fabrică, iar toate datele de utilizator vor fi pierdute."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="950408382418270260">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a televizorului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, televizorul va reveni la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acesta va fi resetat la setările prestabilite din fabrică, iar toate datele de utilizator vor fi pierdute."</string>
     <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Tableta va fi acum resetată la setările prestabilite din fabrică."</string>
     <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="3195755534096192191">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a televizorului. Televizorul va reveni acum la setările prestabilite din fabrică."</string>
     <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Acesta va fi acum resetat la setările prestabilite din fabrică."</string>
-    <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Încercați din nou peste <xliff:g id="NUMBER">%d</xliff:g> (de) secunde."</string>
+    <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Încercați din nou peste <xliff:g id="NUMBER">%d</xliff:g>   secunde."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Ați uitat modelul?"</string>
     <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"Deblocare cont"</string>
     <string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"Prea multe încercări de desenare a modelului"</string>
@@ -839,7 +840,7 @@
     <string name="preposition_for_time" msgid="5506831244263083793">"la <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="preposition_for_year" msgid="5040395640711867177">"în <xliff:g id="YEAR">%s</xliff:g>"</string>
     <string name="day" msgid="8144195776058119424">"zi"</string>
-    <string name="days" msgid="4774547661021344602">" (de) zile"</string>
+    <string name="days" msgid="4774547661021344602">"   zile"</string>
     <string name="hour" msgid="2126771916426189481">"oră"</string>
     <string name="hours" msgid="894424005266852993">"ore"</string>
     <string name="minute" msgid="9148878657703769868">"min"</string>
@@ -1045,7 +1046,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android trece la o versiune superioară..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android pornește..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Se optimizează stocarea."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android face upgrade"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Se finalizează actualizarea Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Este posibil ca unele aplicații să nu funcționeze corespunzător până când nu se finalizează upgrade-ul"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Se face upgrade pentru <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Se optimizează aplicația <xliff:g id="NUMBER_0">%1$d</xliff:g> din <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1290,7 +1291,7 @@
     <string name="gpsVerifYes" msgid="2346566072867213563">"Da"</string>
     <string name="gpsVerifNo" msgid="1146564937346454865">"Nu"</string>
     <string name="sync_too_many_deletes" msgid="5296321850662746890">"Limita pentru ștergere a fost depășită"</string>
-    <string name="sync_too_many_deletes_desc" msgid="496551671008694245">"Există <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g> (de) elemente șterse pentru <xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>, contul <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g>. Ce doriți să faceți?"</string>
+    <string name="sync_too_many_deletes_desc" msgid="496551671008694245">"Există <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g>   elemente șterse pentru <xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>, contul <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g>. Ce doriți să faceți?"</string>
     <string name="sync_really_delete" msgid="2572600103122596243">"Ștergeți elementele"</string>
     <string name="sync_undo_deletes" msgid="2941317360600338602">"Anulați aceste ștergeri"</string>
     <string name="sync_do_nothing" msgid="3743764740430821845">"Nu trebuie să luați nicio măsură deocamdată"</string>
@@ -1408,7 +1409,7 @@
     <string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greșit"</string>
     <string name="kg_wrong_password" msgid="2333281762128113157">"Parolă greșită"</string>
     <string name="kg_wrong_pin" msgid="1131306510833563801">"Cod PIN greșit"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Încercați din nou peste <xliff:g id="NUMBER">%1$d</xliff:g> (de) secunde."</string>
+    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Încercați din nou peste <xliff:g id="NUMBER">%1$d</xliff:g>   secunde."</string>
     <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenați modelul"</string>
     <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduceți codul PIN al cardului SIM"</string>
     <string name="kg_pin_instructions" msgid="2377242233495111557">"Introduceți codul PIN"</string>
@@ -1430,18 +1431,18 @@
     <string name="kg_login_invalid_input" msgid="5754664119319872197">"Nume de utilizator sau parolă nevalide."</string>
     <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Ați uitat numele de utilizator sau parola?\nAccesați "<b>"google.com/accounts/recovery"</b>"."</string>
     <string name="kg_login_checking_password" msgid="1052685197710252395">"Se verifică contul…"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
+    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, aceasta va fi resetată la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="5621231220154419413">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a televizorului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, televizorul va reveni la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acesta va fi resetat la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."</string>
     <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Tableta va fi acum resetată la setările prestabilite din fabrică."</string>
     <string name="kg_failed_attempts_now_wiping" product="tv" msgid="4987878286750741463">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a televizorului. Televizorul va reveni acum la setările prestabilite din fabrică."</string>
     <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Telefonul va fi acum resetat la setările prestabilite din fabrică."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4224651132862313471">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați televizorul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4224651132862313471">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați televizorul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
     <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string>
     <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"Eliminați"</string>
     <string name="safe_media_volume_warning" product="default" msgid="2276318909314492312">"Ridicați volumul mai sus de nivelul recomandat?\n\nAscultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."</string>
diff --git a/core/res/res/values-round-watch/config_material.xml b/core/res/res/values-round-watch/config_material.xml
index bf445ef..871e910 100644
--- a/core/res/res/values-round-watch/config_material.xml
+++ b/core/res/res/values-round-watch/config_material.xml
@@ -19,4 +19,7 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Don't clip on round screens so the list can scroll past the rounded edges. -->
     <bool name="config_preferenceFragmentClipToPadding">false</bool>
+
+    <!-- Gravity that should be used for dialog text styles. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.TOP -->
+    <integer name="config_dialogTextGravity">0x00000031</integer>
 </resources>
diff --git a/core/res/res/values-round-watch/styles_material.xml b/core/res/res/values-round-watch/styles_material.xml
deleted file mode 100644
index a2f3c02..0000000
--- a/core/res/res/values-round-watch/styles_material.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2016 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="TextAppearance.Material.AlertDialogMessage" parent="TextAppearance.Material.Body1">
-        <item name="textAlignment">center</item>
-    </style>
-</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 67cb519..0ef96af 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -268,7 +268,7 @@
     <string name="permgroupdesc_sensors" msgid="7147968539346634043">"доступ к данным датчиков о состоянии организма"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Получать содержимое окна"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Анализировать содержимое активного окна."</string>
-    <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включать аудиоподсказки"</string>
+    <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включать Изучение касанием"</string>
     <string name="capability_desc_canRequestTouchExploration" msgid="7543249041581408313">"Озвучивать нажимаемые элементы и разрешать управление устройством с помощью жестов."</string>
     <string name="capability_title_canRequestEnhancedWebAccessibility" msgid="1739881766522594073">"Включать спец. возможности для Интернета"</string>
     <string name="capability_desc_canRequestEnhancedWebAccessibility" msgid="7881063961507511765">"Могут быть установлены дополнительные скрипты."</string>
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторите попытку"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторите попытку"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Разблок. для доступа ко всем функциям и данным"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Все попытки войти с помощью Фейсконтроля использованы"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нет SIM-карты"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"SIM-карта не установлена."</string>
@@ -826,9 +827,9 @@
     <string name="searchview_description_clear" msgid="1330281990951833033">"Удалить запрос"</string>
     <string name="searchview_description_submit" msgid="2688450133297983542">"Отправить запрос"</string>
     <string name="searchview_description_voice" msgid="2453203695674994440">"Голосовой поиск"</string>
-    <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Включить аудиоподсказки?"</string>
-    <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Аудиоподсказки\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять планшетным ПК с помощью жестов."</string>
-    <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Аудиоподсказки\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять телефоном с помощью жестов."</string>
+    <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Включить Изучение касанием?"</string>
+    <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить Изучение касанием. Вы сможете прослушивать или просматривать описание элементов, которых касаетесь, и управлять планшетом с помощью жестов."</string>
+    <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить Изучение касанием. Вы сможете прослушивать или просматривать описание элементов, которых касаетесь, и управлять телефоном с помощью жестов."</string>
     <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 месяц назад"</string>
     <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Более месяца назад"</string>
     <plurals name="last_num_days" formatted="false" msgid="5104533550723932025">
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Обновление Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Запуск Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимизация хранилища…"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Обновление Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Завершается обновление Android"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Во время обновления возможны неполадки в работе приложений."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Обновление приложения \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизация приложения <xliff:g id="NUMBER_0">%1$d</xliff:g> из <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index e68b2a7..4f90b57 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"නිවැරදියි!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"නැවත උත්සාහ කරන්න"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"නැවත උත්සාහ කරන්න"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"සියලු විශේෂාංග සහ දත්ත අනවහිර කරන්න"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"මුහුණ භාවිතයෙන් අඟුළු හැරීමේ උපරිම ප්‍රයන්තයන් ගණන ඉක්මවා ඇත"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM පත නැත"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ටැබ්ලටයේ SIM පත නොමැත."</string>
@@ -1024,7 +1025,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android උත්ශ්‍රේණි වෙමින් පවතී..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ආරම්භ කරමින්…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ආචයනය ප්‍රශස්තිකරණය කිරීම."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android උත්ශ්‍රේණි කරමින්"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android යාවත්කාලීනය අවසන් කරමින්…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"උත්ශ්‍රේණි කිරීම අවසන් වන තෙක් සමහර යෙදුම් නිසි ලෙස ක්‍රියා නොකළ හැකිය"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> උත්ශ්‍රේණි කරමින්…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> කින් <xliff:g id="NUMBER_0">%1$d</xliff:g> වැනි යෙදුම ප්‍රශස්ත කරමින්."</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 09401e3..0a48693 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -249,23 +249,23 @@
     <string name="user_owner_label" msgid="1119010402169916617">"Prepnúť na osobný"</string>
     <string name="managed_profile_label" msgid="5289992269827577857">"Prepnúť na pracovný"</string>
     <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakty"</string>
-    <string name="permgroupdesc_contacts" msgid="6951499528303668046">"prístup k vašim kontaktom"</string>
+    <string name="permgroupdesc_contacts" msgid="6951499528303668046">"prístup ku kontaktom"</string>
     <string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string>
     <string name="permgroupdesc_location" msgid="1346617465127855033">"prístup k polohe tohto zariadenia"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendár"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"prístup ku kalendáru"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
-    <string name="permgroupdesc_sms" msgid="4656988620100940350">"posielať a zobrazovať SMS"</string>
+    <string name="permgroupdesc_sms" msgid="4656988620100940350">"posielanie a zobrazovanie SMS"</string>
     <string name="permgrouplab_storage" msgid="1971118770546336966">"Úložisko"</string>
-    <string name="permgroupdesc_storage" msgid="637758554581589203">"prístup k fotkám, médiám a súborom na zariadení"</string>
+    <string name="permgroupdesc_storage" msgid="637758554581589203">"prístup k fotkám, médiám a súborom v zariadení"</string>
     <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofón"</string>
-    <string name="permgroupdesc_microphone" msgid="4988812113943554584">"zaznamenávanie zvuku"</string>
+    <string name="permgroupdesc_microphone" msgid="4988812113943554584">"nahrávanie zvuku"</string>
     <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string>
     <string name="permgroupdesc_camera" msgid="3250611594678347720">"fotenie a natáčanie videí"</string>
     <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefón"</string>
-    <string name="permgroupdesc_phone" msgid="6234224354060641055">"telefonovať a spravovať hovory"</string>
+    <string name="permgroupdesc_phone" msgid="6234224354060641055">"telefonovanie a správu hovorov"</string>
     <string name="permgrouplab_sensors" msgid="416037179223226722">"Telesné senzory"</string>
-    <string name="permgroupdesc_sensors" msgid="7147968539346634043">"prístup k údajom senzorov o životných funkciách"</string>
+    <string name="permgroupdesc_sensors" msgid="7147968539346634043">"prístup k dátam senzorov vašich životných funkcií"</string>
     <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načítať obsah okna"</string>
     <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Môžete preskúmať obsah okna, s ktorým pracujete."</string>
     <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnúť funkciu Preskúmanie dotykom"</string>
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správne!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Skúsiť znova"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Skúsiť znova"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Všetky funkcie a dáta získate po odomknutí"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Prekročili ste maximálny povolený počet pokusov o odomknutie tvárou"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nie je vložená SIM karta"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tablete nie je žiadna SIM karta."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Prebieha inovácia systému Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Systém Android sa spúšťa…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimalizuje sa úložisko"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Prebieha inovácia systému Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dokončuje sa aktualizácia Androidu…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Niektoré aplikácie môžu správne fungovať až po dokončení inovácie"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikácia <xliff:g id="APPLICATION">%1$s</xliff:g> sa inovuje…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Prebieha optimalizácia aplikácie <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index e64ecbd..7b8a03a 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pravilno."</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Poskusi znova"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Poskusite znova"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Odklenite za dostop do vseh funkcij in podatkov"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Presegli ste dovoljeno število poskusov odklepanja z obrazom"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ni kartice SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tabličnem računalniku ni kartice SIM."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Poteka nadgradnja Androida ..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android se zaganja …"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje shrambe."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Poteka nadgradnja Androida."</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Dokončanje posodobitve Androida …"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Nekatere aplikacije morda ne bodo delovale pravilno, dokler ne bo dokončana nadgradnja."</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se nadgrajuje …"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml
index f7433a4..05f0e59 100644
--- a/core/res/res/values-sq-rAL/strings.xml
+++ b/core/res/res/values-sq-rAL/strings.xml
@@ -245,7 +245,7 @@
     <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktet"</string>
     <string name="permgroupdesc_contacts" msgid="6951499528303668046">"qasu te kontaktet e tua"</string>
     <string name="permgrouplab_location" msgid="7275582855722310164">"Vendndodhja"</string>
-    <string name="permgroupdesc_location" msgid="1346617465127855033">"qasjen te vendndodhja e kësaj pajisjeje"</string>
+    <string name="permgroupdesc_location" msgid="1346617465127855033">"qaset te vendndodhja e kësaj pajisjeje"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendari"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"qasje te kalendari yt"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Saktë!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Provo sërish"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Provo sërish"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Shkyçe për të gjitha funksionet dhe të dhënat"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Tentativat maksimale të \"Shkyçjes me fytyrë\" u tejkaluan"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nuk ka kartë SIM"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nuk ka kartë SIM në tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"\"Androidi\" po përditësohet…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"\"Androidi\" po fillon…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Po përshtat ruajtjen."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android po përmirësohet"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Përditësimi i Android po përfundon…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Disa aplikacione mund të mos funksionojnë si duhet deri sa të përfundojë përmirësimi"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> po përmirësohet…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Po përshtat aplikacionin <xliff:g id="NUMBER_0">%1$d</xliff:g> nga gjithsej <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index b688692..517d777 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -681,6 +681,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Тачно!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Покушајте поново"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Покушајте поново"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Откључај за све функције и податке"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Премашен је највећи дозвољени број покушаја Откључавања лицем"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нема SIM картице"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У таблету нема SIM картице."</string>
@@ -1045,7 +1046,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android се надограђује…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android се покреће…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Меморија се оптимизује."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се надограђује…"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Довршавамо ажурирање Android-а…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Неке апликације можда неће исправно функционисати док се надоградња не доврши"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надограђује…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизовање апликације <xliff:g id="NUMBER_0">%1$d</xliff:g> од <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 0fd61b7..cf1b19c 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Försök igen"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Försök igen"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås upp för alla funktioner och all data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Du har försökt låsa upp med Ansiktslås för många gånger"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Inget SIM-kort"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Inget SIM-kort i surfplattan."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android uppgraderas ..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android startar …"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Lagringsutrymmet optimeras."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android uppgraderas"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android-uppdateringen slutförs …"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"En del appar kanske inte fungerar som de ska innan uppgraderingen har slutförts"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> uppgraderas …"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Optimerar app <xliff:g id="NUMBER_0">%1$d</xliff:g> av <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 2bde55d..3daaf93 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -676,6 +676,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Sahihi!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Jaribu tena"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Jaribu tena"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Fungua kifaa ili upate data na vipengele vyote"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Majaribio ya Juu ya Kufungua Uso yamezidishwa"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Hakuna SIM kadi"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Hakuna SIM kadi katika kompyuta ndogo."</string>
@@ -1020,7 +1021,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Toleo jipya la Android linawekwa..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Inaanzisha Android..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Inaboresha hifadhi."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Tunasasisha Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Inakamilisha kusasisha Android..."</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Huenda baadhi ya programu zisifanye kazi vizuri hadi itakapomaliza kusasisha"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> inapata toleo jipya…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Inaboresha programu <xliff:g id="NUMBER_0">%1$d</xliff:g> kutoka <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 6ace6e1..e851399 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"சரி!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"மீண்டும் முயற்சிக்கவும்"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"மீண்டும் முயற்சிக்கவும்"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"எல்லா அம்சங்கள் &amp; தரவை பெற, சாதனத்தை திறக்கவும்"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"முகம் திறப்பதற்கான அதிகபட்ச முயற்சிகள் கடந்தன"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"சிம் கார்டு இல்லை"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"டேப்லெட்டில் சிம் கார்டு இல்லை."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android மேம்படுத்தப்படுகிறது…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android துவங்குகிறது..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"சேமிப்பகத்தை உகந்ததாக்குகிறது."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android மேம்படுத்தப்படுகிறது"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android புதுப்பிப்பை நிறைவுசெய்கிறது…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"மேம்படுத்துவது முடியும் வரை, சில பயன்பாடுகள் சரியாக வேலைசெய்யாமல் போகக்கூடும்"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>ஐ மேம்படுத்துகிறது…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g> பயன்பாட்டை ஒருங்கிணைக்கிறது."</string>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index d004032..7c48c8c 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"సరైనది!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"మళ్లీ ప్రయత్నించండి"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"మళ్లీ ప్రయత్నించండి"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"అన్ని లక్షణాలు మరియు డేటా కోసం అన్‌లాక్ చేయండి"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ముఖంతో అన్‌లాక్ ప్రయత్నాల గరిష్ట పరిమితి మించిపోయారు"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"సిమ్ కార్డు లేదు"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"టాబ్లెట్‌లో సిమ్ కార్డు లేదు."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android అప్‌గ్రేడ్ అవుతోంది…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ప్రారంభమవుతోంది…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"నిల్వను అనుకూలపరుస్తోంది."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android అప్‌గ్రేడ్ అవుతోంది"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android నవీకరణను ముగిస్తోంది…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"అప్‌గ్రేడ్ పూర్తయ్యే వరకు కొన్ని అనువర్తనాలు సరిగ్గా పని చేయకపోవచ్చు"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>ని అప్‌గ్రేడ్ చేస్తోంది…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>లో <xliff:g id="NUMBER_0">%1$d</xliff:g> అనువర్తనాన్ని అనుకూలీకరిస్తోంది."</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 458fc72..90d9f9b 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ถูกต้อง!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ลองอีกครั้ง"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ลองอีกครั้ง"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ปลดล็อกคุณลักษณะและข้อมูลทั้งหมด"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"มีความพยายามที่จะใช้ Face Unlock เกินขีดจำกัด"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ไม่มีซิมการ์ด"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ไม่มีซิมการ์ดในแท็บเล็ต"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"กำลังอัปเกรด Android ..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android กำลังเริ่มต้น…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"กำลังเพิ่มประสิทธิภาพพื้นที่จัดเก็บข้อมูล"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android กำลังอัปเกรด"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"กำลังทำการอัปเดต Android ให้เสร็จสิ้น…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"แอปบางแอปอาจทำงานไม่ถูกต้องจนกว่าจะอัปเกรดเสร็จ"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"กำลังอัปเกรด <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"กำลังเพิ่มประสิทธิภาพแอปพลิเคชัน <xliff:g id="NUMBER_0">%1$d</xliff:g> จาก <xliff:g id="NUMBER_1">%2$d</xliff:g> รายการ"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index fbf1f49..efb319f 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Tama!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Subukang muli"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Subukang muli"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"I-unlock para sa lahat ng feature at data"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nalagpasan na ang maximum na mga pagtatangka sa Face Unlock"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Walang SIM card"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Walang SIM card sa tablet."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Nag-a-upgrade ang Android…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Nagsisimula ang Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ino-optimize ang storage."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Nag-a-upgrade ang Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Tinatapos ang pag-update sa Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Maaaring hindi gumana nang maayos ang ilang app hangga\'t hindi pa natatapos ang pag-upgrade"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Nag-a-upgrade ang <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Ino-optimize ang app <xliff:g id="NUMBER_0">%1$d</xliff:g> ng <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 119cd6d..5a0776a 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Doğru!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tekrar deneyin"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tekrar deneyin"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Tüm özellikler ve veriler için kilidi açın"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Yüz Tanıma Kilidi için maksimum deneme sayısı aşıldı"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM kart yok"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tablette SIM kart yok."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android yeni sürüme geçiriliyor..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android başlatılıyor…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Depolama optimize ediliyor."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android yeni sürüme geçiriliyor"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android güncellemesi tamamlanıyor…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Yeni sürüme geçiş işlemi tamamlanana kadar bazı uygulamalar düzgün çalışmayabilir"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> yeni sürüme geçiriliyor…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g> uygulama optimize ediliyor."</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index f1a7a19..4810e37 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -684,6 +684,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторіть спробу"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторіть спробу"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Розблокуйте, щоб бачити всі функції й дані"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Перевищено максимальну кількість спроб розблокування за допомогою функції \"Фейсконтроль\""</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Відсутня SIM-карта"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У пристр. нема SIM-карти."</string>
@@ -1068,7 +1069,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android оновлюється..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Запуск ОС Android…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимізація пам’яті."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android оновлюється"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Завершується оновлення Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Деякі додатки можуть не працювати належним чином, доки не завершиться оновлення"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"Додаток <xliff:g id="APPLICATION">%1$s</xliff:g> оновлюється…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимізація програми <xliff:g id="NUMBER_0">%1$d</xliff:g> з <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 9bf9a01..f677132 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوبارہ کوشش کریں"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"دوبارہ کوشش کریں"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"تمام خصوصیات اور ڈیٹا کیلئے غیر مقفل کریں"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"چہرہ کے ذریعے غیر مقفل کریں کی زیادہ سے زیادہ کوششوں سے تجاوز کرگیا"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏کوئی SIM کارڈ نہیں ہے"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏ٹیبلیٹ میں کوئی SIM کارڈ نہیں ہے۔"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"‏Android اپ گریڈ ہو رہا ہے…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"‏Android شروع ہو رہا ہے…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"اسٹوریج کو بہترین بنایا جا رہا ہے۔"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android اپ گریڈ ہو رہا ہے"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"‏Android اپ ڈیٹ ختم ہو رہی ہے…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"اپ گریڈ ختم ہونے تک شاید کچھ ایپس ٹھیک طرح سے کام نہ کریں"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> اپ گریڈ ہو رہی ہے…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"ایپ <xliff:g id="NUMBER_0">%1$d</xliff:g> از <xliff:g id="NUMBER_1">%2$d</xliff:g> کو بہتر بنایا جا رہا ہے۔"</string>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index f4684c7..8fc6428 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -245,7 +245,7 @@
     <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktlar"</string>
     <string name="permgroupdesc_contacts" msgid="6951499528303668046">"kontaktlarga kirish"</string>
     <string name="permgrouplab_location" msgid="7275582855722310164">"Joylashuv"</string>
-    <string name="permgroupdesc_location" msgid="1346617465127855033">"shu qurilmaning joylashuvi haqidagi ma’lumotlarga kirish"</string>
+    <string name="permgroupdesc_location" msgid="1346617465127855033">"shu qurilmaning joylashuvi haqidagi axborotga kirish"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"Taqvim"</string>
     <string name="permgroupdesc_calendar" msgid="3889615280211184106">"taqvimingizga kirish"</string>
     <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"To‘g‘ri!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Qaytadan urining"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Qaytadan urining"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Barcha funksiya va ma’lumotlar uchun qulfdan chiqaring"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Yuzni tanitib qulfni ochishga urinish miqdoridan oshib ketdi"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM karta yo‘q"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planshetingizda SIM karta yo‘q."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android yangilanmoqda…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android ishga tushmoqda…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Xotira optimallashtirilmoqda."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android yangilanmoqda"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android yangilanishi tugay deb qoldi…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Yangilanish vaqtida ba’zi ilovalar to‘g‘ri ishlamasligi mumkin"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ilovasi yangilanmoqda…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Ilovalar optimallashtirilmoqda (<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g>)."</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 6d58054..a537b8f 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Chính xác!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Thử lại"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Thử lại"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Mở khóa đối với tất cả các tính năng và dữ liệu"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Đã vượt quá số lần Mở khóa bằng khuôn mặt tối đa"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Không có thẻ SIM nào"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Không có thẻ SIM nào trong máy tính bảng."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android đang nâng cấp..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android đang khởi động..."</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Tối ưu hóa lưu trữ."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android đang nâng cấp"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Hoàn tất cập nhật Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Một số ứng dụng có thể không hoạt động bình thường cho đến khi nâng cấp xong"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> đang nâng cấp…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Đang tối ưu hóa ứng dụng <xliff:g id="NUMBER_0">%1$d</xliff:g> trong tổng số <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-w180dp-notround-watch/dimens_material.xml b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
new file mode 100644
index 0000000..79acf84
--- /dev/null
+++ b/core/res/res/values-w180dp-notround-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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>
+    <dimen name="text_size_display_4_material">80sp</dimen>
+    <dimen name="text_size_display_3_material">50sp</dimen>
+    <dimen name="text_size_display_2_material">40sp</dimen>
+    <dimen name="text_size_display_1_material">30sp</dimen>
+    <dimen name="text_size_headline_material">20sp</dimen>
+    <dimen name="text_size_title_material">18sp</dimen>
+    <dimen name="text_size_subhead_material">18sp</dimen>
+    <dimen name="text_size_title_material_toolbar">18dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">18dp</dimen>
+    <dimen name="text_size_menu_material">18sp</dimen>
+    <dimen name="text_size_menu_header_material">16sp</dimen>
+    <dimen name="text_size_body_2_material">16sp</dimen>
+    <dimen name="text_size_body_1_material">16sp</dimen>
+    <dimen name="text_size_caption_material">14sp</dimen>
+    <dimen name="text_size_button_material">16sp</dimen>
+
+    <dimen name="text_size_large_material">18sp</dimen>
+    <dimen name="text_size_medium_material">16sp</dimen>
+    <dimen name="text_size_small_material">14sp</dimen>
+</resources>
diff --git a/core/res/res/values-w210dp-round-watch/dimens_material.xml b/core/res/res/values-w210dp-round-watch/dimens_material.xml
new file mode 100644
index 0000000..79acf84
--- /dev/null
+++ b/core/res/res/values-w210dp-round-watch/dimens_material.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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>
+    <dimen name="text_size_display_4_material">80sp</dimen>
+    <dimen name="text_size_display_3_material">50sp</dimen>
+    <dimen name="text_size_display_2_material">40sp</dimen>
+    <dimen name="text_size_display_1_material">30sp</dimen>
+    <dimen name="text_size_headline_material">20sp</dimen>
+    <dimen name="text_size_title_material">18sp</dimen>
+    <dimen name="text_size_subhead_material">18sp</dimen>
+    <dimen name="text_size_title_material_toolbar">18dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">18dp</dimen>
+    <dimen name="text_size_menu_material">18sp</dimen>
+    <dimen name="text_size_menu_header_material">16sp</dimen>
+    <dimen name="text_size_body_2_material">16sp</dimen>
+    <dimen name="text_size_body_1_material">16sp</dimen>
+    <dimen name="text_size_caption_material">14sp</dimen>
+    <dimen name="text_size_button_material">16sp</dimen>
+
+    <dimen name="text_size_large_material">18sp</dimen>
+    <dimen name="text_size_medium_material">16sp</dimen>
+    <dimen name="text_size_small_material">14sp</dimen>
+</resources>
diff --git a/core/res/res/values-watch/config_material.xml b/core/res/res/values-watch/config_material.xml
index 81b53e7..104d122 100644
--- a/core/res/res/values-watch/config_material.xml
+++ b/core/res/res/values-watch/config_material.xml
@@ -29,7 +29,4 @@
 
     <!-- Always overscan by default to ensure onApplyWindowInsets will always be called. -->
     <bool name="config_windowOverscanByDefault">true</bool>
-
-    <!-- Due to the smaller screen size, have dialog titles occupy more than 1 line. -->
-    <integer name="config_dialogWindowTitleMaxLines">3</integer>
 </resources>
diff --git a/core/res/res/values-watch/dimens_material.xml b/core/res/res/values-watch/dimens_material.xml
index d579434..b48cde6 100644
--- a/core/res/res/values-watch/dimens_material.xml
+++ b/core/res/res/values-watch/dimens_material.xml
@@ -14,5 +14,29 @@
      limitations under the License.
 -->
 <resources>
+    <dimen name="text_size_display_4_material">71sp</dimen>
+    <dimen name="text_size_display_3_material">44sp</dimen>
+    <dimen name="text_size_display_2_material">36sp</dimen>
+    <dimen name="text_size_display_1_material">27sp</dimen>
+    <dimen name="text_size_headline_material">18sp</dimen>
+    <dimen name="text_size_title_material">16sp</dimen>
+    <dimen name="text_size_subhead_material">16sp</dimen>
+    <dimen name="text_size_title_material_toolbar">16dp</dimen>
+    <dimen name="text_size_subtitle_material_toolbar">16dp</dimen>
+    <dimen name="text_size_menu_material">16sp</dimen>
+    <dimen name="text_size_menu_header_material">14sp</dimen>
+    <dimen name="text_size_body_2_material">14sp</dimen>
+    <dimen name="text_size_body_1_material">14sp</dimen>
+    <dimen name="text_size_caption_material">12sp</dimen>
+    <dimen name="text_size_button_material">14sp</dimen>
+
+    <dimen name="text_size_large_material">16sp</dimen>
+    <dimen name="text_size_medium_material">14sp</dimen>
+    <dimen name="text_size_small_material">12sp</dimen>
+
     <item name="text_line_spacing_multiplier_material" format="float" type="dimen">1.2</item>
+
+    <!-- Date and time picker legacy dimens -->
+    <dimen name="picker_top_margin">1dip</dimen>
+    <dimen name="picker_bottom_margin">1dip</dimen>
 </resources>
diff --git a/core/java/com/android/internal/app/EphemeralResolveInfo.aidl b/core/res/res/values-watch/integers.xml
similarity index 61%
copy from core/java/com/android/internal/app/EphemeralResolveInfo.aidl
copy to core/res/res/values-watch/integers.xml
index 529527b..46ed97d 100644
--- a/core/java/com/android/internal/app/EphemeralResolveInfo.aidl
+++ b/core/res/res/values-watch/integers.xml
@@ -1,5 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
 /*
-** Copyright 2015, The Android Open Source Project
+** Copyright 2012, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -13,7 +15,11 @@
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
+-->
+<resources>
+  <!-- Specifies date picker mode to be 'spinner' -->
+  <integer name="date_picker_mode_material">1</integer>
 
-package com.android.internal.app;
-
-parcelable EphemeralResolveInfo;
+  <!-- Specifies time picker mode to be 'spinner' -->
+  <integer name="time_picker_mode_material">1</integer>
+</resources>
diff --git a/core/res/res/values-watch/styles_material.xml b/core/res/res/values-watch/styles_material.xml
index f5735e6..d09119f 100644
--- a/core/res/res/values-watch/styles_material.xml
+++ b/core/res/res/values-watch/styles_material.xml
@@ -61,12 +61,19 @@
         <item name="divider">@empty</item>
     </style>
 
+    <style name="TextAppearance.Material.ListItem" parent="TextAppearance.Material.Body1" />
+    <style name="TextAppearance.Material.ListItemSecondary" parent="TextAppearance.Material.Caption" />
+
     <style name="Widget.Material.TextView" parent="Widget.TextView">
         <item name="breakStrategy">balanced</item>
     </style>
 
     <style name="Widget.Material.ButtonBar" parent="Widget.Material.BaseButtonBar" />
 
+    <style name="TextAppearance.Material.NumberPicker" parent="TextAppearance.Material.Body1">
+        <item name="textSize">@dimen/text_size_medium_material</item>
+    </style>
+
     <!-- Alert dialog button bar button -->
     <style name="Widget.Material.Button.ButtonBar.AlertDialog" parent="Widget.Material.Button.Borderless.Small">
         <item name="paddingStart">@dimen/list_item_padding_start_material</item>
@@ -82,13 +89,21 @@
         <item name="solidColor">@color/transparent</item>
         <item name="selectionDivider">@drawable/numberpicker_selection_divider</item>
         <item name="selectionDividerHeight">2dp</item>
-        <item name="selectionDividersDistance">48dp</item>
-        <item name="internalMinWidth">64dp</item>
-        <item name="internalMaxHeight">180dp</item>
+        <item name="selectionDividersDistance">24dp</item>
+        <item name="internalMinWidth">32dp</item>
+        <item name="internalMaxHeight">90dp</item>
         <item name="virtualButtonPressedDrawable">?selectableItemBackground</item>
         <item name="descendantFocusability">blocksDescendants</item>
     </style>
 
+    <style name="DialogWindowTitle.Material">
+        <item name="maxLines">3</item>
+        <item name="scrollHorizontally">false</item>
+        <item name="textAppearance">@style/TextAppearance.Material.DialogWindowTitle</item>
+        <item name="gravity">@integer/config_dialogTextGravity</item>
+        <item name="ellipsize">end</item>
+    </style>
+
     <!-- DO NOTE TRANSLATE Spans within this text are applied to style composing regions
     within an EditText widget. The text content is ignored and not used.
     Note: This is @color/material_deep_teal_200, cannot use @color references here. -->
diff --git a/core/res/res/values-watch/themes_material.xml b/core/res/res/values-watch/themes_material.xml
index 4ae4367..84bc25f 100644
--- a/core/res/res/values-watch/themes_material.xml
+++ b/core/res/res/values-watch/themes_material.xml
@@ -59,4 +59,17 @@
         <item name="colorBackgroundCacheHint">@color/background_cache_hint_selector_material_light</item>
         <item name="windowIsFloating">false</item>
     </style>
+
+    <!-- Force all settings themes to use normal Material theme. -->
+    <style name="Theme.Material.Settings" parent="Theme.Material"/>
+    <style name="Theme.Material.Settings.NoActionBar" parent="Theme.Material"/>
+    <style name="Theme.Material.Settings.BaseDialog" parent="Theme.Material.Dialog"/>
+    <style name="Theme.Material.Settings.Dialog" parent="Theme.Material.Settings.BaseDialog"/>
+    <style name="Theme.Material.Settings.Dialog.BaseAlert" parent="Theme.Material.Dialog.BaseAlert"/>
+    <style name="Theme.Material.Settings.Dialog.Alert" parent="Theme.Material.Settings.Dialog.BaseAlert"/>
+    <style name="Theme.Material.Settings.DialogWhenLarge" parent="Theme.Material.DialogWhenLarge"/>
+    <style name="Theme.Material.Settings.DialogWhenLarge.NoActionBar" parent="Theme.Material.DialogWhenLarge.NoActionBar"/>
+    <style name="Theme.Material.Settings.Dialog.Presentation" parent="Theme.Material.Dialog.Presentation"/>
+    <style name="Theme.Material.Settings.SearchBar" parent="Theme.Material.SearchBar"/>
+    <style name="Theme.Material.Settings.CompactMenu" parent="Theme.Material.CompactMenu"/>
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 69c3f7e..8116ec0 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -310,7 +310,7 @@
     <string name="permdesc_enableCarMode" msgid="4853187425751419467">"允许应用启用车载模式。"</string>
     <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"关闭其他应用"</string>
     <string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"允许该应用结束其他应用的后台进程。此权限可导致其他应用停止运行。"</string>
-    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"在其他应用之上显示内容"</string>
+    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"出现在其他应用上"</string>
     <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"允许该应用在其他应用之上或用户界面的特定部分绘图。这可能会干扰您对所有应用界面的使用，或使您在其他应用中看到的内容发生变化。"</string>
     <string name="permlab_persistentActivity" msgid="8841113627955563938">"让应用始终运行"</string>
     <string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"允许该应用在内存中持续保留其自身的某些组件。这会限制其他应用可用的内存，从而减缓平板电脑运行速度。"</string>
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正确！"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"重试"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"重试"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"解锁即可使用所有功能和数据"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超过“人脸解锁”尝试次数上限"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"没有 SIM 卡"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板电脑中没有SIM卡。"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android正在升级..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android 正在启动…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在优化存储空间。"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android 正在升级"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"即将完成 Android 更新…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"在升级完成之前，部分应用可能无法正常运行"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"正在升级<xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"正在优化第<xliff:g id="NUMBER_0">%1$d</xliff:g>个应用（共<xliff:g id="NUMBER_1">%2$d</xliff:g>个）。"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index eb9e2fb..ef12eea 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確！"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"再試一次"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"解鎖即可使用所有功能和資料"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超過臉容解鎖嘗試次數上限"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"找不到 SIM 卡"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板電腦中沒有 SIM 卡。"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"正在升級 Android..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android 正在啟動…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在優化儲存空間。"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"正在升級 Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"正在完成 Android 更新…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"部分應用程式需要完成升級方可正常運作"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"「<xliff:g id="APPLICATION">%1$s</xliff:g>」正在升級…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"正在優化第 <xliff:g id="NUMBER_0">%1$d</xliff:g> 個應用程式 (共 <xliff:g id="NUMBER_1">%2$d</xliff:g> 個)。"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 9bd2002..84e2c2c 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確！"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"再試一次"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"解鎖即可使用所有功能和資料"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超過人臉解鎖嘗試次數上限"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"找不到 SIM 卡"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板電腦中沒有 SIM 卡。"</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"正在升級 Android…"</string>
     <string name="android_start_title" msgid="8418054686415318207">"Android 正在啟動…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在對儲存空間進行最佳化處理。"</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"正在升級 Android"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"即將完成 Android 更新…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"升級完成前，部分應用程式可能無法正常運作"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"正在升級「<xliff:g id="APPLICATION">%1$s</xliff:g>」…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"正在最佳化第 <xliff:g id="NUMBER_0">%1$d</xliff:g> 個應用程式 (共 <xliff:g id="NUMBER_1">%2$d</xliff:g> 個)。"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index cdd071d..0c7af8d 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -678,6 +678,7 @@
     <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Lungile!"</string>
     <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zama futhi"</string>
     <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Zama futhi"</string>
+    <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Vulela zonke izici nedatha"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Ukuzama Kokuvula Ubuso Okuningi kudluliwe"</string>
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Alikho ikhadi le-SIM."</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Alikho ikhadi le-SIM efonini."</string>
@@ -1022,7 +1023,7 @@
     <string name="android_upgrading_title" msgid="1584192285441405746">"I-Android ifaka ezakamuva..."</string>
     <string name="android_start_title" msgid="8418054686415318207">"I-Android iyaqala…"</string>
     <string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ikhulisa isitoreji."</string>
-    <string name="android_upgrading_notification_title" msgid="1619393112444671028">"I-Android iyathuthukiswa"</string>
+    <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Iqedela isibuyekezo se-Android…"</string>
     <string name="android_upgrading_notification_body" msgid="5761201379457064286">"Ezinye izinhlelo zokusebenza kungenzeka zingasebenzi kahle kuze kuqedwe ukuthuthukiswa"</string>
     <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> iyathuthukisa…"</string>
     <string name="android_upgrading_apk" msgid="7904042682111526169">"Ukubeka ezingeni eliphezulu <xliff:g id="NUMBER_0">%1$d</xliff:g> uhlelo lokusebenza <xliff:g id="NUMBER_1">%2$d</xliff:g>"</string>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 2835c6f..231dcda 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -539,9 +539,12 @@
          Software implementation will be used if config_hardware_auto_brightness_available is not set -->
     <bool name="config_automatic_brightness_available">false</bool>
 
-    <!-- Fast brightness animation ramp rate -->
+    <!-- Fast brightness animation ramp rate in brightness units per second-->
     <integer translatable="false" name="config_brightness_ramp_rate_fast">200</integer>
 
+    <!-- Slow brightness animation ramp rate in brightness units per second-->
+    <integer translatable="false" name="config_brightness_ramp_rate_slow">40</integer>
+
     <!-- Don't name config resources like this.  It should look like config_annoyDianne -->
     <bool name="config_annoy_dianne">true</bool>
 
@@ -796,6 +799,12 @@
     -->
     <integer name="config_longPressOnBackBehavior">0</integer>
 
+    <!-- Control the behavior when the user panic presses the back button.
+            0 - Nothing
+            1 - Go to home
+    -->
+    <integer name="config_backPanicBehavior">0</integer>
+
     <!-- Control the behavior when the user short presses the power button.
             0 - Nothing
             1 - Go to sleep (doze)
@@ -2071,9 +2080,11 @@
          "bugreport" = Take bug report, if available
          "silent" = silent mode
          "users" = list of users
+         "restart" = restart device
          -->
     <string-array translatable="false" name="config_globalActionsList">
         <item>power</item>
+        <item>restart</item>
         <item>bugreport</item>
         <item>users</item>
     </string-array>
@@ -2500,6 +2511,10 @@
     <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
     <bool name="config_useRoundIcon">false</bool>
 
+    <!-- Flag indicating whether the assist disclosure can be disabled using
+         ASSIST_DISCLOSURE_ENABLED. -->
+    <bool name="config_allowDisablingAssistDisclosure">false</bool>
+
     <!-- True if the device supports system navigation keys. -->
     <bool name="config_supportSystemNavigationKeys">false</bool>
 
@@ -2513,4 +2528,7 @@
          Note: Also update appropriate overlay files. -->
     <string-array translatable="false" name="config_defaultFirstUserRestrictions">
     </string-array>
+
+    <string name="config_networkOverLimitComponent" translatable="false">com.android.systemui/com.android.systemui.net.NetworkOverLimitActivity</string>
+    <string name="config_dataUsageSummaryComponent" translatable="false">com.android.settings/com.android.settings.Settings$DataUsageSummaryActivity</string>
 </resources>
diff --git a/core/res/res/values/config_material.xml b/core/res/res/values/config_material.xml
index a37be83..397635f 100644
--- a/core/res/res/values/config_material.xml
+++ b/core/res/res/values/config_material.xml
@@ -32,9 +32,6 @@
     <!-- True if windowOverscan should be on by default. -->
     <bool name="config_windowOverscanByDefault">false</bool>
 
-    <!-- Max number of lines for the dialog title. -->
-    <integer name="config_dialogWindowTitleMaxLines">1</integer>
-
     <!-- True if preference fragment should clip to padding. -->
     <bool name="config_preferenceFragmentClipToPadding">true</bool>
 </resources>
diff --git a/core/res/res/values/dimens_material.xml b/core/res/res/values/dimens_material.xml
index f96cef9..ae31165 100644
--- a/core/res/res/values/dimens_material.xml
+++ b/core/res/res/values/dimens_material.xml
@@ -189,4 +189,8 @@
     <dimen name="day_picker_button_margin_top">0dp</dimen>
 
     <dimen name="datepicker_view_animator_height">226dp</dimen>
+
+    <!-- Date and time picker legacy dimens -->
+    <dimen name="picker_top_margin">16dip</dimen>
+    <dimen name="picker_bottom_margin">16dip</dimen>
 </resources>
diff --git a/core/res/res/values/integers.xml b/core/res/res/values/integers.xml
index 71ac2f4..2b69c75b 100644
--- a/core/res/res/values/integers.xml
+++ b/core/res/res/values/integers.xml
@@ -26,5 +26,12 @@
 
     <integer name="date_picker_mode">1</integer>
     <integer name="time_picker_mode">1</integer>
+
+    <!-- Specifies date picker mode to be 'calendar' -->
+    <integer name="date_picker_mode_material">2</integer>
+
+    <!-- Specifies time picker mode to be 'clock' -->
+    <integer name="time_picker_mode_material">2</integer>
+
     <integer name="date_picker_header_max_lines_material">2</integer>
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 473796a..d66a7f7 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -482,6 +482,10 @@
     <!-- label for item that turns off power in phone options dialog -->
     <string name="global_action_power_off">Power off</string>
 
+    <!-- label for item that restarts phone in phone options dialog -->
+    <!-- TODO: promote to separate string-->
+    <string name="global_action_restart" translatable="false">@string/sim_restart_button</string>
+
     <!-- label for item that generates a bug report in the phone options dialog -->
     <string name="global_action_bug_report">Bug report</string>
 
@@ -1756,6 +1760,10 @@
     <string name="lockscreen_pattern_wrong">Try again</string>
     <!-- On the unlock password screen, shown when the user enters the wrong lock password and must try again. -->
     <string name="lockscreen_password_wrong">Try again</string>
+
+    <!-- On the keyguard screen, this string explains that some features or data may not be available until the device is unlocked. [CHAR LIMIT=48] -->
+    <string name="lockscreen_storage_locked">Unlock for all features and data</string>
+
     <!-- Shown when face unlock failed multiple times so we're just using the backup -->
     <string name="faceunlock_multiple_failures">Maximum Face Unlock attempts exceeded</string>
 
@@ -1949,7 +1957,7 @@
     <string name="lockscreen_access_pattern_cleared">Pattern cleared</string>
     <!-- Accessibility description sent when user adds a dot to the pattern. [CHAR LIMIT=NONE]  -->
     <string name="lockscreen_access_pattern_cell_added">Cell added</string>
-    <!-- Accessibility description sent when user adds a dot to the pattern. Announces the 
+    <!-- Accessibility description sent when user adds a dot to the pattern. Announces the
     actual cell when headphones are connected [CHAR LIMIT=NONE]  -->
     <string name="lockscreen_access_pattern_cell_added_verbose">
             Cell <xliff:g id="cell_index" example="3">%1$s</xliff:g> added</string>
@@ -2029,6 +2037,12 @@
     <!-- Button to restart the device after the factory test. -->
     <string name="factorytest_reboot">Reboot</string>
 
+    <!-- Do not translate.  timepicker mode, overridden for watch -->
+    <string name="time_picker_mode" translatable="false">"clock"</string>
+
+    <!-- Do not translate.  datepicker mode, overridden for watch -->
+    <string name="date_picker_mode" translatable="false">"calendar"</string>
+
     <!-- Do not translate.  WebView User Agent string -->
     <string name="web_user_agent" translatable="false">Mozilla/5.0 (Linux; U; <xliff:g id="x">Android %s</xliff:g>)
         AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 <xliff:g id="mobile">%s</xliff:g>Safari/534.30</string>
@@ -2789,8 +2803,8 @@
     <!-- [CHAR LIMIT=NONE] Message shown in upgrading dialog when doing an fstrim. -->
     <string name="android_upgrading_fstrim">Optimizing storage.</string>
 
-    <!-- [CHAR LIMIT=40] Title of notification that is shown when performing a system upgrade. -->
-    <string name="android_upgrading_notification_title">Android is upgrading</string>
+    <!-- [CHAR LIMIT=40] Title of notification that is shown when finishing a system upgrade. -->
+    <string name="android_upgrading_notification_title">Finishing Android update\u2026</string>
     <!-- [CHAR LIMIT=200] Body of notification that is shown when performing a system upgrade. -->
     <string name="android_upgrading_notification_body">Some apps may not work properly until the upgrade finishes</string>
 
@@ -4161,7 +4175,7 @@
 
     <!-- [CHAR_LIMIT=NONE] Data saver: Feature description -->
     <string name="data_saver_description">To help reduce data usage, Data Saver prevents some apps from sending or receiving data in the background. An app you’re currently using can access data, but may do so less frequently. This may mean, for example, that images don’t display until you tap them.</string>
-    <!-- [CHAR_LIMIT=30] Data saver: Title on first-time dialogFeature description -->
+    <!-- [CHAR_LIMIT=35] Data saver: Title on first-time dialog -->
     <string name="data_saver_enable_title">Turn on Data Saver?</string>
     <!-- [CHAR_LIMIT=16] Data saver: Button to turn it on on first-time dialog -->
     <string name="data_saver_enable_button">Turn on</string>
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 4435537..90746e5 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -255,6 +255,8 @@
         <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
+    <style name="TextAppearance.Material.NumberPicker" parent="TextAppearance.Material.Body1"/>
+
     <!-- Deprecated text styles -->
 
     <style name="TextAppearance.Material.Inverse">
@@ -475,6 +477,9 @@
         <item name="textColor">#66000000</item>
     </style>
 
+    <style name="TextAppearance.Material.ListItem" parent="TextAppearance.Material.Subhead" />
+    <style name="TextAppearance.Material.ListItemSecondary" parent="TextAppearance.Material.Body1" />
+
     <style name="Widget.Material.Notification.ProgressBar" parent="Widget.Material.Light.ProgressBar.Horizontal" />
 
     <style name="Widget.Material.Notification.MessagingText" parent="Widget.Material.Light.TextView">
@@ -684,7 +689,7 @@
     </style>
 
     <style name="Widget.Material.TimePicker">
-        <item name="timePickerMode">clock</item>
+        <item name="timePickerMode">@integer/time_picker_mode_material</item>
         <item name="legacyLayout">@layout/time_picker_legacy_material</item>
         <!-- Attributes for new-style TimePicker. -->
         <item name="internalLayout">@layout/time_picker_material</item>
@@ -698,7 +703,7 @@
     </style>
 
     <style name="Widget.Material.DatePicker">
-        <item name="datePickerMode">calendar</item>
+        <item name="datePickerMode">@integer/date_picker_mode_material</item>
         <item name="legacyLayout">@layout/date_picker_legacy_holo</item>
         <item name="calendarViewShown">true</item>
         <!-- Attributes for new-style DatePicker. -->
@@ -1246,7 +1251,7 @@
     <style name="DialogWindowTitleBackground.Material.Light" />
 
     <style name="DialogWindowTitle.Material">
-        <item name="maxLines">@integer/config_dialogWindowTitleMaxLines</item>
+        <item name="maxLines">1</item>
         <item name="scrollHorizontally">true</item>
         <item name="textAppearance">@style/TextAppearance.Material.DialogWindowTitle</item>
     </style>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 516aa18..db118ed 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -375,6 +375,7 @@
   <java-symbol type="integer" name="config_immersive_mode_confirmation_panic" />
   <java-symbol type="integer" name="config_longPressOnPowerBehavior" />
   <java-symbol type="integer" name="config_longPressOnBackBehavior" />
+  <java-symbol type="integer" name="config_backPanicBehavior" />
   <java-symbol type="integer" name="config_lowMemoryKillerMinFreeKbytesAdjust" />
   <java-symbol type="integer" name="config_lowMemoryKillerMinFreeKbytesAbsolute" />
   <java-symbol type="integer" name="config_max_pan_devices" />
@@ -1589,6 +1590,7 @@
   <java-symbol type="string" name="bugreport_title" />
   <java-symbol type="string" name="faceunlock_multiple_failures" />
   <java-symbol type="string" name="global_action_power_off" />
+  <java-symbol type="string" name="global_action_restart" />
   <java-symbol type="string" name="global_actions_airplane_mode_off_status" />
   <java-symbol type="string" name="global_actions_airplane_mode_on_status" />
   <java-symbol type="string" name="global_actions_toggle_airplane_mode" />
@@ -1756,6 +1758,7 @@
   <java-symbol type="integer" name="config_undockedHdmiRotation" />
   <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" />
   <java-symbol type="integer" name="config_brightness_ramp_rate_fast" />
+  <java-symbol type="integer" name="config_brightness_ramp_rate_slow" />
   <java-symbol type="layout" name="am_compat_mode_dialog" />
   <java-symbol type="layout" name="launch_warning" />
   <java-symbol type="layout" name="safe_mode" />
@@ -2646,6 +2649,12 @@
   <!-- Colon separated list of package names that should be granted DND access -->
   <java-symbol type="string" name="config_defaultDndAccessPackages" />
 
+  <!-- For NetworkPolicyManagerService -->
+  <java-symbol type="string" name="config_networkOverLimitComponent" />
+  <java-symbol type="string" name="config_dataUsageSummaryComponent" />
+
+  <java-symbol type="string" name="lockscreen_storage_locked" />
+
   <!-- Used for MimeIconUtils. -->
   <java-symbol type="drawable" name="ic_doc_apk" />
   <java-symbol type="drawable" name="ic_doc_audio" />
@@ -2672,10 +2681,14 @@
   <java-symbol type="drawable" name="ic_doc_generic" />
 
   <java-symbol type="bool" name="config_nightDisplayAvailable" />
+  <java-symbol type="bool" name="config_allowDisablingAssistDisclosure" />
   <java-symbol type="integer" name="config_defaultNightDisplayAutoMode" />
   <java-symbol type="integer" name="config_defaultNightDisplayCustomStartTime" />
   <java-symbol type="integer" name="config_defaultNightDisplayCustomEndTime" />
 
   <!-- Default first user restrictions -->
   <java-symbol type="array" name="config_defaultFirstUserRestrictions" />
+
+  <java-symbol type="drawable" name="ic_restart" />
+
 </resources>
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index 7e2867d..0eb4c8d 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -114,9 +114,9 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItem">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.Body1</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.ListItemSecondary</item>
         <item name="listPreferredItemPaddingLeft">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingRight">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingStart">@dimen/list_item_padding_start_material</item>
@@ -475,9 +475,9 @@
         <item name="listPreferredItemHeightSmall">48dip</item>
         <item name="listPreferredItemHeightLarge">80dip</item>
         <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="textAppearanceListItem">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.Subhead</item>
-        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.Body1</item>
+        <item name="textAppearanceListItem">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.Material.ListItem</item>
+        <item name="textAppearanceListItemSecondary">@style/TextAppearance.Material.ListItemSecondary</item>
         <item name="listPreferredItemPaddingLeft">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingRight">@dimen/list_item_padding_horizontal_material</item>
         <item name="listPreferredItemPaddingStart">@dimen/list_item_padding_start_material</item>
diff --git a/core/res/res/xml-watch/default_zen_mode_config.xml b/core/res/res/xml-watch/default_zen_mode_config.xml
index 26af10c..938cc0c 100644
--- a/core/res/res/xml-watch/default_zen_mode_config.xml
+++ b/core/res/res/xml-watch/default_zen_mode_config.xml
@@ -17,8 +17,8 @@
 
 <!-- Default configuration for zen mode.  See android.service.notification.ZenModeConfig. -->
 <zen version="2">
-    <!-- Allow starred contacts to go through only. Repeated calls on.
-         Calls, messages, reminders, events off.-->
-    <allow from="2" repeatCallers="true" calls="false" messages="false" reminders="false"
+    <!-- Allow starred contacts to go through only.
+    Repeated calls, calls, messages, reminders, events off. -->
+    <allow from="2" repeatCallers="false" calls="false" messages="false" reminders="false"
            events="false"/>
 </zen>
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsDurationTimerTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsDurationTimerTest.java
new file mode 100644
index 0000000..a15e367
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsDurationTimerTest.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.android.internal.os;
+
+import android.os.BatteryStats;
+import android.os.Parcel;
+import android.support.test.filters.SmallTest;
+import android.util.Log;
+
+import junit.framework.TestCase;
+
+import org.mockito.Mockito;
+
+/**
+ * Test BatteryStatsImpl.DurationTimer.
+ *
+ * In these tests, unless otherwise commented, the time increments by
+ * 2x + 100, to make the subtraction unlikely to alias to another time.
+ */
+public class BatteryStatsDurationTimerTest extends TestCase {
+
+    @SmallTest
+    public void testStartStop() throws Exception {
+        final MockClocks clocks = new MockClocks();
+
+        final BatteryStatsImpl.TimeBase timeBase = new BatteryStatsImpl.TimeBase();
+        timeBase.init(clocks.uptimeMillis(), clocks.elapsedRealtime());
+
+        final BatteryStatsImpl.DurationTimer timer = new BatteryStatsImpl.DurationTimer(clocks, 
+                null, BatteryStats.WAKE_TYPE_PARTIAL, null, timeBase);
+
+        // TimeBase running, timer not running: current and max are 0
+        timeBase.setRunning(true, /* uptimeUs */ 0, /* realtimeUs */ 100*1000);
+        assertFalse(timer.isRunningLocked());
+        assertEquals(0, timer.getCurrentDurationMsLocked(300));
+        assertEquals(0, timer.getMaxDurationMsLocked(301));
+
+        // Start timer: current and max advance
+        timer.startRunningLocked(700);
+        assertTrue(timer.isRunningLocked());
+        assertEquals(800, timer.getCurrentDurationMsLocked(1500));
+        assertEquals(801, timer.getMaxDurationMsLocked(1501));
+
+        // Stop timer: current resets to 0, max remains
+        timer.stopRunningLocked(3100);
+        assertFalse(timer.isRunningLocked());
+        assertEquals(0, timer.getCurrentDurationMsLocked(6300));
+        assertEquals(2400, timer.getMaxDurationMsLocked(6301));
+
+        // Start time again, but check with a short time, and make sure max doesn't
+        // increment.
+        timer.startRunningLocked(12700);
+        assertTrue(timer.isRunningLocked());
+        assertEquals(100, timer.getCurrentDurationMsLocked(12800));
+        assertEquals(2400, timer.getMaxDurationMsLocked(12801));
+
+        // And stop it again, but with a short time, and make sure it doesn't increment.
+        timer.stopRunningLocked(12900);
+        assertFalse(timer.isRunningLocked());
+        assertEquals(0, timer.getCurrentDurationMsLocked(13000));
+        assertEquals(2400, timer.getMaxDurationMsLocked(13001));
+
+        // Now start and check that the time doesn't increase if the two times are the same.
+        timer.startRunningLocked(27000);
+        assertTrue(timer.isRunningLocked());
+        assertEquals(0, timer.getCurrentDurationMsLocked(27000));
+        assertEquals(2400, timer.getMaxDurationMsLocked(27000));
+
+        // Stop the TimeBase. The values should be frozen.
+        timeBase.setRunning(false, /* uptimeUs */ 10, /* realtimeUs */ 55000*1000);
+        assertTrue(timer.isRunningLocked());
+        assertEquals(28100, timer.getCurrentDurationMsLocked(110100)); // Why 28100 and not 28000?
+        assertEquals(28100, timer.getMaxDurationMsLocked(110101));
+
+        // Start the TimeBase. The values should be the old value plus the delta
+        // between when the timer restarted and the current time
+        timeBase.setRunning(true, /* uptimeUs */ 10, /* realtimeUs */ 220100*1000);
+        assertTrue(timer.isRunningLocked());
+        assertEquals(28300, timer.getCurrentDurationMsLocked(220300)); // extra 100 from above??
+        assertEquals(28301, timer.getMaxDurationMsLocked(220301));
+    }
+
+    @SmallTest
+    public void testReset() throws Exception {
+    }
+
+    @SmallTest
+    public void testParceling() throws Exception {
+        final MockClocks clocks = new MockClocks();
+
+        final BatteryStatsImpl.TimeBase timeBase = new BatteryStatsImpl.TimeBase();
+        timeBase.init(clocks.uptimeMillis(), clocks.elapsedRealtime());
+
+        final BatteryStatsImpl.DurationTimer timer = new BatteryStatsImpl.DurationTimer(clocks, 
+                null, BatteryStats.WAKE_TYPE_PARTIAL, null, timeBase);
+
+        // Start running on battery.
+        clocks.realtime = 100;
+        clocks.uptime = 10;
+        timeBase.setRunning(true, clocks.uptimeMillis()*1000, clocks.elapsedRealtime()*1000);
+
+        timer.startRunningLocked(300);
+
+        // Check that it did start running
+        assertEquals(400, timer.getMaxDurationMsLocked(700));
+        assertEquals(401, timer.getCurrentDurationMsLocked(701));
+
+        // Write summary
+        final Parcel summaryParcel = Parcel.obtain();
+        timer.writeSummaryFromParcelLocked(summaryParcel, 1500*1000);
+        summaryParcel.setDataPosition(0);
+
+        // Read summary
+        final BatteryStatsImpl.DurationTimer summary = new BatteryStatsImpl.DurationTimer(clocks, 
+                null, BatteryStats.WAKE_TYPE_PARTIAL, null, timeBase);
+        summary.startRunningLocked(3100);
+        summary.readSummaryFromParcelLocked(summaryParcel);
+        // The new one shouldn't be running, and therefore 0 for current time
+        assertFalse(summary.isRunningLocked());
+        assertEquals(0, summary.getCurrentDurationMsLocked(6300));
+        // The new one should have the max duration that we had when we wrote it
+        assertEquals(1200, summary.getMaxDurationMsLocked(6301));
+
+        // Write full
+        final Parcel fullParcel = Parcel.obtain();
+        timer.writeToParcel(fullParcel, 1500*1000);
+        fullParcel.setDataPosition(0);
+ 
+        // Read full - Should be the same as the summary as far as DurationTimer is concerned.
+        final BatteryStatsImpl.DurationTimer full = new BatteryStatsImpl.DurationTimer(clocks, 
+                null, BatteryStats.WAKE_TYPE_PARTIAL, null, timeBase, fullParcel);
+        // The new one shouldn't be running, and therefore 0 for current time
+        assertFalse(full.isRunningLocked());
+        assertEquals(0, full.getCurrentDurationMsLocked(6300));
+        // The new one should have the max duration that we had when we wrote it
+        assertEquals(1200, full.getMaxDurationMsLocked(6301));
+    }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java
index ce6879d..b4afdda 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java
@@ -178,19 +178,40 @@
                 clocks.elapsedRealtime() * 1000);
         offBatterySummaryParcel.setDataPosition(0);
 
-        // Read the on battery summary from the parcel.
-        BatteryStatsImpl.SamplingTimer unparceledTimer = new BatteryStatsImpl.SamplingTimer(
-                clocks, timeBase);
-        unparceledTimer.readSummaryFromParcelLocked(onBatterySummaryParcel);
+        // Set the timebase running again. That way any issues with tracking reported values
+        // get tested when we unparcel the timers below.
+        timeBase.setRunning(true, clocks.uptimeMillis(), clocks.elapsedRealtime());
 
-        assertEquals(10, unparceledTimer.getTotalTimeLocked(0, BatteryStats.STATS_SINCE_CHARGED));
-        assertEquals(1, unparceledTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
+        // Read the on battery summary from the parcel.
+        BatteryStatsImpl.SamplingTimer unparceledOnBatteryTimer =
+                new BatteryStatsImpl.SamplingTimer(clocks, timeBase);
+        unparceledOnBatteryTimer.readSummaryFromParcelLocked(onBatterySummaryParcel);
+
+        assertEquals(10, unparceledOnBatteryTimer.getTotalTimeLocked(0,
+                BatteryStats.STATS_SINCE_CHARGED));
+        assertEquals(1, unparceledOnBatteryTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
 
         // Read the off battery summary from the parcel.
-        unparceledTimer = new BatteryStatsImpl.SamplingTimer(clocks, timeBase);
-        unparceledTimer.readSummaryFromParcelLocked(offBatterySummaryParcel);
+        BatteryStatsImpl.SamplingTimer unparceledOffBatteryTimer =
+                new BatteryStatsImpl.SamplingTimer(clocks, timeBase);
+        unparceledOffBatteryTimer.readSummaryFromParcelLocked(offBatterySummaryParcel);
 
-        assertEquals(10, unparceledTimer.getTotalTimeLocked(0, BatteryStats.STATS_SINCE_CHARGED));
-        assertEquals(1, unparceledTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
+        assertEquals(10, unparceledOffBatteryTimer.getTotalTimeLocked(0,
+                BatteryStats.STATS_SINCE_CHARGED));
+        assertEquals(1, unparceledOffBatteryTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
+
+        // Now, just like with a fresh timer, the first update should be absorbed to account for
+        // data being collected when we weren't recording.
+        unparceledOnBatteryTimer.update(10, 10);
+
+        assertEquals(10, unparceledOnBatteryTimer.getTotalTimeLocked(0,
+                BatteryStats.STATS_SINCE_CHARGED));
+        assertEquals(1, unparceledOnBatteryTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
+
+        unparceledOffBatteryTimer.update(10, 10);
+
+        assertEquals(10, unparceledOffBatteryTimer.getTotalTimeLocked(0,
+                BatteryStats.STATS_SINCE_CHARGED));
+        assertEquals(1, unparceledOffBatteryTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
     }
 }
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
index 78bcbbc..9518219 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
@@ -5,6 +5,7 @@
 
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
+        BatteryStatsDurationTimerTest.class,
         BatteryStatsSamplingTimerTest.class,
         BatteryStatsServTest.class,
         BatteryStatsTimeBaseTest.class,
diff --git a/docs/html-intl/intl/es/preview/guide.jd b/docs/html-intl/intl/es/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/es/preview/guide.jd
rename to docs/html-intl/intl/es/about/versions/marshmallow/android-6.0-testing.jd
index 9d12b57..20d2d6e 100644
--- a/docs/html-intl/intl/es/preview/guide.jd
+++ b/docs/html-intl/intl/es/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>En este documento</h2>
       <ol>
         <li><a href="#runtime-permissions">Prueba de los permisos</a></li>
diff --git a/docs/html-intl/intl/es/preview/behavior-changes.jd b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/es/preview/behavior-changes.jd
rename to docs/html-intl/intl/es/about/versions/nougat/android-7.0-changes.jd
index 112c1c9..d4438f2 100644
--- a/docs/html-intl/intl/es/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>En este documento</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Figura 1:</strong> Ilustración del modo en que Descanso aplica un primer nivel de
   restricciones de actividad del sistema para prolongar la duración de la batería.
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>Figura 2:</strong> Ilustración del modo en que Descanso aplica un segundo nivel de
   restricciones de actividad del sistema después de que el dispositivo permanece quieto durante un tiempo determinado.
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/es/preview/samples.jd b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-samples.jd
similarity index 77%
rename from docs/html-intl/intl/es/preview/samples.jd
rename to docs/html-intl/intl/es/about/versions/nougat/android-7.0-samples.jd
index 204d11a..6461b54 100644
--- a/docs/html-intl/intl/es/preview/samples.jd
+++ b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">“Área de juegos” de ventanas múltiples</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   En este ejemplo se muestra la manera de aprovechar interfaces de usuario
   de ventanas múltiples con tu aplicación.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Notificaciones activas</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Este es un ejemplo preexistente en el cual se muestra un servicio simple que envía
   notificaciones con NotificationCompat. Cada conversación no leída
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Servicio de mensajería</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   Este es un ejemplo preexistente en el que se demuestra la manera de usar
   NotificationManager para indicar la cantidad de notificaciones que se aparecen actualmente en una
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Inicio directo</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   En este ejemplo se demuestra la manera de almacenar datos, y de acceder a ellos, en un medio de almacenamiento encriptado por
   dispositivo que esté siempre disponible mientras el dispositivo se haya iniciado.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Acceso a directorios determinados</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   En este ejemplo se demuestra la manera de leer y escribir datos de
   directorios específicos y, al mismo tiempo, evitar más permisos.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
 Obtener en GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/es/preview/guide.jd b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/es/preview/guide.jd
copy to docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd
index 9d12b57..20d2d6e 100644
--- a/docs/html-intl/intl/es/preview/guide.jd
+++ b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>En este documento</h2>
       <ol>
         <li><a href="#runtime-permissions">Prueba de los permisos</a></li>
diff --git a/docs/html-intl/intl/es/preview/api-overview.jd b/docs/html-intl/intl/es/about/versions/nougat/android-7.0.jd
similarity index 98%
rename from docs/html-intl/intl/es/preview/api-overview.jd
rename to docs/html-intl/intl/es/about/versions/nougat/android-7.0.jd
index 7cee010..97bf2f1 100644
--- a/docs/html-intl/intl/es/preview/api-overview.jd
+++ b/docs/html-intl/intl/es/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Funciones claves para desarrolladores</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>Figura 1:</strong> Aplicaciones en ejecución en el modo de pantalla dividida.
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">Ahorro de datos</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Figura 4:</strong> Ahorro de datos en la configuración.
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Figura 5:</strong> Mosaicos de Quick Settings del panel de notificaciones.
diff --git a/docs/html-intl/intl/es/preview/index.jd b/docs/html-intl/intl/es/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/es/preview/index.jd
rename to docs/html-intl/intl/es/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/es/design/patterns/notifications.jd b/docs/html-intl/intl/es/design/patterns/notifications.jd
deleted file mode 100644
index 5499e8b..0000000
--- a/docs/html-intl/intl/es/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=Notificaciones
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>Documentos para desarrolladores</h3>
-    <p>Cómo notificar al usuario</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Notificaciones en Android 4.4 y versiones anteriores</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>Video</h3>
-    <p>DevBytes: Notificaciones en la vista previa para desarrolladores de Android L</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>El sistema de notificaciones les permite a los usuarios mantenerse informados sobre eventos relevantes y
-oportunos
-de su aplicación, como nuevos mensajes de chat de un amigo o un evento del calendario.
-Piense en las notificaciones como un canal de noticias que alerta a los usuarios sobre eventos
-importantes
-a medida que se producen o como un registro en el que se relatan los eventos mientras el usuario no está prestando
-atención y que se sincroniza de forma correspondiente en todos los dispositivos de Android.</p>
-
-<h4 id="New"><strong>Novedades de Android 5.0</strong></h4>
-
-<p>En Android 5.0, las notificaciones reciben actualizaciones importantes a nivel estructural,
-visual y funcional.</p>
-
-<ul>
-  <li>En las notificaciones, se han realizado cambios visuales de forma coherente con el nuevo
-tema Material Design.</li>
-  <li> Las notificaciones ahora están disponibles en la pantalla de bloqueo del dispositivo y
-el contenido confidencial se puede seguir
- ocultando detrás de dicha pantalla.</li>
-  <li>En las notificaciones de alta prioridad que se reciben cuando el dispositivo está en uso, ahora se utiliza un nuevo formato llamado
- notificaciones emergentes.</li>
-  <li>Notificaciones sincronizadas en la nube: Si se omite una notificación en un dispositivo
-Android, esta se omitirá
- también en los demás dispositivos.</li>
-</ul>
-
-<p class="note"><strong>Nota:</strong> El diseño de las notificaciones de esta versión de
-Android se diferencia
-de manera significativa del diseño de las versiones anteriores. Para obtener información sobre el diseño de las notificaciones en versiones
-anteriores, consulte <a href="./notifications_k.html">Notificaciones en Android 4.4 y versiones anteriores</a>.</p>
-
-<h2 id="Anatomy">Anatomía de una notificación</h2>
-
-<p>En esta sección, se repasan las partes básicas de una notificación y cómo se pueden mostrar en
-diferentes tipos de dispositivos.</p>
-
-<h3 id="BaseLayout">Diseño básico</h3>
-
-<p>Como mínimo, todas las notificaciones poseen un diseño básico que incluye lo siguiente:</p>
-
-<ul>
-  <li> El <strong>icono</strong> de la notificación. El icono simboliza la
-aplicación que lo origina. También puede
- indicar el tipo de notificación si la aplicación genera más de un
-tipo.</li>
-  <li> <strong>Título</strong> de la notificación y
-<strong>texto</strong> adicional.</li>
-  <li> Una <strong>marca de tiempo</strong>.</li>
-</ul>
-
-<p>Las notificaciones creadas con {@link android.app.Notification.Builder Notification.Builder}
-para versiones anteriores de la plataforma lucen y funcionan igual en Android
-5.0; solo presentan algunos cambios de estilo que el sistema realiza
-por usted. Para obtener más información sobre las notificaciones en versiones anteriores de
-Android, consulte
-<a href="./notifications_k.html">Notificaciones en Android 4.4 y versiones anteriores</a>.</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      Diseño básico de una notificación para dispositivos portátiles (izquierda) y la misma notificación en Wear (derecha),
- con una fotografía del usuario y un icono de la notificación
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">Diseños expandidos</h3>
-
-
-<p>Usted puede decidir cuántos detalles mostrarán las notificaciones
-de su aplicación. Las notificaciones pueden mostrar las primeras
-líneas de un mensaje o la vista previa de una imagen más grande. A través de la
-información adicional, se proporciona más
-contexto al usuario y, en algunos casos, se puede permitir que el usuario lea todo el
-mensaje. El usuario
-puede acercar o alejar la imagen, o deslizar la imagen con un solo dedo para alternar entre los diseños compacto
-y expandido.
- En el caso de las notificaciones de un solo evento, Android proporciona tres plantillas de
-diseños expandidos (texto, bandeja de entrada e
- imagen) para que usted utilice en su aplicación. En las siguientes imágenes, se muestra cómo
-se ven las notificaciones de un solo evento en los
- dispositivos portátiles (izquierda) y los dispositivos con Wear (derecha).</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">Acciones</h3>
-
-<p>Android es compatible con acciones opcionales que se muestran en la parte inferior
-de la notificación.
-A través de las acciones, los usuarios pueden administrar las tareas más comunes para una determinada
-notificación desde el interior del panel de notificaciones, sin tener que abrir la
-aplicación que la originó.
-Esto acelera la interacción y, junto con la función deslizar para descartar, ayuda a los usuarios a enfocarse en las
-notificaciones que les parecen importantes.</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">Sea moderado con la cantidad de acciones que incluye en una
-notificación. Mientras más
-acciones incluya, mayor complejidad cognitiva generará. Limítese a
-la menor cantidad posible
-de acciones al incluir solo las acciones más importantes
-y significativas.</p>
-
-<p>Las acciones recomendadas para las notificaciones son aquellas que:</p>
-
-<ul>
-  <li> Son fundamentales, frecuentes y típicas para el tipo de contenido que está
-mostrando.
-  <li> Les permiten a los usuarios realizar las tareas rápidamente.
-</ul>
-
-<p>Evite acciones que sean:</p>
-
-<ul>
-  <li> ambiguas;
-  <li> iguales que la acción predeterminada de la notificación (tales como "Leer" o
-"Abrir").
-</ul>
-
-
-
-<p>Puede especificar un máximo de tres acciones, cada una de ellas formada por un icono
-de la acción y un nombre.
- Al agregarle acciones a un diseño básico simple, la notificación será expandible,
-incluso si no
- cuenta con un diseño expandido. Como las acciones solo se muestran en las notificaciones
-expandidas
- y, de lo contrario, se ocultan, asegúrese de que cualquier acción que el
-usuario invoque desde
- una notificación esté disponible también desde la aplicación
-asociada.</p>
-
-<h2 style="clear:left">Notificación emergente</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    Ejemplo de una notificación emergente (llamada telefónica entrante, alta prioridad)
-que aparece en la parte superior de una
- aplicación inmersiva
-  </p>
-</div>
-
-<p>Cuando llega una notificación de alta prioridad (ver a la derecha), esta se presenta
-a los usuarios
-durante un período breve, con un diseño expandido que expone las posibles acciones.</p>
-<p> Luego de este período, la notificación se retira hacia el
-panel de notificaciones. Si la <a href="#correctly_set_and_manage_notification_priority">prioridad</a> de una notificación
-se marca como Alta, Máxima o Pantalla completa, se obtiene una notificación emergente.</p>
-
-<p><b>Buenos ejemplos de notificaciones emergentes</b></p>
-
-<ul>
-  <li> Llamada telefónica entrante cuando se utiliza un dispositivo</li>
-  <li> Alarma cuando se utiliza un dispositivo</li>
-  <li> Nuevo mensaje SMS</li>
-  <li> Batería baja</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">Pautas</h2>
-
-
-<h3 id="MakeItPersonal">Personalización</h3>
-
-<p>En el caso de las notificaciones de los elementos que envía otra persona (como un mensaje o una
-actualización de estado), utilice
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} para incluir la imagen de esa persona. Además, adjunte información sobre
-la persona en los metadatos de la notificación (consulte {@link android.app.Notification#EXTRA_PEOPLE}).</p>
-
-<p>El icono principal de su notificación seguirá estando visible, de modo que el usuario pueda asociarlo
-con el icono
-que se muestra en la barra de estado.</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  Notificación en la que se muestra la persona que la generó y el contenido que envió.
-</p>
-
-
-<h3 id="navigate_to_the_right_place">Navegación hacia el lugar correcto</h3>
-
-<p>Cuando el usuario toca el cuerpo de una notificación (fuera de los botones de acción
-), esta se abre
-en el lugar en el que el usuario puede visualizarla y utilizar los datos que se mencionan en la
-notificación. En la mayoría de los casos, se tratará de la vista detallada de un solo elemento de datos como un mensaje,
-pero también se podría tratar de una
-vista resumida si la notificación está apilada. Si la aplicación dirige al
-usuario a cualquier sitio que se encuentre debajo del nivel superior, incorpore la navegación en la pila de retroceso de la aplicación para que el
-usuario pueda presionar el botón Back del sistema y regresar al nivel superior. Para obtener más información, consulte
-<em>Navegación dentro de la aplicación a través de los widgets y las notificaciones de la pantalla de Inicio</em> en el patrón de
-diseño <a href="{@docRoot}design/patterns/navigation.html#into-your-app">Navegación</a>.</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">Configuración y administración
-correctas de la prioridad
-de las notificaciones</h3>
-
-<p>Android admite el uso de una marca de prioridad en las notificaciones. Esta marca
-le permite influir en el lugar donde aparecerá la notificación, en relación con otras notificaciones, y
-lo ayuda a asegurarse de
-que los usuarios vean siempre primero las notificaciones más importantes. Cuando publica una notificación, puede elegir
-entre los
-siguientes niveles de prioridad:</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>Prioridad</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>Uso</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>Utilícelo para las notificaciones críticas y urgentes en las que se le informa al usuario sobre una condición
-que es
-crítica en el tiempo o que se debe resolver antes de que el usuario continúe con una
-tarea específica.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>Utilícelo, principalmente, para comunicaciones importantes, como eventos de mensajes o
-chats con contenido que sea particularmente interesante para el usuario.
-Las notificaciones de alta prioridad activan la pantalla de notificaciones emergentes.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>Utilícelo para todas las notificaciones que no pertenecen a ninguno de los otros tipos de prioridades que se describen aquí.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>Utilícelo para las notificaciones que desea que el usuario reciba, pero
-que son menos urgentes. Las notificaciones de baja prioridad tienden a aparecer en la parte inferior de la lista,
-por lo que son ideales para
-eventos como actualizaciones sociales públicas o indirectas: El usuario solicitó que se le notifiquen
-estas
-actualizaciones, pero estas notificaciones nunca tendrán prioridad sobre las comunicaciones
-urgentes o directas.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>Utilícelo para la información contextual o de segundo plano, como información sobre el clima o la
-ubicación contextual.
-Las notificaciones cuya prioridad es mínima no aparecen en la barra de estado. El usuario
-las descubre al expandir el panel de notificaciones.</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>Cómo elegir la
-prioridad
-adecuada</strong></h4>
-
-<p><code>DEFAULT</code>, <code>HIGH</code> y <code>MAX</code> son niveles de prioridad interruptiva, y se corre el riesgo de
-interrumpir al usuario
-en el medio de su actividad. Para evitar incomodar a los usuarios de su aplicación, reserve los niveles de prioridad interruptiva para
-las notificaciones:</p>
-
-<ul>
-  <li> en las que participe otra persona;</li>
-  <li> en las que el tiempo sea importante;</li>
-  <li> que puedan modificar inmediatamente el comportamiento del usuario en el mundo real.</li>
-</ul>
-
-<p>Las notificaciones que se configuran en <code>LOW</code> y <code>MIN</code> pueden seguir siendo
-valiosas para el usuario: muchas, tal vez la mayoría, de las notificaciones simplemente no le piden al usuario que actúe de inmediato
-ni llaman su atención mediante una vibración, pero poseen información que será valiosa para el
-usuario
-cuando este decida ver las notificaciones. Entre los criterios de las notificaciones con prioridad <code>LOW</code> y <code>MIN</code>,
-se incluyen los siguientes:</p>
-
-<ul>
-  <li> No participan otras personas.</li>
-  <li> El tiempo no es importante.</li>
-  <li> Incluyen contenido que podría interesarle al usuario, pero que tal vez desee
-buscarlo cuando lo necesite.</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">Configuración de una
-categoría de notificaciones</h3>
-
-<p>Si su notificación se puede clasificar dentro de alguna de las categorías predefinidas (consulte
-a continuación), asígnela
-según corresponda.  Esta información se puede utilizar en determinados aspectos de la IU del sistema, como el panel de notificaciones (o cualquier
-otro
-agente de escucha de la notificación), para realizar una clasificación y filtrar las decisiones.</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>Llamada entrante (voz o video) o una solicitud de comunicación
-sincrónica similar</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>Mensaje entrante directo (SMS, mensaje instantáneo, etc.)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>Mensaje en bloque asíncrono (correo electrónico)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>Evento del calendario</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>Promoción o anuncio</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>Alarma o temporizador</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>Progreso de una operación en segundo plano de larga ejecución</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>Actualización de red social o uso compartido de datos</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>Error en una operación en segundo plano o un estado de autenticación</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>Control de transporte de medios para la reproducción</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>Actualización del estado del dispositivo o el sistema.  Reservado para ser utilizado por el sistema</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>Indicación de ejecución de servicio en segundo plano</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>Una recomendación específica y oportuna para un solo evento.  Por ejemplo, en una
-aplicación de noticias tal vez se desee
-recomendar una historia que se considere que el usuario deseará leer luego</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>Información constante sobre el estado contextual o del dispositivo</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">Resumen de las notificaciones</h3>
-
-<p>Si una notificación de un determinado tipo ya está pendiente cuando su aplicación intenta enviar una nueva
-notificación del mismo tipo, combínelas en una misma notificación resumida para la aplicación. No
-cree un objeto nuevo.</p>
-
-<p>Las notificaciones resumidas incluirán una descripción resumida y le permitirán al usuario
-conocer cuántas
-notificaciones de un determinado tipo están pendientes.</p>
-
-<div class="col-6">
-
-<p><strong>Lo que no debe hacer</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>Lo que debe hacer</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">Puede proporcionar
-información más detallada sobre cada una de las notificaciones que conforman un
- resumen al utilizar el diseño resumido expandido. Este enfoque les permite a los usuarios tener
-una idea más clara de las
- notificaciones pendientes y determinar si están lo suficientemente interesados como para leer
-los detalles en la
- aplicación asociada.</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  Notificación contraída y expandida que es un resumen (mediante el uso de <code>InboxStyle</code>)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">Uso de notificaciones
-opcionales</h3>
-
-<p>Los usuarios deben tener siempre el control sobre las notificaciones. Permítale al usuario
-deshabilitar las notificaciones
-de su aplicación o cambiar las propiedades de las alertas, como el sonido de una alerta y si desea
-utilizar la vibración,
-mediante la incorporación de un elemento de configuración de notificaciones en las configuraciones de la aplicación.</p>
-
-<h3 id="use_distinct_icons">Uso de iconos diferentes</h3>
-<p>Al mirar el área de notificaciones, el usuario debe poder diferenciar
-los tipos de
-notificaciones que están pendientes actualmente.</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>Lo que debe hacer</strong></p>
-    <p>Mirar los iconos de notificaciones que ya se proporcionan en las aplicaciones de Android y crear
-iconos de notificaciones para
- su aplicación que tengan una apariencia bastante diferente.</p>
-
-    <p><strong>Lo que debe hacer</strong></p>
-    <p>Utilizar el <a href="/design/style/iconography.html#notification">estilo de icono de notificación</a>
- adecuado para los iconos pequeños y el
-<a href="/design/style/iconography.html#action-bar">estilo
-de icono de barra de acción</a> del diseño Material Light para los iconos
- de acciones.</p>
-<p ><strong>Lo que debe hacer</strong></p>
-<p >Hacer que los iconos sean simples y evitar incluir una cantidad excesiva de detalles difíciles de
-distinguir.</p>
-
-  <div><p><strong>Lo que no debe hacer</strong></p>
-    <p>Colocar valores alfa adicionales (que se oscurezcan o aclaren) en los
-iconos pequeños y los
- iconos de acciones. Estos pueden tener bordes alisados, pero como en Android estos iconos se utilizan
-como máscaras (es decir, solo se
- utiliza el canal alfa), por lo general, la imagen se debe dibujar con
-opacidad completa.</p>
-
-</div>
-<p style="clear:both"><strong>Lo que no debe hacer</strong></p>
-
-<p>Utilizar colores para diferenciar su aplicación de las demás. Los iconos de las notificaciones simplemente
-deben ser una imagen sobre un fondo blanco o transparente.</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">Pulsación adecuada del
-LED de notificaciones</h3>
-
-<p>Muchos dispositivos con Android incluyen un LED de notificaciones, que se utiliza para mantener al
-usuario informado sobre los
-eventos cuando la pantalla está apagada. Las notificaciones con un nivel de prioridad <code>MAX</code>,
-<code>HIGH</code> o <code>DEFAULT</code> deben
-hacer que se encienda el LED, mientras que las de menor prioridad (<code>LOW</code> y
-<code>MIN</code>) no deben activar esta función.</p>
-
-<p>El control del usuario sobre las notificaciones debe extenderse al LED. Cuando se utilice
-DEFAULT_LIGHTS, el
-LED se iluminará en color blanco. Sus notificaciones no deberían utilizar un color
-diferente, a menos que el
-usuario lo haya personalizado explícitamente.</p>
-
-<h2 id="building_notifications_that_users_care_about">Creación de notificaciones
-importantes para los usuarios</h2>
-
-<p>Para crear una aplicación que les guste a los usuarios, es importante diseñar las notificaciones
-cuidadosamente.
-Las notificaciones son la voz de su aplicación y ayudan a definir su
-personalidad. Las notificaciones no deseadas
-o que no son importantes pueden hacer que el usuario se moleste o no se sienta cómodo con la cantidad de
-atención que le demanda la
-aplicación, por eso debe utilizarlas de forma moderada.</p>
-
-<h3 id="when_to_display_a_notification">Cuándo se deben mostrar las notificaciones</h3>
-
-<p>Para crear una aplicación que los usuarios disfruten, es importante
-reconocer que la atención
-y el enfoque del usuario son recursos que se deben proteger. Aunque el sistema de notificaciones de Android
-se diseñó
-para minimizar el impacto de las notificaciones en la atención del usuario,
-es
-importante tener en cuenta que las notificaciones interrumpen el
-flujo de tareas del usuario.
-Cuando planifique sus notificaciones, pregúntese si son lo suficiente importantes como para
-realizar una interrupción. Si no está seguro, permítale al usuario que elija las
-notificaciones mediante la configuración de notificaciones de su aplicación o que ajuste
-la marca de prioridad de las notificaciones en <code>LOW</code> o <code>MIN</code> para
-evitar distraer al usuario cuando realiza
-alguna otra tarea.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   Ejemplos de notificaciones sujetas a limitación temporal
-  </p>
-
-<p>Aunque las aplicaciones más eficientes para el usuario solo proporcionan una respuesta cuando se la solicita, en algunos casos,
-vale la pena que una aplicación interrumpa al usuario con una notificación no solicitada.</p>
-
-<p>Utilice las notificaciones principalmente para <strong>eventos sujetos a limitaciones temporales</strong>, en especial
- si estos eventos sincrónicos <strong>involucran a otras personas</strong>. Por
-ejemplo, un chat entrante
- es una forma de comunicación sincrónica y en tiempo real: otro usuario
-está esperando de forma activa su respuesta. Los eventos del calendario son otros buenos ejemplos de cuándo se debe utilizar una
-notificación y llamar la atención del usuario,
- ya que los eventos son inminentes y, generalmente,
-involucran a otras personas.</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">Cuándo no se debe
-mostrar una notificación</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>En muchos otros casos, no es apropiado enviar notificaciones:</p>
-
-<ul>
-  <li> Evite notificarle al usuario acerca de información que no le enviaron
-específicamente a él o
-información que no está verdaderamente sujeta a una limitación temporal. Por ejemplo, las actualizaciones asíncronas
-e indirectas
- que circulan por las redes sociales generalmente no justifican una interrupción en
-tiempo real. En el caso de los usuarios
- interesados en dichas notificaciones, permítales elegir.</li>
-  <li> No cree una notificación si la información nueva y relevante se muestra actualmente
-en la pantalla. En su lugar,
- utilice la IU de la aplicación para notificarle al usuario sobre la nueva información
-directamente en contexto.
-  Por ejemplo, una aplicación de chat no debe crear notificaciones del sistema mientras
-el usuario está chateando de forma activa con otro usuario.</li>
-  <li> No interrumpa al usuario para que ejecute operaciones técnicas de bajo nivel, como guardar
-o sincronizar información, o actualizar una aplicación si dicha aplicación o el sistema pueden resolver el problema
-sin la participación del usuario.</li>
-  <li> No interrumpa al usuario para informarle sobre un error si la
-aplicación puede solucionar el error por sus propios medios, sin que el usuario
-realice ninguna acción.</li>
-  <li> No cree notificaciones que no incluyan contenidos reales de notificación y que
-simplemente promocionen
- su aplicación. Una notificación debe proporcionar información nueva, útil y oportuna, y
-no debe utilizarse
- solo para lanzar una aplicación.</li>
-  <li> No cree notificaciones superfluas solo para mostrar su marca
-a los usuarios.
-  Dichas notificaciones frustran y aíslan a su público. La
-mejor forma de proporcionar
- pequeñas cantidades de información actualizada y de mantener a los usuarios interesados
-en su
- aplicación es desarrollar un widget que puedan colocar en la
-pantalla de inicio, si así lo desean.</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">Interacción con
-las notificaciones</h2>
-
-<p>Las notificaciones se indican mediante iconos en la barra de estado, y se puede acceder a ellas
-al abrir el
-panel lateral de notificaciones.</p>
-
-<p>Al tocar una notificación, se abre la aplicación asociada con el contenido detallado
-que coincide con el de la notificación.
-Si dicha notificación se desplaza hacia la izquierda o la derecha, esta se eliminará del panel lateral.</p>
-
-<h3 id="ongoing_notifications">Notificaciones constantes</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    Notificaciones constantes relacionadas con la reproducción de música
-  </p>
-</div>
-<p>Mediante las notificaciones constantes, se mantiene a los usuarios informados sobre un proceso en curso en
-segundo plano.
-Por ejemplo, los reproductores de música anuncian la pista que se está reproduciendo actualmente en el
-sistema de notificaciones y
-siguen haciéndolo hasta que el usuario detiene la reproducción. Mediante las notificaciones constantes también se le pueden
-mostrar al usuario
-comentarios sobre tareas más extensas, como descargar un archivo o codificar un video. Los usuarios no podrán
-eliminar las notificaciones constantes del panel lateral de notificaciones.</p>
-
-<h3 id="ongoing_notifications">Reproducción de medios</h3>
-<p>En Android 5.0, la pantalla de bloqueo no muestra los controles de transporte para la clase
-{@link android.media.RemoteControlClient} obsoleta. Sin embargo, <em>sí</em> muestra las notificaciones, de modo que las notificaciones de reproducción de cada
-aplicación ahora son la forma principal
-en la que los usuarios controlan la reproducción desde el estado bloqueado. A través de este comportamiento, se le otorga más control
-a la aplicación sobre los
-botones que se deben mostrar, y la forma en que debe mostrarlos, al mismo tiempo que se proporciona
-al usuario una experiencia coherente, independientemente de si la pantalla está bloqueada o no.</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">Diálogos
-y avisos</h3>
-
-<p>Su aplicación no debe crear un diálogo o un aviso si actualmente no se muestra en la
-pantalla. Los diálogos o los avisos se deben
- mostrar únicamente como una respuesta inmediata a una acción que realiza el usuario
-dentro de su aplicación.
-Para obtener más información sobre cómo utilizar los diálogos y los avisos, consulte
-<a href="/design/patterns/confirming-acknowledging.html">Confirmación y reconocimiento</a>.</p>
-
-<h3>Orden y clasificación</h3>
-
-<p>Las notificaciones son noticias que, como tales, se muestran, básicamente, en
-orden cronológico inverso, prestando
-especial atención a la
-<a href="#correctly_set_and_manage_notification_priority">prioridad</a> de la notificación especificada en la aplicación.</p>
-
-<p>Las notificaciones son una parte clave de la pantalla de bloqueo y se muestran de forma prominente
-cada vez
-que se enciende la pantalla del dispositivo. El espacio en la pantalla de bloqueo es reducido, por lo que
-es sumamente importante
-que se identifiquen las notificaciones más urgentes o relevantes. Por este
-motivo, Android cuenta
-con un algoritmo de clasificación más sofisticado para las notificaciones, que tiene en cuenta lo siguiente:</p>
-
-<ul>
-  <li> La marca de tiempo y la prioridad especificada en la aplicación.</li>
-  <li> Si la notificación interrumpió al usuario recientemente con un sonido o una
-vibración. (Es decir,
- si el teléfono emitió un sonido y el usuario desea saber "¿Qué
-pasó?", en la pantalla de bloqueo se debe
- proporcionar una respuesta a simple vista).</li>
-  <li> Todas aquellas personas involucradas en la notificación mediante{@link android.app.Notification#EXTRA_PEOPLE}
- y, especialmente, si son contactos preferidos.</li>
-</ul>
-
-<p>Para aprovechar aún más esta función de clasificación, enfóquese en la
-experiencia del usuario que desea
-crear, en lugar de centrarse en algún punto importante de la lista.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Las notificaciones de Gmail
-poseen una prioridad predeterminada, por lo que
- normalmente clasifican los mensajes de una aplicación de mensajería instantánea como Hangouts, pero
-realizan
- un cambio de prioridad temporal cuando ingresan nuevos mensajes.
-  </p>
-
-
-<h3>En la pantalla de bloqueo</h3>
-
-<p>Como las notificaciones son visibles en la pantalla de bloqueo, la privacidad del usuario es un aspecto
-especialmente
-importante. Por lo general, las notificaciones contienen información confidencial y
-no necesariamente deben ser visibles
-para cualquier persona que agarre el dispositivo y encienda la pantalla.</p>
-
-<ul>
-  <li> En el caso de los dispositivos que posean una pantalla de bloqueo segura (PIN, patrón o contraseña), la interface está formada por
- partes públicas y privadas. La interfaz pública se puede mostrar en una pantalla de bloqueo segura y,
- por ende, cualquier persona puede verla. La interfaz privada es el mundo detrás de esa pantalla de bloqueo y
- solo se revela cuando el usuario se registra en el dispositivo.</li>
-</ul>
-
-<h3>Control del usuario sobre la información que se muestra en la pantalla de bloqueo segura</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    Notificaciones en la pantalla de bloqueo, en la que el contenido se revela luego de que el usuario desbloquea el dispositivo
-  </p>
-</div>
-
-<p>Cuando se configura una pantalla de bloqueo segura, el usuario puede decidir ocultar los
-detalles confidenciales de dicha pantalla. En este caso, la IU del sistema
-analiza el <em>nivel de visibilidad</em> de la notificación para decidir
-qué información se puede mostrar de forma segura.</p>
-<p> Para controlar el nivel de visibilidad, realice una llamada a
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>
- y especifique uno de los siguientes valores:</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>.
-Se muestra todo el contenido de la notificación.
-  Esta es la opción predeterminada del sistema si no se especificó el grado de visibilidad.</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
-En la pantalla de bloqueo se muestra la información básica sobre la existencia de esta notificación, incluido
-el icono y el nombre de la aplicación a través de la cual se publicó. No se muestra el resto de los detalles de la notificación.
-A continuación, especificamos algunos puntos que se deben tener en cuenta:
-  <ul>
-    <li> Si desea proporcionar una versión pública diferente de su notificación
-para que el sistema la muestre en una pantalla de bloqueo segura, suministre un
-objeto de notificación de reemplazo en el campo <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>
-.
-    <li> Mediante esta configuración, su aplicación puede crear una versión resumida del
-contenido que sigue siendo útil, pero que no revela información personal. Considere el ejemplo de una
-aplicación de SMS cuyas notificaciones incluyen el texto del SMS, el nombre del remitente y el icono del contacto.
-Esta notificación debe ser <code>VISIBILITY_PRIVATE</code>, pero <code>publicVersion</code> podría
-seguir conteniendo información útil como "3 mensajes nuevos", sin que se muestren otros detalles
-de identificación.
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Se muestra solo la menor cantidad de información posible; se excluye incluso
-el icono de la notificación.</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Notificaciones en
-Android Wear</h2>
-
-<p>Las notificaciones y sus <em>acciones</em> se conectan de forma predeterminada con los dispositivos con Wear.
-Los desarrolladores pueden controlar qué notificaciones se conectan desde el
-teléfono hacia el reloj
-y viceversa. Los desarrolladores también pueden controlar qué acciones se conectan. Si
-en su aplicación se incluyen
-acciones que no se pueden realizar con una sola pulsación, oculte dichas acciones
-en su notificación para Wear
-o considere anclarlas a una aplicación de Wear. De este modo, el usuario podrá
-finalizar con la acción desde el
-reloj.</p>
-
-<h4>Conexión entre notificaciones y acciones</h4>
-
-<p>Mediante un dispositivo conectado, como un teléfono, es posible conectar las notificaciones con un dispositivo con Wear, para que las
-notificaciones se muestren allí. De modo similar, también es posible conectar acciones para que el usuario pueda ejecutarlas
-directamente desde las notificaciones en los dispositivos con Wear.</p>
-
-<p><strong>Conexión</strong></p>
-
-<ul>
-  <li> Nuevos mensajes instantáneos</li>
-  <li> Acciones de una sola pulsación como Hacer +1, Me gusta o Favorito</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>Sin conexión</strong></p>
-
-<ul>
-  <li> Notificaciones de podcasts que llegaron recientemente</li>
-  <li> Acciones que se asignan a funciones que no se pueden ejecutar desde el reloj</li>
-</ul>
-
-
-
-<p><h4>Acciones únicas diseñadas para Wear</h4></p>
-
-<p>Existen algunas acciones que solo puede realizar en Wear. Entre estas, se incluyen las siguientes:</p>
-
-<ul>
-  <li> listas rápidas de respuestas predeterminadas como "Vuelvo enseguida";</li>
-  <li> acciones que se abren desde el teléfono;</li>
-  <li> un "Comentario" o una acción de "Respuesta" que activa la pantalla de entrada de voz;</li>
-  <li> acciones que lanzan aplicaciones específicas de Wear.</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/es/preview/j8-jack.jd b/docs/html-intl/intl/es/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/es/preview/j8-jack.jd
rename to docs/html-intl/intl/es/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/es/preview/features/multi-window.jd b/docs/html-intl/intl/es/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/es/preview/features/multi-window.jd
rename to docs/html-intl/intl/es/guide/topics/ui/multi-window.jd
index 441e06a..0a9cbe2 100644
--- a/docs/html-intl/intl/es/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/es/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>En este documento</h2>
       <ol>
         <li><a href="#overview">Información general</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>Figura 1:</strong> Dos aplicaciones ejecutándose una al lado de la otra en modo de pantalla dividida.
 </p>
diff --git a/docs/html-intl/intl/es/preview/_book.yaml b/docs/html-intl/intl/es/preview/_book.yaml
deleted file mode 100644
index 815f0f6..0000000
--- a/docs/html-intl/intl/es/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: Información general del programa
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: Compatibilidad y notas de la versión
-  path: /preview/support.html
-
-- title: Configuración de Preview
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: Probar en un dispositivo
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Probar en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: Cambios en los comportamientos
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: Background Optimizations
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: Idioma y configuración regional
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: Compatibilidad con ventanas múltiples
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: Notificaciones
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Ahorro de datos
-    path: /preview/features/data-saver.html
-  - title: Grabación de TV
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: Configuración de seguridad de la red
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: Compatibilidad con ICU4J
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Funciones del lenguaje Java 8
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Actualizaciones para Android for Work
-    path: /preview/features/afw.html
-  - title: Acceso a directorios determinados
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: Ejemplos
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: Contrato de licencia
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/es/preview/download-ota.jd b/docs/html-intl/intl/es/preview/download-ota.jd
deleted file mode 100644
index 2b2bcbf..0000000
--- a/docs/html-intl/intl/es/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=Aplicación de imágenes inalámbricas de dispositivo
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Antes de descargar e instalar los componentes del
-      Android Preview SDK, debe aceptar los términos y las
-      condiciones que se describen a continuación.</p>
-
-    <h2 class="norule">Términos y condiciones</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
-
-1. Introducción
-
-1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
-
-1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
-
-.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
-
-1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceptación del Contrato de licencia
-
-2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
-
-2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
-
-2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
-
-2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
-
-3. Licencia de la Preview de Google
-
-3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
-
-3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
-
-3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
-
-3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
-
-3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
-
-3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
-
-3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
-
-3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
-
-4. Uso que usted realiza de la Preview
-
-4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
-
-4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
-
-4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
-
-4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
-
-4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo.
-
-4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
-
-4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
-
-5. Sus credenciales de desarrollador
-
-5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
-
-6. Privacidad e información
-
-6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
-
-6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
-
-7. Aplicaciones de terceros
-
-7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
-
-7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
-
-7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
-
-Uso de las API de Google
-
-8.1 API de Google
-
-8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
-
-8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
-
-9. Finalización del Contrato de licencia
-
-9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
-
-9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
-
-9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
-
-9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
-(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
-(B) cuando Google emita una versión final del Android SDK.
-
-9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
-
-10. EXENCIONES DE RESPONSABILIDAD
-
-10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
-
-10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
-
-10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
-
-11. LIMITACIÓN DE RESPONSABILIDADES
-
-11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO.
-
-12. Indemnización
-
-12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia.
-
-13. Cambios en el Contrato de licencia
-
-13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar.
-
-14. Términos legales generales
-
-14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar.
-
-14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales.
-
-14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables.
-
-14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
-
-14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
-
-14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
-
-14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">He leído y acepto los términos y las condiciones anteriores.</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  Esta página cuenta con enlaces a imágenes de dispositivos inalámbricos y describe
-  cómo aplicar una actualización inalámbrica a un dispositivo de forma manual. Este procedimiento puede ser útil
-  para recuperar dispositivos que hayan recibido actualizaciones inalámbricas por medio del Programa
-  Android Beta y no enciendan luego de instalada la aplicación.
-</p>
-
-<h2 id="install-ota">Instalar imágenes inalámbricas</h2>
-
-<p></p>
-
-<p>Para instalar un paquete inalámbrico en un dispositivo sigue estos pasos:</p>
-
-<ol>
-  <li>Descargar una imagen de dispositivo inalámbrico de la tabla que verás a continuación.</li>
-  <li>Reinicia el dispositivo en modo Recuperación. Para leer más información sobre cómo
-    aplicar este modo en dispositivos Nexus, visita la sección
-<a href="https://support.google.com/nexus/answer/4596836">Reset your Nexus
-      device to factory settings</a>.
-  </li>
-  <li>En el dispositivo, selecciona <strong>ADB sideload</strong>.</li>
-  <li>Conecta el dispositivo a una computadora con el entorno de desarrollo Android
-    cargado y la herramienta Android Debug Bridge (ADB) instalada.</li>
-  <li>Ejecuta el comando siguiente:
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">Imágenes inalámbricas de dispositivo</h2>
-
-<table>
-  <tr>
-    <th scope="col">Dispositivo</th>
-    <th scope="col">Descarga/sumas de comprobación</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/es/preview/download.jd b/docs/html-intl/intl/es/preview/download.jd
deleted file mode 100644
index 6fa9a6a..0000000
--- a/docs/html-intl/intl/es/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=Prueba en un dispositivo
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Antes de descargar e instalar los componentes del
-      Android Preview SDK, debe aceptar los términos y las
-      condiciones que se describen a continuación.</p>
-
-    <h2 class="norule">Términos y condiciones</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
-
-1. Introducción
-
-1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
-
-1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
-
-.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
-
-1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceptación del Contrato de licencia
-
-2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
-
-2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
-
-2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
-
-2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
-
-3. Licencia de la Preview de Google
-
-3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
-
-3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
-
-3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
-
-3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
-
-3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
-
-3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
-
-3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
-
-3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
-
-4. Uso que usted realiza de la Preview
-
-4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
-
-4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
-
-4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
-
-4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
-
-4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo.
-
-4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
-
-4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
-
-5. Sus credenciales de desarrollador
-
-5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
-
-6. Privacidad e información
-
-6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
-
-6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
-
-7. Aplicaciones de terceros
-
-7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
-
-7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
-
-7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
-
-Uso de las API de Google
-
-8.1 API de Google
-
-8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
-
-8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
-
-9. Finalización del Contrato de licencia
-
-9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
-
-9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
-
-9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
-
-9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
-(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
-(B) cuando Google emita una versión final del Android SDK.
-
-9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
-
-10. EXENCIONES DE RESPONSABILIDAD
-
-10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
-
-10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
-
-10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
-
-11. LIMITACIÓN DE RESPONSABILIDADES
-
-11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO.
-
-12. Indemnización
-
-12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia.
-
-13. Cambios en el Contrato de licencia
-
-13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar.
-
-14. Términos legales generales
-
-14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar.
-
-14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales.
-
-14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables.
-
-14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
-
-14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
-
-14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
-
-14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">He leído y acepto los términos y las condiciones anteriores.</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>En este documento</h2>
-      <ol>
-        <li><a href="#device-preview">Configurar un dispositivo de hardware</a>
-          <ol>
-            <li><a href="#ota">Obtener actualizaciones inalámbricas</a></li>
-            <li><a href="#flash">Actualizar manualmente un dispositivo</a></li>
-            <li><a href="#revertDevice">Desinstalar</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Configurar un emulador</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Para ejecutar y probar tu aplicación en la plataforma nueva necesitas configurar el entorno de ejecución
-  de Android N. Puedes llevar a cabo la configuración de las siguientes maneras:
-</p>
-
-<ul>
-  <li>Instalar Android N en un dispositivo de hardware compatible o</li>
-  <li>Configurar un emulador de Android a través de la ejecución de Android N</li>
-</ul>
-
-<p>
-  Si deseas un entorno para realizarle pruebas básicas de compatibilidad a tu aplicación en la
-  plataforma nueva, todo lo que necesitas es tu APK actual y un dispositivo de hardware o
-  emulador. No necesitas actualizar todo tu entorno de desarrollo
-  para realizar pruebas básicas.
-</p>
-
-<p>
-  Si deseas modificar tu aplicación para seleccionar como destino Android N o usar las API nuevas de Android N,
-   debes configurar un entorno de desarrollo actualizado y que seas compatible con
-  Android N. En <a href="{@docRoot}preview/setup-sdk.html">Configuración para el desarrollo de
-  Android N</a> se ofrece información detallada.
-</p>
-
-
-<h2 id="device-preview">Configurar un dispositivo de hardware</h2>
-
-<p>
-  En N Developer Preview se ofrecen actualizaciones del sistema para una variedad de dispositivos de hardware
-que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta tablets y TV.
-</p>
-
-<p>
-  Si tienes acceso a un dispositivo compatible, puedes actualizarlo a una compilación "milestone" de la Developer
-  Preview de las siguientes maneras:
-</p>
-
-<ul>
-  <li><strong>Registrar el dispositivo en actualizaciones automáticas inalámbricas</strong> a través del
-  <a href="https://g.co/androidbeta">Programa Android Beta</a>. Una vez registrado, tu dispositivo recibirá actualizaciones inalámbricas periódicas
-  de todas las compilaciones "milestone" en la N Developer Preview. Se recomienda este
-  enfoque porque te permite realizar una transición sin inconvenientes desde tu entorno
-  actual a través de varios lanzamientos de la N Developer Preview.</li>
-  <li><strong>Descargar una imagen de sistema de la Developer Preview y actualizar el dispositivo de manera manual</strong>.
-  Las actualizaciones inalámbricas no se proporcionan de manera automática para los dispositivos que actualizas de manera manual, pero
-  puedes registrar esos dispositivos en el Programa de Android Beta para obtener actualizaciones inalámbricas. </li>
-</ul>
-
-<h3 id="ota">Registrar el dispositivo en actualizaciones automáticas inalámbricas</h3>
-
-<p>
-  Si tienes acceso a un dispositivo compatible (consulta la lista en la tabla de
-  descargas), puedes recibir actualizaciones inalámbricas para versiones de la Android Preview
-  registrando el dispositivo en el <a href="https://g.co/androidbeta">Programa de Android Beta</a>. Estas actualizaciones
-  se descargan de manera automática y actualizarán tu dispositivo como otras actualizaciones
-  oficiales del sistema.
-</p>
-
-<p>
-  Puedes dar de baja el dispositivo en cualquier momento. El dispositivo recibirá una actualización inalámbrica
-  para la versión de producción más reciente de Android que se encuentre disponible para ese dispositivo
-  (por ejemplo, Android 6.0 Marshmallow). La actualización requiere un restablecimiento
-  completo del dispositivo, por lo que se eliminarán los datos del usuario del dispositivo. No te olvides de crear una <strong>copia
-  de seguridad de los datos importantes</strong> antes de dar de baja un dispositivo.
-</p>
-
-<p>
-  Para obtener más información y para registrar tu dispositivo, consulta
-  el sitio web del <a href="https://g.co/androidbeta">Programa de Android Beta</a> .
-</p>
-
-<p class="note"><strong>Nota:</strong>
-  Dar de baja el registro requiere un restablecimiento completo del dispositivo. Crea una copia de seguridad
-  de los datos importantes.
-</p>
-
-<h3 id="flash">Actualizar un dispositivo de forma manual</h3>
-
-<p>
-  En cualquier momento, puedes descargar la última imagen de sistema de la Developer Preview y
-  actualizarla de forma manual en tu dispositivo. Consulta la tabla siguiente para descargar la imagen
-  de sistema para tu dispositivo de prueba. La actualización manual de un dispositivo es útil si necesitas
-  un control preciso del entorno de prueba o necesitas reinstalar con frecuencia,
-  como en pruebas automatizadas.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  El proceso de instalación de una imagen de sistema en un dispositivo <strong>elimina todos los datos del
-  dispositivo</strong>, por lo tanto, es recomendable crear una copia de seguridad de los datos.
-</p>
-
-<p>
-  Después de que crees una copia de seguridad y descargues la siguiente imagen de sistema que
-  se adecua a tu dispositivo, sigue las instrucciones que se describen en <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
-  para actualizar la imagen en tu dispositivo de manera manual.
-</p>
-
-<p>
-  Las imágenes de sistema actualizadas de manera manual <strong>no
-  reciben actualizaciones inalámbricas de forma automática</strong> para posteriores compilaciones "milestone"
-  de la Developer Preview. No te olvides de mantener tu entorno actualizado y actualiza una
-  imagen de sistema nueva en cada versión "milestone" de la Developer Preview.
-</p>
-
-<p>
-  Si decides que quieres obtener actualizaciones inalámbricas después de actualizar un dispositivo de manera manual,
-  lo único que debes hacer es registrar el dispositivo en el <a href="https://g.co/androidbeta">Programa
-  de Android Beta</a>. Puedes registrar el dispositivo en cualquier momento para recibir la siguiente actualización
-  de la Preview de manera inalámbrica.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Dispositivo</th>
-    <th scope="col">Descarga/sumas de comprobación</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Desinstalar la Preview de un dispositivo</h3>
-
-<p>
-  Si quieres desinstalar la muestra desde un dispositivo, puedes hacerlo de las
-  siguientes maneras: </p>
-  <ul>
-    <li><strong>Obtener una imagen de sistema con las especificaciones de fábrica</strong> y luego actualízala de manera manual
-    para el dispositivo.
-      <ul>
-          <li>Para <strong>los dispositivos Nexus y Pixel C</strong>, consulta
-        la página <a href="http://developers.google.com/android/nexus/images">Imágenes de fábrica
-        para dispositivos Nexus </a>para descargas. </li>
-        <li>Para <strong>otros dispositivos</strong>, comunícate directamente con el fabricante del dispositivo
-. Como alternativa, si el dispositivo es compatible con
-        el Programa de Android Beta, puedes registrar el dispositivo en el
-        programa y luego darlo de baja (consulta a continuación).</li>
-      </ul>
-    </li>
-    <li><strong>Dar de baja el dispositivo del Programa Android Beta</strong>. Si el
-    dispositivo se registra en el <a href="https://g.co/androidbeta">Programa de Android
-    Beta</a>, sin importar el dispositivo, puedes darlo de baja desde el programa fácilmente.
-  <p>
-    El dispositivo recibirá una actualización inalámbricas para la versión de producción más reciente de
-    Android que se encuentre disponible para ese dispositivo  (por ejemplo, Android 6.0 Marshmallow).
-    La actualización requiere un restablecimiento completo del dispositivo, por lo que se eliminarán los datos del usuario del
-    dispositivo. No te olvides de crear una <strong>copia de seguridad de los datos importantes</strong> antes
-    de dar de baja un dispositivo.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Nota:</strong>
-  Desinstalar una imagen de sistema de la Developer Preview antes
-  del final del programa requiere un restablecimiento completo del dispositivo y elimina todos los datos del usuario
-  que se encuentren en él.
-</p>
-
-
-<h2 id="setupAVD">Configurar un emulador</h2>
-
-<p>Para usar el emulador de Android para la ejecución de la Android N Preview, necesitas
-descargar el Android N Preview SDK y crear un dispositivo virtual para el
-emulador.</p>
-
-<p>Primero, descarga el Android N Preview SDK de la siguiente manera (si
-ya la obtuviste durante <a href="{@docRoot}preview/setup-sdk.html">la configuración
-para desarrollar Android N</a>, puedes omitir esta parte):
-
-<ol>
-  <li>En Android Studio, abre el cuadro de diálogo de configuración
-    (<strong>File &gt; Settings</strong> en Windows y Linux, o
-    <strong>Android Studio &gt; Preferences</strong> en Mac). En el panel
-    izquierdo, selecciona <strong>Appearance &amp; Behavior &gt;
-  System Settings &gt; Android SDK</strong>.
-
-  <li>Haz clic en la pestaña <strong>SDK platforms</strong> y luego selecciona la casilla de verificación
-  <strong>Android N Preview</strong>.</li>
-
-  <li>Haz clic en la pestaña <strong>SDK Tools</strong> y luego selecciona las casillas de verificación
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong> y
-    <strong>Android SDK Tools</strong>.
-  </li>
-
-  <li>Haz clic en <strong>OK</strong> y acepta los contratos
-    de licencia para instalar cualquier paquete.
-  </li>
-</ol>
-
-<p>Ahora debes tener <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong>, y <strong>SDK Tools
-25.0.9</strong>. Si no actualizas las SDK Tools a 25.0.9, luego no podrás
-ejecutar las imágenes de sistema x86_64 para Android N.</p>
-
-
-<p>Ahora crea un dispositivo virtual con la imagen de sistema de Android N:</p>
-
-<ol>
-  <li>Abre el Administrador de AVD seleccionando <strong>Tools &gt; Android &gt;
-    AVD Manager</strong>.</li>
-  <li>Haz clic en <strong>Create Virtual Device</strong>.</li>
-  <li>Selecciona un dispositivo como Nexus 5X, Nexus 6P, Nexus 9, o Android TV,
-    luego haz clic en <strong>Next</strong>.</li>
-  <li>Selecciona la imagen de sistema <strong>N</strong> (con la ABI
-    <strong>x86</strong>), luego haz clic en <strong>Next</strong>.
-    (De momento, solo las imágenes de sistema x86 son compatibles con el emulador de Android
-para la Android N Preview).
-  <li>Completa el resto de la configuración AVD y haz clic en
-    <strong>Finish</strong>.</li>
-</ol>
-
-<p>Ahora puedes ejecutar el emulador de Android con el AVD de la Android N Preview.</p>
-
-<p>
-A fin de garantizar la mejor experiencia en el emulador de Android, verifica que estás utilizando
-Android Studio 2.1 o una versión superior, compatible con el <a href="http://tools.android.com/tech-docs/emulator">emulador de Android 2.0</a>,
-cuyo rendimiento es mayor si se lo compara con el emulador utilizado en
-Android Studio 1.5.</p>
-
-<p>Para obtener más información sobre la creación de dispositivos virtuales, consulta <a href="{@docRoot}tools/devices/index.html">Administración de dispositivos virtuales</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/es/preview/features/afw.jd b/docs/html-intl/intl/es/preview/features/afw.jd
deleted file mode 100644
index 5e550a6..0000000
--- a/docs/html-intl/intl/es/preview/features/afw.jd
+++ /dev/null
@@ -1,552 +0,0 @@
-page.title=Actualizaciones de Android for Work
-page.metaDescription=Nuevas API y funciones de Android for Work en Android N.
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>En este documento</h2>
-      <ol>
-        <li><a href="#qr">Provisión de código QR
-                </a></li>
-
-        <li><a href="#sec-challenge">Comprobación de seguridad para perfiles de trabajo
-                </a></li>
-
-        <li><a href="#suspend">Inhabilitar acceso a aplicaciones
-                </a></li>
-
-        <li><a href="#toggle-work">Activar o desactivar el modo de trabajo
-                </a></li>
-
-        <li><a href="#always-on-vpn">VPN siempre visibles
-                </a></li>
-
-        <li><a href="#contacts">Integración de contactos con el perfil de trabajo
-                </a></li>
-
-        <li><a href="#remote-reboot">Reinicio remoto
-                </a></li>
-
-        <li><a href="#disable-roaming">Inhabilitar roaming de datos
-                </a></li>
-
-        <li><a href="#process-logging">Registros de procesos empresariales
-                </a></li>
-
-        <li><a href="#bug-reports">Informes de errores remotos
-                </a></li>
-
-        <li><a href="#remove-cert">Quitar un certificado de cliente
-                </a></li>
-
-        <li><a href="#grant-cert-on-install">Otorgar acceso a certificado de cliente
-                en la instalación</a></li>
-
-        <li><a href="#ui-policy">Transparencia de la política de IU del sistema
-                </a></li>
-
-        <li><a href="#restrictions-mgmt">Mejoras en la administración de restricciones de aplicaciones
-                </a></li>
-
-        <li><a href="#location-off">Interruptor de desactivación de los servicios de ubicación
-                </a></li>
-
-        <li><a href="#custom-provisioning">Provisión personalizada
-                </a></li>
-
-        <li><a href="#multi-wifi-ca">Múltiples certificados de CA de Wi-Fi
-                </a></li>
-
-        <li><a href="#custom-lock">Mensaje personalizado en la pantalla bloqueada
-                </a></li>
-
-        <li><a href="#work-connectionservice">ConnectionService del perfil de trabajo
-                </a></li>
-
-        <li><a href="#lock-wp">Bloquear fondo de pantalla
-                </a></li>
-
-        <li><a href="#lock-user-icon">Bloquear ícono de usuario
-                </a></li>
-
-        <li><a href="#health-monitoring">Control del estado del dispositivo
-                </a></li>
-
-      </ol>
-
-    <h2>Consulta también</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK
-            </a></li>
-    </ul>
-  </div>
-</div>
-
-<p>En este documento, se describen las nuevas funciones de Android for Work que se proporcionan en
-Android N.</p>
-
-<h2 id="qr">Provisión de código QR</h2>
-
-<p>
-  Android for Work ahora es compatible con la utilización de códigos QR para aprovisionar dispositivos
- de responsabilidad corporativa. Gracias al asistente de configuración, ahora puedes escanear un código QR para aprovisionar
- el dispositivo.
-</p>
-
-<h2 id="sec-challenge">Comprobación de seguridad para perfiles de trabajo</h2>
-
-<p>
-  Los propietarios de perfiles pueden solicitar que los usuarios especifiquen una comprobación de seguridad para las aplicaciones
- que se ejecutan en el perfil de trabajo. Dicha comprobación se muestra en el sistema cuando el
- usuario intenta abrir cualquier aplicación de trabajo. Si el usuario completa con éxito la
- comprobación de seguridad, el sistema desbloquea el perfil de trabajo y lo descifra
- si es necesario.
-</p>
-
-<p>
-  Si el propietario de un perfil envía una intent {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD}, el
- sistema le pide al usuario que configure una comprobación de seguridad. El propietario del perfil también puede
- enviar una intent <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code>
- para que el usuario establezca un bloqueo de dispositivo.
-</p>
-
-<p>
-  Los propietarios de perfiles pueden elegir establecer las políticas de contraseña para la comprobación del perfil de trabajo de modo que sean
- diferentes de aquellas para las contraseñas de otros dispositivos. Por ejemplo, la
- longitud mínima para la respuesta de comprobación del dispositivo puede ser diferente de la
- longitud necesaria para otras contraseñas. Los propietarios de perfiles establecen las políticas de
- comprobación mediante los métodos {@link android.app.admin.DevicePolicyManager}
- comunes, como por ejemplo, {@link
-  android.app.admin.DevicePolicyManager#setPasswordQuality
-  setPasswordQuality()} y {@link
-  android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-  setPasswordMinimumLength()}. El propietario del perfil también puede establecer el bloqueo del dispositivo mediante
- la utilización de la instancia de{@link android.app.admin.DevicePolicyManager} devuelta
- por el nuevo método <code>DevicePolicyManager.getParentProfileInstance()</code>
-. Además, los propietarios de perfiles pueden personalizar la pantalla de credenciales para
- la comprobación de trabajo mediante la utilización de los nuevos métodos de la clase{@link android.app.admin.DevicePolicyManager}
- <code>setOrganizationColor()</code> y
-  <code>setOrganizationName()</code>.
-</p>
-
-<p>
-  Para obtener detalles sobre los nuevos métodos y constantes, consulta la página de referencia de
-  <code>DevicePolicyManager</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK</a>.
-</p>
-
-<h2 id="suspend">Inhabilitar acceso a aplicaciones</h2>
-
-<p>
-  Los propietarios de perfiles y dispositivos pueden suspender temporariamente el acceso a los paquetes
- mediante una llamada al nuevo método <code>DevicePolicyManager.setPackagesSuspended()</code>
-. Los propietarios pueden utilizar el mismo método para volver a habilitar esos paquetes.
-</p>
-
-<p>
-  Mientras un paquete está suspendido, este no puede comenzar actividades, se suprimen las notificaciones al
- paquete y se oculta la entrada de la aplicación en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a>.
-  Los paquetes suspendidos no aparecen en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a> y
- no pueden mostrar diálogos (incluidos avisos y snackbars). Además, no pueden reproducir
- audio ni hacer vibrar el dispositivo.
-</p>
-
-<p>
-  Los lanzadores deben aplicar una IU distintiva para las aplicaciones suspendidas a fin de mostrar que las
- aplicaciones no están actualmente disponibles; por ejemplo, el ícono de la aplicación puede aparecer en color
- gris. Los lanzadores pueden averiguar si una aplicación está suspendida llamando al nuevo método
-  <code>DevicePolicyManager.getPackageSuspended()</code>.
-</p>
-
-<h2 id="toggle-work">Activar o desactivar el modo de trabajo</h2>
-
-<p>
-  En dispositivos de perfil doble, los usuarios pueden activar o desactivar el modo de trabajo. Mientras este último está
- desactivado, el perfil administrado se encuentra inactivo temporariamente. Se inhabilitan
- todas las aplicaciones del perfil de trabajo, la sincronización en segundo plano y las notificaciones, incluida
- la aplicación del propietario del perfil. Mientras el perfil de trabajo está deshabilitado, en el sistema
- se muestra un ícono de estado persistente para recordarles a los usuarios que no pueden iniciar aplicaciones
- de trabajo. El launcher del sistema indica que no se puede acceder a aplicaciones ni widgets
- de trabajo.
-</p>
-
-<h2 id="always-on-vpn">VPN siempre visibles</h2>
-
-<p>
-  Los propietarios de dispositivos y perfiles pueden solicitar que las aplicaciones de trabajo siempre se conecten a la red
- a través de una VPN especificada. Si los propietarios establecen este requisito, el
- dispositivo inicia automáticamente esa VPN en el inicio.
-</p>
-
-<p>
-  Los propietarios pueden requerir el uso de una VPN llamando al nuevo método
- <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code>. Para averiguar
- si el propietario ha establecido un requisito de VPN, llama al nuevo método
-  <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code>.
-</p>
-
-<p>
-  Debido a que los servicios de VPN pueden enlazarse directamente a través del sistema sin interacción con aplicaciones,
- los clientes de VPN deben administrar nuevos puntos de entrada para VPN siempre visibles. Como antes, puedes
- encontrar servicios activos mediante la utilización de un filtro de intent que coincida con la acción
- {@link android.net.VpnService android.net.VpnService}.
-</p>
-
-<p>
-  Para configurar manualmente un cliente de VPN que esté siempre visible y que implemente {@link
-  android.net.VpnService}, los usuarios deben ir a <strong>Settings &gt; More &gt;
- pantalla VPN</strong>.
-</p>
-
-<h2 id="contacts">Integración de contactos con el perfil de trabajo</h2>
-
-<p>
-  Los propietarios de perfiles pueden permitir la búsqueda local y la búsqueda en directorio de los contactos de trabajo
- a partir del usuario principal. Por ejemplo, un usuario puede acceder a contactos personales y laborales del directorio
- desde el teléfono personal o la aplicación de contactos (si
- así lo permite el administrador del perfil).
-</p>
-
-<p>
-  Los desarrolladores que aprovechan el proveedor de contactos pueden utilizar la API de contactos empresariales
- para acceder a las entradas del directorio del perfil de trabajo desde el usuario principal si así lo permiten
- las siguientes políticas:
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  Los propietarios de perfiles pueden controlar la visibilidad de los contactos laborales en el usuario
- principal por medio de los nuevos métodos a continuación:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">Reinicio remoto</h2>
-
-<p>
-  Los propietarios pueden reiniciar sus dispositivos de forma remota. En algunos casos, no se puede acceder al botón de encendido de los dispositivos implementados en
- lugares públicos dentro de recintos. Si se debe
- reiniciar un dispositivo, los administradores pueden hacerlo utilizando el nuevo método
-  <code>DevicePolicyManager.reboot()</code>.
-</p>
-
-<h2 id="disable-roaming">Inhabilitar roaming de datos</h2>
-
-<p>
-  Los propietarios de dispositivos pueden inhabilitar el roaming de datos mediante la nueva restricción de usuario de {@link
-  android.os.UserManager} denominada <code>DISALLOW_DATA_ROAMING</code>.
-</p>
-
-<h2 id="process-logging">Registros de procesos empresariales</h2>
-
-<p>
-  Los propietarios de dispositivos pueden identificar actividades sospechosas mediante un rastreo remoto de la actividad del
- dispositivo, incluidos inicios de aplicaciones, actividad adb y desbloqueos de pantalla. Los registros de
- procesos no requieren del consentimiento del usuario. Para recuperar registros, los propietarios de dispositivos habilitan
- los registros de dispositivos mediante <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
-</p>
-
-<p>
-  Entre los cambios en la API, se incluyen los siguientes:
-</p>
-
-<ul>
-
-  <li>
-    La nueva clase <code>android.app.admin.SecurityLog</code> y sus
- métodos
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">Informes de errores remotos</h2>
-
-<p>
-  Los propietarios de dispositivos pueden activar y recuperar de forma remota un informe de errores que contenga un
- archivo de descarga sobre el estado del dispositivo, lo que permite llevar a cabo una investigación forense de un
- incidente conocido o un dispositivo afectado. Debido a la naturaleza detallada del informe de errores,
- se requiere el consentimiento del usuario.
-</p>
-
-<p>
-  Android N incluye los siguientes agregados de API para ofrecer compatibilidad con esta función. Para obtener
- detalles, consulte la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK
-</a>.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">Quitar un certificado de cliente</h2>
-
-<p>
-  Los propietarios de perfiles y dispositivos ahora pueden quitar certificados de cliente que se
- instalaron a través de {@link android.app.admin.DevicePolicyManager#installKeyPair
-  installKeyPair()} llamando al nuevo método
-  <code>DevicePolicyManager.removeKeyPair()</code>.
-</p>
-
-<h2 id="grant-cert-on-install">Otorgar acceso a certificado de cliente
- en la instalación</h2>
-
-<p>
-  Si un propietario de perfil o dispositivo otorga a una aplicación de terceros la capacidad de
- administrar certificados, dicha aplicación puede acceder por sí sola a los certificados que
- instala sin intervención alguna por parte del propietario.
-</p>
-
-<p>
-  La API existente para administrar certificados se extiende para incluir lo siguiente:
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">Transparencia de la política de IU del sistema</h2>
-
-<p>
-  Las políticas que afectan la experiencia del usuario o restringen las configuraciones del usuario se divulgan
- en su totalidad al usuario, y los propietarios de perfiles y dispositivos pueden atribuir la
- política al departamento de TI de la empresa. Además de un mensaje “Action
- not allowed” consistente en Settings, los administradores de TI pueden configurar un
- mensaje de soporte específico para la organización en la configuración del dispositivo con los nuevos
- métodos{@link android.app.admin.DevicePolicyManager} a continuación:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">Mejoras en la administración de las restricciones de aplicaciones</h2>
-
-<p>
-  El propietario del dispositivo o perfil puede habilitar otra aplicación para que administre las restricciones de
- aplicaciones mediante el nuevo método
-  <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
-. La aplicación nominada puede controlar si se otorgó este permiso
- llamando a
-  <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
-</p>
-
-<p>
-  Una aplicación nominada para administrar restricciones de aplicaciones puede llamar a {@link
-  android.app.admin.DevicePolicyManager#setApplicationRestrictions
-  setApplicationRestrictions()} y {@link
-  android.app.admin.DevicePolicyManager#getApplicationRestrictions
-  getApplicationRestrictions()} para cualquier paquete dentro de ese usuario o perfil.
-</p>
-
-<h2 id="location-off">Interruptor de desactivación de los servicios de ubicación</h2>
-
-<p>
-  Los usuarios pueden inhabilitar los permisos de ubicación para las aplicaciones de trabajo mientras continúan
- accediendo a información sobre ubicación en sus aplicaciones personales. Mediante un interruptor independiente de acceso
- a información de ubicación en Location Settings, los usuarios pueden denegar las actualizaciones de ubicación o
- las consultas de última ubicación para las aplicaciones que se ejecutan en el perfil de trabajo.
-</p>
-
-<p>
-  Gracias al interruptor de desactivación de servicios de ubicación de nivel superior, se inhabilita el acceso a este tipo de información para
- el perfil principal y el perfil administrado.
-</p>
-
-<h2 id="custom-provisioning">Aprovisionamiento personalizado</h2>
-
-<p>
-  En una aplicación se pueden personalizar los flujos de provisión
- del propietario del perfil y del propietario del dispositivo con logos y colores corporativos.
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    Permite personalizar el color del flujo.
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    Permite personalizar el flujo con un logo corporativo.
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">Múltiples certificados de CA de Wi-Fi</h2>
-
-<p>
-  Los propietarios de perfiles y dispositivos pueden configurar múltiples certificados de CA para una configuración
- de Wi-Fi determinada. Cuando las redes de Wi-Fi corporativas tienen CA independientes para
- diferentes puntos de acceso con el mismo SSID, los administradores de TI pueden incluir todas las
- CA relevantes en la configuración Wi-Fi utilizando el nuevo método
-  <code>setCaCertificates()</code>.
-</p>
-
-<p>
-  Las API que se agregaron son las siguientes:
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">Mensaje personalizado en la pantalla bloqueada</h2>
-
-<p>
-  Los propietarios de dispositivos pueden proporcionar información de propietario para que aparezca en la pantalla bloqueada.
-  Esta información prevalece sobre el mensaje de la pantalla bloqueada del usuario (si se configuró
- uno). Los nuevos métodos {@link android.app.admin.DevicePolicyManager} son los siguientes:
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">ConnectionService del perfil de trabajo</h2>
-
-<p>
-  Los propietarios de perfiles pueden especificar una aplicación de teléfono de trabajo que utilice un
- {@link android.telecom.ConnectionService} específico del trabajo para el backend
- de llamadas (cuentas de llamadas). El teléfono de trabajo lleva únicamente un registro de llamadas de trabajo
- y depende solo de contactos laborales. Los usuarios tienen una experiencia de IU
- de llamada entrante consistente independientemente de la aplicación de marcación. Las llamadas laborales que ingresan en las
- cuentas de llamadas de trabajo se distinguen de las llamadas personales que ingresan en
- las cuentas de llamadas personales.
-</p>
-
-<p>
-  El teléfono debe controlar el nuevo marcador
-  <code>android.telecom.Call.PROPERTY_WORK_CALL</code> para determinar si una llamada es
- de tipo laboral. Si se trata de una llamada laboral, el teléfono debe indicarlo
-, por ejemplo, mediante el agregado de una insignia de trabajo.
-</p>
-
-<h2 id="lock-wp">Bloquear fondo de pantalla</h2>
-
-<p>
-  Mediante una nueva restricción de usuario (<code>DISALLOW_SET_WALLPAPER</code>), se evita que el
- usuario modifique el fondo de pantalla. Los propietarios de dispositivos o perfiles aún pueden
- modificar el fondo de pantalla. Sin embargo, solo pueden hacerlo para el
- usuario o perfil que controlan. Por ejemplo, el propietario de un perfil no puede modificar el
- fondo de pantalla del usuario primario,
- pero sí pueden hacerlo el propietario de un dispositivo o el propietario de un perfil en el perfil principal. El propietario de un dispositivo o perfil que desea modificar el
- fondo de pantalla debe controlar si el usuario o perfil que administra posee un
- fondo de pantalla ({@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}) y si puede modificarlo (con el
- nuevo método <code>WallpaperManager.isWallpaperSettingAllowed()</code>).
-</p>
-
-<h2 id="lock-user-icon">Bloquear ícono de usuario</h2>
-
-<p>
-  Mediante una nueva restricción de usuario (<code>DISALLOW_SET_USER_ICON</code>), se evita que el
- usuario modifique el ícono de usuario. El propietario del dispositivo o del perfil del usuario
- aún puede modificar el ícono. Sin embargo, un propietario de perfil solo puede modificar el ícono
- de usuario del perfil que controla.
-</p>
-
-<h2 id="health-monitoring">Control del estado del dispositivo</h2>
-
-<p>
-  El propietario de un perfil o dispositivo puede usar la nueva interfaz
-  <code>HardwarePropertiesManager</code> para recuperar información
- sobre el estado del dispositivo, como por ejemplo, las temperaturas de CPU o GPU y el uso de la CPU. La nueva interfaz
- de control es especialmente útil para controlar dispositivos sin supervisión
- que se ejecutan en una ubicación remota.
-</p>
diff --git a/docs/html-intl/intl/es/preview/license.jd b/docs/html-intl/intl/es/preview/license.jd
deleted file mode 100644
index 52643bc..0000000
--- a/docs/html-intl/intl/es/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=Contrato de licencia
-
-@jd:body
-
-<p>
-Para comenzar a usar la Android SDK Preview, debe aceptar los términos y las condiciones que se describen a continuación.
-Como se describe a continuación, tenga en cuenta que esta es una versión preliminar del Android SDK, que está sujeta a cambios y que usted utiliza bajo su cuenta y riesgo.  La Android SDK Preview no es una versión estable y puede contener errores y defectos que pueden provocar daños graves a sus sistemas informáticos, dispositivos y datos.
-</p>
-
-<p>
-Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. Introducción
-
-1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
-
-1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
-
-.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
-
-1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceptación del Contrato de licencia
-
-2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
-
-2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
-
-2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
-
-2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
-
-3. Licencia de la Preview de Google
-
-3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
-
-3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
-
-3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
-
-3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
-
-3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
-
-3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
-
-3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
-
-3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
-
-4. Uso que usted realiza de la Preview
-
-4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
-
-4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
-
-4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
-
-4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
-
-4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo.
-
-4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
-
-4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
-
-5. Sus credenciales de desarrollador
-
-5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
-
-6. Privacidad e información
-
-6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
-
-6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
-
-7. Aplicaciones de terceros
-
-7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
-
-7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
-
-7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
-
-8. Uso de las API de Google
-
-8.1 API de Google
-
-8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
-
-8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
-
-9. Finalización del Contrato de licencia
-
-9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
-
-9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
-
-9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
-
-9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
-(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
-(B) cuando Google emita una versión final del Android SDK.
-
-9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
-
-10. EXENCIONES DE RESPONSABILIDAD
-
-10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
-
-10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
-
-10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
-
-11. LIMITACIÓN DE RESPONSABILIDADES
-
-11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO.
-
-12. Indemnización
-
-12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia.
-
-13. Cambios en el Contrato de licencia
-
-13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar.
-
-14. Términos legales generales
-
-14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar.
-
-14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales.
-
-14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables.
-
-14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
-
-14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
-
-14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
-
-14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción.
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/es/preview/overview.jd b/docs/html-intl/intl/es/preview/overview.jd
deleted file mode 100644
index dc42175..0000000
--- a/docs/html-intl/intl/es/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Información general del programa
-page.metaDescription=Prepara tus aplicaciones para la próxima versión de Android.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Bienvenido a <strong>Android N Developer Preview</strong>, un programa en el que
-  se ofrece todo lo que necesitas a fin de probar y optimizar tus aplicaciones para la próxima
-  versión de Android. Es gratis, y puedes comenzar
-  descargando las herramientas de la N Developer Preview.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Imágenes de hardware y emuladores
-      </h5>
-
-      <p>
-        Ejecuta y prueba tus aplicaciones en varios dispositivos o en un emulador.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        El código de plataforma más reciente
-      </h5>
-
-      <p>
-        Durante el programa de muestra, ofreceremos varias actualizaciones mensuales. De esta manera, realizarás la prueba con los últimos cambios de la plataforma.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Prioridad para problemas de desarrolladores
-      </h5>
-
-      <p>
-        Durante las primeras semanas, daremos prioridad a los problemas informados por los desarrolladores;
-        por lo tanto, debes realizar las pruebas y enviar tus comentarios lo antes posible.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        Capacidades y comportamientos nuevos
-      </h5>
-
-      <p>
-        Comienza a trabajar temprano para admitir los comportamientos de la nueva plataforma y realizar desarrollos con nuevas funciones.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Actualizaciones inalámbricas
-      </h5>
-
-      <p>
-        Actualizaciones inalámbricas sin inconvenientes para dispositivos admitidos a través
-      del Programa de Android Beta. No se requieren actualizaciones.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Comentarios y soporte
-      </h5>
-
-      <p>
-        Infórmanos los problemas y envíanos comentarios a través de nuestro
-      <a href="{@docRoot}preview/bug">seguimiento de problemas</a>. Conéctate con otros
-        desarrolladores en la
-        <a href="{@docRoot}preview/dev-community">comunidad&nbsp;de desarrolladores de Android N</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">Escala de tiempo y actualizaciones</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  La N Developer Preview rige desde el 9 de marzo de 2016 hasta el lanzamiento público
-  de Android N para AOSP y OEM, previsto para el tercer trimestre de 2016.
-</p>
-
-<p>
-  En las versiones "milestone" del desarrollo, lanzaremos actualizaciones para tu entorno de pruebas y desarrollo.
- En general, podrás contar con una actualización por mes (intervalo de 4 a 6
-   semanas). A continuación, se muestran las versiones "milestone":
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (versión inicial, alpha);</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (actualización gradual, alpha);</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong> (actualización gradual, beta);</li>
-  <li><strong>Preview 4</strong> (API finales y SDK oficial, publicación en Google Play);</li>
-  <li><strong>Preview 5</strong> (imágenes de sistema casi definitivas para pruebas finales);</li>
-  <li><strong>Lanzamiento de la versión final</strong> para AOSP y el ecosistema.</li>
-</ul>
-
-<p>
-  En cada actualización se incluyen herramientas de SDK, imágenes de sistema de Preview, emuladores, documentación de referencia y diferencias de API.
-
-</p>
-
-<p>
-  En las primeras <strong>tres versiones "milestone" de Preview</strong>, se proporciona un <strong>entorno
-  de prueba y desarrollo tempranos</strong> que te permitirá identificar
-  problemas de compatibilidad en tus aplicaciones actuales y planificar tareas relacionadas con la migración o las funciones que se necesitan
-  para orientar la nueva plataforma. Este será el período de prioridad
-  en el cual nos enviarás tus comentarios sobre funciones y problemas de compatibilidad de API y archivos;
-  para hacerlo, usa el <a href="{@docRoot}preview/bug">sistema se seguimiento
-  de problemas.</a> Podrás contar con cambios en las API en estas actualizaciones.
-</p>
-
-<p>
-  En <strong>Preview 4 y 5</strong>, tendrás acceso a las <strong>API y al SDK finales
-  de Android N</strong> para tareas de desarrollo, y también a imágenes de sistema casi definitivas
-  para poner a prueba comportamientos y funciones del sistema. Durante este período, Android N ofrecerá un nivel
-  de API estándar. Puedes iniciar la prueba de compatibilidad de tus aplicaciones
-  heredadas y optimizar el código nuevo en el que se usen las API o funciones de Android N.
-</p>
-
-<p>
-  A su vez, a partir de Preview 4, podrás <strong>publicar aplicaciones en
-  dispositivos</strong> con Android N cuyo nivel de API sea el oficial (por ejemplo, dispositivos de
-  consumidores inscritos en el Programa de Android Beta). Puedes
-  realizar primero publicaciones en los canales alpha y beta de Google Play, para probar
-  tus aplicaciones con consumidores de Android Beta antes de proceder con la distribución a gran escala en la
-  tienda.
-</p>
-
-<p>
-  A medida que pruebas y desarrollas en Android N, te recomendamos que <strong>mantengas
-  tu entorno de desarrollo actualizado</strong> conforme se lanzan
-  las actualizaciones de Preview. Para facilitar el proceso, puedes registrar tus dispositivos de prueba en el
-  Programa de Android Beta y obtener <strong>actualizaciones inalámbricas</strong> en cada
-  versión "milestone". Como alternativa, habrá imágenes de Preview actualizadas disponibles que puedes
-  descargar y actualizar de manera manual.
-</p>
-
-<p>
-  Cuando haya actualizaciones de Preview disponibles, te informaremos a través del <a href="http://android-developers.blogspot.com/">blog para desarrolladores de Android</a>, de este sitio y
-  de la <a href="{@docRoot}preview/dev-community">Comunidad de desarrolladores de
-  Android N</a>.
-</p>
-
-
-<h2 id="preview_tools">¿Qué es la N Developer Preview?</h2>
-
-<p>
-  En la N Developer Preview se incluye todo lo que necesitas para probar tus aplicaciones
-  existentes con diferentes tamaños de pantalla, tecnologías de red, chipsets de CPU y GPU,
-  y arquitecturas de hardware.
-</p>
-
-<h3 id="sdk_tools">Herramientas del SDK</h3>
-
-<p>Puedes descargar todos estos componentes a través de SDK Manager en <a href="{@docRoot}studio/intro/update.html">Android Studio</a>:</p>
-
-<ul>
-  <li> <strong>SDK y herramientas</strong> de la N Developer Preview;
-  <li> <strong>imagen del sistema para el emulador</strong>de la N Developer Preview (32 y 64 bits);
-  <li> <strong>imagen del sistema para el emulador para Android TV</strong> (32 bits) de la N Developer Preview;
-  <li> bibliotecas de compatibilidad de la N Developer Preview (para nuevas plantillas de aplicaciones).
-</ul>
-
-<p>
-  Ofreceremos actualizaciones para estas herramientas de desarrollo en cada momento clave (versión "milestone") según sea necesario.
-</p>
-
-<h3 id="hardware_system_images">Imágenes de sistema de hardware</h3>
-
-<p>
-  En la N Developer Preview se incluyen, entre otras, imágenes de sistema del hardware de Nexus que puedes usar al
-  realizar pruebas y desarrollos en dispositivos físicos. Consulta la sección de <a href="{@docRoot}preview/download.html">imágenes de sistema</a> para encontrar la lista
-  completa de imágenes de hardware.
-</p>
-
-<p>
-  Ofreceremos imágenes de sistema actualizadas para estos dispositivos en cada versión "milestone". Puedes
-  descargar y actualizar manualmente las imágenes de sistema renovadas en tus dispositivos
-  de prueba con la frecuencia que desees. Esto resulta particularmente útil para entornos de prueba
-  automatizados en los cuales probablemente debas volver a actualizar tu dispositivo varias
-  veces.
-</p>
-
-<p class="note"><strong>Nota</strong>:
-  <strong>Los dispositivos actualizados de manera manual no recibirán actualizaciones inalámbricas</strong>, como en
-  la Preview del año pasado. Este año, podrás recibir actualizaciones inalámbricas registrando dispositivos en el
-  Programa de Android Beta. Consulta la sección siguiente para obtener información detallada.
-</p>
-
-<h3 id="android_beta">Actualizaciones inalámbricas a través del Programa de Android Beta</h3>
-
-<p>
-  Como novedad en Android N, se ofrece un programa de actualización inalámbrica que
-  proporciona las últimas actualizaciones de Android N directamente para dispositivos registrados
-  en él. Es gratuito y está pensado para quienes tengan
-  dispositivos compatibles registrados en sus cuentas de Google.
-</p>
-
-<p>
-  Para el registro, visita el sitio del <a href="https://g.co/androidbeta">Programa de Android
-  Beta</a>. En él,
-  verás todos los dispositivos registrados en tu cuenta que cumplen con los requisitos para registrarse
-  en el programa.
-</p>
-
-<ol>
-  <li> Selecciona los dispositivos para los que deseas recibir actualizaciones de Android N
-  <li> Haz clic en Registrar, lee y acepta las condiciones de servicio y luego haz clic en Aceptar
-</ol>
-
-<p>
-  Una vez que realices el registro, tu dispositivo recibirá pronto una actualización. En la mayoría de los casos,
-  no necesitarás restablecer por completo tus datos para la migración a Android N, pero
-  te recomendamos crear una copia de seguridad de los datos que no desees perder antes de
-  registrar el dispositivo.
-</p>
-
-<p>
-  A medida que tu dispositivo reciba actualizaciones, te recomendamos descargarlas e
-  instalarlas lo más pronto posible. Te convendrá mantenerte actualizado respecto de las
-  últimas modificaciones en la IU, el comportamiento, las API y las funciones del sistema.
-</p>
-
-<p>
-  Al finalizar la Developer Preview, tus dispositivos registrados
-  recibirán una actualización a la versión oficial de Android N.
-</p>
-
-<p>
-  Puedes dar de baja tus dispositivos del Programa de Android Beta en cualquier momento desde
-  el sitio de Android Beta. Antes de hacerlo, no te olvides de realizar una copia de respaldo de los datos
-  de tu dispositivo.
-</p>
-
-  <p class="note"><strong>Nota</strong>:
-  Cuando des de baja tu dispositivo, <strong>
-  se someterá a un restablecimiento de fábrica</strong> a través del que se cargará la última versión de
-  Android 6.0 Marshmallow (no necesariamente la versión
-  instalada antes del registro). Para garantizar que la instalación sea nueva, se borrarán
-  tus datos del dispositivo; entre otros, los contactos,
-  los mensajes y las fotos.
-</p>
-
-<h3 id="documentation_and_sample_code">Documentación y ejemplo de código</h3>
-
-<p>
-  Los siguientes recursos de documentación se encuentran disponibles en el sitio de Developer Preview y con ellos
-  podrás obtener información sobre Android&nbsp;N:
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Preparación para el desarrollo con
- Android N</a>: contiene
-  instrucciones paso a paso para comenzar.</li>
-  <li> En <a href="{@docRoot}preview/behavior-changes.html">Cambios en los
-  comportamientos</a> se indican áreas clave que debes probar.</li>
-  <li> Documentación de nuevas API, entre la que se incluye <a href="{@docRoot}preview/api-overview.html">Información general de API</a>, una <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia
-  de API</a> descargable
-  y guías exhaustivas para desarrolladores que muestran, por ejemplo, soporte
-  de múltiples ventanas, notificaciones integradas, soporte de múltiples configuraciones regionales y mucho más.
-  <li> <a href="{@docRoot}preview/samples.html">Ejemplo de código</a>, en el que se
-  demuestra la manera de admitir permisos y otras funciones nuevas.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Notas de la versión</a>
- sobre la versión actual de la N Developer Preview. Se incluyen notas sobre los cambios e informes
-  de diferencias.
-</ul>
-
-<h4 id="reference">Referencia de la API descargable</h4>
-
-<p>
-  Durante las actualizaciones de Preview, puedes descargar la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API más reciente
-  para la plataforma de Android N</a> en forma de
-  archivo .zip independiente. En esta descarga
-  también se incluye un informe de diferencias que te permite identificar cambios en la API en comparación con la
-  API 23 y la actualización anterior.
-</p>
-
-<p>
-  Cuando las API de Android N sean definitivas y se asigne el nivel de API oficial,
-  te proporcionaremos la referencia de la API en línea en <a href="https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Recursos de soporte
-</h3>
-
-<p>
-  A medida que realices pruebas y desarrollos con la N Developer Preview, recurre a los siguientes canales
-  para informar problemas y enviar comentarios.
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">El sistema de seguimiento de problemas
-    de la N Developer Preview</a> es el canal <strong>principal para comentarios.</strong> A través de él, puedes informar errores y
-    problemas de rendimiento, y enviar comentarios generales. También puedes buscar
-<a href="{@docRoot}preview/bugs">problemas conocidos</a> y
-    encontrar pasos para solucionarlos. Te mantendremos informado sobre tu problema durante el proceso de evaluación y
-    derivación al equipo de ingeniería de Android para su resolución. </li>
-  <li> La <a href="{@docRoot}preview/dev-community">comunidad de desarrolladores de Android N</a> es
-    una comunidad de Google+ en la que puedes <strong>conectarte con otros desarrolladores</strong> que trabajen con
-    Android N. Puedes compartir observaciones o ideas, o encontrar respuestas a
-    preguntas acerca de Android N. Moderaremos la comunidad y proporcionaremos respuestas y
-    orientación según sea necesario.</li>
-</ul>
-
-<h3 id="targeting">Orientación, API de la Preview y publicación</h3>
-
-<p>
-  En la N Developer Preview se proporciona un sistema exclusivo para desarrollo y una
-  biblioteca de Android <strong>cuyo nivel de API no es estándar</strong>. Si deseas
-  no incluir comportamientos de compatibilidad para probar tu aplicación (un proceso muy
-  recomendado), puedes orientar la versión Android N Preview fijando el valor
-  de <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> de tu aplicación
-  en <code>“N”</code>.
-</p>
-
-<p>
-  Android N Developer Preview ofrece las <strong>API de Preview</strong>
-  , que no serán oficiales hasta el lanzamiento de la versión definitiva de SDK,
-  actualmente previsto para el tercer trimestre de 2016. Esto significa que podrás
-  <strong>contar con cambios menores en las API</strong> conforme pase el tiempo, en especial durante
-  las primeras semanas del programa. Te proporcionaremos un resumen de cambios con
-  cada actualización de Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Nota</strong>: Aunque las API de Preview pueden modificarse, los comportamientos del sistema
-  subyacente permanecen estables y disponibles para cualquier prueba
-  inmediata.
-</p>
-
-<p>
-  Google Play <strong>evita la publicación de aplicaciones orientadas a la N Developer
-  Preview</strong>. Cuando esté disponible el SDK definitivo de Android N, podrás
-  apuntar hacia el nivel de API oficial de Android N y publicar tu aplicación en Google
-  Play a través de los canales para versiones alpha y beta. Mientras tanto, si deseas
-  distribuir una aplicación orientada a Android N para testers, puedes hacerlo por correo electrónico o
-  mediante descarga directa desde tu sitio.
-</p>
-
-<p>
-  Cuando se lance la versión completa de Android N para AOSP y OEM, evento previsto para el tercer trimestre de 2016,
-  podrás publicar tus aplicaciones orientadas a Android N en el canal de lanzamientos
-  públicos de Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">Comenzar</h2>
-
-<p>
-  Para comenzar a probar tu aplicación con Android N:
-</p>
-
-<ol>
-  <li> Revisa las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a>
-  y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a> para
-  conocer las novedades y el efecto que tienen en tus aplicaciones. En particular,
-  procura obtener información sobre las nuevas funciones de <a href="{@docRoot}preview/features/notification-updates.html">notificaciones</a> y
-  la <a href="{@docRoot}preview/features/multi-window.html">compatibilidad con ventanas múltiples</a>.</li>
-  <li> Configura tu entorno siguiendo las instrucciones para <a href="{@docRoot}preview/setup-sdk.html">configurar el SDK Preview</a>
-  y los dispositivos de prueba.</li>
-  <li> Sigue las <a href="https://developers.google.com/android/nexus/images">instrucciones de
-  actualización</a> a fin de usar la última imagen de sistema de Android N para tu dispositivo. </li>
-  <li> Revisa la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API</a>
-  y los <a href="{@docRoot}preview/samples.html">Ejemplos de Android N</a> para obtener más
-  información sobre las nuevas funciones de la API y la manera de usarlas en tu aplicación.
-  <li> Únete a la <a href="{@docRoot}preview/dev-community">comunidad de
-  desarrolladores de Android N</a> para recibir las últimas noticias y para contactarte con otros
-  desarrolladores que estén trabajando con la nueva plataforma.</li>
-</ol>
-
-<p>
-  ¡Te agradecemos por participar de la Android N Developer Preview!
-</p>
diff --git a/docs/html-intl/intl/es/preview/preview_toc.cs b/docs/html-intl/intl/es/preview/preview_toc.cs
deleted file mode 100644
index 6c98c2f..0000000
--- a/docs/html-intl/intl/es/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽">Información general del programa</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html">Compatibilidad y notas de la versión</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK">Configuración de Preview</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試">Prueba en un dispositivo</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">Cambios en los comportamientos</a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">Optimizaciones en segundo plano</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">Idioma y configuración regional</a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers </a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援">Compatibilidad con ventanas múltiples</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">Notificaciones</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html">Ahorro de datos</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製">Grabación de TV</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定">Configuración de seguridad de la red</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API">Compatibilidad con ICU4J</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能">Funciones del lenguaje Java 8</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html">Actualizaciones para Android for Work</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取">Acceso a directorios determinados</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例">Ejemplos</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議">Contrato de licencia</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/es/preview/setup-sdk.jd b/docs/html-intl/intl/es/preview/setup-sdk.jd
deleted file mode 100644
index 51260bb..0000000
--- a/docs/html-intl/intl/es/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=Configuración de Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Obtener Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Obtener el SDK de Android N</a>
-    <ol>
-      <li><a href="#docs-dl">Documentación de referencia</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Obtener el JDK de Java 8</a></li>
-  <li><a href="#create-update">Actualizar o crear un proyecto</a></li>
-  <li><a href="#next">Próximos pasos</a></li>
-</ol>
-  </div>
-</div>
-
-<p>A fin de desarrollar aplicaciones para la Android N Preview, debes aplicar algunas actualizaciones
-a tu entorno de desarrollo, como se describe en esta página.</p>
-
-<p>Para solo probar la compatibilidad de tu aplicación en la
-imagen de sistema de Android N, sigue la guía de <a href="{@docRoot}preview/download.html">Prueba en un dispositivo Android N</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Obtener Android Studio 2.1</h2>
-
-<p>La plataforma de Android N agrega compatibilidad para <a href="{@docRoot}preview/j8-jack.html">funciones de lenguaje de Java 8</a>,
- que requieren un nuevo compilador llamado Jack. La última versión de Jack
-actualmente solo es compatible con Android Studio 2.1. Por lo tanto, si deseas
-usar funciones de lenguaje de Java 8, debes usar Android Studio 2.1 para
-crear tu aplicación. De lo contrario, no necesitarás el compilador Jack, pero
-deberás aplicar una actualización a JDK 8 para compilar tu proyecto en función a la plataforma de Android N,
-según lo descrito a continuación.</p>
-
-<p>Si ya cuentas con Android Studio, cerciórate de que tienes Android
-Studio 2.1 o una versión anterior haciendo clic en <strong>Help &gt; Check for Update</strong>
-(en Mac, <strong>Android Studio &gt; Check for Updates</strong>).</p>
-
-<p>Si no cuentas con él, <a href="{@docRoot}studio/">descarga Android Studio
-2.1 aquí</a>.</p>
-
-
-<h2 id="get-sdk">Obtener el N Preview SDK</h2>
-
-<p>Para comenzar a desarrollar proyectos con las API de Android N, debes instalar el
-Android N Preview SDK en Android Studio de la siguiente manera:</p>
-
-<ol>
-  <li>Abre el Administrador de SDK haciendo clic en <strong>Tools &gt; Android &gt;
-  SDK Manager</strong>.</li>
-
-  <li>En la pestaña <strong>SDK Platforms</strong>, selecciona la
-  casilla de verificación <strong>Android N Preview</strong>.</li>
-
-  <li>Haz clic en la pestaña <strong>SDK Tools</strong> y luego selecciona las casillas de verificación
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong> y
-    <strong>Android SDK Tools</strong>.
-  </li>
-
-  <li>Haz clic en <strong>OK</strong> y acepta los acuerdos
-    de licencia para instalar cualquier paquete que se necesite.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Obtener documentación de referencia de la Android N Preview</h3>
-
-<p>
-  En la documentación de referencia de la N Preview, se encuentra disponible información
-  detallada acerca de las API de Android N. Puedes descargar la documentación de la tabla siguiente.
-  Este paquete contiene una versión abreviada y de uso sin conexión del sitio web para desarrolladores
-  de Android, y en ella se incluyen una referencia de API actualizada para las API de Android N y un
-  informe de diferencia de API.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Documentación</th>
-    <th scope="col">Sumas de comprobación</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">Obtener el JDK de Java 8</h2>
-
-<p>Para compilar tu aplicación en función de la plataforma de Android N y para usar algunas herramientas con
-Android Studio 2.1 el Java 8 Developer Kit (JDK 8). Por lo tanto, si
-aún no tienes la última versión, descarga el JDK 8 ahora.</p>
-
-<p>Luego configura la versión de JDK en Android Studio de la siguiente manera:</p>
-
-<ol>
-  <li>Abre un proyecto de Android en Android Studio y luego el
-    cuadro de diálogo de estructura del proyecto seleccionando <strong>File &gt;
-        Project Structure</strong>. (Como alternativa, puedes fijar el valor predeterminado
-        para todos los proyectos seleccionando<strong> File &gt; Other Settings &gt;
-        Default Project Structure</strong>).
-   </li>
-   <li>En el panel izquierdo del cuadro de diálogo, haz clic en <strong>SDK Location</strong>.
-   </li>
-   <li>En el campo <strong>JDK Location</strong>, escribe la ubicación del
-    JDK de Java 8 (haz clic en el botón de la derecha
-    para explorar tus archivos) y luego haz clic en <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">Actualizar o crear un proyecto</h2>
-
-<p>
-  Para usar las API de Android N, debes configurar tu proyecto en forma correspondiente.
-</p>
-
-<p>Si planeas usar funciones del lenguaje Java 8, también debes leer
-<a href="{@docRoot}preview/j8-jack.html">Funciones del lenguaje Java 8</a>
-para obtener información sobre las funciones de Java 8 admitidas y
-la manera de configurar tu proyecto con el compilador Jack.</p>
-
-
-<h3 id="update">Actualizar un proyecto existente</h3>
-
-<p>Abre el archivo
-  <code>build.gradle</code> de tu módulo y actualiza los valores de la siguiente
-  manera:
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">Crear un proyecto nuevo</h3>
-
-
-<p>Si deseas crear un proyecto nuevo para realizar desarrollos con el Android N Preview SDK:</p>
-
-<ol>
-  <li>Haz clic en <strong>File &gt; New Project</strong> y sigue los pasos correspondientes hasta
-  llegar a la página Target Android Devices.
-  </li>
-  <li>En la página, selecciona la opción <strong>Phone and Tablet</strong>.</li>
-  <li>En la opción <strong>Phone and Tablet</strong>, dentro de la lista de opciones <strong>Minimum
-    SDK</strong>, selecciona
-    <strong>N: Android API 23, N Preview (Preview).</strong></li>
-</ol>
-
-
-<h2 id="next">Próximos pasos</h2>
-
-<ul>
-  <li>Sigue la guía de <a href="{@docRoot}preview/download.html">Prueba en un dispositivo Android N</a>.</li>
-  <li>Para obtener más información sobre la plataforma de Android N, visita las secciones
-<a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a>
-y <a href="{@docRoot}preview/api-overview.html">API y funciones de Android N
-</a>.</li>
-</ul>
-
diff --git a/docs/html-intl/intl/es/preview/support.jd b/docs/html-intl/intl/es/preview/support.jd
deleted file mode 100644
index 517429d..0000000
--- a/docs/html-intl/intl/es/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=Soporte y notas de la versión
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>En este documento</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">Recomendaciones generales</a></li>
-      <li><a href="#new">Novedades en DP3</a></li>
-      <li><a href="#ki">Problemas conocidos</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Durante el desarrollo y las pruebas que lleves a cabo con
-  la Android N Developer Preview tendrás dos canales de soporte principales: Para informar los errores específicos de
-  dispositivos, de sistema o de Google Apps, visita <a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a>. Para informar sobre problemas en otras aplicaciones,
-  ponte en contacto directamente con el desarrollador.
-</p>
-
-<p>Para debatir sobre problemas o ideas con otros desarrolladores que estén trabajando en Android N, únete a la comunidad
-<a href="{@docRoot}preview/dev-community">M Developer Preview en Google+</a>.</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Fecha: Mayo de 2016<br>
-        Versión: NPD35K<br>
-        Compatibilidad con emulador: x86 y ARM (32/64-bit)<br>
-        Servicios de Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">Recomendaciones generales</h3>
-
-<p>
-  Esta versión de Developer Preview está pensada para <strong>desarrolladores de aplicaciones y usuarios
-  pioneros</strong> y está disponible para uso diario, desarrollo o
-  pruebas de compatibilidad. Ten en cuenta estas notas generales sobre la
-  versión:
-</p>
-
-<ul>
-  <li>Esta versión puede tener varios <strong>problemas de estabilidad</strong> en
-    dispositivos compatibles. Los usuarios se pueden topar con un sistema inestable, con errores
-    internos del núcleo y fallas.
-  </li>
-
-  <li>Algunas aplicaciones <strong>quizá no funcionen como se espera</strong> en la versión de la plataforma
-  nueva. Entre ellas se incluyen tanto aplicaciones de Google como de otros desarrolladores.
-  </li>
-
-  <li>Developer Preview 3 para desarrolladores ha superado el <strong>conjunto de pruebas de compatibilidad (CTS)
-  </strong> en estos dispositivos: Nexus 5X, Nexus 6, Nexus 6P y Pixel
-  C. Las aplicaciones que dependen de compilaciones que hayan aprobado el CTS deberían
-  funcionar con normalidad en estos dispositivos (por ejemplo, Android Pay).
-  </li>
-
-  <li>Developer Preview 3 está <strong>disponible en todos los dispositivos
-  compatibles:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel
-  C, General Mobile 4G (Android One) y Sony Xperia Z3 (modelos D6603 y
-  D6653).
-
-  </li>
-</ul>
-
-
-<h3 id="new">Novedades en DP3</h3>
-
-<h4 id="">Modo RV para Android</h4>
-
-<p>
-  Android N agrega compatibilidad y optimizaciones de plataforma para un Modo RV nuevo, con el objetivo de que los
-  desarrolladores puedan forjar experiencias RV móviles de alta calidad para los usuarios. Hay varias
-  mejoras en el rendimiento, entre las que se incluye el acceso a un núcleo de CPU exclusivo
-  para aplicaciones de RV. Dentro de tus aplicaciones, puedes aprovechar el seguimiento de cabeza
-  inteligente y las notificaciones en sonido estéreo que funcionan para el modo RV. Un dato muy importante es que
-  Android N presenta muy pocos gráficos de baja latencia.
-</p>
-
-<p>
-  Para obtener más información, consulta <a href="https://developers.google.com/vr/android/">Google VR SDK para Android</a>.
-</p>
-
-<h4 id="">Modo de rendimiento sostenido</h4>
-
-<p>
-  Android N incluye compatibilidad opcional para un <a href="{@docRoot}preview/api-overview.html#sustained_performance_api">modo de rendimiento
-   sostenido</a>, que permite que los OEM arrojen datos sobre las capacidades de rendimiento del dispositivo
-  para las aplicaciones que llevan tiempo ejecutándose. Los desarrolladores de aplicaciones pueden usar estos
-  datos para pulir sus aplicaciones y alcanzar un nivel consistente y predecible de rendimiento durante períodos prolongados
-  en el dispositivo. Los desarrolladores de aplicaciones solo pueden probar este API nuevo
-  en la Preview instalada en Nexus 6P.
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  Desde la versión 51 de Android N, WebView ejecutará contenido web en
-  procesos individuales de espacio aislado cuando se haya habilitado
-  la opción "Multiprocess WebView". El equipo de WebView espera recibir comentarios sobre compatibilidad y
-  rendimiento de tiempo de ejecución en N antes de habilitar Multiprocess WebView en
-  versiones futuras de Android. En esta versión, pueden darse regresiones en el tiempo de inicio, uso total
-  de la memoria y problemas de rendimiento en la representación de software.
-</p>
-
-<p>
-  Si te topas con problemas inesperados en el modo de multiprocesos, nos gustaría que compartas la información
-  con nosotros. Ponte en contacto con el equipo de WebView <a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">
-  informándolos sobre un error</a>.
-</p>
-
-<h4 id="">Ayuda en los métodos abreviados del teclado</h4>
-
-<p>
-  Android N permite que los usuarios pulsen <code>Meta+/</code> para activar una pantalla de <strong>Keyboard
-  Shortcuts</strong> que muestra todos los métodos abreviados disponibles tanto para el
-  sistema como para la aplicación que esté en primer plano. Los desarrolladores pueden agregar sus propios métodos abreviados o
-  activar la pantalla de métodos abreviados desde sus aplicaciones. Consulta <a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Ayuda en los métodos
-  abreviados del teclado</a> para ver más detalles.
-</p>
-
-<h4 id="">API FrameMetrics</h4>
-
-<p>
-  DP3 presenta una <a href="{@docRoot}preview/api-overview.html#framemetrics_api">API FrameMetrics</a>nueva
-  que permite que una aplicación monitoree su rendimiento de representación de IU mediante la exposición de una
-   transmisión de API Pub/Sub para transferir información sobre el intervalo de los fotogramas para la ventana actual
-  de la aplicación. Puedes usar <code>FrameMetricsListener</code> para medir
-  el rendimiento de la IU del nivel de interacción en producción con una granularidad mayor y
-  sin la necesidad de contar con conexión USB.
-</p>
-
-<h4 id="api-changes">Característica y cambios en la API</h4>
-
-<dl>
-  <dt>
-    Accesos directos al launcher y sus API
-  </dt>
-
-  <dd>
-    Hemos decidido postergar esta característica hasta una versión futura de Android. El plan
-    es eliminar las API de accesos directos al launcher (ShortcutManager y otras) de la
-    API pública de Android N a partir de la siguiente Preview.
-  </dd>
-
-  <dt>
-    Ejecución de WebView Javascript antes de la carga de página
-  </dt>
-
-  <dd>
-    Comenzando por las aplicaciones que hagan objetivo a Android N, el contexto de JavaScript se restablece
-    cuando se carga una página nueva. De momento, el contexto de la
-    primera página cargada se mantiene en una instancia {@link android.webkit.WebView} nueva.
-    Los desarrolladores que quieran introducir JavaScript en {@link
-    android.webkit.WebView} deberían ejecutar la secuencia de comandos luego de que la página haya
-   comenzado a cargar.
-  </dd>
-
-  <dt>
-    Ubicación geográfica de WebView en orígenes inseguros
-  </dt>
-
-  <dd>
-    Comenzando por las aplicaciones que hagan objetivo a Android N, solo se permitirá
-    el uso de la API de ubicación geográfica en orígenes seguros (en HTTPS). Esta política se ha diseñado para proteger
-    la información privada del usuario cuando use una conexión insegura.
-  </dd>
-
-  <dt>
-    Ahorro de datos
-  </dt>
-
-  <dd>
-    A partir de Developer Preview 3 para desarrolladores, las aplicaciones pueden usar una intent para mostrar un
-    recuadro de diálogo de sistema que permite que el usuario agregue la aplicación directamente a la lista blanca de excepciones
-    de ahorro de datos. Consulta la <a href="{@docRoot}preview/api-overview.html#data_saver">documentación
-    sobre ahorro de datos</a> para ver más detalles.
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">Bloqueo de números</a>
-  </dt>
-
-  <dd>
-    Ahora, si un usuario sin autorización intenta bloquear o desbloquear un número, la
-    operación fallará y arrojará el mensaje {@link java.lang.SecurityException}. (Antes,
-    la operación arrojaba el mensaje {@link java.lang.UnsupportedOperationException}).
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">API para mosaico
-    de configuración rápida</a>
-  </dt>
-
-  <dd>
-    Ahora, el sistema utiliza metadatos de la actividad para definir el modo de mosaico.
-    (Antes, el valor de devolución de
-    <code>TileService.onTileAdded()</code> determinaba el modo de mosaico). Para obtener más información, consulta
-    <code>TileService.META_DATA_ACTIVE_TILE</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API</a> descargable.
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">Soluciones para los errores que informaron los desarrolladores</h4>
-
-<p>
-  Se han solucionado varios errores que los desarrolladores habían informado, entre los que se incluyen:
-</p>
-
-<ul>
-  <li>Interrupción de la reproducción de audio por Bluetooth luego de una canción (error <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
-  </li>
-
-  <li>Fallas continuas en Pixel C (error <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
-  </li>
-
-  <li>Problemas de notificaciones en Clock and Toast (error <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
-  </li>
-
-  <li>Reinicio de Pixel C cuando se lo conecta a una MacBook Pro mediante un cable USB C (error
-  <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
-  </li>
-
-  <li>Diferencia de un día en el calendario (error <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
-  </li>
-
-  <li>Devolución de datos no válidos de parte de TelephonyManager.getAllCellInfo (error <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
-  </li>
-
-  <li>Nexus 6P - Desconexión continua de Bluetooth (error <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
-  </li>
-</ul>
-
-<p>Para conocer la lista completa de errores solucionados, consulta <a href="https://goo.gl/6uCKtf">el
-seguimiento de problemas</a>.</p>
-
-<h3 id="ki">Problemas conocidos</h3>
-
-<h4>Accesibilidad</h4>
-
-<ul>
-  <li>Imposibilidad de escuchar el formato de salida TTS cuando la inclinación está cerca del nivel máximo.
-  </li>
-
-  <li>Las funciones y la configuración de accesibilidad pueden verse interrumpidas cuando el usuario agrega un
-  perfil de trabajo, como el gesto y la configuración de ampliación. El estado
-  de la accesibilidad se restablece cuando el usuario cambia la configuración asociada.
-  </li>
-</ul>
-
-<h4>Cámara</h4>
-
-<ul>
-  <li>La aplicación Cámara ha mostrado inestabilidad; puede presentar fallos en varias
-    circunstancias, como cuando se la ejecuta en el modo de ventanas múltiples.
-  </li>
-
-  <li>Si se presiona el obturador repetidas veces en el modo panorámico, la aplicación Cámara
-  puede fallar.
-  </li>
-</ul>
-
-<h4>Audio</h4>
-<ul>
-  <li>Un error en el reproductor de audio de plataforma impide que algunas aplicaciones
-  funcionen con normalidad. Este error afecta, por ejemplo, a aplicaciones como Skype y otras.
-  </li>
-</ul>
-
-<h4>Conectividad</h4>
-
-
-<ul>
-  <li>Cuando un dispositivo de rol periférico Bluetooth Low Energy (BLE) indica un
-  servicio y se conecta un dispositivo de rol central BLE, el dispositivo de rol periférico
-  se desconecta rápidamente.
-  </li>
-
-  <li>La conexión Wi-Fi puede perderse cuando la pantalla está apagada.
-  </li>
-
-  <li>Las conexiones RFCOMM son inestables y pueden provocar daños en los datos y
-  conexiones con poca estabilidad.
-  </li>
-
-  <li>El estado de red activo ({@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} y {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}) pueden devolver valores incorrectos durante algunos
-  escenarios de fondos restringidos.
-  </li>
-</ul>
-
-
-<h4>
-  Launcher
-</h4>
-
-<ul>
-  <li>La bandeja All Apps predeterminada del lanzador puede dejar de responder luego de que
-  la pantalla se apague y se encienda. El problema se puede resolver volviendo a la pantalla de inicio y ejecutando otra vez
-  la bandeja All Apps.
-  </li>
-</ul>
-
-<h4>
-  Teclado
-</h4>
-
-<ul>
-  <li>Cuando se actualiza un dispositivo que utiliza Android 6.0 o una versión anterior a la N Developer
-  Preview, el teclado de Google no conserva los datos de preferencias como los emoji recientes
-  y la configuración de sonido.
-  </li>
-
-  <li>Google Indic Managed Keyboard puede comportarse de manera inestable.
-  </li>
-
-  <li>Cuando se ingresa texto en un campo de contraseña, el usuario puede seleccionar ruso como
-  el idioma de escritura, pero el teclado permanece en inglés. Esto impide que los
-  usuarios puedan ingresar contraseñas en ruso.
-  </li>
-</ul>
-
-<h4>
-  Configuración regional e idiomas
-</h4>
-
-<ul>
-  <li>Cuando se usa una configuración regional de derecha a izquierda (RTL), el sistema puede cambiar, de manera inesperada,
-  a una presentación de izquierda a derecha (LTR) luego de reiniciar el dispositivo.
-  </li>
-</ul>
-
-<h4>Medios</h4>
-
-<ul>
-  <li>En Nexus 9 y Nexus Player, la reproducción de medios puede no ser la correcta y presentar, entre otros,
- errores al reproducir HD.
-  </li>
-</ul>
-
-<h4>
-  Modo de ventanas múltiples
-</h4>
-
-<ul>
-  <li>El dispositivo se puede congelar cuando se cambia la orientación en el modo de ventanas múltiples.
-  </li>
-
-  <li>De momento, varias aplicaciones tienen problemas con el modo de ventanas múltiples:
-    <ul>
-      <li>La IU del sistema puede fallar cuando se cambia Settings &gt; Display &gt;
-      Screen brightness al modo de ventanas múltiples.
-      </li>
-
-      <li>La aplicación Cámara puede fallar cuando se la ejecuta en el modo de ventanas múltiples.
-      </li>
-
-      <li>YouTube puede fallar cuando se lo ejecuta en el modo de ventanas múltiples. Para solucionar el
-      problema, puedes borrar los datos de la aplicación YouTube en Storage &gt; Apps &gt;
-      YouTube.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Servicios de Google Play
-</h4>
-
-<ul>
-  <li>Las aplicaciones que usen Google Cast por medio de los servicios de Google Play pueden presentar problemas cuando
-  el usuario elige una configuración regional del sistema que usa letras y números que estén fuera del
-  rango ASCII.
-  </li>
-</ul>
-
-<h4>
-  Android for Work y Google Apps Device Policy
-</h4>
-
-<ul>
-  <li>La aplicación Device Policy puede fallar cuando el usuario desbloquea el dispositivo con la pantalla
-  "device policy status" anclada.
-  </li>
-
-  <li>Después de configurar un perfil de trabajo con la encriptación a base de archivos habilitada y
-  luego desactivar Work, los usuarios deberán desactivar el bloqueo de pantalla del perfil principal para volver
-  a acceder a las aplicaciones de Work.
-  </li>
-
-  <li>El dispositivo se reinicia cuando se quita el patrón de seguridad y se abre una
-  aplicación personal o de trabajo en el modo de ventanas múltiples.
-  </li>
-
-  <li>Configurar DISALLOW_VPN_CONFIG provoca que el diálogo de consentimiento aparezca en
-  always-on-vpn, configurado por Device Policy Client.
-  </li>
-
-  <li>El tráfico no se bloquea hasta que la VPN esté conectada en el modo always-on-vpn.
-  </li>
-</ul>
-
-<h4>
-  Almacenamiento externo
-</h4>
-
-<ul>
-  <li>Las aplicaciones pueden comenzar a funcionar mal cuando el usuario las mueve desde el almacenamiento interno a un dispositivo de
-  almacenamiento externo (entre los que se incluyen las tarjetas SD o los dispositivos conectados por
-  medio de USB).
-  </li>
-</ul>
-
-<h4>
-  Zoom de la pantalla y APK múltiples en Google Play
-</h4>
-
-<ul>
-  <li>En dispositivos que usen Android N, los servicios de Google Play 9.0.83 informan erróneamente
-  la densidad de la pantalla actual en vez de la densidad de la pantalla estable. Cuando se habilita el zoom
-  de la pantalla en estos dispositivos, esto puede provocar que Google Play seleccione una
-  versión de una aplicación con APK múltiples diseñada para pantallas más pequeñas. Este error se
-  soluciona en la siguiente versión de los servicios de Google Play, y se incluirá en un
-  lanzamiento futuro de la Developer Preview.
-  </li>
-
-  <li>De momento, en dispositivos que usen Android N, los servicios de Google Play 9.0.83 informan la compatibilidad con
-  Vulkan, pero no con qué versión. Esto puede provocar que Google Play seleccione una
-  versión de una aplicación con APK múltiples diseñada con compatibilidad inferior con Vulkan en
-  dispositivos que son compatibles con versiones más nuevas. De momento, la tienda Google Play no
-  acepta actualizaciones de aplicaciones que utilicen selección de versión de Vulkan. Esta compatibilidad
-  se agregará a la tienda Google Play en el futuro, y se solucionará en la siguiente
-  versión de los servicios Google Play (que se incluirá en una Developer Preview
-  nueva). Cualquier dispositivo N que use una versión de servicios Google Play 9.0.83 seguirá
-  recibiendo versiones de aplicaciones que tengan compatibilidad básica con Vulkan.
-  </li>
-</ul>
-
-<h4 id="">Notificaciones</h4>
-
-<ul>
-  <li>MessagingStyle no muestra notificaciones con emisor "null" (propio).
-  </li>
-</ul>
-
-<h4 id="">Herramientas de desarrollador</h4>
-
-<ul>
-  <li>
-    <code>adb</code> se puede desconectar mientras se usa la depuración JDWP.
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Fecha: Abril de 2016<br>
-        Compilaciones: NPC91K, NPC91O<br>
-        Compatibilidad con emulador: x86 y ARM (32/64-bit)<br>
-        Servicios de Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">Novedades en DP2</h3>
-
-<ul>
-  <li>Compatibilidad con plataformas para Vulkan, una nueva API de visualización 3D que permite
-  controlar explícitamente y con baja sobrecarga la GPU (unidad de procesamiento de gráficos) y ofrece
-  un rendimiento mejorado para aplicaciones sujetas a un nivel elevado de llamadas a draw. Para ver más detalles, consulta la
-  <a href="{@docRoot}ndk/guides/graphics/index.html">documentación</a>.
-  </li>
-
-  <li>Emoji de gente nuevos con compatibilidad para tonos de piel, y glifos Unicode 9.
-  El tono de piel y los emoji nuevos no se mostrarán hasta que la versión de los teclados sea compatible con
-  ellos en la paleta. Las aplicaciones no deberían tomar ninguna acción para sacar
-  ventaja de estos emoji nuevos, a menos que la aplicación utilice una fuente que no sea del sistema. Los desarrolladores de IME
-  tienen que incorporar compatibilidad con los emoji nuevos.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">API de accesos directos
-    al launcher</a>: Las aplicaciones pueden usar <code>ShortcutManager</code> para enviar al launcher
-    accesos directos a puntos de control dentro de sí mismos.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">Ventanas múltiples</a>:
-    Ahora puedes especificar un alto mínimo y un ancho mínimo individual para una
-    actividad. Además, se han modificado los nombres de varias API.
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">Soluciones para los errores que informaron los desarrolladores</h4>
-
-<p>
-  Se han solucionado varios errores que los desarrolladores habían informado, entre los que se incluyen:
-</p>
-
-<ul>
-  <li>No se puede establecer la conexión a SSID o Wi-Fi ocultos. (error <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>)
-  </li>
-
-  <li>El modo silenciado del micrófono persiste en distintas actividades. (error <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>)
-  </li>
-
-  <li>Al cambiar el foco de ventanas múltiples, YouTube se pausa. (error <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>)
-  </li>
-
-  <li>Respuesta directa puede cerrar la actividad abierta. (error <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>)
-  </li>
-
-  <li>Varias soluciones de estabilidad.
-  </li>
-</ul>
-
-<h3 id="dp2-general">Recomendaciones generales</h3>
-
-<p>
-  Esta versión de la Developer Preview solo se recomienda a los <strong>desarrolladores de aplicaciones</strong>
-, y está diseñada para usarla en pruebas de compatibilidad y durante etapas tempranas del desarrollo.
-  Ten en cuenta estas notas generales sobre la versión:
-</p>
-
-<ul>
-
-  <li>Para el lanzamiento de la DP2,
-  se han actualizado los componentes de herramienta de desarrollo y las bibliotecas de compatibilidad. No te olvides de actualizar tu entorno de desarrollo de Preview
-  antes de desarrollar para DP2. Para ver instrucciones sobre cómo configurar tu entorno
-  de desarrollo, consulta
-  <a href="{@docRoot}preview/setup-sdk.html">Configuración de Preview</a>.
-  </li>
-
-  <li>Esta versión presenta varios problemas de estabilidad y rendimiento en todos los dispositivos
-  que la convierten en una versión <strong>no recomendable para el uso diario en tablets o teléfonos</strong>,
- especialmente para quienes no sean desarrolladores.
-  </li>
-
-  <li>En esta
-  versión, aún no se ha optimizado el rendimiento y la vida de la batería:
-
-    <ul>
-      <li>Se sabe que el <strong>rendimiento de las aplicaciones y el sistema es lento o
-      problemático</strong>, y existe la posibilidad de que, periódicamente, los dispositivos dejen de funcionar. Estos
-      problemas se pueden agravar con el uso prolongado.
-      </li>
-
-      <li>En esta versión, la vida de la batería se puede ver afectada cuando la pantalla
-      se apaga y se enciende.
-      </li>
-    </ul>
-  </li>
-
-  <li>Algunas <strong>aplicaciones quizá no funcionen con normalidad</strong> en la Developer Preview
-  2. Entre ellas se incluyen tanto aplicaciones de Google como de otros desarrolladores.
-  </li>
-
-  <li>Esta versión temprana no ha superado <strong>el conjunto de pruebas de compatibilidad (CTS)
-  </strong>. Las aplicaciones que dependen de compilaciones que hayan aprobado el CTS no funcionarán
-  (Android Pay, por ejemplo).
-  </li>
-
-  <li>Esta versión de Preview es compatible con los siguientes dispositivos: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, Pixel C y General Mobile 4G
-  (Android One). Próximamente también será compatible con Nexus Player.
-  </li>
-
-
-  <li><a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> se ha
-  actualizado para manejar cambios de API entre DP1 y DP2.
-  </li>
-</ul>
-
-<h3 id="dp2-ki">Problemas conocidos</h3>
-
-<h4>Rendimiento y batería</h4>
-
-<ul>
-  <li>Se sabe que el rendimiento de las aplicaciones y el sistema es <strong>lento o
-      problemático</strong>, y existe la posibilidad de que, periódicamente, los dispositivos dejen de funcionar. Estos
-      problemas se pueden agravar con el uso prolongado.
-  </li>
-</ul>
-
-<h4>Cuentas de Google</h4>
-
-<ul>
-  <li>En ciertas circunstancias, pueden ocurrir problemas con
-  <code>AccountManagerService</code>, que impide iniciar sesión en cuentas de Google.
-  </li>
-</ul>
-
-<h4>Actualización del sistema</h4>
-
-<ul>
-  <li>El dispositivo se puede reiniciar al momento de actualizar a DP2.
-  </li>
-</ul>
-
-<h4>Accesibilidad</h4>
-
-<ul>
-  <li>Problemas al escuchar formato de salida de texto a voz (TTS) cuando la inclinación está
-  cerca del nivel máximo.
-  </li>
-</ul>
-
-<h4>Bluetooth</h4>
-
-<ul>
-  <li>Las características GATT del Bluetooth de bajo consumo (LE) utilizan el tipo
-  de escritura equivocado, y no se enviarán a un dispositivo remoto. Por esa razón, algunos dispositivos útiles
-  para la realización de ejercicios no funcionarán.
-  </li>
-</ul>
-
-<h4>Asistente de configuración</h4>
-
-<ul>
-  <li>La opción para recuperar datos en un dispositivo nuevo (o en un dispositivo que se ha restablecido hace poco tiempo) de
-  "Your Google Account" no se puede utilizar en el asistente de configuración. Debes restablecer
-  los datos de un dispositivo existente eligiendo "another Android device" en el
-  asistente de configuración o configurarlo como un dispositivo nuevo.
-  </li>
-</ul>
-
-<h4>OEM unlock</h4>
-
-<ul>
-  <li>En algunos dispositivos, <strong>Enable OEM unlock</strong> aparecerá inhabilitado en
-  "Developer Options" al ejecutar DP2.<br>
-  <strong>Método alternativo:</strong> Apúntate para
-  el Programa Android Beta (si aún no lo has hecho) en
-  <a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a>. Luego, date de baja y acepta el
-  paso a una versión anterior (OTA). Darse de baja hará que el dispositivo pase a la versión Android 6.0. Ahora deberías
-  poder elegir la opción <strong>Enable OEM unlock</strong> en
-  "Developer Options". Cuando
-  el dispositivo se desactualiza, todos los datos personales se pierden; sin embargo, si se hubiera desbloqueado el bootloader, también se habrían eliminado esos datos.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Comprobación de seguridad de trabajo
-    <ul>
-      <li>Luego de migrar a N, o después de que el usuario cree perfiles de trabajo, los perfiles
-      de trabajo no pueden crear claves en el depósito de claves hasta que el usuario cambie su
-      patrón, PIN o contraseña o configure una comprobación de trabajo.
-      </li>
-
-      <li>En modo de inicio directo, aplicar restricciones de contraseña al dispositivo
-      hará que el perfil de trabajo se desbloquee, incluso si el dispositivo está bloqueado.
-      Esto permite acceder al perfil de trabajo aunque debería estar protegido
-      por la pantalla de bloqueo del dispositivo.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>Si el modo Always On VPN está activado, pero la VPN no está disponible, las aplicaciones
-      se conectarán a la red normal. Las aplicaciones deberían quedar sin conexión si no hay
-      una conexión de VPN disponible.
-      </li>
-
-      <li>Cuando el modo Always On VPN está activado, las conexiones VPN no se establecen después
-      del reinicio de un dispositivo a modo de inicio directo, incluso luego de que el usuario desbloquee la
-      pantalla de bloqueo.
-      </li>
-    </ul>
-  </li>
-
-  <li>Paquetes suspendidos
-    <ul>
-      <li>Los administradores de dispositivos pueden suspender paquetes de sistema críticos, lo que puede provocar
-      un comportamiento inesperado, como la realización de llamadas a pesar de que se muestre el recuadro de diálogo "Telephone
-      disabled".
-      </li>
-    </ul>
-  </li>
-
-  <li>Otros
-    <ul>
-      <li>Cuando se inicia, la aplicación Configuración falla si {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} está configurado como verdadero cuando el usuario
-      conecta un medio físico como una tarjeta SD.
-      </li>
-
-      <li>El primer registro en un perfil de trabajo tarda varios minutos en
-      completarse.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>Los espacios entre números vinculantes y números distintos a cero
-      como primer número vinculante hacen que {@code vkCreateGraphicsPipeline()} falle.</li>
-      <li>Vulkan exhibe un comportamiento de muestras incorrecto en coordinadas de textura proyectada.</li>
-      <li>En la muestra multithreadCmdBuffer, {@code vkCmdClearColorImage()} falla cuando
-      se ejecuta con el controlador N-DP2.</li>
-      <li>Los valores de devolución de {@code vkGetPhysicalDeviceFormatProperties()} no configuran un valor
-      para {@code VkFormatProperties::linearTilingFeatures} que, como resultado,
-      toma el valor de 0.</li>
-      <li>Los anexos del búfer de fotogramas de punto flotante de Vulkan no se manejan de forma correcta.</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>Los sombreadores SPIR-V no disparan activos del controlador.</li>
-      <li>Algunas configuraciones del proceso pueden hacer que {@code vkCreateGraphicsPipeline()}
-      falle.</li>
-  </ul>
-</ul>
-
-<h4>Problemas específicos de dispositivo</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    La conexión de datos falla cuando un dispositivo se cambia de la ranura SIM 1 a la 2.
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    No se puede activar o desactivar la opción "Always On" de búsqueda por voz.
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    Las fotografías de la cámara en orientación vertical están dañadas, a excepción de las fotos
-    HDR+.
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    En Nexus Player, la reproducción de contenido Netflix HD puede fallar.
-  </dd>
-
-  <dd>
-    En Nexus Player, cualquier aplicación que dependa de cambios de resolución de video dinámico
-    puede fallar.
-  </dd>
-
-  <dd>
-    En Nexus Player, cualquier aplicación que use el códec de video VP9 puede fallar.
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Fecha: Marzo de 2016<br>
-        Compilaciones: NPC56P, NPC56R, actualizado: NPC56W, NPC56X<br>
-        Compatibilidad con emulador: x86 y ARM (32/64-bit)<br>
-        Servicios de Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">Recomendaciones generales</h3>
-
-<p>
-  Esta versión de la Developer Preview solo se recomienda a los desarrolladores de aplicaciones, y está diseñada para
-  usarla en pruebas de compatibilidad y durante etapas tempranas del desarrollo. Ten en cuenta
-  estas notas generales sobre la versión:
-</p>
-<ul>
-  <li>Esta versión presenta varios problemas de estabilidad y rendimiento en todos los dispositivos
-  que la convierten en una versión <em>no recomendable para el uso diario en tablets o teléfonos</em>,
- especialmente para quienes no sean desarrolladores.
-  </li>
-
-  <li>Se sabe que el rendimiento de las aplicaciones y el sistema es <strong>lento o
-      problemático</strong>, y existe la posibilidad de que, periódicamente, los dispositivos dejen de funcionar. Estos
-      problemas se pueden agravar con el uso prolongado.
-  </li>
-
-  <li>En esta versión, la vida de la batería se puede ver afectada cuando la pantalla se apaga y
-  se enciende.
-  </li>
-
-  <li>Algunas aplicaciones quizá no funcionen con normalidad en la Developer Preview 1. Entre estas se incluyen
-  tanto aplicaciones de Google como de otros desarrolladores.
-  </li>
-
-  <li>Esta versión temprana no ha superado el conjunto de pruebas de compatibilidad(CTS). Las aplicaciones
-  que dependen de compilaciones que hayan aprobado el CTS no funcionarán  (por  ejemplo, Android Pay).
-  </li>
-
-  <li>Esta versión de Preview es compatible con los siguientes dispositivos: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, Nexus Player, Pixel C y General Mobile 4G
-  (Android One).
-  </li>
-</ul>
-
-<h3 id="dp1-platform">Problemas de plataforma</h3>
-
-<h4>Rendimiento y batería</h4>
-
-<ul>
-  <li>Se sabe que el rendimiento de las aplicaciones y el sistema es <strong>lento o
-      problemático</strong>, y existe la posibilidad de que, periódicamente, los dispositivos dejen de funcionar. Estos
-      problemas se pueden agravar con el uso prolongado.
-  </li>
-
-  <li>En esta versión, la vida de la batería se puede ver afectada cuando la pantalla se apaga y
-  se enciende.
-  </li>
-</ul>
-<h4 id="dialer">Teléfono</h4>
-
-<ul>
-  <li>La aplicación Teléfono no es compatible con el inicio directo. Este tema se abordará más adelante en
-  N Developer Preview.
-  </li>
-
-  <li>La reproducción del buzón de voz no funciona.
-  </li>
-</ul>
-
-<h4>Micrófono</h4>
-
-<ul>
-   <li>El estado silencioso del micrófono en el sistema puede persistir de manera incorrecta entre aplicaciones y luego de haberlo reiniciado. Si silencias el micrófono en una aplicación y el estado persiste, abre cualquiera aplicación que tenga controles de silencio para el micrófono y reactiva el micrófono.</li>
-</ul>
-
-<h4 id="ui">IU del sistema</h4>
-
-<ul>
-  <li>Algunas cadenas nuevas o modificadas de la IU del sistema no están traducidas a todos
-  los idiomas.
-  </li>
-
-  <li>La IU de información general aún está en desarrollo y sujeta a modificaciones. Por ejemplo,
-  tenemos pensado quitar el temporizado que aparece cuando el usuario alterna entre
-  aplicaciones.
-  </li>
-
-  <li>Los controles y los cambios de configuración pueden ser lentos o no funcionar correctamente.
-  </li>
-
-  <li>El diseño visual de las notificaciones está sujeto a cambios.
-  </li>
-
-  <li>En la aplicación Gmail, el archivo directo de correos electrónicos incluidos en un
-  paquete de notificación no funciona correctamente.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Comprobación de seguridad de trabajo
-    <ul>
-      <li>Luego de migrar a N, o después de que el usuario cree perfiles de trabajo, los perfiles
-      de trabajo no pueden crear claves en el depósito de claves hasta que el usuario cambie su
-      patrón, PIN o contraseña o configure una comprobación de trabajo.
-      </li>
-
-      <li>En modo de inicio directo, aplicar restricciones de contraseña al dispositivo
-      hará que el perfil de trabajo se desbloquee, incluso si el dispositivo está bloqueado.
-      Esto permite acceder al perfil de trabajo aunque debería estar protegido
-      por la pantalla de bloqueo del dispositivo.
-      </li>
-
-      <li>Cuando el usuario ingresa una contraseña o un PIN incorrecto, el sistema no
-      muestra ningún mensaje informativo; en vez de eso, solo borra el campo
-     de entrada. Este problema no afecta al ingreso de huellas digitales o patrones.
-      </li>
-
-      <li>En una tablet, el fondo que se muestra durante la comprobación de trabajo es
-      desproporcionalmente pequeño.
-      </li>
-
-      <li>La versión de <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
-        Google Apps Device Policy</a> que está integrada en la N Developer Preview
-        aún no es compatible con la función comprobación de seguridad para perfiles de trabajo.
-        Los desarrolladores debería usar <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>
-        para probar esta función.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>Si el modo Always On VPN está activado, pero la VPN no está disponible, las aplicaciones
-      no especificadas como excepción en la política "Always On" se conectarán
-      a la red normal. A menos que se especifiquen como excepciones en la política Always On VPN,
-      las aplicaciones deberían quedar sin conexión si no hay una conexión de VPN disponible.
-        <ul>
-          <li>Cuando el modo Always On VPN está activado, las conexiones VPN no se establecen
-          después del reinicio de un dispositivo a modo de inicio directo, incluso luego de que el usuario
-          desbloquee la pantalla de bloqueo.
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>Contactos mejorados
-    <ul>
-      <li>Los dispositivos Bluetooth PBAP/MAP no muestran el identificador de llamada para los contactos
-      de trabajo. La versión siguiente de Preview resuelve este problema.
-      </li>
-    </ul>
-  </li>
-
-  <li>Modo de trabajo
-    <ul>
-      <li>El Google Now Launcher no muestra si el modo de trabajo está activado o
-      desactivado. El launcher tampoco muestra el estado de suspensión de las aplicaciones.
-      </li>
-
-      <li>Después de que los usuarios activan o desactivan el modo de trabajo, el sistema ya no muestra
-      los widgets de aplicación del perfil de trabajo como el Calendario.
-      </li>
-    </ul>
-  </li>
-
-  <li>Paquetes suspendidos
-  </li>
-
-  <li>Los administradores de dispositivos pueden suspender paquetes de sistema críticos, lo que puede provocar
-  un comportamiento inesperado, como la realización de llamadas a pesar de que se muestre el recuadro de diálogo
-  "Telephone disabled".
-  </li>
-
-  <li>Otros
-    <ul>
-      <li>Cuando se inicia, la aplicación Configuración falla si {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} está configurado como verdadero cuando el usuario
-      conecta un medio físico como una tarjeta SD.
-      </li>
-
-      <li>El estado {@code DPM.setPackagesSuspended} no persiste cuando el
-      usuario desinstala y luego reinstala la aplicación. La aplicación debería permanecer
-      suspendida luego de desinstalarla/reinstalarla, o las aplicaciones suspendidas no deberían poder
-      desinstalarse.
-      </li>
-
-      <li>El primer registro en un perfil de trabajo tarda varios minutos en
-      completarse. Esto puede hacer que el dispositivo tarde más de lo normal en volverse
-      visible en la API Play EMM.
-      </li>
-
-      <li>Las notificaciones de las aplicaciones de perfiles de trabajo no son visibles para los oyentes de las notificaciones
-      instalados en el perfil personal. Como resultado, el sistema no
-      muestra las notificaciones como se esperaría.
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >Teclado</h4>
-
-<ul>
-  <li>La sincronización por Bluetooth entre teclados y dispositivos Android puede comportarse de manera inestable.
-  </li>
-</ul>
-
-<h4 >Video</h4>
-
-<ul>
-<li>La reproducción de video puede interrumpirse y demorarse.</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>La conexión Wi-Fi ha sufrido algunos cambios, que podrían modificar el comportamiento
-  del caso límite de la API. Específicamente, se deberían volver a probar las aplicaciones que intentan conectarse a redes
-  específicas o intentan reconectarse a redes.
-  </li>
-
-  <li>El cliente DHCP heredado se ha quitado de la plataforma. El único cliente DHCP
-  que es compatible con la plataforma es el cliente DHCP presentado en M.
-  </li>
-</ul>
-
-<h4>Inicio directo</h4>
-
-<ul>
-  <li>NFC no funciona hasta el primer desbloqueo.
-    <ul>
-      <li>Cuando se reinicia un teléfono con Bluetooth habilitado, el Bluetooth no
-   se activa de forma automática. Tendrás que rehabilitar el Bluetooth de forma manual.
-      </li>
-
-      <li>En ciertas circunstancias, el tono predeterminado no se oye cuando
-      se reciben llamadas o mensajes. Este comportamiento está corregido en la próxima versión de la N Preview
-      , con una excepción (y solución alternativa):
-      </li>
-
-      <li>En un dispositivo cuyos datos no se hayan eliminado hace poco uno que se haya iniciado
-      al menos una vez desde la activación del modo inicio directo, el tono de
-   notificación predeterminado no se oye. El usuario puede solucionar este problema eligiendo de forma manual
-      un tono del menú Configuración.
-      </li>
-
-      <li>El inicio directo no está habilitado de forma predeterminada en dispositivos que usen la versión N
-      Developer Preview. Para habilitar el inicio directo para pruebas y
-      desarrollo, ve a Developer Options y toca Convert to File Encryption.
-      En esta Developer Preview, esta opción requiere de un restablecimiento de la configuración predeterminada de fábrica para reparticionar y
-      reformatear tu dispositivo para encriptación a base de archivos.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Picture-in-picture para Android TV</h4>
-
-<ul>
-  <li>La integración PIP en la IU de Recientes no está finalizada y está sujeta a
-  cambios.
-    <ul>
-      <li>La animación de la ventana de PIP no está terminada. Este aspecto se mejorará en las
-      versiones futuras de la Preview.
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">El diseño visual y la alineación del diseño de PIP se mejorarán
-  en las      versiones futuras de la Preview.
-  </li>
-</ul>
-
-<h4>Informes de errores</h4>
-
-<ul>
-  <li>Los informes de errores no siempre se completan con éxito (como solución alternativa,
-  a menudo se puede acceder a ellos a través del documento de informe de error provisto
-  en el almacenamiento interno).
-  </li>
-</ul>
-
-<h4>Ventanas múltiples con pantalla dividida</h4>
-
-<ul>
-  <li>Las aplicaciones pueden fallar, o el comportamiento de su IU puede no ser el adecuado, cuando se utiliza el modo de
-  pantalla dividida. Estos son problemas de la aplicación que el desarrollador
-  de la aplicación debe solucionar.
-  </li>
-
-  <li>Cuando una aplicación hace objetivo a una versión de la plataforma Android anterior a N, la
- aplicación quizá no funcione, y las alertas de pantalla dividida pueden aparecer en múltiples oportunidades.
-  </li>
-
-  <li>Presionar durante bastante tiempo el botón Recientes cuando se usa una aplicación con orientación fija
-  puede hacer que la aplicación se comporte de manera inesperada.
-  </li>
-
-  <li>Las aplicaciones pueden parpadear cuando se les cambia el tamaño.
-  </li>
-
-  <li>Las animaciones no están terminadas.
-  </li>
-</ul>
-
-<h4>Método de entrada.</h4>
-
-<ul>
-  <li>El teclado de Google vuelve a su versión genérica de manera inesperada
-  cuando se habilita<b> Use system language</b>, pero no es compatible con ninguno de los
-  idiomas seleccionados en las preferencias del idioma del sistema. Debería volver
-  al idioma inglés estadounidense.
-    <p>
-      Puedes sortear este problema agregado, al menos, un idioma que sea compatible con el
-      teclado de Google.
-    </p>
-  </li>
-</ul>
-
-<h4>Accesibilidad</h4>
-
-<ul>
-  <li>TalkBack tiene problemas con características como Notificaciones, mosaicos de Quick
-  Settings e imágenes en modo ventanas múltiples que pueden hacer que el sistema falle o
-  que haya pocos comentarios por voz de parte de TalkBack. Estos problemas se abordarán en las
-  versiones futuras de la Preview.
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">Problemas y notas específicas del dispositivo</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>En esta versión de la Preview, está previsto que ocurran errores de estabilidad y compatibilidad con aplicaciones y de reproducción de video en
-  Nexus Player.
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>El cambio de tamaño en el modo de ventanas múltiples puede provocar fallos.</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Los dispositivos Nexus 9 pueden no iniciar luego de recibir una actualización inalámbrica
-  mediante el Programa Android Beta. Para solventar este problema, puedes intentar
-  instalar la imagen inalámbrica de forma manual. Para obtener más información, consulta
-  <a href="{@docRoot}preview/download-ota.html">Aplicación de imágenes inalámbricas de dispositivo</a>.
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/es/preview/features/direct-boot.jd b/docs/html-intl/intl/es/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/es/preview/features/direct-boot.jd
rename to docs/html-intl/intl/es/training/articles/direct-boot.jd
index e1d99e9..0ce3f5b 100644
--- a/docs/html-intl/intl/es/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/es/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>En este documento</h2>
   <ol>
     <li><a href="#run">Solicitar acceso para ejecutar durante el inicio directo</a></li>
diff --git a/docs/html-intl/intl/es/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
similarity index 92%
rename from docs/html-intl/intl/es/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
index e423e6a..194bfd7 100644
--- a/docs/html-intl/intl/es/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>En este documento</h2>
   <ol>
     <li><a href="#accessing">Acceder a un directorio de almacenamiento externo</a></li>
@@ -71,8 +71,8 @@
 <p>El sistema intenta otorgar acceso al directorio externo y, si
 es necesario, confirma el acceso con el usuario usando una IU simplificada:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Imagen 1.</strong> Una aplicación solicitando
 acceso al directorio Pictures.</p>
 
@@ -138,8 +138,8 @@
 de usuario. Si el usuario deniega una solicitud y la aplicación solicita acceso
  nuevamente, aparece la casilla de verificación <b>Don't ask again</b> en la IU:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>Figura 1.</strong> Una aplicación que presenta una
 segunda solicitud para obtener acceso a medios extraíbles.</p>
 
diff --git a/docs/html-intl/intl/es/preview/features/security-config.jd b/docs/html-intl/intl/es/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/es/preview/features/security-config.jd
rename to docs/html-intl/intl/es/training/articles/security-config.jd
index 8c3db64..7deadbe 100644
--- a/docs/html-intl/intl/es/preview/features/security-config.jd
+++ b/docs/html-intl/intl/es/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>En este documento</h2>
 <ol>
diff --git a/docs/html-intl/intl/es/preview/features/data-saver.jd b/docs/html-intl/intl/es/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/es/preview/features/data-saver.jd
rename to docs/html-intl/intl/es/training/basics/network-ops/data-saver.jd
index 458e662..d1d6c34 100644
--- a/docs/html-intl/intl/es/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/es/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       En este documento
     </h2>
@@ -231,4 +231,4 @@
     Se quita el UID del paquete específico de la lista blanca para bloquear el uso de datos
  medidos en segundo plano mientras el ahorro de datos está habilitado.
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/es/preview/features/picture-in-picture.jd b/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
similarity index 98%
rename from docs/html-intl/intl/es/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
index 36c0c57..30c9e8b 100644
--- a/docs/html-intl/intl/es/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>En este documento</h2>
 <ol>
@@ -59,7 +59,7 @@
 otro video en la pantalla principal, la ventana de PIP se cierra
 automáticamente. Los usuarios también pueden cerrar la ventana de PIP desde Recents.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Imagen 1.</strong> Un video picture-in-picture
 visible en una esquina de la pantalla mientras el usuario explora contenido
 en la pantalla principal.</p>
@@ -116,7 +116,7 @@
 <p>Agregar un botón PIP a la barra de control de medios le permite al usuario cambiar
 fácilmente al modo PIP y seguir controlando la reproducción de video.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Imagen 1.</strong> Un botón
 PIP en una barra de control de medios.</p>
 
diff --git a/docs/html-intl/intl/es/preview/features/tv-recording-api.jd b/docs/html-intl/intl/es/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/es/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/es/training/tv/tif/content-recording.jd
index 855db8d..9e8a346 100644
--- a/docs/html-intl/intl/es/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/es/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>En este documento</h2>
   <ol>
     <li><a href="#supporting">Indicar la compatibilidad para la grabación</a></li>
diff --git a/docs/html-intl/intl/in/preview/guide.jd b/docs/html-intl/intl/in/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/in/preview/guide.jd
rename to docs/html-intl/intl/in/about/versions/marshmallow/android-6.0-testing.jd
index a229beb..94bc74c 100644
--- a/docs/html-intl/intl/in/preview/guide.jd
+++ b/docs/html-intl/intl/in/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Dalam dokumen ini</h2>
       <ol>
         <li><a href="#runtime-permissions">Izin Pengujian</a></li>
diff --git a/docs/html-intl/intl/in/preview/behavior-changes.jd b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/in/preview/behavior-changes.jd
rename to docs/html-intl/intl/in/about/versions/nougat/android-7.0-changes.jd
index 521312e..af01cd2 100644
--- a/docs/html-intl/intl/in/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Dalam dokumen ini</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Gambar 1.</strong> Ilustrasi tentang cara Istirahatkan menerapkan pembatasan
   aktivitas sistem level pertama untuk meningkatkan daya tahan baterai.
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>Gambar 2.</strong> Ilustrasi tentang cara Istirahatkan menerapkan pembatasan
   aktivitas sistem level kedua setelah perangkat diam selama jangka waktu tertentu.
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/in/preview/samples.jd b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-samples.jd
similarity index 76%
rename from docs/html-intl/intl/in/preview/samples.jd
rename to docs/html-intl/intl/in/about/versions/nougat/android-7.0-samples.jd
index 481260c..d31c0c0 100644
--- a/docs/html-intl/intl/in/preview/samples.jd
+++ b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">Playground Multi-Jendela</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   Contoh ini memperagakan cara memanfaatkan antarmuka pengguna
   multi-jendela bersama aplikasi Anda.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Pemberitahuan Aktif</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Ini adalah contoh yang sudah ada sebelumnya, menampilkan layanan sederhana yang mengirimkan
    pemberitahuan menggunakan NotificationCompat. Setiap percakapan yang belum dibaca dari pengguna
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Layanan Perpesanan</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   Ini adalah contoh yang telah ada sebelumnya yang memperagakan cara menggunakan
   NotificationManager untuk memberi tahu jumlah pemberitahuan yang saat ini ditampilkan
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Direct Boot</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Contoh ini memperagakan cara menyimpan dan mengakses data dalam penyimpanan yang dienkripsi
   dengan perangkat yang selalu tersedia saat perangkat booting.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Scoped Directory Access</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Contoh ini memperagakan cara membaca dan menulis data dari direktori
   spesifik, sekaligus meminta izin lebih sedikit.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
   Dapatkan di GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/in/preview/guide.jd b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/in/preview/guide.jd
copy to docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd
index a229beb..94bc74c 100644
--- a/docs/html-intl/intl/in/preview/guide.jd
+++ b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Dalam dokumen ini</h2>
       <ol>
         <li><a href="#runtime-permissions">Izin Pengujian</a></li>
diff --git a/docs/html-intl/intl/in/preview/api-overview.jd b/docs/html-intl/intl/in/about/versions/nougat/android-7.0.jd
similarity index 97%
rename from docs/html-intl/intl/in/preview/api-overview.jd
rename to docs/html-intl/intl/in/about/versions/nougat/android-7.0.jd
index b652dd9..ff8af12 100644
--- a/docs/html-intl/intl/in/preview/api-overview.jd
+++ b/docs/html-intl/intl/in/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Fitur-fitur Utama bagi Pengembang</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>Gambar 1.</strong> Aplikasi yang berjalan dalam mode layar terbagi.
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">Data Saver</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Gambar 4.</strong> Data Saver di Settings.
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Gambar 5.</strong> Quick Settings Tile dalam bayangan pemberitahuan.
diff --git a/docs/html-intl/intl/in/preview/index.jd b/docs/html-intl/intl/in/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/in/preview/index.jd
rename to docs/html-intl/intl/in/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/in/preview/j8-jack.jd b/docs/html-intl/intl/in/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/in/preview/j8-jack.jd
rename to docs/html-intl/intl/in/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/in/preview/features/multi-window.jd b/docs/html-intl/intl/in/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/in/preview/features/multi-window.jd
rename to docs/html-intl/intl/in/guide/topics/ui/multi-window.jd
index 3f75def..5e7b3d9 100644
--- a/docs/html-intl/intl/in/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/in/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Dalam dokumen ini</h2>
       <ol>
         <li><a href="#overview">Ringkasan</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>Gambar 1.</strong> Dua aplikasi berjalan berdampingan dalam mode layar terbagi.
 </p>
diff --git a/docs/html-intl/intl/in/preview/_book.yaml b/docs/html-intl/intl/in/preview/_book.yaml
deleted file mode 100644
index 88d6c71..0000000
--- a/docs/html-intl/intl/in/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: Ringkasan Program
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ringkasan Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: Dukungan dan Catatan Rilis
-  path: /preview/support.html
-
-- title: Menyiapkan Pratinjau
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Pratinjau
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: Menguji pada Perangkat
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: Perubahan Perilaku
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: Optimalisasi Latar Belakang
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: Bahasa dan Lokal
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: Dukungan Multi-Jendela
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: Pemberitahuan
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Data Saver
-    path: /preview/features/data-saver.html
-  - title: Perekaman TV
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: Konfigurasi Keamanan Jaringan
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: Dukungan ICU4J
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Fitur Bahasa Java 8
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Pembaruan Android for Work
-    path: /preview/features/afw.html
-  - title: Scoped Directory Access
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: Contoh
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: Perjanjian Lisensi
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/in/preview/download-ota.jd b/docs/html-intl/intl/in/preview/download-ota.jd
deleted file mode 100644
index 4adf9bb..0000000
--- a/docs/html-intl/intl/in/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=Menerapkan Citra OTA Perangkat
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Sebelum mengunduh dan memasang
-      komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
-    berikut.</p>
-
-    <h2 class="norule">Ketentuan dan Persyaratan</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
-
-1. Pengantar
-
-1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Pratinjau" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Pratinjau, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan Pratinjau oleh Anda.
-
-1.2 "Android" berarti tumpukan perangkat lunak Android untuk perangkat, seperti yang tersedia di Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
-
-1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
-
-1.4 "Google" berarti Google Inc., perusahaan asal Delaware dengan kantor bisnis utama di 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Menerima Perjanjian Lisensi
-
-2.1 Agar bisa menggunakan Pratinjau, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan Pratinjau jika tidak menerima Perjanjian Lisensi.
-
-2.2 Dengan mengklik untuk menerima dan/atau menggunakan Pratinjau, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
-
-2.3 Anda tidak boleh menggunakan Pratinjau dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Pratinjau berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Pratinjau.
-
-2.4 Jika Anda akan menggunakan Pratinjau di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Pratinjau atas nama perusahaan Anda atau entitas lainnya.
-
-3. Lisensi Pratinjau dari Google
-
-3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi yang tidak bisa disublisensikan, non-eksklusif, tidak bisa dialihkan, bebas royalti, bersifat global dan terbatas dalam menggunakan Pratinjau hanya untuk keperluan pengembangan aplikasi yang kompatibel untuk diimplementasikan pada Android.
-
-3.2 Anda tidak boleh menggunakan Pratinjau ini untuk mengembangkan aplikasi platform lain (termasuk implementasi yang tidak kompatibel pada Android) atau untuk mengembangkan SDK lain. Anda tentu saja bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi yang tidak kompatibel pada Android, karena Pratinjau ini tidak digunakan untuk tujuan tersebut.
-
-3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Pratinjau, termasuk Hak Kekayaan Intelektual yang terdapat dalam Pratinjau. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
-
-3.4 Anda tidak boleh menggunakan Pratinjau untuk tujuan apa pun yang tidak secara tersurat diizinkan dalam Perjanjian Lisensi ini. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Pratinjau atau bagian apa pun dari Pratinjau; atau (b) memuat bagian apa pun dari Pratinjau ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Pratinjau dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Pratinjau.
-
-3.5 Penggunaan, reproduksi dan distribusi komponen Pratinjau yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
-
-3.6 Anda setuju bahwa bentuk dan sifat Pratinjau yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Pratinjau mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Pratinjau sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Pratinjau (atau fitur apa pun dalam Pratinjau) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
-
-3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
-
-3.8 Anda setuju bahwa Anda tidak akan membuang, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Pratinjau.
-
-4. Penggunaan Pratinjau oleh Anda
-
-4.1 Google setuju bahwa Perjanjian Lisensi ini tidak memberi Google hak, kuasa, dan kepentingan hukum dari Anda (atau pemberi lisensi Anda) dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Pratinjau ini, termasuk kekayaan intelektual yang ada dalam aplikasi tersebut.
-
-4.2 Anda setuju untuk menggunakan Pratinjau dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi, dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau panduan dalam yurisdiksi terkait (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang terkait).
-
-4.3 Anda setuju jika Anda menggunakan Pratinjau untuk mengembangkan aplikasi, Anda akan melindungi hak privasi dan hak hukum pengguna. Jika pengguna memberikan nama pengguna, sandi, atau informasi login atau informasi pribadinya, Anda harus membuat pengguna tersebut menyadari bahwa informasi yang diberikannya akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, dan untuk tujuan terbatas di mana, pengguna tersebut telah memberikan izin kepada Anda untuk melakukannya.
-
-4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Pratinjau, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti layanan Google atau pihak ketiga lainnya.
-
-4.5 Anda setuju bertanggung jawab penuh untuk (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) data, materi, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google).
-
-4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga lainnya) akibat pelanggaran tersebut.
-
-4.7 Pratinjau ini dalam tahap pengembangan, dan pengujian serta masukan Anda merupakan bagian penting dalam proses pengembangan. Dengan menggunakan Pratinjau, Anda mengakui bahwa implementasi beberapa fitur masih dalam tahap pengembangan dan bahwa Anda tidak seharusnya mengandalkan Pratinjau berfungsi sepenuhnya sebagaimana pada rilis stabil. Anda setuju untuk tidak mendistribusikan atau mengirimkan untuk umum penggunaan aplikasi menggunakan Pratinjau karena Pratinjau ini tidak akan lagi didukung setelah Android SDK dirilis secara resmi.
-
-5. Kredensial Pengembang Anda
-
-5.1 Anda setuju bertanggung jawab untuk menjaga kerahasiaan semua kredensial pengembang yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab penuh terhadap semua aplikasi yang dikembangkan dengan kredensial pengembang Anda.
-
-6. Privasi dan Informasi
-
-6.1 Untuk terus berinovasi dan meningkatkan Pratinjau, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Pratinjau dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Pratinjau akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
-
-6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Pratinjau dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy.
-
-7. Aplikasi Pihak Ketiga
-
-7.1 Jika Anda menggunakan Pratinjau untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, materi atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, materi atau sumber daya tersebut. Anda memahami bahwa semua data, materi atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, materi, atau sumber daya pihak ketiga tersebut.
-
-7.2 Anda harus menyadari bahwa data, materi dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, materi, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
-
-7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, materi, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
-
-8. Menggunakan Google API
-
-8.1 Google API
-
-8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
-
-8.1.2 Jika Anda menggunakan API dalam bentuk apa pun untuk mengambil data pengguna dari Google, Anda mengakui dan menyetujui bahwa Anda akan mengambil data hanya dengan persetujuan yang jelas dari pengguna dan hanya bila, dan sebatas keperluan yang diizinkan oleh pengguna tersebut untuk Anda lakukan.
-
-9. Mengakhiri Perjanjian Lisensi
-
-9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
-
-9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Pratinjau dan kredensial pengembang yang relevan.
-
-9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
-
-9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
-(A) Google berhenti menyediakan Pratinjau atau bagian Pratinjau tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
-(B) Google mengeluarkan versi rilis final dari Android SDK.
-
-9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Pratinjau, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
-
-10. SANGGAHAN
-
-10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PRATINJAU OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PRATINJAU INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
-
-10.2 PENGGUNAAN PRATINJAU DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PRATINJAU OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAAN TERSEBUT. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PRATINJAU BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
-
-10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
-
-11. PEMBATASAN KEWAJIBAN
-
-11.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN DAN AFILIASINYA, DAN PEMBERI LISENSINYA TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI KEWAJIBAN TERHADAP SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, JANGKA PANJANG ATAU GANTI RUGI YANG DIAKIBATKAN OLEH ANDA, TERMASUK HILANGNYA DATA, WALAUPUN GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU SEHARUSNYA MENGETAHUI KEMUNGKINAN TIMBULNYA KEHILANGAN TERSEBUT.
-
-12. Penggantian Kerugian
-
-12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Pratinjau oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Pratinjau yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
-
-13. Perubahan pada Perjanjian Lisensi
-
-13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Pratinjau. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Pratinjau.
-
-14. Ketentuan Hukum Umum
-
-14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Pratinjau oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Pratinjau.
-
-14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
-
-14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak valid, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
-
-14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
-
-14.5 PEMBATASAN EKSPOR. PRATINJAU TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PRATINJAU. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR
-
-14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari pihak lain.
-
-14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, akan diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Saya telah membaca dan menyetujui ketentuan dan persyaratan di atas</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  Halaman ini menyediakan tautan ke citra perangkat lewat jaringan seluler (OTA) dan menjelaskan
-  cara menerapkan pembaruan OTA secara manual ke suatu perangkat. Prosedur ini berguna
-  untuk memulihkan perangkat yang menerima pembaruan OTA melalui Android Beta
-  Program dan tidak jalan setelah pembaruan dipasang.
-</p>
-
-<h2 id="install-ota">Memasang Citra OTA</h2>
-
-<p></p>
-
-<p>Untuk pasang OTA pada perangkat:</p>
-
-<ol>
-  <li>Unduh citra perangkat OTA dari tabel di bawah.</li>
-  <li>Boot ulang perangkat ke dalam mode Recovery. Untuk informasi selengkapnya mengenai cara masuk ke mode ini
-    di perangkat Nexus, lihat
-    <a href="https://support.google.com/nexus/answer/4596836">Setel ulang perangkat Nexus
-      Anda ke setelan pabrik</a>.
-  </li>
-  <li>Pada perangkat, pilih <strong>ADB sideload</strong>.</li>
-  <li>Hubungkan perangkat ke komputer dengan lingkungan pengembangan Android
-     yang telah dimuat dan alat Android Debug Bridge (adb) yang telah dipasang.</li>
-  <li>Jalankan perintah berikut:
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">Citra OTA Perangkat</h2>
-
-<table>
-  <tr>
-    <th scope="col">Perangkat</th>
-    <th scope="col">Unduhan / Checksum</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verifikasi apakah TOS disetujui */
-    if ($("input#agree").is(":checked")) {
-      /* tampilkan tombol unduh */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/in/preview/download.jd b/docs/html-intl/intl/in/preview/download.jd
deleted file mode 100644
index e6714bb..0000000
--- a/docs/html-intl/intl/in/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=Menguji pada Perangkat
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Sebelum mengunduh dan memasang
-      komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
-    berikut.</p>
-
-    <h2 class="norule">Ketentuan dan Persyaratan</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
-
-1. Pengantar
-
-1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Pratinjau" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Pratinjau, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan Pratinjau oleh Anda.
-
-1.2 "Android" berarti tumpukan perangkat lunak Android untuk perangkat, seperti yang tersedia di Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
-
-1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
-
-1.4 "Google" berarti Google Inc., perusahaan asal Delaware dengan kantor bisnis utama di 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Menerima Perjanjian Lisensi
-
-2.1 Agar bisa menggunakan Pratinjau, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan Pratinjau jika tidak menerima Perjanjian Lisensi.
-
-2.2 Dengan mengklik untuk menerima dan/atau menggunakan Pratinjau, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
-
-2.3 Anda tidak boleh menggunakan Pratinjau dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Pratinjau berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Pratinjau.
-
-2.4 Jika Anda akan menggunakan Pratinjau di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Pratinjau atas nama perusahaan Anda atau entitas lainnya.
-
-3. Lisensi Pratinjau dari Google
-
-3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi yang tidak bisa disublisensikan, non-eksklusif, tidak bisa dialihkan, bebas royalti, bersifat global dan terbatas dalam menggunakan Pratinjau hanya untuk keperluan pengembangan aplikasi yang kompatibel untuk diimplementasikan pada Android.
-
-3.2 Anda tidak boleh menggunakan Pratinjau ini untuk mengembangkan aplikasi platform lain (termasuk implementasi yang tidak kompatibel pada Android) atau untuk mengembangkan SDK lain. Anda tentu saja bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi yang tidak kompatibel pada Android, karena Pratinjau ini tidak digunakan untuk tujuan tersebut.
-
-3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Pratinjau, termasuk Hak Kekayaan Intelektual yang terdapat dalam Pratinjau. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
-
-3.4 Anda tidak boleh menggunakan Pratinjau untuk tujuan apa pun yang tidak secara tersurat diizinkan dalam Perjanjian Lisensi ini. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Pratinjau atau bagian apa pun dari Pratinjau; atau (b) memuat bagian apa pun dari Pratinjau ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Pratinjau dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Pratinjau.
-
-3.5 Penggunaan, reproduksi dan distribusi komponen Pratinjau yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
-
-3.6 Anda setuju bahwa bentuk dan sifat Pratinjau yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Pratinjau mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Pratinjau sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Pratinjau (atau fitur apa pun dalam Pratinjau) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
-
-3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
-
-3.8 Anda setuju bahwa Anda tidak akan membuang, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Pratinjau.
-
-4. Penggunaan Pratinjau oleh Anda
-
-4.1 Google setuju bahwa Perjanjian Lisensi ini tidak memberi Google hak, kuasa, dan kepentingan hukum dari Anda (atau pemberi lisensi Anda) dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Pratinjau ini, termasuk kekayaan intelektual yang ada dalam aplikasi tersebut.
-
-4.2 Anda setuju untuk menggunakan Pratinjau dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi, dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau panduan dalam yurisdiksi terkait (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang terkait).
-
-4.3 Anda setuju jika Anda menggunakan Pratinjau untuk mengembangkan aplikasi, Anda akan melindungi hak privasi dan hak hukum pengguna. Jika pengguna memberikan nama pengguna, sandi, atau informasi login atau informasi pribadinya, Anda harus membuat pengguna tersebut menyadari bahwa informasi yang diberikannya akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, dan untuk tujuan terbatas di mana, pengguna tersebut telah memberikan izin kepada Anda untuk melakukannya.
-
-4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Pratinjau, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti layanan Google atau pihak ketiga lainnya.
-
-4.5 Anda setuju bertanggung jawab penuh untuk (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) data, materi, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google).
-
-4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga lainnya) akibat pelanggaran tersebut.
-
-4.7 Pratinjau ini dalam tahap pengembangan, dan pengujian serta masukan Anda merupakan bagian penting dalam proses pengembangan. Dengan menggunakan Pratinjau, Anda mengakui bahwa implementasi beberapa fitur masih dalam tahap pengembangan dan bahwa Anda tidak seharusnya mengandalkan Pratinjau berfungsi sepenuhnya sebagaimana pada rilis stabil. Anda setuju untuk tidak mendistribusikan atau mengirimkan untuk umum penggunaan aplikasi menggunakan Pratinjau karena Pratinjau ini tidak akan lagi didukung setelah Android SDK dirilis secara resmi.
-
-5. Kredensial Pengembang Anda
-
-5.1 Anda setuju bertanggung jawab untuk menjaga kerahasiaan semua kredensial pengembang yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab penuh terhadap semua aplikasi yang dikembangkan dengan kredensial pengembang Anda.
-
-6. Privasi dan Informasi
-
-6.1 Untuk terus berinovasi dan meningkatkan Pratinjau, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Pratinjau dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Pratinjau akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
-
-6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Pratinjau dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy.
-
-7. Aplikasi Pihak Ketiga
-
-7.1 Jika Anda menggunakan Pratinjau untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, materi atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, materi atau sumber daya tersebut. Anda memahami bahwa semua data, materi atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, materi, atau sumber daya pihak ketiga tersebut.
-
-7.2 Anda harus menyadari bahwa data, materi dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, materi, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
-
-7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, materi, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
-
-8. Menggunakan Google API
-
-8.1 Google API
-
-8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
-
-8.1.2 Jika Anda menggunakan API dalam bentuk apa pun untuk mengambil data pengguna dari Google, Anda mengakui dan menyetujui bahwa Anda akan mengambil data hanya dengan persetujuan yang jelas dari pengguna dan hanya bila, dan sebatas keperluan yang diizinkan oleh pengguna tersebut untuk Anda lakukan.
-
-9. Mengakhiri Perjanjian Lisensi
-
-9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
-
-9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Pratinjau dan kredensial pengembang yang relevan.
-
-9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
-
-9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
-(A) Google berhenti menyediakan Pratinjau atau bagian Pratinjau tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
-(B) Google mengeluarkan versi rilis final dari Android SDK.
-
-9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Pratinjau, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
-
-10. SANGGAHAN
-
-10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PRATINJAU OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PRATINJAU INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
-
-10.2 PENGGUNAAN PRATINJAU DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PRATINJAU OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAAN TERSEBUT. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PRATINJAU BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
-
-10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
-
-11. PEMBATASAN KEWAJIBAN
-
-11.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN DAN AFILIASINYA, DAN PEMBERI LISENSINYA TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI KEWAJIBAN TERHADAP SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, JANGKA PANJANG ATAU GANTI RUGI YANG DIAKIBATKAN OLEH ANDA, TERMASUK HILANGNYA DATA, WALAUPUN GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU SEHARUSNYA MENGETAHUI KEMUNGKINAN TIMBULNYA KEHILANGAN TERSEBUT.
-
-12. Penggantian Kerugian
-
-12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Pratinjau oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Pratinjau yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
-
-13. Perubahan pada Perjanjian Lisensi
-
-13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Pratinjau. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Pratinjau.
-
-14. Ketentuan Hukum Umum
-
-14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Pratinjau oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Pratinjau.
-
-14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
-
-14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak valid, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
-
-14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
-
-14.5 PEMBATASAN EKSPOR. PRATINJAU TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PRATINJAU. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR
-
-14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari pihak lain.
-
-14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, akan diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Saya telah membaca dan menyetujui ketentuan dan persyaratan di atas</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Dalam dokumen ini</h2>
-      <ol>
-        <li><a href="#device-preview">Menyiapkan perangkat keras</a>
-          <ol>
-            <li><a href="#ota">Mendapatkan pembaruan lewat jaringan seluler</a></li>
-            <li><a href="#flash">Mem-flash perangkat secara manual</a></li>
-            <li><a href="#revertDevice">Mencopot pemasangan</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Menyiapkan emulator</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Untuk menjalankan dan menguji aplikasi Anda pada platform baru, Anda perlu menyiapkan lingkungan waktu proses
-  Android N. Anda bisa melakukannya dengan salah satu cara ini:
-</p>
-
-<ul>
-  <li>Pasang Android N pada perangkat keras yang didukung, atau</li>
-  <li>Siapkan emulator Android yang menjalankan Android N</li>
-</ul>
-
-<p>
-  Jika Anda ingin lingkungan untuk pengujian kompatibilitas dasar aplikasi Anda pada
-  platform baru, maka Anda hanya perlu APK saat ini dan perangkat keras atau
-  emulator. Anda tidak perlu memperbarui lingkungan
-  pengembangan penuh untuk melakukan pengujian dasar.
-</p>
-
-<p>
-  Jika Anda ingin memodifikasi aplikasi untuk menargetkan Android N atau menggunakan Android N API baru,
-  Anda perlu menyiapkan lingkungan pengembangan yang telah diperbarui untuk mendukung
-  Android N. <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan
-  Android N</a> berisi detail mengenai hal ini.
-</p>
-
-
-<h2 id="device-preview">Menyiapkan perangkat keras</h2>
-
-<p>
-  N Developer Preview menawarkan pembaruan sistem untuk berbagai jenis perangkat keras
-  yang bisa Anda gunakan untuk menguji aplikasi Anda, dari ponsel hingga tablet dan TV.
-</p>
-
-<p>
-  Jika Anda memiliki akses ke perangkat yang didukung, Anda bisa memperbaruinya ke build tahapan pencapaian Developer
-  Preview dengan salah satu cara berikut:
-</p>
-
-<ul>
-  <li><strong>Daftarkan perangkat dalam pembaruan sistem OTA otomatis</strong> melalui
-  <a href="https://g.co/androidbeta">Android Beta Program</a>. Setelah didaftarkan, perangkat Anda akan secara teratur menerima
-  pembaruan lewat jaringan seluler (OTA) untuk semua build tahapan pencapaian dalam N Developer Preview. Pendekatan
-  ini disarankan karena akan membantu Anda melakukan transisi secara mulus dari lingkungan saat ini
-  ke berbagai rilis N Developer Preview.</li>
-  <li><strong>Unduh citra sistem Developer Preview dan flash perangkat</strong>.
-  Pembaruan OTA tidak disediakan secara otomatis untuk perangkat yang Anda flash secara manual, namun
-  Anda bisa mendaftarkan perangkat tersebut dalam Android Beta Program untuk memperoleh pembaruan OTA. </li>
-</ul>
-
-<h3 id="ota">Daftarkan perangkat dalam pembaruan OTA otomatis</h3>
-
-<p>
-  Jika Anda memiliki akses ke perangkat yang didukung (lihat daftar dalam tabel
-  Unduhan), Anda bisa menerima pembaruan lewat jaringan seluler ke versi pratinjau Android
-  dengan mendaftarkan perangkat itu ke <a href="https://g.co/androidbeta">Android Beta Program</a>. Pembaruan ini
-  secara otomatis akan diunduh dan memperbarui perangkat Anda seperti
-  pembaruan sistem resmi.
-</p>
-
-<p>
-  Anda bisa membatalkan pendaftaran perangkat kapan saja. Perangkat akan menerima pembaruan OTA
-  ke versi produksi terbaru Android yang tersedia untuk perangkat itu
-  (misalnya, Android 6.0 Marshmallow). Pembaruan mengharuskan penyetelan ulang
-  perangkat secara penuh, jadi data pengguna pada perangkat itu akan dibuang. Pastikan <strong>mencadangkan
-  data penting</strong> sebelum membatalkan pendaftaran perangkat.
-</p>
-
-<p>
-  Untuk informasi selengkapnya dan untuk mendaftarkan perangkat Anda, lihat
-  situs web <a href="https://g.co/androidbeta">Android Beta Program</a>.
-</p>
-
-<p class="note"><strong>Catatan:</strong>
-  Membatalkan pendaftaran mengharuskan penyetelan ulang perangkat secara penuh. Cadangkan
-  data penting terlebih dahulu.
-</p>
-
-<h3 id="flash">Mem-flash perangkat secara manual</h3>
-
-<p>
-  Anda bisa mengunduh citra sistem Developer Preview terbaru dan
-  mem-flash-nya secara manual ke perangkat Anda kapan saja. Lihat tabel di bawah untuk mengunduh citra
- sistem perangkat pengujian Anda. Mem-flash perangkat secara manual berguna jika Anda harus
-  mengontrol secara persis lingkungan pengujian tersebut atau harus memasang ulang secara rutin,
-  misalnya untuk pengujian otomatis.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  Memasang citra sistem pada perangkat <strong>akan membuang semua data dari
-  perangkat</strong>, karena itu Anda harus mencadangkan data terlebih dahulu.
-</p>
-
-<p>
-  Setelah Anda mencadangkan data perangkat dan mengunduh citra sistem di bawah ini yang
-  sesuai dengan perangkat Anda, ikuti petunjuk di <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
-  untuk mem-flash citra ini ke perangkat Anda.
-</p>
-
-<p>
-  Citra sistem yang di-flash secara manual <strong>tidak secara otomatis akan
-  menerima pembaruan OTA</strong> ke build tahapan pencapaian Developer Preview
- terbaru. Pastikan lingkungan Anda selalu diperbarui dan lakukan flash
- citra sistem yang baru di setiap tahapan pencapaian Developer Preview.
-</p>
-
-<p>
-  Jika Anda memutuskan ingin mendapatkan pembaruan OTA setelah mem-flash perangkat secara manual,
-  Anda tinggal mendaftarkan perangkat dalam <a href="https://g.co/androidbeta">
-  Android Beta Program</a>. Anda bisa mendaftarkan perangkat kapan saja untuk menerima pembaruan Pratinjau
-  berikutnya lewat jaringan seluler.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Perangkat</th>
-    <th scope="col">Unduhan / Checksum</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Mencopot pemasangan Pratinjau dari perangkat</h3>
-
-<p>
-  Jika Anda ingin mencopot pemasangan Pratinjau dari perangkat, Anda bisa melakukannya dengan salah satu cara
-  ini: </p>
-  <ul>
-    <li><strong>Dapatkan citra sistem sesuai spesifikasi pabrik</strong> kemudian flash
-    secara manual ke perangkat.
-      <ul>
-          <li>Untuk <strong>perangkat Nexus dan Pixel C</strong>, lihat halaman
-         <a href="http://developers.google.com/android/nexus/images">Citra Pabrik
-        untuk Perangkat Nexus</a> untuk mengunduhnya. </li>
-        <li>Untuk <strong>perangkat lainnya</strong>, hubungi produsen perangkat
-        secara langsung. Atau, jika perangkat didukung
-        dalam Android Beta Program, Anda bisa mendaftarkan perangkat dalam
-        program kemudian membatalkan pendaftarannya (lihat di bawah).</li>
-      </ul>
-    </li>
-    <li><strong>Batalkan pendaftaran perangkat dari Android Beta Program</strong>. Jika
-    perangkat telah terdaftar dalam <a href="https://g.co/androidbeta">Android Beta
-    Program</a>, apa pun perangkatnya, Anda cukup membatalkan pendaftarannya dari program tersebut.
-  <p>
-    Perangkat akan menerima pembaruan OTA ke versi produksi terbaru
-    Android yang tersedia untuk perangkat itu (misalnya, Android 6.0 Marshmallow).
-    Pembaruan mengharuskan penyetelan ulang perangkat secara penuh, jadi data pengguna pada perangkat itu akan
-    dibuang. Pastikan Anda <strong>mencadangkan data penting</strong> sebelum
-    membatalkan pendaftaran perangkat.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Catatan:</strong>
-  Mencopot pemasangan citra sistem Developer Preview sebelum
-  program berakhir mengharuskan penyetelan ulang perangkat secara penuh dan membuang semua data pengguna
-  pada perangkat.
-</p>
-
-
-<h2 id="setupAVD">Menyiapkan emulator</h2>
-
-<p>Untuk menggunakan Android Emulator guna menjalankan Android N Preview, Anda perlu
-mengunduh Android N Preview SDK dan membuat perangkat maya untuk
-emulator.</p>
-
-<p>Pertama, unduh Android N Preview SDK sebagai berikut (jika Anda
-sudah memperolehnya saat <a href="{@docRoot}preview/setup-sdk.html">menyiapkan
-pengembangan Android N</a>, Anda bisa lewati bagian ini):
-
-<ol>
-  <li>Di Android Studio, buka dialog Settings
-   (<strong>File &gt; Settings</strong> pada Windows/Linux, atau
-   <strong>Android Studio &gt; Preferences</strong> pada Mac). Di panel
-   kiri, pilih <strong>Appearance &amp; Behavior &gt;
-   System Settings &gt; Android SDK</strong>.
-
-  <li>Klik tab <strong>SDK Platforms</strong>, kemudian pilih kotak centang
-  <strong>Android N Preview</strong>.</li>
-
-  <li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
-    kotak centang <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
-
-  </li>
-
-  <li>Klik <strong>OK</strong>, dan terima
-    perjanjian lisensi untuk setiap paket yang akan dipasang.
-  </li>
-</ol>
-
-<p>Sekarang Anda seharusnya telah memiliki <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong>, dan <strong>SDK Tools
-25.0.9</strong>. Jika Anda tidak memperbarui SDK Tools ke 25.0.9, maka Anda tidak akan
-dapat menjalankan citra sistem x86_64 untuk Android N.</p>
-
-
-<p>Sekarang buatlah perangkat maya dengan citra sistem Android N:</p>
-
-<ol>
-  <li>Buka AVD Manager dengan memilih <strong>Tools &gt; Android &gt;
-    AVD Manager</strong>.</li>
-  <li>Klik <strong>Create Virtual Device</strong>.</li>
-  <li>Pilih perangkat misalnya Nexus 5X, Nexus 6P, Nexus 9, atau Android TV,
-    kemudian klik <strong>Next</strong>.</li>
-  <li>Pilih citra sistem <strong>N</strong> (dengan
-    <strong>x86</strong> ABI), kemudian klik <strong>Next</strong>.
-    (Hanya citra sistem x86 yang saat ini didukung dengan Android Emulator
-untuk Android N Preview.)
-  <li>Selesaikan konfigurasi AVD selanjutnya dan klik
-    <strong>Finish</strong>.</li>
-</ol>
-
-<p>Anda sekarang bisa meluncurkan Android Emulator dengan Android N Preview AVD.</p>
-
-<p>
-Untuk mendapatkan pengalaman terbaik di Android Emulator, pastikan Anda menggunakan
-Android Studio 2.1 atau yang lebih tinggi, yang mendukung <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>
-dengan kinerja jauh lebih cepat dibandingkan Emulator di
-Android Studio 1.5.</p>
-
-<p>Untuk informasi selengkapnya tentang membuat perangkat maya, lihat <a href="{@docRoot}tools/devices/index.html">Mengelola Perangkat Maya</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verifikasi apakah TOS disetujui */
-    if ($("input#agree").is(":checked")) {
-      /* tampilkan tombol unduh */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/in/preview/features/afw.jd b/docs/html-intl/intl/in/preview/features/afw.jd
deleted file mode 100644
index 643fab2..0000000
--- a/docs/html-intl/intl/in/preview/features/afw.jd
+++ /dev/null
@@ -1,552 +0,0 @@
-page.title=Pembaruan Android for Work
-page.metaDescription=API dan fitur baru Android for Work di Android N.
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Dalam dokumen ini</h2>
-      <ol>
-        <li><a href="#qr">Penyediaan Kode QR
-                </a></li>
-
-        <li><a href="#sec-challenge">Pertanyaan Keamanan Profil Kerja
-                </a></li>
-
-        <li><a href="#suspend">Menonaktifkan Akses ke Aplikasi
-                </a></li>
-
-        <li><a href="#toggle-work">Beralih Mode Kerja
-                </a></li>
-
-        <li><a href="#always-on-vpn">Always-On VPN
-                </a></li>
-
-        <li><a href="#contacts">Integrasi Kontak dengan Profil Kerja
-                </a></li>
-
-        <li><a href="#remote-reboot">Boot Ulang Jarak Jauh
-                </a></li>
-
-        <li><a href="#disable-roaming">Menonaktifkan Roaming Data
-                </a></li>
-
-        <li><a href="#process-logging">Pencatatan Proses Enterprise
-                </a></li>
-
-        <li><a href="#bug-reports">Laporan Bug Jarak Jauh
-                </a></li>
-
-        <li><a href="#remove-cert">Membuang Sertifikat Klien
-                </a></li>
-
-        <li><a href="#grant-cert-on-install">Memberi Akses ke Sertifikat Klien
-                saat Pemasangan</a></li>
-
-        <li><a href="#ui-policy">Transparansi Kebijakan UI Sistem
-                </a></li>
-
-        <li><a href="#restrictions-mgmt">Penyempurnaan Manajemen Pembatasan Aplikasi
-                </a></li>
-
-        <li><a href="#location-off">Tombol Lokasi Nonaktif
-                </a></li>
-
-        <li><a href="#custom-provisioning">Penyediaan yang Disesuaikan
-                </a></li>
-
-        <li><a href="#multi-wifi-ca">Multi-Sertifikat CA Wi-Fi
-                </a></li>
-
-        <li><a href="#custom-lock">Pesan Layar Kunci yang Disesuaikan
-                </a></li>
-
-        <li><a href="#work-connectionservice">ConnectionService Profil Kerja
-                </a></li>
-
-        <li><a href="#lock-wp">Mengunci Wallpaper
-                </a></li>
-
-        <li><a href="#lock-user-icon">Mengunci Ikon Pengguna
-                </a></li>
-
-        <li><a href="#health-monitoring">Pemantauan Kesehatan Perangkat
-                </a></li>
-
-      </ol>
-
-    <h2>Lihat Juga</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
-            N Preview SDK</a></li>
-    </ul>
-  </div>
-</div>
-
-<p>Dokumen ini menjelaskan fitur baru Android for Work yang disediakan di
-Android N.</p>
-
-<h2 id="qr">Penyediaan Kode QR</h2>
-
-<p>
-  Android for Work kini mendukung penggunaan kode QR untuk penyediaan perangkat
-  milik perusahaan. Wizard persiapan kini memungkinkan Anda memindai kode QR untuk penyediaan
-  perangkat.
-</p>
-
-<h2 id="sec-challenge">Pertanyaan Keamanan Profil Kerja</h2>
-
-<p>
-  Pemilik profil bisa mengharuskan pengguna menetapkan pertanyaan keamanan untuk aplikasi
-  yang berjalan dalam profil kerja. Sistem akan menampilkan pertanyaan keamanan bila
-  pengguna mencoba membuka aplikasi kerja apa pun. Jika pengguna berhasil menyelesaikan
-  pertanyaan keamanan, sistem akan membuat profil kerja dan mendekripsinya
-  jika diperlukan.
-</p>
-
-<p>
-  Jika pemilik profil mengirim intent {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} , sistem
-  akan menampilkan pertanyaan keamanan kepada pengguna. Pemilik profil juga dapat
-  mengirim intent <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> untuk
-  meminta pengguna menyetel kunci perangkat.
-</p>
-
-<p>
-  Pemilik profil dapat memilih untuk menyetel kebijakan sandi untuk pertanyaan pekerjaan
-  yang berbeda dari kebijakan sandi perangkat lainnya. Misalnya, panjang minimum
-  jawaban pertanyaan perangkat bisa berbeda dari panjang
-  yang diperlukan untuk sandi lainnya. Pemilik profil menyetel kebijakan pertanyaan
-  menggunakan metode{@link android.app.admin.DevicePolicyManager}
-  biasa, seperti {@link
-  android.app.admin.DevicePolicyManager#setPasswordQuality
-  setPasswordQuality()} dan {@link
-  android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-  setPasswordMinimumLength()}. Pemilik profil juga bisa menyetel penguncian perangkat,
-  dengan menggunakan instance {@link android.app.admin.DevicePolicyManager} yang dikembalikan secara langsung
-  oleh metode <code>DevicePolicyManager.getParentProfileInstance()</code>
-  baru. Selain itu, pemilik profil dapat menyesuaikan layar kredensial untuk
-  pertanyaan kerja menggunakan kelas {@link android.app.admin.DevicePolicyManager}
-  dengan metode <code>setOrganizationColor()</code> dan
-  <code>setOrganizationName()</code> baru.
-</p>
-
-<p>
-  Untuk mengetahui detail tentang kelas dan metode berikut, lihat halaman referensi
-  <code>DevicePolicyManager</code> di <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N Preview SDK</a>.
-</p>
-
-<h2 id="suspend">Menonaktifkan Akses ke Aplikasi</h2>
-
-<p>
-  Pemilik perangkat dan pemilik profil bisa menangguhkan akses untuk sementara ke paket
-  dengan memanggil metode <code>DevicePolicyManager.setPackagesSuspended()</code>
-  baru. Pemilik bisa menggunakan metode yang sama untuk mengaktifkan kembali paket tersebut.
-</p>
-
-<p>
-  Selagi paket ditangguhkan, maka tidak bisa memulai aktivitas, pemberitahuan ke
-  paket akan disembunyikan, dan entri aplikasi dalam <a href="{@docRoot}guide/components/recents.html">layar ringkasan</a> akan disembunyikan.
-  Paket yang ditangguhkan tidak muncul di <a href="{@docRoot}guide/components/recents.html">layar ringkasan</a>, dan
-  tidak bisa menampilkan dialog (termasuk toast dan snackbar). Juga tidak bisa memutar
-  audio atau menggetarkan perangkat.
-</p>
-
-<p>
-  Launcher harus menerapkan UI berbeda pada aplikasi yang ditangguhkan untuk menunjukkan
-  aplikasi saat ini tidak tersedia; misalnya, bisa merender ikon aplikasi
-  dalam warna abu-abu. Launcher bisa mengetahui apakah aplikasi ditangguhkan dengan memanggil metode
-  <code>DevicePolicyManager.getPackageSuspended()</code> baru.
-</p>
-
-<h2 id="toggle-work">Beralih Mode Kerja</h2>
-
-<p>
-  Pada perangkat dua-profil, pengguna bisa mengaktifkan dan menonaktifkan mode kerja. Selagi mode
-  kerja dinonaktifkan, profil yang dikelola akan dinonaktifkan untuk sementara. Aplikasi Profil Kerja,
-  sinkronisasi latar belakang, dan pemberitahuan semuanya dinonaktifkan, termasuk
-  aplikasi pemilik profil. Selagi profil kerja dinonaktifkan, sistem
-  akan menampilkan ikon status tetap untuk mengingatkan pengguna bahwa mereka tidak bisa meluncurkan aplikasi
-  kerja. Peluncur sistem menunjukkan bahwa aplikasi kerja dan widget tidak bisa
-  diakses.
-</p>
-
-<h2 id="always-on-vpn">Always-On VPN</h2>
-
-<p>
-  Pemilik perangkat dan pemilik profil bisa mengharuskan aplikasi kerja selalu terhubung
-  ke jaringan melalui VPN yang ditetapkan. Jika pemilik menyetel persyaratan ini,
-  perangkat secara otomatis akan memulai VPN itu saat booting.
-</p>
-
-<p>
-  Pemilik bisa menggunakan VPN dengan memanggil metode
-  <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> baru. Untuk mengetahui
-  apakah pemilik telah menyetel persyaratan VPN, panggil metode
-  <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> baru.
-</p>
-
-<p>
-  Karena sistem bisa secara langsung mengikat layanan VPN tanpa interaksi aplikasi,
-  klien VPN perlu menangani titik masuk baru untuk Always-On VPN. Seperti sebelumnya,
-  Anda bisa menemukan layanan aktif dengan menggunakan filter intent yang cocok dengan tindakan
-  {@link android.net.VpnService android.net.VpnService}.
-</p>
-
-<p>
-  Pengguna bisa secara manual menyetel klien Always-On VPN yang mengimplementasikan {@link
-  android.net.VpnService} dengan menggunakan layar <strong>Settings &gt; More &gt;
-  VPN</strong>.
-</p>
-
-<h2 id="contacts">Integrasi Kontak dengan Profil Kerja</h2>
-
-<p>
-  Pemilik profil bisa mengizinkan penelusuran lokal dan pencarian direktori kontak kerja
-  dari pengguna utama. Misalnya, seorang pengguna bisa mengakses kontak direktori pribadi dan pekerjaan
-  dari telepon pribadi atau aplikasi kontak mereka (jika
-  diizinkan oleh administrator profil mereka).
-</p>
-
-<p>
-  Pengembang yang memanfaatkan Contact Provider bisa menggunakan Enterprise Contacts
-  API untuk mengakses entri direktori profil kerja dari pengguna utama jika diizinkan
-  oleh kebijakan:
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  Pemilik profil bisa mengendalikan visibilitas kontak kerja di
-  pengguna utama menggunakan metode baru berikut:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">Boot Ulang Jarak Jauh</h2>
-
-<p>
-  Pemilik perangkat bisa mem-boot ulang perangkat dari jarak jauh. Di beberapa kasus, perangkat yang diluncurkan di
-  tempat umum dalam pembatas bisa mencegah akses ke tombol daya. Jika
-  perangkat perlu di-boot ulang, administrator bisa melakukannya dengan metode
-  <code>DevicePolicyManager.reboot()</code> baru.
-</p>
-
-<h2 id="disable-roaming">Menonaktifkan Roaming Data</h2>
-
-<p>
-  Pemilik perangkat bisa menonaktifkan roaming data menggunakan pembatasan pengguna {@link
-  android.os.UserManager} <code>DISALLOW_DATA_ROAMING</code> baru.
-</p>
-
-<h2 id="process-logging">Pencatatan Proses Enterprise</h2>
-
-<p>
-  Pemilik perangkat bisa mengenali aktivitas mencurigakan dengan melacak perangkat dari jarak jauh,
-  termasuk peluncuran aplikasi, aktivitas adb, dan pembukaan kunci layar. Log proses
-  tidak memerlukan persetujuan pengguna. Untuk mengambil log, pemilik perangkat mengaktifkan
-  pencatatan perangkat menggunakan <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
-</p>
-
-<p>
-  Perubahan API meliputi:
-</p>
-
-<ul>
-
-  <li>
-    Kelas <code>android.app.admin.SecurityLog</code> baru dan
-    metodenya
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">Laporan Bug Jarak Jauh</h2>
-
-<p>
-  Pemilik perangkat bisa memicu dari jarak jauh dan mengambil laporan bug yang berisi
-  file dump status perangkat, yang memungkinkan penyelidikan forensik atas
-  kesalahan yang diketahui atau perangkat yang telah diutak-atik. Dikarenakan sifat detail laporan bug,
-  maka diperlukan persetujuan pengguna.
-</p>
-
-<p>
-  Android N menyertakan tambahan API berikut untuk mendukung fitur ini. Untuk detailnya, lihat
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
-  N Preview SDK</a>.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">Membuang Sertifikat Klien</h2>
-
-<p>
-  Pemilik profil dan pemilik perangkat kini bisa membuang sertifikat klien yang telah dipasang melalui
-  {@link android.app.admin.DevicePolicyManager#installKeyPair
-  installKeyPair()} dengan memanggil metode baru
-  <code>DevicePolicyManager.removeKeyPair()</code>.
-</p>
-
-<h2 id="grant-cert-on-install">Memberi Akses ke Sertifikat Klien
-  saat Pemasangan</h2>
-
-<p>
-  Jika pemilik profil dan pemilik perangkat memberikan kemampuan kepada aplikasi pihak ketiga untuk
-  mengelola sertifikat, aplikasi bisa memberikan akses pada dirinya sendiri ke sertifikat
-  yang dipasangnya tanpa intervensi dari pemilik.
-</p>
-
-<p>
-  API yang sudah ada untuk mengelola sertifikat diperluas untuk mencakup:
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">Transparansi Kebijakan UI Sistem</h2>
-
-<p>
-  Kebijakan yang memengaruhi pengalaman pengguna atau membatasi Settings pengguna sepenuhnya
-  diungkapkan kepada pengguna, serta pemilik profil dan pemilik perangkat bisa memberlakukan
-  kebijakannya kepada departemen TI perusahaan mereka. Selain pesan “Action
-  not allowed” yang konsisten di Settings, administrator TI bisa menyetel
-  pesan dukungan khusus-organisasi di setelan perangkat dengan metode
-  {@link android.app.admin.DevicePolicyManager} baru berikut:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">Penyempurnaan Manajemen Pembatasan Aplikasi</h2>
-
-<p>
-  Pemilik perangkat atau profil bisa mengaktifkan aplikasi lain untuk mengelola
-  pembatasan aplikasi melalui metode
-  <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
-  baru. Aplikasi yang dipilih bisa memeriksa apakah izin ini telah
-  diberikan dengan memanggil
-  <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
-</p>
-
-<p>
-  Aplikasi yang dipilih untuk mengelola pembatasan aplikasi bisa memanggil {@link
-  android.app.admin.DevicePolicyManager#setApplicationRestrictions
-  setApplicationRestrictions()} dan {@link
-  android.app.admin.DevicePolicyManager#getApplicationRestrictions
-  getApplicationRestrictions()} untuk paket apa pun di pengguna atau profil itu.
-</p>
-
-<h2 id="location-off">Tombol Lokasi Nonaktif</h2>
-
-<p>
-  Pengguna bisa menonaktifkan izin lokasi untuk aplikasi kerja sambil melanjutkan
-  akses informasi lokasi di aplikasi pribadi mereka. Tombol akses
-  lokasi yang terpisah di Location Settings memungkinkan pengguna untuk menolak pembaruan lokasi atau
-  kueri lokasi terakhir untuk aplikasi yang berjalan di profil kerja.
-</p>
-
-<p>
-  Tombol lokasi nonaktif level teratas menonaktifkan akses lokasi untuk
-  profil utama dan profil yang dikelola.
-</p>
-
-<h2 id="custom-provisioning">Penyediaan yang Disesuaikan</h2>
-
-<p>
-  Aplikasi bisa menyesuaikan alur penyediaan pemilik profil dan pemilik perangkat
-  dengan warna dan logo perusahaan.
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    Menyesuaikan warna alur.
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    Menyesuaikan alur dengan logo perusahaan.
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">Multi-Sertifikat CA Wi-Fi</h2>
-
-<p>
-  Pemilik profil dan pemilik perangkat bisa menyetel beberapa sertifikat CA sekaligus untuk
-  konfigurasi Wi-Fi yang diberikan. Bila jaringan Wi-Fi perusahaan memiliki CA terpisah untuk
-  titik akses yang terpisah dengan SSID yang sama, administrator TI bisa menyertakan semua
-  CA yang relevan dalam konfigurasi Wi-Fi menggunakan metode
-  <code>setCaCertificates()</code> baru.
-</p>
-
-<p>
-  API yang ditambah adalah:
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">Pesan Layar Terkunci yang Disesuaikan</h2>
-
-<p>
-  Pemilik perangkat bisa menyediakan informasi pemilik agar ditampilkan di layar kunci.
-  Informasi ini lebih diprioritaskan dari pesan layar kunci pengguna (jika sudah ada
-  yang disetel). Metode {@link android.app.admin.DevicePolicyManager} baru adalah:
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">ConnectionService Profil Kerja</h2>
-
-<p>
-  Pemilik profil bisa menetapkan aplikasi telepon kerja yang menggunakan
-  {@link android.telecom.ConnectionService} khusus-kerja untuk
-  backend panggilan (akun panggilan). Telepon kerja hanya menyimpan log panggilan kerja
-  dan hanya mengandalkan kontak kerja. Pengguna memiliki pengalaman UI
-  saat-panggilan yang konsisten, apa pun aplikasi panggilannya. Panggilan telepon kerja yang masuk ke akun panggilan kerja
-  dibedakan dari telepon pribadi yang masuk
-  ke akun panggilan pribadi.
-</p>
-
-<p>
-  Penelepon harus memeriksa tanda baru
-  <code>android.telecom.Call.PROPERTY_WORK_CALL</code> untuk menentukan apakah telepon tersebut merupakan
-  telepon kerja. Jika merupakan telepon kerja, penelepon harus menunjukkannya,
-  misalnya dengan menambahkan lencana kerja.
-</p>
-
-<h2 id="lock-wp">Mengunci Wallpaper</h2>
-
-<p>
-  Pembatasan pengguna baru (<code>DISALLOW_SET_WALLPAPER</code>) mencegah
-  pengguna mengubah wallpaper mereka. Pemilik perangkat atau pemilik profil tetap bisa
-  mengubah wallpaper, namun mereka hanya bisa mengubah wallpaper
-  untuk pengguna atau profil yang mereka kontrol. Misalnya, pemilik profil tidak bisa mengubah
-  wallpaper pengguna induk, namun pemilik profil utama di profil utama atau
-  pemilik perangkat bisa melakukannya. Pemilik profil atau pemilik perangkat yang ingin mengubah
-  wallpapernya harus memeriksa apakah pengguna atau profil
-  yang mereka kelola memiliki wallpaper ({@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}) dan apakah mereka diperbolehkan untuk mengubahnya (dengan metode
-  baru<code>WallpaperManager.isWallpaperSettingAllowed()</code>)
-</p>
-
-<h2 id="lock-user-icon">Mengunci Ikon Pengguna</h2>
-
-<p>
-  Pembatasan pengguna baru (<code>DISALLOW_SET_USER_ICON</code>) mencegah
-  pengguna mengubah ikon pengguna mereka. Pemilik perangkat atau pemilik profil pengguna
-  tetap bisa mengubah ikon. Akan tetapi, pemilik profil hanya bisa mengubah ikon
-  pengguna untuk profil yang dikontrolnya.
-</p>
-
-<h2 id="health-monitoring">Pemantauan Kesehatan Perangkat</h2>
-
-<p>
-  Pemilik perangkat atau pemilik profil bisa menggunakan antarmuka
-  <code>HardwarePropertiesManager</code> baru untuk mengambil informasi
-  tentang kesehatan perangkat, seperti suhu CPU atau GPU dan penggunaan CPU. Antarmuka pemantauan
-  baru ini khususnya berguna untuk memantau berjalannya perangkat yang tidak diawasi
-  di lokasi yang jauh.
-</p>
diff --git a/docs/html-intl/intl/in/preview/license.jd b/docs/html-intl/intl/in/preview/license.jd
deleted file mode 100644
index 56ae58a..0000000
--- a/docs/html-intl/intl/in/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=Perjanjian Lisensi
-
-@jd:body
-
-<p>
-Untuk mulai Android SDK Preview, Anda harus menyetujui ketentuan dan persyaratan berikut.
-Seperti dijelaskan di bawah ini, perhatikan bahwa ini adalah versi pratinjau Android SDK, bisa saja berubah, yang Anda gunakan dengan risiko sendiri.  Android SDK Preview bukan rilis stabil, dan mungkin berisi kesalahan serta cacat yang bisa mengakibatkan kerusakan serius pada sistem komputer, perangkat dan data Anda.
-</p>
-
-<p>
-Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. Pengantar
-
-1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Pratinjau" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Pratinjau, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan Pratinjau oleh Anda.
-
-1.2 "Android" berarti tumpukan perangkat lunak Android untuk perangkat, seperti yang tersedia di Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
-
-1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
-
-1.4 "Google" berarti Google Inc., perusahaan asal Delaware dengan kantor bisnis utama di 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Menerima Perjanjian Lisensi
-
-2.1 Agar bisa menggunakan Pratinjau, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan Pratinjau jika tidak menerima Perjanjian Lisensi.
-
-2.2 Dengan mengklik untuk menerima dan/atau menggunakan Pratinjau, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
-
-2.3 Anda tidak boleh menggunakan Pratinjau dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Pratinjau berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Pratinjau.
-
-2.4 Jika Anda akan menggunakan Pratinjau di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Pratinjau atas nama perusahaan Anda atau entitas lainnya.
-
-3. Lisensi Pratinjau dari Google
-
-3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi yang tidak bisa disublisensikan, non-eksklusif, tidak bisa dialihkan, bebas royalti, bersifat global dan terbatas dalam menggunakan Pratinjau hanya untuk keperluan pengembangan aplikasi yang kompatibel untuk diimplementasikan pada Android.
-
-3.2 Anda tidak boleh menggunakan Pratinjau ini untuk mengembangkan aplikasi platform lain (termasuk implementasi yang tidak kompatibel pada Android) atau untuk mengembangkan SDK lain. Anda tentu saja bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi yang tidak kompatibel pada Android, karena Pratinjau ini tidak digunakan untuk tujuan tersebut.
-
-3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Pratinjau, termasuk Hak Kekayaan Intelektual yang terdapat dalam Pratinjau. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
-
-3.4 Anda tidak boleh menggunakan Pratinjau untuk tujuan apa pun yang tidak secara tersurat diizinkan dalam Perjanjian Lisensi ini. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Pratinjau atau bagian apa pun dari Pratinjau; atau (b) memuat bagian apa pun dari Pratinjau ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Pratinjau dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Pratinjau.
-
-3.5 Penggunaan, reproduksi dan distribusi komponen Pratinjau yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
-
-3.6 Anda setuju bahwa bentuk dan sifat Pratinjau yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Pratinjau mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Pratinjau sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Pratinjau (atau fitur apa pun dalam Pratinjau) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
-
-3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
-
-3.8 Anda setuju bahwa Anda tidak akan membuang, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Pratinjau.
-
-4. Penggunaan Pratinjau oleh Anda
-
-4.1 Google setuju bahwa Perjanjian Lisensi ini tidak memberi Google hak, kuasa, dan kepentingan hukum dari Anda (atau pemberi lisensi Anda) dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Pratinjau ini, termasuk kekayaan intelektual yang ada dalam aplikasi tersebut.
-
-4.2 Anda setuju untuk menggunakan Pratinjau dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi, dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau panduan dalam yurisdiksi terkait (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang terkait).
-
-4.3 Anda setuju jika Anda menggunakan Pratinjau untuk mengembangkan aplikasi, Anda akan melindungi hak privasi dan hak hukum pengguna. Jika pengguna memberikan nama pengguna, sandi, atau informasi login atau informasi pribadinya, Anda harus membuat pengguna tersebut menyadari bahwa informasi yang diberikannya akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, dan untuk tujuan terbatas di mana, pengguna tersebut telah memberikan izin kepada Anda untuk melakukannya.
-
-4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Pratinjau, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti layanan Google atau pihak ketiga lainnya.
-
-4.5 Anda setuju bertanggung jawab penuh untuk (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) data, materi, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google).
-
-4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga lainnya) akibat pelanggaran tersebut.
-
-4.7 Pratinjau ini dalam tahap pengembangan, dan pengujian serta masukan Anda merupakan bagian penting dalam proses pengembangan. Dengan menggunakan Pratinjau, Anda mengakui bahwa implementasi beberapa fitur masih dalam tahap pengembangan dan bahwa Anda tidak seharusnya mengandalkan Pratinjau berfungsi sepenuhnya sebagaimana pada rilis stabil. Anda setuju untuk tidak mendistribusikan atau mengirimkan untuk umum penggunaan aplikasi menggunakan Pratinjau karena Pratinjau ini tidak akan lagi didukung setelah Android SDK dirilis secara resmi.
-
-5. Kredensial Pengembang Anda
-
-5.1 Anda setuju bertanggung jawab untuk menjaga kerahasiaan semua kredensial pengembang yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab penuh terhadap semua aplikasi yang dikembangkan dengan kredensial pengembang Anda.
-
-6. Privasi dan Informasi
-
-6.1 Untuk terus berinovasi dan meningkatkan Pratinjau, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Pratinjau dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Pratinjau akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
-
-6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Pratinjau dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy.
-
-7. Aplikasi Pihak Ketiga
-
-7.1 Jika Anda menggunakan Pratinjau untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, materi atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, materi atau sumber daya tersebut. Anda memahami bahwa semua data, materi atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, materi, atau sumber daya pihak ketiga tersebut.
-
-7.2 Anda harus menyadari bahwa data, materi dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, materi, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
-
-7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, materi, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
-
-8. Menggunakan Google API
-
-8.1 Google API
-
-8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
-
-8.1.2 Jika Anda menggunakan API dalam bentuk apa pun untuk mengambil data pengguna dari Google, Anda mengakui dan menyetujui bahwa Anda akan mengambil data hanya dengan persetujuan yang jelas dari pengguna dan hanya bila, dan sebatas keperluan yang diizinkan oleh pengguna tersebut untuk Anda lakukan.
-
-9. Mengakhiri Perjanjian Lisensi
-
-9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
-
-9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Pratinjau dan kredensial pengembang yang relevan.
-
-9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
-
-9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
-(A) Google berhenti menyediakan Pratinjau atau bagian Pratinjau tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
-(B) Google mengeluarkan versi rilis final dari Android SDK.
-
-9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Pratinjau, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
-
-10. SANGGAHAN
-
-10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PRATINJAU OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PRATINJAU INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
-
-10.2 PENGGUNAAN PRATINJAU DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PRATINJAU OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAAN TERSEBUT. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PRATINJAU BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
-
-10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
-
-11. PEMBATASAN KEWAJIBAN
-
-11.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN DAN AFILIASINYA, DAN PEMBERI LISENSINYA TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI KEWAJIBAN TERHADAP SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, JANGKA PANJANG ATAU GANTI RUGI YANG DIAKIBATKAN OLEH ANDA, TERMASUK HILANGNYA DATA, WALAUPUN GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU SEHARUSNYA MENGETAHUI KEMUNGKINAN TIMBULNYA KEHILANGAN TERSEBUT.
-
-12. Penggantian Kerugian
-
-12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Pratinjau oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Pratinjau yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
-
-13. Perubahan pada Perjanjian Lisensi
-
-13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Pratinjau. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Pratinjau.
-
-14. Ketentuan Hukum Umum
-
-14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Pratinjau oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Pratinjau.
-
-14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
-
-14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak valid, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
-
-14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
-
-14.5 PEMBATASAN EKSPOR. PRATINJAU TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PRATINJAU. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR
-
-14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari pihak lain.
-
-14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, akan diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/in/preview/overview.jd b/docs/html-intl/intl/in/preview/overview.jd
deleted file mode 100644
index c38a579..0000000
--- a/docs/html-intl/intl/in/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Ringkasan Program
-page.metaDescription=Persiapkan aplikasi Anda untuk versi Android berikutnya
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Selamat datang di <strong>Android N Developer Preview</strong>, program yang
-  akan memberi apa saja yang Anda butuhkan untuk menguji dan mengoptimalkan aplikasi untuk versi
-  Android berikutnya. Program ini tersedia gratis, dan Anda bisa langsung mulai hanya dengan
-  mengunduh alat bantu N Developer Preview.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Gambar perangkat keras dan emulator
-      </h5>
-
-      <p>
-        Jalankan dan uji aplikasi Anda pada berbagai perangkat atau pada emulator.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Kode platform terbaru
-      </h5>
-
-      <p>
-        Kami akan menyediakan pembaruan setiap bulan selama Pratinjau, agar Anda bisa menguji perubahan platform terbaru.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Prioritas untuk masalah pengembang
-      </h5>
-
-      <p>
-        Selama beberapa minggu pertama, kami akan memberikan prioritas pada masalah-masalah
-        yang dilaporkan pengembang, jadi ujilah dan berikan masukan sesegera mungkin.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        Kemampuan dan perilaku baru
-      </h5>
-
-      <p>
-        Mulailah pekerjaan lebih awal untuk mendukung perilaku platform baru dan kembangkan dengan fitur-fitur baru.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Pembaruan dikirim melalui OTA
-      </h5>
-
-      <p>
-        Pembaruan lewat jaringan seluler tanpa kendala untuk setiap perangkat yang didukung melalui
-        Android Beta Program. Flashing tidak diperlukan.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Masukan dan dukungan
-      </h5>
-
-      <p>
-        Laporkan masalah dan berikan masukan kepada kami dengan menggunakan
-        <a href="{@docRoot}preview/bug">Issue Tracker</a> kami. Hubungkan dengan
-        pengembang lain di
-        <a href="{@docRoot}preview/dev-community">N&nbsp;Developer Community</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">Kronologi dan pembaruan</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  N Developer Preview berjalan dari 9 Maret 2016 hingga rilis resmi Android N
-  final ke AOSP dan OEM, yang direncanakan selama Kuartal 3 2016.
-</p>
-
-<p>
-  Pada tahapan pencapaian pengembangan yang penting kami akan mengirimkan pembaruan untuk lingkungan pengujian dan
-  pengembangan Anda. Pada umumnya Anda diharapkan sudah memperoleh pembaruan setiap bulan (dengan interval 4 sampai 6
-  minggu). Tahapan pencapaian tersebut tercantum di bawah ini.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Pratinjau 1</a></strong> (rilis pertama, alfa)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Pratinjau 2</a></strong> (pembaruan bertahap, alfa)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Pratinjau 3</a></strong> (pembaruan bertahap, beta)</li>
-  <li><strong>Pratinjau 4</strong> (API final dan SDK resmi, publikasi di Play)</li>
-  <li><strong>Pratinjau 5</strong> (citra sistem hampir final untuk pengujian akhir)</li>
-  <li><strong>Rilis Final</strong> ke AOSP dan ekosistem</li>
-</ul>
-
-<p>
-  Setiap pembaruan menyertakan SDK Tools, citra sistem pratinjau, emulator, dokumentasi
-  referensi, dan diff API.
-</p>
-
-<p>
-  <strong>Tiga tahapan pencapaian pratinjau pertama</strong> memberikan <strong>ujian
-  pertama dan lingkungan pengembangan</strong> yang membantu Anda mengidentifikasi
-  masalah kompatibilitas dalam aplikasi Anda saat ini dan merencanakan migrasi atau menampilkan pekerjaan
-  yang diperlukan untuk menargetkan platform baru. Ini adalah periode prioritas yang akan
-  memberi kami masukan dari Anda tentang fitur dan API serta masalah kompatibilitas file
-  &mdash; untuk semua ini, gunakan <a href="{@docRoot}preview/bug">Issue
-  Tracker</a>. Anda bisa mengharapkan beberapa perubahan API dalam pembaruan ini.
-</p>
-
-<p>
-  Pada <strong>pratinjau 4 dan 5</strong> Anda akan memiliki akses ke <strong>
- API dan SDK N final</strong> untuk digunakan dalam pengembangan, serta citra sistem hampir-final
-  untuk menguji perilaku dan fitur sistem. Android N akan memberikan level API
-  standar pada saat ini. Anda bisa memulai pengujian kompatibilitas final dari aplikasi
-  lawas dan menyaring setiap kode baru yang menggunakan API atau fitur N.
-</p>
-
-<p>
-  Juga, mulai pratinjau 4, Anda akan bisa <strong>mempublikasikan aplikasi ke
-  perangkat</strong> yang menjalankan Android N pada level API resmi, seperti
-  perangkat konsumen yang telah mengikuti program Android Beta. Anda bisa
-  mempublikasikan ke saluran alfa dan beta Google Play terlebih dahulu, agar Anda bisa menguji
-  aplikasi pada konsumen Android Beta sebelum mendistribusikan secara luas di
-  toko.
-</p>
-
-<p>
-  Saat Anda menguji dan mengembangkan di Android N, kami sangat menyarankan<strong>terus memperbarui
-  lingkungan pengembangan</strong> saat pembaruan pratinjau
-  dirilis. Untuk mempermudah prosesnya, Anda bisa mendaftarkan perangkat pengujian di
-  program Android Beta dan mendapatkan <strong>pembaruan lewat jaringan seluler (OTA)</strong>
-  pada setiap tahapan pencapaian. Sebagai alternatif, citra pratinjau terbaru telah tersedia agar Anda
-  bisa mengunduh dan mem-flash secara manual.
-</p>
-
-<p>
-  Kami akan memberi tahu Anda bila pembaruan pratinjau telah tersedia lewat <a href="http://android-developers.blogspot.com/">Android Developers Blog</a> serta
-  situs ini dan <a href="{@docRoot}preview/dev-community">Android
-  N Developer Community</a>.
-</p>
-
-
-<h2 id="preview_tools">Apa yang ada di N Developer Preview?</h2>
-
-<p>
-  N Developer Preview menyertakan apa saja yang Anda perlukan untuk menguji aplikasi
-  yang ada pada berbagai ukuran layar, teknologi jaringan, chipset CPU/GPU,
-  dan arsitektur perangkat keras.
-</p>
-
-<h3 id="sdk_tools">SDK Tools</h3>
-
-<p>Anda bisa mengunduh komponen-komponen ini melalui SDK Manager di <a href="{@docRoot}studio/intro/update.html">Android Studio</a>:</p>
-
-<ul>
-  <li> SDK dan alat <strong>N Developer Preview</strong>
-  <li> <strong>Citra sistem emulator</strong> N Developer Preview (32-bit &amp; 64-bit)
-  <li> <strong>Citra sistem emulator</strong> N Developer Preview untuk Android TV (32-bit)
-  <li> N Developer Preview mendukung pustaka (untuk template aplikasi baru)
-</ul>
-
-<p>
-  Kami akan menyediakan pembaruan untuk alat pengembangan ini di setiap tahapan pencapaian jika diperlukan.
-</p>
-
-<h3 id="hardware_system_images">Citra sistem perangkat keras</h3>
-
-<p>
-  N Developer Preview menyertakan citra sistem Nexus dan perangkat keras lainnya yang bisa Anda gunakan saat
-  menguji dan mengembangkan pada perangkat fisik. Lihat halaman <a href="{@docRoot}preview/download.html">Citra Perangkat</a> untuk melihat daftar lengkap
-  citra perangkat keras.
-</p>
-
-<p>
-  Kami akan mengirimkan citra sistem terbaru untuk perangkat ini pada setiap tahapan pencapaian. Anda
-  bisa mengunduh dan mem-flash citra sistem yang diperbarui untuk perangkat pengujian
-   secara manual, sesering yang Anda perlukan. Ini terutama berguna untuk lingkungan pengujian
-  otomatis bila Anda mungkin perlu mem-flash ulang perangkat beberapa
-  kali.
-</p>
-
-<p class="note"><strong>Catatan</strong>:
-  <strong>Perangkat yang di-flash secara manual tidak akan mendapatkan pembaruan OTA</strong> seperti di
-  pratinjau tahun lalu. Tahun ini, Anda bisa memperoleh OTA dengan mendaftarkan perangkat dalam
- Android Beta Program &mdash; lihat detailnya di bagian berikutnya.
-</p>
-
-<h3 id="android_beta">Pembaruan OTA melalui Android Beta Program</h3>
-
-<p>
-  Yang baru untuk Android N adalah program pembaruan lewat jaringan seluler (OTA) yang secara otomatis
-  mengirim pembaruan pratinjau terbaru Android N secara langsung ke perangkat yang telah mendaftar
-  di program ini. Program ini gratis dan terbuka bagi siapa saja yang memiliki
-  perangkat yang didukung dan telah didaftarkan ke akun Google mereka.
-</p>
-
-<p>
-  Untuk mendaftar dalam program ini, kunjungi situs <a href="https://g.co/androidbeta">Android
-  Beta Program</a>. Anda akan
-  melihat semua perangkat yang telah didaftarkan ke akun Anda yang memenuhi syarat untuk mendaftar
-  dalam Android Beta.
-</p>
-
-<ol>
-  <li> Pilih perangkat yang Anda inginkan untuk menerima pembaruan Android N
-  <li> Klik Enroll, baca dan setujui ketentuan layanan, kemudian klik OK
-</ol>
-
-<p>
-  Setelah terdaftar, perangkat Anda akan segera menerima pembaruan. Umumnya
-  Anda tidak perlu penyetelan ulang penuh atas data untuk beralih ke Android N, namun
-  Anda disarankan mencadangkan setiap data yang tidak ingin hilang sebelum
-  mendaftarkan perangkat.
-</p>
-
-<p>
-  Saat pembaruan dikirim ke perangkat Anda, kami menyarankan Anda untuk segera mengunduh dan
-  memasangnya. Anda perlu terus mengikuti perubahan terbaru
- dalam UI sistem, perilaku, API, dan fitur.
-</p>
-
-<p>
-  Di akhir periode Developer Preview, perangkat Anda yang telah didaftarkan akan
-  menerima pembaruan ke rilis resmi Android N.
-</p>
-
-<p>
-  Anda bisa membatalkan pendaftaran perangkat dari program Android Beta kapan saja dari
-  situs Android Beta. Sebelum membatalkan pendaftaran, pastikan Anda telah mencadangkan data pada
-  perangkat.
-</p>
-
-  <p class="note"><strong>Catatan</strong>:
-  Bila membatalkan pendaftaran, <strong>perangkat Anda akan dikembalikan ke setelan pabrik</strong>
-  ke versi terbaru
-  Android 6.0 Marshmallow (tidak harus ke versi yang telah Anda
-  pasang sebelum mendaftarkan perangkat). Untuk memastikan pemasangan yang bersih,
-  data Anda akan dihapus dari perangkat, termasuk kontak, pesan,
-  foto, dan seterusnya.
-</p>
-
-<h3 id="documentation_and_sample_code">Dokumentasi dan kode contoh</h3>
-
-<p>
-  Sumber daya dokumentasi ini tersedia pada situs Developer Preview untuk
-  membantu Anda mempelajari tentang Android&nbsp;N:
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan untuk
-Android N</a> memiliki
- petunjuk langkah demi langkah untuk memulai.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">Perubahan
-  Perilaku</a> akan menunjukkan kepada Anda bidang-bidang utama untuk diuji.</li>
-  <li> Dokumentasi API baru, termasuk <a href="{@docRoot}preview/api-overview.html">Ringkasan API</a>,
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
-  API</a> yang bisa diunduh, dan panduan pengembang detail mengenai fitur-fitur utama seperti
-  dukungan multi-jendela, bundel pemberitahuan, dukungan multilokal, dan lainnya.
-  <li> <a href="{@docRoot}preview/samples.html">Kode contoh</a> yang
-  memperagakan cara mendukung izin dan fitur baru lainnya.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Catatan rilis</a>
-  untuk versi N Developer Preview saat ini, termasuk catatan perubahan dan
-  laporan diff.
-</ul>
-
-<h4 id="reference">Referensi API yang Bisa Diunduh</h4>
-
-<p>
-  Selama pembaruan pratinjau awal, Anda bisa mengunduh
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API
-  untuk platform Android N</a> sebagai arsip zip terpisah. Unduhan
-  referensi juga menyertakan laporan diff yang akan membantu Anda mengenali perubahan API dari
-  API 23 dan pembaruan sebelumnya.
-</p>
-
-<p>
-  Bila API Android N sudah final dan API level resmi telah ditetapkan,
-  kami akan menyediakan referensi API kepada Anda secara online di <a href="https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Sumber daya dukungan
-</h3>
-
-<p>
-  Saat Anda menguji dan mengembangkan N Developer Preview, gunakan saluran
-  ini untuk melaporkan masalah dan memberikan masukan.
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue
-    Tracker</a> adalah <strong>saluran masukan Anda.</strong> Anda bisa melaporkan bug, masalah
-    kinerja, dan masukan umum melalui Issue Tracker. Anda juga bisa memeriksa
-<a href="{@docRoot}preview/bugs">masalah yang diketahui</a> dan
-    mencari langkah-langkah solusinya. Kami akan terus mengabari Anda mengenai masalah tersebut bila telah disortir dan dikirimkan ke
-  tim teknis Android untuk ditinjau. </li>
-  <li> <a href="{@docRoot}preview/dev-community">Android N Developer Community</a> adalah
-    sebuah komunitas Google+ tempat Anda bisa <strong>terhubung dengan pengembang lain</strong> yang menggunakan
-    Android N. Anda bisa menyampaikan pengamatan atau ide atau menemukan jawaban atas
- pertanyaan-pertanyaan mengenai Android N. Kami akan memoderasi komunitas ini dan memberikan jawaban serta
-    panduan jika diperlukan.</li>
-</ul>
-
-<h3 id="targeting">Menargetkan, API pratinjau, dan mempublikasikan</h3>
-
-<p>
-  N Developer Preview menyediakan sistem pengembangan saja dan pustaka
-  Android yang <strong>tidak memiliki API level standar</strong>. Jika Anda tidak ingin
-  mengikuti perilaku kompatibilitas untuk menguji aplikasi (yang sangat
-  disarankan), Anda bisa menargetkan versi pratinjau Android N dengan menyetel
-  <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
-  aplikasi Anda ke <code>“N”</code>.
-</p>
-
-<p>
-  Android N Developer Preview menghasilkan <strong>API pratinjau</strong>
-  &mdash; API ini tidak akan resmi hingga SDK final dirilis,
-  yang saat ini direncanakan untuk kuartal ketiga 2016. Berarti Anda bisa
-  <strong>mengharapkan ada banyak perubahan kecil pada API</strong> selama waktu ini, terutama selama
-  minggu-minggu awal program. Kami akan menyediakan rangkuman perubahan kepada Anda bersama
-  setiap pembaruan Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Catatan</strong>: Meskipun API pratinjau mungkin berubah, perilaku dasar
-  sistem sudah stabil dan siap diuji.
-
-</p>
-
-<p>
-  Google Play <strong>mencegah publikasi aplikasi yang menargetkan N Developer
-  Preview</strong>. Bila Android N final SDK tersedia, Anda akan bisa
-  menargetkan level API Android N resmi dan mempublikasikan aplikasi ke Google
-  Play lewat saluran rilis alfa dan beta. Sementara itu, jika Anda ingin
-  mendistribusikan aplikasi yang menargetkan Android N kepada penguji, Anda bisa melakukannya lewat email atau
-  dengan mengunduh langsung dari situs Anda.
-</p>
-
-<p>
-  Saat rilis penuh Android N ke AOSP dan OEM, yang direncanakan pada Kuartal 3 2016,
-  Anda akan bisa mempublikasikan aplikasi yang menargetkan Android N ke saluran
-  rilis resmi di Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">Cara mulai</h2>
-
-<p>
-  Untuk mulai menguji aplikasi Anda dengan Android N:
-</p>
-
-<ol>
-  <li> Tinjau <a href="{@docRoot}preview/api-overview.html">Ringkasan API</a>
-  dan <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a> untuk
-  mendapatkan gambaran mengenai apa saja yang baru dan bagaimana pengaruhnya pada aplikasi Anda. Khususnya,
-  pelajari tentang fitur baru <a href="{@docRoot}preview/features/notification-updates.html">pemberitahuan</a> dan
-  <a href="{@docRoot}preview/features/multi-window.html">dukungan multi-jendela</a>.</li>
-  <li> Siapkan lingkungan Anda dengan mengikuti petunjuk berikut untuk <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan SDK Pratinjau</a>
-  dan mengonfigurasi perangkat pengujian.</li>
-  <li> Ikuti <a href="https://developers.google.com/android/nexus/images">petunjuk
-  flashing</a> untuk mem-flash citra sistem Android N terbaru ke perangkat Anda. </li>
-  <li> Tinjau <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a>
-  dan <a href="{@docRoot}preview/samples.html">contoh Android N</a> untuk mendapatkan wawasan
-  lebih luas mengenai fitur-futur API yang baru dan cara menggunakannya dalam aplikasi Anda.
-  <li> Bergabunglah dengan <a href="{@docRoot}preview/dev-community">Android N
-  Developer Community</a> untuk mendapatkan berita terbaru dan terhubung dengan pengembang
-  lainnya yang menggunakan platform baru ini.</li>
-</ol>
-
-<p>
-  Terima kasih atas partisipasi Anda dalam program Android N Developer Preview!
-</p>
diff --git a/docs/html-intl/intl/in/preview/preview_toc.cs b/docs/html-intl/intl/in/preview/preview_toc.cs
deleted file mode 100644
index 5868e4d..0000000
--- a/docs/html-intl/intl/in/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽"> Ringkasan Program</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html"> Dukungan dan Catatan Rilis</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK">Menyiapkan Pratinjau</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試">Menguji pada Perangkat</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">Perubahan Perilaku </a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">Optimalisasi Latar Belakang</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">Bahasa dan Lokal</a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers</a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援">Dukungan Multi-Jendela</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">Pemberitahuan</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html"> Data Saver</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製">Perekaman TV</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定">Konfigurasi Keamanan Jaringan</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API"> Dukungan ICU4J</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能">Fitur Bahasa Java 8</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html"> Pembaruan Android for Work</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取">Scoped Directory Access</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例"> Contoh</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議"> Perjanjian Lisensi</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/in/preview/setup-sdk.jd b/docs/html-intl/intl/in/preview/setup-sdk.jd
deleted file mode 100644
index c03f388..0000000
--- a/docs/html-intl/intl/in/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=Menyiapkan Pratinjau
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Dapatkan Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Dapatkan Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">Dokumentasi referensi</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Dapatkan Java 8 JDK</a></li>
-  <li><a href="#create-update">Perbarui atau Buat sebuah Proyek</a></li>
-  <li><a href="#next">Langkah Berikutnya</a></li>
-</ol>
-  </div>
-</div>
-
-<p>Untuk mengembangkan aplikasi bagi Android N Preview, Anda perlu membuat beberapa pembaruan
-pada lingkungan pengembang, seperti dijelaskan pada halaman ini.</p>
-
-<p>Untuk sekedar menguji kompatibilitas aplikasi Anda pada
-citra sistem Android N, ikuti panduan untuk <a href="{@docRoot}preview/download.html">Menguji pada Perangkat Android N</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Dapatkan Android Studio 2.1</h2>
-
-<p>Platform Android N menambahkan dukungan untuk <a href="{@docRoot}preview/j8-jack.html">fitur bahasa Java 8</a>,
-yang memerlukan compiler baru bernama Jack. Jack versi terbaru
-saat ini hanya didukung di Android Studio 2.1. Jadi, jika Anda ingin
-menggunakan fitur bahasa Java 8, Anda harus menggunakan Android Studio 2.1 untuk
-membangun aplikasi. Jika tidak, Anda tidak perlu menggunakan compiler Jack, namun Anda
-tetap harus memperbarui JDK 8 untuk mengompilasi pada platform Android N,
-seperti dijelaskan di bawah ini.</p>
-
-<p>Jika sudah memasang Android Studio, pastikan Anda memiliki Android
-Studio 2.1 atau yang lebih tinggi dengan mengklik <strong>Help &gt; Check for Update</strong>
-(pada Mac, <strong>Android Studio &gt; Check for Updates</strong>).</p>
-
-<p>Jika Anda tidak memilikinya, <a href="{@docRoot}studio/">unduh Android Studio
-2.1 di sini</a>.</p>
-
-
-<h2 id="get-sdk">Dapatkan N Preview SDK</h2>
-
-<p>Untuk mulai mengembangkan dengan Android N API, Anda perlu pasang
-Android N Preview SDK di Android Studio sebagai berikut:</p>
-
-<ol>
-  <li>Buka SDK Manager dengan mengklik <strong>Tools &gt; Android &gt;
-  SDK Manager</strong>.</li>
-
-  <li>Di tab <strong>SDK Platforms</strong> pilih
-kotak centang <strong>Android N Preview</strong>.</li>
-
-  <li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
-    kotak centang <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
-
-  </li>
-
-  <li>Klik <strong>OK</strong>, kemudian terima
-    perjanjian lisensi untuk setiap paket yang perlu dipasang.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Dapatkan dokumentasi referensi N Preview</h3>
-
-<p>
-  Informasi detail tentang Android N API tersedia dalam dokumentasi referensi N Preview,
-  yang bisa Anda unduh dari tabel berikut.
-  Paket ini berisi versi offline situs web pengembang Android yang disederhanakan,
-  dan termasuk referensi API yang diperbarui untuk Android N API serta
-  laporan perbedaan API.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Dokumentasi</th>
-    <th scope="col">Checksum</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">Dapatkan Java 8 JDK</h2>
-
-<p>Untuk mengompilasi aplikasi Anda pada platform Android N dan menggunakan beberapa alat bersama
-Android Studio 2.1, Anda perlu pasang Java 8 Developer Kit (JDK 8). Jadi, jika
-Anda belum mempunyai versi terbaru, unduh JDK 8 sekarang.</p>
-
-<p>Kemudian, setel versi JDK di Android Studio sebagai berikut:</p>
-
-<ol>
-  <li>Buka proyek Android di Android Studio, kemudian buka
-    dialog Project Structure dengan memilih <strong>File &gt;
-        Project Structure</strong>. (Atau, Anda bisa menyetel default
-     untuk semua proyek dengan memilih <strong>File &gt; Other Settings &gt;
-        Default Project Structure</strong>.)
-   </li>
-   <li>Di panel kiri dialog, klik <strong>SDK Location</strong>.
-   </li>
-   <li>Dalam bidang <strong>JDK Location</strong>, masukkan lokasi
-    Java 8 JDK (klik tombol di sebelah kanan
-    untuk menjelajah file Anda), kemudian klik <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">Perbarui atau Buat sebuah Proyek</h2>
-
-<p>
-  Untuk menggunakan Android N API, proyek Anda harus dikonfigurasi dengan benar.
-</p>
-
-<p>Jika Anda berencana menggunakan fitur bahasa Java 8, Anda juga harus membaca
-<a href="{@docRoot}preview/j8-jack.html">Fitur Bahasa Java 8</a>
-untuk informasi tentang fitur Java 8 yang didukung dan
-cara mengonfigurasi proyek Anda dengan Jack compiler.</p>
-
-
-<h3 id="update">Perbarui proyek yang ada</h3>
-
-<p>Buka file
-  <code>build.gradle</code> untuk modul Anda dan perbarui nilainya sebagai
-  berikut:
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">Buat proyek baru</h3>
-
-
-<p>Untuk membuat proyek baru bagi pengembangan dengan Android N Preview SDK:</p>
-
-<ol>
-  <li>Klik <strong>File &gt; New Project</strong>, dan ikuti langkah-langkahnya hingga
-  Anda tiba di halaman Target Android Devices.
-  </li>
-  <li>Pada halaman ini, pilih opsi <strong>Phone and Tablet</strong>.</li>
-  <li>Pada opsi <strong>Phone and Tablet</strong>, dalam daftar opsi <strong>Minimum
- SDK</strong>, pilih
-    <strong>N: Android API 23, N Preview (Pratinjau)</strong>.</li>
-</ol>
-
-
-<h2 id="next">Langkah Berikutnya</h2>
-
-<ul>
-  <li>Ikuti panduan untuk <a href="{@docRoot}preview/download.html">Menguji pada Perangkat Android N</a>.</li>
-  <li>Ketahui selengkapnya tentang platform Android N dengan
-<a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a>
-dan <a href="{@docRoot}preview/api-overview.html">Android N API
-dan Fiturnya</a>.</li>
-</ul>
-
diff --git a/docs/html-intl/intl/in/preview/support.jd b/docs/html-intl/intl/in/preview/support.jd
deleted file mode 100644
index 885e7c7..0000000
--- a/docs/html-intl/intl/in/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=Dukungan dan Catatan Rilis
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Dalam dokumen ini</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">Saran umum</a></li>
-      <li><a href="#new">Yang baru di DP3</a></li>
-      <li><a href="#ki">Masalah yang diketahui</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Dua saluran dukungan utama tersedia untuk Anda saat mengembangkan dan menguji
-  dengan Android N Developer Preview: Laporkan bug di <a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a> untuk
-  bug perangkat tertentu, sistem, dan Google App. Untuk masalah di aplikasi lain,
-  hubungi pengembang secara langsung.
-</p>
-
-<p>Untuk mendiskusikan masalah atau gagasan dengan pengembang lain yang menangani Android N, bergabunglah dengan
-<a href="{@docRoot}preview/dev-community">komunitas Google+ untuk Developer Preview</a>.</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Tanggal: Mei 2016<br>
-        Build: NPD35K<br>
-        Dukungan emulator: x86 &amp; ARM (32/64-bit)<br>
-        Google Play Services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">Saran umum</h3>
-
-<p>
-  Rilis Developer Preview ini adalah untuk <strong>pengembang aplikasi dan pengguna
-  awal lainnya</strong> serta tersedia untuk penggunaan sehari-hari, pengembangan, atau
-  pengujian kompatibilitas. Harap perhatikan catatan umum tentang
-  rilis ini:
-</p>
-
-<ul>
-  <li>Rilis ini mungkin memiliki berbagai <strong>masalah stabilitas</strong> pada
-    perangkat yang didukung. Pengguna mungkin mengalami ketidakstabilan sistem, seperti  kernel
-    yang panik dan mogok.
-  </li>
-
-  <li>Beberapa aplikasi <strong>mungkin tidak berfungsi seperti yang diharapkan</strong> pada versi
-  platform baru. Hal ini termasuk aplikasi Google serta aplikasi lainnya.
-  </li>
-
-  <li>Developer Preview 3 adalah <strong>Compatibility Test Suite (CTS)
- yang disetujui</strong> pada perangkat ini: Nexus 5X, Nexus 6, Nexus 6P, dan Pixel
-  C. Aplikasi yang bergantung pada build yang disetujui CTS seharusnya
-  berfungsi secara normal pada perangkat ini (Android Pay misalnya).
-  </li>
-
-  <li>Developer Preview 3 <strong>tersedia pada semua perangkat
-  yang didukung:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel
-  C, General Mobile 4G (Android One), serta Sony Xperia Z3 (model D6603 dan
-  D6653).
-
-  </li>
-</ul>
-
-
-<h3 id="new">Yang baru di DP3</h3>
-
-<h4 id="">VR Mode untuk Android</h4>
-
-<p>
-  Android N menambahkan dukungan platform dan optimalisasi untuk VR Mode baru yang memungkinkan
-  pengembang membuat pengalaman VR berkualitas tinggi di seluler bagi para pengguna. Ada
-  banyak penyempurnaan kinerja, termasuk akses ke inti CPU yang eksklusif
-  untuk aplikasi VR. Dalam aplikasi, Anda bisa memanfaatkan pemantauan kepala
- yang cerdas, dan pemberitahuan stereo yang bekerja untuk VR. Yang terpenting,
-  Android N memberikan grafis latensi sangat rendah.
-</p>
-
-<p>
-  Untuk informasi selengkapnya, lihat <a href="https://developers.google.com/vr/android/">Google VR SDK untuk Android</a>.
-</p>
-
-<h4 id="">Mode kinerja kontinu</h4>
-
-<p>
-  Android N menyertakan dukungan opsional untuk <a href="{@docRoot}preview/api-overview.html#sustained_performance_api">mode
-  kinerja kontinu</a>, yang memungkinkan OEM memberikan petunjuk mengenai kapabilitas kinerja
-  perangkat untuk aplikasi yang berjalan dalam waktu lama. Pengembang aplikasi nanti bisa menggunakan
-  petunjuk ini untuk menyesuaikan aplikasi agar kinerja
-  perangkat bisa diprediksi pada level yang konsisten dalam jangka waktu lama. Pengembang aplikasi bisa mencoba API
-  baru ini dalam Developer Preview pada perangkat Nexus 6P saja.
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  Mulai versi 51 di Android N, WebView akan menjalankan materi web dalam
-  proses sandbox terpisah bila opsi pengembang "Multiprocess Webview"
-  diaktifkan. Tim WebView menunggu masukan mengenai kompatibilitas dan
- kinerja waktu proses di N sebelum mengaktifkan Multiprocess WebView di versi Android
-  yang akan datang. Dalam versi ini, diharapkan adanya regresi waktu startup, penggunaan
-  memori total dan kinerja render perangkat lunak.
-</p>
-
-<p>
-  Jika Anda menemukan masalah yang tidak diharapkan dalam mode multiproses, kami ingin
-  mengetahuinya. Hubungi tim WebView dengan <a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">
-  melaporkan bug</a>.
-</p>
-
-<h4 id="">Keyboard Shortcuts Helper</h4>
-
-<p>
-  Android N memungkinkan pengguna menekan <code>Meta+/</code> untuk memunculkan layar <strong>Keyboard
-  Shortcuts</strong> yang menampilkan semua pintasan yang tersedia baik dari
-  sistem maupun dari aplikasi yang sedang mendapatkan fokus. Pengembang bisa menambahkan pintasan sendiri atau
-  memunculkan layar Shortcuts dari aplikasi mereka. Lihat <a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Keyboard
-  Shortcuts Helper</a> untuk detailnya.
-</p>
-
-<h4 id="">FrameMetrics API</h4>
-
-<p>
-  DP3 memperkenalkan <a href="{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>
-  baru yang memungkinkan aplikasi memantau kinerja render UI dengan mengekspos
-  streaming pubsub API untuk mentransfer informasi frame-timing jendela aplikasi
-  saat ini. <code>FrameMetricsListener</code> bisa digunakan untuk mengukur
-  kinerja UI level interaksi di produksi dengan tingkat kejelasan yang lebih tinggi dan
-  tidak memerlukan koneksi USB.
-</p>
-
-<h4 id="api-changes">Fitur dan perubahan API</h4>
-
-<dl>
-  <dt>
-    Pintasan Peluncur dan Launcher Shortcuts API
-  </dt>
-
-  <dd>
-    Kami memutuskan untuk menunda fitur ini pada rilis Android yang akan datang. Kami berencana
-    membuang Launcher Shortcuts API (ShortcutManager dan lainnya) dari
-   Android N API publik mulai dalam Developer Preview berikutnya.
-  </dd>
-
-  <dt>
-    WebView Javascript berjalan sebelum halaman dimuat
-  </dt>
-
-  <dd>
-    Mulai dengan aplikasi yang menargetkan Android N, konteks Javascript disetel ulang
-  saat halaman baru telah dimuat. Saat ini, konteks tersebut dibawa untuk
-  halaman pertama yang dimuat di instance {@link android.webkit.WebView} yang baru.
-    Pengembang yang ingin menginjeksikan Javascript ke dalam {@link
-android.webkit.WebView} harus mengeksekusi skrip setelah halaman
- mulai dimuat.
-  </dd>
-
-  <dt>
-    WebView Geolocation pada sumber yang tidak aman
-  </dt>
-
-  <dd>
-    Mulai dengan aplikasi yang menargetkan Android N, API geolokasi hanya akan
-  diizinkan pada sumber yang aman (melalui HTTPS). Kebijakan ini didesain untuk melindungi
-    informasi privat pengguna saat mereka menggunakan koneksi yang tidak aman.
-  </dd>
-
-  <dt>
-    Data Saver
-  </dt>
-
-  <dd>
-    Mulai di Developer Preview 3, aplikasi bisa menggunakan intent untuk menampilkan
-  dialog sistem yang memungkinkan pengguna menambahkan aplikasi secara langsung ke daftar putih pengecualian
-  Data Saver. Lihat <a href="{@docRoot}preview/api-overview.html#data_saver">dokumentasi
-    Data Saver</a> untuk detailnya.
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">Pemblokiran nomor</a>
-  </dt>
-
-  <dd>
-    Jika pengguna yang tidak diizinkan berusaha memblokir atau membuka blokir suatu nomor, operasi
-   tersebut kini akan gagal dengan {@link java.lang.SecurityException}. (Sebelumnya,
-    operasi tersebut akan melontarkan {@link java.lang.UnsupportedOperationException}.)
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">Quick Settings Tile
- API</a>
-  </dt>
-
-  <dd>
-    Sistem kini menggunakan metadata aktivitas untuk memutuskan mode petak.
-    (Sebelumnya, mode petak ditentukan oleh nilai hasil
-    <code>TileService.onTileAdded()</code>.) Untuk informasi selengkapnya, lihat
-    <code>TileService.META_DATA_ACTIVE_TILE</code> dalam <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a> yang bisa diunduh.
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">Perbaikan untuk masalah yang dilaporkan oleh pengembang</h4>
-
-<p>
-  Banyak masalah yang dilaporkan oleh pengembang telah diperbaiki, termasuk:
-</p>
-
-<ul>
-  <li>Pemutaran Bluetooth Audio yang terputus setelah 1 lagu (bug <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
-  </li>
-
-  <li>Pixel C Terus Mengalami Mogok (bug <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
-  </li>
-
-  <li>Masalah pemberitahuan Jam dan Toast (bug <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
-  </li>
-
-  <li>Pixel C melakukan boot ulang saat dihubungkan ke MacBook Pro lewat Kabel USB C (bug
-  <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
-  </li>
-
-  <li>Kalender selisih satu hari (bug <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo menghasilkan data tidak valid (bug <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
-  </li>
-
-  <li>Nexus 6p, Bluetooth terputus terus-menerus (bug <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
-  </li>
-</ul>
-
-<p>Untuk daftar lengkap masalah yang telah diperbaiki, lihat <a href="https://goo.gl/6uCKtf">Issue
-Tracker</a>.</p>
-
-<h3 id="ki">Masalah yang Diketahui</h3>
-
-<h4>Aksesibilitas</h4>
-
-<ul>
-  <li>Tidak bisa memantau output TTS saat pitch disetel mendekati level maksimum.
-  </li>
-
-  <li>Fitur dan setelan aksesibilitas bisa terganggu bila pengguna menambahkan
-  sebuah profil kerja, termasuk isyarat perbesaran dan setelan. Kondisi
-  aksesibilitas dipulihkan bila pengguna menyentuh setelan terkait.
-  </li>
-</ul>
-
-<h4>Kamera</h4>
-
-<ul>
-  <li>Aplikasi Kamera telah menunjukkan ketidakstabilan; aplikasi ini bisa mogok dalam berbagai
-  keadaan, seperti saat diluncurkan dalam mode multi-jendela.
-  </li>
-
-  <li>Menekan rana terus-menerus dalam mode panorama dapat menyebabkan aplikasi
-  Kamera mogok.
-  </li>
-</ul>
-
-<h4>Audio</h4>
-<ul>
-  <li>Masalah pemutar audio platform mencegah beberapa aplikasi berfungsi
-  secara normal. Misalnya, Skype dan aplikasi lain terpengaruh oleh masalah ini.
-  </li>
-</ul>
-
-<h4>Konektivitas</h4>
-
-
-<ul>
-  <li>Bila perangkat peran periferal Bluetooth Low Energy (BLE) mengiklankan suatu
-  layanan dan perangkat peran sentral BLE menghubungkan, perangkat peran periferal
-  akan terputus dengan sangat cepat.
-  </li>
-
-  <li>Koneksi Wi-Fi dapat melemah bila layar mati.
-  </li>
-
-  <li>Koneksi RFCOMM tidak stabil serta dapat mengakibatkan kerusakan data dan
-  koneksi yang menggantung.
-  </li>
-
-  <li>Kondisi jaringan aktif ({@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} dan {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}) mungkin mengembalikan nilai yang tidak benar selama beberapa
-  skenario latar belakang terbatas.
-  </li>
-</ul>
-
-
-<h4>
-  Peluncur
-</h4>
-
-<ul>
-  <li>Baki All Apps peluncur default mungkin menjadi tidak responsif setelah
-  layar dimatikan/dihidupkan berulang-ulang. Kembali ke layar beranda dan meluncurkan kembali
-  baki All Apps mungkin akan mengatasi masalah ini.
-  </li>
-</ul>
-
-<h4>
-  Keyboard
-</h4>
-
-<ul>
-  <li>Saat memperbarui perangkat yang menjalankan Android 6.0 atau yang sebelum versi N Developer
-  Preview, Keyboard Google tidak menyimpan data preferensi seperti emoji
-  terbaru dan setelan suara.
-  </li>
-
-  <li>Google Indic Managed Keyboard mungkin menjadi tidak stabil.
-  </li>
-
-  <li>Saat memasukkan teks dalam bidang sandi, pengguna bisa memilih bahasa Rusia sebagai
-  bahasa masukan, namun keyboard tetap dalam bahasa Inggris. Hal ini mencegah
-  pengguna memasukkan sandi berbahasa Rusia.
-  </li>
-</ul>
-
-<h4>
-  Lokal dan bahasa
-</h4>
-
-<ul>
-  <li>Saat menggunakan lokal kanan-ke-kiri (RTL), sistem mungkin secara tidak diharapkan
-  beralih ke presentasi kiri-ke-kanan (LTR) setelah menghidupkan ulang perangkat.
-  </li>
-</ul>
-
-<h4>Media</h4>
-
-<ul>
-  <li>Pemutaran media mungkin tidak bisa diandalkan pada Nexus 9 dan Nexus Player, termasuk
-  masalah pemutaran video HD.
-  </li>
-</ul>
-
-<h4>
-  Mode multi-jendela
-</h4>
-
-<ul>
-  <li>Perangkat mungkin macet saat mengubah orientasi dalam mode multi-jendela.
-  </li>
-
-  <li>Beberapa aplikasi saat ini memiliki masalah dengan mode multi-jendela:
-    <ul>
-      <li>UI sistem bisa mogok saat mengubah Settings &gt; Display &gt;
-      Screen brightness ke multi-jendela.
-      </li>
-
-      <li>Aplikasi Kamera mungkin mogok bila diluncurkan dalam mode multi-jendela.
-      </li>
-
-      <li>YouTube mungkin mogok bila diluncurkan dalam mode multi-jendela. Untuk memperbaiki
-      masalah ini, Anda bisa mengosongkan data aplikasi YouTube di Storage &gt; Apps &gt;
-      YouTube.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play Services
-</h4>
-
-<ul>
-  <li>Aplikasi yang menggunakan Google Cast melalui Google Play Services mungkin menjadi tidak stabil bila
-  pengguna memilih lokal sistem yang menggunakan huruf serta angka di luar
-  rentang ASCII.
-  </li>
-</ul>
-
-<h4>
-  Kebijakan Perangkat Android for Work dan Google Apps
-</h4>
-
-<ul>
-  <li>Aplikasi Device Policy mungkin mogok bila pengguna membuka kunci perangkat dengan
-  layar "status kebijakan perangkat" disematkan.
-  </li>
-
-  <li>Setelah menyiapkan profil kerja dengan enkripsi berbasis file diaktifkan
-  kemudian menonaktifkan Work, pengguna harus membuka kunci layar profil utama untuk sekali
-  lagi mengakses aplikasi Work.
-  </li>
-
-  <li>Perangkat dihidupkan ulang saat membuang kunci pola keamanan dan membuka aplikasi
-  kerja/aplikasi pribadi di multi-jendela.
-  </li>
-
-  <li>Menyetel DISALLOW_VPN_CONFIG menyebabkan dialog persetujuan muncul di
-  always-on-vpn yang disetel oleh Device Policy Client.
-  </li>
-
-  <li>Lalu lintas tidak dikunci hingga VPN terhubung dalam mode always-on-vpn.
-  </li>
-</ul>
-
-<h4>
-  Penyimpanan eksternal
-</h4>
-
-<ul>
-  <li>Aplikasi mungkin menjadi tidak stabil bila pengguna memindahkannya dari penyimpanan internal
-  ke penyimpanan eksternal lepas-pasang (ini termasuk kartu SD atau perangkat yang dihubungkan
-  melalui USB).
-  </li>
-</ul>
-
-<h4>
-  Perbesaran layar dan multi-APK dalam Google Play
-</h4>
-
-<ul>
-  <li>Pada perangkat yang menjalankan Android N, Google Play Services 9.0.83 salah melaporkan
-  kepadatan layar saat ini dibandingkan dengan kepadatan layar stabil. Saat perbesaran
-  layar diaktifkan pada perangkat, hal ini bisa menyebabkan Google Play memilih
-  versi aplikasi multi-APK yang didesain untuk layar yang lebih kecil. Masalah ini
-  telah diperbaiki dalam Google Play Services versi berikutnya dan akan disertakan dalam
-  rilis Developer Preview mendatang.
-  </li>
-
-  <li>Pada perangkat yang menjalankan Android N, Google Play Services 9.0.83 saat ini melaporkan
-  dukungan Vulkan, namun bukan versi Vulkan. Hal ini bisa mengakibatkan Google Play memilih
-  versi aplikasi multi-APK yang didesain untuk mendukung Vulkan yang lebih rendah pada
-  perangkat dengan dukungan versi yang lebih tinggi. Saat ini, Google Play Store tidak
-  menerima unggahan aplikasi yang menggunakan penargetan versi Vulkan. Dukungan ini
-  akan ditambahkan pada Google Play Store di masa mendatang dan diperbaiki dalam
-  Google Play Services versi berikutnya (akan disertakan dalam rilis Developer Preview
-  mendatang). Perangkat N yang menggunakan Google Play Services 9.0.83 akan
-  tetap menerima versi Aplikasi yang menargetkan dukungan Vulkan dasar.
-  </li>
-</ul>
-
-<h4 id="">Pemberitahuan</h4>
-
-<ul>
-  <li>MessagingStyle tidak menampilkan pemberitahuan dengan pengirim "null" (sendiri).
-  </li>
-</ul>
-
-<h4 id="">Alat Pengembang</h4>
-
-<ul>
-  <li>
-    <code>adb</code> mungkin kadang-kadang terputus saat menggunakan debug JDWP.
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Tanggal: April 2016<br>
-        Build: NPC91K, NPC91O<br>
-        Dukungan emulator: x86 &amp; ARM (32/64-bit)<br>
-        Google Play Services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">Yang baru di DP2</h3>
-
-<ul>
-  <li>Dukungan platform untuk Vulkan, API rendering 3D baru yang menyediakan
-  kontrol GPU (Graphics Processor Unit) eksplisit dan overhead yang rendah serta menawarkan
-  peningkatan kinerja untuk aplikasi draw-call yang berat. Untuk detailnya, lihat
-  <a href="{@docRoot}ndk/guides/graphics/index.html">dokumentasi</a>.
-  </li>
-
-  <li>Emoji orang yang baru dengan dukungan untuk warna kulit, dan glyph Unicode 9 baru.
-  Warna kulit dan emoji baru tidak akan muncul hingga keyboard membangun dukungan untuknya
-  di palet. Aplikasi tidak perlu melakukan tindakan apa pun untuk memanfaatkan
-  emoji baru ini, kecuali jika aplikasi menggunakan font nonsistem. Pengembang
-  IME perlu menyertakan dukungan untuk emoji baru.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">Launcher
-    Shortcuts API</a>: Aplikasi bisa menggunakan <code>ShortcutManager</code> untuk mengirim
-    pintasan ke titik awal dalam aplikasi itu sendiri ke peluncur.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">Multi-Jendela</a>:
-    Anda kini bisa menetapkan tinggi minimum dan lebar minimum secara terpisah untuk suatu
-    aktivitas. Selain itu, beberapa nama API sedikit berubah.
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">Perbaikan untuk masalah yang dilaporkan oleh pengembang</h4>
-
-<p>
-  Banyak masalah yang dilaporkan oleh pengembang telah diperbaiki, termasuk:
-</p>
-
-<ul>
-  <li>Tidak bisa menghubungkan ke SSID tersembunyi atau Wi-Fi yang tidak disiarkan. (bug <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>)
-  </li>
-
-  <li>Keadaan mikrofon nonaktif terjadi selama aktivitas. (bug <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>)
-  </li>
-
-  <li>Mengubah fokus multi-jendela akan menghentikan YouTube untuk sementara. (bug <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>)
-  </li>
-
-  <li>Balasan Langsung mungkin menutup aktivitas yang telah dibuka. (bug <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>)
-  </li>
-
-  <li>Berbagai perbaikan stabilitas.
-  </li>
-</ul>
-
-<h3 id="dp2-general">Saran umum</h3>
-
-<p>
-  Rilis Developer Preview ini adalah untuk <strong>pengembang aplikasi saja</strong>
-  dan didesain untuk digunakan dalam pengujian kompatibilitas serta pengembangan awal saja.
-  Harap perhatikan catatan umum tentang rilis ini:
-</p>
-
-<ul>
-
-  <li>Komponen alat pengembangan dan pustaka dukungan telah diperbarui
-  untuk rilis DP2. Pastikan memperbarui lingkungan pengembangan pratinjau Anda
-  sebelum mengembangkan untuk DP2. Untuk petunjuk mengenai persiapan lingkungan
-  pengembangan Anda, lihat
-  <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pratinjau</a>.
-  </li>
-
-  <li>Rilis ini memiliki berbagai masalah stabilitas dan kinerja pada semua perangkat
-  yang membuatnya <strong>tidak cocok untuk penggunaan sehari-hari pada ponsel atau tablet</strong>,
-  terutama untuk selain pengembang.
-  </li>
-
-  <li>Daya tahan dan kinerja baterai belum dioptimalkan pada rilis
-  ini:
-
-    <ul>
-      <li>Kinerja <strong>sistem dan aplikasi diketahui lambat/
-      melempem pada waktu-waktu tertentu</strong>, dan perangkat kadang-kadang tidak responsif. Masalah-masalah
-      ini bisa menjadi lebih akut pada penggunaan yang lama.
-      </li>
-
-      <li>Daya tahan baterai mungkin melemah dalam rilis ini untuk kasus penggunaan layar hidup dan
-      layar mati.
-      </li>
-    </ul>
-  </li>
-
-  <li>Beberapa <strong>aplikasi mungkin tidak berfungsi dengan normal</strong> pada Developer Preview
-  2. Termasuk aplikasi Google serta aplikasi lainnya.
-  </li>
-
-  <li>Build awal ini bukan <strong>Compatibility Test Suite (CTS)
-  yang disetujui</strong>. Aplikasi yang bergantung pada build yang disetujui CTS tidak akan berfungsi
-  (Android Pay misalnya).
-  </li>
-
-  <li>Rilis pratinjau ini mendukung perangkat berikut: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, dan Pixel C, serta General Mobile 4G
-  (Android One). Dukungan untuk Nexus Player segera hadir.
-  </li>
-
-
-  <li><a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> telah
-  diperbarui untuk menangani perubahan API antara DP1 dan DP2.
-  </li>
-</ul>
-
-<h3 id="dp2-ki">Masalah yang Diketahui</h3>
-
-<h4>Kinerja dan baterai</h4>
-
-<ul>
-  <li>Kinerja sistem dan aplikasi diketahui <strong>lambat/
-  melempem pada waktu-waktu tertentu</strong>, dan perangkat kadang-kadang tidak responsif. Masalah-masalah
-   ini bisa menjadi lebih akut pada penggunaan yang lama.
-  </li>
-</ul>
-
-<h4>Akun Google</h4>
-
-<ul>
-  <li>Dalam beberapa situasi, bisa jadi ada masalah dengan
-  <code>AccountManagerService</code> yang mencegah masuk ke akun Google
-  </li>
-</ul>
-
-<h4>Pemutakhiran sistem</h4>
-
-<ul>
-  <li>Perangkat mungkin langsung dihidupkan ulang setelah memperbarui ke DP2.
-  </li>
-</ul>
-
-<h4>Aksesibilitas</h4>
-
-<ul>
-  <li>Ada masalah dalam mendengarkan keluaran teks-ke-suara (TTS) bila pitch disetel
-  mendekati level maksimum.
-  </li>
-</ul>
-
-<h4>Bluetooth</h4>
-
-<ul>
-  <li>Karakteristik Bluetooth Low Energy (LE) GATT menggunakan tipe tulisan
-  yang salah dan tidak akan dikirim ke perangkat jauh. Karena itu, misalnya, beberapa perangkat
-  kebugaran tidak akan berfungsi.
-  </li>
-</ul>
-
-<h4>Wizard persiapan</h4>
-
-<ul>
-  <li>Opsi untuk memulihkan data pada perangkat baru (atau perangkat yang baru disetel ulang) dari
-  "Your Google Account" tidak dapat digunakan dari wizard persiapan. Anda harus memulihkan
-  data dari perangkat yang ada dengan memilih "another Android device" dalam
-  wizard persiapan, atau siapkan sebagai perangkat baru.
-  </li>
-</ul>
-
-<h4>Buka kunci OEM</h4>
-
-<ul>
-  <li>Pada beberapa perangkat, <strong>Enable OEM unlock</strong> dalam "Developer Options", berwarna abu-abu
-  saat menjalankan DP2.<br>
-  <strong>Solusi:</strong> Ikuti
-  Android Beta Program (jika Anda belum mengikuti) dengan mengunjungi
-  <a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a>. Kemudian, keluar dan terima
-  OTA turunkan versi. Keluar dari program akan menyebabkan perangkat turun versi ke Android 6.0. Anda
-  seharusnya sekarang bisa memilih <strong>Enable OEM unlock</strong> dalam
-  "Developer Options". Data pribadi akan dihapus bila Anda turunkan versi
-  perangkat; akan tetapi, membuka kunci bootloader akan menghapus data ini.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Work Security Challenge
-    <ul>
-      <li>Setelah migrasi ke N, atau setelah pengguna membuat profil kerja, profil
-      kerja tidak bisa membuat kunci-kunci dalam keystore hingga pengguna mengubah pola,
-      PIN, atau sandi mereka, atau menyiapkan Work Challenge.
-      </li>
-
-      <li>Dalam mode Direct Boot, menerapkan batasan kode sandi pada perangkat
-      menyebabkan profil kerja tidak terkunci, meskipun perangkat terkunci.
-      Hal ini membuat profil kerja bisa diakses meskipun seharusnya dilindungi
-      oleh layar kunci perangkat.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always-On VPN
-    <ul>
-      <li>Jika mode Always-On VPN diaktifkan, namun VPN tidak tersedia, aplikasi
-      akan menghubungkan melalui jaringan biasa. Aplikasi seharusnya offline jika tidak
-      tersedia koneksi VPN.
-      </li>
-
-      <li>Bila mode Always-On aktif, koneksi VPN tidak akan dibuat setelah
-      perangkat dihidupkan ulang ke dalam mode Direct Boot, bahkan setelah pengguna membuka kunci
-      layar kunci aman.
-      </li>
-    </ul>
-  </li>
-
-  <li>Paket Ditangguhkan
-    <ul>
-      <li>Admin perangkat bisa menangguhkan paket sistem penting, yang dapat menyebabkan
-      perilaku yang tidak diharapkan, seperti melakukan panggilan meskipun dialog "Telephone
-      disabled" sedang ditampilkan.
-      </li>
-    </ul>
-  </li>
-
-  <li>Lainnya
-    <ul>
-      <li>Aplikasi Settings akan mogok saat dibuka jika {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} disetel ke true bila
-      pengguna memasukkan media fisik seperti kartu SD.
-      </li>
-
-      <li>Proses masuk pertama ke Profil Kerja membutuhkan waktu
-      beberapa menit.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>Selisih antara angka-angka yang mengikat dan selain nol
-      sebagai angka pengikat pertama menyebabkan {@code vkCreateGraphicsPipeline()} gagal.</li>
-      <li>Vulkan menunjukkan perilaku sampling yang salah pada koordinat tekstur yang diproyeksikan.</li>
-      <li>dalam contoh multithreadCmdBuffer, {@code vkCmdClearColorImage()} mengalami mogok bila
-      dijalankan dengan driver N-DP2.</li>
-      <li>Nilai kembalian dari {@code vkGetPhysicalDeviceFormatProperties()} tidak menyetel nilai
-      untuk {@code VkFormatProperties::linearTilingFeatures}, yang mengambil nilai 0 sebagai
-      hasil.</li>
-      <li>Lampiran buffer bingkai titik ambang Vulkan tidak ditangani dengan benar.</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>SPIR-V shader mungkin memicu pernyataan driver.</li>
-      <li>Beberapa konfigurasi pipeline mungkin menyebabkan {@code vkCreateGraphicsPipeline()}
-      mogok.</li>
-  </ul>
-</ul>
-
-<h4>Masalah perangkat tertentu</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    Koneksi data gagal bila perangkat dipindah dari slot 1 SIM ke slot 2 SIM.
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    Tidak bisa mengubah opsi "Always On" untuk Voice Search.
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    Gambar kamera dalam orientasi potret rusak, kecuali untuk foto
-   HDR+.
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    Pemutaran materi HD Netflix mungkin gagal pada Nexus Player.
-  </dd>
-
-  <dd>
-    Aplikasi yang bergantung pada perubahan resolusi video dinamis mungkin gagal pada
-   Nexus Player.
-  </dd>
-
-  <dd>
-    Aplikasi yang menggunakan codec video VP9 mungkin gagal pada Nexus Player.
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Tanggal: Maret 2016<br>
-        Build: NPC56P, NPC56R, diperbarui: NPC56W, NPC56X<br>
-        Dukungan emulator: x86 &amp; ARM (32/64-bit)<br>
-        Google Play Services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">Saran umum</h3>
-
-<p>
-  Rilis Developer Preview ini adalah untuk pengembang aplikasi saja dan didesain untuk
-  digunakan dalam pengujian kompatibilitas serta pengembangan awal saja. Harap perhatikan
-  catatan umum tentang rilis ini:
-</p>
-<ul>
-  <li>Rilis ini memiliki berbagai masalah stabilitas dan kinerja pada semua perangkat
-  yang membuatnya <em>tidak cocok untuk penggunaan sehari-hari pada ponsel atau tablet</em>,
-  terutama untuk selain pengembang.
-  </li>
-
-  <li>Kinerja sistem dan aplikasi diketahui <strong>lambat/
-  melempem pada waktu-waktu tertentu</strong>, dan perangkat kadang-kadang tidak responsif. Masalah-masalah
-   ini bisa menjadi lebih akut pada penggunaan yang lama.
-  </li>
-
-  <li>Daya tahan baterai mungkin melemah dalam rilis ini untuk kasus penggunaan layar hidup dan
-  layar mati.
-  </li>
-
-  <li>Beberapa aplikasi mungkin tidak berfungsi dengan normal pada Developer Preview 1.
-  Termasuk aplikasi Google serta aplikasi lainnya.
-  </li>
-
-  <li>Build awal ini bukan Compatibility Test Suite (CTS) yang disetujui. Aplikasi
-  yang bergantung pada build yang disetujui CTS tidak akan berfungsi (Android Pay misalnya).
-  </li>
-
-  <li>Rilis pratinjau ini mendukung perangkat berikut: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, Nexus Player, dan Pixel C, serta General Mobile 4G
-  (Android One).
-  </li>
-</ul>
-
-<h3 id="dp1-platform">Masalah Platform</h3>
-
-<h4>Kinerja dan baterai</h4>
-
-<ul>
-  <li>Kinerja sistem dan aplikasi diketahui <strong>lambat/
-  melempem pada waktu-waktu tertentu</strong>, dan perangkat kadang-kadang tidak responsif. Masalah-masalah
-   ini bisa menjadi lebih akut pada penggunaan yang lama.
-  </li>
-
-  <li>Daya tahan baterai mungkin melemah dalam rilis ini untuk kasus penggunaan layar hidup dan
-  layar mati.
-  </li>
-</ul>
-<h4 id="dialer">Telepon</h4>
-
-<ul>
-  <li>Aplikasi telepon tidak mendukung Direct Boot. Hal ini nanti akan ditangani dalam
-  N Developer Preview.
-  </li>
-
-  <li>Pemutaran pesan suara tidak berfungsi.
-  </li>
-</ul>
-
-<h4>Mikrofon</h4>
-
-<ul>
-   <li>Sistem mungkin keliru mempertahankan mikrofon dalam keadaan nonaktif di semua aplikasi dan saat menghidupkan ulang. Jika Anda menonaktifkan mikrofon di aplikasi dan kondisi ini terus bertahan, buka aplikasi apa saja yang memiliki kontrol untuk menonaktifkan mikrofon dan aktifkan mikrofon.</li>
-</ul>
-
-<h4 id="ui">UI sistem</h4>
-
-<ul>
-  <li>Beberapa string baru atau yang dimodifikasi dalam UI sistem tidak diterjemahkan ke semua
-   bahasa.
-  </li>
-
-  <li>UI ringkasan masih dalam pengembangan, dan masih mungkin berubah. Misalnya,
-  kami bermaksud membuang timer yang muncul bila pengguna beralih
-  aplikasi.
-  </li>
-
-  <li>Kontrol setelan dan peralihannya mungkin menjadi lambat atau tampak tidak responsif.
-  </li>
-
-  <li>Desain visual pemberitahuan masih bisa berubah.
-  </li>
-
-  <li>Dalam aplikasi Gmail, pengarsipan email secara langsung yang disertakan dalam bundel
-   pemberitahuan tidak berfungsi dengan benar.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Work Security Challenge
-    <ul>
-      <li>Setelah migrasi ke N, atau setelah pengguna membuat profil kerja, profil
-      kerja tidak bisa membuat kunci-kunci dalam keystore hingga pengguna mengubah pola,
-      PIN, atau sandi mereka, atau menyiapkan Work Challenge.
-      </li>
-
-      <li>Dalam mode Direct Boot, menerapkan batasan kode sandi pada perangkat
-      menyebabkan profil kerja tidak terkunci, meskipun perangkat terkunci.
-      Hal ini membuat profil kerja bisa diakses meskipun seharusnya dilindungi
-      oleh layar kunci perangkat.
-      </li>
-
-      <li>Bila pengguna memasukkan sandi dan pin yang salah, sistem tidak akan
-   menampilkan pesan informasi; sistem hanya mengosongkan bidang
-   masukan. Masalah ini tidak memengaruhi masukan pola atau sidik jari.
-      </li>
-
-      <li>Pada tablet, latar belakang yang ditampilkan bersama pertanyaan kerja
-  berukuran kecil dan tidak proporsional.
-      </li>
-
-      <li>Versi <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
-        Google Apps Device Policy</a> yang dibundel bersama N Developer Preview
-        belum mendukung fitur Pertanyaan Keamanan Profil Kerja.
-        Pengembang seharusnya menggunakan <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>
-        untuk menguji fitur ini.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always-On VPN
-    <ul>
-      <li>Jika mode Always-On VPN diaktifkan, namun VPN tidak tersedia, aplikasi
-      yang tidak dinyatakan sebagai pengecualian pada kebijakan Always On akan menghubungkan melalui
-      jaringan biasa. Kecuali jika ditetapkan sebagai pengecualian pada kebijakan Always-On VPN,
-      aplikasi seharusnya offline jika tidak tersedia koneksi VPN.
-        <ul>
-          <li>Bila mode Always On aktif, koneksi VPN tidak akan dibuat
-          setelah perangkat dihidupkan ulang ke dalam mode Direct Boot, bahkan
-          setelah pengguna membuka kunci layar kunci aman.
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>Kontak yang Ditingkatkan
-    <ul>
-      <li>Perangkat Bluetooth PBAP/MAP tidak menampilkan nomor penelepon untuk kontak
-      kerja. Rilis Pratinjau berikutnya akan mengatasi masalah ini.
-      </li>
-    </ul>
-  </li>
-
-  <li>Mode Kerja
-    <ul>
-      <li>Peluncur Google Now tidak menampilkan apakah Mode Kerja aktif atau
-      nonaktif. Peluncur juga tidak menunjukkan kondisi penangguhan aplikasi.
-      </li>
-
-      <li>Setelah pengguna menonaktifkan lalu mengaktifkan Mode Kerja, sistem tidak lagi menampilkan
-   widget aplikasi Profil Kerja, seperti Kalender.
-      </li>
-    </ul>
-  </li>
-
-  <li>Paket Ditangguhkan
-  </li>
-
-  <li>Admin perangkat bisa menangguhkan paket sistem penting, yang dapat menyebabkan
-  perilaku yang tidak diharapkan, seperti melakukan panggilan meskipun dialog Telephone
-  disabled sedang ditampilkan.
-  </li>
-
-  <li>Lainnya
-    <ul>
-      <li>Aplikasi Settings akan mogok saat dibuka jika {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} disetel ke true bila
-      pengguna memasukkan media fisik seperti kartu SD.
-      </li>
-
-      <li>Keadaan {@code DPM.setPackagesSuspended} tidak akan bertahan bila
-  pengguna mencopot pemasangan kemudian memasang kembali aplikasi tersebut. Aplikasi harus tetap
-      ditangguhkan setelah mencopot pemasangan/pemasangan ulang, atau aplikasi tidak boleh
-      dicopot pemasangannya
-      </li>
-
-      <li>Proses masuk pertama ke Profil Kerja membutuhkan waktu
-      beberapa menit. Hal ini dapat menyebabkan perangkat membutuhkan waktu lebih lama dari biasanya untuk
-      terlihat di Play EMM API.
-      </li>
-
-      <li>Pemberitahuan dari aplikasi Profil Kerja tidak tampak bagi listener
-  pemberitahuan yang terpasang di profil pribadi. Akibatnya, sistem tidak
-      menampilkan Pemberitahuan seperti yang diharapkan.
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >Keyboard</h4>
-
-<ul>
-  <li>Penyandingan Bluetooth antara keyboard dan perangkat Android mungkin menjadi tidak stabil.
-  </li>
-</ul>
-
-<h4 >Video</h4>
-
-<ul>
-<li>Pemutaran video mungkin mengalami selisih waktu dan menunjukkan interupsi.</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>Wi-Fi telah menjalani beberapa optimalisasi yang mungkin mengubah perilaku kasus patologis
-  API. Khususnya, aplikasi yang berusaha menghubungkan ke jaringan
-  tertentu, atau berusaha menghubungkan kembali ke jaringan harus mengulang pengujian.
-  </li>
-
-  <li>Klien DHCP lawas telah dibuang dari platform. Satu-satunya klien DHCP
-   yang didukung platform adalah klien DHCP yang diperkenalkan di M.
-  </li>
-</ul>
-
-<h4>Direct Boot</h4>
-
-<ul>
-  <li>NFC tidak berfungsi hingga pembukaan kunci pertama.
-    <ul>
-      <li>Bila telepon berkemampuan Bluetooth dihidupkan ulang, Bluetooth tidak akan
-      aktif secara otomatis. Anda harus mengaktifkan kembali Bluetooth secara manual.
-      </li>
-
-      <li>Dalam beberapa situasi, nada dering default mungkin tidak terdengar untuk
-      panggilan telepon dan pesan. Perilaku ini telah diperbaiki dalam rilis N Preview berikutnya,
-      dengan satu pengecualian (dan solusi):
-      </li>
-
-      <li>Pada perangkat yang bukan baru dikosongkan--perangkat yang telah booting setidaknya
-      sekali sejak disetel ke mode Direct Boot--nada dering pemberitahuan
-      default tidak berbunyi. Pengguna bisa mengatasi masalah ini dengan
-      memilih nada dering dari Settings secara manual.
-      </li>
-
-      <li>Direct Boot tidak diaktifkan secara default pada perangkat yang menjalankan build N
-      Developer Preview. Untuk mengaktifkan Direct Boot untuk pengujian dan
-      pengembangan, masuklah ke Developer Option dan ketuk Convert to File Encryption.
-      Dalam Developer Preview ini perlu penyetelan ulang pabrik untuk membagi ulang dan
-      memformat ulang perangkat Anda bagi File-based Encryption.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Gambar-dalam-gambar untuk Android TV</h4>
-
-<ul>
-  <li>Integrasi PIP dalam Recents UI belum final, dan masih bisa
-  berubah.
-    <ul>
-      <li>Animasi jendela PIP belum halus. Rilis Pratinjau
-      mendatang akan memperbaiki hal ini.
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">Rilis Pratinjau mendatang akan memperbaiki
-  desain visual dan perapian layout PIP.
-  </li>
-</ul>
-
-<h4>Laporan bug</h4>
-
-<ul>
-  <li>Laporan bug tidak selalu berhasil diselesaikan (seperti solusi,
-  kadang-kadang masih bisa diakses melalui penyedia dokumen laporan bug
-  di penyimpanan internal).
-  </li>
-</ul>
-
-<h4>Layar terbagi Multi-jendela</h4>
-
-<ul>
-  <li>Aplikasi bisa mengalami mogok dan perilaku UI yang tidak diharapkan bila ditempatkan dalam
-  mode layar terbagi. Ini adalah masalah aplikasi yang harus diperbaiki oleh pengembang
-  aplikasi.
-  </li>
-
-  <li>Bila aplikasi menargetkan versi platform Android sebelum N, maka
-  aplikasi mungkin tidak berfungsi pada layar terbagi dan toast mungkin muncul berkali-kali.
-  </li>
-
-  <li>Menekan lama tombol Ringkasan saat menggunakan aplikasi dengan orientasi
-  tetap mungkin menghasilkan perilaku aplikasi yang tidak diharapkan.
-  </li>
-
-  <li>Aplikasi mungkin berkedip saat mengubah ukurannya.
-  </li>
-
-  <li>Animasi belum final.
-  </li>
-</ul>
-
-<h4>Metode masukan</h4>
-
-<ul>
-  <li>Google Keyboard secara tidak diharapkan kembali ke keyboard Google generik
-  bila <b>menggunakan bahasa sistem</b>, namun Google Keyboard tidak mendukung
-  bahasa yang dipilih dalam preferensi bahasa sistem. Ia akan kembali
-  ke American English.
-    <p>
-      Anda bisa mengatasi masalah ini dengan menambahkan setidaknya satu bahasa yang didukung
-  Keyboard Google.
-    </p>
-  </li>
-</ul>
-
-<h4>Aksesibilitas</h4>
-
-<ul>
-  <li>TalkBack menunjukkan masalah pada beberapa fitur termasuk Pemberitahuan, petak
-  Quick Settings dan tampilan Multi-jendela yang mungkin menyebabkan sistem mogok atau
-  tidak ada masukan lisan dari TalkBack. Rilis pratinjau mendatang akan
-  menangani masalah ini.
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">Masalah dan Catatan untuk Perangkat Tertentu</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>Pemutaran video, kompatibilitas aplikasi, dan masalah stabilitas telah antisipasi pada
-  Nexus Player dalam rilis Pratinjau ini.
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>Mengubah ukuran multi-jendela bisa menyebabkan mogok.</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Perangkat Nexus 9 mungkin tidak jalan setelah menerima pembaruan lewat jaringan seluler (OTA)
-  via Android Beta Program. Untuk memulihkan dari masalah ini, Anda bisa mencoba
-  pasang citra OTA secara manual. Untuk informasi selengkapnya, lihat
-  <a href="{@docRoot}preview/download-ota.html">Menerapkan Citra OTA Perangkat</a>.
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/in/preview/features/direct-boot.jd b/docs/html-intl/intl/in/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/in/preview/features/direct-boot.jd
rename to docs/html-intl/intl/in/training/articles/direct-boot.jd
index b06a7dd..a7e3cf3 100644
--- a/docs/html-intl/intl/in/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/in/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Dalam dokumen ini</h2>
   <ol>
     <li><a href="#run">Meminta Akses untuk Berjalan Selama Direct Boot</a></li>
diff --git a/docs/html-intl/intl/in/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
similarity index 92%
rename from docs/html-intl/intl/in/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
index d557e96..30aed6f 100644
--- a/docs/html-intl/intl/in/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Dalam dokumen ini</h2>
   <ol>
     <li><a href="#accessing">Mengakses Direktori Penyimpanan Eksternal</a></li>
@@ -71,8 +71,8 @@
 <p>Sistem ini mencoba untuk memberikan akses ke direktori eksternal, dan jika
 diperlukan mengonfirmasi akses dengan pengguna menggunakan UI yang disederhanakan:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi yang meminta
 akses ke direktori Pictures.</p>
 
@@ -138,8 +138,8 @@
 pengguna yang buruk. Jika permintaan ditolak oleh pengguna, dan aplikasi meminta akses
 lagi, UI akan menampilkan kotak centang <b>Don't ask again</b>:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi membuat
 permintaan kedua untuk mengakses media lepas-pasang.</p>
 
diff --git a/docs/html-intl/intl/in/preview/features/security-config.jd b/docs/html-intl/intl/in/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/in/preview/features/security-config.jd
rename to docs/html-intl/intl/in/training/articles/security-config.jd
index 7a0303e..e13429d 100644
--- a/docs/html-intl/intl/in/preview/features/security-config.jd
+++ b/docs/html-intl/intl/in/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Dalam dokumen ini</h2>
 <ol>
diff --git a/docs/html-intl/intl/in/preview/features/data-saver.jd b/docs/html-intl/intl/in/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/in/preview/features/data-saver.jd
rename to docs/html-intl/intl/in/training/basics/network-ops/data-saver.jd
index 6cd64d2..abd4e43 100644
--- a/docs/html-intl/intl/in/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/in/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       Dalam dokumen ini
     </h2>
@@ -231,4 +231,4 @@
     Membuang UID paket tertentu dari daftar putih untuk memblokir
     penggunaan data berkuota di latar belakang saat Data Saver diaktifkan.
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/in/preview/features/picture-in-picture.jd b/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
similarity index 97%
rename from docs/html-intl/intl/in/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
index 5df3e5d..41af6de 100644
--- a/docs/html-intl/intl/in/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Dalam dokumen ini</h2>
 <ol>
@@ -59,7 +59,7 @@
 lain mulai diputar pada layar utama, jendela PIP secara otomatis
 ditutup. Pengguna juga bisa menutup jendela PIP melalui Recents.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Gambar 1.</strong> Video
 Gambar-dalam-gambar terlihat di sudut layar selagi pengguna menjelajahi materi pada layar
 utama.</p>
@@ -116,7 +116,7 @@
 <p>Menambahkan tombol PIP ke baris kontrol media Anda akan memungkinkan pengguna dengan mudah beralih
 ke mode PIP selagi mengontrol pemutaran video.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Gambar 1.</strong> Tombol
 gambar-dalam-gambar pada baris kontrol media.</p>
 
diff --git a/docs/html-intl/intl/in/preview/features/tv-recording-api.jd b/docs/html-intl/intl/in/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/in/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/in/training/tv/tif/content-recording.jd
index afedf8f..3389dbf 100644
--- a/docs/html-intl/intl/in/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/in/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Dalam dokumen ini</h2>
   <ol>
     <li><a href="#supporting">Menunjukkan Dukungan untuk Perekaman</a></li>
diff --git a/docs/html-intl/intl/ja/preview/guide.jd b/docs/html-intl/intl/ja/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/guide.jd
rename to docs/html-intl/intl/ja/about/versions/marshmallow/android-6.0-testing.jd
index f56fc66..9f03412 100644
--- a/docs/html-intl/intl/ja/preview/guide.jd
+++ b/docs/html-intl/intl/ja/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>このドキュメントの内容</h2>
       <ol>
         <li><a href="#runtime-permissions">パーミッションをテストする</a></li>
diff --git a/docs/html-intl/intl/ja/preview/behavior-changes.jd b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-changes.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/behavior-changes.jd
rename to docs/html-intl/intl/ja/about/versions/nougat/android-7.0-changes.jd
index c112504c..0fd9412 100644
--- a/docs/html-intl/intl/ja/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>このドキュメントの内容</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>図 1.</strong> Doze が第 1 レベルのシステム アクティビティ制限を適用して、電池寿命を改善
 
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>図 2.</strong> 端末がしばらくの間静止状態になると、Doze が第 2 レベルのシステム アクティビティ制限を適用する
 
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/ja/preview/samples.jd b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-samples.jd
similarity index 80%
rename from docs/html-intl/intl/ja/preview/samples.jd
rename to docs/html-intl/intl/ja/about/versions/nougat/android-7.0-samples.jd
index ec3f9f7d..9a50ff7 100644
--- a/docs/html-intl/intl/ja/preview/samples.jd
+++ b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">マルチ ウィンドウ Playground</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   このサンプルでは、自身のアプリでマルチ ウィンドウのユーザー インターフェースを使用する方法をご確認いただけます。
 
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">アクティブ通知</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   NotificationCompat を使用して通知を送信するシンプルなサービスをご確認いただける既存のサンプルです。
 ユーザーからの未読メッセージは、それぞれ別の通知として送信されます。
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">メッセージ サービス</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   1 つのアプリで表示している通知の件数を NotificationManager で取得する方法をご確認いただける既存のサンプルです。
 
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">ダイレクト ブート</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   このサンプルでは、端末の暗号化ストレージ内のデータにアクセスしたり、データを保存したりする方法をご確認いただけます。この機能は端末が起動している間は常に有効です。
 
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">特定のディレクトリへのアクセス</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   このサンプルでは、より少ないパーミッションで、特定のディレクトリに対するデータの読み出しや書き込みを行う方法をご確認いただけます。
 
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">GitHub でサンプルを入手</a>
 
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/ja/preview/guide.jd b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/ja/preview/guide.jd
copy to docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd
index f56fc66..9f03412 100644
--- a/docs/html-intl/intl/ja/preview/guide.jd
+++ b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>このドキュメントの内容</h2>
       <ol>
         <li><a href="#runtime-permissions">パーミッションをテストする</a></li>
diff --git a/docs/html-intl/intl/ja/preview/api-overview.jd b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/api-overview.jd
rename to docs/html-intl/intl/ja/about/versions/nougat/android-7.0.jd
index d967a67..732b014 100644
--- a/docs/html-intl/intl/ja/preview/api-overview.jd
+++ b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>主なデベロッパー機能</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>図 1.</strong> 分割画面モードで実行されているアプリ
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">データセーバー</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>図 4.</strong> [Settings] でのデータセーバー
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>図 5.</strong> 通知シェードにあるクイック設定タイル
diff --git a/docs/html-intl/intl/ja/preview/index.jd b/docs/html-intl/intl/ja/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/ja/preview/index.jd
rename to docs/html-intl/intl/ja/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/ja/design/patterns/notifications.jd b/docs/html-intl/intl/ja/design/patterns/notifications.jd
deleted file mode 100644
index 8c5b6ba..0000000
--- a/docs/html-intl/intl/ja/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=通知
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>デベロッパー文書</h3>
-    <p>ユーザーに通知する</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Android 4.4 以前での通知</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>ビデオ</h3>
-    <p>DevBytes:Notifications in the Android L Developer Preview</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>通知システムを使用すると、ユーザーは友人からの新しいチャット メッセージやカレンダー イベントなど、自分に関係のあるタイムリーなイベントについてアプリで常に通知を受けることができます。通知は、重要な出来事が起こるとすぐに知らせてくれるニュース チャンネルであり、ユーザーが意識していない間に出来事を時系列的に記録するログであると捉えることができます &mdash; さらに、すべての Android 端末で適宜同期されます。
-
-
-
-
-
-</p>
-
-<h4 id="New"><strong>Android 5.0 での新機能</strong></h4>
-
-<p>Android 5.0 において、通知は構造的に、視覚的に、機能的に重要なアップデートを受信します。
-</p>
-
-<ul>
-  <li>通知は、新しいマテリアル デザインのテーマにあわせて外観が変更されているところす。
-</li>
-  <li> 端末のロック画面で通知を利用できるようになりましたが、機密性の高いコンテンツはこれからも非表示にできます。
-
-</li>
-  <li>端末の使用中に受信した高優先度の通知において、ヘッドアップ通知と呼ばれる新しい形式が使用されるようになりました。
-</li>
-  <li>クラウド同期通知: 所有する Android 端末のどれかで通知を却下すると、他でも却下されます。
-
-</li>
-</ul>
-
-<p class="note"><strong>注</strong>: このバージョンの Android での通知設計は、従来のバージョンから大きく変わっています。
-
-これまでのバージョンの通知設計について詳しくは、<a href="./notifications_k.html">Android 4.4 以前での通知</a>をご覧ください。
-</p>
-
-<h2 id="Anatomy">通知の仕組み</h2>
-
-<p>このセクションでは、通知の基本パーツと各種端末における通知の表示について詳しく説明します。
-</p>
-
-<h3 id="BaseLayout">基本レイアウト</h3>
-
-<p>あらゆる通知の最低限の基本レイアウトは次のようになっています。</p>
-
-<ul>
-  <li> 通知の<strong>アイコン</strong>。このアイコンは通知元のアプリを示します。複数タイプの通知を生成するアプリでは、通知のタイプを示すことがあります。
-
-
-</li>
-  <li> 通知の<strong>タイトル</strong>と追加<strong>テキストメッセージ</strong>。
-</li>
-  <li> <strong>タイムスタンプ</strong>。</li>
-</ul>
-
-<p>従来のプラットフォーム バージョンの {@link android.app.Notification.Builder Notification.Builder} で作成された通知は、Android 5.0 でも同じように表示され、機能します。スタイルにいくらかの違いがありますが、システムが対処します。
-
-
-従来のバージョンの Android での通知について詳しくは、<a href="./notifications_k.html">Android 4.4 以前での通知</a>をご覧ください。
-
-</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      ユーザー フォトと通知アイコンを使用した、携帯端末での通知（左）と Wear での同じ通知（右）
-
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">展開レイアウト</h3>
-
-
-<p>通知にどこまでの詳細を表示するかを選択できます。
-メッセージの最初の数行を表示したり、大きな画像プレビューを表示したりできます。
-追加情報はユーザーにより多くのコンテキストを提供し、&mdash;場合によっては&mdash;メッセージ全体が表示されることもあります。
-
-
-ユーザーは、ピンチ ズームまたは 1 本指のスワイプで、コンパクトなレイアウトと展開されたレイアウトを切り替えることができます。
-
-
- 1 つのイベントに関する通知に対し、Android では 3 種類の展開レイアウト（テキスト、受信トレイ、画像）をアプリケーションで使用できるようにしています。
-
-次の図に、1 つのイベントに関する通知が携帯端末（左）とウェアラブル（右）でどのように見えるかを示します。
-
-</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">アクション</h3>
-
-<p>Android では、通知の最下部に表示されるオプションのアクションをサポートしています。ここに示されるアクションを使用することで、ユーザーは特定の通知に対するほとんどの一般的なタスクを通知シェードで処理でき、通知元のアプリケーションを開く必要はありません。これによりやり取りがスピードアップし、スワイプで却下もできることから、ユーザーは自分に関係のある通知に集中しやすくなります。
-
-
-
-
-
-</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">通知に含めるアクションの数はほどほどに抑えることをお勧めします。
-含めるアクションを増やすほど、わかりにくくなるからです。
-もっとも差し迫った意味のある重要なアクションだけにして、アクションの数を最小限に抑えてください。
-
-
-</p>
-
-<p>通知に対するアクションとして好ましい候補は次のとおりです。</p>
-
-<ul>
-  <li> 表示するコンテンツ タイプに欠かせず、よく使われ、典型的である
-
-  <li> ユーザーがタスクを手早く完了できる
-</ul>
-
-<p>次のようなアクションは避けてください。</p>
-
-<ul>
-  <li> あいまいである
-  <li> 通知のデフォルト アクションと同じである（「読む」や「開く」など）
-
-</ul>
-
-
-
-<p>アクションは 3 つまで指定でき、それぞれにアクションのアイコンと名前が付きます。
-
- シンプルな基本レイアウトにアクションを追加すると、展開レイアウトがない場合でも、通知は展開可能になります。
-
-アクションは展開可能な通知にのみ表示され、それ以外では非表示になることから、ユーザーが通知から起動できるどのアクションについても、関連アプリケーションからも利用できるようにしてください。
-
-
-
-
-</p>
-
-<h2 style="clear:left">ヘッドアップ通知</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    イマーシブ アプリの最上部に表示されたヘッドアップ通知の例（電話の着信、高優先度）
-
-
-  </p>
-</div>
-
-<p>優先度の高い通知が作成されると（右図）、その展開レイアウトが可能なアクションとともに短時間表示されます。
-
-</p>
-<p> この時間が過ぎると、通知は通知シェードに戻ります。
-通知の<a href="#correctly_set_and_manage_notification_priority">優先度</a>を示すフラグが高、最大、全画面の場合は、ヘッドアップ通知になります。
-</p>
-
-<p><b>ヘッドアップ通知にふさわしい例</b></p>
-
-<ul>
-  <li> 端末使用中の電話の着信</li>
-  <li> 端末使用中のアラーム</li>
-  <li> 新しい SMS メッセージ</li>
-  <li> 低バッテリ残量</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">ガイドライン</h2>
-
-
-<h3 id="MakeItPersonal">パーソナルにする</h3>
-
-<p>他人から送信されたアイテム（メッセージ、ステータス アップデートなど）の通知には、{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} を使用して相手の画像を含めます。
-
-また、通知のメタデータに相手に関する情報を添付します（{@link android.app.Notification#EXTRA_PEOPLE} を参照）。
-</p>
-
-<p>通知のメインアイコンは表示され続けるため、ユーザーはそれをステータスバーに表示されるアイコンと関連付けることができます。
-
-</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  通知をトリガーした人と送信内容が表示された通知。
-</p>
-
-
-<h3 id="navigate_to_the_right_place">適切な画面へのナビゲーション</h3>
-
-<p>ユーザーが通知の本体（アクション ボタン以外）をタップしたら、アプリが開き、通知に表示されているデータの表示や操作ができる画面へ移動するようにします。
-
-
-ほとんどの場合、移動先はメッセージのような 1 つのデータアイテムの詳細表示になりますが、通知がスタックされている場合は概要ビューにすることも考えられます。
-
-アプリがユーザーをアプリの最上位レベルより下のどこかに移動する場合は、アプリのバックスタックにナビゲーションを挿入して、ユーザーがシステムの Back ボタンを押すと最上位レベルに戻れるようにします。
-
-詳しくは、<a href="{@docRoot}design/patterns/navigation.html#into-your-app">ナビゲーション</a>デザイン パターンの<em>ホーム画面ウィジェットと通知を経由するアプリへのナビゲーション</em>をご覧ください。
-
-</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">通知優先度の適切な設定と管理
-
-</h3>
-
-<p>Android では、通知用の優先度フラグをサポートしています。このフラグを使用すると、通知の表示位置に他の通知との相対関係として影響を及ぼして、ユーザーが常に最重要の通知を真っ先に目にするようにできます。
-
-
-通知を投稿する際には、優先度を次の中から選べます。
-
-</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>優先度</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>用途</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>重大で切迫した通知に対して使用します。緊急を要する状況、または特定のタスクを続ける前に解決する必要がある状況であることをユーザーに通告します。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>主に重要な情報に対して使用します。ユーザーが特に関心を持ちそうなメッセージ イベントやチャット イベントなどが該当します。通知の優先度を高く設定すると、ヘッドアップ通知を表示できます。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>ここで説明している他の優先度のどれにも該当しないすべての通知に対して使用します。</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>ユーザーに知らせたいがそれほど緊急ではない通知に対して使用します。
-低優先度の通知は一般にリストの末尾に表示され、公の、または間接的なソーシャル アップデートなどに適しています。
-
-ユーザーがこうした通知の設定をしていても、急を要するコミュニケーションや直接的なコミュニケーションより優先されないようにする必要があります。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>天気予報や周辺位置情報のようなコンテキスト的またはバックグラウンド的な情報に対して使用します。最小優先度の通知はステータスバーに表示されません。
-
-ユーザーは通知シェードを展開したときにその存在に気づきます。
-</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>適切な優先度の選び方</strong>
-
-</h4>
-
-<p><code>DEFAULT</code>、<code>HIGH</code>、<code>MAX</code> は中断を伴う優先度レベルで、ユーザーによるアクティビティに割り込むリスクがあります。
-
-アプリのユーザーに不快に思われないようにするため、割り込みを伴う優先度レベルの通知は次のような場合に限定してください。
-</p>
-
-<ul>
-  <li> 他人が絡む</li>
-  <li> 急を要する</li>
-  <li> 実世界におけるユーザーの行動が直ちに変わりうる</li>
-</ul>
-
-<p><code>LOW</code> や <code>MIN</code> に設定されている通知も、ユーザーにとって価値がある可能性はあります。
-ほとんどとは言わないまでも、多くの通知は、ユーザーの注意を直ちに引く、またはユーザーの手首に振動を与える必要はありませんが、ユーザーがその通知を見ることにしたときに価値があると気づくような情報が含まれている必要があります。
-
-
-優先度が <code>LOW</code> や <code>MIN</code> の通知の条件は以下のとおりです。
-</p>
-
-<ul>
-  <li> 他人が絡まない</li>
-  <li> 急を要さない</li>
-  <li> ユーザーが興味を持ちうる内容が含まれているが、手が空いたときに参照することにして問題ない
-</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">通知カテゴリの設定
-</h3>
-
-<p>通知が、あらかじめ定義されているカテゴリ（下を参照）のどれかに該当する場合は、それに沿って割り当てます。
-
-通知シェード（やその他の通知リスナー）などの各種システム UI は、評価やフィルタリングの判断にこの情報を使用することがあります。
-
-</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>電話（ビデオまたは音声）の着信またはそれに類する同期通信の要求
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>直接メッセージ（SMS、インスタントメッセージなど）の受信</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>非同期バルク メッセージ（メール）</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>カレンダー イベント</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>販促または広告</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>アラームまたはタイマー</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>長時間実行のバックグラウンド処理の進捗</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>ソーシャル ネットワークまたは共有アップデート</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>バックグラウンド処理または認証ステータスにおけるエラー</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>再生のためのメディア転送コントロール</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>システムまたは端末のステータス アップデート。システム用に予約済み。</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>バックグラウンド サービス実行中の表示。</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>1 つの事項に対する具体的でタイムリーな推奨。たとえば、ニュースアプリがユーザーが次に読みたいのではないかと予想した記事を推奨するなど。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>端末やコンテキスト ステータスに関する進行中情報。</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">通知の概要</h3>
-
-<p>アプリで特定の新しい通知を送信しようとしたときに同じタイプの通知が既に保留されていた場合は、それらを統合してそのアプリに対する 1 つの概要通知にします。新しいオブジェクトは作成しないでください。
-
-</p>
-
-<p>概要通知は概要説明を作成し、特定タイプの通知がいくつ保留になっているのかがユーザーにわかるようにします。
-
-</p>
-
-<div class="col-6">
-
-<p><strong>非推奨</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>推奨</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">概要を構成している個々の通知に関する詳細は、展開ダイジェスト レイアウトを使用して提示できます。
-
-このアプローチにより、ユーザーはどの通知が保留中か、そして関連アプリで詳しく読もうと思うほどそれらに興味があるかを把握しやすくなります。
-
-
-
-</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  通知の展開された概要と折りたたまれた概要（<code>InboxStyle</code> を使用）
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">通知をオプションにする
-</h3>
-
-<p>ユーザーは常に通知を制御できる必要があります。アプリケーションの設定に通知設定アイテムを追加して、ユーザーがアプリの通知を無効にしたり、警告音や振動を使用するかどうかなどのアラート設定を変更したりできるようにしてください。
-
-
-
-</p>
-
-<h3 id="use_distinct_icons">見分けやすいアイコンにする</h3>
-<p>現在保留になっているのがどのタイプの通知なのか、ユーザーが通知エリアを一目で見分けられることが必要です。
-
-</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>推奨</strong></p>
-    <p>Android アプリが既に提供している通知アイコンを見ながら、独自アプリ用に見かけの十分異なるアイコンを作成する。
-
-</p>
-
-    <p><strong>推奨</strong></p>
-    <p>小さなアイコン用の適切な<a href="/design/style/iconography.html#notification">通知アイコン スタイル</a>と、アクション アイコン用の Material Light <a href="/design/style/iconography.html#action-bar">アクションバー アイコンスタイル</a>を使う。
-
-
-
-</p>
-<p ><strong>推奨</strong></p>
-<p >アイコンの見た目はシンプルに保ち、細かくしすぎて見にくくならないようにする。
-</p>
-
-  <div><p><strong>非推奨</strong></p>
-    <p>なんらかの追加アルファ（暗転やフェード）を小さなアイコンやアクション アイコンに配置する。エッジはアンチ エイリアス処理できますが、Android ではこれらのアイコンをマークとして使用するため（つまり、アルファ チャンネルのみ使用）、画像は概して完全不透明で描画されます。
-
-
-
-
-</p>
-
-</div>
-<p style="clear:both"><strong>非推奨</strong></p>
-
-<p>アプリを他と色で区別する。通知アイコンは、背景が透明な白に限定してください。
-</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">通知 LED を適切に点灯させる
-</h3>
-
-<p>多くの Android 端末には通知 LED が用意されており、スクリーンがオフのときでもユーザーに引き続きイベントを通知するために使用されます。
-
-優先度が <code>MAX</code>、<code>HIGH</code>、<code>DEFAULT</code> の通知を LED 点灯するようにし、優先度の低い通知（<code>LOW</code> と <code>MIN</code>）は点灯しないようにしてください。
-
-
-</p>
-
-<p>ユーザーによる通知の制御が LED にも及ぶようにしてください。DEFAULT_LIGHTS を使用すると、LED が白く点灯します。
-
-ユーザーが明示的にカスタマイズしない限り、通知では別の色を使用しないでください。
-
-</p>
-
-<h2 id="building_notifications_that_users_care_about">ユーザーが気にする通知の作成
-</h2>
-
-<p>ユーザーに愛されるアプリを開発するためには、通知を入念にデザインすることが重要です。通知はアプリの声を体現するものであり、アプリの個性の一部です。
-
-
-望まれない通知や重要ではない通知がユーザーの邪魔になったり、アプリへの注目を集める意図が逆にユーザーに不快に思われたりしかねませんので、通知は適切に使用してください。
-
-
-</p>
-
-<h3 id="when_to_display_a_notification">通知を表示すべきケース</h3>
-
-<p>ユーザーが楽しんで使えるアプリケーションを開発するには、ユーザーの注目や関心は保護すべきリソースであるという認識が重要です。
-
-Android の通知システムは、ユーザーの注意に対する通知のインパクトを最小限に抑える設計になっていますが、通知がユーザーのタスクフローに割り込むという事実を意識することがやはり重要です。通知を盛り込む予定の場合は、それが割り込みに値するほど重要かどうかを自問してください。
-
-
-
-
-
-
-確信が持てない場合は、ユーザーがアプリの通知設定を使用して通知をコントロールできるようにするか、通知のフラグを <code>LOW</code> か <code>MIN</code> に設定してユーザーがしている別のことを邪魔しないようにします。
-
-
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   急を要する通知の例
-  </p>
-
-<p>概して、適切に振る舞うアプリは話しかけられたときだけ口を開きますが、求められていない通知でユーザーの作業に割り込むことにメリットがあるケースもいくつか存在します。
-</p>
-
-<p>通知は主に<strong>急を要するイベント</strong>で、特に<strong>他人が絡む</strong>同期イベントで使用します。
-たとえば、受信チャットはリアルタイムの同期コミュニケーションです。
-
-他人が応答を能動的に待っています。
-カレンダー イベントも、通知でユーザーの注目を引くタイミングに関する好例です。なぜなら、そうしたイベントは差し迫っており、往々にして他人が絡みます。
-
-
-</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">通知を表示すべきでないケース
-</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>以上を除く多くの場合、通知の使用は適切ではありません。</p>
-
-<ul>
-  <li> 明示的にユーザー宛てではない情報や、それほど急を要さない情報は、ユーザーへの通知を避けます。
-
-たとえば、ソーシャル ネットワーク経由で流れてくる非同期の間接的なアップデートは、概してリアルタイムの割り込みにふさわしくありません。
-
-
-それらに本当に関心のあるユーザーが選択できるようにします。
-</li>
-  <li> 関連する新しい情報が現在画面に表示されている場合は、通知を作成しないようにします。
-その代わり、アプリケーションそのものの UI を使用して、ユーザーに情報をコンテキスト内で直接通知します。
-
-
-  たとえば、チャット アプリケーションは、ユーザーが他のユーザーとチャットしている最中にシステム通知を作成しないようにします。
-</li>
-  <li> 情報の保存や同期、アプリケーションのアップデートなど、低レベルの技術的な通知については、アプリやシステムがユーザーの介入なしに問題を解決できる場合は割り込まないようにします。
-
-</li>
-  <li> アプリケーションがユーザーの介入なしにエラーから復旧できる場合は、そのようなエラーの通知で割り込まないでください。
-
-</li>
-  <li> 通知にふさわしい内容がなく、アプリを宣伝するだけの通知は、作成しないようにします。通知は、有益でタイムリーな新しい情報を提供するものであり、アプリを起動するためだけには使用しないでください。
-
-
-
-</li>
-  <li> ブランドをユーザーの目の前に提示するだけの表面的な通知を作成しないようにします。
-
-  そうした通知はユーザーにフラストレーションを与え、アプリが使われなくなります。アップデートされた情報を少しだけ提供し、ユーザーをアプリにつなぎ止める最適な方法は、ホームスクリーンに配置できるウィジェットを開発することです。
-
-
-
-
-</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">通知の操作
-</h2>
-
-<p>通知はステータスバーにアイコンとして示され、通知ドロワーを開いてアクセスできます。
-
-</p>
-
-<p>通知をタップすると関連アプリが開き、その通知に対応する詳細なコンテンツに移動します。通知上で左か右にスワイプされた通知は、ドロワーから削除されます。
-
-</p>
-
-<h3 id="ongoing_notifications">進行中通知</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    音楽再生の進行中通知
-  </p>
-</div>
-<p>進行中通知は、バックグラウンドで進行中の処理に関する情報をユーザーに伝えます。たとえば、音楽プレイヤーは通知システムで現在再生中のトラックを示し、ユーザーが再生を停止するまで通知を継続します。
-
-
-
-進行中通知には、ファイルのダウンロードやビデオのエンコードなど、時間のかかるタスクに対するフィードバックをユーザーに示すこともできます。
-
-ユーザーは、進行中通知を通知ドロワーから手動では削除できません。
-</p>
-
-<h3 id="ongoing_notifications">メディア再生</h3>
-<p>Android 5.0 では、廃止された {@link android.media.RemoteControlClient} クラスの転送コントロールがロック画面に表示されません。
-ただし、通知が表示されるため、<em></em>ユーザーがロック状態から再生をコントロールするための主な手段は、現状では各アプリの再生通知です。
-
-この動作により、アプリは表示するボタンとその表示形態についてより多くをコントロールでき、画面がロックされているかどうかによらない一貫した操作感をユーザーに提供できます。
-
-
-</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">ダイアログとトースト
-</h3>
-
-<p>アプリが画面上に表示されていないときにダイアログやトーストを作成しないようにしてください。
-ダイアログやトーストの表示は、アプリでのアクションに対するユーザーへの即座の応答のみにします。ダイアログやトーストの使用の目安については、<a href="/design/patterns/confirming-acknowledging.html">確認と通知</a>をご覧ください。
-
-
-
-</p>
-
-<h3>評価と並べ替え</h3>
-
-<p>通知はニュースであるため、基本的には新しい順に表示され、アプリが通知に指定した<a href="#correctly_set_and_manage_notification_priority">優先度</a>に基づき特別な配慮がなされます。
-
-
-</p>
-
-<p>通知はロック画面の重要な一部であり、端末のディスプレイがオンになるたび前面に出ます。
-
-ロック画面のスペースは限られているため、もっとも緊急か重要な通知を識別することが何より重要になります。
-
-この理由から、Android では洗練された通知並べ替えアルゴリズムを採用しており、その中で以下を考慮しています。
-
-</p>
-
-<ul>
-  <li> タイムスタンプと、アプリが指定した優先度。</li>
-  <li> その通知が最近ユーザーに音または振動で配信されたかどうか。
-（つまり、電話が音を立てるだけの場合、ユーザーが「何が起こったのか」を知りたくなったら、ロック画面はそれに一目でわかる答えを示すべきです）。
-
-
-</li>
-  <li> {@link android.app.Notification#EXTRA_PEOPLE} を使用して通知に添付された人、特にその人が「お気に入り」の連絡先かどうか。
-</li>
-</ul>
-
-<p>この並べ替え機能を最大限に生かすには、リストにおける特定の位置付けを狙うのではなく、ユーザーの操作感に注目します。
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Gmail 通知の優先度はデフォルトであり、そのため Hangouts などのインスタントメッセージ アプリからのメッセージの下に並びますが、新しいメッセージが来たときは一時的にそれより先に表示されます。
-
-
-
-
-  </p>
-
-
-<h3>ロック画面上</h3>
-
-<p>通知はロック画面に表示されるため、ユーザーのプライバシーはとりわけ重要な考慮対象です。
-
-通知には機密性の高い情報が含まれることが多く、端末を手に取ってディスプレイをオンにした誰にでも見られるようにすべきではありません。
-
-</p>
-
-<ul>
-  <li> セキュリティ保護されたロック画面（PIN、パターン、パスワードなど）を持つ端末の場合、インターフェースには公開部分と秘密部分があります。
-公開インターフェースはセキュリティ保護されたロック画面に表示でき、誰でも見られます。
-秘密インターフェースはロック画面の背後にある世界で、ユーザーが端末にサインインして初めて表示されます。
-</li>
-</ul>
-
-<h3>セキュリティ保護されたロック画面に表示される情報のユーザー コントロール</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    ロック画面上の通知。コンテンツはユーザーが端末をロック解除した後に表示されます。
-  </p>
-</div>
-
-<p>セキュリティ保護されたロック画面をセットアップする際、ユーザーはセキュリティ保護されたロック画面には表示しない機密性の高い情報を選ぶことができます。
-その場合、システム UI は通知の<em>可視性レベル</em>を考慮して、表示しても問題ない情報を識別します。
-
-</p>
-<p> 可視性レベルをコントロールするには、<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code> を呼び出し、次の値のどれかを指定します。
-
-</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>。通知の内容がすべて表示されます。
-
-  可視性レベルが指定されていない場合は、これがシステム デフォルトです。</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>。ロック画面に、その通知の存在に関する基本情報、たとえば通知のアイコンやそれを提示したアプリ名などを表示します。
-
-通知のその他の詳細は表示されません。いくつか留意すべき点があります。
-
-  <ul>
-    <li> システムがセキュリティ保護されたロック画面に表示するためとして公開バージョンの通知を別に提供する場合は、<code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code> フィールドに代替 Notification オブジェクトを用意します。
-
-
-
-    <li> この設定により、アプリは利便性はあるが個人情報は明かさない編集されたバージョンのコンテンツを作成できるようになります。
-SMS アプリを例に考えて見ましょう。通知には SMS のテキストメッセージ、送信者の名前、連絡先アイコンが含まれています。この通知は <code>VISIBILITY_PRIVATE</code> であるべきですが、<code>publicVersion</code> にも "3 件の新しいメッセージ" のような個人を特定する詳細なしでも利便性のある情報を盛り込めます。
-
-
-
-
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>。必要最小限の情報のみ表示し、通知のアイコンさえありません。
-</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Android Wear での通知
-</h2>
-
-<p>通知とそのアクション<em></em>は、デフォルトで Wear 端末にブリッジされます。デベロッパーは、どの通知が電話から腕時計へ、またはその逆へブリッジするかを制御できます。
-
-
-また、どのアクションがブリッジするかも制御できます。タップ 1 回では完了しないアクションがアプリに含まれている場合は、そうしたアクションを Wear 通知では隠すか Wear アプリに接続することを検討してください。いずれにしても、ユーザーがアクションを腕時計で完了できるようにします。
-
-
-
-
-
-</p>
-
-<h4>通知とアクションのブリッジ</h4>
-
-<p>電話のような接続状態の端末は、通知を Wear 端末にブリッジして、通知が腕時計に表示されるようにできます。
-同様に、アクションもブリッジして、ユーザーが通知に Wear 端末で直接対処できるようにできます。
-</p>
-
-<p><strong>ブリッジする</strong></p>
-
-<ul>
-  <li> 新しいインスタントメッセージ</li>
-  <li> +1、いいね、心拍数のようなタップ 1 回のアクション</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>ブリッジしない</strong></p>
-
-<ul>
-  <li> 新着ポッドキャストの通知</li>
-  <li> 腕時計ではできない機能にマップされたアクション</li>
-</ul>
-
-
-
-<p><h4>Wear 専用に定義されたアクション</h4></p>
-
-<p>Wear でのみできるアクションがいくつかあります。次に例を挙げます。</p>
-
-<ul>
-  <li> 「Be right back」 のような定形応答のクイックリスト</li>
-  <li> 携帯電話で開く</li>
-  <li> 音声入力画面を起動する 「Comment」 アクションや 「Reply」 アクション</li>
-  <li> Wear 専用アプリを起動するアクション</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/ja/preview/j8-jack.jd b/docs/html-intl/intl/ja/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/ja/preview/j8-jack.jd
rename to docs/html-intl/intl/ja/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/ja/preview/features/multi-window.jd b/docs/html-intl/intl/ja/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/features/multi-window.jd
rename to docs/html-intl/intl/ja/guide/topics/ui/multi-window.jd
index dba58be..a8df89d 100644
--- a/docs/html-intl/intl/ja/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/ja/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>このドキュメントの内容</h2>
       <ol>
         <li><a href="#overview">概要</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>図 1.</strong> 分割画面モードで並べて実行されている 2 つのアプリ。
 </p>
diff --git a/docs/html-intl/intl/ja/preview/_book.yaml b/docs/html-intl/intl/ja/preview/_book.yaml
deleted file mode 100644
index 5f1e18f..0000000
--- a/docs/html-intl/intl/ja/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: プログラム概要
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: サポートとリリースノート
-  path: /preview/support.html
-
-- title: Preview のセットアップ
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: 端末上でのテスト
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: 動作の変更点
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: バックグラウンド処理の最適化
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: 言語とロケール
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: マルチ ウィンドウのサポート
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: 通知
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: データセーバー
-    path: /preview/features/data-saver.html
-  - title: TV の録画機能
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: ネットワーク セキュリティ構成
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: ICU4J のサポート
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Java 8 の言語機能
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Android for Work のアップデート
-    path: /preview/features/afw.html
-  - title: 特定のディレクトリへのアクセス
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: サンプル
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: 使用許諾契約
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/ja/preview/download-ota.jd b/docs/html-intl/intl/ja/preview/download-ota.jd
deleted file mode 100644
index 835597b..0000000
--- a/docs/html-intl/intl/ja/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=端末の OTA イメージの適用
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Android Preview SDK のコンポーネントをダウンロード、インストールする前に、次の利用規約に同意する必要があります。
-
-</p>
-
-    <h2 class="norule">利用規約</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-以下は、Android SDK Preview の使用許諾契約です（以下「本契約」）。
-
-1. はじめに
-
-1.1 Android SDK Preview（以下、本契約で「Preview」という。具体的には利用可能な場合には Android システム ファイル、パッケージ型 API、Preview ライブラリ ファイルを含む）は、本契約の規定に従ってライセンス許可されます。本契約では、デベロッパーの Preview の使用に関して、デベロッパーと Google の間で法的拘束力のある契約を結びます。
-
-1.2 「Android」とは、Android オープンソース プロジェクト（http://source.android.com/ にて随時更新）にて利用可能な、端末向けの Android ソフトウェア スタックを意味します。
-
-1.3 「Android 互換」とは、（i）Android 互換ウェブサイト（http://source.android.com/compatibility）に掲載されており、随時アップデートされる可能性がある Android Compatibility Definition ドキュメントに準拠し、かつ（ii）Android Compatibility Test Suite（CTS）に合格した任意の Android 実装を指します。
-
-1.4 「Google」とは、1600 Amphitheatre Parkway, Mountain View, CA 94043, United States に主たる事業所を有するデラウェア州法人である Google Inc. を意味します。
-
-2. 本契約への同意
-
-2.1 Peview を使用するためには、本契約に同意する必要があります。本契約に同意しない場合は Preview を使用できません。
-
-2.2 同意するかまたは Preview を使用するためにクリックすると、本契約に同意したことになります。
-
-2.3 米国またはその他の国（デベロッパーが居住している国かまたはデベロッパーが Preview を使用する国を含む）の法律により Preview の使用を禁止されている人である場合、Preview を使用することも、使用許諾契約に同意することもできません。
-
-2.4 雇用主またはその他の事業体を代表または代理して本契約に拘束されることに同意し Preview を企業または組織の内部で使用する場合、担当者の雇用主またはその他の事業体を本契約に法的に拘束する完全な法的権限を有していることを表明および保証するものとします。担当者が必要な権限を有していない場合は、担当者の雇用主またはその他の事業体を代表または代理して、本契約に同意することも、Preview を使用することもできません。
-
-3. Google からの Preview ライセンス
-
-3.1 本契約の規定に従い、Google は Android 実装と互換性のあるアプリの開発に Preview を使用するための、限定的で、世界規模の、ロイヤリティ フリーな、譲渡不可、非排他的、サブライセンス不可なライセンスを付与するものとします。
-
-3.2 本 Preview は、別のプラットフォーム（Android 実装と互換性のないものも含む）のアプリの開発や別の SDK の開発には使用できません。本 Preview をその目的で使用しない場合は、Android 実装と互換性のないものを含め、自由に別のプラットフォームのアプリの開発を行うことができます。
-
-3.3 Preview に関するすべての法的権利、所有権、利益（Preview に含まれる知的財産権を含む）は Google またはサードパーティが所有するものとします。「知的財産権」とは、特許法、著作権法、営業秘密法、商標法、不当競争防止法に基づいて発生するすべての権利、およびその他のすべての所有権を意味します。デベロッパーに明示的に付与されていない権利は、すべて Google が所有します。
-
-3.4 本契約で明示的に許可されている目的以外においては、Preview を使用できません。当該のサードパーティのライセンスで必要とされる場合を除き、デベロッパーは、（a）Preview または Preview の一部をコピー（バックアップ目的を除く）、修正、改造、再配布、逆コンパイル、リバース エンジニアリング、逆アセンブルまたは派生物の作成、または（b）モバイル ハンドセットまたは個人用コンピュータ以外のハードウェア端末への Preview の読み込み、Preview と他のソフトウェアとの結合、または Preview の一部を組み込んだソフトウェアや端末の配布はできません。
-
-3.5 オープンソース ソフトウェア ライセンス下でライセンス付与された Preview のコンポーネントの使用、複製、配布は、本契約ではなく、そのオープンソース ソフトウェアのライセンスに準拠するものとします。デベロッパーは、許諾されるすべての権利下で、そのようなオープンソース ソフトウェア ライセンスに対して、良好な状態のライセンシーのままでいることに同意し、そのような権利を終了、停止、または違反する可能性のあるいかなる行為も差し控えることに同意するものとします。
-
-3.6 デベロッパーは、Google が提供する Preview の形式および性質は事前の通知なしに変更される場合があり、今後リリースされる Preview のバージョンでは、以前のバージョンの Preview で開発されたアプリとの互換性がない可能性があることに同意します。デベロッパーは、Google が事前の通知なく、Google の単独の裁量でデベロッパーまたはユーザーへの Preview（または Preview 内の一部の機能）の提供を（恒久的または一時的に）停止する場合があることに同意します。
-
-3.7 本契約のいかなる部分も、Google のいかなる商標名、商標、サービスマーク、ロゴ、ドメイン名、またはその他のブランド識別表示を使用する権利もデベロッパーに付与するものではありません。
-
-3.8 デベロッパーは、Preview に添付または収録されているすべての知的財産権に関する通知（著作権および商標の通知を含む）の削除、隠ぺい、改ざんを行わないことに同意します。
-
-4. デベロッパーによる Preview の使用
-
-4.1 Google は、本契約に基づき Preview を使用してデベロッパーが開発したソフトウェア アプリに関して、デベロッパー（またはデベロッパーのライセンサー）からいかなる権利、所有権、または利益（当該アプリに含まれる知的財産権を含む）も取得するものではないことに同意します。
-
-4.2 デベロッパーは、Preview を（a）本契約、および（b）該当する司法管轄区における適用される法律、規則、または一般に認められた慣行またはガイドライン（米国またはその他の該当国におけるデータまたはソフトウェアの輸出入に関する法律を含む）で認められている目的にのみ使用することに同意します。
-
-4.3 Preview を使用してアプリを開発する場合、デベロッパーはユーザーのプライバシーおよび法的権利を保護することに同意します。ユーザーからデベロッパーにユーザー名、パスワード、またはその他のログイン情報または個人情報が提供される場合、デベロッパーは、情報がデベロッパーのアプリに提供されることをユーザーに認識させ、当該ユーザーについてプライバシーに関する法的に十分な通知および保護を行わなければなりません。デベロッパーのアプリに個人情報または秘密情報が保存される場合、この保存は保護された方法で行われなければなりません。ユーザーからデベロッパーのアプリに Google アカウントの情報が提供された場合、デベロッパーのアプリでは、ユーザーが許可したタイミングで、かつユーザーが許可した限定された目的にのみ、当該情報を使用してユーザーの Google アカウントにアクセスすることが認められるものとします。
-
-4.4 デベロッパーは、Preview に関して、第三者（Google、およびあらゆる携帯電話会社を含むが、これらに限定されない）のサーバー、ネットワーク、またはその他の財産またはサービスへの妨害、中断、損害、または許可されていない態様でのアクセスとなる行為（そのような行為に該当する対象製品の開発または販売 / 配布を含む）に関与しないことに同意します。
-
-4.5 デベロッパーは、デベロッパーが Android および Android のアプリを介して作成、送信、表示するデータ、コンテンツ、リソース、および自身の行為の結果（Google に発生する可能性のあるあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.6 デベロッパーは、本契約、適用される第三者の契約もしくは利用規約、または適用される法律もしくは規則に基づく自身の義務に違反したこと、および当該違反の結果（Google または第三者に発生したあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.7 Preview は開発中であり、デベロッパーによるテスティングやフィードバックは開発プロセスの重要な一部となります。デベロッパーは、Preview の使用により、一部の機能の実装が開発中であると認識し、Preview が安定したリリースの完全な機能性を持つことに依存すべきでないことを認識するものとします。本 Preview は、公式の Android SDK のリリース後はサポート対象でなくなるため、デベロッパーは、Preview を使用するいかなるアプリも公然と配布または引き渡さないことに同意するものとします。
-
-5. デベロッパーの認証情報
-
-5.1 デベロッパーは、Google が発行した、またはデベロッパー自身で選択した、自身のデベロッパー用認証情報の秘密を保持する責任を負うこと、および自身のデベロッパー用認証情報のもとで開発されたすべてのアプリについて単独で責任を負うことに同意します。
-
-6. プライバシーおよび情報
-
-6.1 Google は、Preview の継続的な技術革新と改良のために、ソフトウェアから特定の使用統計情報（一意識別子、関連する IP アドレス、ソフトウェアのバージョン番号、Preview のどのツール/サービスがどのように使用されているかに関する情報を含むが、これらに限定されない）を収集できます。この情報が収集される前に、Preview に通知が表示され、デベロッパーの同意が求められます。デベロッパーが同意しない場合は、情報は収集されません。
-
-6.2 収集されるデータは、Preview の改良のために集約された形で精査され、Google のプライバシー ポリシー（http://www.google.com/policies/privacy/）に従って管理されます。
-
-7. 第三者のアプリ
-
-7.1 デベロッパーが、Preview を使用して第三者が開発したアプリを実行する、あるいは第三者から提供されたデータ、コンテンツ、リソースにアクセスする場合、デベロッパーは、Google がそれらのアプリ、データ、コンテンツ、リソースについて責任を負わないことに同意します。デベロッパーは、そのような第三者のアプリを介してアクセスするすべてのデータ、コンテンツ、リソースについては、それらを生成した者が単独で責任を負うものであり、Google はそれらの第三者のアプリ、データ、コンテンツ、またはリソースの使用もしくはアクセスによって生じたあらゆる損失および損害について一切責任を負わないことを理解します。
-
-7.2 デベロッパーは、そのような第三者のアプリを介して表示されるデータ、コンテンツ、リソースは、提供者（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。デベロッパーは、当該所有者からの明確な許可がない限り、それらのデータ、コンテンツ、リソース（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-7.3 デベロッパーは、そのような第三者のアプリ、データ、コンテンツまたはリソースの使用が、デベロッパーと当該第三者間の別の規約に従うものであることを認識するものとします。
-
-8. Google API の使用
-
-8.1 Google API
-
-8.1.1 API を使用して Google からデータを取得する場合、デベロッパーは、そのデータは、Google またはデータを提供する事業体（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。そのような API の使用は追加の利用規約に従うものとします。デベロッパーは、当該の利用規約による許可がない限り、そのデータ（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-8.1.2 デベロッパーは、API を使用して Google からユーザーのデータを取得する場合、ユーザーが明示的に同意した場合のみ、およびユーザーが許可したタイミングとその目的にのみ、データを取得できることを理解し、同意します。
-
-9. 本契約の終了
-
-9.1 本契約は、下記の規定に従ってデベロッパーまたは Google のいずれかによって解約されるまで、継続して適用されるものとします。
-
-9.2 デベロッパーが本契約の解約を希望する場合は、Preview および関連するデベロッパー認証情報の使用を停止することで、契約を終了するものとします。
-
-9.3 Google は、理由の有無にかかわらず、書面で通知することでいつでもデベロッパーとの本契約を解約することができます。
-
-9.4 本契約は事前の通知またはその他の措置なく、次のうち早い方に自動的に終了します。
-（A）Google が、デベロッパーが居住している国またはデベロッパーがサービスを使用する国での Preview または Preview の一部の配布を停止したとき。
-（B）Google が Android SDK の最終バージョンをリリースしたとき。
-
-9.5 本契約が終了すると、本契約で付与されていたライセンスは終了し、デベロッパーは速やかに Preview のすべての使用を停止するものとし、第 10 条、第 11 条、第 12 条、第 14 条の規定は無期限に効力を有するものとします。
-
-10.免責事項
-
-10.1 デベロッパーは、デベロッパーによる Preview の使用はデベロッパー自身の責任において行うものであること、および Preview は「現状有姿」かつ「提供可能な限りにおいて」、Google からのいかなる種類の保証もなく提供されるものであることを明示的に理解し、これに同意します。
-
-10.2 デベロッパーによる Preview および Preview の使用を通じてダウンロードまたはその他の方法で取得されたマテリアルの使用は、デベロッパー自身の裁量および責任において行うものであり、当該使用の結果として生じるデベロッパーのコンピュータ システムもしくはその他の端末への損害またはデータの喪失についての責任はデベロッパーが単独で負います。前述を制限することなく、Preview は安定したリリースではなく、コンピュータやその他の端末の利用の完全な回復不可能な損失を含む、重大な損害を引き起こす可能性のあるエラー、欠陥、およびセキュリティ上の脆弱性が含まれている可能性があることを理解します。
-
-10.3 Google はまた、商品性、特定目的への適合性、および権利侵害がないことの黙示的な保証および条件を含む（ただしこれらに限定されない）、明示的か黙示的かを問わずあらゆる種類のすべての保証および条件を明示的に否定します。
-
-11.責任の制限
-
-11.1 デベロッパーは、Google、その子会社および関連会社、ならびにそのライセンサーが、デベロッパーに発生した直接損害、間接損害、偶発的損害、特別損害、結果的損害、または懲罰的損害（データの喪失を含む）について、Google またはその代表者が当該損失が発生する可能性について告知されていたかどうか、または知っていたはずであるかどうかにかかわらず、いかなる責任法理のもとでもデベロッパーに対して責任を負わないことを明示的に理解し、これに同意します。
-
-12.補償
-
-12.1 法律で認められる最大限の範囲内において、デベロッパーは、（a）デベロッパーが Preview を使用したこと、および（b）デベロッパーが Preview で開発したアプリが他者のいかなる知的財産権を侵害していること、または他者の名誉を毀損している、もしくは他者のパブリシティ権もしくはプライバシー権を侵害していること、および（c）デベロッパーが本契約に違反したことから発生したあらゆる申し立て、普通法上の訴訟、衡平法上の訴訟、または法的手続き、ならびにあらゆる損失、責任、損害、費用、および経費（合理的な弁護士報酬を含む）について、Google、その関連会社、ならびに当該各社の取締役、役員、従業員、代理人を防御し、補償し、免責することに同意します。
-
-13.契約の変更
-
-13.1 Google は、Preview の新しいバージョンを配布することにより、いつでも本契約を変更することができます。変更が生じた場合、Google は、Preview の提供ウェブサイト上に使用許諾契約の改訂版を公開します。
-
-14.法的一般条項
-
-14.1 本契約は、デベロッパーと Google の間の法的な合意のすべてを表し、デベロッパーによる Preview の使用（別の契約下で Google が提供するサービスを除く）に適用され、Preview に関するデベロッパーと Google の間のあらゆる事前の合意に完全に取って代わるものです。
-
-14.2 デベロッパーは、Google が本契約に定める（または適用される法律のもとで Google が享受できる）法的な権利または救済措置を行使または執行しなかった場合でも、Google の権利が正式に放棄されたとはみなされないこと、および Google が以後も引き続き当該権利および救済措置を行使または執行できることに同意します。
-
-14.3 本件について判断を下す管轄権を有する司法裁判所によって、本契約のいずれかの条項が無効と判断された場合、当該条項は、本契約の残りの部分に影響を与えることなく本契約から削除されるものとします。本契約の残りの条項は、以後も引き続き有効かつ執行可能であるものとします。
-
-14.4 デベロッパーは、Google が親会社となっている各グループ企業が、本契約の第三受益者となること、および当該企業が、当該企業に利益（または受益権）を付与する本契約の条項を直接執行する、また当該条項に依拠する権利を有することを了承し、これに同意します。上記以外のいかなる人または法人も、本契約の第三受益者とはならないものとします。
-
-14.5 輸出規制。Preview は、米国輸出管理法令の対象です。デベロッパーは、Preview に適用されるすべての国内および国際の輸出管理法令に従わなければなりません。これらの法律には、仕向け地、ユーザー、および最終用途に関する制限が含まれます。
-
-14.6 デベロッパーは、Google から事前に書面で承認を得ずに、本契約を譲渡または移転することはできません。また、そのような承認を得ずに計画された譲渡はすべて無効になります。デベロッパーは、Google から事前に書面で承認を得ずに、本契約に基づく自身の責任または義務を他者に委任してはなりません。
-
-14.7 本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連するすべての申し立ては、米国カリフォルニア州の抵触法を除いて、カリフォルニア州法に準拠するものとします。デベロッパーおよび Google は、本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連する法的事項の解決について、米国カリフォルニア州サンタクララ郡に所在の連邦裁判所または州立裁判所が専属管轄権を有することに合意します。上記にかかわらず、デベロッパーは、Google が任意の司法管轄区において差し止め命令による救済（または同等の緊急法的救済）を求める申し立てを行うことが認められることに同意します。
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">上記の利用規約を読み、同意します。</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  このページでは、無線（OTA）端末イメージへのリンクを提供し、OTA アップデートを端末に手動で適用する方法を説明しています。
-この手順は、Android ベータ版プログラムにより OTA アップデートが配信されたが、アップデートをインストールした後に起動しない端末を復元する際に役立ちます。
-
-
-</p>
-
-<h2 id="install-ota">OTA イメージのインストール</h2>
-
-<p></p>
-
-<p>端末に OTA パッケージをインストールするには：</p>
-
-<ol>
-  <li>以下の表の OTA 端末イメージをダウンロードします。</li>
-  <li>復旧モードで端末を再起動します。Nexus 端末をこのモードにする方法については、<a href="https://support.google.com/nexus/answer/4596836">Nexus を工場出荷時設定にリセットする</a>を参照してください。
-
-
-
-  </li>
-  <li>端末で [<strong>ADB sideload</strong>] を選択します。</li>
-  <li>Android 開発環境がロードされ、Android Debug Bridge（adb）ツールがインストールされたコンピュータに端末を接続します。
-</li>
-  <li>以下のコマンドを実行します。
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">端末の OTA イメージ</h2>
-
-<table>
-  <tr>
-    <th scope="col">端末</th>
-    <th scope="col">ダウンロード / チェックサム</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/ja/preview/download.jd b/docs/html-intl/intl/ja/preview/download.jd
deleted file mode 100644
index 52f7ae4..0000000
--- a/docs/html-intl/intl/ja/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=端末上でのテスト
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Android Preview SDK のコンポーネントをダウンロード、インストールする前に、次の利用規約に同意する必要があります。
-
-</p>
-
-    <h2 class="norule">利用規約</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-以下は、Android SDK Preview の使用許諾契約です（以下「本契約」）。
-
-1. はじめに
-
-1.1 Android SDK Preview（以下、本契約で「Preview」という。具体的には利用可能な場合には Android システム ファイル、パッケージ型 API、Preview ライブラリ ファイルを含む）は、本契約の規定に従ってライセンス許可されます。本契約では、デベロッパーの Preview の使用に関して、デベロッパーと Google の間で法的拘束力のある契約を結びます。
-
-1.2 「Android」とは、Android オープンソース プロジェクト（http://source.android.com/ にて随時更新）にて利用可能な、端末向けの Android ソフトウェア スタックを意味します。
-
-1.3 「Android 互換」とは、（i）Android 互換ウェブサイト（http://source.android.com/compatibility）に掲載されており、随時アップデートされる可能性がある Android Compatibility Definition ドキュメントに準拠し、かつ（ii）Android Compatibility Test Suite（CTS）に合格した任意の Android 実装を指します。
-
-1.4 「Google」とは、1600 Amphitheatre Parkway, Mountain View, CA 94043, United States に主たる事業所を有するデラウェア州法人である Google Inc. を意味します。
-
-2. 本契約への同意
-
-2.1 Peview を使用するためには、本契約に同意する必要があります。本契約に同意しない場合は Preview を使用できません。
-
-2.2 同意するかまたは Preview を使用するためにクリックすると、本契約に同意したことになります。
-
-2.3 米国またはその他の国（デベロッパーが居住している国かまたはデベロッパーが Preview を使用する国を含む）の法律により Preview の使用を禁止されている人である場合、Preview を使用することも、使用許諾契約に同意することもできません。
-
-2.4 雇用主またはその他の事業体を代表または代理して本契約に拘束されることに同意し Preview を企業または組織の内部で使用する場合、担当者の雇用主またはその他の事業体を本契約に法的に拘束する完全な法的権限を有していることを表明および保証するものとします。担当者が必要な権限を有していない場合は、担当者の雇用主またはその他の事業体を代表または代理して、本契約に同意することも、Preview を使用することもできません。
-
-3. Google からの Preview ライセンス
-
-3.1 本契約の規定に従い、Google は Android 実装と互換性のあるアプリの開発に Preview を使用するための、限定的で、世界規模の、ロイヤリティ フリーな、譲渡不可、非排他的、サブライセンス不可なライセンスを付与するものとします。
-
-3.2 本 Preview は、別のプラットフォーム（Android 実装と互換性のないものも含む）のアプリの開発や別の SDK の開発には使用できません。本 Preview をその目的で使用しない場合は、Android 実装と互換性のないものを含め、自由に別のプラットフォームのアプリの開発を行うことができます。
-
-3.3 Preview に関するすべての法的権利、所有権、利益（Preview に含まれる知的財産権を含む）は Google またはサードパーティが所有するものとします。「知的財産権」とは、特許法、著作権法、営業秘密法、商標法、不当競争防止法に基づいて発生するすべての権利、およびその他のすべての所有権を意味します。デベロッパーに明示的に付与されていない権利は、すべて Google が所有します。
-
-3.4 本契約で明示的に許可されている目的以外においては、Preview を使用できません。当該のサードパーティのライセンスで必要とされる場合を除き、デベロッパーは、（a）Preview または Preview の一部をコピー（バックアップ目的を除く）、修正、改造、再配布、逆コンパイル、リバース エンジニアリング、逆アセンブルまたは派生物の作成、または（b）モバイル ハンドセットまたは個人用コンピュータ以外のハードウェア端末への Preview の読み込み、Preview と他のソフトウェアとの結合、または Preview の一部を組み込んだソフトウェアや端末の配布はできません。
-
-3.5 オープンソース ソフトウェア ライセンス下でライセンス付与された Preview のコンポーネントの使用、複製、配布は、本契約ではなく、そのオープンソース ソフトウェアのライセンスに準拠するものとします。デベロッパーは、許諾されるすべての権利下で、そのようなオープンソース ソフトウェア ライセンスに対して、良好な状態のライセンシーのままでいることに同意し、そのような権利を終了、停止、または違反する可能性のあるいかなる行為も差し控えることに同意するものとします。
-
-3.6 デベロッパーは、Google が提供する Preview の形式および性質は事前の通知なしに変更される場合があり、今後リリースされる Preview のバージョンでは、以前のバージョンの Preview で開発されたアプリとの互換性がない可能性があることに同意します。デベロッパーは、Google が事前の通知なく、Google の単独の裁量でデベロッパーまたはユーザーへの Preview（または Preview 内の一部の機能）の提供を（恒久的または一時的に）停止する場合があることに同意します。
-
-3.7 本契約のいかなる部分も、Google のいかなる商標名、商標、サービスマーク、ロゴ、ドメイン名、またはその他のブランド識別表示を使用する権利もデベロッパーに付与するものではありません。
-
-3.8 デベロッパーは、Preview に添付または収録されているすべての知的財産権に関する通知（著作権および商標の通知を含む）の削除、隠ぺい、改ざんを行わないことに同意します。
-
-4. デベロッパーによる Preview の使用
-
-4.1 Google は、本契約に基づき Preview を使用してデベロッパーが開発したソフトウェア アプリに関して、デベロッパー（またはデベロッパーのライセンサー）からいかなる権利、所有権、または利益（当該アプリに含まれる知的財産権を含む）も取得するものではないことに同意します。
-
-4.2 デベロッパーは、Preview を（a）本契約、および（b）該当する司法管轄区における適用される法律、規則、または一般に認められた慣行またはガイドライン（米国またはその他の該当国におけるデータまたはソフトウェアの輸出入に関する法律を含む）で認められている目的にのみ使用することに同意します。
-
-4.3 Preview を使用してアプリを開発する場合、デベロッパーはユーザーのプライバシーおよび法的権利を保護することに同意します。ユーザーからデベロッパーにユーザー名、パスワード、またはその他のログイン情報または個人情報が提供される場合、デベロッパーは、情報がデベロッパーのアプリに提供されることをユーザーに認識させ、当該ユーザーについてプライバシーに関する法的に十分な通知および保護を行わなければなりません。デベロッパーのアプリに個人情報または秘密情報が保存される場合、この保存は保護された方法で行われなければなりません。ユーザーからデベロッパーのアプリに Google アカウントの情報が提供された場合、デベロッパーのアプリでは、ユーザーが許可したタイミングで、かつユーザーが許可した限定された目的にのみ、当該情報を使用してユーザーの Google アカウントにアクセスすることが認められるものとします。
-
-4.4 デベロッパーは、Preview に関して、第三者（Google、およびあらゆる携帯電話会社を含むが、これらに限定されない）のサーバー、ネットワーク、またはその他の財産またはサービスへの妨害、中断、損害、または許可されていない態様でのアクセスとなる行為（そのような行為に該当する対象製品の開発または販売 / 配布を含む）に関与しないことに同意します。
-
-4.5 デベロッパーは、デベロッパーが Android および Android のアプリを介して作成、送信、表示するデータ、コンテンツ、リソース、および自身の行為の結果（Google に発生する可能性のあるあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.6 デベロッパーは、本契約、適用される第三者の契約もしくは利用規約、または適用される法律もしくは規則に基づく自身の義務に違反したこと、および当該違反の結果（Google または第三者に発生したあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.7 Preview は開発中であり、デベロッパーによるテスティングやフィードバックは開発プロセスの重要な一部となります。デベロッパーは、Preview の使用により、一部の機能の実装が開発中であると認識し、Preview が安定したリリースの完全な機能性を持つことに依存すべきでないことを認識するものとします。本 Preview は、公式の Android SDK のリリース後はサポート対象でなくなるため、デベロッパーは、Preview を使用するいかなるアプリも公然と配布または引き渡さないことに同意するものとします。
-
-5. デベロッパーの認証情報
-
-5.1 デベロッパーは、Google が発行した、またはデベロッパー自身で選択した、自身のデベロッパー用認証情報の秘密を保持する責任を負うこと、および自身のデベロッパー用認証情報のもとで開発されたすべてのアプリについて単独で責任を負うことに同意します。
-
-6. プライバシーおよび情報
-
-6.1 Google は、Preview の継続的な技術革新と改良のために、ソフトウェアから特定の使用統計情報（一意識別子、関連する IP アドレス、ソフトウェアのバージョン番号、Preview のどのツール/サービスがどのように使用されているかに関する情報を含むが、これらに限定されない）を収集できます。この情報が収集される前に、Preview に通知が表示され、デベロッパーの同意が求められます。デベロッパーが同意しない場合は、情報は収集されません。
-
-6.2 収集されるデータは、Preview の改良のために集約された形で精査され、Google のプライバシー ポリシー（http://www.google.com/policies/privacy/）に従って管理されます。
-
-7. 第三者のアプリ
-
-7.1 デベロッパーが、Preview を使用して第三者が開発したアプリを実行する、あるいは第三者から提供されたデータ、コンテンツ、リソースにアクセスする場合、デベロッパーは、Google がそれらのアプリ、データ、コンテンツ、リソースについて責任を負わないことに同意します。デベロッパーは、そのような第三者のアプリを介してアクセスするすべてのデータ、コンテンツ、リソースについては、それらを生成した者が単独で責任を負うものであり、Google はそれらの第三者のアプリ、データ、コンテンツ、またはリソースの使用もしくはアクセスによって生じたあらゆる損失および損害について一切責任を負わないことを理解します。
-
-7.2 デベロッパーは、そのような第三者のアプリを介して表示されるデータ、コンテンツ、リソースは、提供者（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。デベロッパーは、当該所有者からの明確な許可がない限り、それらのデータ、コンテンツ、リソース（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-7.3 デベロッパーは、そのような第三者のアプリ、データ、コンテンツまたはリソースの使用が、デベロッパーと当該第三者間の別の規約に従うものであることを認識するものとします。
-
-8. Google API の使用
-
-8.1 Google API
-
-8.1.1 API を使用して Google からデータを取得する場合、デベロッパーは、そのデータは、Google またはデータを提供する事業体（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。そのような API の使用は追加の利用規約に従うものとします。デベロッパーは、当該の利用規約による許可がない限り、そのデータ（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-8.1.2 デベロッパーは、API を使用して Google からユーザーのデータを取得する場合、ユーザーが明示的に同意した場合のみ、およびユーザーが許可したタイミングとその目的にのみ、データを取得できることを理解し、同意します。
-
-9. 本契約の終了
-
-9.1 本契約は、下記の規定に従ってデベロッパーまたは Google のいずれかによって解約されるまで、継続して適用されるものとします。
-
-9.2 デベロッパーが本契約の解約を希望する場合は、Preview および関連するデベロッパー認証情報の使用を停止することで、契約を終了するものとします。
-
-9.3 Google は、理由の有無にかかわらず、書面で通知することでいつでもデベロッパーとの本契約を解約することができます。
-
-9.4 本契約は事前の通知またはその他の措置なく、次のうち早い方に自動的に終了します。
-（A）Google が、デベロッパーが居住している国またはデベロッパーがサービスを使用する国での Preview または Preview の一部の配布を停止したとき。
-（B）Google が Android SDK の最終バージョンをリリースしたとき。
-
-9.5 本契約が終了すると、本契約で付与されていたライセンスは終了し、デベロッパーは速やかに Preview のすべての使用を停止するものとし、第 10 条、第 11 条、第 12 条、第 14 条の規定は無期限に効力を有するものとします。
-
-10.免責事項
-
-10.1 デベロッパーは、デベロッパーによる Preview の使用はデベロッパー自身の責任において行うものであること、および Preview は「現状有姿」かつ「提供可能な限りにおいて」、Google からのいかなる種類の保証もなく提供されるものであることを明示的に理解し、これに同意します。
-
-10.2 デベロッパーによる Preview および Preview の使用を通じてダウンロードまたはその他の方法で取得されたマテリアルの使用は、デベロッパー自身の裁量および責任において行うものであり、当該使用の結果として生じるデベロッパーのコンピュータ システムもしくはその他の端末への損害またはデータの喪失についての責任はデベロッパーが単独で負います。前述を制限することなく、Preview は安定したリリースではなく、コンピュータやその他の端末の利用の完全な回復不可能な損失を含む、重大な損害を引き起こす可能性のあるエラー、欠陥、およびセキュリティ上の脆弱性が含まれている可能性があることを理解します。
-
-10.3 Google はまた、商品性、特定目的への適合性、および権利侵害がないことの黙示的な保証および条件を含む（ただしこれらに限定されない）、明示的か黙示的かを問わずあらゆる種類のすべての保証および条件を明示的に否定します。
-
-11.責任の制限
-
-11.1 デベロッパーは、Google、その子会社および関連会社、ならびにそのライセンサーが、デベロッパーに発生した直接損害、間接損害、偶発的損害、特別損害、結果的損害、または懲罰的損害（データの喪失を含む）について、Google またはその代表者が当該損失が発生する可能性について告知されていたかどうか、または知っていたはずであるかどうかにかかわらず、いかなる責任法理のもとでもデベロッパーに対して責任を負わないことを明示的に理解し、これに同意します。
-
-12.補償
-
-12.1 法律で認められる最大限の範囲内において、デベロッパーは、（a）デベロッパーが Preview を使用したこと、および（b）デベロッパーが Preview で開発したアプリが他者のいかなる知的財産権を侵害していること、または他者の名誉を毀損している、もしくは他者のパブリシティ権もしくはプライバシー権を侵害していること、および（c）デベロッパーが本契約に違反したことから発生したあらゆる申し立て、普通法上の訴訟、衡平法上の訴訟、または法的手続き、ならびにあらゆる損失、責任、損害、費用、および経費（合理的な弁護士報酬を含む）について、Google、その関連会社、ならびに当該各社の取締役、役員、従業員、代理人を防御し、補償し、免責することに同意します。
-
-13.契約の変更
-
-13.1 Google は、Preview の新しいバージョンを配布することにより、いつでも本契約を変更することができます。変更が生じた場合、Google は、Preview の提供ウェブサイト上に使用許諾契約の改訂版を公開します。
-
-14.法的一般条項
-
-14.1 本契約は、デベロッパーと Google の間の法的な合意のすべてを表し、デベロッパーによる Preview の使用（別の契約下で Google が提供するサービスを除く）に適用され、Preview に関するデベロッパーと Google の間のあらゆる事前の合意に完全に取って代わるものです。
-
-14.2 デベロッパーは、Google が本契約に定める（または適用される法律のもとで Google が享受できる）法的な権利または救済措置を行使または執行しなかった場合でも、Google の権利が正式に放棄されたとはみなされないこと、および Google が以後も引き続き当該権利および救済措置を行使または執行できることに同意します。
-
-14.3 本件について判断を下す管轄権を有する司法裁判所によって、本契約のいずれかの条項が無効と判断された場合、当該条項は、本契約の残りの部分に影響を与えることなく本契約から削除されるものとします。本契約の残りの条項は、以後も引き続き有効かつ執行可能であるものとします。
-
-14.4 デベロッパーは、Google が親会社となっている各グループ企業が、本契約の第三受益者となること、および当該企業が、当該企業に利益（または受益権）を付与する本契約の条項を直接執行する、また当該条項に依拠する権利を有することを了承し、これに同意します。上記以外のいかなる人または法人も、本契約の第三受益者とはならないものとします。
-
-14.5 輸出規制。Preview は、米国輸出管理法令の対象です。デベロッパーは、Preview に適用されるすべての国内および国際の輸出管理法令に従わなければなりません。これらの法律には、仕向け地、ユーザー、および最終用途に関する制限が含まれます。
-
-14.6 デベロッパーは、Google から事前に書面で承認を得ずに、本契約を譲渡または移転することはできません。また、そのような承認を得ずに計画された譲渡はすべて無効になります。デベロッパーは、Google から事前に書面で承認を得ずに、本契約に基づく自身の責任または義務を他者に委任してはなりません。
-
-14.7 本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連するすべての申し立ては、米国カリフォルニア州の抵触法を除いて、カリフォルニア州法に準拠するものとします。デベロッパーおよび Google は、本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連する法的事項の解決について、米国カリフォルニア州サンタクララ郡に所在の連邦裁判所または州立裁判所が専属管轄権を有することに合意します。上記にかかわらず、デベロッパーは、Google が任意の司法管轄区において差し止め命令による救済（または同等の緊急法的救済）を求める申し立てを行うことが認められることに同意します。
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">上記の利用規約を読み、同意します。</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>このドキュメントの内容</h2>
-      <ol>
-        <li><a href="#device-preview">ハードウェア端末をセットアップする</a>
-          <ol>
-            <li><a href="#ota">OTA アップデートを取得する</a></li>
-            <li><a href="#flash">手動で端末への書き込みを行う</a></li>
-            <li><a href="#revertDevice">アンインストールする</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">エミュレータをセットアップする</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  新しいプラットフォーム上でアプリを実行してテストするには、Android N のランタイム環境をセットアップする必要があります。
-これを行うには、以下のいずれかの方法を使用します。
-</p>
-
-<ul>
-  <li>Android N をサポート対象のハードウェア端末にインストールする。</li>
-  <li>Android N が動作する Android エミュレータをセットアップする。</li>
-</ul>
-
-<p>
-  既存の APK とハードウェア端末またはエミュレータがあれば、新しいプラットフォーム上でアプリの基本的な互換性テストを実施できます。
-
-基本的なテストのために開発環境全体をアップデートする必要はありません。
-
-</p>
-
-<p>
-  アプリを Android N 向けに修正したり、Android N の API を使用したりする場合は、Android N 用にアップデートされた開発環境をセットアップする必要があります。詳細は <a href="{@docRoot}preview/setup-sdk.html">Android N 向けの開発準備</a>の説明をご覧ください。
-
-
-
-</p>
-
-
-<h2 id="device-preview">ハードウェア端末をセットアップする</h2>
-
-<p>
-  N Developer Preview は、携帯端末やタブレット、テレビなど、アプリのテストに使用するさまざまなハードウェア端末のシステム アップデートに対応しています。
-
-</p>
-
-<p>
-  対象機種をお持ちの場合は、以下のいずれかの方法で Developer Preview マイルストーン ビルドにアップデートできます。
-
-</p>
-
-<ul>
-  <li><a href="https://g.co/androidbeta">Android ベータ版プログラム</a>により<strong>自動 OTA アップデートを受信するために端末を登録する</strong>
-登録した端末は、N Developer Preview のマイルストーン ビルドごとに、定期的に無線（OTA）アップデートを受信できます。
-既存の環境から N Developer Preview のさまざまなリリースへシームレスに移行できるため、このベータ版プログラムに登録することをお勧めします。
-
-</li>
-  <li><strong>Developer Preview のシステム イメージをダウンロードして、端末に書き込む</strong>
-  手動で書き込みをした端末には、OTA アップデートが自動で配信されません。ただし、端末を Android ベータ版プログラムに登録すれば、OTA アップデートを取得できるようになります。
- </li>
-</ul>
-
-<h3 id="ota">自動 OTA アップデートを受信するために端末を登録する</h3>
-
-<p>
-  対象機種（以下のダウンロードの表をご覧ください）をお持ちの場合は、<a href="https://g.co/androidbeta">Android ベータ版プログラム</a>に端末を登録すると、Android のプレビュー版への OTA アップデートを受信できます。
-
-正式なシステム アップデートと同様に、OTA アップデートのダウンロードや端末の更新は自動で行われます。
-
-
-</p>
-
-<p>
-  端末はいつでも登録解除できます。その端末で利用可能な Android の最新の実稼働向けバージョン（Android 6.0 Marshmallow など）への OTA アップデートが端末に配信されます。
-
-アップデート時はオールリセットされ、端末上のユーザーデータは削除されます。
-端末の登録解除前には、<strong>重要なデータをバックアップ</strong>しておいてください。
-
-</p>
-
-<p>
-  詳細情報や端末の登録方法については、<a href="https://g.co/androidbeta">Android ベータ版プログラム</a>のウェブサイトをご覧ください。
-
-</p>
-
-<p class="note"><strong>注:</strong>
-  登録を解除すると端末はオールリセットされるので、重要なデータはあらかじめバックアップしておいてください。
-
-</p>
-
-<h3 id="flash">手動で端末への書き込みを行う</h3>
-
-<p>
-  最新の Developer Preview のシステム イメージはいつでもダウンロードして、手動で端末に書き込むことができます。
-テスト端末用のシステム イメージは、以下の表からダウンロード可能です。
-テスト環境を詳細に管理したり、自動テストなどで頻繁に再インストールが必要な場合は、このように手動で端末に書き込みをする方法が便利です。
-
-
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  端末にシステム イメージをインストールすると、<strong>端末からすべてのデータが削除</strong>されるため、あらかじめデータをバックアップしておいてください。
-
-</p>
-
-<p>
-  端末上のデータをバックアップして、ご自身の端末用のシステム イメージを以下からダウンロードした後、<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> の手順に従って端末にイメージを書き込みます。
-
-
-</p>
-
-<p>
-  手動でシステム イメージを書き込んだ端末には、以降の Developer Preview マイルストーン ビルドへの <strong>OTA アップデートが自動配信されません</strong>。
-
-そのため Developer Preview マイルストーンごとに環境を最新にして、新しいシステム イメージを書き込む必要があります。
-
-</p>
-
-<p>
-  手動で端末に書き込みを行った後でも、<a href="https://g.co/androidbeta">Android ベータ版プログラム</a>に端末を登録すれば OTA アップデートを受信できるようになります。
-
-次のプレビュー版への OTA アップデートを受信したい方は、いつでも端末登録が可能です。
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">端末</th>
-    <th scope="col">ダウンロード / チェックサム</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">プレビュー版を端末からアンインストールする</h3>
-
-<p>
-  以下のいずれかの方法で、プレビュー版を端末からアンインストールできます。
- </p>
-  <ul>
-    <li><strong>工場出荷時仕様のシステム イメージを取得</strong>して、手動で端末に書き込みます。
-
-      <ul>
-          <li><strong>Nexus 端末と Pixel C 端末</strong>については、Nexus 端末の<a href="http://developers.google.com/android/nexus/images">ファクトリー イメージ</a>のページを参照してダウンロードしてください。
-
- </li>
-        <li><strong>他の端末</strong>については、端末メーカーに直接お問い合わせください。
-その他の端末については、直接端末メーカーにお問い合わせください。Android ベータ版プログラムの対象機種については、端末をプログラムに登録した後、登録を解除することができます（詳細は以下をご覧ください）。
-
-</li>
-      </ul>
-    </li>
-    <li><strong>Android ベータ版プログラムから端末を登録解除します。</strong>Android ベータ版プログラムへの端末の登録を解除します。<a href="https://g.co/androidbeta">Android ベータ版プログラム</a>に登録中の端末は、その種類のよらず、簡単に登録を解除することができます。
-
-
-  <p>
-    その端末で利用可能な Android の最新の実稼働向けバージョン（Android 6.0 Marshmallow など）への OTA アップデートが端末に配信されます。
-
-    アップデート時はオールリセットされ、端末上のユーザーデータは削除されます。
-端末の登録解除前には、<strong>重要なデータをバックアップ</strong>しておいてください。
-
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>注:</strong>
-  プログラムの終了前に Developer Preview のシステム イメージをアンインストールすると、端末はオールリセットされ、すべてのユーザーデータが削除されます。
-
-
-</p>
-
-
-<h2 id="setupAVD">エミュレータをセットアップする</h2>
-
-<p>Android エミュレータで Android N Preview を実行するには、Android N Preview SDK をダウンロードして、エミュレータ用の仮想端末を準備する必要があります。
-
-</p>
-
-<p>まずは以下の手順で Android N Preview SDK をダウンロードします（既に <a href="{@docRoot}preview/setup-sdk.html">Android N 向けの開発準備</a>でダウンロード済みの場合は、この手順は飛ばしてください）。
-
-
-
-<ol>
-  <li>Android Studio で設定ダイアログを開きます（Windows、Linux では <strong>[File] &gt; [Settings]</strong>、Mac では <strong>[Android Studio] &gt; [Preferences]</strong>）。
-
-左側のパネルで、<strong>[Appearance &amp; Behavior] &gt; [System Settings] &gt; [Android SDK]</strong> を選択します。
-
-
-
-  <li>[<strong>SDK Platforms</strong>] タブをクリックして、[<strong>Android N Preview</strong>] チェック ボックスを選択します。
-</li>
-
-  <li>[<strong>SDK Tools</strong>] タブをクリックして、[<strong>Android SDK Build Tools</strong>]、[<strong>Android SDK Platform-Tools</strong>]、[<strong>Android SDK Tools</strong>] のチェック ボックスをオンにします。
-
-
-
-  </li>
-
-  <li>[<strong>OK</strong>] をクリックして、インストールするパッケージの使用許諾に同意します。
-
-  </li>
-</ol>
-
-<p>これで <strong>Android SDK Built-Tools 24.0 0 rc1</strong>、<strong>Platform-Tools 24.0.0 rc1</strong>、<strong>SDK Tools 25.0.9</strong> がインストールされます。SDK Tools を 25.0.9 にアップデートしないと、Android N の x86_64 システム イメージは動作しません。
-
-
-</p>
-
-
-<p>次に Android N のシステム イメージを使用して仮想端末を作成します。</p>
-
-<ol>
-  <li><strong>[Tools] &gt; [Android] &gt; [AVD Manager]</strong> を選択して、AVD Manager を起動します。
-</li>
-  <li>[<strong>Create Virtual Device</strong>] をクリックします。</li>
-  <li>Nexus 5X、Nexus 6P、Nexus 9、Android TV などの端末を選択して、[<strong>Next</strong>] をクリックします。
-</li>
-  <li><strong>N</strong> システム イメージ（<strong>x86</strong> ABI）を選択して [<strong>Next</strong>] をクリックします
-
-    （現時点で Android N Preview の Android エミュレータに対応しているのは x86 システム イメージだけです）。
-
-  <li>残りの AVD 設定を終えたら [<strong>Finish</strong>] をクリックします。
-</li>
-</ol>
-
-<p>これで Android N Preview AVD で Android エミュレータを起動できます。</p>
-
-<p>
-<a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a> に対応した Android Studio 2.1 のプレビュー版をインストールすると、Android Studio 1.5 よりもパフォーマンスが格段に向上し、Android エミュレータをより快適にお使いいただけます。
-
-
-</p>
-
-<p>仮想端末の作成については、<a href="{@docRoot}tools/devices/index.html">仮想端末を管理する</a>で詳細をご覧ください。
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/ja/preview/features/afw.jd b/docs/html-intl/intl/ja/preview/features/afw.jd
deleted file mode 100644
index 8e73298..0000000
--- a/docs/html-intl/intl/ja/preview/features/afw.jd
+++ /dev/null
@@ -1,552 +0,0 @@
-page.title=Android for Work のアップデート
-page.metaDescription=Android N の新しい Android for Work の API と機能。
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>このドキュメントの内容</h2>
-      <ol>
-        <li><a href="#qr">QR コードのプロビジョニング</a>
-</li>
-
-        <li><a href="#sec-challenge">仕事用プロファイルによるセキュリティ確認</a>
-</li>
-
-        <li><a href="#suspend">アプリへのアクセスを無効にする</a>
-</li>
-
-        <li><a href="#toggle-work">ワークモードの切り替え</a>
-</li>
-
-        <li><a href="#always-on-vpn">Always On VPN</a>
-</li>
-
-        <li><a href="#contacts">仕事用プロファイルと連絡先の統合</a>
-</li>
-
-        <li><a href="#remote-reboot">リモートでの再起動</a>
-</li>
-
-        <li><a href="#disable-roaming">データローミングを無効にする</a>
-</li>
-
-        <li><a href="#process-logging">企業によるプロセスのログ記録</a>
-</li>
-
-        <li><a href="#bug-reports">リモートでのバグレポート</a>
-</li>
-
-        <li><a href="#remove-cert">クライアント証明書を削除する</a>
-</li>
-
-        <li><a href="#grant-cert-on-install">インストール時にクライアント証明書へのアクセス権を付与する</a>
-</li>
-
-        <li><a href="#ui-policy">システムの UI ポリシーの透明性</a>
-</li>
-
-        <li><a href="#restrictions-mgmt">アプリ制限の管理の強化</a>
-</li>
-
-        <li><a href="#location-off">位置情報のオフへの切り替え</a>
-</li>
-
-        <li><a href="#custom-provisioning">カスタマイズされたプロビジョニング</a>
-</li>
-
-        <li><a href="#multi-wifi-ca">複数の Wi-Fi 用の CA 証明書
-</a></li>
-
-        <li><a href="#custom-lock">カスタマイズされたロック画面のメッセージ</a>
-</li>
-
-        <li><a href="#work-connectionservice">仕事用プロファイルの ConnectionService</a>
-</li>
-
-        <li><a href="#lock-wp">壁紙をロックダウンする</a>
-</li>
-
-        <li><a href="#lock-user-icon">ユーザー アイコンをロックダウンする</a>
-</li>
-
-        <li><a href="#health-monitoring">端末の状態の監視</a>
-</li>
-
-      </ol>
-
-    <h2>関連ドキュメント</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK リファレンス</a>
-</li>
-    </ul>
-  </div>
-</div>
-
-<p>このドキュメントでは、Android N で提供されている新しい Android for Work の機能について説明します。
-</p>
-
-<h2 id="qr">QR コードのプロビジョニング</h2>
-
-<p>
-  Android for Work では、企業が責任を負う端末のプロビジョニングに QR コードを使用できるようになりました。
-セットアップ ウィザードを使用すると、QR コードをスキャンして端末をプロビジョニングできます。
-
-</p>
-
-<h2 id="sec-challenge">仕事用プロファイルによるセキュリティ確認</h2>
-
-<p>
-  プロファイル オーナーは、仕事用プロファイルで実行しているアプリに対してセキュリティ確認を指定するようユーザーに要求できます。
-ユーザーが仕事用アプリを開こうとすると、セキュリティ確認画面が表示されます。
-ユーザーがセキュリティの確認に成功すると、仕事用プロファイルのロックが解除され、必要に応じて暗号化も解除されます。
-
-
-</p>
-
-<p>
-  プロファイル オーナーが {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} インテントを送信すると、ユーザーはセキュリティ確認をセットアップするよう求められます。
-また、プロファイル オーナーは、<code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> インテントを送信して、ユーザーに端末のロックを設定するよう求めることもできます。
-
-
-</p>
-
-<p>
-  プロファイル オーナーは仕事用プロファイル用のセキュリティ確認に、他の端末のパスワード ポリシーとは異なるパスワード ポリシーを設定できます。
-たとえば、端末の確認応答の最小長は、他のパスワードに必要な長さと異なっていてもかまいません。
-
-プロファイル オーナーがこの確認のポリシーを設定する場合は、通常 {@link
-  android.app.admin.DevicePolicyManager#setPasswordQuality
-  setPasswordQuality()} や {@link
-  android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-  setPasswordMinimumLength()} など、{@link android.app.admin.DevicePolicyManager} メソッドを使用して設定します。
-
-また、新しい <code>DevicePolicyManager.getParentProfileInstance()</code> メソッドが返す {@link android.app.admin.DevicePolicyManager} インスタンスを使用して端末のロックを設定することもできます。
-
-
-さらに、{@link android.app.admin.DevicePolicyManager} クラスの新しい <code>setOrganizationColor()</code> メソッドおよび <code>setOrganizationName()</code> メソッドを使用して仕事用プロファイル用のセキュリティ確認画面をカスタマイズすることができます。
-
-
-
-</p>
-
-<p>
-  新しいメソッドと定数の詳細については、<a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK リファレンス</a>の<code>DevicePolicyManager</code> リファレンス ページをご覧ください。
-
-</p>
-
-<h2 id="suspend">アプリへのアクセスを無効にする</h2>
-
-<p>
-  デバイス オーナーとプロファイル オーナーは、新しい <code>DevicePolicyManager.setPackagesSuspended()</code> メソッドを呼び出して、パッケージへのアクセスを一時的に停止することができます。
-
-オーナーがパッケージを再度有効にする場合は、同じメソッドを使用できます。
-</p>
-
-<p>
-  パッケージが停止されている場合は、アクティビティを開始できないため、パッケージへの通知は行われず、<a href="{@docRoot}guide/components/recents.html">オーバービュー画面</a>のアプリのエントリは非表示になります。
-
-  停止されているパッケージは<a href="{@docRoot}guide/components/recents.html">オーバービュー画面</a>に表示されず、ダイアログ（トーストや Snackbar を含む）を表示することはできません。
-また、音声を再生したり、端末を振動させたりすることもできません。
-
-</p>
-
-<p>
-  ランチャーは、アプリが現在利用できないことを示すために、アプリのアイコンをグレーでレンダリングするなど、停止されているアプリにひと目でわかる UI を適用する必要があります。
-
-ランチャーは、新しい <code>DevicePolicyManager.getPackageSuspended()</code> メソッドを呼び出してアプリが停止されているかどうかを確認できます。
-
-</p>
-
-<h2 id="toggle-work">ワークモードの切り替え</h2>
-
-<p>
-  デュアル プロファイル端末では、ユーザーはワークモードのオンとオフを切り替えることができます。ワークモードがオフの場合は、管理されているプロファイルが一時的にシャットダウンされます。
-仕事用プロファイルのアプリ、バックグラウンドでの同期、通知がすべて無効になります。これにはプロファイル オーナーのアプリも含まれます。
-
-また、仕事用プロファイルが無効にされている場合は、仕事用アプリを起動できないことをユーザーに示すステータス アイコンが表示されたままになります。
-
-システム ランチャーは、仕事用アプリとウィジェットにアクセスできないことを示します。
-
-</p>
-
-<h2 id="always-on-vpn">Always On VPN</h2>
-
-<p>
-  デバイス オーナーとプロファイル オーナーは、指定した VPN を介して仕事用アプリが常時ネットワークに接続することを要求できます。
-オーナーがこの要件を設定すると、端末は起動時に対象の VPN を自動的に開始します。
-
-</p>
-
-<p>
-  オーナーは、新しい <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> メソッドを呼び出して VPN を使用することを要求できます。
-オーナーが VPN 要件を設定しているかどうかを確認するには、新しい <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> メソッドを呼び出します。
-
-
-</p>
-
-<p>
-  システムがアプリの介入なしに VPN サービスを直接バインドできるため、常時接続 VPN の新しいエントリ ポイントは VPN クライアント側で処理する必要があります。
-以前と同様に、アクティブなサービスを見つけるには、アクション {@link android.net.VpnService android.net.VpnService} に一致するインテント フィルタを使用します。
-
-
-</p>
-
-<p>
-  ユーザーは {@link
-  android.net.VpnService} を実装する常時接続 VPN クライアントを、<strong>[Settings] &gt; [More] &gt; [VPN]</strong> 画面を使用して手動で設定できます。
-
-</p>
-
-<h2 id="contacts">仕事用プロファイルと連絡先の統合</h2>
-
-<p>
-  プロファイル オーナーは、プライマリ ユーザーの仕事用連絡先のローカル検索やディレクトリ検索を許可することができます。
-たとえば、ユーザーは個人用電話アプリや連絡先アプリから個人用と仕事用の両方のディレクトリの連絡先にアクセスできます（プロファイル管理者によって許可されている場合）。
-
-
-</p>
-
-<p>
-  連絡先プロバイダを活用するデベロッパーは、ポリシーで許可されている場合、Enterprise Contacts API を使用してプライマリ ユーザーの仕事用プロファイルのディレクトリのエントリにアクセスできます。
-
-
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  プロファイル オーナーは、以下の新しいメソッドを使用して、プライマリ ユーザーの仕事用連絡先の表示を制御できます。
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">リモートでの再起動</h2>
-
-<p>
-  デバイス オーナーは、端末をリモートで再起動できます。エンクロージャ内のパブリックな場所にデプロイされている端末は、電源ボタンにアクセスできないようにすることができる場合があります。
-端末を再起動する必要がある場合、管理者は新しい <code>DevicePolicyManager.reboot()</code> メソッドを使用して実行することができます。
-
-
-</p>
-
-<h2 id="disable-roaming">データローミングを無効にする</h2>
-
-<p>
-  デバイス オーナーがデータローミングを無効にするには、新しい {@link
-  android.os.UserManager} のユーザー制限 <code>DISALLOW_DATA_ROAMING</code> を使用します。
-</p>
-
-<h2 id="process-logging">企業によるプロセスのログ記録</h2>
-
-<p>
-  デバイス オーナーは、リモートで端末のアクティビティ（アプリの起動、adb アクティビティ、画面のロック解除など）を追跡することにより、疑わしいアクティビティを特定できます。
-プロセス ログはユーザーの同意は必要ありません。
-ログを取得するには、デバイス オーナーは <code>DevicePolicyManager.setSecurityLoggingEnabled()</code> を使用して端末のログ記録を有効にします。
-
-</p>
-
-<p>
-  API の変更点は以下のとおりです。
-</p>
-
-<ul>
-
-  <li>
-    新しいクラス <code>android.app.admin.SecurityLog</code> とそのメソッド
-
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">リモートでのバグレポート</h2>
-
-<p>
-  デバイス オーナーは、端末の状態のダンプファイルを含むバグレポートをリモートでトリガーして取得できます。これにより、既知のインシデントや障害が発生した端末の徹底的な調査が可能になります。
-
-バグレポートの内容は詳細にわたるため、ユーザーの同意が必要になります。
-
-</p>
-
-<p>
-  Android N では、この機能をサポートするために以下の API が追加されています。詳細については、<a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK リファレンス</a>をご覧ください。
-
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">クライアント証明書を削除する</h2>
-
-<p>
-  プロファイル オーナーとデバイス オーナーは、{@link android.app.admin.DevicePolicyManager#installKeyPair
-  installKeyPair()} によってインストールされたクライアント証明書を、新しい <code>DevicePolicyManager.removeKeyPair()</code> メソッドを呼び出して削除できるようになりました。
-
-
-</p>
-
-<h2 id="grant-cert-on-install">インストール時にクライアント証明書へのアクセス権を付与する
-</h2>
-
-<p>
-  プロファイル オーナーやデバイス オーナーが、サードパーティ アプリに証明書を管理する権限を付与する場合、アプリはオーナーの介入なしに、インストールされる証明書へのアクセス権をアプリ自体に付与できます。
-
-
-</p>
-
-<p>
-  証明書を管理するための既存の API は、以下を含むように拡張されています。
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">システムの UI ポリシーの透明性</h2>
-
-<p>
-  ユーザー エクスペリエンスに影響を及ぼしたり、ユーザー設定を制限したりするポリシーはユーザーに完全に公表されます。プロファイル オーナーとデバイス オーナーは、このポリシーと会社の IT 部門を関連付けることができます。
-
-IT 管理者は [Settings] の「Action not allowed」という通常のメッセージに加え、端末設定に組織固有のサポート メッセージを設定できます。これには以下の新しい {@link android.app.admin.DevicePolicyManager} メソッドを使用します。
-
-
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">アプリ制限の管理の強化</h2>
-
-<p>
-  デバイス オーナーやプロファイル オーナーは、別のアプリケーションでアプリ制限を管理できるようにすることができます。これには新しい <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code> メソッドを使用します。
-
-
-指定されたアプリケーションは、このパーミッションが付与されているかどうかを、<code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code> を呼び出して確認できます。
-
-
-</p>
-
-<p>
-  アプリ制限を管理するように指定されたアプリケーションは、対象となるユーザーやプロファイル内のパッケージに対して {@link
-  android.app.admin.DevicePolicyManager#setApplicationRestrictions
-  setApplicationRestrictions()} と {@link
-  android.app.admin.DevicePolicyManager#getApplicationRestrictions
-  getApplicationRestrictions()} を呼び出すことができます。
-</p>
-
-<h2 id="location-off">位置情報のオフへの切り替え</h2>
-
-<p>
-  個人用アプリの位置情報に継続的にアクセスしている場合、ユーザーは仕事用アプリの位置パーミッションを無効にできます。
-[Location Settings] で別の位置情報へのアクセスに切り替えると、ユーザーは位置情報の更新や、仕事用プロファイルで実行されているアプリの最新位置情報の問い合わせを拒否できます。
-
-
-</p>
-
-<p>
-  トップレベルの位置情報をオフに切り替えると、プライマリ プロファイルと管理されているプロファイルの両方の位置情報へのアクセスが無効になります。
-
-</p>
-
-<h2 id="custom-provisioning">カスタマイズされたプロビジョニング</h2>
-
-<p>
-  アプリでは、コーポレート・カラーやロゴを含むプロファイル オーナーとデバイス オーナーのプロビジョニング フローをカスタマイズできます。
-
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    フローカラーをカスタマイズします。
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    コーポレート ロゴを含むフローをカスタマイズします。
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">複数の Wi-Fi 用の CA 証明書</h2>
-
-<p>
-  プロファイル オーナーとデバイス オーナーは、特定の Wi-Fi 設定に複数の CA 証明書を設定できます。
-企業の Wi-Fi ネットワークで、同じ SSID を持つ別のアクセス ポイントに別の CA を使用する場合、IT 管理者は新しい <code>setCaCertificates()</code> メソッドを使用して、関連するすべての CA を Wi-Fi 設定に含めることができます。
-
-
-
-</p>
-
-<p>
-  以下の API が追加されました。
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">カスタマイズされたロック画面のメッセージ</h2>
-
-<p>
-  デバイス オーナーは、ロック画面に表示されるオーナー情報を提供できます。
-  この情報は、ユーザーのロック画面のメッセージよりも優先されます（設定されている場合）。
-新しい {@link android.app.admin.DevicePolicyManager} メソッドは以下のとおりです。
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">仕事用プロファイルの ConnectionService</h2>
-
-<p>
-  プロファイル オーナーは、バックエンドの呼び出し（アカウントの呼び出し）に仕事固有の {@link android.telecom.ConnectionService} を使用する仕事用電話アプリを指定できます。
-
-仕事用電話は、仕事のみの通話履歴を保持し、仕事用連絡先のみを利用します。
-電話アプリに関係なく、ユーザーには統一された着信 UI が表示されます。
-仕事用通話アカウントへの仕事用の着信は、個人用通話アカウントへの個人用の着信とは区別されます。
-
-
-</p>
-
-<p>
-  通話が仕事用の通話かどうかを確認するには、電話は新しいフラグ <code>android.telecom.Call.PROPERTY_WORK_CALL</code> を確認する必要があります。
-
-通話が仕事用の通話の場合、電話はワーク バッジを追加するなどして、これを示す必要があります。
-
-</p>
-
-<h2 id="lock-wp">壁紙をロックダウンする</h2>
-
-<p>
-  新しいユーザー制限（<code>DISALLOW_SET_WALLPAPER</code>）により、ユーザーは壁紙を変更することができません。
-デバイス オーナーやプロファイル オーナーは壁紙を変更できますが、制御するユーザーやプロファイルの壁紙のみ変更できます。
-
-たとえば、プロファイル オーナーは、親ユーザーの壁紙は変更できませんが、プライマリ プロファイルのプロファイル オーナーやデバイス オーナーは変更できます。
-
-壁紙を変更する必要があるプロファイル オーナーやデバイス オーナーは、管理するユーザーやプロファイルに壁紙があるかどうか（{@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}）、壁紙の変更が許可されているかどうかを（新しい <code>WallpaperManager.isWallpaperSettingAllowed()</code> メソッドを使用して）確認する必要があります。
-
-
-
-</p>
-
-<h2 id="lock-user-icon">ユーザー アイコンをロックダウンする</h2>
-
-<p>
-  新しいユーザー制限（<code>DISALLOW_SET_USER_ICON</code>）により、ユーザーはユーザー アイコンを変更することができません。
-ユーザーのデバイス オーナーやプロファイル オーナーは、このアイコンを変更できます。
-ただし、プロファイル オーナーが変更できるのは、制御するプロファイルのユーザー アイコンのみです。
-
-</p>
-
-<h2 id="health-monitoring">端末の状態の監視</h2>
-
-<p>
-  デバイス オーナーやプロファイル オーナーは、新しい <code>HardwarePropertiesManager</code> インターフェースを使用して、CPU や GPU の温度、CPU 使用率などの端末の状態に関する情報を取得できます。
-
-新しい監視インターフェースは、遠隔地で実行されている使用されていない端末の監視に特に役立ちます。
-
-
-</p>
diff --git a/docs/html-intl/intl/ja/preview/license.jd b/docs/html-intl/intl/ja/preview/license.jd
deleted file mode 100644
index 64275cd..0000000
--- a/docs/html-intl/intl/ja/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=使用許諾契約
-
-@jd:body
-
-<p>
-Android SDK Preview をインストールする前に、次の利用規約に同意する必要があります。
-以下に記載するとおり、これは、Android SDK のプレビュー バージョンであり、変更される可能性があります。デベロッパーご自身の責任においてご使用ください。Android SDK Preview は安定したリリースではなく、お使いのコンピュータ システム、端末、データに深刻な影響を与える可能性のあるエラーまたは欠陥が含まれている場合があります。
-</p>
-
-<p>
-以下は、Android SDK Preview の使用許諾契約です（以下「本契約」）。
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. はじめに
-
-1.1 Android SDK Preview（以下、本契約で「Preview」という。具体的には利用可能な場合には Android システム ファイル、パッケージ型 API、Preview ライブラリ ファイルを含む）は、本契約の規定に従ってライセンス許可されます。本契約では、デベロッパーの Preview の使用に関して、デベロッパーと Google の間で法的拘束力のある契約を結びます。
-
-1.2 「Android」とは、Android オープンソース プロジェクト（http://source.android.com/ にて随時更新）にて利用可能な、端末向けの Android ソフトウェア スタックを意味します。
-
-1.3 「Android 互換」とは、（i）Android 互換ウェブサイト（http://source.android.com/compatibility）に掲載されており、随時アップデートされる可能性がある Android Compatibility Definition ドキュメントに準拠し、かつ（ii）Android Compatibility Test Suite（CTS）に合格した任意の Android 実装を指します。
-
-1.4 「Google」とは、1600 Amphitheatre Parkway, Mountain View, CA 94043, United States に主たる事業所を有するデラウェア州法人である Google Inc. を意味します。
-
-2. 本契約への同意
-
-2.1 Peview を使用するためには、本契約に同意する必要があります。本契約に同意しない場合は Preview を使用できません。
-
-2.2 同意するかまたは Preview を使用するためにクリックすると、本契約に同意したことになります。
-
-2.3 米国またはその他の国（デベロッパーが居住している国かまたはデベロッパーが Preview を使用する国を含む）の法律により Preview の使用を禁止されている人である場合、Preview を使用することも、使用許諾契約に同意することもできません。
-
-2.4 雇用主またはその他の事業体を代表または代理して本契約に拘束されることに同意し Preview を企業または組織の内部で使用する場合、担当者の雇用主またはその他の事業体を本契約に法的に拘束する完全な法的権限を有していることを表明および保証するものとします。担当者が必要な権限を有していない場合は、担当者の雇用主またはその他の事業体を代表または代理して、本契約に同意することも、Preview を使用することもできません。
-
-3. Google からの Preview ライセンス
-
-3.1 本契約の規定に従い、Google は Android 実装と互換性のあるアプリの開発に Preview を使用するための、限定的で、世界規模の、ロイヤリティ フリーな、譲渡不可、非排他的、サブライセンス不可なライセンスを付与するものとします。
-
-3.2 本 Preview は、別のプラットフォーム（Android 実装と互換性のないものも含む）のアプリの開発や別の SDK の開発には使用できません。本 Preview をその目的で使用しない場合は、Android 実装と互換性のないものを含め、自由に別のプラットフォームのアプリの開発を行うことができます。
-
-3.3 Preview に関するすべての法的権利、所有権、利益（Preview に含まれる知的財産権を含む）は Google またはサードパーティが所有するものとします。「知的財産権」とは、特許法、著作権法、営業秘密法、商標法、不当競争防止法に基づいて発生するすべての権利、およびその他のすべての所有権を意味します。デベロッパーに明示的に付与されていない権利は、すべて Google が所有します。
-
-3.4 本契約で明示的に許可されている目的以外においては、Preview を使用できません。当該のサードパーティのライセンスで必要とされる場合を除き、デベロッパーは、（a）Preview または Preview の一部をコピー（バックアップ目的を除く）、修正、改造、再配布、逆コンパイル、リバース エンジニアリング、逆アセンブルまたは派生物の作成、または（b）モバイル ハンドセットまたは個人用コンピュータ以外のハードウェア端末への Preview の読み込み、Preview と他のソフトウェアとの結合、または Preview の一部を組み込んだソフトウェアや端末の配布はできません。
-
-3.5 オープンソース ソフトウェア ライセンス下でライセンス付与された Preview のコンポーネントの使用、複製、配布は、本契約ではなく、そのオープンソース ソフトウェアのライセンスに準拠するものとします。デベロッパーは、許諾されるすべての権利下で、そのようなオープンソース ソフトウェア ライセンスに対して、良好な状態のライセンシーのままでいることに同意し、そのような権利を終了、停止、または違反する可能性のあるいかなる行為も差し控えることに同意するものとします。
-
-3.6 デベロッパーは、Google が提供する Preview の形式および性質は事前の通知なしに変更される場合があり、今後リリースされる Preview のバージョンでは、以前のバージョンの Preview で開発されたアプリとの互換性がない可能性があることに同意します。デベロッパーは、Google が事前の通知なく、Google の単独の裁量でデベロッパーまたはユーザーへの Preview（または Preview 内の一部の機能）の提供を（恒久的または一時的に）停止する場合があることに同意します。
-
-3.7 本契約のいかなる部分も、Google のいかなる商標名、商標、サービスマーク、ロゴ、ドメイン名、またはその他のブランド識別表示を使用する権利もデベロッパーに付与するものではありません。
-
-3.8 デベロッパーは、Preview に添付または収録されているすべての知的財産権に関する通知（著作権および商標の通知を含む）の削除、隠ぺい、改ざんを行わないことに同意します。
-
-4. デベロッパーによる Preview の使用
-
-4.1 Google は、本契約に基づき Preview を使用してデベロッパーが開発したソフトウェア アプリに関して、デベロッパー（またはデベロッパーのライセンサー）からいかなる権利、所有権、または利益（当該アプリに含まれる知的財産権を含む）も取得するものではないことに同意します。
-
-4.2 デベロッパーは、Preview を（a）本契約、および（b）該当する司法管轄区における適用される法律、規則、または一般に認められた慣行またはガイドライン（米国またはその他の該当国におけるデータまたはソフトウェアの輸出入に関する法律を含む）で認められている目的にのみ使用することに同意します。
-
-4.3 Preview を使用してアプリを開発する場合、デベロッパーはユーザーのプライバシーおよび法的権利を保護することに同意します。ユーザーからデベロッパーにユーザー名、パスワード、またはその他のログイン情報または個人情報が提供される場合、デベロッパーは、情報がデベロッパーのアプリに提供されることをユーザーに認識させ、当該ユーザーについてプライバシーに関する法的に十分な通知および保護を行わなければなりません。デベロッパーのアプリに個人情報または秘密情報が保存される場合、この保存は保護された方法で行われなければなりません。ユーザーからデベロッパーのアプリに Google アカウントの情報が提供された場合、デベロッパーのアプリでは、ユーザーが許可したタイミングで、かつユーザーが許可した限定された目的にのみ、当該情報を使用してユーザーの Google アカウントにアクセスすることが認められるものとします。
-
-4.4 デベロッパーは、Preview に関して、第三者（Google、およびあらゆる携帯電話会社を含むが、これらに限定されない）のサーバー、ネットワーク、またはその他の財産またはサービスへの妨害、中断、損害、または許可されていない態様でのアクセスとなる行為（そのような行為に該当する対象製品の開発または販売 / 配布を含む）に関与しないことに同意します。
-
-4.5 デベロッパーは、デベロッパーが Android および Android のアプリを介して作成、送信、表示するデータ、コンテンツ、リソース、および自身の行為の結果（Google に発生する可能性のあるあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.6 デベロッパーは、本契約、適用される第三者の契約もしくは利用規約、または適用される法律もしくは規則に基づく自身の義務に違反したこと、および当該違反の結果（Google または第三者に発生したあらゆる損失および損害を含む）について、自身が単独で責任を負うこと（および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと）に同意します。
-
-4.7 Preview は開発中であり、デベロッパーによるテスティングやフィードバックは開発プロセスの重要な一部となります。デベロッパーは、Preview の使用により、一部の機能の実装が開発中であると認識し、Preview が安定したリリースの完全な機能性を持つことに依存すべきでないことを認識するものとします。本 Preview は、公式の Android SDK のリリース後はサポート対象でなくなるため、デベロッパーは、Preview を使用するいかなるアプリも公然と配布または引き渡さないことに同意するものとします。
-
-5. デベロッパーの認証情報
-
-5.1 デベロッパーは、Google が発行した、またはデベロッパー自身で選択した、自身のデベロッパー用認証情報の秘密を保持する責任を負うこと、および自身のデベロッパー用認証情報のもとで開発されたすべてのアプリについて単独で責任を負うことに同意します。
-
-6. プライバシーおよび情報
-
-6.1 Google は、Preview の継続的な技術革新と改良のために、ソフトウェアから特定の使用統計情報（一意識別子、関連する IP アドレス、ソフトウェアのバージョン番号、Preview のどのツール/サービスがどのように使用されているかに関する情報を含むが、これらに限定されない）を収集できます。この情報が収集される前に、Preview に通知が表示され、デベロッパーの同意が求められます。デベロッパーが同意しない場合は、情報は収集されません。
-
-6.2 収集されるデータは、Preview の改良のために集約された形で精査され、Google のプライバシー ポリシー（http://www.google.com/policies/privacy/）に従って管理されます。
-
-7. 第三者のアプリ
-
-7.1 デベロッパーが、Preview を使用して第三者が開発したアプリを実行する、あるいは第三者から提供されたデータ、コンテンツ、リソースにアクセスする場合、デベロッパーは、Google がそれらのアプリ、データ、コンテンツ、リソースについて責任を負わないことに同意します。デベロッパーは、そのような第三者のアプリを介してアクセスするすべてのデータ、コンテンツ、リソースについては、それらを生成した者が単独で責任を負うものであり、Google はそれらの第三者のアプリ、データ、コンテンツ、またはリソースの使用もしくはアクセスによって生じたあらゆる損失および損害について一切責任を負わないことを理解します。
-
-7.2 デベロッパーは、そのような第三者のアプリを介して表示されるデータ、コンテンツ、リソースは、提供者（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。デベロッパーは、当該所有者からの明確な許可がない限り、それらのデータ、コンテンツ、リソース（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-7.3 デベロッパーは、そのような第三者のアプリ、データ、コンテンツまたはリソースの使用が、デベロッパーと当該第三者間の別の規約に従うものであることを認識するものとします。
-
-8. Google API の使用
-
-8.1 Google API
-
-8.1.1 API を使用して Google からデータを取得する場合、デベロッパーは、そのデータは、Google またはデータを提供する事業体（あるいは代理の第三者または事業体）が所有する知的財産権で保護されている場合があることを認識するものとします。そのような API の使用は追加の利用規約に従うものとします。デベロッパーは、当該の利用規約による許可がない限り、そのデータ（全体または一部）の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。
-
-8.1.2 デベロッパーは、API を使用して Google からユーザーのデータを取得する場合、ユーザーが明示的に同意した場合のみ、およびユーザーが許可したタイミングとその目的にのみ、データを取得できることを理解し、同意します。
-
-9. 本契約の終了
-
-9.1 本契約は、下記の規定に従ってデベロッパーまたは Google のいずれかによって解約されるまで、継続して適用されるものとします。
-
-9.2 デベロッパーが本契約の解約を希望する場合は、Preview および関連するデベロッパー認証情報の使用を停止することで、契約を終了するものとします。
-
-9.3 Google は、理由の有無にかかわらず、書面で通知することでいつでもデベロッパーとの本契約を解約することができます。
-
-9.4 本契約は事前の通知またはその他の措置なく、次のうち早い方に自動的に終了します。
-（A）Google が、デベロッパーが居住している国またはデベロッパーがサービスを使用する国での Preview または Preview の一部の配布を停止したとき。
-（B）Google が Android SDK の最終バージョンをリリースしたとき。
-
-9.5 本契約が終了すると、本契約で付与されていたライセンスは終了し、デベロッパーは速やかに Preview のすべての使用を停止するものとし、第 10 条、第 11 条、第 12 条、第 14 条の規定は無期限に効力を有するものとします。
-
-10.免責事項
-
-10.1 デベロッパーは、デベロッパーによる Preview の使用はデベロッパー自身の責任において行うものであること、および Preview は「現状有姿」かつ「提供可能な限りにおいて」、Google からのいかなる種類の保証もなく提供されるものであることを明示的に理解し、これに同意します。
-
-10.2 デベロッパーによる Preview および Preview の使用を通じてダウンロードまたはその他の方法で取得されたマテリアルの使用は、デベロッパー自身の裁量および責任において行うものであり、当該使用の結果として生じるデベロッパーのコンピュータ システムもしくはその他の端末への損害またはデータの喪失についての責任はデベロッパーが単独で負います。前述を制限することなく、Preview は安定したリリースではなく、コンピュータやその他の端末の利用の完全な回復不可能な損失を含む、重大な損害を引き起こす可能性のあるエラー、欠陥、およびセキュリティ上の脆弱性が含まれている可能性があることを理解します。
-
-10.3 Google はまた、商品性、特定目的への適合性、および権利侵害がないことの黙示的な保証および条件を含む（ただしこれらに限定されない）、明示的か黙示的かを問わずあらゆる種類のすべての保証および条件を明示的に否定します。
-
-11.責任の制限
-
-11.1 デベロッパーは、Google、その子会社および関連会社、ならびにそのライセンサーが、デベロッパーに発生した直接損害、間接損害、偶発的損害、特別損害、結果的損害、または懲罰的損害（データの喪失を含む）について、Google またはその代表者が当該損失が発生する可能性について告知されていたかどうか、または知っていたはずであるかどうかにかかわらず、いかなる責任法理のもとでもデベロッパーに対して責任を負わないことを明示的に理解し、これに同意します。
-
-12.補償
-
-12.1 法律で認められる最大限の範囲内において、デベロッパーは、（a）デベロッパーが Preview を使用したこと、および（b）デベロッパーが Preview で開発したアプリが他者のいかなる知的財産権を侵害していること、または他者の名誉を毀損している、もしくは他者のパブリシティ権もしくはプライバシー権を侵害していること、および（c）デベロッパーが本契約に違反したことから発生したあらゆる申し立て、普通法上の訴訟、衡平法上の訴訟、または法的手続き、ならびにあらゆる損失、責任、損害、費用、および経費（合理的な弁護士報酬を含む）について、Google、その関連会社、ならびに当該各社の取締役、役員、従業員、代理人を防御し、補償し、免責することに同意します。
-
-13.契約の変更
-
-13.1 Google は、Preview の新しいバージョンを配布することにより、いつでも本契約を変更することができます。変更が生じた場合、Google は、Preview の提供ウェブサイト上に使用許諾契約の改訂版を公開します。
-
-14.法的一般条項
-
-14.1 本契約は、デベロッパーと Google の間の法的な合意のすべてを表し、デベロッパーによる Preview の使用（別の契約下で Google が提供するサービスを除く）に適用され、Preview に関するデベロッパーと Google の間のあらゆる事前の合意に完全に取って代わるものです。
-
-14.2 デベロッパーは、Google が本契約に定める（または適用される法律のもとで Google が享受できる）法的な権利または救済措置を行使または執行しなかった場合でも、Google の権利が正式に放棄されたとはみなされないこと、および Google が以後も引き続き当該権利および救済措置を行使または執行できることに同意します。
-
-14.3 本件について判断を下す管轄権を有する司法裁判所によって、本契約のいずれかの条項が無効と判断された場合、当該条項は、本契約の残りの部分に影響を与えることなく本契約から削除されるものとします。本契約の残りの条項は、以後も引き続き有効かつ執行可能であるものとします。
-
-14.4 デベロッパーは、Google が親会社となっている各グループ企業が、本契約の第三受益者となること、および当該企業が、当該企業に利益（または受益権）を付与する本契約の条項を直接執行する、また当該条項に依拠する権利を有することを了承し、これに同意します。上記以外のいかなる人または法人も、本契約の第三受益者とはならないものとします。
-
-14.5 輸出規制。Preview は、米国輸出管理法令の対象です。デベロッパーは、Preview に適用されるすべての国内および国際の輸出管理法令に従わなければなりません。これらの法律には、仕向け地、ユーザー、および最終用途に関する制限が含まれます。
-
-14.6 デベロッパーは、Google から事前に書面で承認を得ずに、本契約を譲渡または移転することはできません。また、そのような承認を得ずに計画された譲渡はすべて無効になります。デベロッパーは、Google から事前に書面で承認を得ずに、本契約に基づく自身の責任または義務を他者に委任してはなりません。
-
-14.7 本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連するすべての申し立ては、米国カリフォルニア州の抵触法を除いて、カリフォルニア州法に準拠するものとします。デベロッパーおよび Google は、本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連する法的事項の解決について、米国カリフォルニア州サンタクララ郡に所在の連邦裁判所または州立裁判所が専属管轄権を有することに合意します。上記にかかわらず、デベロッパーは、Google が任意の司法管轄区において差し止め命令による救済（または同等の緊急法的救済）を求める申し立てを行うことが認められることに同意します。
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ja/preview/overview.jd b/docs/html-intl/intl/ja/preview/overview.jd
deleted file mode 100644
index e14b5fb..0000000
--- a/docs/html-intl/intl/ja/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=プログラム概要
-page.metaDescription= 次期 Android バージョン用のアプリを準備しましょう。
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  <strong>Android N Developer Preview</strong> では、Android の次のバージョンでアプリをテストして最適化するためのすべてを備えています。
-
-N Developer Preview ツールをダウンロードするだけで、無料ですぐにご利用いただけます。
-
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        ハードウェアとエミュレータのイメージ
-      </h5>
-
-      <p>
-        さまざまな端末やエミュレータでアプリを実行してテストできます。
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        最新のプラットフォームのコード
-      </h5>
-
-      <p>
-        プレビュー期間は毎月アップデートされるので、最新のプラットフォームで変更された箇所のテストを実施できます。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        デベロッパー不具合の優先
-      </h5>
-
-      <p>
-        最初の数週間でデベロッパーから報告された問題に優先的に対応するので、テストの実施とフィードバックはお早めにお願いします。
-
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        新しい動作や機能
-      </h5>
-
-      <p>
-        新しいプラットフォーム動作への対応や、新機能を利用した開発を早い段階で開始できます。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        OTA 配信によるアップデート
-      </h5>
-
-      <p>
-        Android ベータ版プログラムによるサポート対象端末の無線でのシームレスなアップデートに対応しています。
-そのため、イメージを書き込む必要がありません。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        フィードバックとサポート
-      </h5>
-
-      <p>
-        <a href="{@docRoot}preview/bug">Issue Tracker</a> で問題を報告し、フィードバックをお送りください。
-<a href="{@docRoot}preview/dev-community">N&nbsp;デベロッパー コミュニティ</a>では、他のデベロッパーと情報交換をすることができます。
-
-
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">スケジュールとアップデート</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  N Developer Preview の対象期間は、2016 年 3 月 9 日から AOSP と OEM 向けの Android N の正式リリース（2016 年の第 3 四半期を予定）までの間です。
-
-</p>
-
-<p>
-  主要な開発マイルストーンでアップデートをリリースしますので、開発やテスト用の環境としてご利用ください。
-アップデートの間隔は基本的には各月（4 週から 6 週に 1 回）の予定です。
-マイルストーンについては、以下をご覧ください。
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong>（初回リリース、アルファ版）</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong>（追加アップデート、アルファ版）</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong>（追加アップデート、ベータ版）</li>
-  <li><strong>Preview 4</strong>（最終版の API と正式な SDK、Google Play への公開）</li>
-  <li><strong>Preview 5</strong>（最終テスト用の最終版とほぼ同じシステム イメージ）</li>
-  <li>AOSP とエコシステムへの<strong>最終リリース</strong></li>
-</ul>
-
-<p>
-  各アップデートには、SDK ツールとプレビュー版のシステム イメージ、エミュレータ、参考資料、API の差分情報が含まれます。
-
-</p>
-
-<p>
-  <strong>最初の 3 つのプレビュー マイルストーン</strong>では、<strong>初期段階のテストや開発用の環境</strong>を提供します。それを利用して既存のアプリにおける互換性の問題を特定し、新規プラットフォームへの移行や主な作業計画を立ててください。
-
-
-この期間は各種機能や API、ファイル互換性の問題など、あらゆるフィードバックを受け付けている貴重な期間です。ぜひ <a href="{@docRoot}preview/bug">Issue Tracker</a> を使用して、皆様のご意見をお聞かせください。
-
-
-いただいたフィードバックをもとに、一部の API を改善してアップデートで提供する予定です。
-</p>
-
-<p>
-  <strong>Preview 4 と 5</strong> には、開発に使用する <strong>Android N の最終版の API と SDK</strong>、システム動作や機能のテストに使用する最終版とほぼ同じシステム イメージが含まれます。
-
-この時点で Android N の標準 API レベルが確定します。
-以後は既存アプリの最終的な互換性テストを開始し、Android N の API や機能を使った新しいコードを改善できるようになります。
-
-</p>
-
-<p>
-  さらに Preview 4 以降では、正式な API レベルの Android N を搭載している<strong>端末にアプリを公開</strong>できるようになります（Android ベータ版プログラムにオプトインしたユーザーの端末などが対象）。
-
-なお、アプリは Google Play のアルファ版やベータ版のチャネルで先に配信できるので、ストア全体に公開する前に、Android ベータ版のユーザーに事前にアプリをテストしてもらうことが可能です。
-
-
-
-</p>
-
-<p>
-  Android N でテストや開発を行う場合、プレビューのアップデートがリリースされるたびに<strong>開発環境を最新の状態に更新する</strong>ことを強くお勧めします。
-
-その際はテスト用の端末を Android ベータ版プログラムに登録して、マイルストーンごとに<strong>無線（OTA）でアップデート</strong>を取得するようにしておくと便利です。
-
-もしくはプレビュー イメージを手動でダウンロードして書き込むこともできます。
-
-</p>
-
-<p>
-  プレビュー アップデートをご利用いただけるようになった際は <a href="http://android-developers.blogspot.com/">Android デベロッパー ブログ</a>、本サイト、<a href="{@docRoot}preview/dev-community">Android N デベロッパー コミュニティ</a>でお知らせします。
-
-
-</p>
-
-
-<h2 id="preview_tools">N Developer Preview の概要</h2>
-
-<p>
-  N Developer Preview は、既存のアプリをさまざまな画面サイズ、ネットワーク テクノロジー、CPU や GPU チップセット、ハードウェア アーキテクチャでテストするために必要なものをすべて備えています。
-
-
-</p>
-
-<h3 id="sdk_tools">SDK ツール</h3>
-
-<p>各コンポーネントは <a href="{@docRoot}studio/intro/update.html">Android Studio</a> の SDK Manager を使ってダウンロードできます。</p>
-
-<ul>
-  <li> N Developer Preview の <strong>SDK とツール</strong>
-  <li> N Developer Preview の<strong>エミュレータ システム イメージ</strong>（32 ビット版と 64 ビット版）
-  <li> N Developer Preview の <strong>Android TV 版エミュレータ システム イメージ</strong>（32 ビット版）
-  <li> N Developer Preview サポート ライブラリ（新規アプリのテンプレート用）
-</ul>
-
-<p>
-  上記のツールは、必要に応じて各マイルストーンでアップデートします。
-</p>
-
-<h3 id="hardware_system_images">ハードウェアのシステム イメージ</h3>
-
-<p>
-  N Developer Preview に含まれる Nexus などのハードウェアのシステム イメージを使用すると、実機でテストや開発ができます。
-ハードウェア イメージの一覧は、<a href="{@docRoot}preview/download.html">端末イメージ</a>のページでご確認ください。
-
-</p>
-
-<p>
-  これらの端末用のシステム イメージは、各マイルストーンでアップデートします。アップデートされたシステム イメージは、何度でもダウンロードしてテスト用の端末に手動で書き込むことができます。
-
-自動化されたテスト環境では、繰り返し端末に再書き込みをする必要があるので、この方法は特に便利です。
-
-
-</p>
-
-<p class="note"><strong>注</strong>:
-  昨年のプレビュー版と同様に、<strong>手動で書き込みをした端末は OTA アップデートを取得できなくなります</strong>。
-そのため、今年は端末を Android ベータ版プログラムに登録して、OTA を取得するようにしてください。詳細は次のセクションに記載しています。
-
-</p>
-
-<h3 id="android_beta">Android ベータ版プログラムによる OTA アップデート</h3>
-
-<p>
-  Android N は、新たに無線（OTA）アップデート プログラムに対応しています。このプログラムに登録している端末には、Android N の最新プレビュー版へのアップデートが直接自動配信されます。
-
-登録は無料で、Google アカウントに登録済みの対象端末を所有していれば誰でもご利用いただけます。
-
-</p>
-
-<p>
-  このプログラムに登録するには、まず <a href="https://g.co/androidbeta">Android ベータ版プログラム</a>のサイトにアクセスします。
-このサイトには、Android ベータ版プログラムに登録可能なアカウントに登録済みの端末がすべて表示されます。
-
-
-</p>
-
-<ol>
-  <li> Android N のアップデートを取得する端末を選択します。
-  <li> [Enroll] をクリックして利用規約を読み、合意したら [OK] をクリックします。
-</ol>
-
-<p>
-  登録が完了すると、すぐに端末にアップデートが配信されます。ほとんどの場合、Android N に移行する際にデータのオールリセットは不要ですが、端末の登録前には大事なデータをバックアップしておくことをお勧めします。
-
-
-
-</p>
-
-<p>
-  端末にアップデートが配信されたら、できるだけ早めにダウンロードしてインストールするようにしてください。
-そうすることで常に最新のシステム UI や動作、API、さまざまな機能の変更点を把握できます。
-
-</p>
-
-<p>
-  Developer Preview の終了時には、登録端末に Android N の正式リリース版へのアップデートが配信されます。
-
-</p>
-
-<p>
-  端末はいつでも Android ベータ版プログラムのサイトから Android ベータ版プログラムへの登録を解除できます。
-登録を解除する前には、端末のデータを必ずバックアップしておいてください。
-
-</p>
-
-  <p class="note"><strong>注</strong>:
-  登録を解除すると、<strong>端末はファクトリー リセットされ</strong>、Android 6.0 Marshmallow の最新バージョンになります（端末を登録する前のバージョンに戻るとは限りません）。
-
-
-確実にクリーン インストールを行うため、連絡先やメッセージ、写真などの端末上のデータは削除されます。
-
-
-</p>
-
-<h3 id="documentation_and_sample_code">ドキュメントとサンプルコード</h3>
-
-<p>
-  Developer Preview サイトにあるドキュメントで、Android&nbsp;N の詳細をご確認いただけます。
-
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Android N 向けの開発準備</a>では、はじめの手順をステップごとに説明しています。
-
-</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">動作の変更点</a>には、集中的にテストを実施すべき箇所が記載されています。
-</li>
-  <li> 新規 API に関するドキュメントには、<a href="{@docRoot}preview/api-overview.html">API 概要</a>、ダウンロード可能な <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API リファレンス</a>などが含まれています。また、マルチ ウィンドウのサポート、バンドル通知、マルチロケールのサポートなどの主要機能についての詳細なデベロッパー ガイドも含まれています。
-
-
-
-  <li> <a href="{@docRoot}preview/samples.html">サンプルコード</a>では、パーミッションや他の新機能の使用方法を確認できます。
-
-  <li> 現行バージョンの N Developer Preview の<a href="{@docRoot}preview/support.html#release-notes">リリースノート</a>では、変更履歴や差分レポートなどを確認できます。
-
-
-</ul>
-
-<h4 id="reference">ダウンロード可能な API リファレンス</h4>
-
-<p>
-  初期のプレビュー アップデートでは、<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Android N プラットフォーム用の API リファレンス</a>の最新版を個別の zip アーカイブとしてダウンロードできます。
-
-このリファレンスには差分レポートも含まれているので、API 23 や以前のアップデートからの API の変更点をご確認いただけます。
-
-
-</p>
-
-<p>
-  Android N の API が最終決定して正式な API レベルが割り当てられた時点で、API リファレンスを <a href="https://developer.android.com">https://developer.android.com</a> で公開します。
-
-</p>
-
-<h3 id="support_resources">
-  サポート リソース
-</h3>
-
-<p>
-  N Developer Preview のテスト中や開発中は、以下の方法で不具合の報告やフィードバックの送信を行ってください。
-
-</p>
-
-<ul>
-  <li> <strong>主なフィードバック手段</strong>は、<a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue Tracker</a> です。
-Issue Tracker を使うと、バグやパフォーマンスの問題、一般的なフィードバックを報告できます。
-さらに、<a href="{@docRoot}preview/bugs">既知の問題</a>や、その回避方法もご確認いただけます。
-
-報告いただいた問題は常に最新の情報に更新されるので、重要度が判定されたり、問題が Android エンジニア チームに引き継がれたことを確認できます。
- </li>
-  <li> <a href="{@docRoot}preview/dev-community">Android N デベロッパー コミュニティ</a>は、Android N に携わっている<strong>デベロッパー同士がつながる</strong> Google+ のコミュニティです。Android N について意見交換をしたり、疑問点を解消したりする場としてご活用ください。Google はこのコミュニティを管理し、必要に応じて回答やアドバイスをします。
-
-
-
-</li>
-</ul>
-
-<h3 id="targeting">ターゲット、プレビュー API、公開</h3>
-
-<p>
-  N Developer Preview では開発専用のシステムと、<strong>標準 API レベルを持たない</strong> Android ライブラリを提供します。
-アプリのテストで互換動作を除外する場合（強く推奨します）、アプリの <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> を <code>“N”</code> に設定することで Android N の プレビュー版を対象にすることができます。
-
-
-
-
-</p>
-
-<p>
-  Android N Developer Preview では、<strong>プレビュー API</strong> を提供しています。この API は、2016 年の第 3 四半期に予定している最終版 SDK のリリースまで正式版ではありません。
-
-そのため、プログラム開始後の数週間は特に、<strong>軽微な API 変更が発生することが予想されます</strong>。
-
-変更点の概要については、Android N Developer Preview がアップデートされるたびにお知らせします。
-
-</p>
-
-<p class="note">
-  <strong>注</strong>:プレビュー API は変更される可能性がありますが、システムの基幹にかかわる機能には変更はありませんので、すぐにテストしていただけます。
-
-
-</p>
-
-<p>
-  Google Play では <strong>N Developer Preview を対象としたアプリの公開を禁止しています</strong>。
-Android N の最終版 SDK がリリースされてからは、正式な Android N の API レベルを対象にして、アルファ版またはベータ版のリリース チャンネルでアプリを Google Play に公開できます。
-
-それまでは、Android N 向けのアプリをテスターに配信する場合は、電子メールで送付するか、自身のサイトから直接ダウンロードしてもらうようにしてください。
-
-
-</p>
-
-<p>
-  AOSP と OEM 向けの Android N のフルリリースは 2016 年度の第 3 四半期を予定しています。その後は、Android N 向けのアプリを Google Play の公式リリース チャンネルで公開いただけます。
-
-
-</p>
-
-
-<h2 id="how_to_get_started">開始するには</h2>
-
-<p>
-  以下の手順で Android N を使用したアプリのテストを開始できます。
-</p>
-
-<ol>
-  <li> <a href="{@docRoot}preview/api-overview.html">API 概要</a>や<a href="{@docRoot}preview/behavior-changes.html">動作の変更点</a>を参照して、新機能や自身のアプリへの影響をご確認ください。
-
-特に新しい<a href="{@docRoot}preview/features/notification-updates.html">通知</a>機能と<a href="{@docRoot}preview/features/multi-window.html">マルチ ウィンドウ</a>機能について把握しておくことをお勧めします。
-
-</li>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Preview SDK のセットアップ</a>手順に従い、ご利用の環境をセットアップしてテスト用端末の設定をします。
-</li>
-  <li> <a href="https://developers.google.com/android/nexus/images">書き込み手順</a>に従い、最新の Android N のシステム イメージを自身の端末に書き込みます。
- </li>
-  <li> <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API リファレンス</a>や <a href="{@docRoot}preview/samples.html">Android N のサンプル</a>を参考に API の新機能についてのインサイトを得て、それらを自身のアプリに利用する方法をご検討ください。
-
-
-  <li> <a href="{@docRoot}preview/dev-community">Android N デベロッパー コミュニティ</a>に参加すると、最新のニュースを入手でき、新しいプラットフォームを利用している開発者同士で交流ができます。
-
-</li>
-</ol>
-
-<p>
-  Android N Developer Preview プログラムへの参加をお待ちしています。
-</p>
diff --git a/docs/html-intl/intl/ja/preview/preview_toc.cs b/docs/html-intl/intl/ja/preview/preview_toc.cs
deleted file mode 100644
index 4b22608..0000000
--- a/docs/html-intl/intl/ja/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽">プログラム概要</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html">サポートとリリースノート</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK">Preview のセットアップ</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試">端末上でのテスト</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">動作の変更点</a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">バックグラウンド処理の最適化</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">言語とロケール</a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers</a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援">マルチ ウィンドウのサポート</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">通知</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html">データセーバー</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製">TV の録画機能</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定">ネットワーク セキュリティ構成</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API">ICU4J のサポート</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能">Java 8 の言語機能</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html">Android for Work のアップデート</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取">特定のディレクトリへのアクセス</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例">サンプル</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議">使用許諾契約</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/ja/preview/setup-sdk.jd b/docs/html-intl/intl/ja/preview/setup-sdk.jd
deleted file mode 100644
index 06b24ca..0000000
--- a/docs/html-intl/intl/ja/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=Preview のセットアップ
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Android Studio 2.1 を入手する</a></li>
-  <li><a href="#get-sdk">Android N SDK を入手する</a>
-    <ol>
-      <li><a href="#docs-dl">リファレンス ドキュメント</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Java 8 JDK を入手する</a></li>
-  <li><a href="#create-update">プロジェクトをアップデートまたは作成する</a></li>
-  <li><a href="#next">次のステップ</a></li>
-</ol>
-  </div>
-</div>
-
-<p>このページで説明しているように、Android N Preview 向けのアプリを開発するには、デベロッパー環境をアップデートする必要があります。
-</p>
-
-<p>Android N システム イメージでアプリの互換性を簡単にテストするには、<a href="{@docRoot}preview/download.html">Android N 端末でのテスト</a>に関するガイドに従ってください。
-</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Android Studio 2.1 を入手する</h2>
-
-<p>Android N プラットフォームには、Jack と呼ばれる新しいコンパイラーが必要な <a href="{@docRoot}preview/j8-jack.html">Java 8 の言語機能</a>のサポートが追加されています。
-現在、最新バージョンの Jack は、Android Studio 2.1 のみでサポートされています。したがって、Java 8 の言語機能を使用する場合は、Android Studio 2.1 を使用してアプリをビルドする必要があります。
-
-
-それ以外の合は、Jack コンパイラーを使用する必要はありません。ただし、以下に説明するように、Android N プラットフォームに対応する設定でコンパイルを行うには、JDK 8 にアップデートする必要があります。
-
-</p>
-
-<p>既に Android Studio がインストールされている場合は、<strong>[Help] &gt; [Check for Update]</strong>（Mac では、<strong>[Android Studio] &gt; [Check for Updates]</strong>）をクリックして、Android Studio 2.1 以上であることを確認してください。
-
-</p>
-
-<p>Android Studio 2.1 以上がない場合は、<a href="{@docRoot}studio/">こちらから Android Studio 2.1 をダウンロード</a>してください。
-</p>
-
-
-<h2 id="get-sdk">N Preview SDK を入手する</h2>
-
-<p>Android N API を使用して開発を開始するには、次のステップに従って、Android Studio に Android N Preview SDK をインストールする必要があります。
-</p>
-
-<ol>
-  <li><strong>[Tools] &gt; [Android] &gt; [SDK Manager]</strong> をクリックして、SDK Manager を開きます。
-</li>
-
-  <li>[<strong>SDK Platforms</strong>] タブで、[<strong>Android N Preview</strong>] チェックボックスをオンにします。
-</li>
-
-  <li>[<strong>SDK Tools</strong>] タブをクリックして、[<strong>Android SDK Build Tools</strong>]、[<strong>Android SDK Platform-Tools</strong>]、[<strong>Android SDK Tools</strong>] のチェック ボックスをオンにします。
-
-
-
-  </li>
-
-  <li>[<strong>OK</strong>] をクリックして、インストールするパッケージの使用許諾に同意します。
-
-  </li>
-</ol>
-
-<h3 id="docs-dl">N Preview のリファレンス ドキュメントを入手する</h3>
-
-<p>
-  Android N API に関する詳細は、N Preview のリファレンス ドキュメントに記載されています。このドキュメントは、次の表からダウンロードできます。
-
-  このパッケージには、簡略化されたオフライン バージョンの Android デベロッパー ウェブサイト、Android N API のアップデートされた API リファレンス、API の比較レポートが含まれています。
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">ドキュメント</th>
-    <th scope="col">チェックサム</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5:19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1:9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">Java 8 JDK を入手する</h2>
-
-<p>Android N プラットフォームに対応する設定でアプリをコンパイルしたり、Android Studio 2.1 でいくつかのツールを使用したりするには、Java 8 Developer Kit（JDK 8）をインストールする必要があります。
-したがって、最新バージョンを持っていない場合は、すぐに JDK 8 をダウンロードしてください。
-</p>
-
-<p>その後、次のステップに従って Android Studio で JDK のバージョンを設定します。</p>
-
-<ol>
-  <li>Android Studio で Android プロジェクトを開いてから、<strong>[File] &gt; [Project Structure]</strong> を選択して、[Project Structure] ダイアログを開きます
-
-（または、<strong>[File] &gt; [Other Settings] &gt; [Default Project Structure]</strong> を選択すると、すべてのプロジェクトの既定値を設定できます）。
-
-
-   </li>
-   <li>ダイアログの左側のパネルで、[<strong>SDK Location</strong>] をクリックします。
-   </li>
-   <li>[<strong>JDK Location</strong>] 項目に Java 8 JDK の場所を入力し（ファイルをブラウジングするには、右側のボタンをクリックします）、[<strong>OK</strong>] をクリックします。
-
-
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">プロジェクトをアップデートまたは作成する</h2>
-
-<p>
-  Android N API を使用するには、プロジェクトが適切に構成されている必要があります。
-</p>
-
-<p>Java 8 機能の使用を計画している場合は、<a href="{@docRoot}preview/j8-jack.html">Java 8 機能</a>を読んで、サポートされる Java 8 機能に関する情報と、プロジェクトで Jack コンパイラーを設定する方法を確認してください。
-
-
-</p>
-
-
-<h3 id="update">既存のプロジェクトをアップデートする</h3>
-
-<p>モジュールの <code>build.gradle</code> ファイルを開き、次のように値をアップデートします。
-
-
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">新しいプロジェクトを作成する</h3>
-
-
-<p>Android N Preview SDK を使って、開発のために新しいプロジェクトを作成するには、次のステップを実行します。</p>
-
-<ol>
-  <li><strong>[File] &gt; [New Project]</strong> をクリックし、対象とする Android 端末のページに到達するまでのステップを実行します。
-
-  </li>
-  <li>このページで、[<strong>Phone and Tablet</strong>] オプションを選択します。</li>
-  <li>[<strong>Phone and Tablet</strong>] オプションの下にある [<strong>Minimum SDK</strong>] オプション リストで、[<strong>N:
-
-Android API 23, N Preview (Preview)</strong>] を選択します。</li>
-</ol>
-
-
-<h2 id="next">次のステップ</h2>
-
-<ul>
-  <li><a href="{@docRoot}preview/download.html">Android N 端末でのテスト</a>に関するガイドに従ってください。</li>
-  <li>Android N プラットフォームの詳細については、<a href="{@docRoot}preview/behavior-changes.html">動作の変更点</a>と <a href="{@docRoot}preview/api-overview.html">Android N API とその機能</a>をご覧ください。
-
-
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/ja/preview/support.jd b/docs/html-intl/intl/ja/preview/support.jd
deleted file mode 100644
index bda763d..0000000
--- a/docs/html-intl/intl/ja/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=サポートとリリースノート
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>このドキュメントの内容</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">一般的な注意事項</a></li>
-      <li><a href="#new">DP3 の新機能</a></li>
-      <li><a href="#ki">既知の問題</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Android N Developer Preview で開発およびテストするときは、2 つの主なサポート チャンネルを使用できます。
-端末固有、システム、Google アプリのバグについては、<a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a> で報告してください。
-他のアプリの問題については、デベロッパーに直接お問い合わせください。
-
-</p>
-
-<p>Android N に携わっている他のデベロッパーと問題やアイデアについて議論するには、<a href="{@docRoot}preview/dev-community">Developer Preview Google+ コミュニティ</a>にご参加ください。
-</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日付:2016 年 5 月<br>
-        ビルド:NPD35K<br>
-        エミュレータ サポート: x86 と ARM（32 / 64 ビット）<br>
-        Google Play services:8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">一般的な注意事項</h3>
-
-<p>
-  この Developer Preview リリースは、<strong>アプリのデベロッパーやその他の初期導入者</strong>を対象とし、日常的な使用、開発、互換性テストに使用できます。
-
-このリリースに関する次の一般的な事項に注意してください。
-
-</p>
-
-<ul>
-  <li>このリリースでは、サポート対象端末でさまざまな<strong>安定性に関する問題</strong>が発生する可能性があります。
-カーネルパニックやクラッシュなど、システムが不安定になる可能性があります。
-
-  </li>
-
-  <li>一部のアプリは、新しいプラットフォーム バージョンで<strong>期待どおりに動作しない可能性があります</strong>。
-これには、Google のアプリやその他のアプリが含まれます。
-  </li>
-
-  <li>Developer Preview 3 は、次の端末で <strong>互換性テストスイート（CTS）の承認</strong>を得ています。
-Nexus 5X、Nexus 6、Nexus 6P、Pixel C。CTS 承認済みビルドに依存するアプリは、これらの端末で正常に動作します（Android Pay など）。
-
-
-  </li>
-
-  <li>Developer Preview 3 は、<strong>次のすべてのサポート対象端末で利用できます</strong>。
-Nexus 5X、Nexus 6、Nexus 6P、Nexus 9、Nexus Player、Pixel C、General Mobile 4G（Android One）、Sony Xperia Z3（D6603 と D6653 モデル）。
-
-
-
-  </li>
-</ul>
-
-
-<h3 id="new">DP3 の新機能</h3>
-
-<h4 id="">Android 用 VR モード</h4>
-
-<p>
-  Android N には、新しい VR モードのためのプラットフォーム サポートと最適化が追加され、デベロッパーは高品質のモバイル端末 VR エクスペリエンスをユーザーのために生み出すことができます。
-多数のパフォーマンス強化があり、VR アプリ用の CPU コアへの排他アクセスが含まれます。
-
-アプリでは、VR 用に動作するインテリジェントなヘッド トラッキングやステレオ方式の通知を利用できます。
-最も重要な点は、Android N によって大幅に遅延の少ないグラフィックが実現されることです。
-
-</p>
-
-<p>
-  詳細については、<a href="https://developers.google.com/vr/android/">Google VR SDK for Android</a> をご覧ください。
-</p>
-
-<h4 id="">パフォーマンス維持モード</h4>
-
-<p>
-  Android N には、<a href="{@docRoot}preview/api-overview.html#sustained_performance_api">パフォーマンス維持モード</a>のオプション サポートが含まれており、OEM は長時間実行されているアプリの端末パフォーマンス機能に関するヒントを示すことができます。
-
-アプリのデベロッパーは、これらのヒントを使用して、長時間にわたって予測可能で一貫性のあるレベルの端末のパフォーマンスを維持できるようにアプリを調整できます。
-
-アプリのデベロッパーが Developer Preview でこの新しい API を試すことができるのは、Nexus 6P 端末上でのみです。
-
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  Android N のバージョン 51 以降は、デベロッパー オプションの [Multiprocess WebView] が有効になっている場合、WebView は別のサンドボックス プロセスでウェブ コンテンツを実行します。
-
-WebView チームは、将来のバージョンの Android で Multiprocess WebView を有効にする前に、N での互換性やランタイム パフォーマンスに関するフィードバックを求めています。
-
-このバージョンでは、スタートアップ時間、メモリ使用量の合計、ソフトウェア レンダリング パフォーマンスの低下が予想されます。
-
-</p>
-
-<p>
-  マルチプロセス モードで予想外の問題が見つかった場合は、ご報告ください。
-<a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">バグを報告</a>して WebView チームにご連絡ください。
-
-</p>
-
-<h4 id="">キーボード ショートカット ヘルパー</h4>
-
-<p>
-  Android N では、ユーザーは <code>Meta+/</code> キーを押して<strong>キーボード ショートカット</strong>画面をトリガーできます。この画面には、システムとアプリから使用できるすべてのショートカットが表示されます。
-
-デベロッパーは、独自のショートカットを追加したり、アプリからショートカット画面をトリガーしたりできます。
-詳細については、<a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">キーボード ショートカット ヘルパー</a>をご覧ください。
-
-</p>
-
-<h4 id="">FrameMetrics API</h4>
-
-<p>
-  DP3 で導入された新しい <a href="{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a> により、アプリでその UI レンダリング パフォーマンスを監視できます。この機能は、アプリの現在のウィンドウのフレーム タイミング情報を転送するストリーミング pubsub API を公開することによって実現されます。<code>FrameMetricsListener</code> を使用して、より高い粒度で、USB 接続の必要なく、本番環境のインタラクション レベルの UI パフォーマンスを計測できます。
-
-
-
-
-
-</p>
-
-<h4 id="api-changes">機能と API の変更</h4>
-
-<dl>
-  <dt>
-    ランチャー ショートカットとランチャー ショートカットの API
-  </dt>
-
-  <dd>
-    この機能は、Android の将来のリリースまで延期することを決定しました。次の Developer Preview 以降、公開 Android N API から、ランチャー ショートカットの API（ShortcutManager など）を削除することを計画しています。
-
-
-  </dd>
-
-  <dt>
-    ページを読み込む前に WebView Javascript が実行される
-  </dt>
-
-  <dd>
-    Android N 向けのアプリ以降、新しいページが読み込まれるときに、Javascript コンテキストがリセットされます。
-現在、コンテキストは、新しい {@link android.webkit.WebView} インスタンスで、最初に読み込まれるページに持ち越されます。
-
-    Javascript を {@link
-    android.webkit.WebView} に注入する予定のデベロッパーの方は、ページの読み込みが開始した後にスクリプトが実行されるようにしてください。
-
-  </dd>
-
-  <dt>
-    安全でないオリジンでの WebView の位置情報
-  </dt>
-
-  <dd>
-    Android N 向けのアプリ以降、位置情報 API は安全なオリジン（HTTPS 経由）でのみ許可されます。
-このポリシーは、ユーザーが安全でない接続を使用しているときにユーザーの個人情報を保護するために設計されています。
-
-  </dd>
-
-  <dt>
-    データセーバー
-  </dt>
-
-  <dd>
-    Developer Preview 3 以降、アプリで、システム ダイアログを表示するためのインテントを使用できます。これにより、ユーザーはデータセーバーの免除ホワイトリストに直接アプリを追加できます。
-
-詳細については、<a href="{@docRoot}preview/api-overview.html#data_saver">データセーバーのドキュメント</a>をご覧ください。
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">迷惑電話のブロック</a>
-  </dt>
-
-  <dd>
-    許可されていないユーザーが番号をブロックまたはブロック解除しようとした場合、現在は {@link java.lang.SecurityException} が発生してエラーになります。
-以前は、{@link java.lang.UnsupportedOperationException} がスローされていました。
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">クイック設定タイル API</a>
-
-  </dt>
-
-  <dd>
-    現在は、タイルモードの決定に、アクティビティのメタデータが使用されます。
-    以前は、タイルモードは <code>TileService.onTileAdded()</code> の戻り値によって決定されていました。
-詳細については、ダウンロード可能な <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API リファレンス</a>の <code>TileService.META_DATA_ACTIVE_TILE</code> をご覧ください。
-
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">デベロッパーから報告された問題の修正</h4>
-
-<p>
-  次のものを含めて、デベロッパーから報告された問題が修正されました。
-</p>
-
-<ul>
-  <li>Bluetooth 音声の再生が、1 曲の後で中断される（バグ <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>）
-  </li>
-
-  <li>Pixel C が一貫してクラッシュする（バグ <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>）
-  </li>
-
-  <li>時計とトーストの通知の問題（バグ <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>）
-  </li>
-
-  <li>Pixel C を USB C ケーブル経由で MacBook Pro に接続すると、再起動します。（バグ <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>）
-
-  </li>
-
-  <li>カレンダーの設定が 1 日オフセットされる（バグ <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>）
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo から無効なデータが戻される（バグ <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>）
-  </li>
-
-  <li>Nexus 6p、Bluetooth が頻繁に接続しなくなる（バグ <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>）
-  </li>
-</ul>
-
-<p>修正された問題の一覧は、<a href="https://goo.gl/6uCKtf">Issue Tracker</a> をご覧ください。
-</p>
-
-<h3 id="ki">既知の問題</h3>
-
-<h4>ユーザー補助機能</h4>
-
-<ul>
-  <li>ピッチを最大レベルに近く設定すると、TTS 出力が聞こえません。
-  </li>
-
-  <li>ユーザーがズーム操作や設定などの仕事用プロファイルを追加すると、ユーザー補助機能と設定が妨げられます。
-ユーザー補助機能に関連する設定を、ユーザーが後で操作すると、ユーザー補助機能の状態が復元されます。
-
-  </li>
-</ul>
-
-<h4>カメラ</h4>
-
-<ul>
-  <li>カメラアプリの動作が不安定で、マルチ ウィンドウ モードで起動したときなど、さまざまな状況でクラッシュします。
-
-  </li>
-
-  <li>パノラマモードでシャッターを続けて押すと、カメラアプリがクラッシュすることがあります。
-
-  </li>
-</ul>
-
-<h4>音声</h4>
-<ul>
-  <li>プラットフォームの音楽プレーヤーの問題により、一部のアプリが正常に動作しません。
-たとえば、Skype その他のアプリがこの問題の影響を受けます。
-  </li>
-</ul>
-
-<h4>接続</h4>
-
-
-<ul>
-  <li>Bluetooth Low Energy（BLE）周辺ロール端末がサービスをアドバタイズし、BLE セントラル ロール端末が接続すると、周辺ロール端末の接続が即座に切断されます。
-
-
-  </li>
-
-  <li>画面がオフになっているときに、Wi-Fi 接続が切れることがあります。
-  </li>
-
-  <li>RFCOMM 接続が不安定で、データが破損したり、接続が混乱することがあります。
-
-  </li>
-
-  <li>一部の制限された背景シナリオにおいて、アクティブ ネットワーク状態（{@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} と {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}）によって、誤った値が戻されることがあります。
-
-  </li>
-</ul>
-
-
-<h4>
-  ランチャー
-</h4>
-
-<ul>
-  <li>画面のオンとオフを切り替えた後、既定のランチャーの [All Apps] トレイが応答しなくなることがあります。
-この問題は、ホーム画面に戻り、[All Apps] トレイを再起動することで解決する場合があります。
-
-  </li>
-</ul>
-
-<h4>
-  キーボード
-</h4>
-
-<ul>
-  <li>Android 6.0 以前を実行する端末を N Developer Preview にアップデートすると、Google キーボードで、絵文字やサウンド設定などの設定が保持されません。
-
-
-  </li>
-
-  <li>Google Indic Managed キーボードが不安定になることがあります。
-  </li>
-
-  <li>パスワード項目にテキストを入力するとき、ユーザーは入力言語としてロシア語を選択できるにもかかわらず、キーボードは英語のままになります。
-このため、ユーザーはロシア語のパスワードを入力できません。
-
-  </li>
-</ul>
-
-<h4>
-  ロケールと言語
-</h4>
-
-<ul>
-  <li>右から左（RTL）のロケールを使用しているとき、端末を再起動した後に、システムが予期せず左から右（LTR）の表示に切り替わることがあります。
-
-  </li>
-</ul>
-
-<h4>メディア</h4>
-
-<ul>
-  <li>Nexus 9 と Nexus Player のメディア再生の信頼性が低くなり、HD 動画の再生の問題も発生します。
-
-  </li>
-</ul>
-
-<h4>
-  マルチ ウィンドウ モード
-</h4>
-
-<ul>
-  <li>マルチ ウィンドウ モードで画面の向きを変えているときに端末がフリーズすることがあります。
-  </li>
-
-  <li>現在、複数のアプリにマルチ ウィンドウ モードの問題があります。
-    <ul>
-      <li>マルチ ウィンドウで [Settings] &gt; [Display] &gt; [Screen brightness] をドッキングしているときに、システム UI がクラッシュすることがあります。
-
-      </li>
-
-      <li>カメラアプリをマルチ ウィンドウ モードで起動すると、クラッシュすることがあります。
-      </li>
-
-      <li>YouTube をマルチ ウィンドウ モードで起動すると、クラッシュすることがあります。[Storage] &gt; [Apps] &gt; [YouTube] で YouTube アプリのデータをクリアすると、この問題を修正できることがあります。
-
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play services
-</h4>
-
-<ul>
-  <li>ユーザーが ASCII 範囲外の文字や数字を使用するシステム ロケールを選択した場合に、Google Play services 経由で Google Cast を使用するアプリが不安定になることがあります。
-
-
-  </li>
-</ul>
-
-<h4>
-  Android for Work と Google Apps のデバイス ポリシー
-</h4>
-
-<ul>
-  <li>[device policy status] 画面を固定した状態で、ユーザーが端末のロックを解除すると、デバイス ポリシー アプリがクラッシュすることがあります。
-
-  </li>
-
-  <li>ファイルベースの暗号化を有効にして仕事用プロファイルをセットアップした後で Work をオフにした場合、再度 Work アプリにアクセスするには、ユーザーはプライマリ プロファイル画面ロックを解除する必要があります。
-
-
-  </li>
-
-  <li>セキュリティ パターン ロックを削除し、仕事用または個人用のアプリをマルチ ウィンドウで開くと、端末が再起動します。
-
-  </li>
-
-  <li>DISALLOW_VPN_CONFIG を設定すると、デバイス ポリシー クライアントによって always-on-vpn に設定され、同意を求めるダイアログが表示されます。
-
-  </li>
-
-  <li>VPN が always-on-vpn モードで接続されるまで、トラフィックがロックダウンされません。
-  </li>
-</ul>
-
-<h4>
-  外部ストレージ
-</h4>
-
-<ul>
-  <li>ユーザーがアプリを内部ストレージから適用可能な外部ストレージ（SD カードや USB 接続された端末など）に移動した場合に、そのアプリが不安定になることがあります。
-
-
-  </li>
-</ul>
-
-<h4>
-  Google Play での画面ズームと複数の APK
-</h4>
-
-<ul>
-  <li>Android N を実行する端末で、Google Play services 9.0.83 によって、安定した画面密度ではなく、現在の画面密度が誤って報告されます。
-これらの端末で画面ズームが有効になっていると、このことによって、より小さい画面向けに設計されたマルチ APK アプリのバージョンが Google Play によって選択されることがあります。
-
-この問題は、Google Play services の次のバージョンで修正され、その後の Developer Preview リリースに含められます。
-
-
-  </li>
-
-  <li>Android N を実行する端末で、現在、Google Play services 9.0.83 によって、Vulkan バージョンではなく、Vulkan サポートが報告されます。
-このことによって、より高いバージョンがサポートされた端末で、より低いバージョンの Vulkan サポート向けに設計されたマルチ APK アプリのバージョンが Google Play によって選択されることがあります。
-
-現在、Google Play ストアでは、Vulkan バージョンのターゲットを使用するアプリのアップロードは受け入れていません。
-このサポートは将来 Google Play Store に追加され、次のバージョンの Google Play services で修正されます（その後の Developer Preview リリースに含められます）。Google Play services 9.0.83 のバージョンを使用するすべての N 端末は、基本的な Vulkan サポートをターゲットとするアプリのバージョンを引き続き受信します。
-
-
-
-
-  </li>
-</ul>
-
-<h4 id="">通知</h4>
-
-<ul>
-  <li>MessagingStyle に、送信者が null（自分）の通知が表示されません。
-  </li>
-</ul>
-
-<h4 id="">デベロッパー ツール</h4>
-
-<ul>
-  <li>
-    JDWP デバッグを使用している間に、<code>adb</code> の接続が切断されることがあります。
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日付:2016 年 4 月<br>
-        ビルド:NPC91K、NPC91O<br>
-        エミュレータ サポート: x86 と ARM（32 / 64 ビット）<br>
-        Google Play services:8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">DP2 の新機能</h3>
-
-<ul>
-  <li>Vulkan のプラットフォーム サポートである、新しい 3D レンダリング API により、GPU（Graphics Processor Unit）を明示的に、かつ少ないオーバーヘッドで制御でき、ドローコールの多いアプリのパフォーマンスが向上しています。
-
-詳細については、<a href="{@docRoot}ndk/guides/graphics/index.html">ドキュメント</a>をご覧ください。
-
-  </li>
-
-  <li>新しい連絡帳アプリの絵文字では、肌色と、新しい Unicode 9 のグリフがサポートされます。
-  肌色と新しい絵文字は、キーボードのビルドにパレット内でのこれらに対するサポートが備えられるまで、表示されません。
-非システム フォントを使用するアプリを除き、アプリでこれらの新しい絵文字を利用するための操作は必要ありません。
-IME のデベロッパーは新しい絵文字のサポートを組み込む必要があります。
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">ランチャー ショートカットの API</a>:
-アプリでは <code>ShortcutManager</code> を使用して、それ自体の中の開始点へのショートカットを、ランチャーに送信できます。
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">マルチ ウィンドウ</a>:
-    アクティビティに対して個別に最小の高さと幅を指定できるようになりました。
-さらに、複数の API の名前が少し変更されました。
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">デベロッパーから報告された問題の修正</h4>
-
-<p>
-  次のものを含めて、デベロッパーから報告された問題が修正されました。
-</p>
-
-<ul>
-  <li>隠された SSID や、非ブロードキャスト Wi-Fi に接続できません。（バグ <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>）
-  </li>
-
-  <li>マイクのミュート状態がアクティビティをまたいで保持されます。（バグ <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>）
-  </li>
-
-  <li>マルチ ウィンドウのフォーカスを変更すると、YouTube が停止します。（バグ <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>）
-  </li>
-
-  <li>ダイレクト リプライによって、開かれているアクティビティが閉じられることがあります。（バグ <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>）
-  </li>
-
-  <li>安定性に関するさまざまな修正。
-  </li>
-</ul>
-
-<h3 id="dp2-general">一般的な注意事項</h3>
-
-<p>
-  この Developer Preview リリースは、<strong>アプリのデベロッパーのみ</strong>を対象とし、互換性テストと初期の開発のみで使用するために開発されています。
-
-  このリリースに関する次の一般的な事項に注意してください。
-</p>
-
-<ul>
-
-  <li>DP2 リリースで、開発ツールのコンポーネントとサポート ライブラリがアップデートされました。
-DP2 のための開発を行う前に、Preview 開発環境をアップデートしてください。
-開発環境のセットアップの手順については、<a href="{@docRoot}preview/setup-sdk.html">Preview のセットアップ</a>をご覧ください。
-
-
-  </li>
-
-  <li>このリリースには、すべての端末における安定性とパフォーマンスに関するさまざまな問題があるため、特に、デベロッパー以外の方が、<strong>スマートフォンやタブレットで日常的に使用することには適していません。</strong>
-
-
-  </li>
-
-  <li>このリリースでは、電池寿命とパフォーマンスがまだ最適化されていません。
-
-
-    <ul>
-      <li>システムとアプリの<strong>パフォーマンスが、定期的に遅くなるか、不自然になることがわかっており</strong>、端末が応答しなくなることがあります。
-これらの問題は、使用時間が長くなると、より深刻化します。
-
-      </li>
-
-      <li>このリリースでは、画面のオンとオフのユースケースで電池寿命が短くなることがあります。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>Developer Preview 2 で、一部の<strong>アプリが正常に機能しないことがあります</strong>。これには Google のアプリと、その他のアプリが含まれます。
-
-  </li>
-
-  <li>この早期のビルドは、<strong>互換性テストスイート（CTS）で承認されていません</strong>。
-CTS 承認済みビルドに依存するアプリは動作しません（Android Pay など）。
-
-  </li>
-
-  <li>このプレビュー リリースでは、次の端末をサポートしています。Nexus 5X、Nexus 6、Nexus 6P、Nexus 9、Pixel C、および General Mobile 4G（Android One）
-
-Nexus Player は近い将来サポートされます。
-  </li>
-
-
-  <li>DP1 と DP2 の間の API の変更に対処するために、<a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> がアップデートされました。
-
-  </li>
-</ul>
-
-<h3 id="dp2-ki">既知の問題</h3>
-
-<h4>パフォーマンスと電池</h4>
-
-<ul>
-  <li>システムとアプリのパフォーマンスが、<strong>定期的に遅くなるか、不自然になる</strong>ことがわかっており、端末が応答しなくなることがあります。
-これらの問題は、使用時間が長くなると、より深刻化します。
-
-  </li>
-</ul>
-
-<h4>Google アカウント</h4>
-
-<ul>
-  <li>一部の状況において、<code>AccountManagerService</code> によって Google アカウントにログインできなくなる問題が発生することがあります。
-
-  </li>
-</ul>
-
-<h4>システムアップデート</h4>
-
-<ul>
-  <li>DP2 にアップデートすると、即座に端末が再起動します。
-  </li>
-</ul>
-
-<h4>ユーザー補助機能</h4>
-
-<ul>
-  <li>ピッチを最大レベルに近く設定したときの、テキスト読み上げ（TTS）出力が聞こえない問題。
-
-  </li>
-</ul>
-
-<h4>Bluetooth</h4>
-
-<ul>
-  <li>Bluetooth Low Energy（LE）GATT 特性によって、誤った書き込みタイプが使用され、リモート端末に送信されません。
-これにより、一部のフィットネス端末が機能しません。
-
-  </li>
-</ul>
-
-<h4>セットアップ ウィザード</h4>
-
-<ul>
-  <li>セットアップ ウィザードで、[Your Google Account] から、新しい端末（または新しくリセットされた端末）にデータを復元するオプションが動作しません。
-セットアップ ウィザードで [another Android device] を選択して既存の端末からデータを復元するか、新しい端末としてセットアップする必要があります。
-
-
-  </li>
-</ul>
-
-<h4>OEM ロック解除</h4>
-
-<ul>
-  <li>一部の端末では、DP2 の実行中、[Developer Options] の [<strong>Enable OEM unlock</strong>] がグレー表示されます。
-<br>
-  <strong>回避策:</strong><a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a> にアクセスし、Android ベータ版プログラムを導入します（まだ導入していない場合）。
-
-その後削除して、ダウングレード OTA を受け入れます。
-削除の結果、端末は Android 6.0 にダウングレードされます。これで、[Developer Options] の [<strong>Enable OEM unlock</strong>] を選択できるようになります。
-
-端末をダウングレードすると、個人データは消去されます。ただし、ブートローダーをロック解除したとしても、やはりこのデータは消去されます。
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>仕事用のセキュリティ確認
-    <ul>
-      <li>N に移行した後、またはユーザーが仕事用プロファイルを作成した後、ユーザーが自分のパターン、PIN またはパスワードを変更するか、仕事用のセキュリティ確認をセットアップするまで、プロファイルでキーストアにキーを作成できません。
-
-
-      </li>
-
-      <li>ダイレクト ブート モードで、端末にパスコード制限を適用すると、端末がロックされている場合でも、仕事用プロファイルがロック解除されます。
-
-      これにより、端末ロック画面によって保護される必要がある場合にも、仕事用プロファイルにアクセスできるようになります。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>Always On VPN モードがオンで、VPN が使用できない場合、アプリが通常のネットワークで接続します。
-VPN 接続を使用できない場合、アプリはオフラインである必要があります。
-
-      </li>
-
-      <li>Always On モードがオンになっているとき、端末が再起動してダイレクト ブート モードになった後は、ユーザーがセキュリティ保護されたロック画面をロック解除した後でも、VPN 接続が確立されません。
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>パッケージの停止
-    <ul>
-      <li>[Telephone disabled] ダイアログが表示されているにもかかわらず電話をかけるなど、予期しない動作が発生する可能性がある場合、端末管理者は、重要なシステム パッケージを停止できます。
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>その他
-    <ul>
-      <li>{@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} が true に設定されていると、ユーザーが SD カードなどの物理メディアを挿入したときに、Settings アプリが起動時にクラッシュします。
-
-      </li>
-
-      <li>仕事用プロファイルでの最初のチェックが完了するまで数分かかります。
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>バインド番号と、ゼロでない最初のバインド番号のギャップにより、{@code vkCreateGraphicsPipeline()} が失敗します。
-</li>
-      <li>Vulkan によって、投影されたテクスチャ座標に関する誤ったサンプリング動作が示されます。</li>
-      <li>multithreadCmdBuffer サンプルで、N-DP2 ドライバを使用して {@code vkCmdClearColorImage()} を実行すると、クラッシュします。
-</li>
-      <li>{@code vkGetPhysicalDeviceFormatProperties()} からの戻り値で、{@code VkFormatProperties::linearTilingFeatures} の値が設定されず、結果として 0 の値が取得されます。
-
-</li>
-      <li>Vulkan 浮動小数点フレーム バッファの添付ファイルが正しく処理されません。</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>SPIR-V シェーダーによって、ドライバ アサートがトリガーされることがあります。</li>
-      <li>一部のパイプライン構成によって {@code vkCreateGraphicsPipeline()} がクラッシュすることがあります。
-</li>
-  </ul>
-</ul>
-
-<h4>端末固有の問題</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    端末がスロット 1 からスロット 2 SIM に切り替わったときに、データ接続が失敗します。
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    音声検索の [Always On] オプションを切り替えることができません。
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    HDR+ フォトを除き、カメラの縦向きの写真が破損します。
-
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    Nexus Player で、Netflix HD コンテンツの再生が失敗することがあります。
-  </dd>
-
-  <dd>
-    動的な動画の解像度変更に依存するすべてのアプリが、Nexus Player で失敗することがあります。
-
-  </dd>
-
-  <dd>
-    VP9 動画コーデックを使用するすべてのアプリが、Nexus Player で失敗することがあります。
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日付:2016 年 3 月<br>
-        ビルド:NPC56P、NPC56R、アップデート:NPC56W、NPC56X<br>
-        エミュレータ サポート: x86 と ARM（32 / 64 ビット）<br>
-        Google Play services:8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">一般的な注意事項</h3>
-
-<p>
-  この Developer Preview リリースは、アプリのデベロッパーのみを対象とし、互換性テストと初期の開発のみで使用するために開発されています。
-このリリースに関する次の一般的な事項に注意してください。
-
-</p>
-<ul>
-  <li>このリリースには、すべての端末における安定性とパフォーマンスに関するさまざまな問題があるため、特に、デベロッパー以外の方が、<em>スマートフォンやタブレットで日常的に使用することには適していません。</em>
-
-
-  </li>
-
-  <li>システムとアプリのパフォーマンスが、<strong>定期的に遅くなるか、不自然になる</strong>ことがわかっており、端末が応答しなくなることがあります。
-これらの問題は、使用時間が長くなると、より深刻化します。
-
-  </li>
-
-  <li>このリリースでは、画面のオンとオフのユースケースで電池寿命が短くなることがあります。
-
-  </li>
-
-  <li>Developer Preview 1 で、一部のアプリが正常に機能しないことがあります。これには Google のアプリと、その他のアプリが含まれます。
-
-  </li>
-
-  <li>この早期のビルドは、互換性テストスイート（CTS）で承認されていません。CTS 承認済みビルドに依存するアプリは動作しません（Android Pay など）。
-
-  </li>
-
-  <li>このプレビュー リリースでは、次の端末をサポートしています。Nexus 5X、Nexus 6、Nexus 6P、Nexus 9、Nexus Player、Pixel C、および General Mobile 4G（Android One）
-
-
-  </li>
-</ul>
-
-<h3 id="dp1-platform">プラットフォームの問題</h3>
-
-<h4>パフォーマンスと電池</h4>
-
-<ul>
-  <li>システムとアプリのパフォーマンスが、<strong>定期的に遅くなるか、不自然になる</strong>ことがわかっており、端末が応答しなくなることがあります。
-これらの問題は、使用時間が長くなると、より深刻化します。
-
-  </li>
-
-  <li>このリリースでは、画面のオンとオフのユースケースで電池寿命が短くなることがあります。
-
-  </li>
-</ul>
-<h4 id="dialer">電話</h4>
-
-<ul>
-  <li>電話アプリではダイレクト ブートがサポートされていません。このことは、将来、N Developer Preview で対応されます。
-
-  </li>
-
-  <li>ボイスメールの再生が動作しません。
-  </li>
-</ul>
-
-<h4>マイク</h4>
-
-<ul>
-   <li>アプリの再起動をまたいで、マイクのミュート状態が誤って保持されることがあります。あるアプリでマイクをミュートし、その状態が保持されている場合は、マイクのミュート制御機能のある任意のアプリを開き、マイクのミュートを解除してください。</li>
-</ul>
-
-<h4 id="ui">システム UI</h4>
-
-<ul>
-  <li>システム UI の、一部の新しいまたは変更された文字列の中に、すべての言語には翻訳されていないものがあります。
-
-  </li>
-
-  <li>[Overview] の UI は現在開発中であり、変更されることがあります。たとえば、ユーザーがアプリを切り替えたときに表示されるタイマーを削除する予定です。
-
-
-  </li>
-
-  <li>設定のコントロールとトグルが遅いか、応答しないように見えます。
-  </li>
-
-  <li>通知の視覚的デザインは変更されることがあります。
-  </li>
-
-  <li>Gmail アプリで、通知バンドルに含まれるメールの直接アーカイブが正常に動作しません。
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>仕事用のセキュリティ確認
-    <ul>
-      <li>N に移行した後、またはユーザーが仕事用プロファイルを作成した後、ユーザーが自分のパターン、PIN またはパスワードを変更するか、仕事用のセキュリティ確認をセットアップするまで、プロファイルでキーストアにキーを作成できません。
-
-
-      </li>
-
-      <li>ダイレクト ブート モードで、端末にパスコード制限を適用すると、端末がロックされている場合でも、仕事用プロファイルがロック解除されます。
-
-      これにより、端末ロック画面によって保護される必要がある場合にも、仕事用プロファイルにアクセスできるようになります。
-
-      </li>
-
-      <li>ユーザーが誤ったパスワードと PIN を入力したときに、情報メッセージが表示されず、入力項目が消去されるのみです。
-
-この問題は指紋入力のパターンには影響しません。
-      </li>
-
-      <li>タブレットで、仕事用のセキュリティ確認で表示される背景が不相応に小さくなります。
-
-      </li>
-
-      <li>N Developer Preview にバンドルされている <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">Google Apps のデバイス ポリシー</a>のバージョン では、仕事用プロファイルのセキュリティ確認機能がまだサポートされていません。
-
-
-        デベロッパーは、この機能をテストする場合は、代わりに <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> を使用する必要があります。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>Always On VPN モードがオンで、VPN が使用できない場合、Always On ポリシーの例外として指定されていないアプリが通常のネットワークで接続します。
-
-Always On VPN ポリシーの例外として指定されていない限り、VPN 接続を使用できない場合、アプリはオフラインである必要があります。
-
-        <ul>
-          <li>Always On モードがオンになっているとき、端末が再起動してダイレクト ブート モードになった後は、ユーザーがセキュリティ保護されたロック画面をロック解除した後でも、VPN 接続が確立されません。
-
-
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>連絡先の改善
-    <ul>
-      <li>Bluetooth PBAP / MAP 端末で、仕事用連絡先の発信者番号が表示されません。
-この問題は Preview の次のリリースで解決されます。
-      </li>
-    </ul>
-  </li>
-
-  <li>ワークモード
-    <ul>
-      <li>Google Now ランチャーで、ワークモードがオンかオフかが表示されません。
-また、ランチャーにはアプリの保留状態も表示されません。
-      </li>
-
-      <li>ユーザーがワークモードのオンとオフを切り替えた後、カレンダーなどの仕事用プロファイルのアプリ ウィジェットが表示されなくなります。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>パッケージの停止
-  </li>
-
-  <li>[Telephone disabled] ダイアログが表示されているにもかかわらず電話をかけるなど、予期しない動作が発生する可能性がある場合、端末管理者は、重要なシステム パッケージを停止できます。
-
-
-  </li>
-
-  <li>その他
-    <ul>
-      <li>{@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} が true に設定されていると、ユーザーが SD カードなどの物理メディアを挿入したときに、Settings アプリが起動時にクラッシュします。
-
-      </li>
-
-      <li>ユーザーがアプリをアンインストールした後で再インストールしたときに、{@code DPM.setPackagesSuspended} 状態が保持されません。
-アンインストールと再インストールの後、アプリが停止されたままになるか、停止されたアプリはアンインストール可能にならないかのいずれかである必要があります。
-
-
-      </li>
-
-      <li>仕事用プロファイルでの最初のチェックが完了するまで数分かかります。
-これにより、端末が Play EMM API によって認識されるまでに、通常よりも長い時間がかかる場合があります。
-
-      </li>
-
-      <li>仕事用プロファイル アプリからの通知が、個人プロファイルにインストールされた通知リスナによって認識されません。
-その結果、通知が期待どおりに表示されません。
-
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >キーボード</h4>
-
-<ul>
-  <li>キーボードと Android 端末の間の Bluetooth ペア設定が不安定になることがあります。
-  </li>
-</ul>
-
-<h4 >動画</h4>
-
-<ul>
-<li>動画の再生が遅延したり中断されたりします。</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>Wi-Fi に対して行われたリファクタリングにより、API のコーナーケースの動作が変化する場合があります。
-特に、特定のネットワークへの接続や、ネットワークへの再接続を試みるアプリについては、再テストの必要があります。
-
-  </li>
-
-  <li>以前の DHCP クライアントがプラットフォームから削除されました。プラットフォームでサポートされる DHCP は、M で導入された DHCP クライアントのみとなります。
-
-  </li>
-</ul>
-
-<h4>ダイレクト ブート</h4>
-
-<ul>
-  <li>NFC は最初にロック解除するまで機能しません。
-    <ul>
-      <li>Bluetooth が有効なスマートフォンを再起動したときに、Bluetooth が自動的にオンになりません。
-手動で Bluetooth を再度有効にする必要があります。
-      </li>
-
-      <li>一部の状況において、電話やメッセージに対して既定の着信音が鳴りません。
-この動作は、1 つの例外（と回避策）を除き、次の N Preview リリースで修正されます。
-
-      </li>
-
-      <li>ワイプされた直後でない端末、つまり、ダイレクト ブート モードに設定された後で少なくとも 1 回起動された端末では、既定の通知着信音が鳴りません。
-
-ユーザーは、[Settings] から手動で着信音を選択することで、この問題を回避できます。
-
-      </li>
-
-      <li>ダイレクト ブートは、N Developer Preview ビルドが実行される端末では、既定で有効になっていません。
-テストや開発のためにダイレクト ブートを有効にするには、[Developer Options] に移動して [Convert to File Encryption] をタップします。
-
-      この Developer Preview では、このことを行うには、ファクトリ リセットによって再パーティション化し、端末をファイルベースの暗号化向けにリフォーマットする必要があります。
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Android TV のピクチャ イン ピクチャ</h4>
-
-<ul>
-  <li>[Recents] の UI における PIP 統合は最終版ではなく、変更されることがあります。
-
-    <ul>
-      <li>PIP ウィンドウのアニメーションが滑らかではありません。Preview の将来のリリースで、このことが改善されます。
-
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">Preview の将来のリリースで、PIP の視覚的デザインとレイアウトの整列が改善されます。
-
-  </li>
-</ul>
-
-<h4>バグ報告</h4>
-
-<ul>
-  <li>バグ報告は必ずしも正常に完了しません（回避策として、内部ストレージのバグ報告ドキュメント プロバイダからアクセスできるようになっている場合があります）。
-
-
-  </li>
-</ul>
-
-<h4>マルチ ウィンドウでの分割画面</h4>
-
-<ul>
-  <li>分割画面モードにすると、アプリがクラッシュし、予期しない UI 動作が発生することがあります。
-これらはアプリの問題であり、アプリのデベロッパーが修正する必要があります。
-
-  </li>
-
-  <li>Android プラットフォームの N より前のバージョンをターゲットとするアプリは、複数回表示される分割画面トーストが動作しません。
-
-  </li>
-
-  <li>画面の向きが固定されたアプリを使用しているときに [Overview] ボタンを長押しすると、アプリに予期しない動作が発生します。
-
-  </li>
-
-  <li>サイズ変更中にアプリの表示がちらつくことがあります。
-  </li>
-
-  <li>アニメーションはまだ完成していません。
-  </li>
-</ul>
-
-<h4>入力方法</h4>
-
-<ul>
-  <li><b>システム言語を使用している</b>ときに、Google キーボードが予期せず汎用的な Google キーボードにフォールバックしますが、Google キーボードではシステム言語設定で選択されている言語がいずれもサポートされていません。
-
-米国英語にフォールバックする必要があります。
-
-    <p>
-      Google キーボードでサポートされる、少なくとも 1 つの言語を追加することで、この問題を回避できます。
-
-    </p>
-  </li>
-</ul>
-
-<h4>ユーザー補助機能</h4>
-
-<ul>
-  <li>TalkBack で通知、クイック設定タイル、マルチ ウィンドウ表示などの機能に問題が発生し、システムがクラッシュするか、TalkBack からの音声フィードバックがなくなります。
-
-Preview の将来のリリースで、この問題に対処します。
-
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">端末固有のノートと問題</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>このリリースの Preview の Nexus Player では、動画再生、アプリの互換性と安定性の問題が発生することがあります。
-
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>マルチ ウィンドウのサイズ変更によってクラッシュが発生することがあります。</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Nexus 9 の端末が、Android ベータ版プログラムを経由して over-the-air（OTA）アップデートを受信した後、起動しません。
-OTA イメージを手動でインストールすると、この問題が解決することがあります。
-詳細については、<a href="{@docRoot}preview/download-ota.html">端末の OTA イメージの適用</a> をご覧ください。
-
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/ja/preview/features/direct-boot.jd b/docs/html-intl/intl/ja/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/ja/preview/features/direct-boot.jd
rename to docs/html-intl/intl/ja/training/articles/direct-boot.jd
index 933e682..eaa684c7 100644
--- a/docs/html-intl/intl/ja/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/ja/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>このドキュメントの内容</h2>
   <ol>
     <li><a href="#run">ダイレクト ブート中に実行するためのアクセスを要求する</a></li>
diff --git a/docs/html-intl/intl/ja/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
similarity index 93%
rename from docs/html-intl/intl/ja/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
index e4f9ae2..0767689 100644
--- a/docs/html-intl/intl/ja/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>このドキュメントの内容</h2>
   <ol>
     <li><a href="#accessing">外部ストレージのディレクトリへのアクセス</a></li>
@@ -71,8 +71,8 @@
 <p>システムは外部ディレクトリへのアクセスの付与を試行し、必要に応じてシンプルな UI で、ユーザーにアクセスを確認します。
 </p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>図 1.</strong> Pictures ディレクトリへのアクセスを要求するアプリ
 </p>
 
@@ -138,8 +138,8 @@
 リクエストがユーザーにより拒否され、アプリが再度アクセスをリクエストすると、UI に [<b>Don't ask again</b>] チェックボックスが表示されます。
 </p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>図 1.</strong> リムーバブル メディアへのアクセスに対して 2 回目のリクエストを行うアプリ。
 </p>
 
diff --git a/docs/html-intl/intl/ja/preview/features/security-config.jd b/docs/html-intl/intl/ja/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/ja/preview/features/security-config.jd
rename to docs/html-intl/intl/ja/training/articles/security-config.jd
index 1fbfe72..d86c547 100644
--- a/docs/html-intl/intl/ja/preview/features/security-config.jd
+++ b/docs/html-intl/intl/ja/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>このドキュメントの内容</h2>
 <ol>
diff --git a/docs/html-intl/intl/ja/preview/features/data-saver.jd b/docs/html-intl/intl/ja/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/ja/preview/features/data-saver.jd
rename to docs/html-intl/intl/ja/training/basics/network-ops/data-saver.jd
index 6336151..c661b65 100644
--- a/docs/html-intl/intl/ja/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/ja/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       このドキュメントの内容
     </h2>
@@ -231,4 +231,4 @@
     指定されたパッケージ UID をホワイトリストから削除し、データセーバーが有効な場合でもバックグラウンドで従量制課金接続を使用できないようにします。
 
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/ja/preview/features/picture-in-picture.jd b/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
index 0bb4a75..1df16cd 100644
--- a/docs/html-intl/intl/ja/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>このドキュメントの内容</h2>
 <ol>
@@ -59,7 +59,7 @@
 
 最近使ったアプリから PIP ウィンドウを閉じることもできます。</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>図 1.</strong> ユーザーがメイン画面でコンテンツを閲覧中に画面の隅に表示されるピクチャ イン ピクチャの動画
 
 </p>
@@ -116,7 +116,7 @@
 <p>メディア コントロール バーに PIP ボタンを追加すると、ユーザーが動画の再生を操作中に、簡単に PIP モードに切り替えることができます。
 </p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>図 1.</strong> メディア コントロール バー上の [Picture-in-picture] ボタン
 </p>
 
diff --git a/docs/html-intl/intl/ja/preview/features/tv-recording-api.jd b/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/ja/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
index bf5f9a9..3c58cfd 100644
--- a/docs/html-intl/intl/ja/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>このドキュメントの内容</h2>
   <ol>
     <li><a href="#supporting">録画のサポートを示す</a></li>
diff --git a/docs/html-intl/intl/ko/preview/guide.jd b/docs/html-intl/intl/ko/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/ko/preview/guide.jd
rename to docs/html-intl/intl/ko/about/versions/marshmallow/android-6.0-testing.jd
index d7ea7e3..1222227 100644
--- a/docs/html-intl/intl/ko/preview/guide.jd
+++ b/docs/html-intl/intl/ko/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>이 문서의 내용</h2>
       <ol>
         <li><a href="#runtime-permissions">권한 테스트</a></li>
diff --git a/docs/html-intl/intl/ko/preview/behavior-changes.jd b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/ko/preview/behavior-changes.jd
rename to docs/html-intl/intl/ko/about/versions/nougat/android-7.0-changes.jd
index 5d325e1..d30048f 100644
--- a/docs/html-intl/intl/ko/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>이 문서의 내용</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>그림 1.</strong> 잠자기 모드에서 배터리 수명을 개선하기 위해 첫 번째 레벨의 시스템 액티비티 제한을
 적용하는 방법에 대한 그림.
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>그림 2.</strong> 기기가 일정 시간 동안 정지 상태에 있은 후에
 잠자기 모드에서 두 번째 레벨의 시스템 액티비티 제한을 적용하는 방법에 대한 그림.
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/ko/preview/samples.jd b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-samples.jd
similarity index 78%
rename from docs/html-intl/intl/ko/preview/samples.jd
rename to docs/html-intl/intl/ko/about/versions/nougat/android-7.0-samples.jd
index 1753bfa..1310ae7 100644
--- a/docs/html-intl/intl/ko/preview/samples.jd
+++ b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">다중 창 플레이그라운드</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   이 샘플은 앱으로 다중 창 사용자 인터페이스를 활용하는
 방법을 보여줍니다.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">활성 알림</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   이것은 NotificationCompat를 사용하여 알림을 발송하는 간단한 서비스를 보여주는 기존 샘플입니다.
  각각의 읽지 않은 사용자 대화는 고유한 알림으로 발송됩니다.
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">메시징 서비스</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   NotificationManager를
 사용하여 현재 애플리케이션이 표시할 알림 개수를 지시하는
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">직접 부팅</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   이 샘플은 기기 암호화된 저장소에 데이터를 저장하고 액세스하는 방법을 보여줍니다.
 이 저장소는 기기가 부팅된 동안 항상 사용할 수 있습니다.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">범위가 지정된 디렉터리 액세스</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   이 샘플은 적은 권한을 요구하면서도
 특정 디렉터리에서 데이터를 읽고 쓰는 방법을 보여줍니다.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
 GitHub에서 가져오기</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/ko/preview/guide.jd b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/ko/preview/guide.jd
copy to docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd
index d7ea7e3..1222227 100644
--- a/docs/html-intl/intl/ko/preview/guide.jd
+++ b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>이 문서의 내용</h2>
       <ol>
         <li><a href="#runtime-permissions">권한 테스트</a></li>
diff --git a/docs/html-intl/intl/ko/preview/api-overview.jd b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0.jd
similarity index 98%
rename from docs/html-intl/intl/ko/preview/api-overview.jd
rename to docs/html-intl/intl/ko/about/versions/nougat/android-7.0.jd
index 5cffdfb..11cd2b9 100644
--- a/docs/html-intl/intl/ko/preview/api-overview.jd
+++ b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>주요 개발자 기능</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>그림 1.</strong> 화면 분할 모드에서 실행되는 앱.
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">Data Saver</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>그림 4.</strong> Settings의 Data Saver.
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>그림 5.</strong> 알림 창의 Quick Settings 타일.
diff --git a/docs/html-intl/intl/ko/preview/index.jd b/docs/html-intl/intl/ko/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/ko/preview/index.jd
rename to docs/html-intl/intl/ko/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/ko/design/patterns/notifications.jd b/docs/html-intl/intl/ko/design/patterns/notifications.jd
deleted file mode 100644
index aab5eac..0000000
--- a/docs/html-intl/intl/ko/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=알림
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>개발자 문서</h3>
-    <p>사용자에게 알리기</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Android 4.4 이하 버전의 알림</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>비디오</h3>
-    <p>DevBytes: Android L Developer Preview의 알림</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>알림 시스템을 사용하면 친구로부터 받은 새 채팅 메시지나 캘린더 이벤트와 같이 앱에서 관련된
-시기 적절한
-이벤트에 대한 알림을 사용자에게 표시할 수 있습니다.
-알림을 중요한
-이벤트가
-발생한 경우 사용자에게 이에 대해 알리는 뉴스 채널이나 사용자가 앱에 집중하고
-있지 않은 동안에 이벤트를 시간순으로 기록하는 로그라고 생각하세요. 또한, 적절한 경우 모든 Android 기기에 걸쳐 동기화될 수도 있습니다.</p>
-
-<h4 id="New"><strong>Android 5.0의 새로운 기능</strong></h4>
-
-<p>Android 5.0에서는 구조적,
-시각적, 그리고 기능적으로 중요한 업데이트를 알림을 통해 받을 수 있습니다.</p>
-
-<ul>
-  <li>새로운
-머티어리얼 디자인 테마와 일치하도록 알림이 시각적으로 바뀌었습니다.</li>
-  <li> 알림이 이제 기기 잠금 화면에 표시되나,
-민감한 콘텐츠는 여전히
-숨길 수 있습니다.</li>
-  <li>기기가 사용 중일 때 수신되는 최우선 순위의 알림은 이제
-헤드업 알림이라는 새로운 형식을 사용합니다.</li>
-  <li>클라우드와 동기화되는 알림: Android
-기기 중 하나에서 알림을 해지하면
-다른 기기에서도 해지됩니다.</li>
-</ul>
-
-<p class="note"><strong>참고:</strong> 이
-Android 버전의 알림 디자인은 이전 버전과 많이
-다릅니다. 이전
-버전의 알림 디자인에 대한 자세한 내용은 <a href="./notifications_k.html">Android 4.4 이하 버전의 알림</a>을 참조하세요.</p>
-
-<h2 id="Anatomy">알림의 해부학적 구조</h2>
-
-<p>이 섹션에서는 알림의 기본적인 부분과 다양한 유형의 기기에서 알림이 어떻게
-표시될 수 있는지에 대해 살펴봅니다.</p>
-
-<h3 id="BaseLayout">기본 레이아웃</h3>
-
-<p>모든 알림은 기본적으로 다음을 포함하는 기본 레이아웃으로 구성됩니다.</p>
-
-<ul>
-  <li> 알림 <strong>아이콘</strong>. 알림 아이콘은
-알림을 발생시킨 앱을 나타냅니다. 또한,
-앱이 두 가지 이상의
-유형을 생성하는 경우 알림 유형을 나타낼 수도 있습니다.</li>
-  <li> 알림 <strong>제목</strong> 및 추가
-<strong>텍스트</strong>.</li>
-  <li> <strong>타임스탬프</strong>.</li>
-</ul>
-
-<p>이전 플랫폼 버전의
-{@link android.app.Notification.Builder Notification.Builder}로 생성된 알림은 시스템이 대신
-처리하는 사소한 스타일 변화를 제외하면 Android
-5.0에서 똑같이 표시되고 동작합니다. 이전
-Android 버전의 알림에 대한 자세한 내용은
-<a href="./notifications_k.html">Android 4.4 이하 버전의 알림</a>을 참조하세요.</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      핸드헬드 알림(왼쪽) 및 Wear에서 표시되는 동일한 알림(오른쪽)의 기본 레이아웃
-- 사용자 사진 및 알림 아이콘 포함
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">확장 레이아웃</h3>
-
-
-<p>앱 알림이 얼마나 자세한 정보를
-제공하도록 할지는 직접 선택할 수 있습니다. 메시지의 처음
-몇 줄을 보여주거나 더 큰 이미지 미리보기를 보여줄 수 있습니다. 이러한 추가
-정보는 사용자에게 더 많은
-컨텍스트를 제공하며, 경우에 따라 이를 통해 사용자는 메시지
-전체를 읽을 수도 있습니다. 사용자는
-핀치-줌(pinch-zoom) 또는 한 손가락으로 밀기를 이용하여 축소 레이아웃과
-확장 레이아웃 간을 전환할 수 있습니다.
- Android는 단일 이벤트 알림에 대해 세 개의 확장 레이아웃
-템플릿(텍스트, 받은 편지함,
-이미지)을 애플리케이션에 사용할 수 있도록 제공합니다. 다음 이미지는
-단일 이벤트 알림이
-핸드헬드(왼쪽) 및 웨어러블(오른쪽)에서 어떻게 표시되는지 보여줍니다.</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">작업</h3>
-
-<p>Android는 알림의
-맨 아래 부분에 표시되는 선택적인 작업을 지원합니다.
-이러한 작업을 통해 사용자는 알림을 발생시킨
-애플리케이션을 열 필요 없이 알림 창에서 특정
-알림에 대한 가장 일반적인 태스크를 처리할 수 있습니다.
-이 기능은 밀어서 해제하기와 함께 작용하여 상호 작용의 속도를 향상시키며, 사용자가 자신에게 중요한 알림에
-집중하는 데 도움이 됩니다.</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">알림에
-포함할 작업의 수는 신중하게 결정해야 합니다. 더 많은
-작업을 포함할수록 인지적 복합성이 가중됩니다. 당장에 중요하며 의미
-있는 작업만 포함하여 작업
-수를 최소한으로
-제한해야 합니다.</p>
-
-<p>알림에 포함하기에 적합한 작업은 다음과 같습니다.</p>
-
-<ul>
-  <li> 표시하려는
-콘텐츠 유형과 관련하여 필수적이고, 자주 사용되며 전형적인 작업
-  <li> 사용자가 신속하게 태스크를 완료할 수 있게 하는 작업
-</ul>
-
-<p>다음과 같은 작업은 피합니다.</p>
-
-<ul>
-  <li> 애매모호한 작업
-  <li> "읽기" 또는
-"열기"와 같이 알림의 기본 작업과 동일한 작업
-</ul>
-
-
-
-<p>작업
-아이콘 및 이름으로 각각 구성된, 최대 세 개의 작업을 지정할 수 있습니다.
- 단순한 기본 레이아웃에 작업을 추가하면 알림이 확장 가능하게 되며,
-알림에
-확장 레이아웃이 없는 경우에도 이러한 사항이 적용됩니다. 작업은
-확장된
-알림에서만 표시되고 그 외에는 숨겨져 있으므로
-사용자가 알림에서
-호출할 수 있는 모든 작업을 관련 애플리케이션 내에서도
-사용할 수 있는지 확인해야 합니다.</p>
-
-<h2 style="clear:left">헤드업 알림</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    몰입형 앱의
-최상위에
-표시되는 헤드업 알림의 예(걸려오는 전화, 최우선 순위)
-  </p>
-</div>
-
-<p>최우선 순위의 알림을 수신하면(오른쪽), 가능한 작업을 보여주는 확장된 레이아웃 형태로
-잠시 동안 사용자에게
-표시됩니다.</p>
-<p> 그런 다음, 알림이 알림
-창으로 돌아갑니다. 알림에 대한 <a href="#correctly_set_and_manage_notification_priority">우선 순위</a> 플래그가 HIGH, MAX 또는 전체 화면으로
-지정된 경우 헤드업 알림이 표시됩니다.</p>
-
-<p><b>헤드업 알림의 좋은 예</b></p>
-
-<ul>
-  <li> 기기 사용 시 걸려오는 전화</li>
-  <li> 기기 사용 시 알람</li>
-  <li> 새 SMS 메시지</li>
-  <li> 배터리 부족</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">가이드라인</h2>
-
-
-<h3 id="MakeItPersonal">개인에 맞게 만들기</h3>
-
-<p>다른 사람이 보낸 항목(메시지 또는
-상태 업데이트)에 대한 알림의 경우
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}을 사용하여 그 사람의 이미지를 포함합니다. 또한
-그 사람에 대한 정보를 알림의 메타데이터에 추가합니다({@link android.app.Notification#EXTRA_PEOPLE} 참조).</p>
-
-<p>알림의 기본 아이콘이 여전히 표시됩니다. 따라서 사용자는
-해당 아이콘을 상태 표시줄에
-보이는 아이콘과 관련시킬 수 있습니다.</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  누가 트리거했는지와 보낸 내용을 보여주는 알림입니다.
-</p>
-
-
-<h3 id="navigate_to_the_right_place">적합한 곳으로 이동하기</h3>
-
-<p>사용자가 작업
-버튼 외부에서 알림을 터치하면, 사용자가 알림에서
-참조되는 데이터를 확인하고 처리할 수 있는 곳에서
-앱이 열리도록 합니다. 대부분의 경우, 메시지와 같은 단일 데이터 항목을 표시하는 상세 뷰가 이에 해당합니다.
-하지만 알림이 중첩되어 있을 경우에는
-요약 뷰일 수도 있습니다. 앱이
-최상위 레벨 아래의 위치에서 열린 경우
-사용자가 시스템의 뒤로 버튼을 눌러 최상위 레벨로 돌아갈 수 있도록 앱의 백 스택에 탐색 경로를 삽입합니다. 자세한 내용은
-<a href="{@docRoot}design/patterns/navigation.html#into-your-app">탐색</a>
-디자인 패턴의 <em>홈 화면 위젯 및 알림을 통한 앱 탐색</em>을 참조하세요.</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">알림의
-우선 순위를 정확하게 설정하고
-관리하기</h3>
-
-<p>Android는 알림 우선 순위 플래그를 지원합니다. 이 플래그를 통해 다른 알림에 상대적으로 알림이 표시되는 위치가
-결정되도록 할 수 있습니다. 또한
-사용자가 가장 중요한 알림을 항상 가장 먼저 볼 수 있게
-할 수 있습니다. 알림을 게시할 때
-다음 우선 순위 중에서
-선택할 수 있습니다.</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>우선 순위</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>용도</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>시간에 민감한
-또는
-특정 태스크를 계속 진행하기 전에 처리해야 할
-상황을 사용자에게 알리는 중요하고 긴급한 알림에 사용합니다.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>중요한 대화에 주로 사용합니다. 일례로 사용자에게 특별히 흥미로운 내용이 포함된 메시지 또는 채팅
-이벤트가 이에 해당합니다.
-최우선 순위의 알림은 헤드업 알림이 표시되도록 합니다.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>여기서 설명하지 않은 기타 모든 우선 순위의 알림에 사용합니다.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>사용자에게 알려야 하지만 긴급하지 않은
-알림에 사용합니다. 우선 순위가 낮은 알림은 보통 목록의 맨 아래에 표시되며,
-공개 또는 대상이 불특정한 소셜 업데이트에 사용하기
-좋습니다. 사용자가
-요구한
-알림이지만, 이러한 알림은 긴급하거나 직접적인
-대화를 우선할 수 없습니다.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>날씨 정보 또는 상황에 맞는
-위치 정보와 같은 상황별 또는 배경 정보에 사용합니다.
-최소 우선 순위 알림은 상태 표시줄에 표시되지 않습니다. 이러한 알림은 사용자가 알림 창을 확대하면
-볼 수 있습니다.</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>
-적절한
-우선 순위를 선택하는 방법</strong></h4>
-
-<p><code>DEFAULT</code>, <code>HIGH</code> 및 <code>MAX</code>는 작업을 중단시키는 우선 순위이며, 사용자의 액티비티를
-중단시키는
-위험 요소입니다. 앱 사용자를 성가시게 하지 않으려면 다음과 같은
-알림에만 작업을 중단시키는 우선 순위를 지정해야 합니다.</p>
-
-<ul>
-  <li> 다른 사람이 관련된 알림</li>
-  <li> 시간에 민감한 알림</li>
-  <li> 실제 환경에서의 사용자 행동을 즉시 바꿀 수 있는 알림</li>
-</ul>
-
-<p><code>LOW</code> 및 <code>MIN</code>으로 설정된 알림도 사용자에게
-중요할 수 있습니다. 대부분은 아니지만 많은 알림이 사용자의
-즉각적인 주의를 필요로 하지 않거나 사용자의 손목에 진동을 줄 필요가 없지만, 사용자가 알림을 확인하고자
-했을 때 유용하다고
-여길 정보를 포함합니다. <code>LOW</code> 및 <code>MIN</code>
-우선 순위 알림에 대한 조건은 다음과 같습니다.</p>
-
-<ul>
-  <li> 다른 사람이 관련되지 않음</li>
-  <li> 시간에 민감하지 않음</li>
-  <li> 사용자가 흥미를 가질 만하지만 시간이 있을 때
-보기를 원할 수 있는 내용을 포함함</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">알림
-범주 설정하기</h3>
-
-<p>알림이 미리 정의된 범주에 포함될 경우(아래
-참조),
-그에 따라 할당합니다.  알림 창(또는
-다른 알림
-수신자)과 같은 시스템 UI의 기능은 순위 및 필터링 결정을 내리는 데 이 정보를 활용할 수 있습니다.</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>수신 전화(음성 또는 화상) 또는 이와 유사한 동기적 대화
-요청</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>수신되는 직접 메시지(SMS, 인스턴트 메시지 등)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>비동기적 대량 메시지(이메일)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>캘린더 이벤트</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>홍보 또는 광고</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>알람 또는 타이머</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>장기간 실행 중인 백그라운드 작업의 진행 상황</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>소셜 네트워크 또는 공유 업데이트</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>백그라운드 작업 또는 인증 상태 오류</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>재생에 대한 미디어 전송 제어</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>시스템 또는 기기 상태 업데이트.  시스템용으로 예약됨</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>실행 중인 백그라운드 서비스에 대한 표시</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>한 가지 특정 항목에 대한 구체적이고 시기적절한 권장 사항.  예를 들어, 뉴스
-앱이 사용자가 다음으로 읽기 원할 것이라고 생각하는 뉴스를
-권하고자 하는 경우</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>기기 또는 상황별 상태에 대한 지속적인 정보</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">알림 요약하기</h3>
-
-<p>특정 유형의 알림이 이미 보류 중일 때 앱에서 같은 유형의 새
-알림을 보내려고 하는 경우, 이 앱에 대해 두 알림을 하나의 요약 알림으로 결합합니다. 새로운 개체는
-생성하지 않아야 합니다.</p>
-
-<p>요약 알림은 사용자가 특정 종류의 알림이
-몇 개나 보류 중인지
-파악할 수 있도록 간단한 개요를 표시합니다.</p>
-
-<div class="col-6">
-
-<p><strong>잘못된 사용</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>올바른 사용</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">확장된 다이제스트 레이아웃을 사용하여
-요약에 포함된 각각의 알림에 대한
-더 자세한 정보를 제공할 수 있습니다. 이 방식을 통해 사용자는
-어떠한 알림이 보류 중이고,
-관련된 앱에서
-상세 정보를 읽고 싶을 정도로 알림이 흥미로운지를
-판단할 수 있습니다.</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  확장된 알림 및 축소된 요약 알림(<code>InboxStyle</code> 사용)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">알림을
-선택 항목으로 만들기</h3>
-
-<p>사용자는 항상 알림을 통제할 수 있어야 합니다. 애플리케이션 설정에 알림 설정 항목을 추가하여
-사용자가 앱의
-알림을
-해제하거나 경고 속성(예: 경고음 및 진동 사용
-여부)을 변경할 수 있도록 허용합니다.</p>
-
-<h3 id="use_distinct_icons">뚜렷한 아이콘 사용</h3>
-<p>알림 영역을 봄으로써 사용자는 현재
-어떠한 종류의
-알림이 보류 중인지 파악할 수 있어야 합니다.</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>올바른 사용</strong></p>
-    <p>Android 앱이 이미 제공하는 알림 아이콘을 살펴본 후 본인의 앱에서
-뚜렷히 나타날 수 있는
-알림 아이콘을 만듭니다.</p>
-
-    <p><strong>올바른 사용</strong></p>
-    <p>작은 아이콘에
-적절한 <a href="/design/style/iconography.html#notification">알림 아이콘 스타일</a>을 사용하며, 작업
-아이콘에는 머티어리얼 라이트
-<a href="/design/style/iconography.html#action-bar">작업 모음 아이콘
-스타일</a>을 사용합니다.</p>
-<p ><strong>올바른 사용</strong></p>
-<p >아이콘은 시각적으로 단순하게 유지하고,
-알아차리기 힘들 정도로 과도하게 세부적인 디자인은 피합니다.</p>
-
-  <div><p><strong>잘못된 사용</strong></p>
-    <p>작은
-아이콘 및 작업
-아이콘에 알파(어둡게 설정 또는 페이드 효과)를 추가합니다. 아이콘의 가장자리를 안티-앨리어싱할 수는 있지만, Android가 이러한
-아이콘을 마스크(즉,
-알파 채널만 사용됨)로 사용하기 때문에 일반적으로 이미지는 최대 수준의
-불투명도로 그려집니다.</p>
-
-</div>
-<p style="clear:both"><strong>잘못된 사용</strong></p>
-
-<p>다른 앱과의 차별화를 위해 색상을 사용합니다. 알림 아이콘은 투명한 배경 이미지에 흰색 아이콘이어야만
-합니다.</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">알림 LED를
-적절하게 사용하기</h3>
-
-<p>많은 Android 기기에는 알림 LED가 내장되어 있으며, 이러한 알림 LED는 화면이 꺼져 있을 때
-사용자에게
-이벤트에 대해 알리기 위해 사용됩니다. 우선 순위가 <code>MAX</code>,
-<code>HIGH</code> 또는 <code>DEFAULT</code>인 알림의 경우
-LED가 켜지며, 낮은 우선 순위(<code>LOW</code> 및
-<code>MIN</code>)의 알림의 경우 LED가 켜지지 않습니다.</p>
-
-<p>알림과 관련하여 사용자는 LED도 제어할 수 있어야 합니다.
-DEFAULT_LIGHTS를 사용하는 경우
-LED는 흰색으로 켜집니다. 사용자가
-명시적으로 지정한 경우 외에는 다른 알림
-색상을 사용할 수 없습니다.</p>
-
-<h2 id="building_notifications_that_users_care_about">사용자가 관심을 가질 만한
-알림 만들기</h2>
-
-<p>사용자의 사랑을 받는 앱을 만들기 위해서는
-알림을 신중하게 디자인해야 합니다.
-알림은 앱의 목소리를 대변하며, 앱의
-개성에 큰 영향을 미칩니다. 원하지 않거나
-중요하지 않은 알림은 사용자를 성가시게 하거나 앱에서
-많은 신경을
-쓰게 하는 것에 대해 짜증이 나게 합니다. 따라서 알림을 사용할 때는 현명하게 판단해야 합니다.</p>
-
-<h3 id="when_to_display_a_notification">알림을 표시해야 하는 경우</h3>
-
-<p>사람들이 즐겨 사용하는 애플리케이션을 만들려면 사용자의
-주의와 집중을 흐트러뜨리지 않고 보호해야 하는 리소스임을
-인지하는 것이 중요합니다. Android의
-알림 시스템은 알림이 사용자의 주의를 최대한 방해하지 않도록
-디자인되었습니다.
-하지만
-알림이
-사용자의 태스크 흐름을 방해한다는 사실을 계속해서 인지해야 합니다.
-알림을 계획할 때 알림이 사용자의 작업을 중단할 만큼
-중요한지 곰곰히 생각해 보시기 바랍니다. 잘 모르겠는 경우, 사용자가 앱의 알림 설정을 사용하여 알림에 대한 수신 동의를
-선택할 수 있도록 허용하거나 알림 우선 순위 플래그를 <code>LOW</code> 또는 <code>MIN</code>으로
-조정하여 사용자 작업을
-방해하지
-않도록 합니다.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   시간에 민감한 알림의 예
-  </p>
-
-<p>일반적으로 잘 만들어진 앱은 사용자의 요청이 있을 때에만 정보를 알리고
-요청하지 않은 알림은 꼭 필요한 경우에만 표시하도록 합니다.</p>
-
-<p>알림은 <strong>시간에 민감한 이벤트</strong>에 주로 사용하며, 특히
-이러한 동기적 이벤트에 <strong>다른 사람이 관련된 경우</strong>에 사용합니다. 예를
-들어 수신되는 채팅 메시지는
-실시간으로 진행되는 동기적 대화 형식이며, 이때 다른 사람은
-적극적으로 응답을 기다립니다. 캘린더 이벤트는 언제
-알림을 사용하고
-사용자의 주의를 끌어야 하는지에 대해 알 수 있는 또 다른 좋은 예입니다. 왜냐하면 이는 임박한 이벤트이며, 캘린더 이벤트에는 종종 다른 사람이
-관련되기 때문입니다.</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">알림을
-표시하지 않아야 하는 경우</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>다른 대부분의 경우 알림은 적합하지 않습니다.</p>
-
-<ul>
-  <li> 사용자와
-직접 관련이 없는 정보나 시간에 민감하지 않은
-정보는 알리지 않도록 합니다. 예를 들어 소셜 네트워크를 통한 비동기적이며
-대상이 불특정한 업데이트는
-일반적으로 실시간으로
-사용자를 방해할 수 없습니다. 그러한 업데이트를 원하는 사용자의
-경우에는 사전에 수신 동의를 설정할 수 있게 하면 됩니다.</li>
-  <li> 관련된 새 정보가 현재
-화면에 표시된 경우에는 알림을 생성하지 않아야 합니다. 대신 애플리케이션 UI를
-사용하여 컨텍스트 내에 새로운 정보가 있음을 사용자에게
-직접 알립니다.
-  예를 들어 채팅 애플리케이션은
-사용자가 다른 사용자와 대화 중일 때는 시스템 알림을 생성하지 않아야 합니다.</li>
-  <li> 정보 저장
-또는 동기화, 애플리케이션 업데이트와 같은 낮은 수준의 기술 정보의 경우 사용자가 개입하지
-않아도 앱이나 시스템에서 스스로 알아서 처리할 수 있다면 사용자를 방해하지 않도록 합니다.</li>
-  <li> 사용자가 아무런 조치를
-취하지 않아도 애플리케이션 스스로 오류를 복구할
-수 있는 경우, 이러한 오류에 대해 사용자에게 알리지 않도록 합니다.</li>
-  <li> 알리는 내용은 없고
-단순히 앱을
-홍보하는 알림은 만들지 않습니다. 알림은 유용하고, 시기적절하며 새로운 정보를 제공해야 하며, 단지 앱 출시를 위한 용도로는
-사용하지
-않습니다.</li>
-  <li> 단지
-사용자에게 브랜드를 알리기 위한 불필요한 알림은 만들지 않도록 합니다.
-  그러한 알림은 사용자를 짜증 나게 만들어 앱에 대한 관심을 멀어지게 합니다. 소량의
-업데이트된 정보를 제공하면서 사용자가 지속적으로
-앱에 관심을
-갖게 만드는 최고의
-방법은
-홈 화면에 추가할 수 있는 위젯을 개발하는 것입니다.</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">알림과
-상호 작용하기</h2>
-
-<p>알림은 상태 표시줄에 아이콘으로 표시되며,
-알림 창을 열어서
-확인할 수 있습니다.</p>
-
-<p>알림을 터치하면 관련 앱이 열리고 알림에
-해당되는 세부 내용이 표시됩니다. 알림을 왼쪽이나 오른쪽으로
-스와이프하면 알림 창에서 제거됩니다.</p>
-
-<h3 id="ongoing_notifications">지속적인 알림</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    음악 재생으로 인한 지속적인 알림
-  </p>
-</div>
-<p>지속적인 알림은
-백그라운드에서 진행 중인 프로세스에 대해 사용자에게 알립니다.
-예를 들어 음악 플레이어는 사용자가 재생을 멈출 때까지
-알림 시스템 내에 현재 재생 중인 트랙을
-계속 표시합니다. 또한 지속적인 알림은 파일을 다운로드하거나 비디오를 인코딩하는 등의 장기 태스크에 대한
-피드백을 사용자에게
-표시할 수도 있습니다. 지속적인 알림은 사용자가 알림 창에서 직접
-제거할 수 없습니다.</p>
-
-<h3 id="ongoing_notifications">미디어 재생</h3>
-<p>Android 5.0에서는 잠금 화면에 사용이 중단된
-{@link android.media.RemoteControlClient} 클래스에 대한 전송 제어가 표시되지 않습니다. 하지만 알림은 <em>표시되며</em>, 각
-앱의 재생 알림이 현재 사용자가 잠금 상태에서 재생을 제어하는 기본
-방법입니다. 이 동작은 화면의 잠금 여부와 상관없이 사용자에게
-일관된 환경을 제공하면서, 어떠한 버튼을
-어떻게 표시할지에 대해 앱이 더 세부적으로 제어할 수 있도록
-지원합니다.</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">대화 상자
-및 알림 메시지</h3>
-
-<p>현재
-화면에 표시되어 있는 경우가 아니라면 앱은 대화 상자나 알림 메시지를 생성해서는 안 됩니다. 대화 상자나 알림 메시지는
-앱 내에서
-사용자가 어떠한 행동을 취했을 때 이에 대한 즉각적인 응답으로만 표시되어야 합니다.
-대화 상자 및 알림 메시지 사용에 대한 자세한 지침은
-<a href="/design/patterns/confirming-acknowledging.html">확인 및 승인하기</a>를 참조하세요.</p>
-
-<h3>순위 및 순서</h3>
-
-<p>알림은 뉴스이므로, 기본적으로 발생한 순서의 역순으로
-표시되며, 특히
-앱에서 명시된 알림
-<a href="#correctly_set_and_manage_notification_priority">우선 순위</a>에 따라 순서가 결정됩니다.</p>
-
-<p>알림은 잠금 화면에서 중요한 부분이며, 기기의 화면이 켜질
-때마다
-표시됩니다. 잠금 화면의 공간은 협소하기 때문에 가장 긴급하고 관련 있는 알림을 식별하는 것이
-가장
-중요합니다. 이러한
-이유 때문에 Android에는 다음을 고려한
-더욱 정교한 정렬 알고리즘이 있습니다.</p>
-
-<ul>
-  <li> 타임스탬프 및 애플리케이션에 명시된 우선 순위.</li>
-  <li> 알림이 최근에 소리 또는
-진동으로 사용자를 방해했는지에 대한 여부. (즉,
-휴대폰에서 방금 소리가 났을 때 사용자가 "방금 무슨
-일이 있었지?"에 대해 알고 싶어하는 경우 잠금 화면을
-보면 한 눈에 알 수 있어야 합니다.)</li>
-  <li> {@link android.app.Notification#EXTRA_PEOPLE}을 사용하여 알림에 첨부된 사람,
-그리고 특히 즐겨찾기에 추가된 연락처인지에 대한 여부.</li>
-</ul>
-
-<p>이러한 정렬 알고리즘을 잘 이용하기 위해서는 목록의 특정 부분에 초점을 두기 보다는 생성하고자
-하는 사용자
-환경에 초점을 둡니다.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Gmail 알림은
-기본 우선 순위이기 때문에
-보통은 행아웃과 같은 인스턴트 메시징 앱에서 온 메시지보다 하위에 정렬됩니다. 하지만
-새 메시지가 들어오면
-일시적으로 순위가 올라갑니다.
-  </p>
-
-
-<h3>잠금 화면</h3>
-
-<p>알림은 잠금 화면에 표시되기 때문에 사용자의 개인 정보 보호가
-특히
-중요하게 고려해야 할 사항입니다. 알림은 종종 민감한 정보를 포함하기 때문에, 아무나
-기기의 화면을 켰을 때 볼 수 있게 할 필요는
-없습니다.</p>
-
-<ul>
-  <li> 보안 잠금 화면(PIN, 패턴 또는 암호)이 있는 기기의 인터페이스에는
-공개 및 비공개 부분이 있습니다. 공개 인터페이스는 보안 잠금 화면에 표시될 수 있기 때문에
-누구나 볼 수 있습니다. 비공개 인터페이스는 잠금 화면 뒤에 있기 때문에
-기기의 잠금 화면을 푼 사람만 볼 수 있습니다.</li>
-</ul>
-
-<h3>보안 잠금 화면에 표시된 정보에 대한 사용자 제어</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    사용자가 기기의 잠금을 푼 후 보이는 콘텐츠와 함께 잠금 화면에 표시된 알림
-  </p>
-</div>
-
-<p>보안 잠금 화면을 설정할 때 사용자는
-민감한 세부 정보를 보안 잠금 화면에서 숨기도록 선택할 수 있습니다. 이러한 경우 시스템 UI는 알림의 <em>정보 공개 수준</em>을
-고려하여
-안전하게 표시할 수 있는 정보를 파악합니다.</p>
-<p> 정보 공개 수준을 제어하려면
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>를 호출한 후
-다음 값 중 하나를 지정합니다.</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>. 알림의 전체 내용을
-표시합니다.
-  정보 공개 수준을 지정하지 않을 경우 시스템 기본값입니다.</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
-잠금 화면에 알림의
-아이콘과 알림을 게시한 앱의 이름을 포함하여 해당 알림의 존재에 대한 기본 정보를 표시합니다. 알림의 나머지 세부 사항은 표시되지 않습니다.
-다음과 같은 몇 가지 유용한 사항을 염두해야 합니다.
-  <ul>
-    <li> 시스템이 보안 잠금 화면에 다른 공개 버전의 알림을
-표시하도록 제공하려는 경우, <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>
-필드에 대체
-알림 개체를 제공해야 합니다.
-    <li> 이렇게 설정하면 앱에서 여전히 유용하지만 개인 정보를 노출하지 않는 편집된 버전의
-내용을 생성할 수 있습니다. 예를 들어, 알림에 SMS 텍스트, 발신자 이름 및 연락처 아이콘을 포함하는
-SMS 앱이 있다고 가정합니다.
-이 알림은 <code>VISIBILITY_PRIVATE</code>여야 하지만, <code>publicVersion</code>은 다른 식별
-정보 없이 "3개의 새 메시지"와 같이 여전히 유용한 정보를
-포함할 수 있습니다.
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. 최소한의 정보만 표시하며, 알림의 아이콘마저
-표시하지 않습니다.</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Android Wear에
-표시되는 알림</h2>
-
-<p>Android Wear에 표시되는 알림과 해당 <em>작업</em>은 기본적으로 Wear 기기에 연결되어 있습니다.
-개발자는 어떠한 알림을
-휴대폰에서 워치로,
-그리고 그 반대로 연결할지 제어할 수 있습니다. 또한 개발자는 어떠한 작업을 연결할지도 제어할 수 있습니다. 앱이
-단일 탭으로 실행할 수 없는
-작업을 포함하는 경우, 이러한 작업을
-Wear
-알림에 표시되지 않도록 숨기거나 Wear 앱에 연결하여 사용자가
-워치에서 작업을
-끝낼 수 있도록 합니다.</p>
-
-<h4>알림과 작업 연결하기</h4>
-
-<p>휴대폰과 같이 연결된 기기는 알림을 Wear 기기에 연결하여 해당 기기에서
-알림이 표시될 수 있게 합니다. 마찬가지로 작업도 연결할 수 있기 때문에 사용자는 Wear 기기에서
-알림을 바로 처리할 수 있습니다.</p>
-
-<p><strong>연결해야 할 사항</strong></p>
-
-<ul>
-  <li> 새 인스턴트 메시지</li>
-  <li> +1, Like, Heart와 같은 단일 탭 작업</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>연결하지 않아야 할 사항</strong></p>
-
-<ul>
-  <li> 새로 도착한 팟캐스트의 알림</li>
-  <li> 워치에서 수행할 수 없는 기능에 매핑되는 작업</li>
-</ul>
-
-
-
-<p><h4>Wear에 대해서만 정의할 수 있는 고유한 작업</h4></p>
-
-<p>Wear에서만 수행할 수 있는 작업이 몇 가지 있으며, 이러한 작업은 다음과 같습니다.</p>
-
-<ul>
-  <li> "금방 올게"와 같은 미리 준비된 대답으로 구성된 빠른 목록</li>
-  <li> 휴대폰에서 열기</li>
-  <li> 음성 입력 화면을 불러오는 "댓글 달기" 또는 "응답" 작업</li>
-  <li> Wear에 특화된 앱을 실행하는 작업</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/ko/preview/j8-jack.jd b/docs/html-intl/intl/ko/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/ko/preview/j8-jack.jd
rename to docs/html-intl/intl/ko/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/ko/preview/features/multi-window.jd b/docs/html-intl/intl/ko/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/ko/preview/features/multi-window.jd
rename to docs/html-intl/intl/ko/guide/topics/ui/multi-window.jd
index bd24d9f..67305a9 100644
--- a/docs/html-intl/intl/ko/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/ko/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>이 문서의 내용</h2>
       <ol>
         <li><a href="#overview">개요</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>그림 1.</strong> 화면 분할 모드에서 나란히 실행 중인 두 앱.
 </p>
diff --git a/docs/html-intl/intl/ko/preview/_book.yaml b/docs/html-intl/intl/ko/preview/_book.yaml
deleted file mode 100644
index 17b1d96..0000000
--- a/docs/html-intl/intl/ko/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: 프로그램 개요
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: 지원 및 릴리스 노트
-  path: /preview/support.html
-
-- title: Preview 설정
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: 기기에 대한 테스트
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: 동작 변경 사항
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: 백그라운드 최적화
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: 언어 및 로케일
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: 다중 창 지원
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: 알림
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Data Saver
-    path: /preview/features/data-saver.html
-  - title: TV 녹화
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: 네트워크 보안 구성
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: ICU4J 지원
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Java 8 언어 기능
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Android for Work 업데이트
-    path: /preview/features/afw.html
-  - title: 범위가 지정된 디렉터리 액세스
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: 샘플
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: 라이선스 계약
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/ko/preview/download-ota.jd b/docs/html-intl/intl/ko/preview/download-ota.jd
deleted file mode 100644
index ee08846..0000000
--- a/docs/html-intl/intl/ko/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=기기 OTA 이미지 적용
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Android Preview SDK의 구성 요소를
-다운로드하고 설치하기 전에 우선 다음과 같은
-사용 약관에 동의해야 합니다.</p>
-
-    <h2 class="norule">사용 약관</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-이것은 Android SDK Preview 라이선스 계약서입니다(이하 "라이선스 계약").
-
-1. 개요
-
-1.1 Android SDK Preview(본 라이선스 계약에서는 "Preview"라고 칭하며, 구체적으로 Android 시스템 파일, 패키지 API 및 Preview 라이브러리 파일이 이용 가능한 경우 및 이용 가능하게 전환된 경우 이를 포함한 것을 가리킴)는 본 라이선스 계약 조건에 따라 계약자에게 사용을 허여합니다. 본 라이선스 계약은 Preview 사용과 관련하여 계약자와 Google 간에 법적 구속력이 있는 계약을 체결합니다.
-
-1.2 "Android"는 기기를 위한 Android 소프트웨어 스택을 의미합니다. 이는 http://source.android.com/ URL에 위치하며 수시로 업데이트되는 Android 오픈 소스 프로젝트에서 제공됩니다.
-
-1.3 "Android 호환"은 (i) Android 호환성 웹사이트(http://source.android.com/compatibility)에서 찾을 수 있고 간혹 업데이트되는 Android 호환성 정의 문서를 준수하며; (ii) Android CTS(Compatibility Test Suite)를 성공적으로 통과한 모든 Android 구현을 의미합니다.
-
-1.4 "Google"은 미국 1600 Amphitheatre Parkway, Mountain View, CA 94043에 본사를 두고 있는 델라웨어주 법인인 Google Inc.를 의미합니다.
-
-2. 라이선스 계약에 동의
-
-2.1 이 Preview를 사용하려면, 먼저 라이선스 계약에 동의해야 합니다. 이 라이선스 계약에 동의하지 않고 Preview를 사용해서는 안 됩니다.
-
-2.2 수락을 클릭하거나 Preview를 사용, 또는 이 두 행위를 모두 수행하면 본 라이선스 계약 조건에 동의하는 것으로 간주됩니다.
-
-2.3 미국법 또는 현재 거주 중이거나 Preview를 사용하는 국가를 포함하여 다른 국가의 법에 따라 Preview를 받는 것이 금지된 경우, Preview를 사용할 수 없으며 본 라이선스 계약을 수락할 수 없습니다.
-
-2.4 회사 또는 단체 내에서 내부적으로 Preview를 사용하며 고용주 또는 기타 단체를 대신하여 본 라이선스 계약 준수에 동의하는 경우, 계약자의 고용주나 그 단체에 본 라이선스 계약에 대한 구속력을 부여할 수 있는 모든 법적 권한을 계약자가 갖고 있음을 진술하고 보증합니다. 구속력을 부여할 수 있는 법적 권한이 없을 경우, 고용주 또는 기타 단체를 대신하여 본 라이선스 계약에 동의하거나 Preview를 사용할 수 없습니다.
-
-3. Google의 Preview 라이선스
-
-3.1 본 라이선스 계약의 조건에 따라 Google은 계약자에게 한정적이며 전 세계적으로 무료로 사용이 가능하고 양도할 수 없고 비독점적이며 2차 라이선스를 불허하는 Preview 사용 라이선스를 부여합니다. 이 라이선스 하에서 계약자는 Android 플랫폼에서 실행되는 애플리케이션을 개발하는 경우에만 Preview를 사용할 수 있습니다.
-
-3.2 이 Preview를 사용하여 다른 플랫폼용 애플리케이션을 개발하거나(Android 비호환 구현 포함) 다른 SDK를 개발할 수 없습니다. 물론 이 Preview가 이러한 목적에 사용되지 않는 경우 Android의 비호환 구현을 포함한 다른 플랫폼용 애플리케이션을 자유롭게 개발할 수 있습니다.
-
-3.3 계약자는 Preview에 존재하는 지적 재산권을 포함하여 Preview에 대한 모든 법적인 권리, 소유권 및 이익이 Google 또는 제3자에게 있음에 동의합니다. "지적 재산권"은 모든 특허법, 저작권법, 영업비밀법, 상표법 하의 모든 권리 및 기타 모든 소유권을 의미합니다. Google은 계약자에게 명시적으로 부여하지 않은 모든 권리를 보유합니다.
-
-3.4 본 라이선스 계약에 명시적으로 허용된 용도 외에는 Preview를 사용할 수 없습니다. 해당 제3자 라이선스 요건이 허용하는 범위를 제외하고 계약자는 Preview의 파생 제품이나 Preview의 일부분을 (a) 복사(백업 목적 제외), 수정, 개작, 재배포, 역컴파일, 리버스 엔지니어링, 분해하거나 이를 통해 파생물을 생성하거나 (b) 개인 컴퓨터를 제외한 모바일 단말기 또는 기타 모든 하드웨어 기기에 Preview의 일부를 로드하거나, Preview의 일부를 다른 소프트웨어와 결합하거나 Preview의 일부가 통합된 일체의 소프트웨어나 기기를 배포해서는 안 됩니다.
-
-3.5 오픈 소스 소프트웨어 라이선스에 의거한 Preview 구성요소의 사용, 재생산, 배포에는 본 라이선스 계약이 아닌, 해당 오픈 소스 소프트웨어 라이선스의 조건이 적용됩니다. 계약자는 허용된 모든 권한 하에서 그러한 오픈 소스 소프트웨어 라이선스에 관해 충실한 피허가자로서의 자세를 견지할 것이며 그러한 권한을 종료, 일시 중단 또는 침해하는 행위를 삼갈 것을 동의합니다.
-
-3.6 계약자는 Google이 제공하는 Preview의 형태 및 특성이 사전 통지 없이 변경될 수 있음에 동의하며, 이전 버전의 Preview에서 개발된 애플리케이션이 이후 버전의 Preview와 호환되지 않을 수 있음에 동의합니다. 계약자는 계약자 또는 사용자에게 사전 통지 없이 Preview(또는 Preview에 포함된 기능) 제공을 (영구적 또는 일시적으로) 중단할 수 있는 권한이 Google에게 있음에 동의합니다.
-
-3.7 본 라이선스 계약은 계약자에게 Google의 상표명, 상표, 서비스 표시, 로고, 도메인 이름, 기타 독특한 브랜드 특징에 대한 사용 권한을 부여하지 않습니다.
-
-3.8 계약자는 Preview에 부착되어 있거나 포함되어 있는 모든 소유권 고지 사항(저작권 및 상표 고지 사항 포함)을 제거, 변경 또는 불분명하게 만들지 않을 것에 동의합니다.
-
-4. 계약자의 Preview 사용
-
-4.1 Google은 본 라이선스 계약의 어떤 조항도 계약자(또는 계약자의 사용 허가자)가 Preview를 사용하여 개발한 소프트웨어 애플리케이션에 대한 권리, 소유권 또는 이익, 그리고 해당 애플리케이션에 존재하는 모든 지적 재산권을 부여하지 않는다는 점에 동의합니다.
-
-4.2 계약자는 (a) 본 라이선스 계약 그리고 (b) 모든 준거법, 규정 또는 관련 관할권 내에서 일반적으로 수용되는 관행 또는 지침(미국 또는 기타 관련 국가로/에서의 데이터 또는 소프트웨어 수출과 관련된 모든 법률 포함)에서 허용하는 용도에 한하여 Preview를 사용하고 애플리케이션을 작성하는 것에 동의합니다.
-
-4.3 계약자는 일반 대중 사용자를 대상으로 Preview를 사용하여 애플리케이션을 개발하는 경우, 해당 사용자의 프라이버시 및 법적 권리를 보호하는 것에 동의합니다. 사용자가 계약자에게 사용자 이름, 비밀번호 또는 기타 로그인 정보나 개인 정보를 제공하는 경우, 계약자는 제공된 정보가 자신의 애플리케이션에 제공된다는 사실을 사용자에게 알려야 하며, 반드시 법적으로 적절한 개인정보 보호정책 고지 및 보호를 해당 사용자에게 제공해야 합니다. 애플리케이션에서 사용자가 제공한 개인 정보나 민감한 정보를 저장하는 경우, 이를 안전하게 처리해야 합니다. 사용자들이 애플리케이션에 Google 계정 정보를 제공하는 경우, 애플리케이션은 해당 사용자의 Google 계정에 액세스하는 목적으로만, 그리고 각 사용자가 허용한 범위 내의 한정된 목적으로만 이러한 정보를 사용해야 합니다.
-
-4.4 계약자는 Google 또는 기타 모든 타사의 서버, 네트워크 또는 기타 모든 재산 또는 서비스를 허가 없이 방해, 교란, 손상 또는 액세스하는 애플리케이션의 개발 또는 배포를 포함한 하등의 행위에 Preview를 이용하지 않을 것임을 동의합니다.
-
-4.5 계약자는 자신이 Android 및/또는 Android용 애플리케이션을 통해 생성, 전송 또는 표시하는 모든 데이터, 콘텐츠 또는 리소스 그리고 그로 인한 결과(Google이 입을 수 있는 모든 피해나 손실 포함)에 대해 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.6 계약자는 본 라이선스 계약, 모든 해당 제3자 계약 또는 서비스 약관, 또는 모든 준거법 또는 규정에 의거한 계약자 의무 위반, 그리고 그로 인한 결과(Google 또는 제3자가 입을 수 있는 모든 피해나 손실 포함)에 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.7 이 Preview는 현재 개발 단계에 있으며, 계약자의 테스트와 피드백은 그러한 개발 과정에 중요한 부분을 차지합니다. Preview를 사용함으로써 계약자는 일부 기능의 구현은 아직 개발 중인 상태이며 Preview가 안정된 릴리스처럼 완벽하게 기능할 것이라 믿고 사용해서는 안 된다는 점을 인지하는 것으로 간주합니다. 계약자는 이 Preview를 사용한 애플리케이션을 공개적으로 배포 또는 배송하지 않기로 동의합니다. 이 Preview는 공식 Android SDK가 출시된 이후에는 더 이상 지원되지 않기 때문입니다.
-
-5. 계약자의 개발자 자격 증명
-
-5.1 계약자는 Google이 발급했거나 자신이 선택한 모든 개발자 자격 증명에 대한 기밀성을 유지할 책임이 있으며 계약자의 개발자 자격 증명 하에 개발된 모든 애플리케이션에 대한 전적인 책임이 있음에 동의합니다.
-
-6. 개인정보 보호정책 및 정보
-
-6.1 Preview를 지속적으로 혁신하고 개선하기 위해, Google은 고유 식별자, 관련 IP 주소, 소프트웨어 버전 번호, Preview에서 사용 중인 도구 및/또는 서비스와 도구의 사용법에 대한 정보를 포함하되 이에 국한되지 않고 소프트웨어에서 특정 사용량 통계 정보를 수집할 수 있습니다. 그러한 정보를 수집하기 전에 Preview는 계약자에게 이를 통지하고 동의를 구할 것입니다. 계약자가 동의하지 않을 경우 정보를 수집하지 않습니다.
-
-6.2 수집된 데이터는 모두 취합된 형태로 Preview 개선을 위해 검토되며, Google의 개인정보 보호정책에 따라 유지 관리됩니다. 이 정보는 http://www.google.com/policies/privacy/를 참조하십시오.
-
-7. 제3자 애플리케이션
-
-7.1 제3자가 개발한 애플리케이션을 실행하거나 제3자가 제공한 데이터, 콘텐츠 또는 리소스에 액세스하기 위해 Preview를 사용하는 경우, 계약자는 Google이 그러한 애플리케이션, 데이터, 콘텐츠 또는 리소스에 대한 책임이 없음에 동의합니다. 계약자는 그러한 제3자 애플리케이션을 통해 자신이 액세스한 모든 데이터, 콘텐츠 또는 리소스에 대한 책임은 그것을 만든 사람에게 있음에 동의합니다. 또한 계약자가 그러한 모든 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스를 사용하거나 액세스함으로써 비롯된 모든 피해나 손실에 대한 책임이 Google에게 없음에 동의합니다.
-
-7.2 그러한 제3자 애플리케이션을 통해 계약자에게 제공된 데이터, 콘텐츠 그리고 리소스는 그것을 제공한 제공자(또는 제공자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 유의해야 합니다. 그러한 데이터, 콘텐츠 또는 리소스(전부 또는 일부)를 수정, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다. 단, 관련 소유자로부터 그러한 작업을 수행해도 좋다는 허락을 받은 경우에는 예외입니다.
-
-7.3 계약자는 그러한 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스의 사용은 계약자와 관련 제3자 간에 체결하는 별도의 계약 조건의 적용을 받는다는 것을 인정합니다.
-
-8. Google API 사용
-
-8.1 Google API
-
-8.1.1 Google에서 데이터를 검색하기 위해 API를 사용하는 경우, 그러한 데이터가 Google 또는 데이터를 제공하는 당사자(또는 당사자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 인정합니다. 그러한 API를 사용하는 경우, 추가적인 서비스 약관의 적용을 받을 수 있습니다. 관련 서비스 약관에 허용되지 않은 한, 그러한 데이터(전부 또는 일부)를 변경, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다.
-
-8.1.2 Google에서 사용자 데이터를 검색하기 위해 API를 사용하는 경우, 계약자는 사용자로부터 명시적인 동의를 얻은 경우에 한하여, 그리고 해당 사용자가 허용한 범위 내의 한정된 목적으로만 데이터를 검색해야 합니다.
-
-9. 라이선스 계약 종료
-
-9.1 본 라이선스 계약은 계약자 또는 Google에 의해 아래와 같은 조건 하에 종료될 때까지 계속 적용됩니다.
-
-9.2 계약자가 라이선스 계약을 종료하고자 하는 경우, Preview 및 관련 개발자 자격 증명 일체의 사용을 중단하는 것으로 그러한 의사를 피력할 수 있습니다.
-
-9.3 Google은 언제든 이유 여하를 불문하고 계약자에게 통고하여 라이선스 계약을 종료할 수 있습니다.
-
-9.4 본 라이선스 계약은 통보 또는 여타의 행위 없이도 자동으로 종료됩니다. 이에 해당되려면 다음과 같은 조건이 수반되어야 합니다.
-(A) Google이 계약자가 거주하는 국가 또는 계약자가 서비스를 사용하는 지역에서 Preview 또는 Preview의 특정 부분 제공을 중지하는 경우 및
-(B) Google이 Android SDK의 최종 릴리스 버전을 발행하는 경우.
-
-9.5 본 라이선스 계약이 종료되면 라이선스 계약으로 계약자에게 허용한 라이선스가 취소되며, 이에 따라 계약자는 Preview 사용을 즉시 모두 중단해야 하고 제 10, 11, 12 및 14절의 조항이 기한 없이 유지됩니다.
-
-10. 면책 조항
-
-10.1 계약자는 Preview 이용에 대한 위험 부담이 전적으로 본인에게 있으며, Google이 일체의 보증 없이 Preview를 "있는 그대로" 그리고 "이용 가능한" 상태로 제공한다는 것을 분명히 이해하고 동의합니다.
-
-10.2 Preview 이용 및 이용 과정에서 다운로드하거나 얻게 되는 모든 자료를 사용하는 것은 본인의 재량에 따르며 이에 대한 위험 부담이 전적으로 본인에게 있으며, 그러한 사용으로 인해 발생하는 컴퓨터 시스템 또는 다른 기기의 손상 또는 데이터 손실에 대한 책임은 전적으로 본인에게 있습니다. 전술한 조항을 제한하지 않는 범위 내에서 계약자는 미리 보기가 안정된 릴리스가 아니며 오류, 결함 및 보안 취약성이 포함되어 있을 수 있어 그 결과로 중대한 손상을 유발할 수 있다는 점을 이해하는 것으로 간주합니다. 여기에는 계약자의 컴퓨터 시스템 또는 기타 기기의 완전하고 돌이킬 수 없는 손실도 포함됩니다.
-
-10.3 더 나아가, Google은 상품성, 특정 목적에 대한 적합성 및 비침해의 묵시적 보증 등을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 모든 종류의 보증 및 조건을 명시적으로 부인합니다.
-
-11. 책임 한계
-
-11.1 계약자는 계약자에게 발생할 수 있는 직접, 간접, 부수적, 특별, 결과적 또는 징벌적 손해에 대해 그 어떤 책임 이론에 근거해서도 Google, 해당 자회사, 계열사 및 사용 허가자가 어떠한 책임도 지지 아니함을 분명히 이해하고 동의합니다. 이러한 손해에는 Google 또는 해당 대리자가 이러한 손실 발생 가능성에 대해 통지를 받았거나 이러한 사항을 인식했는지에 상관없이 모든 데이터 손실이 포함됩니다.
-
-12. 면책
-
-12.1 법률에 의해 허용되는 최대한의 범위 안에서 계약자는 (a) 미리 보기 사용, (b) 계약자가 미리 보기에서 개발한 일체의 애플리케이션에서 초래된 모든 사람의 저작권, 상표, 영업비밀, 트레이드 드레스, 특허 또는 기타 지적 재산권의 침해, 또는 어떤 사람의 명예를 훼손하거나 초상권 또는 개인정보 보호정책을 침해함 또는 (C)계약자 본인이 본 라이선스 계약을 위반함으로써 발생하거나 생기는 모든 청구, 조치, 소송 또는 절차, 그리고 모든 손실, 책임, 손해, 경비(합리적인 변호사 비용 포함)로부터 Google을 옹호하고, 면책시키고, Google이 손해를 입지 않도록 하는 데 동의합니다.
-
-13. 라이선스 계약 변경
-
-13.1 미리 보기의 새로운 버전을 배포할 때, Google은 본 라이선스 계약의 내용을 변경할 수 있습니다. 그러한 변경이 이뤄진 경우, Google은 미리 보기가 제공되는 웹사이트에 새로운 라이선스 계약 버전을 게재할 것입니다.
-
-14. 일반 법적 조건
-
-14.1 본 라이선스 계약은 계약자와 Google 간의 모든 법적 계약을 구성하며, 계약자의 미리 보기 사용을 규제하고(별도의 서면 계약을 통해 Google이 계약자에게 제공하는 모든 서비스는 제외), 미리 보기와 관련하여 이전에 계약자와 Google이 맺은 모든 계약을 완전히 대체합니다.
-
-14.2 계약자는 Google이 라이선스 계약에 포함된(또는 관련 법률에 의해 Google이 향유하는) 법적 권리 또는 구제수단을 행사하거나 집행하지 않더라도, Google이 권리를 공식적으로 포기한 것으로 간주하지 않으며, Google이 계속해서 그러한 권리 또는 구제수단을 이용할 수 있음에 동의합니다.
-
-14.3 본 라이선스 계약의 조항이 무효라고 이 사안에 관한 판결을 할 수 있는 관할권을 가진 법원이 판결할 경우, 그 조항은 라이선스 계약의 나머지 조항에 영향을 미치지 않는 형태로 라이선스 계약에서 제거됩니다. 본 라이선스 계약의 나머지 조항은 여전히 유효하며 집행 가능합니다.
-
-14.4 계약자는 Google이 모회사가 되는 회사 그룹에 속한 각 회사가 본 라이선스 계약의 제3수익자이며, 그러한 다른 회사들이 그들에게 이익(또는 유리한 권리)을 부여하는 본 라이선스 계약의 모든 조항을 직접 행사하고 적용할 수 있는 권리를 가진다는 데 동의합니다. 그 외에는 다른 어떤 개인이나 회사도 본 라이선스 계약의 제3수익자가 될 수 없습니다.
-
-14.5 수출 규제. Preview는 미국의 수출법과 규정의 적용을 받습니다. 계약자는 Preview에 적용되는 모든 국내 및 국제 수출법과 규정을 준수해야 합니다. 그러한 법에는 수출 대상국, 최종 사용자 및 최종 용도에 대한 제한이 포함됩니다.
-
-14.6 계약자 또는 Google은 상대 당사자의 사전 서면 승인 없이 본 라이선스 계약에서 부여된 권리를 제3자에게 양도하거나 이전할 수 없으며, 그러한 승인 없이 이루어진 양도 시도는 모두 무효입니다. 계약자는 Google의 사전 승인 없이 본 라이선스 계약 상의 책임 또는 의무를 위임할 수 없습니다.
-
-14.7 본 라이선스 계약, 그리고 본 라이선스 계약 상의 계약자와 Google의 관계는 법률 조항 간의 충돌과는 무관하게 캘리포니아주법에 의한 규제를 받습니다. 계약자와 Google은 본 라이선스 계약으로부터 발생하는 모든 법적 문제 해결을 캘리포니아주 산타 클라라(Santa Clara) 카운티 내에 소재한 전속 관할 법원에 의뢰하는 것에 동의합니다. 위 규정에도 불구하고, 계약자는 Google이 여전히 모든 관할권에서 강제 구제책(또는 동등한 유형의 긴급 법적 구제)을 신청할 수 있음에 동의합니다.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">본인은 상기 사용 약관을 읽었으며 이에 동의합니다.</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  이 페이지에서는 OTA 기기 이미지의 링크를 제공하며, OTA 업데이트를 기기에
-수동으로 적용하는 방법에 대해 설명합니다. 이 절차는 Android 베타 프로그램을
-통해 OTA 업데이트를 받았는데 업데이트가 설치된 후 시작되지
-않는 기기를 복구하는 데 유용할 수 있습니다.
-</p>
-
-<h2 id="install-ota">OTA 이미지 설치</h2>
-
-<p></p>
-
-<p>OTA 패키지를 기기에 설치하려면:</p>
-
-<ol>
-  <li>아래 표에서 OTA 기기 이미지를 다운로드합니다.</li>
-  <li>기기를 복구 모드로 재부팅합니다. Nexus 기기를 이 모드로
-전환하는 방법에 대한 자세한 내용은
-<a href="https://support.google.com/nexus/answer/4596836">Nexus 기기를
-공장 설정으로 초기화</a>를 참조하세요.
-  </li>
-  <li>기기에서 <strong>ADB sideload</strong>를 선택합니다.</li>
-  <li>Android 개발 환경이 로드되고 Android 디버그 브리지(adb) 도구가 설치된
-컴퓨터에 기기를 연결합니다.</li>
-  <li>다음 명령을 실행합니다.
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">기기 OTA 이미지</h2>
-
-<table>
-  <tr>
-    <th scope="col">기기</th>
-    <th scope="col">다운로드/체크섬</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/ko/preview/download.jd b/docs/html-intl/intl/ko/preview/download.jd
deleted file mode 100644
index 45d5bd8..0000000
--- a/docs/html-intl/intl/ko/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=기기에서 테스트
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Android Preview SDK의 구성 요소를
-다운로드하고 설치하기 전에 우선 다음과 같은
-사용 약관에 동의해야 합니다.</p>
-
-    <h2 class="norule">사용 약관</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-이것은 Android SDK Preview 라이선스 계약서입니다(이하 "라이선스 계약").
-
-1. 개요
-
-1.1 Android SDK Preview(본 라이선스 계약에서는 "Preview"라고 칭하며, 구체적으로 Android 시스템 파일, 패키지 API 및 Preview 라이브러리 파일이 이용 가능한 경우 및 이용 가능하게 전환된 경우 이를 포함한 것을 가리킴)는 본 라이선스 계약 조건에 따라 계약자에게 사용을 허여합니다. 본 라이선스 계약은 Preview 사용과 관련하여 계약자와 Google 간에 법적 구속력이 있는 계약을 체결합니다.
-
-1.2 "Android"는 기기를 위한 Android 소프트웨어 스택을 의미합니다. 이는 http://source.android.com/ URL에 위치하며 수시로 업데이트되는 Android 오픈 소스 프로젝트에서 제공됩니다.
-
-1.3 "Android 호환"은 (i) Android 호환성 웹사이트(http://source.android.com/compatibility)에서 찾을 수 있고 간혹 업데이트되는 Android 호환성 정의 문서를 준수하며; (ii) Android CTS(Compatibility Test Suite)를 성공적으로 통과한 모든 Android 구현을 의미합니다.
-
-1.4 "Google"은 미국 1600 Amphitheatre Parkway, Mountain View, CA 94043에 본사를 두고 있는 델라웨어주 법인인 Google Inc.를 의미합니다.
-
-2. 라이선스 계약에 동의
-
-2.1 이 Preview를 사용하려면, 먼저 라이선스 계약에 동의해야 합니다. 이 라이선스 계약에 동의하지 않고 Preview를 사용해서는 안 됩니다.
-
-2.2 수락을 클릭하거나 Preview를 사용, 또는 이 두 행위를 모두 수행하면 본 라이선스 계약 조건에 동의하는 것으로 간주됩니다.
-
-2.3 미국법 또는 현재 거주 중이거나 Preview를 사용하는 국가를 포함하여 다른 국가의 법에 따라 Preview를 받는 것이 금지된 경우, Preview를 사용할 수 없으며 본 라이선스 계약을 수락할 수 없습니다.
-
-2.4 회사 또는 단체 내에서 내부적으로 Preview를 사용하며 고용주 또는 기타 단체를 대신하여 본 라이선스 계약 준수에 동의하는 경우, 계약자의 고용주나 그 단체에 본 라이선스 계약에 대한 구속력을 부여할 수 있는 모든 법적 권한을 계약자가 갖고 있음을 진술하고 보증합니다. 구속력을 부여할 수 있는 법적 권한이 없을 경우, 고용주 또는 기타 단체를 대신하여 본 라이선스 계약에 동의하거나 Preview를 사용할 수 없습니다.
-
-3. Google의 Preview 라이선스
-
-3.1 본 라이선스 계약의 조건에 따라 Google은 계약자에게 한정적이며 전 세계적으로 무료로 사용이 가능하고 양도할 수 없고 비독점적이며 2차 라이선스를 불허하는 Preview 사용 라이선스를 부여합니다. 이 라이선스 하에서 계약자는 Android 플랫폼에서 실행되는 애플리케이션을 개발하는 경우에만 Preview를 사용할 수 있습니다.
-
-3.2 이 Preview를 사용하여 다른 플랫폼용 애플리케이션을 개발하거나(Android 비호환 구현 포함) 다른 SDK를 개발할 수 없습니다. 물론 이 Preview가 이러한 목적에 사용되지 않는 경우 Android의 비호환 구현을 포함한 다른 플랫폼용 애플리케이션을 자유롭게 개발할 수 있습니다.
-
-3.3 계약자는 Preview에 존재하는 지적 재산권을 포함하여 Preview에 대한 모든 법적인 권리, 소유권 및 이익이 Google 또는 제3자에게 있음에 동의합니다. "지적 재산권"은 모든 특허법, 저작권법, 영업비밀법, 상표법 하의 모든 권리 및 기타 모든 소유권을 의미합니다. Google은 계약자에게 명시적으로 부여하지 않은 모든 권리를 보유합니다.
-
-3.4 본 라이선스 계약에 명시적으로 허용된 용도 외에는 Preview를 사용할 수 없습니다. 해당 제3자 라이선스 요건이 허용하는 범위를 제외하고 계약자는 Preview의 파생 제품이나 Preview의 일부분을 (a) 복사(백업 목적 제외), 수정, 개작, 재배포, 역컴파일, 리버스 엔지니어링, 분해하거나 이를 통해 파생물을 생성하거나 (b) 개인 컴퓨터를 제외한 모바일 단말기 또는 기타 모든 하드웨어 기기에 Preview의 일부를 로드하거나, Preview의 일부를 다른 소프트웨어와 결합하거나 Preview의 일부가 통합된 일체의 소프트웨어나 기기를 배포해서는 안 됩니다.
-
-3.5 오픈 소스 소프트웨어 라이선스에 의거한 Preview 구성요소의 사용, 재생산, 배포에는 본 라이선스 계약이 아닌, 해당 오픈 소스 소프트웨어 라이선스의 조건이 적용됩니다. 계약자는 허용된 모든 권한 하에서 그러한 오픈 소스 소프트웨어 라이선스에 관해 충실한 피허가자로서의 자세를 견지할 것이며 그러한 권한을 종료, 일시 중단 또는 침해하는 행위를 삼갈 것을 동의합니다.
-
-3.6 계약자는 Google이 제공하는 Preview의 형태 및 특성이 사전 통지 없이 변경될 수 있음에 동의하며, 이전 버전의 Preview에서 개발된 애플리케이션이 이후 버전의 Preview와 호환되지 않을 수 있음에 동의합니다. 계약자는 계약자 또는 사용자에게 사전 통지 없이 Preview(또는 Preview에 포함된 기능) 제공을 (영구적 또는 일시적으로) 중단할 수 있는 권한이 Google에게 있음에 동의합니다.
-
-3.7 본 라이선스 계약은 계약자에게 Google의 상표명, 상표, 서비스 표시, 로고, 도메인 이름, 기타 독특한 브랜드 특징에 대한 사용 권한을 부여하지 않습니다.
-
-3.8 계약자는 Preview에 부착되어 있거나 포함되어 있는 모든 소유권 고지 사항(저작권 및 상표 고지 사항 포함)을 제거, 변경 또는 불분명하게 만들지 않을 것에 동의합니다.
-
-4. 계약자의 Preview 사용
-
-4.1 Google은 본 라이선스 계약의 어떤 조항도 계약자(또는 계약자의 사용 허가자)가 Preview를 사용하여 개발한 소프트웨어 애플리케이션에 대한 권리, 소유권 또는 이익, 그리고 해당 애플리케이션에 존재하는 모든 지적 재산권을 부여하지 않는다는 점에 동의합니다.
-
-4.2 계약자는 (a) 본 라이선스 계약 그리고 (b) 모든 준거법, 규정 또는 관련 관할권 내에서 일반적으로 수용되는 관행 또는 지침(미국 또는 기타 관련 국가로/에서의 데이터 또는 소프트웨어 수출과 관련된 모든 법률 포함)에서 허용하는 용도에 한하여 Preview를 사용하고 애플리케이션을 작성하는 것에 동의합니다.
-
-4.3 계약자는 일반 대중 사용자를 대상으로 Preview를 사용하여 애플리케이션을 개발하는 경우, 해당 사용자의 프라이버시 및 법적 권리를 보호하는 것에 동의합니다. 사용자가 계약자에게 사용자 이름, 비밀번호 또는 기타 로그인 정보나 개인 정보를 제공하는 경우, 계약자는 제공된 정보가 자신의 애플리케이션에 제공된다는 사실을 사용자에게 알려야 하며, 반드시 법적으로 적절한 개인정보 보호정책 고지 및 보호를 해당 사용자에게 제공해야 합니다. 애플리케이션에서 사용자가 제공한 개인 정보나 민감한 정보를 저장하는 경우, 이를 안전하게 처리해야 합니다. 사용자들이 애플리케이션에 Google 계정 정보를 제공하는 경우, 애플리케이션은 해당 사용자의 Google 계정에 액세스하는 목적으로만, 그리고 각 사용자가 허용한 범위 내의 한정된 목적으로만 이러한 정보를 사용해야 합니다.
-
-4.4 계약자는 Google 또는 기타 모든 타사의 서버, 네트워크 또는 기타 모든 재산 또는 서비스를 허가 없이 방해, 교란, 손상 또는 액세스하는 애플리케이션의 개발 또는 배포를 포함한 하등의 행위에 Preview를 이용하지 않을 것임을 동의합니다.
-
-4.5 계약자는 자신이 Android 및/또는 Android용 애플리케이션을 통해 생성, 전송 또는 표시하는 모든 데이터, 콘텐츠 또는 리소스 그리고 그로 인한 결과(Google이 입을 수 있는 모든 피해나 손실 포함)에 대해 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.6 계약자는 본 라이선스 계약, 모든 해당 제3자 계약 또는 서비스 약관, 또는 모든 준거법 또는 규정에 의거한 계약자 의무 위반, 그리고 그로 인한 결과(Google 또는 제3자가 입을 수 있는 모든 피해나 손실 포함)에 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.7 이 Preview는 현재 개발 단계에 있으며, 계약자의 테스트와 피드백은 그러한 개발 과정에 중요한 부분을 차지합니다. Preview를 사용함으로써 계약자는 일부 기능의 구현은 아직 개발 중인 상태이며 Preview가 안정된 릴리스처럼 완벽하게 기능할 것이라 믿고 사용해서는 안 된다는 점을 인지하는 것으로 간주합니다. 계약자는 이 Preview를 사용한 애플리케이션을 공개적으로 배포 또는 배송하지 않기로 동의합니다. 이 Preview는 공식 Android SDK가 출시된 이후에는 더 이상 지원되지 않기 때문입니다.
-
-5. 계약자의 개발자 자격 증명
-
-5.1 계약자는 Google이 발급했거나 자신이 선택한 모든 개발자 자격 증명에 대한 기밀성을 유지할 책임이 있으며 계약자의 개발자 자격 증명 하에 개발된 모든 애플리케이션에 대한 전적인 책임이 있음에 동의합니다.
-
-6. 개인정보 보호정책 및 정보
-
-6.1 Preview를 지속적으로 혁신하고 개선하기 위해, Google은 고유 식별자, 관련 IP 주소, 소프트웨어 버전 번호, Preview에서 사용 중인 도구 및/또는 서비스와 도구의 사용법에 대한 정보를 포함하되 이에 국한되지 않고 소프트웨어에서 특정 사용량 통계 정보를 수집할 수 있습니다. 그러한 정보를 수집하기 전에 Preview는 계약자에게 이를 통지하고 동의를 구할 것입니다. 계약자가 동의하지 않을 경우 정보를 수집하지 않습니다.
-
-6.2 수집된 데이터는 모두 취합된 형태로 Preview 개선을 위해 검토되며, Google의 개인정보 보호정책에 따라 유지 관리됩니다. 이 정보는 http://www.google.com/policies/privacy/를 참조하십시오.
-
-7. 제3자 애플리케이션
-
-7.1 제3자가 개발한 애플리케이션을 실행하거나 제3자가 제공한 데이터, 콘텐츠 또는 리소스에 액세스하기 위해 Preview를 사용하는 경우, 계약자는 Google이 그러한 애플리케이션, 데이터, 콘텐츠 또는 리소스에 대한 책임이 없음에 동의합니다. 계약자는 그러한 제3자 애플리케이션을 통해 자신이 액세스한 모든 데이터, 콘텐츠 또는 리소스에 대한 책임은 그것을 만든 사람에게 있음에 동의합니다. 또한 계약자가 그러한 모든 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스를 사용하거나 액세스함으로써 비롯된 모든 피해나 손실에 대한 책임이 Google에게 없음에 동의합니다.
-
-7.2 그러한 제3자 애플리케이션을 통해 계약자에게 제공된 데이터, 콘텐츠 그리고 리소스는 그것을 제공한 제공자(또는 제공자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 유의해야 합니다. 그러한 데이터, 콘텐츠 또는 리소스(전부 또는 일부)를 수정, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다. 단, 관련 소유자로부터 그러한 작업을 수행해도 좋다는 허락을 받은 경우에는 예외입니다.
-
-7.3 계약자는 그러한 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스의 사용은 계약자와 관련 제3자 간에 체결하는 별도의 계약 조건의 적용을 받는다는 것을 인정합니다.
-
-8. Google API 사용
-
-8.1 Google API
-
-8.1.1 Google에서 데이터를 검색하기 위해 API를 사용하는 경우, 그러한 데이터가 Google 또는 데이터를 제공하는 당사자(또는 당사자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 인정합니다. 그러한 API를 사용하는 경우, 추가적인 서비스 약관의 적용을 받을 수 있습니다. 관련 서비스 약관에 허용되지 않은 한, 그러한 데이터(전부 또는 일부)를 변경, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다.
-
-8.1.2 Google에서 사용자 데이터를 검색하기 위해 API를 사용하는 경우, 계약자는 사용자로부터 명시적인 동의를 얻은 경우에 한하여, 그리고 해당 사용자가 허용한 범위 내의 한정된 목적으로만 데이터를 검색해야 합니다.
-
-9. 라이선스 계약 종료
-
-9.1 본 라이선스 계약은 계약자 또는 Google에 의해 아래와 같은 조건 하에 종료될 때까지 계속 적용됩니다.
-
-9.2 계약자가 라이선스 계약을 종료하고자 하는 경우, Preview 및 관련 개발자 자격 증명 일체의 사용을 중단하는 것으로 그러한 의사를 피력할 수 있습니다.
-
-9.3 Google은 언제든 이유 여하를 불문하고 계약자에게 통고하여 라이선스 계약을 종료할 수 있습니다.
-
-9.4 본 라이선스 계약은 통보 또는 여타의 행위 없이도 자동으로 종료됩니다. 이에 해당되려면 다음과 같은 조건이 수반되어야 합니다.
-(A) Google이 계약자가 거주하는 국가 또는 계약자가 서비스를 사용하는 지역에서 Preview 또는 Preview의 특정 부분 제공을 중지하는 경우 및
-(B) Google이 Android SDK의 최종 릴리스 버전을 발행하는 경우.
-
-9.5 본 라이선스 계약이 종료되면 라이선스 계약으로 계약자에게 허용한 라이선스가 취소되며, 이에 따라 계약자는 Preview 사용을 즉시 모두 중단해야 하고 제 10, 11, 12 및 14절의 조항이 기한 없이 유지됩니다.
-
-10. 면책 조항
-
-10.1 계약자는 Preview 이용에 대한 위험 부담이 전적으로 본인에게 있으며, Google이 일체의 보증 없이 Preview를 "있는 그대로" 그리고 "이용 가능한" 상태로 제공한다는 것을 분명히 이해하고 동의합니다.
-
-10.2 Preview 이용 및 이용 과정에서 다운로드하거나 얻게 되는 모든 자료를 사용하는 것은 본인의 재량에 따르며 이에 대한 위험 부담이 전적으로 본인에게 있으며, 그러한 사용으로 인해 발생하는 컴퓨터 시스템 또는 다른 기기의 손상 또는 데이터 손실에 대한 책임은 전적으로 본인에게 있습니다. 전술한 조항을 제한하지 않는 범위 내에서 계약자는 미리 보기가 안정된 릴리스가 아니며 오류, 결함 및 보안 취약성이 포함되어 있을 수 있어 그 결과로 중대한 손상을 유발할 수 있다는 점을 이해하는 것으로 간주합니다. 여기에는 계약자의 컴퓨터 시스템 또는 기타 기기의 완전하고 돌이킬 수 없는 손실도 포함됩니다.
-
-10.3 더 나아가, Google은 상품성, 특정 목적에 대한 적합성 및 비침해의 묵시적 보증 등을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 모든 종류의 보증 및 조건을 명시적으로 부인합니다.
-
-11. 책임 한계
-
-11.1 계약자는 계약자에게 발생할 수 있는 직접, 간접, 부수적, 특별, 결과적 또는 징벌적 손해에 대해 그 어떤 책임 이론에 근거해서도 Google, 해당 자회사, 계열사 및 사용 허가자가 어떠한 책임도 지지 아니함을 분명히 이해하고 동의합니다. 이러한 손해에는 Google 또는 해당 대리자가 이러한 손실 발생 가능성에 대해 통지를 받았거나 이러한 사항을 인식했는지에 상관없이 모든 데이터 손실이 포함됩니다.
-
-12. 면책
-
-12.1 법률에 의해 허용되는 최대한의 범위 안에서 계약자는 (a) 미리 보기 사용, (b) 계약자가 미리 보기에서 개발한 일체의 애플리케이션에서 초래된 모든 사람의 저작권, 상표, 영업비밀, 트레이드 드레스, 특허 또는 기타 지적 재산권의 침해, 또는 어떤 사람의 명예를 훼손하거나 초상권 또는 개인정보 보호정책을 침해함 또는 (C)계약자 본인이 본 라이선스 계약을 위반함으로써 발생하거나 생기는 모든 청구, 조치, 소송 또는 절차, 그리고 모든 손실, 책임, 손해, 경비(합리적인 변호사 비용 포함)로부터 Google을 옹호하고, 면책시키고, Google이 손해를 입지 않도록 하는 데 동의합니다.
-
-13. 라이선스 계약 변경
-
-13.1 미리 보기의 새로운 버전을 배포할 때, Google은 본 라이선스 계약의 내용을 변경할 수 있습니다. 그러한 변경이 이뤄진 경우, Google은 미리 보기가 제공되는 웹사이트에 새로운 라이선스 계약 버전을 게재할 것입니다.
-
-14. 일반 법적 조건
-
-14.1 본 라이선스 계약은 계약자와 Google 간의 모든 법적 계약을 구성하며, 계약자의 미리 보기 사용을 규제하고(별도의 서면 계약을 통해 Google이 계약자에게 제공하는 모든 서비스는 제외), 미리 보기와 관련하여 이전에 계약자와 Google이 맺은 모든 계약을 완전히 대체합니다.
-
-14.2 계약자는 Google이 라이선스 계약에 포함된(또는 관련 법률에 의해 Google이 향유하는) 법적 권리 또는 구제수단을 행사하거나 집행하지 않더라도, Google이 권리를 공식적으로 포기한 것으로 간주하지 않으며, Google이 계속해서 그러한 권리 또는 구제수단을 이용할 수 있음에 동의합니다.
-
-14.3 본 라이선스 계약의 조항이 무효라고 이 사안에 관한 판결을 할 수 있는 관할권을 가진 법원이 판결할 경우, 그 조항은 라이선스 계약의 나머지 조항에 영향을 미치지 않는 형태로 라이선스 계약에서 제거됩니다. 본 라이선스 계약의 나머지 조항은 여전히 유효하며 집행 가능합니다.
-
-14.4 계약자는 Google이 모회사가 되는 회사 그룹에 속한 각 회사가 본 라이선스 계약의 제3수익자이며, 그러한 다른 회사들이 그들에게 이익(또는 유리한 권리)을 부여하는 본 라이선스 계약의 모든 조항을 직접 행사하고 적용할 수 있는 권리를 가진다는 데 동의합니다. 그 외에는 다른 어떤 개인이나 회사도 본 라이선스 계약의 제3수익자가 될 수 없습니다.
-
-14.5 수출 규제. Preview는 미국의 수출법과 규정의 적용을 받습니다. 계약자는 Preview에 적용되는 모든 국내 및 국제 수출법과 규정을 준수해야 합니다. 그러한 법에는 수출 대상국, 최종 사용자 및 최종 용도에 대한 제한이 포함됩니다.
-
-14.6 계약자 또는 Google은 상대 당사자의 사전 서면 승인 없이 본 라이선스 계약에서 부여된 권리를 제3자에게 양도하거나 이전할 수 없으며, 그러한 승인 없이 이루어진 양도 시도는 모두 무효입니다. 계약자는 Google의 사전 승인 없이 본 라이선스 계약 상의 책임 또는 의무를 위임할 수 없습니다.
-
-14.7 본 라이선스 계약, 그리고 본 라이선스 계약 상의 계약자와 Google의 관계는 법률 조항 간의 충돌과는 무관하게 캘리포니아주법에 의한 규제를 받습니다. 계약자와 Google은 본 라이선스 계약으로부터 발생하는 모든 법적 문제 해결을 캘리포니아주 산타 클라라(Santa Clara) 카운티 내에 소재한 전속 관할 법원에 의뢰하는 것에 동의합니다. 위 규정에도 불구하고, 계약자는 Google이 여전히 모든 관할권에서 강제 구제책(또는 동등한 유형의 긴급 법적 구제)을 신청할 수 있음에 동의합니다.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">본인은 상기 사용 약관을 읽었으며 이에 동의합니다.</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>이 문서의 내용</h2>
-      <ol>
-        <li><a href="#device-preview">하드웨어 기기 설정</a>
-          <ol>
-            <li><a href="#ota">OTA 업데이트</a></li>
-            <li><a href="#flash">수동 기기 플래시</a></li>
-            <li><a href="#revertDevice">제거</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">에뮬레이터 설정</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  새로운 플랫폼에서 앱을 실행하고 테스트하려면 Android N
-런타임 환경을 설정해야 합니다. 다음 두 가지 방법 중 하나를 사용할 수 있습니다.
-</p>
-
-<ul>
-  <li>지원되는 하드웨어 기기에서 Android N 설치</li>
-  <li>Android N이 실행되는 Android 에뮬레이터 설정</li>
-</ul>
-
-<p>
-  새로운 플랫폼에서 앱에 대한 기본적인 호환성 테스트를 수행할 환경이 필요한 경우,
-최신 APK와 하드웨어 기기 또는
-에뮬레이터만 있으면 됩니다. 기본 테스트를 위해 전체 개발 환경을
-업데이트할 필요가 없습니다.
-</p>
-
-<p>
-  Android N을 대상으로 하도록 앱을 수정하거나 새로운 Android N API를 사용하고 싶다면,
-Android N을 지원하도록
-업데이트된 개발 환경을 설정해야 합니다. 자세한 내용은 <a href="{@docRoot}preview/setup-sdk.html">Android N용 개발
-설정</a>을 참조하세요.
-</p>
-
-
-<h2 id="device-preview">하드웨어 기기 설정</h2>
-
-<p>
-  N Developer Preview는 전화에서 태블릿, TV에 이르기까지 앱을 테스트하는 데 사용할 수 있는
-다양한 하드웨어 기기의 시스템 업데이트를 제공합니다.
-</p>
-
-<p>
-  지원되는 기기에 액세스할 수 있다면, 다음 방법 중 하나를 사용하여 Developer Preview 마일스톤 빌드로
-업데이트할 수 있습니다.
-</p>
-
-<ul>
-  <li><a href="https://g.co/androidbeta">Android 베타 프로그램</a>을 통해
-<strong>자동 OTA 시스템 업데이트에 기기를 등록합니다</strong>. 기기를 등록하면 N Developer Preview에서
-모든 마일스톤 빌드에 대해 정기적으로 OTA 업데이트를 받을 수 있습니다. 다양한 N Developer Preview 릴리스를 통해 현재
-환경을 매끄럽게 전환할 수 있으므로
-이 방법을 권장합니다.</li>
-  <li><strong>Developer Preview 시스템 이미지를 다운로드하고 기기를 플래시합니다</strong>.
-  수동으로 플래시하는 기기에는 OTA 업데이트가 자동으로 제공되지 않지만,
-Android 베타 프로그램에 기기를 등록하면 OTA 업데이트를 받을 수 있습니다. </li>
-</ul>
-
-<h3 id="ota">자동 OTA 업데이트에 기기 등록</h3>
-
-<p>
-  지원되는 기기에 액세스할 수 있다면(아래 다운로드 표
-참조),
-해당 기기를 <a href="https://g.co/androidbeta">Android 베타 프로그램</a>에 등록해서 Android 프리뷰 버전에 대해 OTA 업데이트를 받을 수 있습니다. 이 업데이트는
-자동으로 다운로드되고 공식 시스템 업데이트처럼
-기기를 업데이트합니다.
-</p>
-
-<p>
-  언제든 기기의 등록을 해제할 수 있습니다. 기기는
-해당 기기에 사용 가능한 가장 최신의 Android 프로덕션 버전에 대한 OTA 업데이트를 받게 됩니다(예: Android 6.0 Marshmallow).
- 업데이트 시 기기가 완전히 초기화되므로
-기기의 사용자 데이터는 삭제됩니다. 따라서 기기 등록을 해제하기 전에 반드시 <strong>중요한
-데이터를 백업</strong>해야 합니다.
-</p>
-
-<p>
-  자세한 정보를 확인하고 기기를 등록하려면
-<a href="https://g.co/androidbeta">Android 베타 프로그램</a> 웹사이트를 참조하세요.
-</p>
-
-<p class="note"><strong>참고:</strong>
-  등록을 해제하면 기기가 완전히 초기화됩니다. 중요한 데이터를
-먼저 백업하세요.
-</p>
-
-<h3 id="flash">수동 기기 플래시</h3>
-
-<p>
-  언제든 최신 Developer Preview 시스템 이미지를 다운로드하고
-기기에 수동으로 플래시할 수 있습니다. 아래 표를 참조하여 기기 테스트용 시스템 이미지를
-다운로드하세요. 기기 수동 플래시는
-테스트 환경을 정확히 제어해야 하거나 자동 테스트 등을 위해 자주 재설치해야 하는 경우
-유용합니다.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  기기에 시스템 이미지를 설치하면 <strong>기기에서 모든 데이터가
-삭제</strong>되므로 데이터를 먼저 백업하는 것이 좋습니다.
-</p>
-
-<p>
-  기기 데이터를 백업하고 아래에서 기기에 맞는 시스템 이미지를 다운로드한 뒤,
-<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>의
-지침에 따라 기기에 이미지를 플래시합니다.
-</p>
-
-<p>
-  수동으로 플래시한 시스템 이미지는 최신
-Developer Preview 마일스톤 빌드에 대한 <strong>OTA 업데이트를 자동으로
-수신하지는 않습니다</strong>. 각 Developer Preview 마일스톤에서 환경을 최신으로 유지하고 새 시스템 이미지를
-플래시하세요.
-</p>
-
-<p>
-  기기를 수동으로 플래시한 후 OTA 업데이트를 받으시려면
-<a href="https://g.co/androidbeta">Android
-베타 프로그램</a>에 기기를 등록하기만 하면 됩니다. 언제든 기기를 등록하고 다음 Preview
-업데이트를 무선으로 받을 수 있습니다.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">기기</th>
-    <th scope="col">다운로드/체크섬</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">기기에서 Preview 제거</h3>
-
-<p>
-  기기에서 Preview를 제거하려면
-다음 중 한 가지 방법을 사용할 수 있습니다. </p>
-  <ul>
-    <li><strong>공장 사양 시스템 이미지</strong>를 획득한 다음 기기에 수동으로
-플래시합니다.
-      <ul>
-          <li><strong>Nexus 기기와 Pixel C 기기</strong>의 경우,
-<a href="http://developers.google.com/android/nexus/images">Nexus 기기용
-공장 이미지</a> 페이지에서 다운로드하세요. </li>
-        <li><strong>다른 기기</strong>의 경우, 기기 제조업체에 직접
-문의하세요. 또는, Android 베타 프로그램에서 지원되는
-기기라면
-이 프로그램에 기기를 등록한 다음 등록을 해제할 수 있습니다(아래 참조).</li>
-      </ul>
-    </li>
-    <li><strong>Android 베타 프로그램에서 기기 등록을 해제합니다</strong>. 기기가
-<a href="https://g.co/androidbeta">Android 베타
-프로그램</a>에 등록되었다면 기기와 관계없이 프로그램에서 기기를 해제하기만 하면 됩니다.
-  <p>
-    기기는 해당 기기에 사용 가능한 가장 최신의 Android 프로덕션 버전에
-대한 OTA 업데이트를 받게 됩니다(예: Android 6.0 Marshmallow).
-    업데이트 시 기기가 완전히 초기화되므로 기기의 사용자 데이터는
-삭제됩니다. 따라서 기기 등록을 해제하기 전에 반드시 <strong>중요한 데이터를
-백업</strong>해야 합니다.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>참고:</strong>
-  프로그램이 끝나기 전에 Developer Preview 시스템 이미지를 제거하는 경우,
-기기를 완전히 초기화해야 하고 기기에서 모든 사용자 데이터를
-삭제해야 합니다.
-</p>
-
-
-<h2 id="setupAVD">에뮬레이터 설정</h2>
-
-<p>Android 에뮬레이터를 사용하여 Android N Preview를 실행하려면
-Android N Preview SDK를 다운로드하고 에뮬레이터용 가상 기기를
-생성해야 합니다.</p>
-
-<p>먼저 다음과 같이 Android N Preview SDK를 다운로드합니다. <a href="{@docRoot}preview/setup-sdk.html">Android
-N용 개발 설정</a>
-시 이미 다운로드했다면 이 부분은 건너뛸 수 있습니다.
-
-<ol>
-  <li>Android Studio에서 Settings 대화 상자를
-엽니다(Windows/Linux의 경우 <strong>File &gt; Settings</strong>, Mac의 경우
-<strong>Android Studio &gt; Preferences</strong>). 왼쪽 창에서
-<strong>Appearance &amp; Behavior &gt;
-System Settings &gt; Android SDK</strong>를 선택합니다.
-
-  <li><strong>SDK Platforms</strong> 탭을 클릭한 다음,
-<strong>Android N Preview</strong> 체크박스를 선택합니다.</li>
-
-  <li><strong>SDK Tools</strong> 탭을 클릭한 다음,
-<strong>Android SDK Build Tools</strong>, <strong>Android SDK
-Platform-Tools</strong>, <strong>Android SDK Tools</strong> 체크박스를
-선택합니다.
-  </li>
-
-  <li><strong>OK</strong>를 클릭하고 설치할 패키지의
-사용권 계약에 동의합니다.
-  </li>
-</ol>
-
-<p>이제 <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong> 및 <strong>SDK Tools
-25.0.9</strong>를 다운로드했습니다. SDK 도구를 25.0.9로 업데이트하지 않으면
-Android N에서 x86_64 시스템 이미지를 실행할 수 없습니다.</p>
-
-
-<p>이제 Android N 시스템 이미지로 가상 기기를 생성합니다.</p>
-
-<ol>
-  <li><strong>Tools &gt; Android &gt;
-AVD Manager</strong>를 선택하여 AVD Manager를 엽니다.</li>
-  <li><strong>Create Virtual Device</strong>를 클릭합니다.</li>
-  <li>Nexus 5X, Nexus 6P, Nexus 9, Android TV 등의 기기를 선택하고
-<strong>Next</strong>를 클릭합니다.</li>
-  <li><strong>N</strong> 시스템 이미지(<strong>x86</strong>
-ABI)를 선택하고 <strong>Next</strong>를 클릭합니다.
-    (현재는 x86 시스템 이미지만 Android N Preview용 Android 에뮬레이터에서
-지원됩니다.)
-  <li>나머지 AVD 구성을 완료하고
-<strong>Finish</strong>를 클릭합니다.</li>
-</ol>
-
-<p>이제 Android N Preview AVD에서 Android 에뮬레이터를 시작할 수 있습니다.</p>
-
-<p>
-Android 에뮬레이터에서 최상의 경험을 얻으려면
-Android Studio 2.1 이상의 버전을 사용해야 합니다. 이러한 버전에서는 Android Studio 1.5의 에뮬레이터에 비해
-더욱 빠른 성능을 제공하는 <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>이
-지원됩니다.</p>
-
-<p>가상 기기 생성에 대한 자세한 내용은 <a href="{@docRoot}tools/devices/index.html">가상 기기 관리</a>를 참조하세요.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/ko/preview/features/afw.jd b/docs/html-intl/intl/ko/preview/features/afw.jd
deleted file mode 100644
index 4c06451..0000000
--- a/docs/html-intl/intl/ko/preview/features/afw.jd
+++ /dev/null
@@ -1,552 +0,0 @@
-page.title=Android for Work 업데이트
-page.metaDescription=Android N의 새로운 Android for Work API와 기능.
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>이 문서의 내용</h2>
-      <ol>
-        <li><a href="#qr">QR 코드 프로비저닝
-                </a></li>
-
-        <li><a href="#sec-challenge">작업 프로필 보안 인증 질문
-                </a></li>
-
-        <li><a href="#suspend">앱에 대한 액세스 비활성화
-                </a></li>
-
-        <li><a href="#toggle-work">작업 모드 전환
-                </a></li>
-
-        <li><a href="#always-on-vpn">상시 접속 VPN
-                </a></li>
-
-        <li><a href="#contacts">연락처와 작업 프로필 통합
-                </a></li>
-
-        <li><a href="#remote-reboot">원격 재부팅
-                </a></li>
-
-        <li><a href="#disable-roaming">데이터 로밍 비활성화
-                </a></li>
-
-        <li><a href="#process-logging">엔터프라이즈 프로세스 로깅
-                </a></li>
-
-        <li><a href="#bug-reports">원격 버그 보고서
-                </a></li>
-
-        <li><a href="#remove-cert">클라이언트 인증서 제거
-                </a></li>
-
-        <li><a href="#grant-cert-on-install">설치 시 클라이언트 인증서에 대한
-                액세스 권한 부여</a></li>
-
-        <li><a href="#ui-policy">시스템 UI 정책 투명성
-                </a></li>
-
-        <li><a href="#restrictions-mgmt">앱 제한 관리 향상
-                </a></li>
-
-        <li><a href="#location-off">위치 해제 스위치
-                </a></li>
-
-        <li><a href="#custom-provisioning">사용자 지정 프로비저닝
-                </a></li>
-
-        <li><a href="#multi-wifi-ca">다중 Wi-Fi CA 인증서
-                </a></li>
-
-        <li><a href="#custom-lock">사용자 지정 잠금 화면 메시지
-                </a></li>
-
-        <li><a href="#work-connectionservice">작업 프로필 연결 서비스
-                </a></li>
-
-        <li><a href="#lock-wp">배경 화면 잠금
-                </a></li>
-
-        <li><a href="#lock-user-icon">사용자 아이콘 잠금
-                </a></li>
-
-        <li><a href="#health-monitoring">기기 상태 모니터링
-                </a></li>
-
-      </ol>
-
-    <h2>참고 항목</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
-            참조</a></li>
-    </ul>
-  </div>
-</div>
-
-<p>이 문서에서는 Android N에서 제공되는 새로운 Android for Work 기능을
-설명합니다.</p>
-
-<h2 id="qr">QR 코드 프로비저닝</h2>
-
-<p>
-  이제 Android for Work는 기업에서 업무용으로 지급하는 기기를 프로비저닝할 때 QR 코드 사용을
- 지원합니다. 이제는 설치 마법사를 통해 QR 코드를 스캔하여 기기를
- 프로비저닝할 수 있습니다.
-</p>
-
-<h2 id="sec-challenge">작업 프로필 보안 인증 질문</h2>
-
-<p>
-  프로필 소유자는 작업 프로필에서 작동하는 앱에 대한 보안 인증 질문을
- 지정하도록 사용자에게 요구할 수 있습니다. 시스템에서는 사용자가 업무용 앱을 열려고 할 때
- 보안 인증 질문을 표시합니다. 사용자가 보안 인증 질문에 올바로
- 답하면 작업 프로필의 잠금이 해제되고 필요하다면 작업 프로필의 암호가
- 해독됩니다.
-</p>
-
-<p>
-  프로필 소유자가 {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} 인텐트를 보내면
-, 보안 인증 질문을 설정하라는 메시지가 사용자에게 표시됩니다. 또한, 프로필 소유자는
- 사용자에게 기기 잠금을 설정하도록 하는 <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> 인텐트를
-  보낼 수 있습니다.
-</p>
-
-<p>
-  프로필 소유자는 작업 프로필 보안 인증 질문의 비밀번호 정책을 다른 기기
- 비밀번호의 정책과는 다르게 설정하도록 선택할 수 있습니다. 예를 들어, 기기 보안 질문 응답의 최소 길이는 다른 암호에 요구되는
-길이와
-다를 수 있습니다. 프로필 소유자는 {@link
- android.app.admin.DevicePolicyManager#setPasswordQuality
- setPasswordQuality()} 및 {@link
- android.app.admin.DevicePolicyManager#setPasswordMinimumLength
- setPasswordMinimumLength()}와 같은
- 일반적인 {@link android.app.admin.DevicePolicyManager}
- 메서드를 사용하여 보안 질문 정책을 설정합니다. 프로필 소유자는 새 <code>DevicePolicyManager.getParentProfileInstance()</code>
- 메서드에 의해 반환되는 {@link android.app.admin.DevicePolicyManager} 인스턴스를
- 사용하여 기기 잠금을
- 설정할 수도 있습니다. 그 밖에도, 프로필 소유자는 {@link android.app.admin.DevicePolicyManager}
- 클래스의 새로운 <code>setOrganizationColor()</code> 및
- <code>setOrganizationName()</code> 메서드를 사용하여 작업 프로필 보안 인증 질문에 대한 자격 증명 화면을
- 사용자 지정할 수 있습니다.
-</p>
-
-<p>
-  새로운 메서드와 상수에 대한 자세한 내용은
- <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK 참조</a>의 <code>DevicePolicyManager</code> 참조 페이지를 참조하십시오.
-</p>
-
-<h2 id="suspend">앱에 대한 액세스 비활성화</h2>
-
-<p>
-  기기 소유자 및 프로필 소유자는 새 <code>DevicePolicyManager.setPackagesSuspended()</code>
- 메서드를 호출하여 패키지에 대한 액세스를 일시적으로 중단할 수
- 있습니다. 소유자는 이 메서드를 똑같이 사용하여 해당 패키지를 다시 활성화할 수 있습니다.
-</p>
-
-<p>
-  패키지가 일시 중단된 동안에는 액티비티를 시작할 수 없고, 패키지에 대한
- 알림이 억제되고, <a href="{@docRoot}guide/components/recents.html">개요 화면</a>에서 앱 항목이 숨겨집니다.
-  일시 중단된 패키지는 <a href="{@docRoot}guide/components/recents.html">개요 화면</a>에 표시되지 않고
- (toast와 snackbar를 포함한) 대화 상자를 표시할 수 없습니다. 이들 패키지는 또한 오디오를
- 재생하거나 기기를 진동시킬 수도 없습니다.
-</p>
-
-<p>
-  현재 사용할 수 없는 앱임을 표시하기 위해
-, 런처는 뚜렷이 구별되는 UI를 일시 중단된 앱에 적용해야 합니다. 예를 들어, 앱 아이콘이 회색으로 표시되도록 할 수
- 있습니다. 런처는 앱이 일시 중단된 상태인지
- 확인하기 위해 새 <code>DevicePolicyManager.getPackageSuspended()</code> 메서드를 호출할 수 있습니다.
-</p>
-
-<h2 id="toggle-work">작업 모드 전환</h2>
-
-<p>
-  듀얼 프로필 기기에서는 사용자가 작업 모드를 설정하거나 해제할 수 있습니다. 작업 모드가
- 해제된 중에는 관리된 프로필이 일시적으로 종료됩니다. 프로필
- 소유자 앱을 포함하여 작업 프로필 앱, 백그라운드 동기화 및 알림이 모두
- 비활성화됩니다. 작업 프로필이 비활성화된 중에는 사용자가
- 업무용 앱을 실행할 수 없음을 미리 알려주기 위한 영구적인 상태 아이콘이
- 표시됩니다. 시스템 런처는 업무용 앱과 위젯에 액세스할 수 없음을
- 나타냅니다.
-</p>
-
-<h2 id="always-on-vpn">상시 접속 VPN</h2>
-
-<p>
-  기기 소유자 및 프로필 소유자는 항상 지정된 VPN을 통해 업무용 앱을
- 네트워크에 연결하도록 요구할 수 있습니다. 소유자가 이 요구 사항을 설정하면
- 기기는 부팅 시 해당 VPN을 자동으로 시작합니다.
-</p>
-
-<p>
-  소유자는 새 <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> 메서드를 호출하여 VPN을 사용하도록 요구할 수
- 있습니다. 소유자가
- VPN 요구 사항을 설정했는지 확인하려면 새
- <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> 메서드를 호출하십시오.
-</p>
-
-<p>
-  시스템에서 앱 상호 작용 없이 VPN 서비스를 직접 바인딩할 수 있으므로,
- VPN 클라이언트는 상시 접속 VPN에 대해 새로운 진입점을 처리해야 합니다. 이전과 마찬가지로,
- {@link android.net.VpnService android.net.VpnService} 작업과 일치하는 인텐트 필터를 사용하여 활성 서비스를
- 찾을 수 있습니다.
-</p>
-
-<p>
-  사용자는 <strong>Settings &gt; More &gt;
- VPN</strong> 화면을 사용하여 {@link
- android.net.VpnService}를 구현하는 상시 접속 VPN 클라이언트를 수동으로 설정할 수 있습니다.
-</p>
-
-<h2 id="contacts">연락처와 작업 프로필 통합</h2>
-
-<p>
-  프로필 소유자는 기본 사용자의 업무용 연락처에 대한 로컬 검색 및 디렉터리 조회를
- 허용할 수 있습니다. 예를 들어, 사용자는 개인 다이얼러 또는 연락처 애플리케이션에서
- 개인용 및 업무용 디렉터리 연락처에 모두 액세스할 수 있습니다(프로필
- 관리자가 허용한 경우).
-</p>
-
-<p>
-  Contact Provider를 활용하는 개발자는, 정책에 따라 허용되는 경우
-, Enterprise Contacts API를 사용하여 기본 사용자의 작업 프로필 디렉터리 항목에 액세스할 수
- 있습니다.
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  프로필 소유자는 다음과 같은 새로운 메서드를 사용하여 기본 사용자의 업무용 연락처를 표시할지
-여부를 제어할 수 있습니다.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">원격 재부팅</h2>
-
-<p>
-  기기 소유자는 기기를 원격으로 재부팅할 수 있습니다. 경우에 따라, 구내의 공공 장소에 배치되어 있는
- 기기는 전원 버튼에 액세스하지 못하게 되어 있습니다. 기기를
- 재부팅해야 하는 경우 관리자가 새
- <code>DevicePolicyManager.reboot()</code> 메서드를 사용하여 재부팅할 수 있습니다.
-</p>
-
-<h2 id="disable-roaming">데이터 로밍 비활성화</h2>
-
-<p>
-  기기 소유자는 새로운 {@link
- android.os.UserManager} 사용자 제한 <code>DISALLOW_DATA_ROAMING</code>을 사용하여 데이터 로밍을 비활성화할 수 있습니다.
-</p>
-
-<h2 id="process-logging">엔터프라이즈 프로세스 로깅</h2>
-
-<p>
-  기기 소유자는 앱 실행, adb 액티비티 및 화면 잠금 해제를 비롯한 기기 액티비티를
- 원격으로 추적하여 의심스러운 액티비티를 식별할 수 있습니다. 프로세스
- 로그는 사용자 동의를 받을 필요가 없습니다. 로그를 검색하기 위해, 기기 소유자는 <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>를 사용하여
- 기기 로깅을 활성화할 수 있습니다.
-</p>
-
-<p>
-  API 변경 사항에는 다음이 포함됩니다.
-</p>
-
-<ul>
-
-  <li>
-    새로운 클래스 <code>android.app.admin.SecurityLog</code>와 이 클래스의
- 메서드
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">원격 버그 보고서</h2>
-
-<p>
-  기기 소유자는 기기 상태 덤프 파일이 포함된 버그 보고서를
- 원격으로 트리거하고 검색할 수 있으며, 이를 통해 알려진 문제나 손상된 기기에 대한
- 포렌식 조사를 수행할 수 있습니다. 버그 보고서는 그 본질상 세세한 내용까지 담고 있으므로,
- 사용자 동의를 받아야 합니다.
-</p>
-
-<p>
-  Android N에서는 이 기능을 지원하기 위해 다음과 같은 API를 포함합니다. 자세한
- 내용은 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
- 참조</a>를 확인하세요.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">클라이언트 인증서 제거</h2>
-
-<p>
-  프로필 소유자와 기기 소유자는 이제 새 <code>DevicePolicyManager.removeKeyPair()</code>
- 메서드를 호출하여, {@link android.app.admin.DevicePolicyManager#installKeyPair
- installKeyPair()}를 통해 설치된 클라이언트 인증서를
- 제거할 수 있습니다.
-</p>
-
-<h2 id="grant-cert-on-install">설치 시 클라이언트 인증서에 대한
- 액세스 권한 부여</h2>
-
-<p>
-  프로필 소유자나 기기 소유자가 인증서 관리 권한을
- 타사 앱에 부여할 경우, 해당 앱은 소유자의 간섭을 전혀 받지 않고도 인증서에
- 액세스 권한을 부여할 수 있습니다.
-</p>
-
-<p>
-  인증서 관리를 위한 기존 API가 확장되었으며 다음을 포함합니다.
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">시스템 UI 정책 투명성</h2>
-
-<p>
-  사용자 환경에 영향을 미치는 정책이나 사용자 Settings를 제한하는 정책은
- 사용자에게 완전히 공개되며, 프로필 소유자와 기기 소유자는 해당 정책에 대한 책임을
- 회사의 IT 부서로 돌릴 수 있습니다. Settings에 일관되게 표시되는 “Action
- not allowed” 메시지 외에도, IT 관리자는
- 다음과 같은 새로운 {@link android.app.admin.DevicePolicyManager} 메서드를 사용하여 기기 설정에서 조직별 지원 메시지를
- 설정할 수 있습니다.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">앱 제한 관리 향상</h2>
-
-<p>
-  기기 소유자나 프로필 소유자는 새 <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
- 메서드를 통해 다른 애플리케이션이 앱 제한을
- 관리하도록 할 수
- 있습니다. 지정된 애플리케이션은 이 권한이 부여되었는지
-여부를 확인하기 위해 <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>를 호출할
-수 있습니다.
-</p>
-
-<p>
-  앱 제한을 관리하도록 지정된 애플리케이션은 해당 사용자 또는 프로필 내에 있는 어떤 패키지에 대해서도 {@link
- android.app.admin.DevicePolicyManager#setApplicationRestrictions
- setApplicationRestrictions()} 및 {@link
- android.app.admin.DevicePolicyManager#getApplicationRestrictions
- getApplicationRestrictions()}를 호출할 수 있습니다.
-</p>
-
-<h2 id="location-off">위치 해제 스위치</h2>
-
-<p>
-  사용자는 개인용 앱에서 위치 정보에 계속 액세스하는 동안에도
- 업무용 앱의 위치 권한을 비활성화할 수 있습니다. 사용자는
- Location Settings에 있는 별개의 위치 액세스 스위치를 사용하여 작업 프로필에서 실행 중인
- 앱의 위치 업데이트 또는 마지막 위치 쿼리를 거부할 수 있습니다.
-</p>
-
-<p>
-  최상위 수준 위치 해제 스위치를 사용하면 기본 프로필과 관리된 프로필에
- 대해 모두 위치 액세스를 비활성화할 수 있습니다.
-</p>
-
-<h2 id="custom-provisioning">사용자 지정 프로비저닝</h2>
-
-<p>
-  애플리케이션은 기업 색상과 로고를 사용하여 프로필 소유자 및 기기 소유자 프로비저닝
- 흐름을 사용자 지정할 수 있습니다.
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    흐름 색상을 사용자 지정합니다.
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    기업 로고를 사용하여 흐름을 사용자 지정합니다.
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">다중 Wi-Fi CA 인증서</h2>
-
-<p>
-  프로필 소유자와 기기 소유자는 주어진 Wi-Fi 구성에 대해 다중 CA 인증서를 설정할 수
- 있습니다. SSID가 동일한 별개의 액세스 지점에 대해
- 별개의 CA가 기업 Wi-Fi 네트워크에 있는 경우, IT 관리자가 새 메서드 <code>setCaCertificates()</code>를 사용하여
- 모든 관련 CA를 Wi-Fi 구성에 포함시킬 수
- 있습니다.
-</p>
-
-<p>
-  추가되는 API는 다음과 같습니다.
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">사용자 지정 잠금 화면 메시지</h2>
-
-<p>
-  기기 소유자는 잠금 화면에 표시될 소유자 정보를 제공할 수 있습니다.
-  이 정보는 사용자 잠금 화면 메시지(설정되어 있는 경우)보다
- 우선합니다. 새 {@link android.app.admin.DevicePolicyManager} 메서드는 다음과 같습니다.
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">작업 프로필 연결 서비스</h2>
-
-<p>
-  프로필 소유자는 호출 백엔드(호출 계정)용으로
- 작업별 {@link android.telecom.ConnectionService}를 사용하는 업무용 다이얼러 애플리케이션을
- 지정할 수 있습니다. 업무용 다이얼러는 업무 전용 통화 기록을
- 유지 관리하고 업무용 연락처에만 의존합니다. 사용자는 전화 걸기 애플리케이션에 상관없이 일관된 통화 UI
- 환경을 사용합니다. 업무 통화 계정으로 수신되는 업무 통화는
- 개인 통화 계정으로 수신되는 개인용 통화와
- 구분됩니다.
-</p>
-
-<p>
-  다이얼러는 새 플래그
- <code>android.telecom.Call.PROPERTY_WORK_CALL</code>을 검사하여 통화가
-업무 통화인지 결정합니다. 통화가 업무 통화인 경우, 다이얼러는 작업 배지를 추가하는 등의 방법으로
- 이를 표시해야 합니다.
-</p>
-
-<h2 id="lock-wp">배경 화면 잠금</h2>
-
-<p>
-  새 사용자 제한(<code>DISALLOW_SET_WALLPAPER</code>)에 따라 사용자는
- 배경 화면을 변경할 수 없습니다. 그래도 기기 소유자나 프로필 소유자는
- 배경 화면을 변경할 수 있지만, 자신이 관리하는 사용자나 프로필의
- 배경 화면만 변경할 수 있을 뿐입니다. 예를 들어, 프로필 소유자는 상위 사용자의 배경 화면은
- 변경할 수 없지만, 기본 프로필에 있는 프로필 소유자나 기기 소유자는
- 변경할 수 있습니다. 배경 화면을 변경하고 싶은 프로필 소유자나 기기 소유자는
- 자신이 관리하는 사용자 또는 프로필에
- 배경 화면이 있는지({@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}), 그리고 이를 변경하도록 허용되는지 여부를 확인해야 합니다(새 메서드
- <code>WallpaperManager.isWallpaperSettingAllowed()</code> 사용).
-</p>
-
-<h2 id="lock-user-icon">사용자 아이콘 잠금</h2>
-
-<p>
-  새 사용자 제한(<code>DISALLOW_SET_USER_ICON</code>)에 따라 사용자는
- 사용자 아이콘을 변경할 수 없습니다. 그래도 사용자의 기기 소유자나 프로필 소유자는
- 아이콘을 변경할 수 있습니다. 하지만, 프로필 소유자는 자신이 관리하는 프로필에 대한 사용자 아이콘만
- 변경할 수 있을 뿐입니다.
-</p>
-
-<h2 id="health-monitoring">기기 상태 모니터링</h2>
-
-<p>
-  기기 소유자나 프로필 소유자는 새
- <code>HardwarePropertiesManager</code> 인터페이스를 사용하여 CPU나 GPU의 온도, CPU 사용량 등, 기기 상태에 대한
- 정보를 검색할 수 있습니다. 새
- 모니터링 인터페이스는 원격 위치에서 지켜보는 사람이 없이 작동하는 기기를
- 모니터링하는 데 특히 유용합니다.
-</p>
diff --git a/docs/html-intl/intl/ko/preview/license.jd b/docs/html-intl/intl/ko/preview/license.jd
deleted file mode 100644
index 875ec85..0000000
--- a/docs/html-intl/intl/ko/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=라이선스 계약
-
-@jd:body
-
-<p>
-Android SDK Preview를 시작하려면 우선 다음과 같은 사용 약관에 동의해야 합니다.
-아래에 설명한 바와 같이, 이것은 Android SDK의 프리뷰 버전이며 변경될 가능성이 있고 이를 사용하는 위험 부담은 계약자 본인에게 있음을 유의하십시오.  Android SDK Preview는 안정된 릴리스가 아니며, 오류나 결함이 들어있을 수 있고 이 때문에 컴퓨터 시스템, 기기 및 데이터에 심각한 손상을 초래할 수 있습니다.
-</p>
-
-<p>
-이것은 Android SDK Preview 라이선스 계약서입니다(이하 "라이선스 계약").
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. 개요
-
-1.1 Android SDK Preview(본 라이선스 계약에서는 "Preview"라고 칭하며, 구체적으로 Android 시스템 파일, 패키지 API 및 Preview 라이브러리 파일이 사용 가능한 경우와 사용 가능해진 경우 이들 파일을 포함한 것임)는 본 라이선스 계약 조건에 따라 계약자에게 사용을 허여합니다. 본 라이선스 계약은 Preview 사용과 관련하여 계약자와 Google 간에 법적 구속력이 있는 계약을 체결합니다.
-
-1.2 "Android"는 기기를 위한 Android 소프트웨어 스택을 의미합니다. 이는 http://source.android.com/ URL에 위치하며 수시로 업데이트되는 Android 오픈 소스 프로젝트에서 제공됩니다.
-
-1.3 "Android 호환"은 (i) Android 호환성 웹사이트(http://source.android.com/compatibility)에서 찾을 수 있고 간혹 업데이트되는 Android 호환성 정의 문서를 준수하며; (ii) Android CTS(Compatibility Test Suite)를 성공적으로 통과한 모든 Android 구현을 의미합니다.
-
-1.4 "Google"은 미국 1600 Amphitheatre Parkway, Mountain View, CA 94043에 본사를 두고 있는 델라웨어주 법인인 Google Inc.를 의미합니다.
-
-2. 라이선스 계약에 동의
-
-2.1 이 Preview를 사용하려면, 먼저 라이선스 계약에 동의해야 합니다. 이 라이선스 계약에 동의하지 않고 Preview를 사용해서는 안 됩니다.
-
-2.2 수락을 클릭하거나 Preview를 사용, 또는 이 두 행위를 모두 수행하면 본 라이선스 계약 조건에 동의하는 것으로 간주됩니다.
-
-2.3 미국법 또는 현재 거주 중이거나 Preview를 사용하는 국가를 포함하여 다른 국가의 법에 따라 Preview를 받는 것이 금지된 경우, Preview를 사용할 수 없으며 본 라이선스 계약을 수락할 수 없습니다.
-
-2.4 회사 또는 단체 내에서 내부적으로 Preview를 사용하며 고용주 또는 기타 단체를 대신하여 본 라이선스 계약 준수에 동의하는 경우, 계약자의 고용주나 그 단체에 본 라이선스 계약에 대한 구속력을 부여할 수 있는 모든 법적 권한을 계약자가 갖고 있음을 진술하고 보증합니다. 구속력을 부여할 수 있는 법적 권한이 없을 경우, 고용주 또는 기타 단체를 대신하여 본 라이선스 계약에 동의하거나 Preview를 사용할 수 없습니다.
-
-3. Google의 Preview 라이선스
-
-3.1 본 라이선스 계약의 조건에 따라 Google은 계약자에게 한정적이며 전 세계적으로 무료로 사용이 가능하고 양도할 수 없고 비독점적이며 2차 라이선스를 불허하는 Preview 사용 라이선스를 부여합니다. 이 라이선스 하에서 계약자는 Android 플랫폼에서 실행되는 애플리케이션을 개발하는 경우에만 Preview를 사용할 수 있습니다.
-
-3.2 이 Preview를 사용하여 다른 플랫폼용 애플리케이션을 개발하거나(Android 비호환 구현 포함) 다른 SDK를 개발할 수 없습니다. 물론 이 Preview가 이러한 목적에 사용되지 않는 경우 Android의 비호환 구현을 포함한 다른 플랫폼용 애플리케이션을 자유롭게 개발할 수 있습니다.
-
-3.3 계약자는 Preview에 존재하는 지적 재산권을 포함하여 Preview에 대한 모든 법적인 권리, 소유권 및 이익이 Google 또는 제3자에게 있음에 동의합니다. "지적 재산권"은 모든 특허법, 저작권법, 영업비밀법, 상표법 하의 모든 권리 및 기타 모든 소유권을 의미합니다. Google은 계약자에게 명시적으로 부여하지 않은 모든 권리를 보유합니다.
-
-3.4 본 라이선스 계약에 명시적으로 허용된 용도 외에는 Preview를 사용할 수 없습니다. 해당 제3자 라이선스 요건이 허용하는 범위를 제외하고 계약자는 Preview의 파생 제품이나 Preview의 일부분을 (a) 복사(백업 목적 제외), 수정, 개작, 재배포, 역컴파일, 리버스 엔지니어링, 분해하거나 이를 통해 파생물을 생성하거나 (b) 개인 컴퓨터를 제외한 모바일 단말기 또는 기타 모든 하드웨어 기기에 Preview의 일부를 로드하거나, Preview의 일부를 다른 소프트웨어와 결합하거나 Preview의 일부가 통합된 일체의 소프트웨어나 기기를 배포해서는 안 됩니다.
-
-3.5 오픈 소스 소프트웨어 라이선스에 의거한 Preview 구성요소의 사용, 재생산, 배포에는 본 라이선스 계약이 아닌, 해당 오픈 소스 소프트웨어 라이선스의 조건이 적용됩니다. 계약자는 허용된 모든 권한 하에서 그러한 오픈 소스 소프트웨어 라이선스에 관해 충실한 피허가자로서의 자세를 견지할 것이며 그러한 권한을 종료, 일시 중단 또는 침해하는 행위를 삼갈 것을 동의합니다.
-
-3.6 계약자는 Google이 제공하는 Preview의 형태 및 특성이 사전 통지 없이 변경될 수 있음에 동의하며, 이전 버전의 Preview에서 개발된 애플리케이션이 이후 버전의 Preview와 호환되지 않을 수 있음에 동의합니다. 계약자는 계약자 또는 사용자에게 사전 통지 없이 Preview(또는 Preview에 포함된 기능) 제공을 (영구적 또는 일시적으로) 중단할 수 있는 권한이 Google에게 있음에 동의합니다.
-
-3.7 본 라이선스 계약은 계약자에게 Google의 상표명, 상표, 서비스 표시, 로고, 도메인 이름, 기타 독특한 브랜드 특징에 대한 사용 권한을 부여하지 않습니다.
-
-3.8 계약자는 Preview에 부착되어 있거나 포함되어 있는 모든 소유권 고지 사항(저작권 및 상표 고지 사항 포함)을 제거, 변경 또는 불분명하게 만들지 않을 것에 동의합니다.
-
-4. 계약자의 Preview 사용
-
-4.1 Google은 본 라이선스 계약의 어떤 조항도 계약자(또는 계약자의 사용 허가자)가 Preview를 사용하여 개발한 소프트웨어 애플리케이션에 대한 권리, 소유권 또는 이익, 그리고 해당 애플리케이션에 존재하는 모든 지적 재산권을 부여하지 않는다는 점에 동의합니다.
-
-4.2 계약자는 (a) 본 라이선스 계약 그리고 (b) 모든 준거법, 규정 또는 관련 관할권 내에서 일반적으로 수용되는 관행 또는 지침(미국 또는 기타 관련 국가로/에서의 데이터 또는 소프트웨어 수출과 관련된 모든 법률 포함)에서 허용하는 용도에 한하여 Preview를 사용하고 애플리케이션을 작성하는 것에 동의합니다.
-
-4.3 계약자는 일반 대중 사용자를 대상으로 Preview를 사용하여 애플리케이션을 개발하는 경우, 해당 사용자의 프라이버시 및 법적 권리를 보호하는 것에 동의합니다. 사용자가 계약자에게 사용자 이름, 비밀번호 또는 기타 로그인 정보나 개인 정보를 제공하는 경우, 계약자는 제공된 정보가 자신의 애플리케이션에 제공된다는 사실을 사용자에게 알려야 하며, 반드시 법적으로 적절한 개인정보 보호정책 고지 및 보호를 해당 사용자에게 제공해야 합니다. 애플리케이션에서 사용자가 제공한 개인 정보나 민감한 정보를 저장하는 경우, 이를 안전하게 처리해야 합니다. 사용자들이 애플리케이션에 Google 계정 정보를 제공하는 경우, 애플리케이션은 해당 사용자의 Google 계정에 액세스하는 목적으로만, 그리고 각 사용자가 허용한 범위 내의 한정된 목적으로만 이러한 정보를 사용해야 합니다.
-
-4.4 계약자는 Google 또는 기타 모든 타사의 서버, 네트워크 또는 기타 모든 재산 또는 서비스를 허가 없이 방해, 교란, 손상 또는 액세스하는 애플리케이션의 개발 또는 배포를 포함한 하등의 행위에 Preview를 이용하지 않을 것임을 동의합니다.
-
-4.5 계약자는 자신이 Android 및/또는 Android용 애플리케이션을 통해 생성, 전송 또는 표시하는 모든 데이터, 콘텐츠 또는 리소스 그리고 그로 인한 결과(Google이 입을 수 있는 모든 피해나 손실 포함)에 대해 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.6 계약자는 본 라이선스 계약, 모든 해당 제3자 계약 또는 서비스 약관, 또는 모든 준거법 또는 규정에 의거한 계약자 의무 위반, 그리고 그로 인한 결과(Google 또는 제3자가 입을 수 있는 모든 피해나 손실 포함)에 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다.
-
-4.7 이 Preview는 현재 개발 단계에 있으며, 계약자의 테스트와 피드백은 그러한 개발 과정에 중요한 부분을 차지합니다. Preview를 사용함으로써 계약자는 일부 기능의 구현은 아직 개발 중인 상태이며 Preview가 안정된 릴리스처럼 완벽하게 기능할 것이라 믿고 사용해서는 안 된다는 점을 인지하는 것으로 간주합니다. 계약자는 이 Preview를 사용한 애플리케이션을 공개적으로 배포 또는 배송하지 않기로 동의합니다. 이 Preview는 공식 Android SDK가 출시된 이후에는 더 이상 지원되지 않기 때문입니다.
-
-5. 계약자의 개발자 자격 증명
-
-5.1 계약자는 Google이 발급했거나 자신이 선택한 모든 개발자 자격 증명에 대한 기밀성을 유지할 책임이 있으며 계약자의 개발자 자격 증명 하에 개발된 모든 애플리케이션에 대한 전적인 책임이 있음에 동의합니다.
-
-6. 개인정보 보호정책 및 정보
-
-6.1 Preview를 지속적으로 혁신하고 개선하기 위해, Google은 고유 식별자, 관련 IP 주소, 소프트웨어 버전 번호, Preview에서 사용 중인 도구 및/또는 서비스와 도구의 사용법에 대한 정보를 포함하되 이에 국한되지 않고 소프트웨어에서 특정 사용량 통계 정보를 수집할 수 있습니다. 그러한 정보를 수집하기 전에 Preview는 계약자에게 이를 통지하고 동의를 구할 것입니다. 계약자가 동의하지 않을 경우 정보를 수집하지 않습니다.
-
-6.2 수집된 데이터는 모두 취합된 형태로 Preview 개선을 위해 검토되며, Google의 개인정보 보호정책에 따라 유지 관리됩니다. 이 정보는 http://www.google.com/policies/privacy/를 참조하십시오.
-
-7. 제3자 애플리케이션
-
-7.1 제3자가 개발한 애플리케이션을 실행하거나 제3자가 제공한 데이터, 콘텐츠 또는 리소스에 액세스하기 위해 Preview를 사용하는 경우, 계약자는 Google이 그러한 애플리케이션, 데이터, 콘텐츠 또는 리소스에 대한 책임이 없음에 동의합니다. 계약자는 그러한 제3자 애플리케이션을 통해 자신이 액세스한 모든 데이터, 콘텐츠 또는 리소스에 대한 책임은 그것을 만든 사람에게 있음에 동의합니다. 또한 계약자가 그러한 모든 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스를 사용하거나 액세스함으로써 비롯된 모든 피해나 손실에 대한 책임이 Google에게 없음에 동의합니다.
-
-7.2 그러한 제3자 애플리케이션을 통해 계약자에게 제공된 데이터, 콘텐츠 그리고 리소스는 그것을 제공한 제공자(또는 제공자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 유의해야 합니다. 그러한 데이터, 콘텐츠 또는 리소스(전부 또는 일부)를 수정, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다. 단, 관련 소유자로부터 그러한 작업을 수행해도 좋다는 허락을 받은 경우에는 예외입니다.
-
-7.3 계약자는 그러한 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스의 사용은 계약자와 관련 제3자 간에 체결하는 별도의 계약 조건의 적용을 받는다는 것을 인정합니다.
-
-8. Google API 사용
-
-8.1 Google API
-
-8.1.1 Google에서 데이터를 검색하기 위해 API를 사용하는 경우, 그러한 데이터가 Google 또는 데이터를 제공하는 당사자(또는 당사자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 인정합니다. 그러한 API를 사용하는 경우, 추가적인 서비스 약관의 적용을 받을 수 있습니다. 관련 서비스 약관에 허용되지 않은 한, 그러한 데이터(전부 또는 일부)를 변경, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다.
-
-8.1.2 Google에서 사용자 데이터를 검색하기 위해 API를 사용하는 경우, 계약자는 사용자로부터 명시적인 동의를 얻은 경우에 한하여, 그리고 해당 사용자가 허용한 범위 내의 한정된 목적으로만 데이터를 검색해야 합니다.
-
-9. 라이선스 계약 종료
-
-9.1 본 라이선스 계약은 계약자 또는 Google에 의해 아래와 같은 조건 하에 종료될 때까지 계속 적용됩니다.
-
-9.2 계약자가 라이선스 계약을 종료하고자 하는 경우, Preview 및 관련 개발자 자격 증명 일체의 사용을 중단하는 것으로 그러한 의사를 피력할 수 있습니다.
-
-9.3 Google은 언제든 이유 여하를 불문하고 계약자에게 통고하여 라이선스 계약을 종료할 수 있습니다.
-
-9.4 본 라이선스 계약은 통보 또는 여타의 행위 없이도 자동으로 종료됩니다. 이에 해당되려면 다음과 같은 조건이 수반되어야 합니다.
-(A) Google이 계약자가 거주하는 국가 또는 계약자가 서비스를 사용하는 지역에서 Preview 또는 Preview의 특정 부분 제공을 중지하는 경우 및
-(B) Google이 Android SDK의 최종 릴리스 버전을 발행하는 경우.
-
-9.5 본 라이선스 계약이 종료되면 라이선스 계약으로 계약자에게 허용한 라이선스가 취소되며, 이에 따라 계약자는 Preview 사용을 즉시 모두 중단해야 하고 제 10, 11, 12 및 14절의 조항이 기한 없이 유지됩니다.
-
-10. 면책 조항
-
-10.1 계약자는 Preview 이용에 대한 위험 부담이 전적으로 본인에게 있으며, Google이 일체의 보증 없이 Preview를 "있는 그대로" 그리고 "이용 가능한" 상태로 제공한다는 것을 분명히 이해하고 동의합니다.
-
-10.2 Preview 이용 및 이용 과정에서 다운로드하거나 얻게 되는 모든 자료를 사용하는 것은 본인의 재량에 따르며 이에 대한 위험 부담이 전적으로 본인에게 있으며, 그러한 사용으로 인해 발생하는 컴퓨터 시스템 또는 다른 기기의 손상 또는 데이터 손실에 대한 책임은 전적으로 본인에게 있습니다. 전술한 조항을 제한하지 않는 범위 내에서 계약자는 미리 보기가 안정된 릴리스가 아니며 오류, 결함 및 보안 취약성이 포함되어 있을 수 있어 그 결과로 중대한 손상을 유발할 수 있다는 점을 이해하는 것으로 간주합니다. 여기에는 계약자의 컴퓨터 시스템 또는 기타 기기의 완전하고 돌이킬 수 없는 손실도 포함됩니다.
-
-10.3 더 나아가, Google은 상품성, 특정 목적에 대한 적합성 및 비침해의 묵시적 보증 등을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 모든 종류의 보증 및 조건을 명시적으로 부인합니다.
-
-11. 책임 한계
-
-11.1 계약자는 계약자에게 발생할 수 있는 직접, 간접, 부수적, 특별, 결과적 또는 징벌적 손해에 대해 그 어떤 책임 이론에 근거해서도 Google, 해당 자회사, 계열사 및 사용 허가자가 어떠한 책임도 지지 아니함을 분명히 이해하고 동의합니다. 이러한 손해에는 Google 또는 해당 대리자가 이러한 손실 발생 가능성에 대해 통지를 받았거나 이러한 사항을 인식했는지에 상관없이 모든 데이터 손실이 포함됩니다.
-
-12. 면책
-
-12.1 법률에 의해 허용되는 최대한의 범위 안에서 계약자는 (a) 미리 보기 사용, (b) 계약자가 미리 보기에서 개발한 일체의 애플리케이션에서 초래된 모든 사람의 저작권, 상표, 영업비밀, 트레이드 드레스, 특허 또는 기타 지적 재산권의 침해, 또는 어떤 사람의 명예를 훼손하거나 초상권 또는 개인정보 보호정책을 침해함 또는 (C)계약자 본인이 본 라이선스 계약을 위반함으로써 발생하거나 생기는 모든 청구, 조치, 소송 또는 절차, 그리고 모든 손실, 책임, 손해, 경비(합리적인 변호사 비용 포함)로부터 Google을 옹호하고, 면책시키고, Google이 손해를 입지 않도록 하는 데 동의합니다.
-
-13. 라이선스 계약 변경
-
-13.1 미리 보기의 새로운 버전을 배포할 때, Google은 본 라이선스 계약의 내용을 변경할 수 있습니다. 그러한 변경이 이뤄진 경우, Google은 미리 보기가 제공되는 웹사이트에 새로운 라이선스 계약 버전을 게재할 것입니다.
-
-14. 일반 법적 조건
-
-14.1 본 라이선스 계약은 계약자와 Google 간의 모든 법적 계약을 구성하며, 계약자의 미리 보기 사용을 규제하고(별도의 서면 계약을 통해 Google이 계약자에게 제공하는 모든 서비스는 제외), 미리 보기와 관련하여 이전에 계약자와 Google이 맺은 모든 계약을 완전히 대체합니다.
-
-14.2 계약자는 Google이 라이선스 계약에 포함된(또는 관련 법률에 의해 Google이 향유하는) 법적 권리 또는 구제수단을 행사하거나 집행하지 않더라도, Google이 권리를 공식적으로 포기한 것으로 간주하지 않으며, Google이 계속해서 그러한 권리 또는 구제수단을 이용할 수 있음에 동의합니다.
-
-14.3 본 라이선스 계약의 조항이 무효라고 이 사안에 관한 판결을 할 수 있는 관할권을 가진 법원이 판결할 경우, 그 조항은 라이선스 계약의 나머지 조항에 영향을 미치지 않는 형태로 라이선스 계약에서 제거됩니다. 본 라이선스 계약의 나머지 조항은 여전히 유효하며 집행 가능합니다.
-
-14.4 계약자는 Google이 모회사가 되는 회사 그룹에 속한 각 회사가 본 라이선스 계약의 제3수익자이며, 그러한 다른 회사들이 그들에게 이익(또는 유리한 권리)을 부여하는 본 라이선스 계약의 모든 조항을 직접 행사하고 적용할 수 있는 권리를 가진다는 데 동의합니다. 그 외에는 다른 어떤 개인이나 회사도 본 라이선스 계약의 제3수익자가 될 수 없습니다.
-
-14.5 수출 규제. Preview는 미국의 수출법과 규정의 적용을 받습니다. 계약자는 Preview에 적용되는 모든 국내 및 국제 수출법과 규정을 준수해야 합니다. 그러한 법에는 수출 대상국, 최종 사용자 및 최종 용도에 대한 제한이 포함됩니다.
-
-14.6 계약자 또는 Google은 상대 당사자의 사전 서면 승인 없이 본 라이선스 계약에서 부여된 권리를 제3자에게 양도하거나 이전할 수 없으며, 그러한 승인 없이 이루어진 양도 시도는 모두 무효입니다. 계약자는 Google의 사전 승인 없이 본 라이선스 계약 상의 책임 또는 의무를 위임할 수 없습니다.
-
-14.7 본 라이선스 계약, 그리고 본 라이선스 계약 상의 계약자와 Google의 관계는 법률 조항 간의 충돌과는 무관하게 캘리포니아주법에 의한 규제를 받습니다. 계약자와 Google은 본 라이선스 계약으로부터 발생하는 모든 법적 문제 해결을 캘리포니아주 산타 클라라(Santa Clara) 카운티 내에 소재한 전속 관할 법원에 의뢰하는 것에 동의합니다. 위 규정에도 불구하고, 계약자는 Google이 여전히 모든 관할권에서 강제 구제책(또는 동등한 유형의 긴급 법적 구제)을 신청할 수 있음에 동의합니다.
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ko/preview/overview.jd b/docs/html-intl/intl/ko/preview/overview.jd
deleted file mode 100644
index 0b14413..0000000
--- a/docs/html-intl/intl/ko/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=프로그램 개요
-page.metaDescription=앱에서 차기 버전의 Android를 사용할 수 있도록 준비하세요.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  <strong>Android N Developer Preview</strong>에 오신 것을 환영합니다. 이 프로그램은 차기 버전의 Android에 대해 앱을 테스트하고 최적화하는 데 필요한 모든 것을 제공합니다.
-
- 이 프로그램은 무료이고, N Developer Preview 도구를 다운로드하기만 하면 바로 시작할 수 있습니다.
-
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        하드웨어 및 에뮬레이터 이미지
-      </h5>
-
-      <p>
-        다양한 기기 또는 에뮬레이터에서 앱을 실행하고 테스트하세요.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        최신 플랫폼 코드
-      </h5>
-
-      <p>
-        Preview 동안 월별 업데이트를 제공할 예정이며 따라서 여러분은 항상 최신 플랫폼 변경에 대해 테스트할 수 있습니다.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        개발자 문제에 우선 순위 부여
-      </h5>
-
-      <p>
-        Google에서는 처음 몇 주 동안 개발자가 보고한 문제에 우선 순위를 부여할 예정이므로,
-가능한 빨리 테스트하고 피드백을 보내 주세요.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        새로운 동작 및 기능
-      </h5>
-
-      <p>
-        새로운 플랫폼 동작을 지원하고 새로운 기능으로 개발하려면 작업을 일찍 시작하세요.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        OTA를 통한 업데이트 제공
-      </h5>
-
-      <p>
-        Android 베타 프로그램을 통해 지원되는 모든 기기에 대해 원활한 OTA 업데이트가 제공됩니다.
- 플래시가 필요 없습니다.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        피드백 및 지원
-      </h5>
-
-      <p>
-        Google의 <a href="{@docRoot}preview/bug">Issue Tracker</a>를 사용해 문제를 보고하고 피드백을 보내 주세요.
- <a href="{@docRoot}preview/dev-community">N&nbsp;개발자 커뮤니티</a>에서는 다른 개발자들과 의견을 주고받을 수 있습니다.
-
-
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">일정 및 업데이트</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  N Developer Preview의 운영 기간은 2016년 3월 9일부터 2016년 3분기로 예정된 AOSP 및 OEM에 대한 Android N 최종 공개 릴리스 때까지입니다.
-
-</p>
-
-<p>
-  개발 단계의 중요 마일스톤에 다다를 때마다 개발 및 테스트 환경을 위한 업데이트가 제공될 것입니다.
- 일반적으로는 매월(4~6주 간격) 업데이트를 제공할 예정입니다.
- 마일스톤은 다음과 같습니다.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong>(최초 릴리스, 알파)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong>(증분 업데이트, 알파)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong>(증분 업데이트, 베타)</li>
-  <li><strong>Preview 4</strong>(최종 API 및 공식 SDK, Play 게시)</li>
-  <li><strong>Preview 5</strong>(최종 테스트를 위한 거의 최종 시스템 이미지)</li>
-  <li>AOSP 및 에코시스템에 <strong>최종 릴리스</strong></li>
-</ul>
-
-<p>
-  각 업데이트에는 SDK 도구, 프리뷰 시스템 이미지, 에뮬레이터, 참조 문서 및 API 차이 등이 포함됩니다.
-
-</p>
-
-<p>
-  <strong>첫 3단계 프리뷰 마일스톤</strong>에서는 현재 앱의 호환성 문제를 확인하고 새 플랫폼을 대상으로 하는 데 필요한 마이그레이션 또는 주요 작업을 계획하는 데 도움이 되는 <strong>조기 테스트 및 개발 환경</strong>을 제공합니다.
-
-
- 이 기간은 기능과 API 및 파일 호환성 문제에 대한 피드백을 제공하는 우선 순위 기간입니다. 이 모든 경우에 대해 <a href="{@docRoot}preview/bug">Issue Tracker</a>를 사용하세요.
-
-
- 업데이트 과정에서 일부 API가 변경될 수 있습니다.
-</p>
-
-<p>
-  <strong>Preview 4 및 5</strong>에서는 개발에 사용할 <strong>최종 N API 및 SDK</strong>와 최종 버전에 가까운 시스템 이미지에 액세스할 수 있으며, 시스템 동작과 기능을 테스트할 수 있습니다.
-
- 이 시점에서 Android N은 표준 API 레벨을 제공합니다.
- 레거시 앱의 최종 호환성 테스트를 시작할 수 있으며 N API 또는 기능을 사용하는 새 코드를 개선할 수 있습니다.
-
-</p>
-
-<p>
-  또한 Preview 4부터는 공식 API 레벨에서 Android N이 실행되는 <strong>기기(예: Android 베타 프로그램에 옵트인한 소비자 기기)에 앱을 게시</strong>할 수 있습니다.
-
- Google Play 알파 및 베타 채널에 먼저 게시할 수 있으므로, Play 스토어에 광범위하게 배포하기 전에 Android 베타 소비자를 통해 앱을 테스트할 수 있습니다.
-
-
-
-</p>
-
-<p>
-  Android N에서 테스트와 개발을 수행하는 동안, 프리뷰 업데이트가 출시되는 것에 맞춰 <strong>개발 환경을 최신 상태로 유지</strong>할 것을 적극 권장합니다.
-
- 이 과정을 손쉽게 진행하기 위해 테스트 기기를 Android 베타 프로그램에 등록하고 각 마일스톤에서 <strong>OTA 업데이트</strong>를 받을 수 있습니다.
-
- 또는 업데이트된 프리뷰 이미지를 수동으로 다운로드하고 플래시할 수도 있습니다.
-
-</p>
-
-<p>
-  프리뷰 업데이트가 제공될 때마다 <a href="http://android-developers.blogspot.com/">Android 개발자 블로그</a>, 이 사이트 및 <a href="{@docRoot}preview/dev-community">Android N 개발자 커뮤니티</a>를 통해서 알려드릴 것입니다.
-
-
-</p>
-
-
-<h2 id="preview_tools">N Developer Preview에 포함된 내용</h2>
-
-<p>
-  N Developer Preview에는
-기존 앱을 다양한 화면 크기, 네트워크 기술, CPU/GPU 칩셋
-및 하드웨어 아키텍처에서 테스트하는 데 필요한 모든 것이 포함되어 있습니다.
-</p>
-
-<h3 id="sdk_tools">SDK 도구</h3>
-
-<p>이러한 구성 요소는 <a href="{@docRoot}studio/intro/update.html">Android Studio</a>에서 SDK Manager를 통해 다운로드할 수 있습니다.</p>
-
-<ul>
-  <li> N Developer Preview <strong>SDK 및 도구</strong>
-  <li> N Developer Preview <strong>에뮬레이터 시스템 이미지</strong>(32비트 및 64비트)
-  <li> N Developer Preview <strong>Android TV용 에뮬레이터 시스템 이미지</strong>(32비트)
-  <li> N Developer Preview 지원 라이브러리(새로운 앱 템플릿용)
-</ul>
-
-<p>
-  필요에 따라 각 마일스톤에서 이러한 개발 도구를 업데이트할 것입니다.
-</p>
-
-<h3 id="hardware_system_images">하드웨어 시스템 이미지</h3>
-
-<p>
-  N Developer Preview에는 물리적 기기에서 테스트하고 개발할 때 사용할 수 있는 다른 하드웨어 시스템 이미지와 Nexus가 포함되어 있습니다.
- 하드웨어 이미지의 전체 목록을 보려면 <a href="{@docRoot}preview/download.html">기기 이미지</a> 페이지를 참조하세요.
-
-</p>
-
-<p>
-  각 마일스톤 때마다 이들 기기에 대한 업데이트된 시스템 이미지가 제공될 것입니다. 업데이트된 시스템 이미지를 필요한 만큼 자주 다운로드하여 테스트 기기에 수동으로 플래시할 수 있습니다.
-
- 이것은 기기를 여러 번 다시 플래시해야 하는 자동화된 테스트 환경에 특히 유용합니다.
-
-
-</p>
-
-<p class="note"><strong>참고</strong>:
-  <strong>수동으로 플래시된 기기는 지난 해 프리뷰와 마찬가지로 OTA 업데이트를 받지 못합니다</strong>.
- 올해에는 Android 베타 프로그램에 기기를 등록해야만 OTA 업데이트를 받을 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.
-
-</p>
-
-<h3 id="android_beta">Android 베타 프로그램을 통한 OTA 업데이트</h3>
-
-<p>
-  Android N에서는 프로그램에 등록한 기기에 Android N의 최신 프리뷰 업데이트를 자동으로 직접 전송해 주는 OTA(Over-the-Air) 업데이트 프로그램을 새로 도입했습니다.
-
- 이 프로그램은 무료이고 Google 계정에 등록된 지원 기기를 가지고 계신 사람이라면 누구나 사용할 수 있습니다.
-
-</p>
-
-<p>
-  프로그램에 등록하려면 <a href="https://g.co/androidbeta">Android 베타 프로그램</a> 사이트를 방문하세요.
- 계정에 등록된 기기 중에서 Android 베타에 등록할 수 있는 기기를 모두 확인할 수 있습니다.
-
-
-</p>
-
-<ol>
-  <li> Android N 업데이트를 받을 기기를 선택합니다.
-  <li> Enroll을 클릭하고 사용 약관을 읽고 동의한 후, OK를 클릭합니다.
-</ol>
-
-<p>
-  등록을 마치면 곧바로 기기에서 업데이트를 수신합니다. 대부분의 경우, Android N으로 전환하기 위해 데이터를 완전히 초기화할 필요는 없지만, 잃고 싶지 않은 데이터가 있다면 기기를 등록하기 전에 이 데이터를 백업하는 것이 좋습니다.
-
-
-
-</p>
-
-<p>
-  업데이트가 기기에 전송되면, 가급적 빨리 업데이트를 다운로드하고 설치하는 것이 좋습니다.
- 시스템 UI, 동작, API 및 기능의 최신 변경사항에 맞춰 기기를 최신으로 유지할 수 있습니다.
-
-</p>
-
-<p>
-  Developer Preview가 마무리되면, 귀하의 등록된 기기가 공식 Android N 릴리스 업데이트를 받게 됩니다.
-
-</p>
-
-<p>
-  Android 베타 사이트에서 언제든지 Android 베타 프로그램으로부터 기기 등록을 해제할 수 있습니다.
- 등록을 해제하기 전에 기기에서 데이터를 백업하세요.
-
-</p>
-
-  <p class="note"><strong>참고</strong>:
-  등록을 해제하면 Android 6.0 Marshmallow의 최신 버전(기기 등록 전에 설치한 버전이 아닐 수도 있음)으로 <strong>기기가 공장 초기화됩니다</strong>.
-
-
- 클린 설치를 위해서 연락처, 메시지, 사진 등의 데이터가 기기에서 지워집니다.
-
-
-</p>
-
-<h3 id="documentation_and_sample_code">문서 및 샘플 코드</h3>
-
-<p>
-  Developer Preview 사이트에서 다음과 같은 문서 리소스를 이용할 수 있으며,
-Android&nbsp;N에 대해 익히는 데 유용합니다.
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Android
-N용 개발 설정</a>에는
-시작하는 데 필요한 단계별 지침이 포함되어 있습니다.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">동작 변경 사항</a>에서는 테스트할 주요 영역을 알려줍니다.
-</li>
-  <li> 새 API에 관련된 문서 중에는 <a href="{@docRoot}preview/api-overview.html">API 개요</a>, 다운로드 가능한 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 참조</a> 그리고 다중 창 지원, 묶음 알림, 다중 로케일 지원 등과 같은 주요 기능에 대한 상세 개발자 가이드도 포함되어 있습니다.
-
-
-
-  <li> <a href="{@docRoot}preview/samples.html">샘플 코드</a>에서는 권한과 새로운 기타 기능을 지원하는 방법을 보여줍니다.
-
-  <li> <a href="{@docRoot}preview/support.html#release-notes">릴리스 노트</a>를
-보면 N Developer Preview의 현재 버전에 대한 변경 사항과 차이점 보고서 등 관련 정보를
-확인할 수 있습니다.
-</ul>
-
-<h4 id="reference">다운로드 가능한 API 참조</h4>
-
-<p>
-  초기 프리뷰 업데이트 중에, 최신 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Android N 플랫폼용 API 참조</a>를 별도의 zip 아카이브로 다운로드할 수 있습니다.
-
- 이 참조 다운로드에는 또한 API 23 및 이전 업데이트에서 API 변경사항을 확인하는 데 유용한 차이점 보고서도 포함되어 있습니다.
-
-
-</p>
-
-<p>
-  Android N API가 최종 버전이고 공식 API 레벨이 할당되면, 저희가 <a href="https://developer.android.com">https://developer.android.com</a>에서 온라인으로 API 참조를 제공해 드릴 것입니다.
-
-</p>
-
-<h3 id="support_resources">
-  지원 리소스
-</h3>
-
-<p>
-  N Developer Preview에서 테스트와 개발을 수행하면서 다음 채널을 활용하여 문제를 보고하고 피드백을 제공해 주세요.
-
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue Tracker</a>는 <strong>기본 피드백 채널</strong>입니다.
- Issue Tracker를 통해 버그, 성능 문제 및 전반적인 피드백을 보고할 수 있습니다.
- 또한, <a href="{@docRoot}preview/bugs">알려진 문제</a>를 확인하고 해결 방법을 찾을 수 있습니다.
-
- 여러분이 보고한 문제가 분류되어 Android 엔지니어링 팀에게 검토하도록 보내질 때마다 알림을 받으실 것입니다.
- </li>
-  <li> <a href="{@docRoot}preview/dev-community">Android N 개발자 커뮤니티</a>는
-일종의 Google+ 커뮤니티로,
-여기에서 여러분은 Android N으로 작업하는 <strong>다른 개발자들과 소통</strong>할 수 있습니다. 서로의 의견이나 아이디어를 나누고 Android N 관련 질문에 대한 대답을 찾을 수도 있습니다.
-저희는 커뮤니티를 조정하고 필요에 따라 답변과 지침을
-제공할 것입니다.</li>
-</ul>
-
-<h3 id="targeting">대상 지정, 프리뷰 API 및 게시</h3>
-
-<p>
-  N Developer Preview에서는 <strong>표준 API 레벨이 없는</strong> 개발 전용 시스템 및 Android
-라이브러리를 제공합니다. 앱을 테스트하기 위해 호환성 동작에서 옵트아웃하려는 경우(적극 권장), Android N의 프리뷰 버전을 대상으로 지정하면 됩니다. 앱의 <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>을 <code>“N”</code>으로 지정하세요.
-
-
-
-
-</p>
-
-<p>
-  Android N Developer Preview에서는 <strong>프리뷰 API</strong>를 제공합니다. 이 API는 최종 SDK가 출시될 때까지는 공식 버전이 아닙니다. 현재 최종 SDK 릴리스는 2016년 3분기로 예정되어 있습니다.
-
- 즉, 시간이 지나면서 특히 프로그램 시작 후 초기 몇 주 동안에는 <strong>사소한 API 변경이 있을 수 있습니다</strong>.
-
- Android N Developer Preview를 업데이트할 때마다 변경 사항을 요약하여 제공해 드릴 것입니다.
-
-</p>
-
-<p class="note">
-  <strong>참고</strong>: 프리뷰 API는 변경될 수 있지만, 기본 시스템 동작은 안정적이며 지금 바로 테스트가 가능한 상태입니다.
-
-
-</p>
-
-<p>
-  Google Play에서는 <strong>N Developer Preview를 대상으로 하는 앱의 게시를 금지합니다.</strong>
- Android N 최종 SDK를 사용할 수 있게 되면 공식 Android N API 레벨을 대상으로 지정하고, 알파 및 베타 릴리스 채널을 통해 Google Play에 앱을 게시할 수 있습니다.
-
- 그때까지는 Android N을 대상으로 하는 앱을 테스터에게 배포하려는 경우, 이메일이나 여러분의 사이트에서 직접 다운로드를 통해 하면 됩니다.
-
-
-</p>
-
-<p>
-  AOSP 및 OEM에 대한 Android N 전체 릴리스는 2016년 3분기로 예정되어 있습니다. 이때 Android N을 대상으로 하는 여러분의 앱을 Google Play의 공개 릴리스 채널에 게시할 수 있습니다.
-
-
-</p>
-
-
-<h2 id="how_to_get_started">시작 방법</h2>
-
-<p>
-  Android N으로 앱 테스트를 시작하려면:
-</p>
-
-<ol>
-  <li> <a href="{@docRoot}preview/api-overview.html">API 개요</a> 및 <a href="{@docRoot}preview/behavior-changes.html">동작 변경 사항</a>을 검토하여 새로운 사항과 이 사항이 여러분의 앱에 미치는 영향을 파악합니다.
-
- 특히, 새로운 <a href="{@docRoot}preview/features/notification-updates.html">알림</a> 기능과 <a href="{@docRoot}preview/features/multi-window.html">다중 창 지원</a>에 대해 알아봅니다.
-
-</li>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Preview SDK 설정</a> 및 테스트 기기 구성 지침에 따라 자신의 환경을 설정합니다.
-</li>
-  <li> <a href="https://developers.google.com/android/nexus/images">플래시
-지침</a>에 따라 자신의 기기용 최신 Android N Developer Preview 시스템 이미지를 플래시합니다. </li>
-  <li> <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 참조</a>와
-<a href="{@docRoot}preview/samples.html">Android N 샘플</a>을 검토하여 새로운 API 기능과 앱에서
-그러한 기능을 사용하는 방법에 대해 좀 더 자세히 파악합니다.
-  <li> <a href="{@docRoot}preview/dev-community">Android N 개발자
-커뮤니티</a>에 가입하여 최신 소식을 알아보고, 새 플랫폼으로 작업하는
-다른 개발자들과 이야기를 나눕니다.</li>
-</ol>
-
-<p>
-  Android N Developer Preview 프로그램에 참가해 주셔서 대단히 감사합니다!
-</p>
diff --git a/docs/html-intl/intl/ko/preview/preview_toc.cs b/docs/html-intl/intl/ko/preview/preview_toc.cs
deleted file mode 100644
index 116b855..0000000
--- a/docs/html-intl/intl/ko/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽"> 프로그램 개요</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html"> 지원 및 릴리스 노트</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK"> Preview 설정</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試"> 기기에 대한 테스트</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">동작 변경 사항</a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">백그라운드 최적화</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">언어 및 로케일 </a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers</a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援"> 다중 창 지원</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知"> 알림</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html"> Data Saver</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製"> TV 녹화</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定"> 네트워크 보안 구성</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API"> ICU4J 지원</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能"> Java 8 언어 기능</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html"> Android for Work 업데이트</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取"> 범위가 지정된 디렉터리 액세스</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例"> 샘플</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議"> 라이선스 계약</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/ko/preview/setup-sdk.jd b/docs/html-intl/intl/ko/preview/setup-sdk.jd
deleted file mode 100644
index c2a0380..0000000
--- a/docs/html-intl/intl/ko/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=Preview 설정
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Android Studio 2.1 가져오기</a></li>
-  <li><a href="#get-sdk">Android N SDK 가져오기</a>
-    <ol>
-      <li><a href="#docs-dl">참조 문서</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Java 8 JDK 가져오기</a></li>
-  <li><a href="#create-update">프로젝트 업데이트 또는 생성</a></li>
-  <li><a href="#next">다음 단계</a></li>
-</ol>
-  </div>
-</div>
-
-<p>Android N Preview용 앱을 개발하려면, 이 페이지의 설명에 따라
-개발자 환경을 약간 업데이트해야 합니다.</p>
-
-<p>Android N 시스템 이미지에서 앱의 호환성을 간단히
-테스트하려면, 가이드에 따라 <a href="{@docRoot}preview/download.html">Android N 기기에서 테스트</a>를 수행하세요.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Android Studio 2.1 가져오기</h2>
-
-<p>Android N 플랫폼에는 <a href="{@docRoot}preview/j8-jack.html">Java 8 언어 기능</a>에 대한 지원이 추가되었으며, 여기에는 Jack이라는 새 컴파일러가 필요합니다.
- 현재는 Android Studio 2.1에서만 최신 버전의 Jack이 지원됩니다. 따라서 Java 8 언어 기능을 사용하려면, Android Studio 2.1을 사용하여 앱을 빌드해야 합니다.
-
-
- 그렇지 않은 경우, Jack 컴파일러를 사용할 필요가 없지만 Android N 플랫폼에 대해 컴파일하려면 아래의 설명에 따라 JDK 8로 업데이트해야 합니다.
-
-</p>
-
-<p>Android Studio가 이미 설치된 경우 <strong>Help &gt; Check for Update</strong>(Mac의 경우, <strong>Android Studio &gt; Check for Updates</strong>)를 클릭하여 Android Studio 2.1 이상이 설치되어 있는지 확인해야 합니다.
-
-</p>
-
-<p>설치되어 있지 않은 경우 <a href="{@docRoot}studio/">여기서 Android Studio 2.1을 다운로드</a>하세요.
-</p>
-
-
-<h2 id="get-sdk">N Preview SDK 가져오기</h2>
-
-<p>Android N API를 사용한 개발을 시작하려면, 다음과 같이 Android N Preview SDK를 Android Studio에 설치해야 합니다.
-</p>
-
-<ol>
-  <li><strong>Tools &gt; Android &gt; SDK Manager</strong>를 클릭하여 SDK Manager를 엽니다.
-</li>
-
-  <li><strong>SDK Platforms</strong> 탭에서 <strong>Android N Preview</strong> 체크박스를 선택합니다.
-</li>
-
-  <li><strong>SDK Tools</strong> 탭을 클릭한 다음,
-<strong>Android SDK Build Tools</strong>, <strong>Android SDK
-Platform-Tools</strong>, <strong>Android SDK Tools</strong> 체크박스를
-선택합니다.
-  </li>
-
-  <li><strong>OK</strong>를 클릭한 다음, 설치해야 하는 패키지의
-사용권 계약에 동의합니다.
-  </li>
-</ol>
-
-<h3 id="docs-dl">N Preview 참조 문서 가져오기</h3>
-
-<p>
-  Android N API에 대한 자세한 내용은 N Preview 참조 문서에서 볼 수 있으며, 이 문서는 다음 표에서 다운로드할 수 있습니다.
-
-  이 패키지에는 요약된 오프라인 버전의 Android 개발자 웹사이트가 포함되어 있고, Android N API용의 업데이트된 API 참조 문서와 API 차이점 보고서가 포함되어 있습니다.
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">문서</th>
-    <th scope="col">체크섬</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">Java 8 JDK 가져오기</h2>
-
-<p>Android N 플랫폼에 대해 앱을 컴파일하고 Android Studio 2.1에서 일부 도구를 사용하려면 Java 8 개발자 키트(JDK 8)를 설치해야 합니다.
- 따라서 아직 최신 버전이 없는 경우, 지금 JDK 8을 다운로드하세요.
-</p>
-
-<p>그런 다음 Android Studio에서 다음과 같이 JDK 버전을 설정합니다.</p>
-
-<ol>
-  <li>Android Studio에서 Android 프로젝트를 열고 <strong>File &gt; Project Structure</strong>를 선택하여 Project Structure 대화 상자를 엽니다.
-
- (또는, <strong>File &gt; Other Settings &gt; Default Project Structure</strong>를 선택하여 모든 프로젝트에 대해 기본값을 설정할 수 있습니다.)
-
-
-   </li>
-   <li>대화 상자의 왼쪽 패널에서 <strong>SDK Location</strong>을 클릭합니다.
-   </li>
-   <li><strong>JDK Location</strong> 필드에,
-Java 8 JDK의 위치를 입력한 다음(오른쪽의 버튼을 클릭하여
-파일 탐색), <strong>OK</strong>를 클릭합니다.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">프로젝트 업데이트 또는 생성</h2>
-
-<p>
-  Android N API를 사용하려면, 프로젝트를 적절하게 구성해야 합니다.
-</p>
-
-<p>Java 8 언어 기능을 사용할 계획인 경우에는,
-<a href="{@docRoot}preview/j8-jack.html">Java 8 언어 기능</a>에서 지원되는 Java 8 기능과
-Jack 컴파일러로 프로젝트를 구성하는 방법에 대해서도
-읽어봐야 합니다.</p>
-
-
-<h3 id="update">기존 프로젝트 업데이트</h3>
-
-<p>자신의 모듈에 대한
-<code>build.gradle</code>파일을 열고 다음과 같이 값을
-업데이트합니다.
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">새 프로젝트 생성</h3>
-
-
-<p>Android N Preview SDK를 사용한 개발에서 새 프로젝트를 만들려면:</p>
-
-<ol>
-  <li><strong>File &gt; New Project</strong>를 클릭하고
-Target Android Devices 페이지가 나올 때까지 단계를 따릅니다.
-  </li>
-  <li>이 페이지에서 <strong>Phone and Tablet</strong> 옵션을 선택합니다.</li>
-  <li><strong>Phone and Tablet</strong> 옵션 아래의 <strong>Minimum
-SDK</strong> 옵션 목록에서
-<strong>N: Android API 23, N Preview (Preview)</strong>를 선택합니다.</li>
-</ol>
-
-
-<h2 id="next">다음 단계</h2>
-
-<ul>
-  <li>가이드에 따라 <a href="{@docRoot}preview/download.html">Android N 기기에서 테스트</a>를 수행합니다.</li>
-  <li><a href="{@docRoot}preview/behavior-changes.html">동작 변경 사항</a>
-및 <a href="{@docRoot}preview/api-overview.html">Android N API
-및 기능</a>에서 Android N 플랫폼에
-대해 자세히 알아봅니다.</li>
-</ul>
-
diff --git a/docs/html-intl/intl/ko/preview/support.jd b/docs/html-intl/intl/ko/preview/support.jd
deleted file mode 100644
index 3f83721..0000000
--- a/docs/html-intl/intl/ko/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=지원 및 릴리스 노트
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>이 문서의 내용</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">일반 권고 사항</a></li>
-      <li><a href="#new">DP3의 새로운 기능</a></li>
-      <li><a href="#ki">알려진 문제</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Android N Developer Preview를 사용하여 개발과 테스트를 수행할 때 두 가지 기본 지원 채널을 사용할 수 있습니다.
- 기기별 버그, 시스템 버그 및 Google 앱 버그의 경우 <a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a>에 버그를 제출하세요.
- 기타 앱의 문제는 개발자에게 직접 문의하세요.
-
-</p>
-
-<p>Android N을 사용하는 다른 개발자들과 문제 또는 아이디어를 논의하려면 <a href="{@docRoot}preview/dev-community">Developer Preview Google+ 커뮤니티</a>에 가입하세요.
-</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>날짜: 2016년 5월<br>
-        빌드: NPD35K<br>
-        에뮬레이터 지원: x86 및 ARM(32비트/64비트)<br>
-        Google Play 서비스: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">일반 권고 사항</h3>
-
-<p>
-  이 Developer Preview 릴리스는 <strong>앱 개발자 및 기타 얼리 어댑터</strong>를 위한 것이며, 일상적인 용도로 사용하거나, 개발 또는 호환성 테스트에 사용할 수 있습니다.
-
- 이 릴리스에 대한 다음과 같은 일반적인 참고 사항을 숙지하시기 바랍니다.
-
-</p>
-
-<ul>
-  <li>이 릴리스에서는 지원되는 기기에서 다양한 <strong>안정성 문제</strong>가 있을 수 있습니다.
- 사용자는 커널 패닉 및 작동 중단 등의 시스템 불안정 문제를 겪을 수 있습니다.
-
-  </li>
-
-  <li>일부 앱의 경우 새로운 플랫폼 버전에서 <strong>예상과 다르게 작동할 수 있습니다</strong>.
- 여기에는 Google 앱뿐만 아니라 다른 앱도 포함됩니다.
-  </li>
-
-  <li>Developer Preview 3는 Nexus 5X, Nexus 6, Nexus 6P 및 Pixel C 기기에서 <strong>CTS(Compatibility Test Suite) 승인을 받았습니다</strong>.
- CTS 승인 빌드를 사용하는 앱은 이들 기기에서 정상적으로 작동해야 합니다(예: Android Pay).
-
-
-  </li>
-
-  <li>Developer Preview 3는 <strong>지원되는 모든 기기에서 사용할 수 있습니다.</strong>
- 이러한 기기로는 Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel C, General Mobile 4G(Android One) 뿐만 아니라 Sony Xperia Z3(D6603 및 D6653 모델)가 포함됩니다.
-
-
-
-  </li>
-</ul>
-
-
-<h3 id="new">DP3의 새로운 기능</h3>
-
-<h4 id="">Android용 VR 모드</h4>
-
-<p>
-  Android N에서는 개발자가 사용자를 위한 고품질 모바일 VR 환경을 만들 수 있도록 새로운 VR 모드에 대한 플랫폼 지원과 최적화 기능을 추가했습니다.
- VR 앱 전용 CPU 코어에 대한 액세스를 비롯하여, 다수의 성능 개선 사항이 있습니다.
-
- 지능적 머리 추적과 VR용으로 작동하는 스테레오 알림 기능을 앱 내에서 이용할 수 있습니다.
- 가장 중요한 점은, 지연 시간이 매우 짧은 그래픽을 Android N이 제공한다는 사실입니다.
-
-</p>
-
-<p>
-  자세한 내용은 <a href="https://developers.google.com/vr/android/">Android용 Google VR SDK</a>를 참조하세요.
-</p>
-
-<h4 id="">지속적인 성능 모드</h4>
-
-<p>
-  Android N에는 <a href="{@docRoot}preview/api-overview.html#sustained_performance_api">지속적인 성능 모드</a>를 위한 지원 기능(선택 사항)이 포함되어 있으며, 이 모드를 통해 OEM들은 장시간 실행되는 애플리케이션의 기기 성능에 대한 힌트를 제공할 수 있습니다.
-
- 앱 개발자는 이런 힌트를 사용하여 장기간에 걸쳐 기기 성능을 예측 가능하고 일관된 수준으로 유지하기 위해 애플리케이션을 적절히 조정할 수 있습니다.
-
- 앱 개발자는 Developer Preview에 있는 이 새 API를 Nexus 6P 기기에서만 시험해 볼 수 있습니다.
-
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  Android N의 버전 51부터는 개발자 옵션 "Multiprocess WebView"가 활성화된 경우, WebView는 별도의 샌드박싱된 프로세스에서 웹 콘텐츠를 실행합니다.
-
- WebView 팀은 향후 Android 버전에서 Multiprocess WebView를 지원하기 전에 N에서의 호환성 및 런타임 성능에 대한 피드백을 기다리고 있습니다.
-
- 이 버전에서는 시작 시간, 총 메모리 사용량 및 소프트웨어 렌더링 성능에 관련된 성능 저하가 예상됩니다.
-
-</p>
-
-<p>
-  다중 프로세스 모드에서 예상치 못한 문제를 발견할 경우 이에 대해 알려주시기 바랍니다.
- <a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">버그 제출</a>을 통해 WebView 팀에 연락하세요.
-
-</p>
-
-<h4 id="">Keyboard Shortcuts Helper</h4>
-
-<p>
-  Android N에서는 사용자가 <code>Meta+/</code> 키를 눌러 <strong>Keyboard Shortcuts</strong> 화면을 트리거할 수 있으며, 이 화면에는 시스템과 해당 앱에서 둘다 사용할 수 있는 모든 바로 가기가 표시됩니다.
-
- 개발자는 자신의 바로 가기를 추가하거나 앱에서 Shortcuts 화면을 트리거할 수 있습니다.
- 자세한 내용은 <a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Keyboard Shortcuts Helper</a>를 참조하세요.
-
-</p>
-
-<h4 id="">FrameMetrics API</h4>
-
-<p>
-  DP3에서는 새로운 <a href="{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>를 추가했으며, 이를 통해 앱은 애플리케이션의 현재 창에 대한 프레임 타이밍 정보를 전송하기 위해 스트리밍 PubSub API를 노출함으로써 앱의 UI 렌더링 성능을 모니터링할 수 있습니다. <code>FrameMetricsListener</code>를 사용하면 USB 연결 없이 프로덕션 환경에서 상호 작용 수준의 UI 성능을 더욱 정밀하게 측정할 수 있습니다.
-
-
-
-
-
-</p>
-
-<h4 id="api-changes">기능 및 API 변경 사항</h4>
-
-<dl>
-  <dt>
-    런처 바로 가기 및 런처 바로 가기 API
-  </dt>
-
-  <dd>
-    이 기능은 향후 Android 릴리스로 미루기로 결정되었습니다. 차기 Developer Preview부터는 런처 바로 가기 API(ShortcutManager 등)가 공개 Android N API에서 삭제될 계획입니다.
-
-
-  </dd>
-
-  <dt>
-    페이지 로드 전에 WebView Javascript 실행
-  </dt>
-
-  <dd>
-    Android N을 대상으로 하는 앱부터는 새 페이지가 로드될 때 Javascript 컨텍스트가 초기화됩니다.
- 현재는 새 {@link android.webkit.WebView} 인스턴스에 로드된 첫 페이지에 대해 컨텍스트가 이월됩니다.
-
-    Javascript를 {@link android.webkit.WebView}에 삽입하려는 개발자는 페이지 로드가 시작된 후에 스크립트를 실행해야 합니다.
-
-
-  </dd>
-
-  <dt>
-    비보안 출발지에서의 WebView Geolocation
-  </dt>
-
-  <dd>
-    Android N을 대상으로 하는 앱부터는 보안 출발지(HTTPS를 통함)에서만 Geolocation API가 허용됩니다.
- 이 정책은 사용자가 비보안 연결을 사용하는 경우 사용자의 개인 정보를 보호할 목적으로 설계되었습니다.
-
-  </dd>
-
-  <dt>
-    Data Saver
-  </dt>
-
-  <dd>
-    Developer Preview 3부터는 앱이 인텐트를 사용하여 시스템 대화 상자를 표시할 수 있습니다. 사용자는 이 대화 상자를 통해 Data Saver 면제 허용 목록에 앱을 직접 추가할 수 있습니다.
-
- 자세한 내용은 <a href="{@docRoot}preview/api-overview.html#data_saver">Data Saver 문서</a>를 참조하세요.
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">번호 차단</a>
-  </dt>
-
-  <dd>
-    권한 없는 사용자가 번호를 차단하거나 차단 해제하려고 시도하면 이제 {@link java.lang.SecurityException}이 발생하고 작업이 실패합니다.
- (이전에는 작업에서 {@link java.lang.UnsupportedOperationException}을 발생시켰습니다.)
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">Quick Settings 타일 API</a>
-
-  </dt>
-
-  <dd>
-    이제 시스템에서는 액티비티의 메타데이터를 사용하여 타일 모드를 결정합니다.
-    (이전에는 <code>TileService.onTileAdded()</code>의 반환 값으로 타일 모드가 결정되었습니다.)
- 자세한 내용은 다운로드 가능한 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 참조</a>에서 <code>TileService.META_DATA_ACTIVE_TILE</code>을 참조하세요.
-
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">개발자가 보고한 문제의 수정 사항</h4>
-
-<p>
-  다음을 비롯하여 개발자가 보고한 여러 문제가 수정되었습니다.
-</p>
-
-<ul>
-  <li>노래가 하나 끝난 후 블루투스 오디오 재생이 중단됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
-  </li>
-
-  <li>Pixel C가 지속적으로 작동 중단됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
-  </li>
-
-  <li>시계 및 알림 메시지의 알림 문제(버그 <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
-  </li>
-
-  <li>USB C 케이블을 통해 MacBook Pro에 연결된 경우 Pixel C가 재부팅됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
-
-  </li>
-
-  <li>캘린더가 하루 오프셋됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo가 잘못된 데이터를 반환함(버그 <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
-  </li>
-
-  <li>Nexus 6P, 블루투스의 연결이 계속 끊김(버그 <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
-  </li>
-</ul>
-
-<p>수정된 문제의 전체 목록을 보려면 <a href="https://goo.gl/6uCKtf">Issue Tracker</a>를 참조하세요.
-</p>
-
-<h3 id="ki">알려진 문제</h3>
-
-<h4>접근성</h4>
-
-<ul>
-  <li>피치가 최대 수준에 가깝게 설정된 경우 TTS 출력을 들을 수 없습니다.
-  </li>
-
-  <li>확대 제스처 및 설정을 비롯한 접근성 기능 및 설정은 사용자가 작업 프로필을 추가하는 경우 중단될 수 있습니다.
- 접근성 상태는 사용자가 관련 설정을 다음 번에 터치할 때 복구됩니다.
-
-  </li>
-</ul>
-
-<h4>카메라</h4>
-
-<ul>
-  <li>카메라 앱이 불안정한 작동을 보였습니다. 이 앱은 다양한 경우(예: 다중 창 모드에서 실행되는 경우) 작동이 중단될 수 있습니다.
-
-  </li>
-
-  <li>파노라마 모드에서 셔터를 계속해서 누르면 카메라 앱의 작동이 중단될 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>오디오</h4>
-<ul>
-  <li>플랫폼의 오디오 플레이어 문제로 인해 일부 앱이 정상적으로 작동하지 않습니다.
- 예를 들어, Skype 및 기타 앱이 이 문제의 영향을 받습니다.
-  </li>
-</ul>
-
-<h4>연결</h4>
-
-
-<ul>
-  <li>블루투스 저전력(Bluetooth Low Energy, BLE) 주변 역할 기기가 서비스를 알리고 있는데 BLE 중앙 역할 기기가 연결되면, 주변 역할 기기가 즉각적으로 연결을 해제합니다.
-
-
-  </li>
-
-  <li>화면이 꺼지면 Wi-Fi 연결이 끊길 수 있습니다.
-  </li>
-
-  <li>RFCOMM 연결이 불안정하며, 이로 인해 데이터 손상 및 연결 자주 끊김이 발생할 수 있습니다.
-
-  </li>
-
-  <li>일부 제한된 백그라운드 시나리오 중에, 활성 네트워크 상태({@link android.net.NetworkInfo#getState NetworkInfo.getState()} 및 {@link android.net.NetworkInfo#getDetailedState NetworkInfo.getDetailedState()})가 잘못된 값을 반환할 수 있습니다.
-
-
-
-  </li>
-</ul>
-
-
-<h4>
-  런처
-</h4>
-
-<ul>
-  <li>화면이 꺼졌다가 켜진 후 기본 런처의 All Apps 트레이가 응답하지 않을 수 있습니다.
- 홈 화면으로 돌아간 후 All Apps 트레이를 다시 실행하면 이 문제가 해결될 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>
-  키보드
-</h4>
-
-<ul>
-  <li>Android 6.0 이전 버전이 실행되는 기기를 N Developer Preview로 업데이트하는 경우, Google 키보드가 최신 그림 이모티콘 및 소리 설정과 같은 기본 설정 데이터를 유지하지 않습니다.
-
-
-  </li>
-
-  <li>Google Indic Managed Keyboard는 불안정할 수 있습니다.
-  </li>
-
-  <li>비밀번호 필드에 텍스트를 입력할 때 사용자가 러시아어를 입력 언어로 선택할 수 있지만 키보드는 계속 영어를 유지합니다.
- 이로 인해 사용자가 러시아어 언어로 암호를 입력할 수 없습니다.
-
-  </li>
-</ul>
-
-<h4>
-  로케일 및 언어
-</h4>
-
-<ul>
-  <li>오른쪽에서 왼쪽으로 읽기(RTL) 로케일을 사용하는 경우, 기기를 재시작한 후 예기치 않게 왼쪽에서 오른쪽으로 읽기(LTR) 표시로 시스템이 전환될 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>미디어</h4>
-
-<ul>
-  <li>HD 비디오 재생 문제를 비롯하여, Nexus 9 및 Nexus Player에서 미디어 재생이 불안정할 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>
-  다중 창 모드
-</h4>
-
-<ul>
-  <li>다중 창 모드에서 방향을 변경하면 기기가 작동을 멈출 수 있습니다.
-  </li>
-
-  <li>현재 여러 앱에서 다중 창 모드와 관련하여 문제가 있습니다.
-    <ul>
-      <li>Settings &gt; Display &gt; Screen brightness를 다중 창에 도킹하면 시스템 UI의 작동이 중단될 수 있습니다.
-
-      </li>
-
-      <li>카메라 앱을 다중 창 모드에서 실행하면 작동이 중단될 수 있습니다.
-      </li>
-
-      <li>YouTube를 다중 창 모드에서 실행하면 작동이 중단될 수 있습니다. Storage &gt; Apps &gt; YouTube에서 YouTube 앱 데이터를 지워서 이 문제를 수정할 수 있습니다.
-
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play 서비스
-</h4>
-
-<ul>
-  <li>Google Play 서비스를 통해 Google Cast를 사용하는 앱의 경우, ASCII 범위에 속하지 않는 글자 및 숫자를 사용하는 시스템 로케일을 사용자가 선택하면 앱이 불안정해질 수 있습니다.
-
-
-  </li>
-</ul>
-
-<h4>
-  Android for Work 및 Google Apps Device Policy
-</h4>
-
-<ul>
-  <li>사용자가 "device policy status" 화면이 고정된 상태로 기기의 잠금을 해제할 경우, Device Policy 앱의 작동이 중단될 수 있습니다.
-
-  </li>
-
-  <li>파일 기반 암호화가 설정된 채로 작업 프로필을 설정하고, Work를 끈 후에 사용자가 다시 한 번 더 기본 프로필 화면 잠금을 해제하여 Work 앱에 액세스해야 합니다.
-
-
-  </li>
-
-  <li>보안 패턴 잠금을 제거하고 업무용 앱/개인 앱을 다중 창에서 열면 기기가 재부팅됩니다.
-
-  </li>
-
-  <li>DISALLOW_VPN_CONFIG를 설정하면 Device Policy Client에 의해 설정되는 상시 접속 VPN 모드에 동의 대화 상자가 나타납니다.
-
-  </li>
-
-  <li>VPN이 상시 접속 VPN 모드에서 연결될 때까지는 트래픽이 잠기지 않습니다.
-  </li>
-</ul>
-
-<h4>
-  외부 저장소
-</h4>
-
-<ul>
-  <li>사용자가 앱을 내부 저장소에서 채택 가능 외부 저장소(SD 카드 또는 USB를 통해 연결된 기기 포함)로 이동하면 앱이 불안정해질 수 있습니다.
-
-
-  </li>
-</ul>
-
-<h4>
-  Google Play에서의 화면 확대/축소 및 다중 APK
-</h4>
-
-<ul>
-  <li>Android N이 실행되는 기기에서 Google Play 서비스 9.0.83은 안정적인 화면 밀도 대신 현재 화면 밀도를 잘못 보고합니다.
- 이러한 기기에서 화면 확대/축소가 활성화된 경우, 이로 인해 Google Play는 더 작은 화면용으로 설계된 다중 APK 앱의 버전을 선택할 수가 있습니다.
-
- 이 문제는 차기 버전의 Google Play 서비스에서 수정되었으며, 나중에 Developer Preview 릴리스에 포함될 것입니다.
-
-
-  </li>
-
-  <li>Android N이 실행되는 기기에서 현재 Google Play 서비스 9.0.83은 Vulkan 버전이 아닌 Vulkan 지원을 보고합니다.
- 이로 인해 Google Play는 더 높은 버전이 지원되는 기기에서 더 낮은 Vulkan 지원용으로 설계된 다중 APK 앱의 버전을 선택할 수가 있습니다.
-
- 현재 Google Play Store에서는 Vulkan 버전 대상 지정을 사용하는 앱의 업로드를 허용하지 않습니다.
- 이 지원은 향후에 Google Play Store에 추가될 예정이고 차기 버전의 Google Play 서비스에서 수정되어 나중에 Developer Preview 릴리스에 포함될 것입니다. Google Play 서비스 9.0.83 버전을 사용하는 모든 N 기기는 기본 Vulkan 지원을 대상으로 하는 앱의 버전을 계속해서 수신합니다.
-
-
-
-
-  </li>
-</ul>
-
-<h4 id="">알림</h4>
-
-<ul>
-  <li>MessagingStyle에서는 "null"(본인 자신) 발신자인 알림을 표시하지 않습니다.
-  </li>
-</ul>
-
-<h4 id="">개발자 도구</h4>
-
-<ul>
-  <li>
-    JDWP 디버깅을 사용하는 중에 <code>adb</code>의 연결이 가끔씩 끊길 수 있습니다.
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>날짜: 2016년 4월<br>
-        빌드: NPC91K, NPC91O<br>
-        에뮬레이터 지원: x86 및 ARM(32비트/64비트)<br>
-        Google Play 서비스: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">DP2의 새로운 기능</h3>
-
-<ul>
-  <li>Vulkan에 대한 플랫폼 지원. Vulkan은 새로운 3D 렌더링 API이며, 낮은 오버헤드의 명시적 GPU(Graphics Processor Unit, 그래픽 처리 장치) 컨트롤을 제공하고 그리기 호출이 잦은 애플리케이션에 향상된 성능을 제공합니다.
-
- 자세한 내용은 <a href="{@docRoot}ndk/guides/graphics/index.html">문서</a>를 참조하세요.
-
-  </li>
-
-  <li>피부 색조를 지원하는 새로운 사람 그림 이모티콘 및 새로운 유니코드 9 문자 모양.
-  피부 색조 및 새로운 그림 이모티콘은 키보드에 의해 이들 기능에 대한 지원이 색상표에 구축될 때까지는 표시되지 않습니다.
- 시스템에서 제공하지 않는 글꼴을 사용하지 않는 한, 앱은 이러한 새로운 그림 이모티콘을 활용하기 위해 어떠한 작업도 수행할 필요가 없습니다.
- IME 개발자는 새로운 그림 이모티콘에 대한 지원을 포함시켜야 합니다.
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">런처 바로 가기 API</a>:
- 앱은 <code>ShortcutManager</code>를 사용하여 해당 앱 내부의 시작점에 대한 바로 가기를 런처로 전송할 수 있습니다.
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">다중 창</a>:
-    이제 액티비티에 대해 최소 높이와 최소 너비를 별도로 지정할 수 있습니다.
- 또한, 여러 가지 API 이름이 약간 변경되었습니다.
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">개발자가 보고한 문제의 수정 사항</h4>
-
-<p>
-  다음을 비롯하여 개발자가 보고한 여러 문제가 수정되었습니다.
-</p>
-
-<ul>
-  <li>숨겨진 SSID 또는 비-브로드캐스트 Wi-Fi에 연결할 수 없음(버그 <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>)
-  </li>
-
-  <li>마이크 음소거 상태가 액티비티 간에 유지됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>)
-  </li>
-
-  <li>다중 창의 포커스를 변경하면 YouTube가 일시 중지됨(버그 <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>)
-  </li>
-
-  <li>열려 있는 액티비티를 직접 회신으로 닫을 수 있음(버그 <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>)
-  </li>
-
-  <li>다양한 안정성 문제 수정
-  </li>
-</ul>
-
-<h3 id="dp2-general">일반 권고 사항</h3>
-
-<p>
-  이 Developer Preview 릴리스는 <strong>앱 개발자 전용</strong>이며, 호환성 테스트 및 조기 개발 용도로만 사용하도록 설계되었습니다.
-
-  이 릴리스에 대한 다음과 같은 일반적인 참고 사항을 숙지하시기 바랍니다.
-</p>
-
-<ul>
-
-  <li>개발 도구 구성 요소 및 지원 라이브러리가 DP2 릴리스에 대해 업데이트되었습니다.
- DP2용으로 개발하기 전에 Preview 개발 환경을 업데이트해야 합니다.
- 개발 환경을 설정하는 방법에 대한 지침은 <a href="{@docRoot}preview/setup-sdk.html">Preview 설정</a>을 참조하세요.
-
-
-  </li>
-
-  <li>이 릴리스의 경우 모든 기기에서 다양한 안정성 및 성능 문제가 있으므로 <strong>전화 또는 태블릿에서 일상적으로 사용하는 데 적합하지 않으며</strong>, 특히 개발자가 아닌 일반 사용자가 사용하기에 적합치 않습니다.
-
-
-  </li>
-
-  <li>배터리 수명 및 성능은 이 릴리스에서 아직 최적화되지 않았습니다.
-
-
-    <ul>
-      <li>시스템 및 앱 <strong>성능이 주기적으로 느려지고 저하되는 것으로 확인되었으며</strong>, 기기가 가끔씩 응답을 멈출 수 있습니다.
- 이러한 문제는 장기 사용 시 더 심해질 수 있습니다.
-
-      </li>
-
-      <li>이 릴리스에서 화면을 켜고 끄는 과정에서 배터리 수명이 감소할 수 있습니다.
-
-      </li>
-    </ul>
-  </li>
-
-  <li>일부 앱의 경우 Developer Preview 2에서 <strong>정상적으로 작동하지 않을 수 있습니다</strong>. 여기에는 Google 앱뿐만 아니라 다른 앱도 포함됩니다.
-
-  </li>
-
-  <li>이 조기 빌드는 <strong>CTS(Compatibility Test Suite) 승인</strong>을 받지 않았습니다.
- CTS 승인을 받은 빌드를 사용하는 앱은 작동하지 않습니다(예: Android Pay).
-
-  </li>
-
-  <li>이 프리뷰 릴리스에서는 Nexus 5X, Nexus 6, Nexus 6P, Nexus 9 및 Pixel C 뿐만 아니라 General Mobile 4G(Android One) 기기를 지원합니다.
-
- Nexus Player 지원은 곧 추가될 것입니다.
-  </li>
-
-
-  <li><a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>는 DP1 및 DP2 사이의 API 변경 사항을 처리하도록 업데이트되었습니다.
-
-  </li>
-</ul>
-
-<h3 id="dp2-ki">알려진 문제</h3>
-
-<h4>성능 및 배터리</h4>
-
-<ul>
-  <li>시스템 및 앱 성능이 <strong>주기적으로 느려지고 저하</strong>되는 것으로 확인되었으며, 기기가 가끔씩 응답을 멈출 수 있습니다.
- 이러한 문제는 장기 사용 시 더 심해질 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>Google 계정</h4>
-
-<ul>
-  <li>경우에 따라 <code>AccountManagerService</code>와 관련된 문제가 있을 수 있으며, 이로 인해 Google 계정에 로그인하지 못할 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>시스템 업데이트</h4>
-
-<ul>
-  <li>DP2로 업데이트한 후 즉시 기기가 재시작될 수 있습니다.
-  </li>
-</ul>
-
-<h4>접근성</h4>
-
-<ul>
-  <li>피치가 최대 수준에 가깝게 설정된 경우 TTS(텍스트 음성 변환) 출력을 듣는 데 문제가 있습니다.
-
-  </li>
-</ul>
-
-<h4>블루투스</h4>
-
-<ul>
-  <li>블루투스 저전력(LE) GATT 특성이 잘못된 쓰기 유형을 사용하며 원격 기기로 전송되지 않습니다.
- 이에 따라 예를 들면 일부 피트니스 기기가 작동하지 않습니다.
-
-  </li>
-</ul>
-
-<h4>설정 마법사</h4>
-
-<ul>
-  <li>"Your Google Account"에서 새 기기(또는 새롭게 초기화된 기기)의 데이터를 복원하는 옵션이 설정 마법사에서 작동하지 않습니다.
- 설정 마법사에서 "다른 Android 기기"를 선택하여 기존 기기의 데이터를 복원하거나, 기존 기기를 새 기기로 설정해야 합니다.
-
-
-  </li>
-</ul>
-
-<h4>OEM 잠금 해제</h4>
-
-<ul>
-  <li>일부 기기에서, DP2를 실행하는 동안 "Developer Options"에서 <strong>Enable OEM unlock</strong>이 비활성화됩니다.
-<br>
-  <strong>해결 방법:</strong> <a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a>를 방문하여 Android 베타 프로그램에 옵트인합니다(아직 옵트인하지 않은 경우).
-
- 그런 다음 옵트아웃하고 다운그레이드 OTA를 수락합니다.
- 옵트아웃하면 기기가 Android 6.0으로 다운그레이드됩니다. 이제 "Developer Options"에서 <strong>Enable OEM unlock</strong>을 선택할 수 있을 것입니다.
-
- 기기를 다운그레이드하면 개인 데이터가 삭제되지만, 부트로더의 잠금을 해제하는 경우에도 이 데이터가 삭제됩니다.
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>작업 보안 인증 질문
-    <ul>
-      <li>N으로 마이그레이션한 후나 사용자가 작업 프로필을 생성한 후에, 사용자가 자신의 패턴, PIN 또는 비밀번호를 변경하거나 작업 인증 질문을 설정할 때까지는 작업 프로필에서 키 저장소에 키를 생성할 수 없습니다.
-
-
-      </li>
-
-      <li>직접 부팅 모드에서 비밀번호 제한을 기기에 적용하면, 기기가 잠겨 있는 경우에도 작업 프로필의 잠금이 해제됩니다.
-
-      이로 인해 작업 프로필이 기기 잠금 화면으로 보호되어야 하는 경우에도 작업 프로필에 액세스할 수 있게 됩니다.
-
-      </li>
-    </ul>
-  </li>
-
-  <li>상시 접속 VPN
-    <ul>
-      <li>상시 접속 VPN 모드가 설정되었는데도 VPN을 사용할 수 없는 경우, 앱이 일반 네트워크를 통해 연결합니다.
- VPN 연결을 사용할 수 없는 경우 앱은 오프라인이어야 합니다.
-
-      </li>
-
-      <li>상시 접속 모드가 설정된 경우 사용자가 보안 잠금 화면의 잠금을 해제한 후에도, 기기가 직접 부팅 모드로 재부팅된 후 VPN 연결이 설정되지 않습니다.
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>패키지 일시 중단
-    <ul>
-      <li>기기 관리자는 예상치 못한 동작(예: "Telephone disabled" 대화 상자가 표시되어 있는데도 전화가 걸림)을 초래할 수 있는 중대한 시스템 패키지를 일시 중단시킬 수 있습니다.
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>기타
-    <ul>
-      <li>{@link android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA}가 true로 설정된 경우, 사용자가 SD 카드와 같은 물리적 미디어를 삽입하면 Settings 앱이 실행 시에 작동을 멈춥니다.
-
-
-      </li>
-
-      <li>작업 프로필의 첫 번째 체크인은 완료되는 데 몇 분 정도 걸립니다.
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>바인딩 번호와 0이 아닌 첫 번째 바인딩 번호 사이에 격차가 있는 경우 {@code vkCreateGraphicsPipeline()}이 실패합니다.
-</li>
-      <li>투영된 텍스처 좌표에서 Vulkan이 잘못된 샘플링 동작을 보입니다.</li>
-      <li>multithreadCmdBuffer 샘플에서 N-DP2 드라이버와 함께 실행되는 경우 {@code vkCmdClearColorImage()}가 작동을 중단합니다.
-</li>
-      <li>{@code vkGetPhysicalDeviceFormatProperties()}의 반환 값은 결과로 0 값을 취하는 {@code VkFormatProperties::linearTilingFeatures}의 값을 설정하지 않습니다.
-
-</li>
-      <li>Vulkan 부동 소수점 프레임 버퍼 첨부 파일이 올바르게 처리되지 않습니다.</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>SPIR-V 셰이더가 드라이버 어설션을 트리거할 수 있습니다.</li>
-      <li>일부 파이프라인 구성에서는 {@code vkCreateGraphicsPipeline()}이 작동을 중단할 수 있습니다.
-</li>
-  </ul>
-</ul>
-
-<h4>기기별 문제</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    기기가 슬롯 1에서 슬롯 2 SIM으로 전환된 경우 데이터 연결이 실패합니다.
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    음성 검색 "Always On" 옵션을 전환할 수 없습니다.
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    HDR+ 사진을 제외하고, 세로 방향의 카메라 사진이 손상됩니다.
-
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    Nexus Player에서 Netflix HD 콘텐츠의 재생이 실패할 수 있습니다.
-  </dd>
-
-  <dd>
-    동적 비디오 해상도 변경에 의존하는 모든 애플리케이션이 Nexus Player에서 실패할 수 있습니다.
-
-  </dd>
-
-  <dd>
-    VP9 비디오 코덱을 사용하는 모든 애플리케이션이 Nexus Player에서 실패할 수 있습니다.
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>날짜: 2016년 3월<br>
-        빌드: NPC56P, NPC56R, 업데이트됨: NPC56W, NPC56X<br>
-        에뮬레이터 지원: x86 및 ARM(32비트/64비트)<br>
-        Google Play 서비스: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">일반 권고 사항</h3>
-
-<p>
-  이 Developer Preview 릴리스는 앱 개발자 전용이며, 호환성 테스트 및 조기 개발 용도로만 사용하도록 설계되었습니다.
- 이 릴리스에 대한
-  다음과 같은 일반적인 참고 사항을 숙지하시기 바랍니다.
-</p>
-<ul>
-  <li>이 릴리스의 경우 모든 기기에서 다양한 안정성 및 성능 문제가 있으므로 <em>전화 또는 태블릿에서 일상적으로 사용하는 데 적합하지 않으며</em>, 특히 개발자가 아닌 일반 사용자가 사용하기에 적합치 않습니다.
-
-
-  </li>
-
-  <li>시스템 및 앱 성능이 <strong>주기적으로 느려지고 저하</strong>되는 것으로 확인되었으며, 기기가 가끔씩 응답을 멈출 수 있습니다.
- 이러한 문제는 장기 사용 시 더 심해질 수 있습니다.
-
-  </li>
-
-  <li>이 릴리스에서 화면을 켜고 끄는 과정에서 배터리 수명이 감소할 수 있습니다.
-
-  </li>
-
-  <li>일부 앱의 경우 Developer Preview 1에서 정상적으로 작동하지 않을 수 있습니다.
-여기에는 Google 앱뿐만 아니라 다른 앱도 포함됩니다.
-  </li>
-
-  <li>이 조기 빌드는 CTS(Compatibility Test Suite) 승인을 받지 않았습니다. CTS 승인을 받은 빌드를 사용하는 앱은 작동하지 않습니다(예: Android Pay).
-
-  </li>
-
-  <li>이 프리뷰 릴리스에서는 Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player 및 Pixel C 뿐만 아니라 General Mobile 4G(Android One) 기기를 지원합니다.
-
-
-  </li>
-</ul>
-
-<h3 id="dp1-platform">플랫폼 문제</h3>
-
-<h4>성능 및 배터리</h4>
-
-<ul>
-  <li>시스템 및 앱 성능이 <strong>주기적으로 느려지고 저하</strong>되는 것으로 확인되었으며, 기기가 가끔씩 응답을 멈출 수 있습니다.
- 이러한 문제는 장기 사용 시 더 심해질 수 있습니다.
-
-  </li>
-
-  <li>이 릴리스에서 화면을 켜고 끄는 과정에서 배터리 수명이 감소할 수 있습니다.
-
-  </li>
-</ul>
-<h4 id="dialer">다이얼러</h4>
-
-<ul>
-  <li>Dialer 앱이 직접 부팅을 지원하지 않습니다. 이 문제는 N Developer Preview에서 나중에 해결될 것입니다.
-
-  </li>
-
-  <li>음성사서함 재생이 작동하지 않습니다.
-  </li>
-</ul>
-
-<h4>마이크</h4>
-
-<ul>
-   <li>앱 및 재부팅에 걸쳐 시스템이 마이크 음소거 상태를 잘못 유지할 수 있습니다. 앱에서 마이크를 음소거하고 그 상태가 유지되는 경우, 마이크 음소거 컨트롤이 있는 앱을 열고 마이크의 음소거를 해제하세요.</li>
-</ul>
-
-<h4 id="ui">시스템 UI</h4>
-
-<ul>
-  <li>시스템 UI에서 새로운 문자열이나 수정된 일부 문자열이 모든 언어로 번역되어 있지 않습니다.
-
-  </li>
-
-  <li>Overview UI는 여전히 개발 중에 있으므로 변경될 수 있습니다. 예를 들어, 사용자가 앱 사이를 전환할 때 나타나는 타이머를 저희가 삭제할 계획입니다.
-
-
-  </li>
-
-  <li>설정 컨트롤 및 토글이 느리거나 응답이 없는 것으로 나타날 수 있습니다.
-  </li>
-
-  <li>알림의 시각적 디자인이 변경될 수 있습니다.
-  </li>
-
-  <li>Gmail 앱에서, 알림 번들에 포함된 이메일의 직접 아카이빙 기능이 제대로 작동하지 않습니다.
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>작업 보안 인증 질문
-    <ul>
-      <li>N으로 마이그레이션한 후나 사용자가 작업 프로필을 생성한 후에, 사용자가 자신의 패턴, PIN 또는 비밀번호를 변경하거나 작업 인증 질문을 설정할 때까지는 작업 프로필에서 키 저장소에 키를 생성할 수 없습니다.
-
-
-      </li>
-
-      <li>직접 부팅 모드에서 비밀번호 제한을 기기에 적용하면, 기기가 잠겨 있는 경우에도 작업 프로필의 잠금이 해제됩니다.
-
-      이로 인해 작업 프로필이 기기 잠금 화면으로 보호되어야 하는 경우에도 작업 프로필에 액세스할 수 있게 됩니다.
-
-      </li>
-
-      <li>사용자가 잘못된 비밀번호와 PIN을 입력하면, 시스템이 정보 메시지를 표시하지 않고 그 대신 입력 필드의 내용을 지웁니다.
-
- 이 문제는 패턴 또는 지문 입력에는 영향을 주지 않습니다.
-      </li>
-
-      <li>태블릿에서 작업 인증 질문에 표시되는 배경이 비정상적으로 작습니다.
-
-      </li>
-
-      <li>N Developer Preview에 번들로 제공되는 <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">Google Apps Device Policy</a>의 버전은 아직 작업 프로필 보안 인증 질문 기능을 지원하지 않습니다.
-
-
-        개발자는 그 대신 <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>를 사용하여 이 기능을 테스트해야 합니다.
-
-      </li>
-    </ul>
-  </li>
-
-  <li>상시 접속 VPN
-    <ul>
-      <li>상시 접속 VPN 모드가 설정되었는데 VPN을 사용할 수 없는 경우, 상시 접속 정책에 대한 예외로 지정되지 않은 앱은 일반 네트워크를 통해 연결됩니다.
-
- 상시 접속 VPN 정책에 대한 예외로 지정되지 않은 한, VPN 연결을 사용할 수 없는 경우 앱은 오프라인이어야 합니다.
-
-        <ul>
-          <li>상시 접속 모드가 설정된 경우 사용자가 보안 잠금 화면의 잠금을 해제한 후에도, 기기가 직접 부팅 모드로 재부팅된 후 VPN 연결이 설정되지 않습니다.
-
-
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>향상된 연락처
-    <ul>
-      <li>블루투스 PBAP/MAP 기기가 업무용 연락처에 대해 발신번호를 표시하지 않습니다.
- Preview의 차기 릴리스에서 이 문제를 해결합니다.
-      </li>
-    </ul>
-  </li>
-
-  <li>작업 모드
-    <ul>
-      <li>Google Now 런처가 작업 모드의 켜짐 또는 꺼짐 여부를 표시하지 않습니다.
- 이 런처는 또한 앱 일시 중단 상태도 표시하지 않습니다.
-      </li>
-
-      <li>사용자가 작업 모드를 껏다가 켠 후, 시스템이 더 이상 작업 프로필 앱 위젯(예: 캘린더)을 표시하지 않습니다.
-
-      </li>
-    </ul>
-  </li>
-
-  <li>패키지 일시 중단
-  </li>
-
-  <li>기기 관리자는 예상치 못한 동작(예: "Telephone disabled" 대화 상자가 표시되어 있는데도 전화가 걸림)을 초래할 수 있는 중대한 시스템 패키지를 일시 중단시킬 수 있습니다.
-
-
-  </li>
-
-  <li>기타
-    <ul>
-      <li>{@link android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA}가 true로 설정된 경우, 사용자가 SD 카드와 같은 물리적 미디어를 삽입하면 Settings 앱이 실행 시에 작동을 멈춥니다.
-
-
-      </li>
-
-      <li>사용자가 앱을 제거한 후 다시 설치하면 {@code DPM.setPackagesSuspended} 상태가 유지되지 않습니다.
- 제거/재설치에 후 앱이 일시 중단 상태를 유지해야 하거나, 일시 중단된 앱이 제거가 불가능해야 합니다.
-
-
-      </li>
-
-      <li>작업 프로필의 첫 번째 체크인은 완료되는 데 몇 분 정도 걸립니다.
- 이로 인해 기기가 Play EMM API에서 보일 때까지 보통 때보다 더 오래 걸릴 수 있습니다.
-
-      </li>
-
-      <li>작업 프로필 앱으로부터 전송되는 알림은 개인 프로필에 설치된 알림 수신자에게는 표시되지 않습니다.
- 따라서 시스템에서 알림이 예상대로 표시되지 않습니다.
-
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >키보드</h4>
-
-<ul>
-  <li>키보드 및 Android 기기 간의 블루투스 페어링이 불안정할 수 있습니다.
-  </li>
-</ul>
-
-<h4 >비디오</h4>
-
-<ul>
-<li>비디오 재생이 지연되고 끊김 현상이 나타날 수 있습니다.</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>API 특수 사례 동작을 변경시킬 수도 있는 일부 리팩터링이 Wi-Fi에 발생했습니다.
- 특히, 특정 네트워크에 연결하려고 시도하는 애플리케이션이나 네트워크에 재연결하려고 시도하는 애플리케이션은 테스트를 다시 거쳐야 합니다.
-
-  </li>
-
-  <li>레거시 DHCP 클라이언트가 플랫폼에서 제거되었습니다. 플랫폼이 지원하는 유일한 DHCP 클라이언트는 M에 추가된 DHCP 클라이언트뿐입니다.
-
-  </li>
-</ul>
-
-<h4>직접 부팅</h4>
-
-<ul>
-  <li>최초 잠금 해제가 수행될 때까지는 NFC가 작동하지 않습니다.
-    <ul>
-      <li>블루투스가 활성화된 전화가 재시작될 때, 블루투스가 자동으로 켜지지 않습니다.
- 블루투스를 수동으로 다시 활성화해야 합니다.
-      </li>
-
-      <li>어떤 경우에는, 전화 및 메시지가 온 경우 기본 벨소리가 울리지 않을 수 있습니다.
- 이 동작은 차기 N Preview 릴리스에서 수정되었습니다. 단, 한 가지 예외가 있으며 이에 대한 내용과 해결 방법은 다음과 같습니다.
-
-      </li>
-
-      <li>직접 부팅 모드로 설정된 이후 최소 한 번 이상 부팅되었지만 완전히 초기화되지 않은 기기에서는 기본 알림 벨소리가 울리지 않습니다.
-
- 사용자가 Settings에서 벨소리를 수동으로 선택하여 이 문제를 해결할 수 있습니다.
-
-      </li>
-
-      <li>N Developer Preview 빌드가 실행되는 기기에서는 기본적으로 직접 부팅이 활성화되지 않습니다.
- 테스트 및 개발에 직접 부팅을 활성화하려면 Developer Options로 이동하고 Convert to File Encryption을 탭하세요.
-
-      이 Developer Preview에서는 파일 기반 암호화를 위해 기기를 다시 파티셔닝하고 다시 포맷하려면 공장 초기화를 수행해야 합니다.
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>PIP for Android TV</h4>
-
-<ul>
-  <li>Recents UI에서의 PIP 통합은 완료되지 않았으며, 변경될 수 있습니다.
-
-    <ul>
-      <li>PIP 창의 애니메이션이 매끄럽지 않습니다. 향후 프리뷰 릴리스에서 이 문제가 개선될 것입니다.
-
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">향후 프리뷰 릴리스에서 PIP의 시각적 디자인과 레이아웃 맞춤이 개선될 것입니다.
-
-  </li>
-</ul>
-
-<h4>버그 보고서</h4>
-
-<ul>
-  <li>버그 보고서가 항상 성공적으로 완료되는 것은 아닙니다. 그 해결 방법으로, 내부 저장소에 있는 버그 보고서 문서 제공자를 통해 버그 보고서에 액세스할 수 있는 경우도 있습니다.
-
-
-  </li>
-</ul>
-
-<h4>분할 화면 다중 창</h4>
-
-<ul>
-  <li>분할 화면 모드로 전환하면 앱이 작동을 중단하고 예기치 않은 UI 동작이 발생할 수 있습니다.
- 이는 앱 개발자가 수정해야 하는 앱 문제입니다.
-
-  </li>
-
-  <li>앱이 N 이전 버전의 Android 플랫폼을 대상으로 하는 경우, 이 앱이 분할 화면에서 작동하지 않을 수 있으며, 알림 메시지가 여러 번 나타날 수 있습니다.
-
-  </li>
-
-  <li>방향이 고정된 상태로 앱을 사용하는 중에 Overview 버튼을 길게 누르면 예기치 않은 앱 동작이 발생할 수 있습니다.
-
-  </li>
-
-  <li>크기를 조정하는 중에 앱이 깜박일 수 있습니다.
-  </li>
-
-  <li>애니메이션은 아직 최종 버전이 아닙니다.
-  </li>
-</ul>
-
-<h4>입력 방법</h4>
-
-<ul>
-  <li><b>Use system language</b>가 설정된 경우 예기치 않게 Google 키보드가 일반 Google 키보드로 다시 돌아가지만, 시스템 언어 기본 설정에 선택된 언어를 Google 키보드가 지원하지 않습니다.
-
- Google 키보드는 미국식 영어로 돌아가야 합니다.
-
-    <p>
-      Google 키보드에서 지원하는 언어를 최소 하나 이상 추가하여 이 문제를 해결할 수 있습니다.
-
-    </p>
-  </li>
-</ul>
-
-<h4>접근성</h4>
-
-<ul>
-  <li>알림, Quick Settings 타일 및 다중 창 표시를 비롯한 여러 기능에 대한 문제가 음성 안내 지원(TalkBack)에서 발생합니다. 이러한 문제로 인해 시스템 작동이 중단되거나 음성 안내 지원에서 음성 피드백이 제공되지 않을 수 있습니다.
-
- 향후 프리뷰 릴리스에서 이러한 문제가 해결될 것입니다.
-
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">기기별 참고 사항 및 문제</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>이 프리뷰 릴리스에서는 비디오 재생, 앱 호환성 및 안정성 문제가 Nexus Player에 있을 수 있습니다.
-
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>다중 창 크기를 조정하면 작동이 중단될 수 있습니다.</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Android 베타 프로그램을 통해 OTA(Over-The-Air) 업데이트를 받은 후에 Nexus 9 기기가 시작되지 않을 수 있습니다.
- 이 문제로부터 복구하기 위해 OTA 이미지를 수동으로 설치해 보실 수 있습니다.
- 자세한 내용은 <a href="{@docRoot}preview/download-ota.html">기기 OTA 이미지 적용</a>을 참조하세요.
-
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/ko/preview/features/direct-boot.jd b/docs/html-intl/intl/ko/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/ko/preview/features/direct-boot.jd
rename to docs/html-intl/intl/ko/training/articles/direct-boot.jd
index 2674481..e58a4f9 100644
--- a/docs/html-intl/intl/ko/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/ko/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>이 문서의 내용</h2>
   <ol>
     <li><a href="#run">직접 부팅 시 실행하기 위한 액세스 요청</a></li>
diff --git a/docs/html-intl/intl/ko/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
similarity index 92%
rename from docs/html-intl/intl/ko/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
index 2fe02b1..f2ce650 100644
--- a/docs/html-intl/intl/ko/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>이 문서의 내용</h2>
   <ol>
     <li><a href="#accessing">외부 저장소 디렉터리 액세스</a></li>
@@ -71,8 +71,8 @@
 <p>시스템이 외부 디렉터리에 액세스 권한을 부여하고자 시도하고,
 필요에 따라 단순화된 UI를 사용하는 사용자의 액세스를 확인합니다.</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>그림 1.</strong> Pictures 디렉터리에
 액세스를 요청하는 애플리케이션.</p>
 
@@ -138,8 +138,8 @@
 사용자 환경을 저해하는 결과를 낳습니다. 사용자가 요청을 거부하는데 앱이 다시 액세스를
 요청하면, UI에 <b>Don't ask again</b> 체크박스가 표시됩니다.</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>그림 1.</strong> 이동식 미디어에 대해
 다시 액세스 요청을 하는 애플리케이션.</p>
 
diff --git a/docs/html-intl/intl/ko/preview/features/security-config.jd b/docs/html-intl/intl/ko/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/ko/preview/features/security-config.jd
rename to docs/html-intl/intl/ko/training/articles/security-config.jd
index 7e3f951..414c139 100644
--- a/docs/html-intl/intl/ko/preview/features/security-config.jd
+++ b/docs/html-intl/intl/ko/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>이 문서의 내용</h2>
 <ol>
diff --git a/docs/html-intl/intl/ko/preview/features/data-saver.jd b/docs/html-intl/intl/ko/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/ko/preview/features/data-saver.jd
rename to docs/html-intl/intl/ko/training/basics/network-ops/data-saver.jd
index a5e4741..3c22b5e 100644
--- a/docs/html-intl/intl/ko/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/ko/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       이 문서의 내용
     </h2>
@@ -231,4 +231,4 @@
     지정된 패키지 UID를 허용 목록에서 제거하여, Data Saver가 활성화된 동안 백그라운드 데이터 통신 연결을
 차단합니다.
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/ko/preview/features/picture-in-picture.jd b/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
similarity index 97%
rename from docs/html-intl/intl/ko/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
index bc6ec62..96129ce 100644
--- a/docs/html-intl/intl/ko/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>이 문서의 내용</h2>
 <ol>
@@ -59,7 +59,7 @@
 메인 화면에서 재생되기 시작하면 PIP 창이
 자동으로 닫힙니다. 사용자가 Recents를 통해서 PIP 창을 닫을 수도 있습니다.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>그림 1.</strong> 사용자가 메인 화면에서 콘텐츠를 탐색하는 동안
 화면 모서리에 표시되는 PIP 동영상.
 </p>
@@ -116,7 +116,7 @@
 <p>미디어 컨트롤 막대에 PIP 버튼을 추가하면
 사용자가 동영상 재생을 제어하면서 PIP 모드로 쉽게 전환할 수 있습니다.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>그림 1.</strong> 미디어 컨트롤 막대의 PIP
 버튼.</p>
 
diff --git a/docs/html-intl/intl/ko/preview/features/tv-recording-api.jd b/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/ko/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
index fa557bc..ed8b6e0 100644
--- a/docs/html-intl/intl/ko/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>이 문서의 내용</h2>
   <ol>
     <li><a href="#supporting">녹화 지원 나타내기</a></li>
diff --git a/docs/html-intl/intl/pt-br/preview/guide.jd b/docs/html-intl/intl/pt-br/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/pt-br/preview/guide.jd
rename to docs/html-intl/intl/pt-br/about/versions/marshmallow/android-6.0-testing.jd
index b33369e..c00fd21 100644
--- a/docs/html-intl/intl/pt-br/preview/guide.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Neste documento</h2>
       <ol>
         <li><a href="#runtime-permissions">Teste de permissões</a></li>
diff --git a/docs/html-intl/intl/pt-br/preview/behavior-changes.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/pt-br/preview/behavior-changes.jd
rename to docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-changes.jd
index b2f07d9..18a08f4 100644
--- a/docs/html-intl/intl/pt-br/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Neste documento</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Figura 1.</strong> Ilustração de como o modo soneca aplica um primeiro nível de
  restrições de atividades de sistema para aumentar a vida útil da bateria.
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>Figura 2.</strong> Ilustração de como o modo soneca aplica um segundo nível de
  restrições de atividades de sistema após o dispositivo permanecer estacionário por um determinado período.
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/pt-br/preview/samples.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-samples.jd
similarity index 77%
rename from docs/html-intl/intl/pt-br/preview/samples.jd
rename to docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-samples.jd
index 16515e4..7ed583f 100644
--- a/docs/html-intl/intl/pt-br/preview/samples.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">Interface com várias janelas</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   Este exemplo demonstra como aproveitar as vantagens de interfaces de usuário com várias janelas
  com seu aplicativo.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Notificações ativas</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Este é um exemplo pré-existente que mostra um serviço simples que envia
  notificações usando NotificationCompat. Cada conversa não lida de um usuário
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Serviço de mensagens</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   Este é um exemplo pré-existente que demonstra como usar o
  NotificationManager para identificar quantas notificações um aplicativo está mostrando
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Inicialização direta</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Este exemplo demonstra como armazenar e acessar dados no armazenamento criptografado de um dispositivo
  que está sempre disponível enquanto o dispositivo é inicializado.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Acesso a diretórios com escopo</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Este exemplo demonstra como ler e gravar dados de diretórios
  específicos exigindo menos permissões.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
 Obter no GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/pt-br/preview/guide.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/pt-br/preview/guide.jd
copy to docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd
index b33369e..c00fd21 100644
--- a/docs/html-intl/intl/pt-br/preview/guide.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Neste documento</h2>
       <ol>
         <li><a href="#runtime-permissions">Teste de permissões</a></li>
diff --git a/docs/html-intl/intl/pt-br/preview/api-overview.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0.jd
similarity index 97%
rename from docs/html-intl/intl/pt-br/preview/api-overview.jd
rename to docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0.jd
index d638e71..e3d58cd 100644
--- a/docs/html-intl/intl/pt-br/preview/api-overview.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Principais recursos para desenvolvedores</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>Figura 1.</strong> Aplicativos executando em modo de tela dividida.
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">Economia de dados</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Figura 4.</strong> Economia de dados em Settings.
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Figura 5.</strong> Blocos de Configurações rápidas na aba de notificações.
diff --git a/docs/html-intl/intl/pt-br/preview/index.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/pt-br/preview/index.jd
rename to docs/html-intl/intl/pt-br/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/pt-br/design/patterns/notifications.jd b/docs/html-intl/intl/pt-br/design/patterns/notifications.jd
deleted file mode 100644
index 5560e85..0000000
--- a/docs/html-intl/intl/pt-br/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=Notificações
-page.tags="notifications","design","L"
-@jd:body
-
- <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>Documentos do desenvolvedor</h3>
-    <p>Notificação ao usuário</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Notificações no Android 4.4 e em anteriores</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>Vídeo</h3>
-    <p>DevBytes: Notificações na pré-visualização do desenvolvedor do Android L</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>O sistema de notificações permite que os usuários se mantenham informados sobre eventos relevantes e
-imediatos
-no aplicativo, como novas mensagens de bate-papo de um amigo ou um evento de calendário.
-Pense nas notificações como um canal de notícias que alerta o usuário sobre eventos
-importantes à
-medida que acontecem ou sobre um registro que grava eventos enquanto o usuário não está prestando
-atenção &mdash; e que é sincronizado conforme apropriado em todos os dispositivos Android dele.</p>
-
-<h4 id="New"><strong>Novo no Android 5.0</strong></h4>
-
-<p>No Android 5.0, as notificações recebem atualizações importantes: em termos estruturais, visuais e
-funcionais:</p>
-
-<ul>
-  <li>As notificações passaram por mudanças visuais consistentes com o novo
-tema do Material Design.</li>
-  <li> As notificações agora estão disponíveis na tela de bloqueio do dispositivo, enquanto que
-o conteúdo sensível ainda pode
-ficar oculto atrás dela.</li>
-  <li>Notificações de alta prioridade recebidas enquanto o dispositivo está em uso agora usam um novo formato, chamado de
-notificações heads-up.</li>
-  <li>Notificações sincronizadas na nuvem: descartar uma notificação em um dos
-dispositivos Android a descarta
-também nos outros.</li>
-</ul>
-
-<p class="note"><strong>Observação:</strong> o projeto de notificação nesta versão do
-Android é uma mudança
-significativa em relação às versões anteriores. Para obter informações sobre o projeto de notificação em versões
-anteriores, consulte <a href="./notifications_k.html">Notificações no Android 4.4 ou em anteriores</a>.</p>
-
-<h2 id="Anatomy">Anatomia de uma notificação</h2>
-
-<p>Esta seção aborda as partes básicas de uma notificação e como elas
-podem aparecer em diferentes tipos de dispositivos.</p>
-
-<h3 id="BaseLayout">Layout básico</h3>
-
-<p>No mínimo, todas as notificações consistem em um layout básico, incluindo:</p>
-
-<ul>
-  <li> O <strong>ícone</strong> da notificação. O ícone simboliza o
-aplicativo de origem. Ele também
-  pode indicar o tipo de notificação, caso o aplicativo gere mais de um
-tipo.</li>
-  <li> Um <strong>título</strong> da notificação e
-<strong>texto</strong> adicional.</li>
-  <li> Uma <strong>marcação de data e hora</strong>.</li>
-</ul>
-
-<p>Notificações criadas com {@link android.app.Notification.Builder Notification.Builder}
-para versões anteriores da plataforma têm a mesma aparência e o mesmo funcionamento no Android
-5.0, com apenas mudanças menores de estilo que o sistema
-entrega a você. Para obter mais informações sobre notificações em versões
-anteriores do Android, consulte
-<a href="./notifications_k.html">Notificações no Android 4.4 ou em anteriores</a>.</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      Layout básico de uma notificação em dispositivo portátil (à esquerda) e a mesma notificação em Wear (à direita),
-com uma foto do usuário e um ícone de notificação
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">Layouts expandidos</h3>
-
-
-<p>Você pode escolher o nível de detalhe que as notificações de seu aplicativo
-devem fornecer. Elas podem mostrar as primeiras
-linhas de uma mensagem ou exibir uma visualização de imagem maior. As informações
-adicionais fornecem ao usuário mais
-contexto e &mdash; em alguns casos &mdash; podem permitir que o usuário leia uma mensagem
-em sua totalidade. O usuário pode
-pinçar para aproximar ou afastar a vista ou realizar deslizamento de um dedo para alternar entre os layouts
-compacto e expandido.
- Para notificações de um evento, o Android fornece três modelos de layout
-expandido (texto, caixa de entrada e
- imagem) para usar em seu aplicativo. As imagens a seguir mostram como
-se parecem notificações de um evento em
- dispositivos portáteis (à esquerda) e usados junto ao corpo (à direita).</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">Ações</h3>
-
-<p>O Android tem suporte para ações opcionais que são exibidas na parte inferior
-da notificação.
-Com ações, os usuários podem tratar as tarefas mais comuns para
-determinada notificação de dentro da sombra da notificação sem precisar abrir o
-aplicativo de origem.
-Isso acelera a interação e, em conjunto com deslizar-para-descartar, ajuda os usuários a
-se concentrarem em notificações que sejam importantes.</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">Tenha cuidado com o número de ações que inclui em uma
-notificação. Quanto mais
-ações incluir, maior será a complexidade cognitiva criada. Limite-se
-ao menor número possível
-de ações, incluindo apenas as ações efetivamente mais importantes e
-significativas.</p>
-
-<p>Boas candidatas a ações em notificações são ações que:</p>
-
-<ul>
-  <li> Sejam essenciais, frequentes e típicas para o tipo de conteúdo
-exibido
-  <li> Permitam que o usuário realize tarefas rapidamente
-</ul>
-
-<p>Evite ações que sejam:</p>
-
-<ul>
-  <li> Ambíguas
-  <li> Idênticas à ação padrão da notificação (como "Ler" ou
-"Abrir")
-</ul>
-
-
-
-<p>Você pode especificar no máximo três ações, cada uma consistindo em um ícone
-e um nome de ação.
- Adicionar ações a um layout básico simples torna a notificação expansível,
-mesmo se a
-notificação não tiver um layout expandido. Como as ações são exibidas apenas para notificações
-expandidas
- e que ficam de outra forma ocultas, certifique-se de que qualquer ação que um
-usuário possa invocar de dentro de uma
- notificação esteja disponível também dentro do aplicativo
-associado.</p>
-
-<h2 style="clear:left">Notificação heads-up</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    Exemplo de uma notificação heads-up (chamada telefônica recebida, alta prioridade)
-que aparece sobre um
-aplicativo imersivo
-  </p>
-</div>
-
-<p>Quando uma notificação de alta prioridade chega (veja à direita), ela é apresentada
-aos usuários por
-um período curto com um layout expandido mostrando possíveis ações.</p>
-<p> Depois desse período, a notificação recua para a sombra
-de notificação. Se a <a href="#correctly_set_and_manage_notification_priority">prioridade</a> de uma notificação for
-marcada como Alta, Máxima ou tela cheia, ela receberá uma notificação heads-up.</p>
-
-<p><b>Bons exemplos de notificações heads-up</b></p>
-
-<ul>
-  <li> Chamada telefônica recebida durante o uso do dispositivo</li>
-  <li> Alarme durante o uso do dispositivo</li>
-  <li> Nova mensagem SMS</li>
-  <li> Bateria fraca</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">Diretrizes</h2>
-
-
-<h3 id="MakeItPersonal">Torne-a pessoal</h3>
-
-<p>Para notificações de itens enviados por outra pessoa (como uma mensagem ou
-atualização de status), inclua a imagem da pessoa usando
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}. Anexe também informações sobre
-a pessoa nos metadados da notificação (consulte {@link android.app.Notification#EXTRA_PEOPLE}).</p>
-
-<p>O ícone principal de sua notificação ainda é mostrado, portanto, o usuário pode associá-lo
-ao ícone
-visível na barra de status.</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  Notificação que mostra a pessoa que a ativou e o conteúdo enviado.
-</p>
-
-
-<h3 id="navigate_to_the_right_place">Navegação para o lugar certo</h3>
-
-<p>Quando o usuário toca no corpo de uma notificação (fora dos botões
-de ação), abra o aplicativo
-no lugar em que o usuário possa visualizar e agir sobre os dados referenciados na
-notificação. Na maioria dos casos, será a exibição detalhada de um único item de dado, como uma mensagem,
-mas também poderá ser uma
-vista resumida se a notificação estiver empilhada. Se o aplicativo
-levar o usuário a qualquer lugar abaixo do nível superior do aplicativo, insira a navegação na pilha de retorno do aplicativo para que
-o usuário possa pressionar o botão Voltar do sistema para voltar ao nível superior. Para obter mais informações, consulte
-<em>Navegação para o seu aplicativo pelos widgets de página inicial e notificações</em> no padrão de projeto de <a href="{@docRoot}design/patterns/navigation.html#into-your-app">Navegação</a>.
-</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">Definição e gerenciamento
-corretos da prioridade das
-notificações</h3>
-
-<p>O Android tem suporte para um sinalizador de prioridade para notificações. Esse sinalizador permite
-influenciar o local em que a notificação é exibida em relação a outras notificações e
-ajuda a garantir
-que os usuários sempre vejam primeiro as notificações mais importantes. Você pode escolher entre
-os seguintes
-níveis de prioridade ao publicar uma notificação:</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>Prioridade</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>Uso</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>Use para notificações críticas e urgentes que alertam o usuário sobre uma condição
-que depende
-do tempo ou que precisa ser resolvida antes que o usuário possa continuar
-com uma determinada tarefa.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>Use principalmente para comunicações importantes, como uma mensagem ou
-eventos de bate-papo com conteúdo particularmente interessante para o usuário.
-Notificações de alta prioridade acionam a exibição de uma notificação heads-up.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>Use para todas as notificações que não recaiam em nenhuma das outras prioridades descritas aqui.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>Use para notificações sobre as quais deseja que o usuário seja informado, mas
-que sejam menos urgentes. Notificações de baixa prioridade tendem a ser exibidas na parte inferior da lista,
-o que as torna uma boa
-opção para coisas como atualizações públicas ou sociais não direcionadas: o usuário pediu para
-ser notificado sobre
-elas, mas essas notificações nunca devem ter precedência sobre comunicações
-urgentes ou diretas.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>Use para informações contextuais ou de histórico, como informações sobre clima ou
-informações contextuais de localização.
-Notificações de prioridade mínima não aparecem na barra de status. O usuário
-as descobre expandindo a sombra da notificação.</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>Como escolher uma prioridade
-adequada
-</strong></h4>
-
-<p><code>DEFAULT</code>, <code>HIGH</code> e <code>MAX</code> são níveis de prioridade de interrupção e arriscam
-interromper a atividade
-do usuário. Para evitar irritar os usuários de seu aplicativo, reserve níveis de prioridade de interrupção para
-notificações que:</p>
-
-<ul>
-  <li> Envolvam outra pessoa</li>
-  <li> Dependam do tempo</li>
-  <li> Possam mudar imediatamente o comportamento do usuário no mundo real</li>
-</ul>
-
-<p>Notificações definidas como <code>LOW</code> e <code>MIN</code> ainda podem
-ser valiosas para o usuário: muitas, se não a maioria, das notificações não precisam demandar a atenção
-imediata do usuário, ou vibrar o pulso do usuário, mas ainda contêm informações que o usuário
-achará valiosas ao decidir procurar
-notificações. Os critérios para notificações de prioridade <code>LOW</code> e <code>MIN</code>
-incluem:</p>
-
-<ul>
-  <li> Não envolver outras pessoas</li>
-  <li> Não depender de tempo</li>
-  <li> Ter conteúdo no qual o usuário pode estar interessado, mas que pode decidir
-verificar no momento em que desejar</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">Definição de uma categoria
-de notificação</h3>
-
-<p>Se a sua notificação recair em uma das categorias predefinidas (veja
-abaixo), atribua-a
-adequadamente.  Aspectos da IU do sistema, como a sombra da notificação (ou qualquer
-outra escuta
-de notificação), podem usar essas informações para tomar decisões de classificação e filtragem.</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>Chamada recebida (voz ou vídeo) ou solicitação similar de
-comunicação síncrona</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>Mensagem direta recebida (SMS, mensagem instantânea etc.)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>Mensagens assíncronas em lote (e-mail)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>Evento de calendário</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>Promoção ou publicidade</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>Alarme ou cronômetro</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>Andamento de uma operação de execução longa em segundo plano</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>Atualização de rede social ou de compartilhamento</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>Erro em operação de segundo plano ou no status de autenticação</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>Controle de transporte de mídia para reprodução</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>Atualização do sistema ou do status do dispositivo.  Reservado para uso do sistema.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>Indicação de serviço de segundo plano em execução</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>Uma recomendação específica e oportuna para uma única coisa.  Por exemplo, um aplicativo
-de notícias pode querer
-recomendar uma notícia que acredita que o usuário desejará ler em seguida.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>Informações contínuas sobre o dispositivo ou o status contextual</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">Resuma as notificações</h3>
-
-<p>Se uma notificação de um certo tipo já estiver pendente quando o aplicativo tentar enviar uma nova
-notificação do mesmo tipo, combine-as em uma única notificação de resumo para o aplicativo. Não
-crie um novo objeto.</p>
-
-<p>Uma notificação de resumo cria uma descrição resumida e permite que o
-usuário entenda quantas notificações
-de um determinado tipo estão pendentes.</p>
-
-<div class="col-6">
-
-<p><strong>O que não fazer</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>O que fazer</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">Você pode fornecer
-mais detalhes sobre as notificações individuais que compõem um
-resumo usando o layout resumido expandido. Essa abordagem permite que os usuários
-entendam melhor quais
-notificações estão pendentes e decidam se estão interessados o suficiente para lê-las
-em detalhes dentro
-do aplicativo associado.</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  Notificação expandida e contraída que é um resumo (usando <code>InboxStyle</code>)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">Torne as notificações
-opcionais</h3>
-
-<p>Os usuários devem sempre controlar as notificações. Permita que o usuário
-desative as notificações
-de seu aplicativo ou altere as propriedades de alerta, como som de alerta e
-se a vibração será usada,
-adicionando um item de configuração da notificação nas configurações do aplicativo.</p>
-
-<h3 id="use_distinct_icons">Use ícones distintos</h3>
-<p>Ao olhar para a área de notificação, o usuário deverá ser capaz de discernir
-que tipos de
-notificações estão atualmente pendentes.</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>O que fazer</strong></p>
-    <p>Verifique os ícones de notificação que os aplicativos do Android já fornecem e crie
-ícones de notificação para o seu
-aplicativo que tenham aparência suficientemente distinta.</p>
-
-    <p><strong>O que fazer</strong></p>
-    <p>Use o <a href="/design/style/iconography.html#notification">estilo de ícone de notificação</a> apropriado
- para ícones pequenos e o
-    <a href="/design/style/iconography.html#action-bar">estilo de ícone de barra
-de ação</a> da luminosidade do Material para os ícones
-    de ação.</p>
-<p ><strong>O que fazer</strong></p>
-<p >Mantenha os ícones visualmente simples, evitando detalhes excessivos que sejam
-difíceis de discernir.</p>
-
-  <div><p><strong>O que não fazer</strong></p>
-    <p>Coloque um alfa adicional (esmaecimento ou redução de intensidade) nos ícones pequenos
-e nos ícones de
-    ação; eles podem ter bordas suavizadas, mas, como o Android usa esses
-ícones como máscaras (ou seja, somente
-    o canal alfa é usado), a imagem normalmente deve ser desenhada com
-opacidade total.</p>
-
-</div>
-<p style="clear:both"><strong>O que não fazer</strong></p>
-
-<p>Use cores para distinguir o seu aplicativo dos outros. Ícones de notificação devem
-somente ser uma imagem com fundo branco sobre transparente.</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">Pisque o LED de notificação
-adequadamente</h3>
-
-<p>Muitos dispositivos Android contêm um LED de notificação, que é usado para manter o
-usuário informado sobre
-eventos enquanto a tela está desligada. Notificações com um nível de prioridade de <code>MAX</code>,
-<code>HIGH</code> ou <code>DEFAULT</code> devem
-fazer com que o LED brilhe, enquanto que os de prioridade mais baixa (<code>LOW</code> e
-<code>MIN</code>) não devem.</p>
-
-<p>O controle do usuário sobre as notificações deve se estender ao LED. Ao usar
-DEFAULT_LIGHTS, o
-LED brilhará na cor branca. Suas notificações não devem usar uma cor
-diferente, a não ser que o
-usuário as tenha explicitamente personalizado.</p>
-
-<h2 id="building_notifications_that_users_care_about">Criação de notificações
-que agradam aos usuários</h2>
-
-<p>Para criar um aplicativo que os usuários amem, é importante projetar as
-notificações cuidadosamente.
-As notificações personificam a voz do seu aplicativo e contribuem para
-a personalidade dele. Notificações indesejadas ou
-irrelevantes podem irritar o usuário ou fazer com que ele reprove a
-quantidade de atenção que o
-aplicativo exige. Portanto, use notificações de forma cuidadosa.</p>
-
-<h3 id="when_to_display_a_notification">Quando exibir uma notificação</h3>
-
-<p>Para criar um aplicativo que as pessoas gostem de usar, é importante
-reconhecer que a atenção e o foco
-do usuário são recursos que devem ser protegidos. Apesar de o sistema de
-notificação do Android ter
-sido projetado para minimizar o impacto das notificações na atenção do usuário,
-ainda é
-importante ter ciência do fato de que as notificações interrompem o
-fluxo de tarefas do usuário.
-Ao planejar as notificações, pergunte-se se elas são importantes o suficiente para
-justificar uma interrupção. Se não tiver certeza, permita que o usuário decida se quer
-uma notificação usando as configurações de notificação do seu aplicativo ou ajuste
-o sinalizador de prioridade das notificações para <code>LOW</code> ou <code>MIN</code> para
-evitar distrair o usuário enquanto ele faz
-alguma outra coisa.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   Exemplos de notificação que depende de tempo
-  </p>
-
-<p>Apesar de aplicativos bem comportados geralmente se manifestarem apenas quando ocorre interação com eles, alguns
-casos justificam que o aplicativo interrompa o usuário com uma notificação não solicitada.</p>
-
-<p>Use notificações principalmente para <strong>eventos que dependam de tempo</strong>, especialmente
- se esses eventos síncronos <strong>envolverem outras pessoas</strong>. Por
-exemplo, um bate-papo recebido
-é uma forma síncrona em tempo real de comunicação: outro usuário
-espera ativamente a resposta. Eventos de calendário são outro exemplo bom de quando usar uma
-notificação e atrair a
-atenção do usuário, pois o evento é iminente e eventos de calendário frequentemente
-envolvem outras pessoas.</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">Quando não exibir
-uma notificação</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>Em muitos outros casos, notificações não são adequadas:</p>
-
-<ul>
-  <li> Evite notificar o usuário sobre informações que não são especificamente
-direcionadas a ele ou
-que não dependam realmente de tempo. Por exemplo, as atualizações
-assíncronas e não direcionadas
-que fluem por uma rede social geralmente não justificam uma interrupção
-em tempo real. Para os usuários que se importam
-com elas, deixe que decidam recebê-las.</li>
-  <li> Não crie uma notificação se as informações novas relevantes estiverem
-atualmente na tela. Em vez disso,
-use a IU do próprio aplicativo para notificar o usuário das novas informações
-diretamente no contexto.
-  Por exemplo, um aplicativo de bate-papo não deve criar notificações de sistema enquanto o
-usuário estiver conversando ativamente com outro usuário.</li>
-  <li> Não interrompa o usuário para realizar operações técnicas de baixo nível, como salvar
-ou sincronizar informações, nem atualize um aplicativo se o aplicativo ou o sistema puder resolver
-o problema sem envolver o usuário.</li>
-  <li> Não interrompa o usuário para informar um erro se o aplicativo
-puder se recuperar dele por conta própria, sem que o usuário
-tome qualquer ação.</li>
-  <li> Não crie notificações que não tenham conteúdo real de notificação e
-que meramente anunciem o seu
-aplicativo. Uma notificação deve fornecer informações úteis, oportunas e novas e
-não deve ser usada
-meramente para executar um aplicativo.</li>
-  <li> Não crie notificações supérfluas apenas para colocar sua marca na frente
-dos usuários.
-  Tais notificações frustram e provavelmente alienam seu público-alvo. A
-melhor forma de fornecer
-  pequenas quantidades de informações atualizadas e manter o usuário envolvido
-com o seu
-  aplicativo é desenvolver um widget que ele possa colocar na
-tela inicial.</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">Interação com
-notificações</h2>
-
-<p>Notificações são indicadas por ícones na barra de status e podem ser acessadas
-abrindo a
-gaveta de notificações.</p>
-
-<p>Tocar em uma notificação abre o aplicativo associado com o conteúdo
-detalhado que corresponde à notificação.
-Deslizar à esquerda ou à direita em uma notificação a remove da gaveta.</p>
-
-<h3 id="ongoing_notifications">Notificações contínuas</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    Notificação contínua devido à reprodução de música
-  </p>
-</div>
-<p>Notificações contínuas mantêm os usuários informados sobre um processo em andamento em
-segundo plano.
-Por exemplo, reprodutores de música anunciam a faixa em reprodução no
-sistema de notificação e
-continuam a fazer isso até que o usuário interrompa a reprodução. Notificações contínuas também podem
-mostrar ao usuário
-feedback sobre tarefas mais longas, como o download de um arquivo ou a codificação de um vídeo. Um usuário não pode remover
-manualmente uma notificação contínua da gaveta de notificações.</p>
-
-<h3 id="ongoing_notifications">Reprodução de mídia</h3>
-<p>No Android 5.0, a tela de bloqueio não mostra controles de transporte por causa da classe
-{@link android.media.RemoteControlClient} obsoleta. Mas ela <em>mostra</em> notificações, portanto, a notificação de reprodução
-de cada aplicativo agora é a forma
-principal para que os usuários controlem a reprodução em um estado bloqueado. Esse comportamento dá aos aplicativos mais
-controle sobre quais
-botões exibir e de que forma, ao mesmo tempo em que fornece uma experiência consistente
-para o usuário, com a tela bloqueada ou não.</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">Diálogos
-e avisos</h3>
-
-<p>O seu aplicativo não deve criar uma caixa de diálogo ou um aviso se não estiver
-atualmente na tela. Uma caixa de diálogo ou um aviso
- deve ser exibido somente como uma resposta imediata ao usuário tomando uma ação
-dentro do seu aplicativo.
-Para obter orientação adicional sobre o uso de caixas de diálogo e avisos, consulte
-<a href="/design/patterns/confirming-acknowledging.html">Confirmação e reconhecimento</a>.</p>
-
-<h3>Avaliação e classificação</h3>
-
-<p>Notificações são notícias e, portanto, são essencialmente exibidas
-em ordem cronológica inversa, com
-consideração especial para a
-<a href="#correctly_set_and_manage_notification_priority">prioridade</a> da notificação declarada no aplicativo.</p>
-
-<p>Notificações são uma parte importante da tela de bloqueio e são exibidas proeminentemente
-sempre
-que a tela do dispositivo é exibida. O espaço na tela de bloqueio é restrito, portanto,
-é mais importante
-do que nunca identificar as notificações mais urgentes ou relevantes. Por esse
-motivo, o Android tem um
-algoritmo de classificação mais sofisticado para notificações, levando em conta:</p>
-
-<ul>
-  <li> A marcação de data e hora e a prioridade declarada no aplicativo.</li>
-  <li> Se a notificação incomodou recentemente o usuário com som ou
-vibração (ou seja,
-  se o celular acabou de fazer um ruído e o usuário deseja saber "O que acabou de
-acontecer?", a tela de bloqueio
-  deve responder com um olhar rápido).</li>
-  <li> Qualquer pessoa anexada à notificação usando {@link android.app.Notification#EXTRA_PEOPLE}
-  e, em particular, se é contato especial (com estrelas).</li>
-</ul>
-
-<p>Para aproveitar ao máximo essa classificação, concentre-se na experiência
-do usuário que deseja
-criar, e não em um determinado local na lista.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Notificações do Gmail têm
-prioridade padrão e normalmente
-  são classificadas abaixo de mensagens de um aplicativo de mensagem instantânea, como o Hangouts, mas
-recebem
-  uma promoção temporária quando novas mensagens chegam.
-  </p>
-
-
-<h3>Na tela de bloqueio</h3>
-
-<p>Como as notificações são visíveis na tela de bloqueio, a privacidade do usuário é uma consideração
-especialmente
- importante. Notificações frequentemente contêm informações sensíveis e
-não devem necessariamente estar visíveis
-para qualquer pessoa que ligar a tela do dispositivo.</p>
-
-<ul>
-  <li> Para dispositivos que têm uma tela de bloqueio segura (PIN, padrão ou senha), a interface tem
-partes públicas e privadas. A interface pública pode ser exibida em uma tela de bloqueio segura e,
-portanto, vista por qualquer pessoa. A interface privada é o mundo atrás da tela de bloqueio e
-só é revelada depois que o usuário faz login no dispositivo.</li>
-</ul>
-
-<h3>Controle do usuário sobre as informações exibidas na tela de bloqueio segura</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    Notificações na tela de bloqueio com conteúdo revelado depois que o usuário desbloqueia o dispositivo.
-  </p>
-</div>
-
-<p>Ao definir uma tela de bloqueio segura, o usuário poderá escolher ocultar
-detalhes sensíveis da tela de bloqueio segura. Nesse caso, a IU do sistema
-considerará o <em>nível de visibilidade</em> da notificação para descobrir o que pode
-ser exibido com segurança.</p>
-<p> Para controlar o nível de visibilidade, chame
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>
-e especifique um destes valores:</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>.
-Exibe o conteúdo inteiro da notificação.
-  Esse é o padrão do sistema se a visibilidade não for especificada.</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
-Na tela de bloqueio, exibe informações básicas sobre essa notificação, incluindo o
-ícone e o nome do aplicativo que a publicou. O restante dos detalhes da notificação não é exibido.
-Alguns pontos a ter em mente são:
-  <ul>
-    <li> Se você quer fornecer uma versão pública diferente da sua notificação
-para que o sistema a exiba em uma tela de bloqueio segura, forneça um objeto
-Notificação substituto no campo <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>.
-
-    <li> Essa configuração dá ao aplicativo uma oportunidade de criar uma versão alternativa do
-conteúdo que ainda é útil, mas não revela informações pessoais. Considere o exemplo de um
-aplicativo de SMS cujas notificações incluem o texto da mensagem SMS, o nome do remetente e o ícone do contato.
-Essa notificação deve ser <code>VISIBILITY_PRIVATE</code>, mas <code>publicVersion</code> ainda pode
-conter informações úteis, como "3 novas mensagens", sem outros detalhes
-de identificação.
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Mostra apenas as informações mínimas, excluindo até mesmo
-o ícone da notificação.</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Notificações no
-Android Wear</h2>
-
-<p>Notificações e suas <em>ações</em> são enviadas a dispositivos Wear por padrão.
-Os desenvolvedores podem controlar que notificações são enviadas do
-celular ao relógio
-e vice-versa. Os desenvolvedores também podem controlar quais ações são transmitidas. Se o
-seu aplicativo inclui
-ações que não podem ser executadas com um toque, oculte essas ações
-na sua notificação do Wear
-ou considere colocá-las em um aplicativo do Wear, permitindo que o usuário
-termine a ação
-no relógio.</p>
-
-<h4>Transmissão de notificações e ações</h4>
-
-<p>Um dispositivo conectado, como um celular, pode transmitir notificações para um dispositivo Wear para que as
-notificações sejam exibidas nele. De forma similar, ele pode transmitir ações para que o usuário possa agir
-sobre as notificações diretamente do dispositivo Wear.</p>
-
-<p><strong>Transmitir</strong></p>
-
-<ul>
-  <li> Novas mensagens instantâneas</li>
-  <li> Ações de um toque, como +1, Curtir, Coração</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>Não transmitir</strong></p>
-
-<ul>
-  <li> Notificações de podcasts recém-chegados</li>
-  <li> Ações que mapeiem para recursos que não são possíveis no relógio</li>
-</ul>
-
-
-
-<p><h4>Ações exclusivas a definir para Wear</h4></p>
-
-<p>Há algumas ações que só podem ser realizadas em Wear. Elas incluem:</p>
-
-<ul>
-  <li> Listas rápidas de respostas prontas, como "Volto logo"</li>
-  <li> Abrir no celular</li>
-  <li> Uma ação "Comentar" ou "Responder" que abre a tela de entrada de voz</li>
-  <li> Ações que executam aplicativos específicos de Wear</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/pt-br/preview/j8-jack.jd b/docs/html-intl/intl/pt-br/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/pt-br/preview/j8-jack.jd
rename to docs/html-intl/intl/pt-br/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/pt-br/preview/features/multi-window.jd b/docs/html-intl/intl/pt-br/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/pt-br/preview/features/multi-window.jd
rename to docs/html-intl/intl/pt-br/guide/topics/ui/multi-window.jd
index 1a48140..26259f6 100644
--- a/docs/html-intl/intl/pt-br/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/pt-br/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Neste documento</h2>
       <ol>
         <li><a href="#overview">Visão geral</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>Figura 1.</strong> Dois aplicativos executando lado a lado em modo de tela dividida.
 </p>
diff --git a/docs/html-intl/intl/pt-br/preview/_book.yaml b/docs/html-intl/intl/pt-br/preview/_book.yaml
deleted file mode 100644
index 8f75c9a..0000000
--- a/docs/html-intl/intl/pt-br/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: Visão geral do programa
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: Suporte e notas da versão
-  path: /preview/support.html
-
-- title: Configuração do Preview
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: Testar em um dispositivo
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: Mudanças de comportamento
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: Otimizações em segundo plano
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: Idioma e localidade
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: Suporte a várias janelas
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: Notificações
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Economia de dados
-    path: /preview/features/data-saver.html
-  - title: Gravação para TV
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: Configurações de segurança de rede
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: Suporte a ICU4J
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Recursos de linguagem do Java 8
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Atualizações no Android for Work
-    path: /preview/features/afw.html
-  - title: Acesso a diretórios com escopo
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: Amostras
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: Contrato de licença
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/pt-br/preview/download-ota.jd b/docs/html-intl/intl/pt-br/preview/download-ota.jd
deleted file mode 100644
index 3f817ed..0000000
--- a/docs/html-intl/intl/pt-br/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=Aplicação de uma imagem OTA de dispositivo
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Antes de fazer o download ou instalar componentes do
- Android Preview SDK, você deve concordar com os seguintes termos e
- condições.</p>
-
-    <h2 class="norule">Termos e condições</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”).
-
-1. Introdução
-
-1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview.
-
-1.2 "Android" refere-se à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente.
-
-1.3 “Compatível com Android” significa qualquer implementação do Android que (i) obedece ao documento Definição de Compatibilidade com Android, que pode ser encontrado no site de compatibilidade do Android (http://source.android.com/compatibility) que pode ser atualizado de tempos em tempos; e (ii) seja aprovado no Android Compatibility Test Suite (CTS).
-
-1.4 “Google” se refere à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceitação do Contrato de Licença
-
-2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença.
-
-2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença
-
-2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview.
-
-2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade.
-
-3. Licença do Preview da Google
-
-3.1 Sujeito aos termos deste Contrato de licença, a Google confere uma licença limitada, mundial, sem royalties, intransmissível, não exclusiva e não sublicenciável unicamente para o uso do Preview exclusivamente para o desenvolvimento de aplicativos executados para implementações compatíveis do Android.
-
-3.2 Você não poderá usar este Preview para desenvolver aplicativos para outras plataformas (incluindo implementações não compatíveis do Android) nem para desenvolver outro SDK. Você tem a liberdade para desenvolver aplicativos para outras plataformas, incluindo implementações não compatíveis do Android, desde que este Preview não seja usado para essa finalidade.
-
-3.3 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você.
-
-3.4 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview.
-
-3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob uma licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em situação regular para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos.
-
-3.6 Você concorda que a forma e a natureza do Preview que a Google fornece podem mudar sem aviso prévio e que as versões futuras do Preview podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do Preview. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio.
-
-3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google.
-
-3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview.
-
-4. O uso do Preview
-
-4.1 A Google entende que nada no Contrato de Licença dá a ela direitos, título nem interesse sobre o usuário (ou sobre os seus licenciadores) sob o presente Contrato de licença nem sobre quaisquer aplicativos de software que o usuário desenvolver usando o Preview, incluindo quaisquer direitos de propriedade intelectual que subsistem nos referidos aplicativos.
-
-4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação de dados ou softwares dos e para os Estados Unidos ou outros países relevantes.
-
-4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais dos usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização.
-
-4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro.
-
-4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar.
-
-4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações.
-
-4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK.
-
-5. Suas credenciais de desenvolvedor
-
-5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor.
-
-6. Privacidade e informações
-
-6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas.
-
-6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/.
-
-7. Aplicativos de terceiros
-
-7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos que possa acessar por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros.
-
-7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos proprietários.
-
-7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão.
-
-8. Uso de APIs da Google
-
-8.1 APIs da Google
-
-8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes.
-
-8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo.
-
-9. Rescisão do Contrato de licença
-
-9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo.
-
-9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante.
-
-9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação.
-
-9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de:
-(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e
-(B) a Google emitir uma versão de lançamento final do Android SDK.
-
-9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente.
-
-10. EXCLUSÕES
-
-10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE.
-
-10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS.
-
-10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO.
-
-11. LIMITAÇÃO DE RESPONSABILIDADE
-
-11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS.
-
-12. Indenização
-
-12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença.
-
-13. Mudanças no Contrato de licença
-
-13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível.
-
-14. Termos legais gerais
-
-14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview.
-
-14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google.
-
-14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias.
-
-14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença.
-
-14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL.
-
-14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google.
-
-14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Li e concordo com todos os termos e condições expressos acima</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  Esta página fornece links para imagens OTA de dispositivo e descreve
- como aplicar manualmente uma atualização OTA em um dispositivo. Esse procedimento pode ser útil
- para recuperar dispositivos que receberam atualizações OTA usando o programa beta
-do Android e não estão ligando após a instalação.
-</p>
-
-<h2 id="install-ota">Instalação de imagens OTA</h2>
-
-<p></p>
-
-<p>Para instalar um pacote OTA em um dispositivo:</p>
-
-<ol>
-  <li>Baixe uma imagem OTA de dispositivo na tabela abaixo.</li>
-  <li>Reinicialize o dispositivo para ficar em modo Recovery. Para obter mais informações sobre como colocar
- dispositivos Nexus nesse modo, consulte
- <a href="https://support.google.com/nexus/answer/4596836">Redefinição do
-dispositivo Nexus para voltar à configuração de fábrica</a>.
-  </li>
-  <li>No dispositivo, selecione <strong>ADB sideload</strong>.</li>
-  <li>Conecte o dispositivo a um computador que tenha o ambiente de desenvolvimento Android
- carregado e a ferramenta Android Debug Bridge (adb) instalada.</li>
-  <li>Execute o seguinte comando:
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">Imagem OTA de dispositivo</h2>
-
-<table>
-  <tr>
-    <th scope="col">Dispositivo</th>
-    <th scope="col">Download / Checksums</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/pt-br/preview/download.jd b/docs/html-intl/intl/pt-br/preview/download.jd
deleted file mode 100644
index 4477142..0000000
--- a/docs/html-intl/intl/pt-br/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=Testes em um dispositivo
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Antes de fazer o download ou instalar componentes do
- Android Preview SDK, você deve concordar com os seguintes termos e
- condições.</p>
-
-    <h2 class="norule">Termos e condições</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”).
-
-1. Introdução
-
-1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview.
-
-1.2 "Android" refere-se à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente.
-
-1.3 “Compatível com Android” significa qualquer implementação do Android que (i) obedece ao documento Definição de Compatibilidade com Android, que pode ser encontrado no site de compatibilidade do Android (http://source.android.com/compatibility) que pode ser atualizado de tempos em tempos; e (ii) seja aprovado no Android Compatibility Test Suite (CTS).
-
-1.4 “Google” se refere à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceitação do Contrato de Licença
-
-2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença.
-
-2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença
-
-2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview.
-
-2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade.
-
-3. Licença do Preview da Google
-
-3.1 Sujeito aos termos deste Contrato de licença, a Google confere uma licença limitada, mundial, sem royalties, intransmissível, não exclusiva e não sublicenciável unicamente para o uso do Preview exclusivamente para o desenvolvimento de aplicativos executados para implementações compatíveis do Android.
-
-3.2 Você não poderá usar este Preview para desenvolver aplicativos para outras plataformas (incluindo implementações não compatíveis do Android) nem para desenvolver outro SDK. Você tem a liberdade para desenvolver aplicativos para outras plataformas, incluindo implementações não compatíveis do Android, desde que este Preview não seja usado para essa finalidade.
-
-3.3 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você.
-
-3.4 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview.
-
-3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob uma licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em situação regular para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos.
-
-3.6 Você concorda que a forma e a natureza do Preview que a Google fornece podem mudar sem aviso prévio e que as versões futuras do Preview podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do Preview. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio.
-
-3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google.
-
-3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview.
-
-4. O uso do Preview
-
-4.1 A Google entende que nada no Contrato de Licença dá a ela direitos, título nem interesse sobre o usuário (ou sobre os seus licenciadores) sob o presente Contrato de licença nem sobre quaisquer aplicativos de software que o usuário desenvolver usando o Preview, incluindo quaisquer direitos de propriedade intelectual que subsistem nos referidos aplicativos.
-
-4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação de dados ou softwares dos e para os Estados Unidos ou outros países relevantes.
-
-4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais dos usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização.
-
-4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro.
-
-4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar.
-
-4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações.
-
-4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK.
-
-5. Suas credenciais de desenvolvedor
-
-5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor.
-
-6. Privacidade e informações
-
-6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas.
-
-6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/.
-
-7. Aplicativos de terceiros
-
-7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos que possa acessar por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros.
-
-7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos proprietários.
-
-7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão.
-
-8. Uso de APIs da Google
-
-8.1 APIs da Google
-
-8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes.
-
-8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo.
-
-9. Rescisão do Contrato de licença
-
-9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo.
-
-9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante.
-
-9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação.
-
-9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de:
-(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e
-(B) a Google emitir uma versão de lançamento final do Android SDK.
-
-9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente.
-
-10. EXCLUSÕES
-
-10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE.
-
-10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS.
-
-10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO.
-
-11. LIMITAÇÃO DE RESPONSABILIDADE
-
-11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS.
-
-12. Indenização
-
-12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença.
-
-13. Mudanças no Contrato de licença
-
-13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível.
-
-14. Termos legais gerais
-
-14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview.
-
-14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google.
-
-14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias.
-
-14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença.
-
-14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL.
-
-14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google.
-
-14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Li e concordo com todos os termos e condições expressos acima</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Neste documento</h2>
-      <ol>
-        <li><a href="#device-preview">Configurar um dispositivo de hardware</a>
-          <ol>
-            <li><a href="#ota">Obter atualizações OTA</a></li>
-            <li><a href="#flash">Atualizar um dispositivo manualmente</a></li>
-            <li><a href="#revertDevice">Desinstalar</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Configurar um emulador</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Para executar e testar o aplicativo na nova plataforma, você deve configurar um ambiente de tempo de execução do
- Android N. Isso pode ser feito das seguintes maneiras:
-</p>
-
-<ul>
-  <li>Instale o Android N em um dispositivo de hardware compatível ou</li>
-  <li>Configure um emulador do Android que execute o Android N</li>
-</ul>
-
-<p>
-  Se quiser um ambiente para fazer testes básicos de compatibilidade do seu aplicativo na
- nova plataforma, você só precisará do APK atual e de um dispositivo de hardware ou
- emulador. Não é necessário atualizar o ambiente de desenvolvimento completo
- para fazer testes básicos.
-</p>
-
-<p>
-  Se quiser modificar seu aplicativo para direcioná-lo ao Android N ou usar as novas APIs do Android N,
- você deverá configurar um ambiente de desenvolvimento atualizado para oferecer suporte ao
- Android N. O documento <a href="{@docRoot}preview/setup-sdk.html">Preparação para desenvolver para o
- Android N</a> oferece os detalhes.
-</p>
-
-
-<h2 id="device-preview">Configurar um dispositivo de hardware</h2>
-
-<p>
-  O N Developer Preview oferece atualizações de sistema para diversos dispositivos de hardware
- que podem ser usados para testar o aplicativo, de celulares a tablets e televisões.
-</p>
-
-<p>
-  Se você tiver acesso a um dispositivo compatível, poderá atualizá-lo para uma versão de marco do Developer
- Preview de uma das seguintes maneiras:
-</p>
-
-<ul>
-  <li><strong>Inscreva o dispositivo nas atualizações de sistema automáticas por OTA</strong> usando o
- <a href="https://g.co/androidbeta"> Android Beta Program</a>. Após a inscrição, seu dispositivo receberá atualizações regulares
- por OTA de todas as versões de marco do N Developer Preview. Essa
- abordagem é recomendada porque ela permite que você faça uma transição tranquila do ambiente
- atual para as várias versões do N Developer Preview.</li>
-  <li><strong>Faça o download de uma imagem de sistema do Developer Preview e atualize o dispositivo manualmente</strong>.
-  Atualizações por OTA não são fornecidas automaticamente para dispositivos que são atualizados manualmente, mas
- é possível inscrever esses dispositivos no programa beta do Android para receber atualizações por OTA. </li>
-</ul>
-
-<h3 id="ota">Inscrever o dispositivo para receber atualizações automáticas por OTA</h3>
-
-<p>
-  Se você tiver acesso a um dispositivo compatível (veja a lista na tabela de
- downloads), poderá receber atualizações por OTA de versões do Preview do Android
- ao inscrever esse dispositivo no <a href="https://g.co/androidbeta">programa beta do Android</a>. Essas atualizações são
- baixadas automaticamente e serão aplicadas no dispositivo da mesma maneira que
- atualizações de sistema oficiais.
-</p>
-
-<p>
-  Você pode cancelar a inscrição do dispositivo a qualquer momento. O dispositivo receberá uma atualização por OTA
- para a versão de produção mais recente disponível do Android para o dispositivo em questão
- (por exemplo, o Android 6.0 Marshmallow). Essa atualização exige que o dispositivo seja totalmente
- redefinido, portanto, os dados do usuário serão removidos. Não deixe de <strong>fazer o backup
- de dados importantes</strong> antes de cancelar a inscrição de um dispositivo.
-</p>
-
-<p>
-  Para saber mais e para inscrever seu dispositivo, consulte
- o site do <a href="https://g.co/androidbeta">programa beta do Android</a>.
-</p>
-
-<p class="note"><strong>Observação:</strong>
-  Cancelar um dispositivo exige uma redefinição total. Faça primeiro o backup
- de dados importantes.
-</p>
-
-<h3 id="flash">Atualizar um dispositivo manualmente</h3>
-
-<p>
-  A qualquer momento, você pode fazer o download da imagem de sistema mais recente do Developer Preview e
- aplicá-la manualmente ao dispositivo. Consulte a tabela abaixo para fazer o download da
- imagem de sistema para o dispositivo de teste. A atualização manual de um dispositivo é útil se você precisa de um
- controle preciso sobre o ambiente de teste ou se precisa reinstalar com frequência,
- como em testes automatizados.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  Instalar uma imagem de sistema em um dispositivo <strong>remove todos os dados
- do dispositivo</strong>, portanto, faça primeiro o backup dos dados.
-</p>
-
-<p>
-  Após fazer o backup dos dados do dispositivo e baixar a imagem de sistema abaixo que
- corresponda ao seu dispositivo, siga as instruções em<a href="https://developers.google.com/android/nexus/images#instructions"> developers.google.com/android</a>
- para aplicar a imagem no dispositivo.
-</p>
-
-<p>
-  Imagens de sistema atualizadas manualmente <strong>não recebem
- atualizações por OTA automaticamente</strong> para versões de marco posteriores do
- Developer Preview. Mantenha o ambiente atualizado e aplique
- uma nova imagem de sistema a cada marco do Developer Preview.
-</p>
-
-<p>
-  Se decidir que deseja obter atualizações por OTA após atualizar um dispositivo manualmente,
-basta inscrevê-lo no <a href="https://g.co/androidbeta">programa beta
- do Android</a>. É possível inscrever dispositivos a qualquer momento para receber a próxima atualização do Preview
- por OTA.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Dispositivo</th>
-    <th scope="col">Download / Checksums</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Desinstalar o Preview de um dispositivo</h3>
-
-<p>
-  O Preview pode ser desinstalado de um dispositivo de uma das
- seguintes maneiras: </p>
-  <ul>
-    <li><strong>Obtenha uma imagem de sistema com especificações de fábrica</strong> e aplique-a
- manualmente no dispositivo.
-      <ul>
-          <li>Para <strong>dispositivos Nexus e Pixel C</strong>, consulte
- a página de downloads de <a href="http://developers.google.com/android/nexus/images">Imagens de fábrica
- para dispositivos Nexus</a>. </li>
-        <li>Para <strong>outros dispositivos</strong>, entre em contato
- diretamente com o fabricante. Alternativamente, se o dispositivo for compatível
- com o programa beta do Android, será possível inscrevê-lo no
- programa e depois cancelar a inscrição (veja abaixo).</li>
-      </ul>
-    </li>
-    <li><strong>Cancele a inscrição do dispositivo no programa beta do Android</strong>. Se o
- dispositivo estiver inscrito no <a href="https://g.co/androidbeta">programa beta
-do Android</a>, independentemente de qual ele seja, você poderá simplesmente cancelar a inscrição.
-  <p>
-    O dispositivo receberá uma atualização por OTA para a versão
- de produção mais recente disponível do Android para o dispositivo em questão (por exemplo, o Android 6.0 Marshmallow).
-    Essa atualização exige que o dispositivo seja totalmente redefinido, portanto, os dados do usuário serão
- removidos. Não deixe de <strong>fazer o backup de dados importantes</strong> antes de
- cancelar a inscrição de um dispositivo.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Observação:</strong>
-  Para desinstalar uma imagem de sistema do Developer Preview antes do
- fim do programa, é preciso redefinir o dispositivo por completo e remover todos os dados
- do usuário no dispositivo.
-</p>
-
-
-<h2 id="setupAVD">Configurar um emulador</h2>
-
-<p>Para usar o emulador do Android para executar o Android N Preview, você deve
-fazer o download do Android N Preview SDK e criar um dispositivo virtual para o
-emulador.</p>
-
-<p>Primeiro, faça o download do Android N Preview SDK da seguinte maneira (se você
-já adquiriu esse recurso ao <a href="{@docRoot}preview/setup-sdk.html">se preparar
-para desenvolver para o Android N</a>, pule esta etapa):
-
-<ol>
-  <li>No Android Studio, abra a caixa de diálogo Settings
- (<strong>File &gt; Settings</strong> no Windows/Linux ou
- <strong>Android Studio &gt; Preferences</strong> no Mac). No
- painel à esquerda, selecione <strong>Appearance &amp; Behavior &gt;
- System Settings &gt; Android SDK</strong>.
-
-  <li>Clique na guia <strong>SDK Platforms</strong> e marque a caixa de seleção
- <strong>Android N Preview</strong>.</li>
-
-  <li>Clique na guia <strong>SDK Tools</strong> e marque as caixas de seleção
- <strong>Android SDK Build Tools</strong>, <strong>Android SDK
- Platform-Tools</strong> e <strong>Android SDK Tools</strong>
-.
-  </li>
-
-  <li>Clique em <strong>OK</strong> e aceite os termos de licença
- de qualquer pacote que precise ser instalado.
-  </li>
-</ol>
-
-<p>Agora, você deve ter o <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-o <strong>Platform-Tools 24.0.0 rc1</strong> e o <strong>SDK Tools
-25.0.9</strong>. Se você não atualizar o SDK Tools para a versão 25.0.9, não será
-possível executar as imagens de sistema x86_64 para o Android N.</p>
-
-
-<p>Agora, crie um dispositivo virtual com a imagem de sistema do Android N:</p>
-
-<ol>
-  <li>Abra o AVD Manager selecionando <strong>Tools &gt; Android &gt;
- AVD Manager</strong>.</li>
-  <li>Clique em <strong>Create Virtual Device</strong>.</li>
-  <li>Selecione um dispositivo como Nexus 5X, Nexus 6P, Nexus 9 ou Android TV
- e clique em <strong>Next</strong>.</li>
-  <li>Selecione a imagem de sistema <strong>N</strong> (com ABI
- <strong>x86</strong>) e clique em <strong>Next</strong>.
-    (Apenas imagens de sistema x86 atualmente são compatíveis com o emulador do Android
-para o Android N Preview.)
-  <li>Conclua a configuração do AVD e clique em
- <strong>Finish</strong>.</li>
-</ol>
-
-<p>Agora, é possível iniciar o emulador do Android com o AVD Android N Preview.</p>
-
-<p>
-Para ter a melhor experiência possível com o emulador do Android, instale o
-Android Studio 2.1 ou mais recente, que oferece suporte ao <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>,
-cujo desempenho é muito superior ao do emulador no
-Android Studio 1.5.</p>
-
-<p>Para saber mais sobre como criar dispositivos virtuais para teste, consulte <a href="{@docRoot}tools/devices/index.html">Gerenciamento de dispositivos virtuais</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/pt-br/preview/features/afw.jd b/docs/html-intl/intl/pt-br/preview/features/afw.jd
deleted file mode 100644
index 977d2a0..0000000
--- a/docs/html-intl/intl/pt-br/preview/features/afw.jd
+++ /dev/null
@@ -1,552 +0,0 @@
-page.title=Atualizações no Android for Work
-page.metaDescription=Novas APIs do Android for Work e novos recursos do Android N.
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Neste documento</h2>
-      <ol>
-        <li><a href="#qr">Provisionamento de código QR
-</a></li>
-
-        <li><a href="#sec-challenge">Desafio de segurança de perfil de trabalho
-</a></li>
-
-        <li><a href="#suspend">Desativar acesso a aplicativos
-</a></li>
-
-        <li><a href="#toggle-work">Alternar modo de trabalho
-</a></li>
-
-        <li><a href="#always-on-vpn">Always-On VPN
-</a></li>
-
-        <li><a href="#contacts">Integração de contatos com perfil de trabalho
-</a></li>
-
-        <li><a href="#remote-reboot">Reinicialização remota
-</a></li>
-
-        <li><a href="#disable-roaming">Desativação de roaming de dados
-</a></li>
-
-        <li><a href="#process-logging">Registro do processo empresarial
-</a></li>
-
-        <li><a href="#bug-reports">Relatórios de erros remotos
-</a></li>
-
-        <li><a href="#remove-cert">Remoção de certificado do cliente
-</a></li>
-
-        <li><a href="#grant-cert-on-install">Concessão de acesso a certificado do cliente
-na instalação</a></li>
-
-        <li><a href="#ui-policy">Transparência da política de IU do sistema
-</a></li>
-
-        <li><a href="#restrictions-mgmt">Melhorias no gerenciamento de restrições de aplicativos
-</a></li>
-
-        <li><a href="#location-off">Interruptor para desativar localidade
-</a></li>
-
-        <li><a href="#custom-provisioning">Provisionamento personalizado
-</a></li>
-
-        <li><a href="#multi-wifi-ca">Diversos certificados de CA para Wi-Fi
-</a></li>
-
-        <li><a href="#custom-lock">Mensagem de tela de bloqueio personalizada
-</a></li>
-
-        <li><a href="#work-connectionservice">Perfil de trabalho ConnectionService
-</a></li>
-
-        <li><a href="#lock-wp">Bloqueio de plano de fundo
-</a></li>
-
-        <li><a href="#lock-user-icon">Bloqueio de ícone de usuário
-</a></li>
-
-        <li><a href="#health-monitoring">Monitoramento da saúde do dispositivo
-</a></li>
-
-      </ol>
-
-    <h2>Veja também</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referência
-do N Preview SDK</a></li>
-    </ul>
-  </div>
-</div>
-
-<p>Este documento descreve os novos recursos do Android for Work oferecidos no
-Android N.</p>
-
-<h2 id="qr">Provisionamento de código QR</h2>
-
-<p>
-  O Android for Work agora é compatível com o uso de códigos QR para fornecimento de dispositivos
-de responsabilidade corporativa. Este assistente de configuração permite a digitalização de um código QR para fornecer
-ao dispositivo.
-</p>
-
-<h2 id="sec-challenge">Desafio de segurança de perfil de trabalho</h2>
-
-<p>
-  Donos de perfis podem exigir que os usuários especifiquem um desafio de segurança para aplicativos
-em execução no perfil de trabalho. O sistema mostra o desafio de segurança quando o
-usuário tenta abrir qualquer aplicativo de trabalho. Se o usuário preencher corretamente o
- desafio de segurança, o sistema desbloqueará e, se necessário, descriptografará o
-perfil de trabalho.
-</p>
-
-<p>
-  Se um dono de perfil enviar uma intenção {@link
- android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD}, o
- sistema solicitará que o usuário defina um desafio de segurança. O dono de perfil também
- pode enviar uma intenção <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> para
- solicitar que o usuário defina um bloqueio de dispositivo.
-</p>
-
-<p>
-  Os donos de perfil podem escolher políticas de senha diferentes
- das políticas de outros dispositivos para o desafio de trabalho. Por exemplo, o
- tamanho mínimo da resposta do desafio no dispositivo pode ser diferente do tamanho
- exigido para outras senhas. Os donos de perfis definem as
-políticas do desafio por meio dos métodos {@link android.app.admin.DevicePolicyManager}
-usuais, como {@link
-android.app.admin.DevicePolicyManager#setPasswordQuality
-setPasswordQuality()} e {@link
-android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-setPasswordMinimumLength()}. O dono de perfil também pode definir o bloqueio de dispositivo
-usando a instância de {@link android.app.admin.DevicePolicyManager} retornada
-pelo novo método <code>DevicePolicyManager.getParentProfileInstance()</code>
-. Além disso, donos de perfil podem personalizar a tela de credenciais do
-desafio de trabalho usando os novos métodos <code>setOrganizationColor()</code> e
- <code>setOrganizationName()</code> da classe {@link android.app.admin.DevicePolicyManager}
-.
-</p>
-
-<p>
-  Para obter detalhes sobre os novos métodos e constantes, consulte a
-página de referência <code>DevicePolicyManager</code> na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referência do N Preview SDK</a>.
-</p>
-
-<h2 id="suspend">Desativar acesso a aplicativos</h2>
-
-<p>
-  Donos de dispositivos e perfis podem suspender temporariamente o acesso a pacotes
- chamando o novo método <code>DevicePolicyManager.setPackagesSuspended()</code>
-. Os donos podem usar o mesmo método para reativar esses pacotes.
-</p>
-
-<p>
-  Enquanto está suspenso, um pacote não consegue iniciar atividades, as notificações
- são suspensas e a entrada do aplicativo na <a href="{@docRoot}guide/components/recents.html">tela de visão geral</a> é ocultada.
-  Os pacotes suspensos não são exibidos na <a href="{@docRoot}guide/components/recents.html">tela de visão geral</a> e não
- podem mostrar caixas de diálogo (incluindo avisos e snackbars). Também não conseguem reproduzir
- áudio nem vibrar o dispositivo.
-</p>
-
-<p>
-  A tela de início pode aplicar uma IU destacada ao aplicativos suspensos para mostrar que
- não estão disponíveis. Podem, por exemplo, exibir o ícone do aplicativo
- em cinza. A tela de início pode descobrir se um aplicativo está suspenso chamando o novo método
- <code>DevicePolicyManager.getPackageSuspended()</code>.
-</p>
-
-<h2 id="toggle-work">Alternar modo de trabalho</h2>
-
-<p>
-  Em dispositivos com dois perfis, o usuário pode ativar ou desativar o modo de trabalho. Quando o modo de trabalho
- é desativado, o perfil gerenciado é encerrado temporariamente. Os aplicativos,
- a sincronização em segundo plano e as notificações do perfil de trabalho são desativados, inclusive
- o aplicativo do dono do perfil. Quando o modo de trabalho está desativado, o sistema
- exibe um ícone de status persistente para lembrar ao usuário que não é possível iniciar aplicativos
-de trabalho. A tela de início indica que os aplicativos e widgets de trabalho não podem
- ser acessados.
-</p>
-
-<h2 id="always-on-vpn">Always-On VPN</h2>
-
-<p>
-  Os donos de dispositivo e perfil podem exigir que os aplicativos de trabalho se conectem sempre
-por meio de uma VPN especificada. Se os donos definirem este requisito, o
- dispositivo iniciará a VPN automaticamente na inicialização.
-</p>
-
-<p>
-  Os donos podem exigir o uso de uma VPN chamando o novo
-método <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code>. Para descobrir
- se o dono definiu um requisito de VPN, chame o novo
- método <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code>.
-</p>
-
-<p>
-  Como o sistema pode vincular os serviços de VPN diretamente sem interação com aplicativos,
- os clientes de VPN precisam processar novos pontos de entrada para a Always-on VPN. Como antes, você
- pode encontrar serviços ativos usando um filtro de intenção que corresponda à ação
- {@link android.net.VpnService android.net.VpnService}.
-</p>
-
-<p>
-  Os usuários podem configurar manualmente um cliente de VPN always-on que implemente {@link
-android.net.VpnService} usando a tela <strong>Settings &gt; More &gt;
- VPN</strong>.
-</p>
-
-<h2 id="contacts">Integração de contatos com perfil de trabalho</h2>
-
-<p>
-  Os donos de perfil podem permitir pesquisa local e busca no diretório de contatos de trabalho
- do usuário principal. Por exemplo, um usuário pode acessar os diretórios de contatos
- pessoais e de trabalho no telefone ou no aplicativo de contatos particular (se
- permitido pelo administrador do perfil).
-</p>
-
-<p>
-  Desenvolvedores que se valem do Provedor de Contatos podem usar a Enterprise Contacts API
- para acessar as entradas do diretório do perfil de trabalho do usuário principal se permitido
- pela política:
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  Donos de perfis podem controlar a visibilidade de contatos de trabalho no usuário
- principal usando os seguintes novos métodos:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">Reinicialização remota</h2>
-
-<p>
-  Donos de dispositivos podem reinicializá-los remotamente. Em alguns casos, dispositivos implementados
- dentro de compartimentos em locais públicos podem impedir o acesso ao botão liga/desliga. Se um
- dispositivo precisar de reinicialização, os administradores poderão fazer isso usando o novo
- método <code>DevicePolicyManager.reboot()</code>.
-</p>
-
-<h2 id="disable-roaming">Desativação de roaming de dados</h2>
-
-<p>
-  Os donos de dispositivos podem desativar o roaming de dados usando a nova restrição de usuário <code>DISALLOW_DATA_ROAMING</code> do {@link
-android.os.UserManager}.
-</p>
-
-<h2 id="process-logging">Registro do processo empresarial</h2>
-
-<p>
-  Donos de dispositivos podem monitorá-los remotamente
- para identificar atividades suspeitas, incluindo inicialização de aplicativos, atividade adb e desbloqueios de tela. Registros de processo
- não exigem consentimento do usuário. Para recuperar os registros, os donos de dispositivos precisam ativar
-o registro no dispositivo usando <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
-</p>
-
-<p>
-  As mudanças na API incluem:
-</p>
-
-<ul>
-
-  <li>
-    A nova classe <code>android.app.admin.SecurityLog</code> e seus
- métodos
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">Relatórios de erros remotos</h2>
-
-<p>
-  Donos de dispositivos podem acionar e recuperar remotamente um relatório de erros que contém um
- arquivo de despejo, o que permite a investigação forense de um incidente
- conhecido ou um dispositivo danificado. Devido à natureza detalhada do relatório de erros,
- ele só é gerado com o consentimento do usuário.
-</p>
-
-<p>
-  O Android N inclui as seguintes adições de API para dar suporte a este recurso. Para
-obter detalhes, consulte a <a href="{@docRoot}preview/setup-sdk.html#docs-dl"> Referência do N
- Preview SDK</a>.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">Remoção de certificado do cliente</h2>
-
-<p>
-  Agora, donos de perfis e dispositivos podem remover certificados de cliente que foram
-instalados por meio do {@link android.app.admin.DevicePolicyManager#installKeyPair
- installKeyPair()} chamando o novo método
- <code>DevicePolicyManager.removeKeyPair()</code>.
-</p>
-
-<h2 id="grant-cert-on-install">Concessão de acesso a certificado do cliente
-na instalação</h2>
-
-<p>
-  Se um dono de perfil ou dispositivo conceder a um aplicativo de terceiros a capacidade de
- gerenciar certificados, o próprio aplicativo poderá conceder acesso a certificados que
- tenha instalado sem qualquer intervenção do dono.
-</p>
-
-<p>
-  A API existente para gerenciamento de certificados foi expandida para incluir:
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">Transparência da política de IU do sistema</h2>
-
-<p>
-  Políticas que afetem a experiência do usuário ou restrinjam Settings são
- totalmente divulgadas e os donos de perfis e dispositivos podem atribuir a
- política ao departamento de TI da empresa. Além de incluir uma mensagem consistente de "Ação
- não permitida” em Settings, os administradores de TI podem definir uma
- mensagem de suporte específica para a organização nas configurações do dispositivo com os seguintes
- novos métodos {@link android.app.admin.DevicePolicyManager}:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">Melhorias no gerenciamento de restrições de aplicativos</h2>
-
-<p>
-  O dono do dispositivo ou perfil pode habilitar outro aplicativo para gerenciar restrições de aplicativo
- por meio do novo
- método <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
-. O aplicativo indicado pode verificar se a permissão foi
-concedida chamando
- <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
-</p>
-
-<p>
-  Um aplicativo indicado para gerenciar restrições de aplicativos pode chamar {@link
- android.app.admin.DevicePolicyManager#setApplicationRestrictions
-setApplicationRestrictions()} e {@link
-android.app.admin.DevicePolicyManager#getApplicationRestrictions
-getApplicationRestrictions()} para quaisquer pacotes dentro daquele usuário ou perfil.
-</p>
-
-<h2 id="location-off">Interruptor para desativar localidade</h2>
-
-<p>
-  Os usuários podem desativar as permissões de localidade para aplicativos de trabalho sem deixar de
- acessar informações de localidade em seus aplicativos pessoais. Um interruptor de acesso de localidade
- em separado em Location Settings permite que o usuário impeça atualizações de localização ou
- consultas de última localidade em aplicativos executados no perfil de trabalho.
-</p>
-
-<p>
-  O interruptor de desligamento de localidade em nível superior desativa o acesso à localidade para o
- perfil principal e o perfil gerenciado.
-</p>
-
-<h2 id="custom-provisioning">Provisionamento personalizado</h2>
-
-<p>
-  Um aplicativo pode personalizar os fluxos de provisionamento do dono do perfil e do dispositivo
- com cores e logos corporativos.
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    Personaliza a cor do fluxo.
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    Personaliza o fluxo com um logo corporativo.
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">Diversos certificados de CA para Wi-Fi</h2>
-
-<p>
-  Donos de dispositivos e perfis podem definir vários certificados de CA para uma determinada
- configuração de Wi-Fi. Quando redes Wi-Fi corporativas têm CA separadas para
- pontos de acesso separados com o mesmo SSID, os administradores de TI podem incluir todas as
- CA correspondentes na configuração de Wi-Fi usando o novo método
- <code>setCaCertificates()</code>.
-</p>
-
-<p>
-  As APIs adicionadas foram:
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">Mensagem de tela de bloqueio personalizada</h2>
-
-<p>
-  Donos de dispositivos podem fornecer informações a ser exibidas na tela de bloqueio.
-  Essas informações têm prioridade sobre a mensagem do usuário na tela de bloqueio (se houver uma
- definida). Os novos métodos {@link android.app.admin.DevicePolicyManager} são:
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">Perfil de trabalho ConnectionService</h2>
-
-<p>
-  Os donos de perfil podem especificar um aplicativo de telefone de trabalho que usa um
- {@link android.telecom.ConnectionService} específico para trabalho para o back-end de
- chamada (contas de chamada). O telefone de trabalho só mantém um registro de chamadas de trabalho
- e baseia-se apenas em contatos de trabalho. Os usuários têm uma experiência consistente
- de IU em chamada em qualquer aplicativo de ligação. As chamadas recebidas pelas contas de trabalho
- são distintas das chamadas recebidas pelas
-contas pessoais.
-</p>
-
-<p>
-  O telefone deve verificar o novo sinalizador
- <code>android.telecom.Call.PROPERTY_WORK_CALL</code> para determinar se a chamada
- é de trabalho. Se for de trabalho, o telefone deverá indicar o fato
- adicionando um distintivo de trabalho, por exemplo.
-</p>
-
-<h2 id="lock-wp">Bloqueio de plano de fundo</h2>
-
-<p>
-  Uma nova restrição de usuário (<code>DISALLOW_SET_WALLPAPER</code>) impede que
- o usuário altere o plano de fundo. O dono do dispositivo ou perfil ainda pode
- alterar o plano de fundo, mas só consegue mudar o plano de fundo
- do usuário ou perfil que controla. Por exemplo, um dono de perfil não consegue mudar o
-plano de fundo do usuário pai, mas o dono de um perfil principal e
- o dono do dispositivo conseguem. Um dono de perfil ou dispositivo que queira alterar o
- plano de fundo precisa verificar se o usuário ou perfil que gerencia tem um
- plano de fundo ({@link android.app.WallpaperManager#isWallpaperSupported
- isWallpaperSupported()}) e se possui permissão para alterá-lo (com o
- novo método <code>WallpaperManager.isWallpaperSettingAllowed()</code>)
-</p>
-
-<h2 id="lock-user-icon">Bloqueio de ícone de usuário</h2>
-
-<p>
-  Uma nova restrição de usuário (<code>DISALLOW_SET_USER_ICON</code>) impede que
- o usuário altere o ícone de usuário. O dono do dispositivo ou perfil
- ainda pode alterar o ícone. No entanto, um dono de perfil só consegue alterar o
- ícone de usuário do perfil que controla.
-</p>
-
-<h2 id="health-monitoring">Monitoramento da saúde do dispositivo</h2>
-
-<p>
-  Um dono de perfil ou dispositivo pode usar a nova interface
- <code>HardwarePropertiesManager</code> para recuperar informações importantes
- sobre a integridade do dispositivo, como temperatura da CPU ou da GPU e uso de CPU. A nova
- interface de monitoramento é especialmente útil para monitorar dispositivos não assistidos
- executados em uma localidade remota.
-</p>
diff --git a/docs/html-intl/intl/pt-br/preview/license.jd b/docs/html-intl/intl/pt-br/preview/license.jd
deleted file mode 100644
index 7228bb0..0000000
--- a/docs/html-intl/intl/pt-br/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=Contrato de licença
-
-@jd:body
-
-<p>
-Para começar a usar o Android SDK Preview, você deve concordar com os seguintes termos e condições.
-Como descrito abaixo, observe que esta é uma versão de prévia do Android SDK, sujeita a alterações, que deve ser usada por seu risco.  O Android SDK Preview não é uma versão estável e pode conter erros e defeitos que podem resultar em danos sérios aos sistemas de computador, aos dispositivos e aos dados.
-</p>
-
-<p>
-Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”).
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. Introdução
-
-1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview.
-
-1.2 "Android" refere-se à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente.
-
-1.3 “Compatível com Android” significa qualquer implementação do Android que (i) obedece ao documento Definição de Compatibilidade com Android, que pode ser encontrado no site de compatibilidade do Android (http://source.android.com/compatibility) que pode ser atualizado de tempos em tempos; e (ii) seja aprovado no Android Compatibility Test Suite (CTS).
-
-1.4 “Google” se refere à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
-
-2. Aceitação do Contrato de Licença
-
-2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença.
-
-2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença
-
-2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview.
-
-2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade.
-
-3. Licença do Preview da Google
-
-3.1 Sujeito aos termos deste Contrato de licença, a Google confere uma licença limitada, mundial, sem royalties, intransmissível, não exclusiva e não sublicenciável unicamente para o uso do Preview exclusivamente para o desenvolvimento de aplicativos executados para implementações compatíveis do Android.
-
-3.2 Você não poderá usar este Preview para desenvolver aplicativos para outras plataformas (incluindo implementações não compatíveis do Android) nem para desenvolver outro SDK. Você tem a liberdade para desenvolver aplicativos para outras plataformas, incluindo implementações não compatíveis do Android, desde que este Preview não seja usado para essa finalidade.
-
-3.3 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você.
-
-3.4 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview.
-
-3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob uma licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em situação regular para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos.
-
-3.6 Você concorda que a forma e a natureza do Preview que a Google fornece podem mudar sem aviso prévio e que as versões futuras do Preview podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do Preview. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio.
-
-3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google.
-
-3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview.
-
-4. O uso do Preview
-
-4.1 A Google entende que nada no Contrato de Licença dá a ela direitos, título nem interesse sobre o usuário (ou sobre os seus licenciadores) sob o presente Contrato de licença nem sobre quaisquer aplicativos de software que o usuário desenvolver usando o Preview, incluindo quaisquer direitos de propriedade intelectual que subsistem nos referidos aplicativos.
-
-4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação de dados ou softwares dos e para os Estados Unidos ou outros países relevantes.
-
-4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais dos usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização.
-
-4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro.
-
-4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar.
-
-4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações.
-
-4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK.
-
-5. Suas credenciais de desenvolvedor
-
-5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor.
-
-6. Privacidade e informações
-
-6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas.
-
-6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/.
-
-7. Aplicativos de terceiros
-
-7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos que possa acessar por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros.
-
-7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos proprietários.
-
-7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão.
-
-8. Uso de APIs da Google
-
-8.1 APIs da Google
-
-8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes.
-
-8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo.
-
-9. Rescisão do Contrato de licença
-
-9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo.
-
-9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante.
-
-9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação.
-
-9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de:
-(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e
-(B) a Google emitir uma versão de lançamento final do Android SDK.
-
-9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente.
-
-10. EXCLUSÕES
-
-10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE.
-
-10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS.
-
-10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO.
-
-11. LIMITAÇÃO DE RESPONSABILIDADE
-
-11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS.
-
-12. Indenização
-
-12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença.
-
-13. Mudanças no Contrato de licença
-
-13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível.
-
-14. Termos legais gerais
-
-14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview.
-
-14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google.
-
-14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias.
-
-14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença.
-
-14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL.
-
-14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google.
-
-14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição.
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/pt-br/preview/overview.jd b/docs/html-intl/intl/pt-br/preview/overview.jd
deleted file mode 100644
index 1c81f6d..0000000
--- a/docs/html-intl/intl/pt-br/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Visão geral do programa
-page.metaDescription=Prepare seus aplicativos para a próxima versão do Android.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Bem-vindo ao <strong>Android N Developer Preview</strong>, um programa que
- fornece tudo que é necessário para testar e otimizar os aplicativos para a próxima
- versão do Android. É de graça e você pode começar agora mesmo:
- basta fazer o download das ferramentas N Developer Preview.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Imagens de emulador e hardware
-      </h5>
-
-      <p>
-        Execute e teste seus aplicativos em diversos dispositivos ou em um emulador.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Código de plataforma mais recente
-      </h5>
-
-      <p>
-        Forneceremos atualizações mensais durante o Preview. Portanto, você testará de acordo com as alterações mais recentes da plataforma.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Prioridade para problemas de desenvolvimento
-      </h5>
-
-      <p>
-        Durante as primeiras semanas, nós daremos prioridade aos problemas informados
- por desenvolvedores. Portanto, teste e forneça-nos feedback o quanto antes.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        Novos comportamentos e recursos
-      </h5>
-
-      <p>
-        Comece a trabalhar mais cedo para oferecer suporte aos novos comportamentos da plataforma e desenvolver seus aplicativos com novos recursos.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Atualizações entregues por OTA
-      </h5>
-
-      <p>
-        Atualizações OTA eficientes para qualquer dispositivo compatível por meio do
- programa beta do Android. Não é preciso atualizar manualmente.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Feedback e suporte
-      </h5>
-
-      <p>
-        Informe problemas e dê-nos feedback usando o
-<a href="{@docRoot}preview/bug">issue tracker</a>. Conecte-se a outros
- desenvolvedores na
- <a href="{@docRoot}preview/dev-community">Comunidade N&nbsp;Developer</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">Cronograma e atualizações</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  O N Developer Preview será executado a partir de 3 de março de 2016 até o último lançamento público do Android N
- para AOSP e OEMs, planejado para o terceiro trimestre de 2016.
-</p>
-
-<p>
-  Nos marcos mais importantes do desenvolvimento, forneceremos atualizações para seu ambiente de teste e
- desenvolvimento. De modo geral, você pode esperar atualizações mensais (intervalo de
- 4 a 6 semanas). Os marcos estão listados abaixo.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (versão inicial, alfa)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (atualização incremental, alfa)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong> (atualização incremental, beta)</li>
-  <li><strong>Preview 4</strong> (APIs finais e SDK oficial, publicação no Play)</li>
-  <li><strong>Preview 5</strong> (imagens de sistema quase finalizadas para o teste final)</li>
-  <li><strong>Versão final</strong> para AOSP e ecossistema</li>
-</ul>
-
-<p>
-  Cada atualização inclui ferramentas do SDK, imagens de sistema do Preview, emuladores, documentação de
- referência e diferenças entre as APIs.
-</p>
-
-<p>
-  Os <strong>três primeiros marcos do Preview</strong> oferecem um <strong>ambiente
- de teste e desenvolvimento antecipado</strong> para ajudar você a identificar
- problemas de compatibilidade em seus aplicativos atuais e planejar a migração ou o trabalho em recursos
- necessários para desenvolver para a nova plataforma. Esse é o período prioritário no qual você deve
- fornecer feedback sobre os recursos e as APIs e informar problemas de compatibilidade
- &mdash; para isso, use o <a href="{@docRoot}preview/bug">issue
- tracker</a>. As APIs sofrerão algumas alterações nessas atualizações.
-</p>
-
-<p>
-  Nos <strong>Previews 4 e 5</strong>, você terá acesso às <strong>versões finais
- das APIs e do SDK do N</strong>, com as quais poderá desenvolver, além de imagens de sistema quase finalizadas
- para testar comportamentos e recursos do sistema. O Android N fornecerá um
- nível da API padrão no momento. Você poderá iniciar os testes finais de compatibilidade dos seus aplicativos
- legados e refinar códigos novos que usem as APIs ou os recursos do N.
-</p>
-
-<p>
-  Também a partir do Preview 4, você poderá <strong>publicar aplicativos
- para dispositivos</strong> que executem o Android N no nível da API oficial, como
- dispositivos de consumidor que optaram pelo programa beta do Android. Será possível
- publicar nos canais alfa e beta do Google Play primeiro para testar
- seus aplicativos com clientes beta do Android antes de distribuir para os demais clientes
- da loja.
-</p>
-
-<p>
-  Ao testar e desenvolver no Android N, recomendamos que você <strong>mantenha
- o ambiente de desenvolvimento atualizado</strong> à medida que atualizações do Preview são
- lançadas. Para facilitar o processo, você pode inscrever seus dispositivos de teste no
- programa beta do Android e receber <strong>atualizações por OTA</strong> em
- cada marco. Como alternativa, imagens atualizadas do Preview estão disponíveis para
- download e atualização manual.
-</p>
-
-<p>
-  Notificaremos você quando as atualizações do Preview estiverem disponíveis por meio do <a href="http://android-developers.blogspot.com/">Android Developers Blog</a>, além
- deste site e da <a href="{@docRoot}preview/dev-community">Comunidade
- Android N Developer</a>.
-</p>
-
-
-<h2 id="preview_tools">O que o N Developer Preview inclui?</h2>
-
-<p>
-  O N Developer Preview inclui tudo o que é necessário para testar seus aplicativos existentes
- em uma variedade de tamanhos de tela, tecnologias de rede, chipsets de CPU/GPU
- e arquiteturas de hardware.
-</p>
-
-<h3 id="sdk_tools">Ferramentas do SDK</h3>
-
-<p>É possível fazer o download desses componentes pelo SDK Manager no <a href="{@docRoot}studio/intro/update.html">Android Studio</a>:</p>
-
-<ul>
-  <li> <strong>SDK e ferramentas</strong> do N Developer Preview
-  <li> <strong>Imagem do sistema de emulador</strong> (32 bits e 64 bits) do N Developer Preview
-  <li> <strong>Imagem do sistema de emulador para Android TV</strong> (32 bits) do N Developer Preview
-  <li> Bibliotecas de suporte do N Developer Preview (para novos modelos de aplicativos)
-</ul>
-
-<p>
-  Forneceremos atualizações para essas ferramentas de desenvolvimento em cada marco, conforme a necessidade.
-</p>
-
-<h3 id="hardware_system_images">Imagens do sistema de hardware</h3>
-
-<p>
-  O N Developer Preview inclui imagens do Nexus e de outros sistemas de hardware que podem ser usadas ao
- testar e desenvolver em dispositivos físicos. Consulte a página <a href="{@docRoot}preview/download.html">Imagens de dispositivo</a> para ver a lista completa
- de imagens de hardware.
-</p>
-
-<p>
-  Forneceremos imagens de sistema atualizadas para esses dispositivos em cada marco. Você
- pode fazer o download e atualizar as imagens de sistema manualmente
- em seus dispositivos de teste com a frequência necessária. Isso é especialmente útil para ambientes
- de teste automatizados nos quais seja preciso atualizar o dispositivo várias
- vezes.
-</p>
-
-<p class="note"><strong>Observação</strong>:
-  <strong>dispositivos atualizados manualmente não receberão atualizações por OTA</strong> como no
- Preview do ano anterior. Neste ano, você recebe OTAs ao inscrever os dispositivos no
- programa beta do Android &mdash; veja detalhes na próxima seção.
-</p>
-
-<h3 id="android_beta">Atualizações por OTA no programa beta do Android</h3>
-
-<p>
-  Uma novidade do Android N é um programa de atualização por OTA que automaticamente
- fornece as últimas atualizações da prévia do Android N diretamente para os dispositivos inscritos
- no programa. O programa é gratuito e está aberto a todos que tenham
- um dispositivo compatível registrado na conta do Google.
-</p>
-
-<p>
-  Para se inscrever no programa, acesse o site do <a href="https://g.co/androidbeta">programa beta
- do Android</a>. Você
- verá uma lista de todos os dispositivos registrados em sua conta que estejam qualificados para inscrição no
- programa beta do Android.
-</p>
-
-<ol>
-  <li> Escolha os dispositivos nos quais deseja receber atualizações do Android N
-  <li> Clique em Enroll, leia e concorde com os termos de serviço e clique em OK
-</ol>
-
-<p>
-  Seu dispositivo receberá uma atualização pouco tempo depois da inscrição. Na maioria dos casos,
- não é necessário fazer uma redefinição completa para migrar para o Android N, mas
- é recomendável fazer o backup de qualquer dado que você não queira perder antes de
- inscrever o dispositivo.
-</p>
-
-<p>
-  Conforme as atualizações são enviadas ao seu dispositivo, recomendamos que elas sejam baixadas e
- instaladas assim que possível. Mantenha-se atualizado com as
- últimas mudanças na IU, no comportamento, nas APIs e nos recursos do sistema.
-</p>
-
-<p>
-  Quando o Developer Preview for concluído, os dispositivos inscritos
- receberão uma atualização para a versão oficial do Android N.
-</p>
-
-<p>
-  É possível cancelar a inscrição dos seus dispositivos no programa beta do Android a qualquer momento no
- site do beta do Android. Antes de cancelar a inscrição, não deixe de fazer o backup dos dados
- no dispositivo.
-</p>
-
-  <p class="note"><strong>Observação</strong>:
-  Ao cancelar a inscrição, <strong>seu dispositivo será redefinido para as configurações de fábrica</strong>
-, recebendo a última versão
- do Android 6.0 Marshmallow (não necessariamente a versão instalada
- antes da inscrição do dispositivo). Para garantir uma instalação limpa,
- seus dados serão apagados do dispositivo, incluindo contatos, mensagens,
- fotos etc.
-</p>
-
-<h3 id="documentation_and_sample_code">Exemplo de código e documentação</h3>
-
-<p>
-  Estes recursos de documentação estão disponíveis no site do Developer Preview para
- ajudar você a saber mais sobre o Android&nbsp;N:
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Preparação para desenvolver para o
-Android N</a> tem
- instruções passo a passo para você iniciar o trabalho.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">Mudanças
- de comportamento</a> indicam as principais áreas a serem testadas.</li>
-  <li> Documentação de novas APIs, incluindo uma <a href="{@docRoot}preview/api-overview.html">visão geral das APIs</a>, a
-<a href="{@docRoot}preview/setup-sdk.html#docs-dl">referência da
-API</a> disponível para download e guias de desenvolvedor detalhados sobre os recursos principais, como
-suporte para várias janelas, notificações agrupadas, suporte para vários idiomas e outros.
-  <li> <a href="{@docRoot}preview/samples.html">Exemplo de código</a> que
- demonstra como oferecer suporte a permissões e outros novos recursos.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Notas de versão</a>
- para a versão atual do N Developer Preview, incluindo notas de mudanças e
- relatórios de diferenças.
-</ul>
-
-<h4 id="reference">Referência da API para download</h4>
-
-<p>
-  Durante as primeiras atualizações do Preview, você pode fazer o download da
- <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referência da API
- mais recente para a plataforma Android N</a> como um arquivo zip separado. Esse download
- também inclui um relatório de diferenças que ajuda você a identificar as mudanças da API em relação à
- API 23 e à atualização anterior.
-</p>
-
-<p>
-  Quando as APIs do Android N forem finalizadas e um nível da API oficial for atribuído,
- forneceremos a referência da API on-line em <a href="https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Recursos de suporte
-</h3>
-
-<p>
-  Ao testar e desenvolver no N Developer Preview, use estes canais para
- informar problemas e enviar feedback.
-</p>
-
-<ul>
-  <li> O <a href="https://code.google.com/p/android-developer-preview/">Issue
- Tracker do N Developer Preview</a> é o <strong>canal principal de feedback.</strong> É possível informar erros,
- problemas de desempenho e feedback geral pelo issue tracker. Também é possível verificar os
-<a href="{@docRoot}preview/bugs">erros conhecidos</a> e
- encontrar etapas de resolução. Manteremos você atualizado sobre seu problema conforme ele seja avaliado e
- enviado para a equipe de engenharia do Android para análise. </li>
-  <li> A <a href="{@docRoot}preview/dev-community">Comunidade Android N Developer</a> é
- uma comunidade do Google+ onde é possível <strong>se conectar a outros desenvolvedores</strong> que trabalham com o
- Android N. É possível compartilhar observações ou ideias, além de encontrar respostas
- para as dúvidas sobre o Android N. Moderaremos a comunidade e fornecemos respostas e
- orientações conforme for necessário.</li>
-</ul>
-
-<h3 id="targeting">Direcionamento, APIs do Preview e publicação</h3>
-
-<p>
-  O N Developer Preview fornece um sistema apenas para desenvolvimento e uma biblioteca Android
- que <strong>não tem um nível da API padrão</strong>. Caso opte
- pelos comportamentos de compatibilidade para testar o aplicativo (o que é muito
- recomendado), é possível destinar a versão de prévia do Android N
-configurando o <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> do aplicativo
- para <code>“N”</code>.
-</p>
-
-<p>
-  O Android N Developer Preview fornece <strong>APIs de prévia</strong>
- &mdash; as APIs não serão oficiais até o lançamento do SDK final,
- atualmente planejado para o terceiro trimestre de 2016. Isto significa que é possível
- <strong>esperar alterações secundárias de APIs</strong> com o tempo, especialmente
- durante as semanas iniciais do programa. Forneceremos um resumo das alterações
- com cada atualização do Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Observação</strong>: Apesar de as APIs do Preview poderem ser alteradas, os
- comportamentos essenciais do sistema são estáveis e estão prontos para
- serem testados.
-</p>
-
-<p>
-  O Google Play <strong>evita a publicação de aplicativos destinados para o N Developer
- Preview</strong>. Quando o SDK final do Android N estiver disponível, você poderá
- destinar o nível da API do Android N oficial e publicar o aplicativo no Google
- Play pelos canais de lançamento alfa e beta. Enquanto isso, caso queira
- distribuir um aplicativo destinado para Android N para testadores, é possível fazê-lo por e-mail ou
- por download direto do site.
-</p>
-
-<p>
-  No lançamento completo do Android N para AOSP e OEMs, planejado para o terceiro trimestre de 2016,
- você poderá publicar seus aplicativos direcionados ao Android N no canal de lançamento
- público do Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">Como começar</h2>
-
-<p>
-  Para começar o teste do aplicativo com o Android N:
-</p>
-
-<ol>
-  <li> Revise a <a href="{@docRoot}preview/api-overview.html">Visão geral da API</a>
- e as <a href="{@docRoot}preview/behavior-changes.html">Mudanças de comportamento</a> para
- ter uma ideia do que há de novo e como isto afeta os aplicativos. Especificamente,
- obtenha informações sobre os novos recursos de <a href="{@docRoot}preview/features/notification-updates.html">notificações</a> e
- o <a href="{@docRoot}preview/features/multi-window.html">suporte a várias janelas</a>.</li>
-  <li> Configure seu ambiente seguindo as instruções para <a href="{@docRoot}preview/setup-sdk.html">Configurar o Preview SDK</a>
- e configurar os dispositivos de teste.</li>
-  <li> Siga as instruções de <a href="https://developers.google.com/android/nexus/images">atualização
- manual</a> para instalar a última imagem de sistema do Android N no seu dispositivo. </li>
-  <li> Consulte a <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referência da API</a>
- e os <a href="{@docRoot}preview/samples.html">exemplos do Android N</a> para obter mais
- informações sobre os novos recursos de API e como usá-los no seu aplicativo.
-  <li> Participe da <a href="{@docRoot}preview/dev-community">Comunidade Android N
- Developer</a> para obter as notícias mais recentes e conectar-se a outros
- desenvolvedores que trabalham com a nova plataforma.</li>
-</ol>
-
-<p>
-  Agradecemos sua participação no programa Android N Developer Preview!
-</p>
diff --git a/docs/html-intl/intl/pt-br/preview/preview_toc.cs b/docs/html-intl/intl/pt-br/preview/preview_toc.cs
deleted file mode 100644
index 12cb423..0000000
--- a/docs/html-intl/intl/pt-br/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽"> Visão geral do programa</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html"> Suporte e notas da versão</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK"> Configurar o Preview</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試"> Testar em um dispositivo</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">Alterações de comportamento</a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">Otimizações em segundo plano</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">Idioma e localidade</a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers</a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援"> Suporte a várias janelas</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">Notificações</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html"> Economia de dados</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製"> Gravação para TV</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定"> Configurações de segurança de rede</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API"> Suporte a ICU4J</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能"> Recursos de linguagem do Java 8</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html"> Mudanças no Android for Work</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取"> Acesso a diretórios com escopo</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例"> Exemplos</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議"> Contrato de licença</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/pt-br/preview/setup-sdk.jd b/docs/html-intl/intl/pt-br/preview/setup-sdk.jd
deleted file mode 100644
index 9c1f035..0000000
--- a/docs/html-intl/intl/pt-br/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=Configuração do Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Obter o Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Obter o Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">Documentação de referência</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Obter o Java 8 JDK</a></li>
-  <li><a href="#create-update">Atualizar ou criar um projeto</a></li>
-  <li><a href="#next">Próximas etapas</a></li>
-</ol>
-  </div>
-</div>
-
-<p>Para desenvolver aplicativos para o Android N Preview, você precisa fazer algumas atualizações
-no ambiente de desenvolvedor, conforme é descrito nesta página.</p>
-
-<p>Para simplesmente testar a compatibilidade do seu aplicativo na imagem do sistema
-Android N, siga o guia para <a href="{@docRoot}preview/download.html">Testar em um dispositivo Android N</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Obter o Android Studio 2.1</h2>
-
-<p>A plataforma Android N adiciona suporte para <a href="{@docRoot}preview/j8-jack.html">recursos de linguagem do Java 8</a>,
- o que requer um novo compilador chamado Jack. A versão mais recente do Jack
-só é compatível com o Android Studio 2.1 no momento. Portanto, se quiser
-usar os recursos de linguagem do Java 8, será preciso usar o Android Studio 2.1 para
-compilar seu aplicativo. Caso contrário, não será preciso usar o Jack, mas ainda será
-necessário atualizar para o JDK 8 para desenvolver para a plataforma Android N,
-conforme descrito abaixo.</p>
-
-<p>Se você já instalou o Android Studio, verifique se tem o Android
-Studio 2.1 ou superior clicando em <strong>Help &gt; Check for Update</strong>
-(no Mac, <strong>Android Studio &gt; Check for Updates</strong>).</p>
-
-<p>Se não o tiver, <a href="{@docRoot}studio/">baixe o Android
-Studio 2.1 aqui</a>.</p>
-
-
-<h2 id="get-sdk">Obter o N Preview SDK</h2>
-
-<p>Para começar a desenvolver com as APIs do Android N, instale o
-Android N Preview SDK no Android Studio da seguinte maneira:</p>
-
-<ol>
-  <li>Abra o SDK Manager selecionando <strong>Tools &gt; Android &gt;
- SDK Manager</strong>.</li>
-
-  <li>Na guia <strong>SDK Platforms</strong>, marque a caixa de seleção
- <strong>Android N Preview</strong>.</li>
-
-  <li>Clique na guia <strong>SDK Tools</strong> e marque as caixas de seleção
- <strong>Android SDK Build Tools</strong>, <strong>Android SDK
- Platform-Tools</strong> e <strong>Android SDK Tools</strong>
-.
-  </li>
-
-  <li>Clique em <strong>OK</strong> e aceite os termos de licença
- de qualquer pacote que precise ser instalado.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Obter a documentação de referência do N Preview SDK</h3>
-
-<p>
-  Informações detalhadas sobre as APIs do Android N são disponibilizadas na documentação de referência do N Preview
-, que pode ser baixada pela tabela a seguir.
-  Este pacote contém uma versão off-line resumida do site de desenvolvedores do Android
- e inclui uma referência de API atualizada para as APIs do Android N, além de um relatório
- das diferenças entre as APIs.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Documentação</th>
-    <th scope="col">Checksums</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">Obter o Java 8 JDK</h2>
-
-<p>Para compilar o aplicativo para a plataforma Android N e usar algumas ferramentas com o
-Android Studio 2.1, é preciso instalar o Java 8 Developer Kit (JDK 8). Portanto, se
-não tiver a versão mais recente, baixe o JDK 8 agora mesmo.</p>
-
-<p>Em seguida, defina a versão do JDK no Android Studio da seguinte maneira:</p>
-
-<ol>
-  <li>Abra um projeto Android no Android Studio e, em seguida, abra a caixa de diálogo
- Project Structure selecionando <strong>File &gt;
- Project Structure</strong>. (Como alternativa, é possível definir o padrão
- para todos os projetos selecionando <strong>File &gt; Other Settings &gt;
- Default Project Structure</strong>.)
-   </li>
-   <li>No painel à esquerda da caixa de diálogo, clique em <strong>SDK Location</strong>.
-   </li>
-   <li>No campo <strong>JDK Location</strong>, insira o local do
- Java 8 JDK (clique no botão à direita
- para procurar em seus arquivos) e clique em <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">Atualizar ou criar um projeto</h2>
-
-<p>
-  Para usar as APIs do Android N, seu projeto deve ser configurado da maneira apropriada.
-</p>
-
-<p>Se planeja usar os recursos de linguagem do Java 8, consulte
-<a href="{@docRoot}preview/j8-jack.html">Recursos de linguagem do Java 8</a>
-para saber mais sobre os recursos do Java 8 com suporte e
-como configurar seu projeto com o compilador Jack.</p>
-
-
-<h3 id="update">Atualizar um projeto existente</h3>
-
-<p>Abra o arquivo
- <code>build.gradle</code> de seu módulo e atualize os valores da seguinte
- forma:
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">Criar um novo projeto</h3>
-
-
-<p>Para criar um novo projeto para desenvolvimento com o Android N Preview SDK:</p>
-
-<ol>
-  <li>Clique em <strong>File &gt; New Project</strong> e siga as etapas
- até chegar na página Target Android Devices.
-  </li>
-  <li>Nela, selecione a opção <strong>Phone and Tablet</strong>.</li>
-  <li>Na opção <strong>Phone and Tablet</strong>, na lista <strong>Minimum
- SDK</strong>, selecione
- <strong>N: Android API 23, N Preview (Preview)</strong>.</li>
-</ol>
-
-
-<h2 id="next">Próximas etapas</h2>
-
-<ul>
-  <li>Siga o guia para <a href="{@docRoot}preview/download.html">Testar em um dispositivo Android N</a>.</li>
-  <li>Saiba mais sobre a plataforma Android N com
-<a href="{@docRoot}preview/behavior-changes.html">Mudanças de comportamento</a>
-e <a href="{@docRoot}preview/api-overview.html">Recursos de APIs do
-Android N</a>.</li>
-</ul>
-
diff --git a/docs/html-intl/intl/pt-br/preview/support.jd b/docs/html-intl/intl/pt-br/preview/support.jd
deleted file mode 100644
index 9ae32c8..0000000
--- a/docs/html-intl/intl/pt-br/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=Notas da versão e suporte
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Neste documento</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">Alertas gerais</a></li>
-      <li><a href="#new">Novidades no DP3</a></li>
-      <li><a href="#ki">Problemas conhecidos</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Estão disponíveis dois canais de suporte principais para quem está desenvolvendo ou testando
- com o Android N Developer Preview: Registre relatórios de erro em <a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a> para
- erros específicos de dispositivo, do sistema e do Google App. Para problemas com outros aplicativos,
- entre em contato diretamente com o desenvolvedor.
-</p>
-
-<p>Para discutir problemas ou ideias com outros desenvolvedores que trabalham com o Android N, junte-se à
-<a href="{@docRoot}preview/dev-community">comunidade Developer Preview do Google+</a>.</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Data: Maio de 2016<br>
-        Versão: NPD35K<br>
-        Suporte do emulador: x86 &amp; ARM (32/64 bits)<br>
-        Serviços Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">Alertas gerais</h3>
-
-<p>
-  Esta versão do Developer Preview é para <strong>desenvolvedores de aplicativos e outros
- usuários iniciais</strong> e está disponível para uso diário, desenvolvimento ou
- testes de compatibilidade. Esteja ciente destas notas gerais sobre a
- versão:
-</p>
-
-<ul>
-  <li>Esta versão pode ter vários <strong>problemas de estabilidade</strong> em
- dispositivos compatíveis. Os usuários podem encontrar instabilidade no sistema, como
- panes e falhas do kernel.
-  </li>
-
-  <li>Alguns aplicativos <strong>podem não funcionar como esperado</strong> na nova
- versão da plataforma. Isso inclui aplicativos do Google e outros aplicativos.
-  </li>
-
-  <li>O Developer Preview 3 foi <strong>aprovado pelo Compatibility Test Suite (CTS)
-</strong> nestes dispositivos: Nexus 5X, Nexus 6, Nexus 6P e Pixel
- C. Aplicativos que dependem de versões aprovadas pelo CTS
- funcionam normalmente nesses dispositivos (por exemplo, Android Pay).
-  </li>
-
-  <li>O Developer Preview 3 está <strong>disponível em todos os
- dispositivos compatíveis:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel
-  C, General Mobile 4G (Android One), assim como Sony Xperia Z3 (modelos D6603 e
-  D6653).
-
-  </li>
-</ul>
-
-
-<h3 id="new">Novidades no DP3</h3>
-
-<h4 id="">Modo RV para Android</h4>
-
-<p>
-  O Android N adiciona compatibilidade de plataformas e otimizações para um novo Modo RV que dá aos
- desenvolvedores a capacidade de projetar experiências de RV móveis de alta qualidade para os usuários. Há
- diversas melhorias de desempenho, incluindo o acesso a um núcleo exclusivo da CPU
- para aplicativos de RV. Dentro dos aplicativos, é possível aproveitar o rastreamento inteligente
- da cabeça e notificações estéreo que funcionam para RV. Mais importante,
-o Android N oferece gráficos de latência muito baixa.
-</p>
-
-<p>
-  Para obter mais informações, consulte o <a href="https://developers.google.com/vr/android/">Google VR SDK para Android</a>.
-</p>
-
-<h4 id="">Modo de desempenho sustentado</h4>
-
-<p>
-  O Android N inclui compatibilidade opcional para <a href="{@docRoot}preview/api-overview.html#sustained_performance_api">modo de desempenho
-sustentado</a>, permitindo que OEMs ofereçam dicas sobre
- capacidades de desempenho do dispositivo para aplicativos de longa duração. Desenvolvedores de aplicativos podem usar
- essas dicas para ajustar os aplicativos para um nível de
- desempenho do dispositivo previsível e consistente em períodos longos de tempo. Desenvolvedores de aplicativos podem testar essa nova
- API na prévia para desenvolvedores apenas em dispositivos Nexus 6P.
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  A partir da versão 51 do Android N, o WebView executará conteúdo da web em um
- processo de segurança separado quando a opção de desenvolvedor “Multiprocess WebView”
- estiver ativada. A equipe do WebView quer ouvir comentários sobre compatibilidade e
- desempenho durante a execução no N antes de ativar o Multiprocess WebView em uma
- versão futura do Android. Nesta versão, regressões no tempo de inicialização, no
- uso de memória total e no desempenho de renderização do software são esperadas.
-</p>
-
-<p>
-  Queremos
- ser informados se você encontrar problemas inesperados no modo multiprocesso. Entre em contato com a equipe WebView <a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">
- enviando um relatório de erros</a>.
-</p>
-
-<h4 id="">Auxiliar de atalhos de teclado</h4>
-
-<p>
-  No Android N, o usuário pode pressionar <code>Meta+/</code> para acionar uma tela de <strong>atalhos
- de teclado</strong> que exibe todos os atalhos disponíveis do
- sistema e do aplicativo em questão. Os desenvolvedores podem adicionar os próprios atalhos ou
- ativar a tela de atalhos nos aplicativos. Consulte o <a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Auxiliar de
-atalhos de teclado</a> para saber mais.
-</p>
-
-<h4 id="">FrameMetrics API</h4>
-
-<p>
-  O DP3 introduz uma nova <a href="{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>
- que permite que um aplicativo monitore o desempenho de renderização da IU ao expor uma API pubsub de
- transmissão para transferir informações sobre sincronização de quadros para a
- janela atual do aplicativo. <code>FrameMetricsListener</code> pode ser usado para medir
- o desempenho da IU em nível de interação em produção com granularidade maior e
- sem precisar de uma conexão USB.
-</p>
-
-<h4 id="api-changes">Alterações de recursos e API</h4>
-
-<dl>
-  <dt>
-    Atalhos do inicializador e a Launcher Shortcuts API
-  </dt>
-
-  <dd>
-    Decidimos adiar esse recurso para uma versão futura do Android. Planejamos
- remover as Launcher Shortcuts APIs (ShortcutManager e outros) da
- API pública do Android N a partir da próxima prévia para desenvolvedores.
-  </dd>
-
-  <dt>
-    WebView JavaScript executado antes do carregamento da página
-  </dt>
-
-  <dd>
-    Começando em aplicativos destinados para o Android N, o contexto do JavaScript é redefinido
- quando uma nova página é carregada. Atualmente, o contexto é transferido para
- a primeira página carregada em uma nova situação de {@link android.webkit.WebView}.
-    Os desenvolvedores que desejam inserir JavaScript no {@link
-    android.webkit.WebView} devem executar o script antes de a página
- começar a carregar.
-  </dd>
-
-  <dt>
-    WebView de Geolocalização em origens desprotegidas
-  </dt>
-
-  <dd>
-    Começando em aplicativos destinados ao Android N, a API de geolocalização será
- permitida apenas em origens seguras (por HTTPS). Essa política tem como objetivo proteger
- as informações privadas dos usuários quando eles estiverem usando uma conexão desprotegida.
-  </dd>
-
-  <dt>
-    Economia de dados
-  </dt>
-
-  <dd>
-    Começando no Developer Preview 3, os aplicativos podem usar uma intenção para exibir uma
- caixa de diálogo do sistema que permite que os usuários adicionem o aplicativo diretamente na
- lista de permissões da Economia de dados. Consulte a <a href="{@docRoot}preview/api-overview.html#data_saver">documentação sobre a Economia de dados
-</a> para obter mais detalhes.
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">Bloqueio de números</a>
-  </dt>
-
-  <dd>
-    Se um usuário não autorizado tenta bloquear ou desbloquear um número, agora a
- operação falha com {@link java.lang.SecurityException}. (Anteriormente,
- a operação lançava {@link java.lang.UnsupportedOperationException}.)
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">Quick Settings Tile
-API</a>
-  </dt>
-
-  <dd>
-    Agora o sistema usa os metadados da atividade para decidir o modo do bloco.
-    (Anteriormente, o modo do bloco era determinado pelo valor de retorno do
- <code>TileService.onTileAdded()</code>.) Para obter mais informações, consulte
-<code>TileService.META_DATA_ACTIVE_TILE</code> na <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referência da API</a>, disponível para download.
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">Correções de problemas relatados por desenvolvedores</h4>
-
-<p>
-  Diversos problemas relatados por desenvolvedores foram corrigidos, incluindo:
-</p>
-
-<ul>
-  <li>Reprodução de áudio por Bluetooth interrompida após 1 música (erro <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
-  </li>
-
-  <li>Pixel C falha consistentemente (erro <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
-  </li>
-
-  <li>Problemas de notificação do Relógio e Aviso (erro <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
-  </li>
-
-  <li>Pixel C reinicia quando conectado ao MacBook Pro via cabo USB C (erro
-  <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
-  </li>
-
-  <li>Agenda errada por um dia (erro <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo retorna dados inválidos (erro <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
-  </li>
-
-  <li>No Nexus 6p, o Bluetooth desconecta continuamente (erro <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
-  </li>
-</ul>
-
-<p>Para obter a lista completa de problemas corrigidos, consulte<a href="https://goo.gl/6uCKtf"> o
-issue tracker</a>.</p>
-
-<h3 id="ki">Problemas conhecidos</h3>
-
-<h4>Acessibilidade</h4>
-
-<ul>
-  <li>Impossível ouvir a produção de TTS quando o valor de inclinação está configurado quase no nível máximo.
-  </li>
-
-  <li>Recursos e configurações de acessibilidade podem ser interrompidos quando o usuário adiciona um
- perfil de trabalho, incluindo gesto e configuração de ampliação. O
- estado de acessibilidade é restaurado na próxima vez em que o usuário toca nas configurações relacionadas.
-  </li>
-</ul>
-
-<h4>Câmera</h4>
-
-<ul>
-  <li>O aplicativo Câmera mostrou instabilidade; ele pode falhar em diversas
- circunstâncias, como quando é inicializado em modo de várias janelas.
-  </li>
-
-  <li>Pressionar o obturador continuamente no modo panorama pode fazer o
- aplicativo Câmera falhar.
-  </li>
-</ul>
-
-<h4>Áudio</h4>
-<ul>
-  <li>Um problema na plataforma do reprodutor de áudio impede alguns aplicativos de funcionarem
- normalmente. Por exemplo, o Skype e outros aplicativos são afetados por esse problema.
-  </li>
-</ul>
-
-<h4>Conectividade</h4>
-
-
-<ul>
-  <li>Quando um dispositivo Bluetooth Low Energy (BLE) de função periférica anuncia um
- serviço e um dispositivo BLE de função central é conectado, o dispositivo de função periférica
- é desconectado rapidamente.
-  </li>
-
-  <li>A conexão Wi-Fi pode cair quando a tela está desligada.
-  </li>
-
-  <li>Conexões RFCOMM são instáveis e podem resultar em corrompimento de dados e
- oscilação na conexão.
-  </li>
-
-  <li>Os estados de rede ativos ({@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} e {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}) podem retornar valores incorretos durante algumas
- situações de segundo plano restritas.
-  </li>
-</ul>
-
-
-<h4>
-  Inicializador
-</h4>
-
-<ul>
-  <li>A bandeja Todos os Aplicativos padrão do inicializador pode parar de responder após
- desligar e ligar a tela. Retornar à tela inicial e reinicializar
- a bandeja Todos os Aplicativos pode resolver o problema.
-  </li>
-</ul>
-
-<h4>
-  Teclado
-</h4>
-
-<ul>
-  <li>Ao atualizar um dispositivo com Android 6.0 ou anterior para o N Developer
- Preview, o Teclado do Google não preserva os dados de preferências como configurações recentes de
- emoticons e som.
-  </li>
-
-  <li>O Teclado do Google em idioma indiano pode ficar instável.
-  </li>
-
-  <li>Ao inserir texto em um campo de senha, o usuário pode selecionar russo como
- o idioma de entrada, mas o teclado continua em inglês. Isso impede que o
- usuário insira senhas no idioma russo.
-  </li>
-</ul>
-
-<h4>
-  Localidades e idiomas
-</h4>
-
-<ul>
-  <li>Ao usar localidade da direita para esquerda (RTL), o sistema pode
- alterar inesperadamente para apresentação de esquerda para direita (LTR) após a reinicialização do dispositivo.
-  </li>
-</ul>
-
-<h4>Mídia</h4>
-
-<ul>
-  <li>Reprodução de mídia instável no Nexus 9 e Nexus Player, incluindo
- problemas ao reproduzir vídeos em HD.
-  </li>
-</ul>
-
-<h4>
-  Modo de várias janelas
-</h4>
-
-<ul>
-  <li>O dispositivo pode congelar após mudar a orientação em modo de várias janelas.
-  </li>
-
-  <li>Atualmente, diversos aplicativos apresentam problemas no modo de várias janelas:
-    <ul>
-      <li>A IU do sistema pode falhar ao ancorar o brilho de Settings &gt; Display &gt;
- Screen no modo de várias janelas.
-      </li>
-
-      <li>O aplicativo Câmera pode falhar quando inicializado em modo de várias janelas.
-      </li>
-
-      <li>O YouTube pode falhar quando inicializado em modo de várias janelas. Para corrigir o
- problema, você deve limpar os dados do aplicativo do YouTube em Storage &gt; Apps &gt;
- YouTube.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play Services
-</h4>
-
-<ul>
-  <li>Aplicativos que usam Google Cast via Google Play Services podem ficar instáveis quando
- o usuário seleciona uma localidade do sistema que usa letras e números fora do
- intervalo ASCII.
-  </li>
-</ul>
-
-<h4>
-  Política do dispositivo do Android for Work e Google Apps
-</h4>
-
-<ul>
-  <li>O aplicativo de Política do dispositivo pode falhar quando o usuário desbloqueia o dispositivo com a
- tela de “status da política do dispositivo” fixada.
-  </li>
-
-  <li>Depois de configurar o perfil de trabalho com a criptografia baseada em arquivos habilitada e
- desativar o perfil de trabalho, os usuários devem desbloquear o bloqueio de tela de perfil primário para poder
- acessar novamente os aplicativos do Work.
-  </li>
-
-  <li>O dispositivo é reinicializado após remover o padrão de bloqueio de segurança e abrir
- aplicativos de trabalho/pessoal no modo de várias janelas.
-  </li>
-
-  <li>A configuração DISALLOW_VPN_CONFIG faz com que a caixa de diálogo de autorização apareça como
- always-on-vpn pelo Cliente de política do dispositivo.
-  </li>
-
-  <li>O tráfego não é bloqueado até a VPN conectar no modo always-on-vpn.
-  </li>
-</ul>
-
-<h4>
-  Armazenamento externo
-</h4>
-
-<ul>
-  <li>Aplicativos podem ficar instáveis quando o usuário os transfere do armazenamento interno
- para o armazenamento externo adotável (isso pode incluir um cartão SD ou dispositivos conectados
- via USB).
-  </li>
-</ul>
-
-<h4>
-  Zoom de tela e vários APKs no Google Play
-</h4>
-
-<ul>
-  <li>Em dispositivos com Android N, o Google Play Services 9.0.83 relata incorretamente
- a densidade de tela atual em vez da densidade de tela estável. Quando o
- zoom de tela é habilitado nesses dispositivos, isso pode fazer com que o Google Play selecione uma
- versão de um aplicativo com vários APKs projetada para telas menores. Esse problema foi
- corrigido na próxima versão do Google Play Services e será incluído em uma versão
- próxima do Developer Preview.
-  </li>
-
-  <li>Em dispositivos com Android N, o Google Play Services 9.0.83 atualmente relata
- compatibilidade com Vulkan, mas não com a versão do Vulkan. Isso pode fazer com que o Google Play selecione uma
- versão de um aplicativo com vários APKs projetado para compatibilidade com versões anteriores do Vulkan em
- dispositivos compatíveis com versões mais recentes. Atualmente, o Google Play Store
- não aceita carregamento de aplicativos que usam segmentação de versão do Vulkan. Essa compatibilidade
- será adicionada ao Google Play Store no futuro e corrigida na próxima
- versão do Google Play Services (a ser incluída em uma versão futura do Developer Preview
-). Qualquer dispositivo N que estiver usando a versão 9.0.83 do Google Play Services
- continuará a receber versões dos aplicativos com segmentação básica de compatibilidade com o Vulkan.
-  </li>
-</ul>
-
-<h4 id="">Notificações</h4>
-
-<ul>
-  <li>MessagingStyle não exibe notificações com emissor “null” (próprio).
-  </li>
-</ul>
-
-<h4 id="">Ferramentas para desenvolvedor</h4>
-
-<ul>
-  <li>
-    <code>adb</code> pode às vezes se desconectar durante o uso da depuração JDWP.
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Data: Abril de 2016<br>
-        Versões: NPC91K, NPC91O<br>
-        Suporte do emulador: x86 &amp; ARM (32/64 bits)<br>
-        Serviços Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">Novidades no DP2</h3>
-
-<ul>
-  <li>Compatibilidade da plataforma com Vulkan, uma nova API de renderização 3D que fornece
- controle explícito e com baixa sobrecarga da GPU (unidade de processamento gráfico), além de oferecer
- desempenho aprimorado para aplicativos com muitas chamadas de desenho. Para saber mais, consulte a
-  <a href="{@docRoot}ndk/guides/graphics/index.html">documentação</a>.
-  </li>
-
-  <li>Novos emoticons de pessoas com compatibilidade com variações de tons de pele e glifos do Unicode 9.
-  Os tons de pele e os novos emoticons não aparecerão até que os teclados adicionem compatibilidade para
- eles na paleta. Os aplicativos não precisam tomar medidas para
- aproveitar esses novos emoticons, a menos que usem uma fonte que não seja no sistema. Desenvolvedores
- IME devem incorporar a compatibilidade para os novos emoticons.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">Launcher
-    Shortcuts API</a>: Aplicativos que usam <code>ShortcutManager</code> para enviar
- atalhos para pontos de partida dentro deles mesmos para o inicializador.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">Várias janelas</a>:
-    Agora você pode especificar uma altura e um comprimento mínimos separados para uma
- atividade. Além disso, vários nomes de API foram ligeiramente alterados.
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">Correções de problemas relatados por desenvolvedores</h4>
-
-<p>
-  Diversos problemas relatados por desenvolvedores foram corrigidos, incluindo:
-</p>
-
-<ul>
-  <li>Impossível conectar com SSID oculto ou Wi-Fi sem transmissão. (erro <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>)
-  </li>
-
-  <li>O estado mudo do microfone persiste em várias atividades. (erro <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>)
-  </li>
-
-  <li>Alterar o foco no modo de várias janelas pausa o YouTube. (erro <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>)
-  </li>
-
-  <li>Resposta direta pode fechar atividades abertas. (erro <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>)
-  </li>
-
-  <li>Diversas correções de estabilidade.
-  </li>
-</ul>
-
-<h3 id="dp2-general">Alertas gerais</h3>
-
-<p>
-  Esta versão do Developer Preview é apenas para <strong>desenvolvedores de aplicativos</strong>
- e foi projetada para uso apenas em testes de compatibilidade e desenvolvimento inicial.
-  Esteja ciente destas notas gerais sobre a versão:
-</p>
-
-<ul>
-
-  <li>Os componentes da ferramenta de desenvolvimento e bibliotecas de suporte foram atualizados
- para a versão DP2. Lembre-se de atualizar seu ambiente de desenvolvimento de prévia
- antes de desenvolver para o DP2. Para obter instruções sobre como configurar seu ambiente
- de desenvolvimento, consulte
- <a href="{@docRoot}preview/setup-sdk.html">Configuração do Preview</a>.
-  </li>
-
-  <li>Esta versão tem diversos problemas de estabilidade e desempenho em todos os dispositivos,
- portanto, <strong>não é adequada para uso diário em celulares ou tablets</strong>,
- especialmente para quem não é desenvolvedor.
-  </li>
-
-  <li>A vida útil da bateria e o desempenho não foram otimizados nesta
- versão:
-
-    <ul>
-      <li>Sabe-se que o <strong>desempenho do sistema e de aplicativos fica lento/instável
- periodicamente</strong> e dispositivos podem parar de responder ocasionalmente. Esses
- problemas podem aumentar com o uso prolongado.
-      </li>
-
-      <li>A vida útil da bateria pode regredir nesta versão em casos de uso de ligar e
- desligar a tela.
-      </li>
-    </ul>
-  </li>
-
-  <li>Alguns <strong>aplicativos podem não funcionar normalmente</strong> no Developer Preview
- 2. Isso inclui aplicativos do Google e outros aplicativos.
-  </li>
-
-  <li>Esta versão inicial não foi aprovada pelo <strong>Compatibility Test Suite (CTS)
-</strong>. Aplicativos que dependem de versões aprovadas pelo CTS não funcionarão
- (por exemplo, o Android Pay).
-  </li>
-
-  <li>Essa versão de prévia é compatível com os dispositivos a seguir: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9 e Pixel C, além do General Mobile 4G
-  (Android One). Compatibilidade com o Nexus Player em breve.
-  </li>
-
-
-  <li><a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> foi
- atualizado para lidar com alterações na API entre o DP1 e o DP2.
-  </li>
-</ul>
-
-<h3 id="dp2-ki">Problemas conhecidos</h3>
-
-<h4>Desempenho e bateria</h4>
-
-<ul>
-  <li>Sabe-se que o desempenho do sistema e de aplicativos fica <strong>lento/instável
- periodicamente</strong> e o dispositivo pode parar de responder ocasionalmente. Esses
- problemas podem aumentar com o uso prolongado.
-  </li>
-</ul>
-
-<h4>Contas do Google</h4>
-
-<ul>
-  <li>Em alguns casos, podem ocorrer problemas com o
- <code>AccountManagerService</code> que impedem o login em contas do Google.
-  </li>
-</ul>
-
-<h4>Atualização do sistema</h4>
-
-<ul>
-  <li>O dispositivo pode reinicializar imediatamente após atualizar para o DP2.
-  </li>
-</ul>
-
-<h4>Acessibilidade</h4>
-
-<ul>
-  <li>Problemas ao ouvir a produção de texto para voz (TTS) quando o valor de inclinação está configurado
- quase no nível máximo.
-  </li>
-</ul>
-
-<h4>Bluetooth</h4>
-
-<ul>
-  <li>Características do Bluetooth Low Energy (LE) GATT usam o tipo de gravação
- errado e não serão enviadas a um dispositivo remoto. Assim, por exemplo, alguns dispositivos de fitness
- não funcionarão.
-  </li>
-</ul>
-
-<h4>Assistente de configuração</h4>
-
-<ul>
-  <li>A opção de restaurar dados em um dispositivo novo (ou dispositivo recentemente redefinido) da
- “Your Google Account” não pode ser realizada no assistente de configuração. Você deve restaurar os
- dados de um dispositivo existente selecionando “another Android device” no
- assistente de configuração ou configurá-lo como um novo dispositivo.
-  </li>
-</ul>
-
-<h4>Desbloquear OEM</h4>
-
-<ul>
-  <li>Em alguns dispositivos, <strong>Enable OEM unlock</strong> está desabilitado em
- “Developer Options” durante o uso do DP2.<br>
-  <strong>Solução alternativa:</strong> Inscreva-se no
- programa beta do Android (se ainda não estiver inscrito) acessando
- <a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a>. Depois, inscreva-se e aceite fazer
- o downgrade OTA. Cancelar a inscrição causa o downgrade para o Android 6.0. Agora você
- deve poder escolher <strong>Enable OEM unlock</strong> em
-  “Developer Options”. Os dados pessoais são apagados após o downgrade do
- dispositivo; entretanto, o desbloqueio do bootloader pode já ter apagado esses dados.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Desafio de segurança de perfil de trabalho
-    <ul>
-      <li>Após a migração para o N ou após o usuário criar perfis de trabalho, os
- perfis de trabalho não podem criar chaves no armazenamento de chaves até o usuário alterar o
- padrão, o PIN ou a senha ou configurar um Desafio do Work.
-      </li>
-
-      <li>No modo de inicialização direta, aplicar as restrições de senha ao dispositivo
- faz com que o perfil de trabalho seja desbloqueado, mesmo se o dispositivo estiver bloqueado.
-      Isso torna o perfil de trabalho acessível, mesmo que ele deva estar protegido
- pela tela de bloqueio do dispositivo.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always on VPN
-    <ul>
-      <li>Se modo Always on VPN estiver ativado, mas uma VPN não estiver disponível, os aplicativos
- se conectarão pela rede comum. Os aplicativos devem ficar off-line se não há nenhuma
- conexão VPN disponível.
-      </li>
-
-      <li>Quando o modo Always On estiver ativado, a conexão por VPN não será estabelecida após
- um dispositivo reiniciar no modo de reinicialização direta, mesmo se o usuário desbloquear a
- tela de bloqueio protegida.
-      </li>
-    </ul>
-  </li>
-
-  <li>Suspensão de pacotes
-    <ul>
-      <li>Os administradores do dispositivo podem suspender pacotes críticos do sistema, o que pode provocar
- comportamentos inesperados, como realizar chamadas apesar de a caixa de diálogo “Telephone
-      disabled” ser exibida.
-      </li>
-    </ul>
-  </li>
-
-  <li>Outros
-    <ul>
-      <li>O aplicativo de Configurações falha durante a inicialização se {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} está configurado como verdadeiro quando
- o usuário insere mídias físicas, como um cartão SD.
-      </li>
-
-      <li>A primeira verificação em um Perfil de trabalho leva vários minutos para
- ser concluída.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan:</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>Lacunas entre números de vinculação e outro número diferente de zero
- como o primeiro número de vinculação faz com que {@code vkCreateGraphicsPipeline()} falhe.</li>
-      <li>O Vulkan exibe comportamento de amostragem incorreto em coordenadas projetadas de textura.</li>
-      <li>na amostra multithreadCmdBuffer, {@code vkCmdClearColorImage()} falha quando
- é executado com o driver N-DP2.</li>
-      <li>Valores de retorno do {@code vkGetPhysicalDeviceFormatProperties()} não configuram um valor
- para {@code VkFormatProperties::linearTilingFeatures}, que considera um valor de 0 como
- um resultado.</li>
-      <li>Anexos do buffer de quadro de ponto flutuante do Vulkan não são tratados corretamente.</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>Sombreadores SPIR-V podem acionar afirmações de driver.</li>
-      <li>Algumas configurações de pipeline podem fazer {@code vkCreateGraphicsPipeline()}
- falhar.</li>
-  </ul>
-</ul>
-
-<h4>Problemas específicos de dispositivos</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    A conexão de dados falha quando o dispositivo é alternado do slot 1 para o slot 2 do SIM.
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    Impossível ativar a opção “Always On” da Pesquisa de voz.
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    Fotos da Câmera na orientação retrato ficam corrompidas, exceto em
- fotos HDR+.
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    A reprodução de conteúdo HD do Netflix pode falhar no Nexus Player.
-  </dd>
-
-  <dd>
-    Qualquer aplicativo que depende de alterações dinâmicas da resolução de vídeo pode falhar no
- Nexus Player.
-  </dd>
-
-  <dd>
-    Qualquer aplicativo que usa o codec de vídeo VP9 pode falhar no Nexus Player.
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Data: Março de 2016<br>
-        Versões: NPC56P, NPC56R, atualizada: NPC56W, NPC56X<br>
-        Suporte do emulador: x86 &amp; ARM (32/64 bits)<br>
-        Serviços Google Play: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">Alertas gerais</h3>
-
-<p>
-  Esta versão do Developer Preview é apenas para desenvolvedores de aplicativos e foi projetada para
- uso apenas em testes de compatibilidade e desenvolvimento inicial. Esteja ciente
- destas notas gerais sobre a versão:
-</p>
-<ul>
-  <li>Esta versão tem diversos problemas de estabilidade e desempenho em todos os dispositivos,
- portanto, <em>não é adequada para uso diário em celulares ou tablets</em>,
- especialmente para quem não é desenvolvedor.
-  </li>
-
-  <li>Sabe-se que o desempenho do sistema e de aplicativos fica <strong>lento/instável
- periodicamente</strong> e o dispositivo pode parar de responder ocasionalmente. Esses
- problemas podem aumentar com o uso prolongado.
-  </li>
-
-  <li>A vida útil da bateria pode regredir nesta versão em casos de uso de ligar e
- desligar a tela.
-  </li>
-
-  <li>Alguns aplicativos podem não funcionar normalmente no Developer Preview 1. Isso inclui
- aplicativos do Google e outros aplicativos.
-  </li>
-
-  <li>Esta versão inicial não foi aprovada pelo Compatibility Test Suite (CTS). Aplicativos
- que dependem de versões aprovadas pelo CTS não funcionarão (por exemplo, o Android Pay).
-  </li>
-
-  <li>Essa versão de prévia é compatível com os dispositivos a seguir: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, Nexus Player e Pixel C, assim como o General Mobile 4G
-  (Android One).
-  </li>
-</ul>
-
-<h3 id="dp1-platform">Problemas da plataforma</h3>
-
-<h4>Desempenho e bateria</h4>
-
-<ul>
-  <li>Sabe-se que o desempenho do sistema e de aplicativos fica <strong>lento/instável
- periodicamente</strong> e o dispositivo pode parar de responder ocasionalmente. Esses
- problemas podem aumentar com o uso prolongado.
-  </li>
-
-  <li>A vida útil da bateria pode regredir nesta versão em casos de uso de ligar e
- desligar a tela.
-  </li>
-</ul>
-<h4 id="dialer">Discador</h4>
-
-<ul>
-  <li>O aplicativo Discador não é compatível com a inicialização direta. Isso será resolvido mais tarde no
- N Developer Preview.
-  </li>
-
-  <li>A reprodução do correio de voz não funciona.
-  </li>
-</ul>
-
-<h4>Microfone</h4>
-
-<ul>
-   <li>O sistema pode incorretamente manter o microfone no estado mudo em todos os aplicativos e reinicializações. Se você colocar o microfone no mudo em um aplicativo e o estado persistir, abra qualquer aplicativo que tenha controles de som do telefone e desative o mudo.</li>
-</ul>
-
-<h4 id="ui">IU do sistema</h4>
-
-<ul>
-  <li>Algumas strings novas ou modificadas na IU do sistema não foram traduzidas para todos
- os idiomas.
-  </li>
-
-  <li>A IU de visão geral ainda está em desenvolvimento e está sujeita a alterações. Por exemplo,
- pretendemos remover o temporizador que aparece quando o usuário alterna entre
- aplicativos.
-  </li>
-
-  <li>Os controles e botões de alternância das configurações podem ficar lentos ou parecer que pararam de responder.
-  </li>
-
-  <li>O design visual das notificações está sujeito a alterações.
-  </li>
-
-  <li>No aplicativo Gmail, o arquivamento direto de e-mails inclusos em um
- pacote de notificações não funciona corretamente.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Desafio de segurança de perfil de trabalho
-    <ul>
-      <li>Após a migração para o N ou após o usuário criar perfis de trabalho, os
- perfis de trabalho não podem criar chaves no armazenamento de chaves até o usuário alterar o
- padrão, o PIN ou a senha ou configurar um Desafio do Work.
-      </li>
-
-      <li>No modo de inicialização direta, aplicar as restrições de senha ao dispositivo
- faz com que o perfil de trabalho seja desbloqueado, mesmo se o dispositivo estiver bloqueado.
-      Isso torna o perfil de trabalho acessível, mesmo que ele deva estar protegido
- pela tela de bloqueio do dispositivo.
-      </li>
-
-      <li>Quando o usuário insere senha e PIN errados, o sistema não
- exibe nenhuma mensagem informativa; em vez disso, ele apenas limpa o campo
- de entrada. Esse problema não afeta a entrada de padrão ou impressão digital.
-      </li>
-
-      <li>Em um tablet, o segundo plano exibido com o desafio do perfil de trabalho é
- desproporcionalmente pequeno.
-      </li>
-
-      <li>A versão da <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
- Política do dispositivo do Google Apps</a> empacotada com o N Developer Preview
- ainda não é compatível com o recurso de Desafio de segurança de perfil de trabalho.
-        Em vez disso, os desenvolvedores devem usar <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>
- para testar esse recurso.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always on VPN
-    <ul>
-      <li>Se o modo Always on VPN estiver ativado, mas uma VPN não estiver disponível, os aplicativos
- não especificados como exceções na política Always on se conectarão via
- rede comum. Exceto quando especificados como exceções na política Always on,
- os aplicativos deverão ficar off-line se não houver nenhuma conexão VPN disponível.
-        <ul>
-          <li>Quando o modo Always On estiver ativado, a conexão por VPN não será estabelecida
- após um dispositivo reiniciar no modo de reinicialização direta, mesmo se o usuário
- desbloquear a tela de bloqueio protegida.
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>Contatos aprimorados
-    <ul>
-      <li>Dispositivos Bluetooth PBAP/MAP não exibem a identificação de chamadas para
- contatos de trabalho. A próxima versão do Preview corrige esse problema.
-      </li>
-    </ul>
-  </li>
-
-  <li>Modo de trabalho
-    <ul>
-      <li>O Google Now Launcher não mostra se o Modo de trabalho está ativado ou
- desativado. O Launcher também não exibe o estado de suspensão do aplicativo.
-      </li>
-
-      <li>Após o usuário desativar e ativar o Modo de trabalho, o sistema não exibe mais os
- widgets de aplicativos do perfil de trabalho, como a Agenda.
-      </li>
-    </ul>
-  </li>
-
-  <li>Suspensão de pacotes
-  </li>
-
-  <li>Os administradores do dispositivo podem suspender pacotes críticos do sistema, o que pode provocar
- comportamentos inesperados, como realizar chamadas apesar de a caixa de diálogo Telephone
-      disabled ser exibida.
-  </li>
-
-  <li>Outros
-    <ul>
-      <li>O aplicativo de Configurações falha durante a inicialização se {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} está configurado como verdadeiro quando
- o usuário insere mídias físicas, como um cartão SD.
-      </li>
-
-      <li>O estado {@code DPM.setPackagesSuspended} não persiste quando o
- usuário desinstala e reinstala um aplicativo. O aplicativo deve continuar
- suspenso após a desinstalação/reinstalação ou os aplicativos suspensos não podem ser
- desinstalados.
-      </li>
-
-      <li>A primeira verificação em um Perfil de trabalho leva vários minutos para
- ser concluída. Isso pode fazer com que o aplicativo demore mais que o normal para se tornar
- visível na Play EMM API.
-      </li>
-
-      <li>Notificações dos aplicativos do perfil de trabalho não são visíveis para
- detectores de notificações instalados no perfil pessoal. Como resultado, o sistema
- não exibe Notificações conforme esperado.
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >Teclado</h4>
-
-<ul>
-  <li>O pareamento por Bluetooth entre teclados e dispositivos Android pode ser instável.
-  </li>
-</ul>
-
-<h4 >Vídeo</h4>
-
-<ul>
-<li>A reprodução de vídeos pode demorar e exibir interrupções.</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>Wi-Fi passou por refatoramento que pode alterar o
- comportamento de caso isolado da API. Especificamente, aplicativos que tentarem se conectar
- a redes específicas ou que tentarem se reconectar a redes deverão ser testados novamente.
-  </li>
-
-  <li>O cliente DHCP legado foi removido da plataforma. O único
- cliente DHCP compatível com a plataforma é o cliente DHCP introduzido no M.
-  </li>
-</ul>
-
-<h4>Inicialização direta</h4>
-
-<ul>
-  <li>NFC não funciona até o primeiro desbloqueio.
-    <ul>
-      <li>Quando um celular com Bluetooth habilitado é reiniciado, o Bluetooth não
- ativa automaticamente. Você deve reativar o Bluetooth manualmente.
-      </li>
-
-      <li>Sob certas circunstâncias, o toque padrão pode não soar para
- chamadas e mensagens de telefone. Esse comportamento foi corrigido na próxima
- versão do N Preview, com uma exceção (e solução alternativa):
-      </li>
-
-      <li>Em um dispositivos que não tenha sido apagado recentemente -- um que foi inicializado pelo
- menos uma vez desde que foi configurado no modo de inicialização direta -- o
- toque padrão de notificação não soa. O usuário pode resolver esse problema
- selecionando um toque manualmente em Settings.
-      </li>
-
-      <li>A inicialização direta não está ativa por padrão em dispositivos com uma versão do N
- Developer Preview. Para ativar a inicialização direta para testes e
- desenvolvimento, acesse Developer Options e toque em Convert to File Encryption.
-      Nesta prévia de desenvolvedor, isso requer uma reconfiguração de fábrica para fazer o reparticionamento e
- a reformatação do dispositivo para a criptografia baseada em arquivos.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Imagem em imagem para Android TV</h4>
-
-<ul>
-  <li>A integração PIP na IU de Recents não foi finalizada e está sujeita a
- alterações.
-    <ul>
-      <li>A animação da janela PIP não é perfeita. Versões futuras do
- Preview melhorarão isso.
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">Versões futuras do Preview melhorarão
- o design visual e o alinhamento do layout de PIP.
-  </li>
-</ul>
-
-<h4>Relatórios de erros</h4>
-
-<ul>
-  <li>Os relatórios de erros nem sempre são completados com sucesso (como solução alternativa,
- às vezes eles ainda podem ser acessados usando o fornecedor de documentação do relatório de erros
- no armazenamento interno).
-  </li>
-</ul>
-
-<h4>Várias janelas em tela dividida</h4>
-
-<ul>
-  <li>Os aplicativos podem falhar e apresentar comportamentos inesperados da IU quando colocados em
- modo de tela dividida. Esses são problemas de aplicativo que devem ser corrigidos pelo
- desenvolvedor do aplicativo.
-  </li>
-
-  <li>Quando o aplicativo é destinado para uma versão da plataforma Android anterior ao N,
- ele pode não funcionar com avisos de tela dividida que aparecem diversas vezes.
-  </li>
-
-  <li>Manter pressionado o botão Overview enquanto usa um aplicativo com uma
- orientação corrigida pode provocar um comportamento inesperado do aplicativo.
-  </li>
-
-  <li>Os aplicativos podem tremular durante o redimensionamento.
-  </li>
-
-  <li>As animações ainda não estão finalizadas.
-  </li>
-</ul>
-
-<h4>Método de entrada</h4>
-
-<ul>
-  <li>O Teclado do Google volta inesperadamente ao teclado genérico do Google
- quando <b>usa idiomas do sistema</b>, mas o Teclado do Google não é compatível com nenhum
- dos idiomas selecionados nas preferências de idioma do sistema. Ele deve
- voltar para inglês americano.
-    <p>
-      Alternativamente, você pode solucionar esse problema adicionando ao menos um idioma compatível com o
- Teclado do Google.
-    </p>
-  </li>
-</ul>
-
-<h4>Acessibilidade</h4>
-
-<ul>
-  <li>TalkBack exibe problemas com recursos, incluindo Notifications, Quick
-  Settings Tiles e exibição de várias janelas, que podem causar falhas no sistema ou
- uma falta de feedback falado do TalkBack. Versões futuras do Preview
- resolverão esses problemas.
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">Observações e problemas específicos de dispositivos</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>Problemas de reprodução de vídeo, compatibilidade de aplicativo e estabilidade são esperados no
- Nexus Player nesta versão do Preview.
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>O redimensionamento de várias janelas pode causar falhas.</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Dispositivos Nexus 9 podem não ligar após receberem atualizações OTA
- via programa beta do Android. Para se recuperar desse problema, você deve tentar
- instalar manualmente a imagem OTA. Para obter mais informações, consulte
- <a href="{@docRoot}preview/download-ota.html">Aplicação de uma imagem OTA de dispositivo</a>.
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/pt-br/preview/features/direct-boot.jd b/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/pt-br/preview/features/direct-boot.jd
rename to docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
index 8f58841..d95f4cd 100644
--- a/docs/html-intl/intl/pt-br/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Neste documento</h2>
   <ol>
     <li><a href="#run">Solicitar acesso para executar durante a inicialização direta</a></li>
diff --git a/docs/html-intl/intl/pt-br/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
similarity index 92%
rename from docs/html-intl/intl/pt-br/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
index 6a58d76..215afd1 100644
--- a/docs/html-intl/intl/pt-br/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Neste documento</h2>
   <ol>
     <li><a href="#accessing">Acessar um diretório de armazenamento externo</a></li>
@@ -71,8 +71,8 @@
 <p>O sistema tenta conceder acesso ao diretório externo e,
 se necessário, confirma o acesso com o usuário usando uma IU simplificada:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Figura 1.</strong> Um aplicativo solicitando
 acesso ao diretório Pictures.</p>
 
@@ -138,8 +138,8 @@
 negativa para o usuário. Se uma solicitação for negada pelo usuário e o aplicativo solicitar acesso
 novamente, a IU exibirá uma caixa de seleção <b>Não perguntar novamente</b>.</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>Figura 1.</strong> Um aplicativo que faz uma
 segunda solicitação para acesso à mídia removível.</p>
 
diff --git a/docs/html-intl/intl/pt-br/preview/features/security-config.jd b/docs/html-intl/intl/pt-br/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/pt-br/preview/features/security-config.jd
rename to docs/html-intl/intl/pt-br/training/articles/security-config.jd
index 27d8f2e..2ba9b60 100644
--- a/docs/html-intl/intl/pt-br/preview/features/security-config.jd
+++ b/docs/html-intl/intl/pt-br/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Neste documento</h2>
 <ol>
diff --git a/docs/html-intl/intl/pt-br/preview/features/data-saver.jd b/docs/html-intl/intl/pt-br/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/pt-br/preview/features/data-saver.jd
rename to docs/html-intl/intl/pt-br/training/basics/network-ops/data-saver.jd
index f42b9cf..a9803b8 100644
--- a/docs/html-intl/intl/pt-br/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/pt-br/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       Neste documento
     </h2>
@@ -231,4 +231,4 @@
     Adiciona o UID do pacote especificado à lista de permissões para bloquear o uso de dados
  de segundo plano tarifados enquanto a Economia de dados estiver ativada.
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/pt-br/preview/features/picture-in-picture.jd b/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
similarity index 97%
rename from docs/html-intl/intl/pt-br/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
index 4bdc545..baa7d61 100644
--- a/docs/html-intl/intl/pt-br/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Neste documento</h2>
 <ol>
@@ -59,7 +59,7 @@
 vídeo começar a ser reproduzido na tela principal, a janela do PIP será fechada
 automaticamente. Os usuários também podem fechar a janela do PIP em Recents.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Figura 1.</strong> Um vídeo no modo de imagem em imagem
 visível no canto da tela enquanto o usuário navega por conteúdo
 na janela principal.</p>
@@ -116,7 +116,7 @@
 <p>Adicionar um botão de PIP à barra de controle de mídia permite que o usuário entre no
 modo de PIP com facilidade ao controlar a reprodução de um vídeo.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Figura 1.</strong> Um botão do
 modo de imagem em imagem em uma barra de controle de mídia.</p>
 
diff --git a/docs/html-intl/intl/pt-br/preview/features/tv-recording-api.jd b/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/pt-br/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
index 890e140..c6d7bb7 100644
--- a/docs/html-intl/intl/pt-br/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Neste documento</h2>
   <ol>
     <li><a href="#supporting">Indicar suporte para gravação</a></li>
diff --git a/docs/html-intl/intl/ru/preview/behavior-changes.jd b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0-changes.jd
similarity index 98%
rename from docs/html-intl/intl/ru/preview/behavior-changes.jd
rename to docs/html-intl/intl/ru/about/versions/nougat/android-7.0-changes.jd
index a048660..11a2495 100644
--- a/docs/html-intl/intl/ru/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Содержание документа</h2>
 
@@ -74,7 +74,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Рис. 1.</strong> Иллюстрация применения первого уровня ограничений активности системы в режиме Doze
 для экономии заряда аккумулятора.
@@ -93,7 +93,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>Рис. 2.</strong> Иллюстрация применения второго уровня ограничений активности системы в режиме Doze
 после того, как устройство неподвижно в течение определенного времени.
@@ -229,10 +229,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/ru/preview/samples.jd b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0-samples.jd
similarity index 82%
rename from docs/html-intl/intl/ru/preview/samples.jd
rename to docs/html-intl/intl/ru/about/versions/nougat/android-7.0-samples.jd
index 1f674f3..d1dcdb7 100644
--- a/docs/html-intl/intl/ru/preview/samples.jd
+++ b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">Многооконный режим</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   В данном примере показаны преимущества многооконного
 интерфейса для вашего приложения.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Активные уведомления</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   В этом ранее созданном примере показана простая служба, которая отправляет
 уведомления с помощью NotificationCompat. Каждое непрочитанное сообщение от пользователя
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Служба сообщений</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   В этом предварительно созданном примере показано, как использовать
 NotificationManager для определения количества уведомлений,
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Режим Direct Boot</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   В данном примере показано как сохранять и считывать данные в зашифрованном
 хранилище, которое всегда доступно только на загруженном устройстве.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Доступ к выделенным каталогам</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   В данном примере показано, как выполнять чтение и запись данных из определенных
 каталогов при уменьшении числа требуемых разрешений.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
 Загрузить с сайта GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/ru/preview/api-overview.jd b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0.jd
similarity index 98%
rename from docs/html-intl/intl/ru/preview/api-overview.jd
rename to docs/html-intl/intl/ru/about/versions/nougat/android-7.0.jd
index 887ea63..24a93a8 100644
--- a/docs/html-intl/intl/ru/preview/api-overview.jd
+++ b/docs/html-intl/intl/ru/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Основные возможности для разработчиков</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -70,7 +70,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>Рис. 1.</strong> Приложения в режиме разделенного экрана.
 </p>
@@ -126,15 +126,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -261,7 +261,7 @@
 <h2 id="data_saver">Экономия трафика</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Рис. 4.</strong> Настройка экономии трафика.
@@ -296,7 +296,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Рис. 5.</strong> Плитки быстрых настроек в панели уведомлений.
diff --git a/docs/html-intl/intl/ru/preview/index.jd b/docs/html-intl/intl/ru/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/ru/preview/index.jd
rename to docs/html-intl/intl/ru/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/ru/design/patterns/notifications.jd b/docs/html-intl/intl/ru/design/patterns/notifications.jd
deleted file mode 100644
index 4d339c2..0000000
--- a/docs/html-intl/intl/ru/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=Уведомления
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>Документация для разработчиков</h3>
-    <p>Уведомление пользователя</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Уведомления в Android версии 4.4 и ниже</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>Видеоролик</h3>
-    <p>DevBytes: Уведомления в Android L Developer Preview</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>Уведомления позволяют извещать пользователя о релевантных и
-периодически возникающих
-событиях в приложении, таких как новые сообщения в чате или события в календаре.
-Систему уведомлений можно рассматривать как канал новостей, извещающий пользователя о важных
-событиях по мере
-их возникновения, или как журнал, ведущий хронику событий, пока пользователь не обращает на них
-внимания, и синхронизируемый должным образом на всех устройствах Android этого пользователя.</p>
-
-<h4 id="New"><strong>Новые возможности Android 5.0</strong></h4>
-
-<p>В Android 5.0 уведомления были существенно обновлены структурно,
-визуально, и функционально:</p>
-
-<ul>
-  <li>был изменен внешний вид уведомлений в соответствии с новой
-темой Material Design;</li>
-  <li> теперь уведомления доступны на экране блокировки, в то время как
-конфиденциальная информация по-прежнему
- может быть скрыта;</li>
-  <li>уведомления с высоким приоритетом, полученные при включенном устройстве, теперь имеют новый формат и называются
- уведомлениями Heads-up;</li>
-  <li>уведомления синхронизируются с облаком: если удалить уведомление на одном из устройств
-Android, оно будет удалено
- и на остальных устройствах.</li>
-</ul>
-
-<p class="note"><strong>Примечание.</strong> Разработка уведомлений в этой версии
-Android значительно
-отличается от их разработки в предыдущих версиях. Информацию о разработке уведомлений в предыдущих
-версиях можно найти в разделе <a href="./notifications_k.html">Уведомления в Android версии 4.4 и ниже</a>.</p>
-
-<h2 id="Anatomy">Структура уведомления</h2>
-
-<p>В этом разделе описываются основные компоненты уведомления и их
-отображение на устройствах различных типов.</p>
-
-<h3 id="BaseLayout">Базовая компоновка</h3>
-
-<p>Все уведомления имеют, как минимум, базовую компоновку, которую составляют следующие элементы.</p>
-
-<ul>
-  <li> <strong>Значок</strong> уведомления. Значок символизирует
-инициирующее приложение. Он также может
-  указывать на тип уведомления, если приложение генерирует уведомления нескольких
-типов.</li>
-  <li> <strong>Заголовок</strong> уведомления и дополнительный
-<strong>текст</strong>.</li>
-  <li> <strong>Временная метка</strong>.</li>
-</ul>
-
-<p>Уведомления, созданные с помощью {@link android.app.Notification.Builder Notification.Builder}
-для предыдущих версий платформы, выглядят и функционируют в Android
-5.0 так же, как и прежде, за исключением незначительных стилистических отличий, вносимых
-системой. Дополнительную информацию о внешнем виде и функциональности уведомлений в предыдущих версиях
-Android можно найти в разделе
-<a href="./notifications_k.html">Уведомления в Android версии 4.4 и ниже</a>.</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      Уведомление в базовой компоновке на мобильном устройстве (слева) и то же уведомление на носимом устройстве (справа)
-      с фотографией пользователя и значком уведомления
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">Расширенная компоновка</h3>
-
-
-<p>Разработчик может выбрать степень подробности уведомлений, генерируемых его
-приложением. Уведомление может содержать первые
-несколько строк сообщения или миниатюру изображения. В качестве дополнительной
-информации можно предоставлять пользователю
-контекст и, &mdash;в некоторых случаях, &mdash;давать ему возможность прочитать сообщение
-целиком. Чтобы переключаться
- между компактной и расширенной компоновкой, пользователь может применить жест сжатия/масштабирования или
-провести пальцем по экрану.
- Для уведомлений о единичных событиях Android предоставляет
- разработчику приложения три шаблона расширенной компоновки
-(текст, входящая почта и изображения). Ниже приведены скриншоты уведомлений о единичных
-событиях на мобильных устройствах (слева)
- и на носимых устройствах (справа).</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">Действия</h3>
-
-<p>Android поддерживает дополнительные действия, отображаемые в нижней части
-уведомления.
-Благодаря этому пользователи могут выполнять операции, типичные для данного
-уведомления, непосредственно из него, не открывая
-само приложение.
-Это ускоряет взаимодействие и, вместе с операцией "провести пальцем, чтобы удалить", позволяет пользователю сосредоточиться на
-важных для него уведомлениях.</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">При определении количества действий в уведомлении следует проявлять
-благоразумие. Чем больше
-действий предоставлено пользователю, тем выше когнитивная сложность приложения. Ограничьтесь
-минимальным количеством
-действий, предоставив пользователю наиболее важные и
-значимые.</p>
-
-<p>В уведомлениях отдавайте предпочтение действиям</p>
-
-<ul>
-  <li> важным, выполняемым наиболее часто и типичным для отображаемого
-содержимого;
-  <li> позволяющим пользователю быстрее решить задачу.
-</ul>
-
-<p>Избегайте действий</p>
-
-<ul>
-  <li> неоднозначных;
-  <li> совпадающих с действиями, выполняемыми для данного уведомления по умолчанию (например, "Прочитать" или
-"Открыть").
-</ul>
-
-
-
-<p>Следует предоставлять не более трех действий, указав для каждого
-значок и название.
- Добавление действий в базовую компоновку делает уведомление расширяемым,
-даже если
- оно не имеет расширенной компоновки. Поскольку действия отображаются только у
-расширенных
- уведомлений, необходимо, чтобы любое действие,
-которое пользователь может выполнить из
- уведомления, было доступно и в соответствующем
-приложении.</p>
-
-<h2 style="clear:left">Уведомления heads-up</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    Пример уведомления heads-up (входящий телефонный звонок, высокий приоритет),
-появляющегося поверх
-    приложения с эффектом присутствия
-  </p>
-</div>
-
-<p>Когда поступает уведомление с высоким приоритетом (см. изображение справа), оно в течение короткого времени
-отображается
-в расширенной компоновке, позволяя выполнить допустимые действия.</p>
-<p> Затем уведомление принимает обычный
-вид. Если для уведомления установлен высокий, максимальный или полноэкранный <a href="#correctly_set_and_manage_notification_priority">приоритет</a>
-, оно становится уведомлением heads-up.</p>
-
-<p><b>Хорошими примерами событий для уведомлений heads-up являются</b></p>
-
-<ul>
-  <li> входящий телефонный звонок, во время использования устройства;</li>
-  <li> сигнал будильника во время использования устройства;</li>
-  <li> новое SMS-сообщение;</li>
-  <li> низкий уровень заряда аккумулятора.</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">Основные рекомендации</h2>
-
-
-<h3 id="MakeItPersonal">Персонализируете уведомление</h3>
-
-<p>Уведомление о событии, инициированном другим пользователем (например, сообщение или
-обновление статуса), должно содержать изображение пользователя, добавленное с помощью
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}. Кроме того, в метаданные уведомления необходимо включить информацию о
-пользователе (см. {@link android.app.Notification#EXTRA_PEOPLE}).</p>
-
-<p>Главный значок уведомления будет по-прежнему отображаться, чтобы пользователь мог связать
-его со значком
-на строке состояния.</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  Уведомление, идентифицирующее пользователя-инициатора, и отображающее отправленное содержимое.
-</p>
-
-
-<h3 id="navigate_to_the_right_place">Выполняйте переход в нужное место</h3>
-
-<p>Когда пользователь касается тела уведомления (за пределами кнопок
-с действиями), должен осуществляться переход в то место приложения,
-где пользователь сможет просмотреть информацию, о которой извещает уведомление, и действовать в соответствии
-с нею. В большинстве случаев там будет находиться подробное представление одного элемента данных, например, сообщения,
-но возможно и
-сокращенное представление, если накопилось несколько уведомлений. Если приложение переводит
-пользователя на какой-либо уровень, отличный от верхнего, реализуйте навигацию в стеке переходов назад в приложении, чтобы
-пользователь мог нажать системную кнопку "Назад" и вернуться на верхний уровень. Дополнительную информацию можно найти в разделе
-<em>Навигация внутрь приложения с помощью виджетов и уведомлений главного экрана</em> в шаблоне проектирования
-<a href="{@docRoot}design/patterns/navigation.html#into-your-app">Навигация</a>.</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">Правильно выполняйте расстановку приоритетов уведомлений и
-управление ими
-</h3>
-
-<p>Android поддерживает флаг приоритета для уведомлений. Это флаг позволяет
-влиять на позицию уведомления среди других уведомлений и
-гарантировать,
-что пользователь в первую очередь увидит самые важные уведомления. При отправке уведомления можно выбрать один
-из
-следующих уровней приоритета:</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>Приоритет</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>Использование</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>Применяйте для наиболее важных и неотложных уведомлений, извещающих пользователя
-о ситуации,
-критичной по времени или такой, на которую необходимо отреагировать, чтобы продолжить
-выполнение задачи.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>Применяйте, в основном, для передачи важной информации, например, о сообщениях или событиях
-в чате с содержимым, представляющим особый интерес для пользователя.
-Уведомления с высоким приоритетом отображаются как уведомления heads-up.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>Применяйте для всех уведомлений, не входящих ни в одну из описанных здесь категорий.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>Применяйте для уведомлений, которые должны быть переданы пользователю, но
-не являются неотложными. Низкоприоритетные уведомления обычно появляются в конце списка,
-что позволяет использовать их
-для передачи информации, представляющей всеобщий интерес и не имеющей конкретной направленности. Например, если пользователь подписался
-на новости,
- эта информация не должна иметь преимущество перед неотложными или адресными
-сообщениями.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>Применяйте для уведомлений, с контекстной или фоновой информацией, такой как прогноз погоды, или с информацией,
-связанной с местоположением пользователя.
-Уведомления с минимальным приоритетом не отображаются в строке состояния. Пользователь
-обнаруживает их при раскрытии панели уведомления.</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>Как выбрать
-подходящий
-приоритет</strong></h4>
-
-<p>При выдаче уведомлений с приоритетами <code>DEFAULT</code>, <code>HIGH</code> и <code>MAX</code> существует риск, что деятельность
-пользователя будет прервана
-в самом разгаре. Чтобы не раздражать пользователей вашего приложения, применяйте приоритеты этих уровней для
-уведомлений,</p>
-
-<ul>
-  <li> имеющих отношение к другим пользователям;</li>
-  <li> быстро теряющих актуальность;</li>
-  <li> способных немедленно повлиять на поведение пользователя в реальном мире.</li>
-</ul>
-
-<p>Уведомления с приоритетом <code>LOW</code> и <code>MIN</code> могут представлять определенную ценность
-для пользователя. Значительное количество, если не большинство, уведомлений не требует немедленной
-реакции пользователя,  но, тем не менее, содержит информацию, которую пользователь сочтет
-ценной, когда решит
-просмотреть поступившие уведомления. Приоритеты уровней <code>LOW</code> и <code>MIN</code>
- следует присваивать уведомлениям,</p>
-
-<ul>
-  <li> не имеющим прямого отношения к другим пользователям;</li>
-  <li> долго не теряющим актуальность;</li>
-  <li> содержащим информацию, способную заинтересовать пользователя, если он решит
-просмотреть их в свободное время.</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">Определите категорию
-уведомления</h3>
-
-<p>Если уведомление попадает в одну из заранее определенных категорий (см.
-ниже), укажите его
-категорию.  Процессы системного пользовательского интерфейса, например, панель уведомления (или любой
-другой процесс-слушатель
-уведомлений) могут воспользоваться этой информацией при классификации и фильтрации уведомлений.</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>Входящий звонок (голосовой или по видеосвязи) или алогичный запрос синхронной
-связи</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>Входящее личное сообщение (SMS-сообщение, мгновенное сообщение и т. д.)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>Асинхронное массовое сообщение (по электронной почте)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>Событие в календаре</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>Промоакция или реклама</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>Сигнал будильника или таймера</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>Информация о ходе выполнения длительной фоновой операции</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>Новости, поступившие из социальной сети или касающиеся совместного использования ресурсов</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>Ошибка в фоновой операции или статусе аутентификации</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>Управление передачей медиаданных для воспроизведения</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>Обновление статуса системы или устройства.  Зарезервировано для использования системой.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>Индикация работающей фоновой службы</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>Конкретная и привязанная ко времени рекомендация относительно одного объекта.  Например, приложение
-новостей может
-порекомендовать пользователю, какую новость читать следующей.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>Текущая информация о статусе устройства или контекста</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">Суммируйте уведомления</h3>
-
-<p>Если при наличии ожидающего уведомления определенного типа приложение пытается отправить новое
-уведомление того же типа, объедините их в одно сводное уведомление от этого приложения. Не
-создавайте новый объект.</p>
-
-<p>Сводное уведомление формирует сводное описание и дает пользователю возможность
-понять, сколько
-имеется ожидающих уведомлений того или иного типа.</p>
-
-<div class="col-6">
-
-<p><strong>Неправильно</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>Правильно</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">Разработчик может сообщить
-подробности об отдельных уведомлениях, образующих
- сводное, используя расширенную компоновку для резюме. Такой подход позволит пользователям
-лучше разобраться, какие
-уведомления ожидают прочтения, и достаточно ли они интересны, чтобы ознакомиться с ними
-более подробно в
- соответствующем приложении.</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  Расширенное и сжатое сводное уведомление (с использованием <code>InboxStyle</code>)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">Сделайте уведомления
-необязательными</h3>
-
-<p>В распоряжении пользователей всегда должен быть метод управления уведомлениями. Предоставьте пользователю возможность
-отключать уведомления, поступающие от вашего приложения,
-или изменять способы оповещения, такие как звуковой сигнал и
-вибрация.
- С этой целью следует предусмотреть пункт настройки уведомлений в настройках приложения.</p>
-
-<h3 id="use_distinct_icons">Используйте отчетливые значки</h3>
-<p>Беглого взгляда на область уведомлений должно быть достаточно, чтобы распознать
-типы
-ожидающих уведомлений.</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>Правильно</strong></p>
-    <p>Рассмотрите уже существующие значки уведомлений от приложений Android и создайте
-собственные,
-    достаточно уникальные.</p>
-
-    <p><strong>Правильно</strong></p>
-    <p>Придерживайтесь подходящего <a href="/design/style/iconography.html#notification">стиля значков уведомления</a>
- для мелких значков, и
-    <a href="/design/style/iconography.html#action-bar">стиля строки
-действий</a> Material Light для значков
- действий.</p>
-<p ><strong>Правильно</strong></p>
-<p >Стремитесь к визуальной простоте значков, избегайте излишних трудноразличимых
-деталей.</p>
-
-  <div><p><strong>Неправильно</strong></p>
-    <p>Применяйте к мелким значкам и значкам действий дополнительные альфа-эффекты
-(постепенное появление/исчезание).
-    К их краям может быть применено сглаживание, но, поскольку в Android эти значки
-служат масками (то есть,
- используется только    альфа-канал), изображение, как правило, должно отображаться полностью
-непрозрачным.</p>
-
-</div>
-<p style="clear:both"><strong>Неправильно</strong></p>
-
-<p>Чтобы ваше приложение отличалось от других, используйте цвет. Значки уведомлений должны
-представлять собой изображение белого цвета на прозрачном фоне.</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">Правильно используйте индикатор
-уведомлений</h3>
-
-<p>На многих устройствах Android имеется светодиодный индикатор уведомлений,
-информирующий пользователя о
-событиях, когда экран выключен. Уведомления с приоритетом <code>MAX</code>,
-<code>HIGH</code> или <code>DEFAULT</code> должны
-вызывать свечение индикатора, а уведомления с низким приоритетом (<code>LOW</code> и
-<code>MIN</code>) не должны.</p>
-
-<p>Возможности пользователя управлять уведомлениями должны распространяться на светодиодный индикатор. Когда разработчик использует
-DEFAULT_LIGHTS,
-индикатор светится белым цветом. Ваши уведомления не должны вызывать свечение другим
-цветом, если
-пользователь не указал этого явным образом.</p>
-
-<h2 id="building_notifications_that_users_care_about">Создание уведомлений,
- важных для пользователя</h2>
-
-<p>Чтобы пользователям понравилось ваше приложение, необходимо тщательно
-продумать его уведомления.
-Уведомления — это голос приложения. Они определяют его
-индивидуальность. Ненужные или
-несущественные уведомления раздражают пользователя и заставляют его возмущаться тем, как много
-внимания требует от него
-приложение. Поэтому необходимо применять уведомления взвешенно.</p>
-
-<h3 id="when_to_display_a_notification">Ситуации, в которых следует показывать уведомления</h3>
-
-<p>Чтобы создать приложение, от работы с которым пользователи получат удовольствие, необходимо
-осознать, что внимание пользователя
- является ресурсом, требующим бережного обращения. Система уведомлений
-Android была разработана
-так, чтобы как можно меньше отвлекать пользователя.
-Однако
-вы должны отдавать себе отчет в том, что уведомления прерывают
-деятельность пользователя.
-Планируя уведомления, спрашивайте себя, достаточно ли они важны, чтобы
-послужить основанием для такого прерывания. В случае сомнений предоставьте пользователю возможность запросить
-в настройках приложения получение уведомления или измените
-приоритет уведомления на <code>LOW</code> или <code>MIN</code>, чтобы
-не отвлекать пользователя от
-текущих занятий.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   Примеры уведомлений, быстро теряющих актуальность
-  </p>
-
-<p>Хотя правильно работающие приложения ведут себя неназойливо, бывают ситуации,
-заслуживающие того, чтобы приложение по своей инициативе прервало деятельность пользователя уведомлением.</p>
-
-<p>Отправляйте уведомления только в случае <strong>событий, требующих неотложной реакции</strong>, особенно
- если эти синхронные события <strong>имеют прямое отношение к другим пользователям</strong>. Например,
-чат
- представляет собой форму синхронного общения в реальном времени, — другой пользователь
-с нетерпением ожидает вашего ответа. События в календаре являются еще одним хорошим примером ситуации, в которой следует выдать
-уведомление и завладеть
-  вниманием пользователя, потому что в приближающееся календарное событие часто
-вовлечены другие люди.</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">Ситуации,
-в которых не следует показывать уведомления</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>В большинстве остальных случаев уведомления неуместны.</p>
-
-<ul>
-  <li> Не следует извещать пользователя о событиях, не имеющих отношения
-к нему конкретно, или
-  не теряющих актуальность со временем. Например, асинхронные
-и безадресные новости,
-  циркулирующие в социальных сетях, как правило, не требуют немедленного
-привлечения внимания. Пользователям,
-  действительно интересующимся таким новостями, предоставьте возможность запросить соответствующие уведомления.</li>
-  <li> Не генерируйте уведомление, если релевантная свежая информация уже находится
-на экране. Вместо этого
-  воспользуйтесь интерфейсом самого приложения, чтобы донести до пользователя новую информацию
-непосредственно в контексте.
-  Например, приложение-чат не должно генерировать системные уведомления,
-пока пользователь активно общается с собеседником.</li>
-  <li> Не отвлекайте пользователя ради низкоуровневых технических действий, такие как сохранение
-или синхронизация информации или обновление приложения, если приложение или система способны выполнить задачу
-без вмешательства пользователя.</li>
-  <li> Не отвлекайте пользователя, чтобы проинформировать его об ошибке, если
-приложение может восстановиться после нее самостоятельно, не требуя от пользователя
-никаких действий.</li>
-  <li> Не создавайте уведомления, не имеющие осмысленного содержимого и
-всего лишь рекламирующие ваше
-приложение. Уведомление должно нести полезную, актуальную и новую информацию. Не следует
-использовать его
-  исключительно для презентации приложения.</li>
-  <li> Не создавайте избыточные уведомления только для того, чтобы продемонстрировать свой бренд
-пользователям.
-  Такие уведомления раздражают и отталкивают аудиторию. Лучший
-способ сообщать
-  новую информацию небольшими порциями и поддерживать связь пользователей
-с вашим
- приложением заключается в том, чтобы разработать виджет, который они смогут поместить на
- главный экран.</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">Взаимодействие с
-уведомлениями</h2>
-
-<p>Уведомления обозначаются значками в строке состояния. Чтобы получить к ним доступ,
-следует открыть
-панель уведомлений.</p>
-
-<p>Если коснуться уведомления, откроется соответствующее приложение с подробным содержимым,
-связанным с эти уведомлением.
-Если провести пальцем по уведомлению влево или вправо, оно будет удалено из панели.</p>
-
-<h3 id="ongoing_notifications">Постоянные уведомления</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    Постоянные уведомления при воспроизведении музыки
-  </p>
-</div>
-<p>Постоянные уведомления информируют пользователя о текущих фоновых
-процессах.
-Например, плееры сообщают через систему уведомлений информацию о дорожке,
-воспроизводимой в данный момент, и
-это продолжается, пока пользователь не остановит воспроизведение. Кроме того, постоянные уведомления могут
-информировать пользователя
-о ходе выполнения длительных задач, таких как загрузка файла или кодирование видеоданных. Пользователь не может вручную
-удалить постоянное уведомление из панели уведомлений.</p>
-
-<h3 id="ongoing_notifications">Воспроизведение медиаданных</h3>
-<p>В Android 5.0 на экране блокировки не отображаются элементы управления воспроизведением от устаревшего
-класса {@link android.media.RemoteControlClient}. Однако на нем <em>отображаются</em> уведомления, так что теперь каждое
-уведомление приложения о воспроизведении является для пользователей основным
-способом управления воспроизведением в заблокированном состоянии. В результате у приложения появляется больше возможностей
-управлять тем, какие
-кнопки отображать, и каким образом. При этом с точки зрения пользователя система ведет себя непротиворечиво,
-независимо от того, заблокирован ли экран.</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">Диалоговые окна
-и всплывающие уведомления</h3>
-
-<p>Приложение, не отображаемое на экране, не должно генерировать диалоговое окно или всплывающее
-уведомление. Диалоговое окно или всплывающее уведомление
- должно появляться исключительно в качестве немедленной реакции на действия пользователя
-в приложении.
-Более подробные рекомендации по использованию диалоговых окон и всплывающих уведомлений см. в разделе
-<a href="/design/patterns/confirming-acknowledging.html">Подтверждение и уведомление</a>.</p>
-
-<h3>Упорядочение уведомлений по степени важности</h3>
-
-<p>По своей сути уведомления — это новости, и поэтому они принципиально отображаются в
-обратном хронологическом порядке.
-При этом обязательно принимается во внимание
-<a href="#correctly_set_and_manage_notification_priority">приоритет</a>, установленный приложением.</p>
-
-<p>Уведомления являются важной составляющей экрана блокировки и отображаются на видном месте
-каждый
-раз, когда включается дисплей устройства. На экране блокировки мало свободного места, поэтому
-исключительно важно
-выявлять неотложные или наиболее релевантные уведомления. По этой
-причине Android применяет
-сложный алгоритм сортировки уведомлений, в котором учитываются</p>
-
-<ul>
-  <li> временная метка и приоритет, установленный приложением;</li>
-  <li> тот факт, что уведомление только что оповестило пользователя звуковым сигналом
-или вибрацией (иными словами,
- если телефон издает звуки, и пользователь хочет узнать, в чем
-дело, то на экране блокировки
-  должен находиться ответ, понятный с первого взгляда);</li>
-  <li> пользователи, связанные с уведомлением при помощи {@link android.app.Notification#EXTRA_PEOPLE},
- и, в частности, присутствие их в списке помеченных контактов.</li>
-</ul>
-
-<p>Чтобы воспользоваться преимуществами этой сортировки наилучшим образом, думайте в первую очередь о создании
-удобных условий для
-пользователя, и не нацеливайтесь на конкретное место в рейтинге.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Уведомления от Gmail имеют
-приоритет DEFAULT, поэтому они
-  обычно оказываются ниже уведомлений от приложений мгновенного обмена сообщениями, таких как Hangouts, но
-поднимаются в списке
- на некоторое время, когда поступают новые сообщения.
-  </p>
-
-
-<h3>Уведомления на экране блокировки</h3>
-
-<p>Поскольку уведомления видны на экране блокировки, защита конфиденциальной информации пользователей приобретает
-особо
-важное значение. Уведомления нередко содержат частную информацию, и они
-не должны быть доступны
-каждому, кто взял в руки устройство и включил дисплей.</p>
-
-<ul>
-  <li> У устройств, экран блокировки которых защищен (при помощи PIN-кода, графического ключа или пароля), интерфейс имеет
- общедоступную и закрытую части. Элементы общедоступного интерфейса отображаются на защищенном экране блокировки и
- следовательно, видны всем. Закрытый интерфейс находится "позади" экрана блокировки и
-  доступен только пользователю, выполнившему вход в устройство.</li>
-</ul>
-
-<h3>Возможности пользователя контролировать информацию, отображаемую на экране блокировки</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    Уведомления на экране блокировки с содержимым, отображаемым после того, как пользователь разблокирует устройство.
-  </p>
-</div>
-
-<p>При настройке защиты экрана блокировки пользователь может предпочесть,
- чтобы конфиденциальные данные не отображались на защищенном экране блокировки. В этом случае системный пользовательский интерфейс
-учитывает <em>уровень видимости</em> уведомления, чтобы выяснить, какую информацию
-можно отображать без риска.</p>
-<p> Чтобы установить уровень видимости, вызовите
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>
-и укажите одно из следующих значений:</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>.
-Содержимое уведомления отображается полностью.
-  Это значение принимается системой по умолчанию, если уровень видимости не указан.</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
-На экране блокировки отображается основная информация о наличии уведомления, включая его
-значок и название приложения, отправившего его. Прочие данные уведомления скрыты.
-Здесь уместно дать разработчику пару рекомендаций.
-  <ul>
-    <li> Если вы хотите реализовать отдельную общедоступную версию уведомления,
-которую система будет отображать на экране блокировки, создайте замещающий
-объект Notification в поле<code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>.
-
-    <li> Этот параметр предоставляет приложению возможность создавать "цензурированную" версию
-содержимого, достаточно информативную, но скрывающую личную информацию. Рассмотрим в качестве примера приложение для отправки
-SMS-сообщений. Его уведомления содержат текст SMS-сообщения и имя и контактный значок отправителя.
-Такое уведомление должно иметь атрибут <code>VISIBILITY_PRIVATE</code>, но его версия <code>publicVersion</code> может
-содержать полезную информацию, например, "3 новых сообщения", без уточняющих
-подробностей.
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Отображается минимум информации,
-даже без значка уведомления.</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Уведомления на
-Android Wear</h2>
-
-<p>По умолчанию уведомления и их <em>действия</em> передаются на носимые устройства.
-Разработчики могут управлять тем, какие уведомления следует передавать с
-телефона на часы,
-и наоборот. У разработчиков также есть возможность управлять передачей действий. Если
-приложение включает в себя
-действия, которые невозможно выполнить одним касанием, нужно либо скрывать их
-в уведомлениях, отображаемых на носимом
-устройстве, либо обеспечить их привязку к приложению под управлением Android Wear, позволив пользователю
-совершать действие
-на часах.</p>
-
-<h4>Передача уведомлений и действий на другое устройство</h4>
-
-<p>Подключенное устройство, например, телефон, может передавать уведомления на носимое устройство,
-чтобы они отображались и на нем. Аналогичным образом можно передавать действия, чтобы пользователь мог реагировать
-на уведомления непосредственно на носимом устройстве.</p>
-
-<p><strong>Передавайте</strong></p>
-
-<ul>
-  <li> новые мгновенные сообщения;</li>
-  <li> действия, выполняемые одним касанием, например, "+1", "Лайк", "Сердечко".</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>Не передавайте</strong></p>
-
-<ul>
-  <li> уведомления о новых подкастах;</li>
-  <li> действия, соответствующие функциям, недоступным на часах.</li>
-</ul>
-
-
-
-<p><h4>Уникальные действия, определяемые для носимых устройств</h4></p>
-
-<p>Некоторые действия можно выполнить только на носимых устройствах, например:</p>
-
-<ul>
-  <li> выбор из списка шаблонных ответов, например, "Скоро вернусь"</li>
-  <li> действие "Открыть на телефоне";</li>
-  <li> действия "Прокомментировать" или "Ответить", открывающие окно речевого ввода;</li>
-  <li> действия, запускающие приложения, специфичные для Android Wear.</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/ru/preview/j8-jack.jd b/docs/html-intl/intl/ru/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/ru/preview/j8-jack.jd
rename to docs/html-intl/intl/ru/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/ru/preview/features/multi-window.jd b/docs/html-intl/intl/ru/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/ru/preview/features/multi-window.jd
rename to docs/html-intl/intl/ru/guide/topics/ui/multi-window.jd
index b45766c..3583616 100644
--- a/docs/html-intl/intl/ru/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/ru/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Содержание документа</h2>
       <ol>
         <li><a href="#overview">Обзор</a></li>
@@ -68,8 +68,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>Рис. 1.</strong> Два приложения отображаются рядом в режиме разделения экрана.
 </p>
diff --git a/docs/html-intl/intl/ru/preview/download.jd b/docs/html-intl/intl/ru/preview/download.jd
deleted file mode 100644
index 3af4a5a..0000000
--- a/docs/html-intl/intl/ru/preview/download.jd
+++ /dev/null
@@ -1,550 +0,0 @@
-page.title=Тестирование на устройстве
-meta.tags="предварительная версия", "nexus","образ системы"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Прежде чем приступить к загрузке и установке компонентов
-пакета SDK для Android Preview, примите следующие положения и
-условия.</p>
-
-    <h2 class="norule">Положения и условия</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Это лицензионное соглашение для пакета Android SDK Preview (далее "Лицензионное соглашение").
-
-1. Введение
-
-1.1. Лицензия на пакет Android SDK Preview (далее по тексту настоящего Лицензионного соглашения – "Preview", который включает системные файлы Android, пакеты API-интерфейсов и файлы библиотеки Preview, если такие доступны) передается в соответствии с положениями настоящего Лицензионного соглашения. Настоящее Лицензионное соглашение является юридически обязывающим договором между компанией Google и любым лицом, использующим Preview.
-
-1.2. В настоящем Лицензионном соглашении термин "Android" означает набор программного обеспечения Android для устройств, предлагаемый к использованию в рамках проекта Android Open Source Project, который доступен на веб-сайте http://source.android.com/ (сведения, размещенные на этом сайте, могут периодически обновляться).
-
-1.3 "Совместимость с Android" означает любую реализацию Android, которая (i) соответствует документу "Определение совместимости с Android", доступному на веб-сайте о совместимости Android (http://source.android.com/compatibility), где оно периодически обновляется; а также (ii) успешно прошедшему проверку с помощью пакета Android Compatibility Test Suite (CTS).
-
-1.4. Под термином "Google" понимается корпорация Google Inc., главный офис которой находится по адресу 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States (США).
-
-2. Принятие лицензионного соглашения
-
-2.1. Использование Preview возможно только после принятия условий настоящего Лицензионного соглашения. Запрещается использовать Preview, если вы не согласны с указанными в настоящем документе условиями и положениями.
-
-2.2. Нажатие кнопки принятия условий и/или использование Preview означает, что вы согласны с положениями настоящего Лицензионного соглашения.
-
-2.3. Вы не вправе использовать Preview и принимать условия данного Лицензионного соглашения, если по законам США или иных стран, включая страну вашего проживания или использования Preview, запрещается передавать Preview в ваш адрес.
-
-2.4. Если вы используете Preview в рамках своей компании или организации, вы соглашаетесь взять на себя обязательства по соблюдению настоящего Лицензионного соглашения от имени своего работодателя или другого юридического лица, и вы тем самым подтверждаете и гарантируете, что обладаете полными юридическими полномочиями связать вашего работодателя или иное подобное юридическое лицо обязательствами по настоящему Лицензионному соглашению. Если вы не обладаете требуемыми полномочиями, вы не вправе принимать указанные в настоящем документе условия и положения или использовать Preview от имени вашего работодателя или другого юридического лица.
-
-3. Лицензия на Preview от Google
-
-3.1. В соответствии с условиями настоящего Лицензионного соглашения Google предоставляет вам ограниченную, бесплатную, неэксклюзивную лицензию, действующую во всем мире и не подлежащую сублицензированию, которая разрешает использовать Preview исключительно в целях разработки приложений для совместимых реализаций платформы Android.
-
-3.2 Вы не должны использовать Preview для разработки приложений для других платформ (включая несовместимые реализации Android) или для разработки других SDK. У вас есть право разрабатывать приложения для других платформ (включая несовместимые реализации Android) при условии, что Preview не используется для этих целей.
-
-3.3. Вы соглашаетесь с тем, что Google или третьим сторонам принадлежат все юридические и имущественные права, а также правовой интерес в отношении Preview, в том числе любые права на объекты интеллектуальной собственности, которые имеются в Preview. Термин "Права на интеллектуальную собственность" означает все возможные права в рамках патентного права, авторского права, закона о коммерческой тайне, закона о товарных знаках, а также иные возможные имущественные права. Google оставляет за собой все права, не предоставленные вам в явном виде.
-
-3.4. Вам запрещается использовать Preview в любых целях, которые однозначно не определены в настоящем Лицензионном соглашении. За исключением случаев, предусмотренных применимыми сторонними лицензиями, вам запрещается: (a) копировать (за исключением резервного копирования), изменять, адаптировать, повторно распространять, декомпилировать, осуществлять инженерный анализ, деассемблировать или создавать производные элементы Preview или иной его части; а также (b) загружать любую часть Preview в мобильные телефоны или иные устройства, помимо персонального компьютера, объединять любые части Preview с другим программным обеспечением, распространять любое программное обеспечение или устройства, содержащие части Preview.
-
-3.5. Использование, воспроизведение и распространение компонентов Preview, на которые распространяется лицензия на программное обеспечение с открытым исходным кодом, регулируются исключительно положениями и условиями такой лицензии на программное обеспечение с открытым исходным кодом, а не настоящим Лицензионным соглашением. Вы соглашаетесь обеспечивать хорошую репутацию получателя лицензии в отношении таких лицензии на программное обеспечение с открытым исходным кодом в рамках всех предоставленных ему прав, а также не допускать каких-либо действий, которые могут привести к аннулированию, приостановлению или нарушению таких прав
-
-3.6. Вы соглашаетесь с тем, что форма и содержание Preview , предоставляемого Google, могут быть изменены без предварительного уведомления, а также с тем, что будущие версии Preview могут оказаться несовместимыми с приложениями, разработанными в предыдущих версиях Preview. Вы соглашаетесь с тем, что Google вправе на свое собственное усмотрение и без предварительного уведомления прекратить (временно или навсегда) предоставление Preview (или любых функций в составе Preview) вам или пользователям.
-
-3.7. Ни одна из частей настоящего Лицензионного соглашения не предусматривает предоставления вам права использовать любые торговые наименования, товарные знаки, знаки обслуживания, логотипы, имена доменов или иные отличительные фирменные знаки, принадлежащие Google.
-
-3.8. Вы соглашаетесь с тем, что обязуетесь не удалять, не скрывать или не изменять любые уведомления об имущественных правах (включая уведомления об авторских правах и товарных знаках), которые могут сопровождать Preview или содержаться в нем.
-
-4. Использование Preview
-
-4.1. Компания Google выражает согласие с тем, что ни по какому положению настоящего Лицензионного соглашения не получает от вас (или ваших лицензиаров) каких-либо юридических и имущественных прав, а также правового интереса в отношении любых программных приложений, разработанных вами с помощью Preview, включая любые права на объекты интеллектуальной собственности, которые имеются в таких приложениях.
-
-4.2. Вы соглашаетесь использовать Preview и создавать приложения исключительно в целях, предусмотренных (a) настоящим Лицензионным соглашением и (b) любым применимым законом, нормативным актом или общепринятыми правилами или рекомендациями в соответствующей юрисдикции (включая любые законы, касающиеся экспорта данных или программного обеспечения из США или иных соответствующих стран, а также импорта в них).
-
-4.3. Вы соглашаетесь с тем, что при использовании Preview для разработки приложений вы обязуетесь обеспечивать конфиденциальность и защищать юридические права пользователей. В случае если пользователи предоставляют вам свои имена, пароли или иные данные для входа либо свои персональные сведения, вы обязуетесь уведомить пользователей о том, что такая информация будет присутствовать в вашем приложении, и вы также обязуетесь предоставить таким пользователям юридически соответствующее уведомление о конфиденциальности и средства правовой защиты. Если в вашем приложении хранится персональная или конфиденциальная информация, предоставленная пользователями, вы обязуетесь обеспечить ее надлежащую защиту. Если пользователь предоставляет вам сведения о своей учетной записи Google, то ваше приложение может использовать такую информацию для доступа к учетной записи Google пользователя только тогда, когда пользователь предоставил вам разрешение на это, и только в тех целях, которые обозначил пользователь.
-
-4.4. Вы соглашаетесь с тем, что обязуетесь не использовать Preview для любого рода деятельности, в том числе для разработки или распространения приложений, в целях нарушения работы и повреждения серверов, сетей или иной собственности или служб Google или любой третьей стороны.
-
-4.5. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любые данные, содержимое или ресурсы, которые вы создаете, передаете или демонстрируете посредством Android и/или приложений для Android, а также за любые последствия ваших действий, связанных с этим (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google).
-
-4.6. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любое несоблюдение обязательств по настоящему Лицензионному соглашению, обязательств по любому применимому договору с третьей стороной или предусмотренных Условиями и положениями, за нарушение любых применимых законов или нормативных актов, а также за любые последствия ваших действий, связанных с таким нарушением (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google).
-
-4.7 Preview находится на стадии разработки, поэтому ваши отзывы и результаты тестирования являются важной частью процесса разработки. Используя Preview, вы признаете, что реализация некоторых функций по-прежнему находится на этапе разработки и вам не следует рассчитывать на полную функциональность стабильной версии. Вы соглашаетесь не распространять или предоставлять любые приложения, использующие Preview, поскольку поддержка Preview будет прекращена после выпуска официальной версии пакета Android SDK.
-
-Ваши учетные данные разработчика
-
-5.1. Вы соглашаетесь с тем, что несете ответственность за обеспечение конфиденциальности любых учетных данных разработчика, которые компания Google может вам предоставить или которые вы можете самостоятельно выбрать, а также с тем, что вы несете единоличную ответственность за все приложения, разработанные с использованием ваших учетных данных разработчика.
-
-6. Конфиденциальность и личная информация
-
-6.1. В целях постоянного совершенствования и улучшения Preview компания Google вправе собирать определенные статистические данные об использовании программного обеспечения, включая уникальный идентификатор, связанный IP-адрес, номер версии программного обеспечения, а также сведения об используемых в Preview инструментах и/или службах и способах их применения. Перед тем как любые из таких данных будут отправлены в Google, в Preview отобразится соответствующее уведомление с просьбой дать свое согласие. В случае вашего отказа предоставить такие сведения соответствующие данные собираться не будут.
-
-6.2. Собранные данные изучаются в обобщенном виде с целью улучшения Preview и хранятся в соответствии с Политикой конфиденциальности Google, которая опубликована на веб-сайте по адресу http://www.google.com/policies/privacy/.
-
-7. Сторонние приложения
-
-7.1. Если вы используете Preview для запуска приложений, разработанных третьими сторонами или получающих доступ к данным, содержимому или ресурсам, предоставляемым третьей стороной, вы соглашаетесь с тем, что Google не несет ответственности за такие приложения, данные, содержимое или ресурсы. Вы осознаете, что единоличную ответственность за все данные, содержимое или ресурсы, доступ к которым вы можете получить посредством таких приложений третьих сторон, несет лицо, предоставившее их, а также то, что Google не несет ответственности за любые убытки или любой ущерб, которые могут возникнуть в результате использования вами любых таких сторонних приложений, данных, содержимого или ресурсов и в результате обращения к ним.
-
-7.2. Вы должны быть осведомлены о том, что данные, содержимое и ресурсы, предоставляемые вам посредством таких сторонних приложений, могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие предоставляющим их лицам (или иным лицам либо компаниям от их имени). Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные, содержимое или ресурсы (полностью или частично), а также создавать на их основе производные элементы, если у вас нет на это разрешения от соответствующих владельцев.
-
-7.3. Вы осознаете, что использование вами таких сторонних приложений, данных или ресурсов может регулироваться отдельными условиями, заключенными между вами и соответствующей третьей стороной.
-
-8. Использование API-интерфейсов Google
-
-8.1. API-интерфейсы для получения данных Google.
-
-8.1.1. В случае использования вами любых API для получения данных из Google вы осознаете, что такие данные могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие Google или предоставляющим их сторонам (или иным лицам либо компаниям от их имени). Использование вами подобных API может регулироваться дополнительными Условиями использования. Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные (полностью или частично), а также создавать на их основе производные элементы, если это не разрешено соответствующими Условиями использования.
-
-8.1.2. Если вы используете какие-либо API-интерфейсы для получения данных пользователя из Google, вы осознаете и соглашаетесь с тем, что вы обязуетесь получать такие данные исключительно с прямого согласия пользователя и только в тех целях, которые обозначил пользователь.
-
-9. Прекращение действия Лицензионного соглашения
-
-9.1 Настоящее Лицензионное соглашение остается в силе до тех пор, пока его действие не будет прекращено вами или Google, как указано ниже.
-
-9.2. Если вы желаете прекратить действие настоящего Лицензионного соглашения, вы вправе сделать это, прекратив использование Preview и любых соответствующих учетных данных разработчика.
-
-9.3. Google вправе в любое время прекратить действие настоящего Лицензионного соглашения, отправив предварительное уведомление или без него.
-
-9.4 Действие настоящего Лицензионного соглашения автоматически прекращается без предварительного уведомления или выполнения иных действий сразу после следующего:
-(A) компания Google прекращает предоставление Preview или определенных частей Preview пользователям в той стране, в которой вы проживаете или используете услуги компании;
-(B) компания Google выпускает окончательную версию Android SDK.
-
-9.5 В случае прекращения действия настоящего Лицензионного соглашения прекращается действие лицензии, предоставленной в рамках Лицензионного соглашения, и вам следует незамедлительно прекратить любое использование Preview, тогда как положения, изложенные в разделах 10, 11, 12 и 14 продолжают действовать бессрочно.
-
-10. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
-
-10.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ PREVIEW ИСКЛЮЧИТЕЛЬНО НА СВОЙ СТРАХ И РИСК И ЧТО PREVIEW ПРЕДОСТАВЛЯЕТСЯ ВАМ НА УСЛОВИЯХ "КАК ЕСТЬ" И "КАК ДОСТУПНО" БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ СО СТОРОНЫ КОМПАНИИ GOOGLE.
-
-10.2 ИСПОЛЬЗОВАНИЕ ВАМИ PREVIEW И ЗАГРУЗКА ЛЮБЫХ МАТЕРИАЛОВ И ИХ ПОЛУЧЕНИЕ ИНЫМ СПОСОБОМ С ПОМОЩЬЮ PREVIEW ВЫПОЛНЯЕТСЯ ПО ВАШЕМУ СОБСТВЕННОМУ УСМОТРЕНИЮ НА СВОЙ СТРАХ И РИСК. ВСЯ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБОЙ УЩЕРБ, ПРИЧИНЕННЫЙ ВАШЕЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ ИЛИ ДРУГОМУ ОБОРУДОВАНИЮ, А ТАКЖЕ ЗА ПОТЕРЮ ДАННЫХ, ВЫЗВАННУЮ ПОДОБНЫМ ИСПОЛЬЗОВАНИЕМ, ВОЗЛАГАЕТСЯ НА ВАС. НЕ ОГРАНИЧИВАЯ ВЫШЕСКАЗАННОЕ, ВЫ ПОНИМАЕТЕ, ЧТО PREVIEW НЕ ЯВЛЯЕТСЯ СТАБИЛЬНЫМ ВЫПУСКОМ И МОЖЕТ СОДЕРЖАТЬ ОШИБКИ, ДЕФЕКТЫ И УЯЗВИМОСТИ В СИСТЕМЕ БЕЗОПАСНОСТИ, КОТОРЫЕ МОГУТ ПРИВЕСТИ К СЕРЬЕЗНЫМ ПОВРЕЖДЕНИЯМ, ВКЛЮЧАЯ ПОЛНУЮ И БЕЗВОЗВРАТНУЮ ПОТЕРЮ РАБОТОСПОСОБНОСТИ ВАШЕГО КОМПЬЮТЕРА ИЛИ ИНОГО УСТРОЙСТВА.
-
-10.3. КОМПАНИЯ GOOGLE БЕЗОГОВОРОЧНО ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ И НЕЯВНЫХ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО НЕЯВНЫЕ ГАРАНТИИ И УСЛОВИЯ ТОВАРНОГО СОСТОЯНИЯ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ СОБСТВЕННОСТИ.
-
-11. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ
-
-11.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО КОМПАНИЯ GOOGLE, ЕЕ ДОЧЕРНИЕ И АФФИЛИРОВАННЫЕ КОМПАНИИ И ЛИЦЕНЗИАРЫ НЕ НЕСУТ ПЕРЕД ВАМИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ ЕЕ ПРИЧИНЫ И ВИДА, ЗА КАКИЕ-ЛИБО ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОПОСРЕДОВАННЫЕ И ШТРАФНЫЕ УБЫТКИ, ПОНЕСЕННЫЕ ВАМИ, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО ПОТЕРЮ ДАННЫХ, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО, БЫЛА ЛИ КОМПАНИЯ GOOGLE ИЛИ ЕЕ ПРЕДСТАВИТЕЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.
-
-12. Освобождение от ответственности
-
-12.1. В максимально допустимой законом степени вы соглашаетесь защищать, освобождать от ответственности и возможных претензий компанию Google, ее аффилированные компании и их соответствующих руководителей, служащих, сотрудников и агентов от всех возможных правовых требований, действий, судебных исков или разбирательств, а также от всех возможных убытков, обязательств, ущерба, издержек и расходов (включая обоснованные вознаграждения для адвокатов), возникающих (a) в связи с использованием вами Preview, (b) в связи с любыми приложениями, разрабатываемыми вами с помощью Preview и нарушающими любые права на объекты интеллектуальной собственности любого лица, а также порочащие любое лицо либо нарушающие права таких лиц на публичность и конфиденциальность, а также (c) в связи с любым несоблюдением вами положений настоящего Лицензионного соглашения.
-
-13. Изменения в Лицензионном соглашении
-
-13.1. Компания Google вправе вносить изменения в настоящее Лицензионное соглашение по мере выхода новых версий Preview. При внесении изменений Google создает новую версию Лицензионного соглашения и размещает ее на веб-сайте, на котором размещена Preview.
-
-14. Общие правовые условия
-
-14.1. Настоящее Лицензионное соглашение составляет полный текст юридического соглашения между вами и компанией Google, регулирует использование вами Preview (за исключением услуг, которые Google предоставляет на основании отдельного письменного соглашения) и полностью заменяет собой все предыдущие соглашения между вами и компанией Google в отношении Preview.
-
-14.2. Вы соглашаетесь с тем, что отсутствие каких-либо действий или судебных исков со стороны Google, направленных на соблюдение каких-либо правовых норм или исполнение средств правовой защиты, установленных настоящим Лицензионным соглашением (или которыми Google обладает в соответствии с каким-либо действующим законом), не означает отказ компании Google от своих прав и не препятствует компании Google использовать эти права или средства защиты.
-
-14.3. Если какой-либо судебный орган, уполномоченный рассматривать этот вопрос, признает недействительность какого-либо положения данного Лицензионного соглашения, то соответствующее положение будет исключено из Лицензионного соглашения с сохранением действия всех остальных его положений. Остальные положения Лицензионного соглашения по-прежнему будут действовать, и их соблюдение может обеспечиваться в судебном порядке.
-
-14.4. Вы признаете и соглашаетесь с тем, что все участники группы компаний, среди которых Google является материнской компанией, являются сторонними бенефициарами Лицензионного соглашения и что эти компании имеют право пользоваться привилегиями (или правами), предоставляемыми по настоящему Лицензионному соглашению, и напрямую требовать их соблюдения в судебном порядке. Все остальные физические и юридические лица не являются сторонними бенефициарами Лицензионного соглашения.
-
-14.5. ОГРАНИЧЕНИЯ НА ЭКСПОРТ. ИСПОЛЬЗОВАНИЕ PREVIEW РЕГУЛИРУЕТСЯ ЗАКОНАМИ И НОРМАТИВНЫМИ АКТАМИ США, КАСАЮЩИМИСЯ ЭКСПОРТА. ВЫ ОБЯЗУЕТЕСЬ СОБЛЮДАТЬ ВСЕ НАЦИОНАЛЬНЫЕ И МЕЖДУНАРОДНЫЕ ЗАКОНЫ ОБ ЭКСПОРТЕ, ПРИМЕНИМЫЕ К PREVIEW. ДАННЫЕ ЗАКОНЫ НАЛАГАЮТ ОГРАНИЧЕНИЯ НА РЕГИОНЫ, КРУГ ЛИЦ И СПОСОБ КОНЕЧНОГО ИСПОЛЬЗОВАНИЯ.
-
-14.6. Вы не вправе переуступать либо передавать права, предоставляемые по настоящему Лицензионному соглашению, без предварительного письменного согласия Google; любые попытки переуступки без такого согласия считаются недействительными. Вы обязуетесь не делегировать свои полномочия или обязательства по настоящему Лицензионному соглашению без предварительного письменного согласия Google.
-
-14.7. Лицензионное соглашение, а также взаимоотношения между вами и компанией Google в рамках настоящего Лицензионного соглашения регулируются законодательством штата Калифорния за исключением его норм коллизионного права. Вы и компания Google признаете, что урегулирование любых правовых вопросов, связанных с данным Лицензионным соглашением, относится исключительно к юрисдикции судов округа Санта-Клара, штат Калифорния. Несмотря на это, вы соглашаетесь с тем, что компания Google по-прежнему имеет право обращаться за наложением судебного запрета (или за получением аналогичного вида неотложной судебной защиты) в суды любой юрисдикции.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Я ознакомился и принимаю указанные выше положения и условия.</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Содержание документа</h2>
-      <ol>
-        <li><a href="#device-preview">Настройка устройства</a>
-          <ol>
-            <li><a href="#ota">Получение обновлений по беспроводной связи</a></li>
-            <li><a href="#flash">Запись во флэш-память устройства вручную</a></li>
-            <li><a href="#revertDevice">Удаление</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Настройка эмулятора</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Для запуска и тестирования приложения на новой платформе необходимо настроить среду выполнения Android N
-. Это можно выполнить одним из следующих способов:
-</p>
-
-<ul>
-  <li>установить Android N на поддерживаемом устройстве;</li>
-  <li>настроить эмулятор Android с операционной системой Android N.</li>
-</ul>
-
-<p>
-  Если вы хотите выполнить просто тестирование совместимости приложения и
-новой платформы, вам нужен только текущий APK и устройство или
-эмулятор. Для простого тестирования не требуется обновлять всю среду
-разработки.
-</p>
-
-<p>
-  Если вы хотите изменить приложение, сделав Android N целевой ОС, или использовать новые API-интерфейсы Android N,
-необходимо настроить среду разработки, которая поддерживает
-Android N. <a href="{@docRoot}preview/setup-sdk.html">Настройка в целях разработки для
-Android N</a> имеет ряд особенностей.
-</p>
-
-
-<h2 id="device-preview">Настройка устройства</h2>
-
-<p>
-  Программа N Developer Preview предлагает системные обновления,
-которые можно использовать для тестирования приложений на различных устройствах: от телефонов до планшетов и телевизоров.
-</p>
-
-<p>
-  Если у вас есть поддерживаемое устройство, вы сможете обновить его до ключевой сборки Developer
-Preview одним из следующих способов.
-</p>
-
-<ul>
-  <li><strong>Зарегистрируйте устройство для получения автоматических обновлений системы по беспроводной связи</strong> в рамках
-<a href="https://g.co/androidbeta">программы бета-тестирования Android</a>. После регистрации ваше устройство будет регулярно получать
-по беспроводной связи обновления всех ключевых сборок в N Developer Preview. Такой
-способ рекомендуется потому, что он обеспечивает простой переход с текущей
-среды с помощью различных выпусков N Developer Preview.</li>
-  <li><strong>Загрузите системный образ Developer Preview и запишите его во флэш-память устройства</strong>.
-Обновления по беспроводной связи не предоставляются для устройств, запись во флэш-память которых выполнялась вручную, но такие
-устройства можно зарегистрировать в программе бета-тестирования Android для получения обновлений по беспроводной связи. </li>
-</ul>
-
-<h3 id="ota">Регистрация устройства для получения автоматических обновлений по беспроводной связи</h3>
-
-<p>
-  Если у вас есть поддерживаемое устройство (см. список в таблице "Загрузки"),
-вы можете получать обновления предварительных версий Android по беспроводной связи,
-зарегистрировав устройство в <a href="https://g.co/androidbeta">программе бета-тестирования Android</a>. Эти обновления автоматически
-загружаются и устанавливаются на устройство как официальные
-системные обновления.
-</p>
-
-<p>
-  Отменить регистрацию устройства можно в любое время. Устройство будет по беспроводной связи получать последнюю
-версию Android, доступную для него
-(например, Android 6.0 Marshmallow). Для обновления потребуется полный сброс
-настроек устройства в целях удаления с устройства всех данных пользователя. Перед отменой регистрации устройства <strong>выполните резервное копирование
-наиболее важных данных</strong>.
-</p>
-
-<p>
-  Для получения дополнительной информации по регистрации устройства см.
-веб-сайт <a href="https://g.co/androidbeta">программы бета-тестирование Android</a>.
-</p>
-
-<p class="note"><strong>Примечание.</strong>
-Для отмены регистрации требуется полный сброс настроек устройства. Выполните
-резервное копирование наиболее важных данных.
-</p>
-
-<h3 id="flash">Запись во флэш-память устройства вручную</h3>
-
-<p>
-  В любое время вы можете загрузить последний системный образ Developer Preview и
-вручную записать его во флэш-память устройства. См. информацию в следующей таблице, чтобы загрузить системный образ
-для своего тестового устройства. Запись вручную во флэш-память устройства удобна, если требуется
-точное управление средой тестирования или частая переустановка,
-например при автоматическом тестировании.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  При установке системного образа <strong>с устройства будут удалены все
-данные</strong>, поэтому сначала необходимо выполнить резервное копирование данных.
-</p>
-
-<p>
-  После резервного копирования данных устройства и загрузки системного образа,
- соответствующего этому устройству, выполните инструкции, которые приведены по адресу <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>,
-чтобы записать этот образ во флэш-память устройства.
-</p>
-
-<p>
-  Записанные вручную системные образы <strong>не
-получают автоматические обновления</strong> ключевых сборок Developer Preview
-по беспроводной связи. Регулярно обновляйте свою среду и выполняйте запись
-нового системного образа во флэш-память устройства при каждом выпуске ключевой сборки Developer Preview.
-</p>
-
-<p>
-  Если вы захотите получить обновления по беспроводной связи после записи на устройство вручную,
-вам нужно просто зарегистрировать устройство в <a href="https://g.co/androidbeta">программе
-бета-тестировании Android</a>. Вы можете зарегистрировать устройство в любое время для получения следующего обновления предварительной версии
-по беспроводной связи.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Устройство</th>
-    <th scope="col">Файлы для загрузки и контрольные суммы</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Удаление предварительной версии с устройства</h3>
-
-<p>
-  Удаление предварительной версии с устройства можно выполнить одним из
-следующих способов. </p>
-  <ul>
-    <li><strong>Получить заводской образ системы</strong> и вручную
-записать его во флэш-память устройства.
-      <ul>
-          <li>При использовании <strong>устройств Nexus и Pixel C</strong> ссылки для загрузки см. на странице
-<a href="http://developers.google.com/android/nexus/images">Заводские образы
-для устройств Nexus</a>. </li>
-        <li>Для <strong>других устройств</strong> обратитесь напрямую к производителю устройства.
- Если устройство поддерживается
-программой бета-тестирования Android, вы можете зарегистрировать его для
-участия в программе, а затем, если потребуется, отменить регистрацию (см. ниже).</li>
-      </ul>
-    </li>
-    <li><strong>Отмена регистрации устройства в программе бета-тестировании Android</strong>. Если
-устройство зарегистрировано в <a href="https://g.co/androidbeta">программе бета-тестировании
-Android</a>, можно в любое время отменить регистрацию независимо от типа устройства.
-  <p>
-    Устройство будет получать по беспроводной связи последнюю версию
-Android, доступную для устройства (например, Android 6.0 Marshmallow).
- Для обновления требуется полный сброс настроек устройства в целях удаления с устройства
-всех данных пользователя. Поэтому перед отменой регистрации устройства <strong>выполните резервное копирование наиболее важных данных</strong>.
-
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Примечание.</strong>
-Удаление системного образа Developer Preview до
-завершения программы требует полного сброса настроек устройства и приводит к удалению всех данных пользователя
-на этом устройстве.
-</p>
-
-
-<h2 id="setupAVD">Настройка эмулятора</h2>
-
-<p>Чтобы использовать эмулятор Android для запуска Android N Preview, необходимо
-загрузить Android N Preview SDK и создать виртуальное устройство для
-эмулятора.</p>
-
-<p>Сначала загрузите Android N Preview SDK, сделав это следующим образом (если вы получили его
-во время <a href="{@docRoot}preview/setup-sdk.html">настройки
-в целях разработки для Android N</a>, этот шаг можно пропустить).
-
-<ol>
-  <li>В Android Studio откройте окно "Settings"
-(<strong>File &gt; Settings</strong> в Windows/Linux или
-<strong>Android Studio &gt; Preferences</strong> для Mac). В левой
-панели выберите <strong>Appearance &amp; Behavior &gt;
-System Settings &gt; Android SDK</strong>.
-
-  <li>Перейдите на вкладку <strong>SDK Platforms</strong> и установите флажок
-<strong>Android N Preview</strong>.</li>
-
-  <li>Откройте вкладку <strong>SDK Tools</strong> и затем установите флажки
-<strong>Android SDK Build Tools</strong>, <strong>Android SDK
-Platform-Tools</strong>, <strong>Android SDK Tools</strong>.
-
-  </li>
-
-  <li>Нажмите <strong>OK</strong> и примите лицензионные
-соглашения для всех устанавливаемых пакетов.
-  </li>
-</ol>
-
-<p>У вас должны быть пакеты <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong> и <strong>SDK Tools
-25.0.9</strong>. Если вы не обновите SDK Tools до версии 25.0.9, вы не сможете
-запустить системный образ x86_64 для Android N.</p>
-
-
-<p>Теперь необходимо создать виртуальное устройство с системным образом Android N.</p>
-
-<ol>
-  <li>Откройте AVD Manager, выбрав <strong>Tools &gt; Android &gt;
-AVD Manager</strong>.</li>
-  <li>Нажмите <strong>Create Virtual Device</strong>.</li>
-  <li>Выберите устройство, например: Nexus 5X, Nexus 6P, Nexus 9 или Android TV,
-затем нажмите <strong>Next</strong>.</li>
-  <li>Выберите системный образ <strong>N</strong> (с
-<strong>x86</strong> ABI), затем нажмите <strong>Next</strong>.
-(Эмулятором Android в настоящий момент поддерживаются только системные образы x86
-для Android N Preview.)
-  <li>Выполните остальные настройки конфигурации AVD и нажмите
-<strong>Finish</strong>.</li>
-</ol>
-
-<p>Теперь можно запустить эмулятор Android с Android N Preview AVD.</p>
-
-<p>
-Для обеспечения эффективной работы эмулятора Android установите
-Android Studio 2.1 Preview с поддержкой <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>,
-который обеспечивает более высокую производительность по сравнению с эмулятором в
-Android Studio 1.5.</p>
-
-<p class="note"><strong>Примечание.</strong>
-Если вы используете Android Studio 2.0 Beta, в нем есть известная неисправность,
-которая не позволяет создавать AVD с системными образами N Preview, поэтому вам потребуется
-использовать Android Studio 2.1 Preview для создания AVD.
-</p>
-
-<p>Для получения дополнительной информации о создании виртуальных устройств см. страницу <a href="{@docRoot}tools/devices/index.html">Управление виртуальными устройствами</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/ru/preview/overview.jd b/docs/html-intl/intl/ru/preview/overview.jd
deleted file mode 100644
index 303e9ce..0000000
--- a/docs/html-intl/intl/ru/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Обзор программы
-page.metaDescription=Подготовьте свои приложения к выходу следующей версии Android.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="предварительная версия", "разработчик", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Добро пожаловать в программу <strong>Android N Developer Preview</strong>, участники
-которой получают все необходимое для тестирования и оптимизации
-своих приложений для следующей версии платформы Android. Участие в программе бесплатно, вам предоставляется возможность использовать
-инструменты N Developer Preview сразу же после их загрузки.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Образы для эмулятора и оборудования
-      </h5>
-
-      <p>
-        Запустите и протестируйте свои приложения на широком спектре устройств или на эмуляторе.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Самый актуальный код платформы
-      </h5>
-
-      <p>
-        Во время знакомства с предварительной версией платформы мы будем предоставлять ежемесячные обновления, поэтому вы сможете протестировать самые актуальные изменения в платформе.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Приоритетное исправление ошибок, зафиксированных разработчиками
-      </h5>
-
-      <p>
-        В течение первых нескольких недель мы будем рассматривать отчеты об ошибках, поступающие от разработчиков, в приоритетном порядке,
-поэтому не теряйте времени и приступайте к тестированию и составлению отзывов как можно раньше.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        Новые возможности и новые функции
-      </h5>
-
-      <p>
-        Заранее начните реализовывать в своих приложениях поддержку расширенной функциональности платформы.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Получение обновлений по беспроводной связи
-      </h5>
-
-      <p>
-        Простое и удобное получение обновлений по беспроводной связи для поддерживаемых устройств в рамках программы бета-тестирования
-Android. Запись во флэш-память устройства не требуется.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Отзывы и поддержка
-      </h5>
-
-      <p>
-        Отправляйте отзывы и сообщайте о проблемах с помощью нашей
-<a href="{@docRoot}preview/bug">системы отслеживания ошибок</a>. Общайтесь с другими
-разработчиками в
-<a href="{@docRoot}preview/dev-community">сообществе разработчиков для Android&nbsp;N</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">График и обновления</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  Срок действия программы N Developer Preview запланирован с 9 марта 2016 г. и до выпуска окончательной версии Android N
-для AOSP и OEM, который состоится в третьем квартале 2016 г.
-</p>
-
-<p>
-  На ключевых этапах разработки платформы мы предоставим обновления для среды разработки и
-тестирования. Выход обновлений запланирован каждый месяц (с интервалом
-4-6 недель). Основные этапы показаны ниже.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Предварительная версия 1</a></strong> (первоначальный выпуск, альфа-версия)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Предварительная версия 2</a></strong> (инкрементальное обновление, альфа-версия)</li>
-  <li><strong>Предварительная версия 3</strong> (инкрементальное обновление, бета-версия)</li>
-  <li><strong>Предварительная версия 4</strong> (окончательные версии API и официальный SDK, публикация в Google Play)</li>
-  <li><strong>Предварительная версия 5</strong> (практически готовые системные образы для заключительного тестирования)</li>
-  <li><strong>Выпуск окончательной версии</strong> в AOSP и экосистеме</li>
-</ul>
-
-<p>
-  Каждое обновление включает инструменты SDK, системные образы предварительной версии, эмуляторы, справочную
-документацию и описание отличий в API.
-</p>
-
-<p>
-  На <strong>первых трех ключевых этапах предварительной версии</strong> предоставляется <strong>начальная среда
-тестирования и разработки</strong>, которая позволяет выявить
-проблемы совместимости в текущих приложениях и спланировать миграцию или доработку функций,
-требуемых для новой платформы. В течение этого времени вы можете предоставлять
-отзывы о функциях и API, а также проблемах совместимости файлов
-с помощью <a href="{@docRoot}preview/bug">системы отслеживания
-ошибок</a>. Обновления могут включать некоторые изменения API.
-</p>
-
-<p>
-  В <strong>предварительных версиях 4 и 5</strong> вам будет предоставлен доступ к <strong>окончательным
-версиям API-интерфейсов и SDK системы N</strong>, а также к практически готовым системным образам
-для тестирования работоспособности и возможностей системы. Android N будет содержать API
-стандартного уровня. Вы сможете начать заключительное тестирование совместимости старых
-приложений и отладить новый код, в котором используются API-интерфейсы или возможности системы N.
-</p>
-
-<p>
-  Начиная с предварительной версии 4, вы сможете <strong>публиковать приложения на
-устройствах</strong> под управлением Android N, используя API-интерфейсы официального уровня, например на
-пользовательских устройствах, участвующих в программе бета-тестирования Android. Вы можете
-выполнить публикацию сначала на альфа- и бета-каналах Google Play для тестирования
-приложений с помощью пользователей бета-версии Android перед их размещением в
-магазине для общего доступа.
-</p>
-
-<p>
-  Мы настоятельно рекомендуем вам в ходе тестирования и разработки приложений для Android N <strong>постоянно
-обновлять вашу среду разработки</strong> по мере выхода обновлений
-предварительной версии. Для упрощения процесса вы можете зарегистрировать тестовые устройства в программе
-бета-тестирования Android и получать <strong>обновления по беспроводной связи</strong> на
-каждом ключевом этапе. Кроме того, обновленные образы предварительной версии можно загрузить
-и записать во флэш-память устройства вручную.
-</p>
-
-<p>
-  Мы будем сообщать о появлении обновлений предварительной версии в <a href="http://android-developers.blogspot.com/">блоге разработчиков Android</a>, а
-также на этом сайте и в <a href="{@docRoot}preview/dev-community">сообществе разработчиков для
-Android N</a>.
-</p>
-
-
-<h2 id="preview_tools">Состав программы N Developer Preview</h2>
-
-<p>
-  N Developer Preview содержит все, что необходимо для тестирования ваших существующих
-приложений на экранах различных размеров, тестирования с использованием различных сетевых технологий, наборов микросхем ЦП и графических процессоров,
-а также различных архитектур оборудования.
-</p>
-
-<h3 id="sdk_tools">Инструменты SDK</h3>
-
-<p>С помощью менеджера SDK в <a href="{@docRoot}sdk/installing/adding-packages.html">Android Studio</a> вы сможете загрузить следующие компоненты:</p>
-
-<ul>
-  <li> <strong>SDK и инструменты</strong> N Developer Preview;
-  <li> <strong>системный образ эмулятора</strong> (32- и 64-разрядная версии) для N Developer Preview;
-  <li> <strong>системный образ эмулятора для Android TV</strong> (32-разрядная версия) N Developer Preview;
-  <li> поддерживаемые библиотеки N Developer Preview (для новых шаблонов приложений).
-</ul>
-
-<p>
-  При необходимости мы предоставляем обновления инструментов разработки на каждом ключевом этапе.
-</p>
-
-<h3 id="hardware_system_images">Системные образы оборудования</h3>
-
-<p>
-  N Developer Preview включает системные образы для Nexus и других устройств, которые можно использовать при
-тестировании и разработке на физических устройствах. См. полный список аппаратных образов на странице <a href="{@docRoot}preview/download.html">Образы устройств</a>.
-
-</p>
-
-<p>
-  Мы будем предоставлять обновленные системные образы для этих устройств на каждом ключевом этапе. Вы
-также сможете загружать и записывать обновленные системные образы во флэш-память тестовых устройств
-вручную всегда, когда это будет необходимо. Это особенно удобно для автоматических
-сред тестирования, где может требоваться многократная перезапись в флэш-память
-устройства.
-</p>
-
-<p class="note"><strong>Примечание</strong>.
-<strong>В отличие от предварительной версии прошлого года, для устройств, запись во флэш-память которых выполнялась вручную, обновления по беспроводной связи предоставляться не будут</strong>.
-В этом году вы можете получать обновления по беспроводной связи, зарегистрировав устройства в программе
-бета-тестирования Android, см. подробные сведения в следующем разделе.
-</p>
-
-<h3 id="android_beta">Обновления по беспроводной связи в рамках программы бета-тестирования Android</h3>
-
-<p>
-  Новой функцией Android N является программа получения обновлений по сети, которая автоматически
-предоставляет последние обновления предварительной версии Android N непосредственно на устройства, зарегистрированные
-в программе тестирования. Участие в программе бесплатно и доступно всем, кто имеет поддерживаемые устройства,
-привязанные к учетной записи Google.
-</p>
-
-<p>
-  Для регистрации посетите веб-сайт <a href="https://g.co/androidbeta">программы бета-тестирования
-Android</a>. Вы увидите
-список всех устройств, привязанных к учетной записи, которые можно зарегистрировать
-в программе бета-тестирования Android.
-</p>
-
-<ol>
-  <li> Выберите устройства, для которых требуется получать обновления Android N.
-  <li> Нажмите Enroll, прочтите условия использования и подтвердите согласие с ними, затем нажмите OK.
-</ol>
-
-<p>
-  После регистрации на устройство придет обновление. В большинстве случаев
-для перехода на Android N не требуется выполнять полный сброс конфигурационных данных, однако,
-рекомендуется выполнить резервное копирование важных данных перед
-регистрацией устройства в программе.
-</p>
-
-<p>
-  При получении устройством обновлений рекомендуется загружать и
-устанавливать максимально быстро. Это требуется, чтобы быть в курсе
-последних изменений системного интерфейса, возможностей системы, особенностей API-интерфейсов и функций.
-</p>
-
-<p>
-  По завершению программы тестирования Developer Preview на зарегистрированные устройства
-будет отправлено обновление с официальной версией Android N.
-</p>
-
-<p>
-  Вы можете отменить регистрацию устройств в программе бета-тестирования Android в любое время на сайте
-программы. Перед отменой регистрации выполните резервное копирование данных на
-устройстве.
-</p>
-
-  <p class="note"><strong>Примечание</strong>.
-При отмене регистрации <strong>на вашем устройстве выполняется восстановление заводских настроек</strong>
-для последней версии
-Android 6.0 Marshmallow (не обязательно той версии, которая
-была установлена до регистрации устройства). Для обеспечения правильности установки
-ваши данные будут удалены с устройства, включая контакты, сообщения,
-фотографии и др.
-</p>
-
-<h3 id="documentation_and_sample_code">Документация и примеры кода</h3>
-
-<p>
-  Для ознакомления с Android&nbsp;N на сайте программы Developer Preview
-представлены следующие документы.
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Настройка в целях разработки для
-Android N</a> – содержит
-пошаговые инструкции по началу работы.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">Обзор изменений в
-работе системы</a> – указывает ключевые области для тестирования.</li>
-  <li> Документация по новым API-интерфейсам, включая <a href="{@docRoot}preview/api-overview.html">Обзор API</a>, доступный для загрузки
-<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочник по
-API</a> и подробные руководства для разработчиков, в которых освещаются такие ключевые возможности, как поддержка многооконного режима,
-группирование уведомлений, поддержка нескольких языковых настроек и др.
-  <li> <a href="{@docRoot}preview/samples.html">Примеры кода</a>, где
-можно посмотреть реализацию поддержки разрешений доступа и других новых функций.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Примечания к выпуску</a>
-для текущей версии N Developer Preview, включая информацию об изменениях и
-отчеты о различиях.
-</ul>
-
-<h4 id="reference">Справочник по API, доступный для загрузки</h4>
-
-<p>
-  На этапе ранних обновлений предварительной версии вы сможете загрузить последний
-<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочник по API
-для платформы Android N</a> в виде zip-архива. В нем также
-содержится отчет о различиях, позволяющий легко определить изменения в API-интерфейсах между
-API 23 и предыдущими версиями.
-</p>
-
-<p>
-  После окончательного утверждения API-интерфейсов Android N и назначения официального уровня API,
-вам будет предоставлен онлайн-справочник по этому API-интерфейсу по адресу <a href="https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Ресурсы поддержки
-</h3>
-
-<p>
-  При тестировании и разработке приложений в рамках программы N Developer Preview используйте следующие каналы
-для отправки отчетов о проблемах и отзывов.
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">Система отслеживания ошибок
-в N Developer Preview</a> является <strong>основным каналом для отправки отзывов.</strong> С его помощью можно сообщать об ошибках, проблемах
-производительности и отправлять общие отзывы. Вы также сможете ознакомиться со списком
-<a href="{@docRoot}preview/bug">известных проблем</a> и
-выполнить поиск обходных путей для них. Мы будем держать вас в курсе по вашему вопросу после его сортировки и отправки
-на рассмотрение инженерам Android. </li>
-  <li> <a href="{@docRoot}preview/dev-community">Сообщество разработчиков для Android N</a> – это
-сообщество Google+, где можно <strong>общаться с другими разработчиками</strong>, работающими с
-Android N. Делитесь в сообществе своими наблюдениями и идеями, а также находите ответы на
-вопросы об Android N. Мы будем просматривать ваши сообщения и предоставлять ответы
-и необходимые рекомендации.</li>
-</ul>
-
-<h3 id="targeting">Выбор целевого уровня, предварительные версии API и публикация приложений</h3>
-
-<p>
-  Платформа N Developer Preview предоставляет ориентированные на разработку систему и библиотеку Android,
-в которых <strong>отсутствуют API-интерфейсы стандартного уровня</strong>. Если вы не хотите
-проверять свое приложение на совместимость (хотя мы настоятельно
-рекомендуем сделать это), выберите целевую предварительную версию Android N, задав для
-параметра <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
-своего приложения значение <code>“N”</code>.
-</p>
-
-<p>
-  В Android N Developer Preview представлены <strong>предварительные версии API-интерфейсов</strong>.
-Они не будут официально публиковаться до выпуска окончательной версии пакета SDK,
-намеченного на третий квартал 2016 г. Это значит, что в
-<strong>API-интерфейсы могут вноситься небольшие изменения</strong>, особенно в первые недели после
-запуска программы. Мы будем предоставлять вам сводку об изменениях с каждым
-обновлением Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Примечание</strong>. Несмотря на возможные изменения в предварительных версиях API-интерфейсов,
-соответствующие функциональные возможности системы работают стабильно и уже готовы для
-тестирования.
-</p>
-
-<p>
-  Политика Google Play <strong>однозначно запрещает публикацию приложений, разработанных для N Developer
-Preview</strong>. Когда будет доступен окончательный SDK для Android N, вы сможете
-установить в качестве целевого API-интерфейс Android N официального уровня и опубликовать приложение в Google
-Play через альфа- и бета-каналы выпуска. Тем временем, если вы хотите распространить приложение, предназначенное для проверки под
-Android N, используйте для этого электронную почту или разместите такие приложения на своем сайте
-для прямой загрузки.
-</p>
-
-<p>
-  После выхода полной версии Android N для AOSP и OEM, запланированного на третий квартал 2016 г.,
-можно будет публиковать приложения для Android N в общем доступе на
-Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">Начало работы</h2>
-
-<p>
-  Чтобы приступить к тестированию своего приложения в Android N, выполните следующие действия.
-</p>
-
-<ol>
-  <li> Ознакомьтесь с <a href="{@docRoot}preview/api-overview.html">Обзором API</a>
-и сведениями об <a href="{@docRoot}preview/behavior-changes.html">изменениях в работе</a>, чтобы
-получить представление о новых возможностях платформы и о том, как это может повлиять на ваши приложения. В частности, узнайте подробнее
-о новых возможностях в отношении <a href="{@docRoot}preview/features/notification-updates.html">уведомлений</a> и
-<a href="{@docRoot}preview/features/multi-window.html">поддержки многооконного режима</a>.</li>
-  <li> Настройте свою среду, руководствуясь инструкциями в документе <a href="{@docRoot}preview/setup-sdk.html">Настройка пакета SDK для предварительной версии</a>
-и рекомендациями по конфигурированию тестовых устройств.</li>
-  <li> Соблюдайте <a href="https://developers.google.com/android/nexus/images">инструкции
-по записи во флэш-память</a> при выполнении записи системного образа Android N на устройство. </li>
-  <li> Просмотрите <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочник по API</a>
-и <a href="{@docRoot}preview/samples.html">примеры кода Android N</a>, чтобы узнать больше
-о новых возможностях API-интерфейсов и о том, как использовать их в ваших приложениях.
-  <li> Присоединяйтесь к <a href="{@docRoot}preview/dev-community">сообществу разработчиков
-Android N</a>, чтобы всегда быть в курсе последних новостей и общаться с другими
-разработчиками, работающими с новой платформой.</li>
-</ol>
-
-<p>
-  Благодарим за участие в программе Android N Developer Preview!
-</p>
diff --git a/docs/html-intl/intl/ru/preview/setup-sdk.jd b/docs/html-intl/intl/ru/preview/setup-sdk.jd
deleted file mode 100644
index 6ae86e9..0000000
--- a/docs/html-intl/intl/ru/preview/setup-sdk.jd
+++ /dev/null
@@ -1,223 +0,0 @@
-page.title=Установка предварительной
-версииmeta.keywords="предварительная версия", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Установка Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Установка Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">Справочная документация</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Установка Java 8 JDK и JRE</a></li>
-  <li><a href="#create-update">Обновление или создание проекта</a></li>
-  <li><a href="#next">Дальнейшие действия</a></li>
-</ol>
-  </div>
-</div>
-
-<p>Создание приложений для Android N Preview требует некоторых обновлений среды разработки,
-описанных в этом документе.</p>
-
-<p>Чтобы просто протестировать совместимость вашего приложения на системном образе
-Android N, следуйте рекомендациям руководства <a href="{@docRoot}preview/download.html">Тест на устройстве Android N</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Установка Android Studio 2.1 (предварительная версия)</h2>
-
-<p>Платформа Android N добавляет поддержку <a href="{@docRoot}preview/j8-jack.html">возможностей языка Java 8</a>,
-которые требуют наличия нового компилятора, именуемого Jack. Последняя версия Jack
-в настоящее время поддерживается только в Android Studio 2.1. Поэтому если вы хотите использовать возможности
-языка Java 8 для
-разработки своего приложения, вам понадобится Android Studio 2.1. В противном случае вам не потребуется использовать компилятор Jack,
-однако все равно придется выполнить обновление до JDK 8 для компиляции под платформу Android N,
-как описано ниже.
-</p>
-
-<p>Предварительная версия Android Studio 2.1 в настоящее время доступна на канале обновлений Canary.
-Если у вас уже есть Android Studio
-и вы не хотите обновлять ее до версии канала Canary, вы можете загрузить
-Android Studio 2.1 для отдельной установки и использовать ее для разработки
-под Android N, не затрагивая основную среду Android Studio.
-</p>
-
-<p>Чтобы загрузить Android Studio 2.1 для отдельной установки, выполните следующие шаги
-(если вы хотите обновить существующую установку Android Studio до версии 2.1, начните с шага 4).
-</p>
-
-<ol>
-  <li>Измените название существующей установки Android Studio, добавив к ней номер версии.
-Таким образом, при установке новая версия не заменит собой существующую.
-</li>
-  <li>Загрузите соответствующий ZIP-архив для своей операционной системы со
-<a href="http://tools.android.com/download/studio/canary/latest">страницы загрузки канала Canary</a>.
-  </li>
-  <li>Разархивируйте пакет и переместите содержимое Android Studio 2.1 в подходящее
-место для приложений вашей системы, затем запустите программу установки.</li>
-  <li>Откройте окно "Settings"
-(<strong>File &gt; Settings</strong> для Windows/Linux, или
-<strong>Android Studio &gt; Preferences</strong> для Mac). В левой
-панели выберите <strong>Appearance &amp; Behavior &gt; System Settings &gt;
-Updates</strong>.
-  </li>
-  <li>На панели "Updates" установите флажок <strong>Automatically
-check updates for</strong> и выберите
-<strong>Canary Channel</strong> в выпадающем списке.
-  </li>
-</ol>
-
-<p>Оставьте это окно настроек открытым для следующего шага.</p>
-
-
-<h2 id="get-sdk">Установка N Preview SDK</h2>
-
-<p>Чтобы начать разработку с использованием API-интерфейсов Android N, необходимо установить
-Android N Preview SDK в Android Studio, выполнив следующие шаги.</p>
-
-<ol>
-  <li>На открытой панели "Updates" (шаг 4 выше)
-установите флажок <strong>Automatically
-check updates for Android SDK</strong> и выберите
-<strong>Preview Channel</strong> в выпадающем списке.
-  </li>
-  <li>Щелкните <strong>Check Now</strong>.</li>
-
-  <li>В левой панели выберите <strong>Appearance &amp; Behavior &gt; System
-Settings &gt; Android SDK</strong>.
-
-  <li>Выберите вкладку <strong>SDK Platforms</strong> и установите флажок
-<strong>Android N Preview</strong>.</li>
-
-  <li>Откройте вкладку <strong>SDK Tools</strong> и установите флажки
-<strong>Android SDK Build Tools</strong>, <strong>Android SDK
-Platform-Tools</strong> и <strong>Android SDK Tools</strong>.
-
-  </li>
-
-  <li>Нажмите <strong>OK</strong> и примите лицензионные
-соглашения для всех устанавливаемых пакетов.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Загрузка справочной документации по N Preview</h3>
-
-<p>
-  Подробная информация по API-интерфейсам Android N содержится в справочной документации N Preview,
-которую можно загрузить из следующей таблицы.
-Этот пакет содержит сокращенную автономную версию веб-сайта для разработчиков Android
-и включает в себя обновленный справочник по API-интерфейсам Android N, а также сведения о различиях
-API.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Документация</th>
-    <th scope="col">Контрольные суммы</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-1-docs.zip">n-preview-1-docs.zip</a></td>
-    <td width="100%">
-      MD5: 4ab33ccbe698f46f125cc5b807cf9c2f<br>
-      SHA-1: 6a3880b3ccd19614daae5a4d0698ea6ae11c20a5
-    </td>
-  </tr>
-</table>
-
-
-
-<h2 id="java8">Установка Java 8 JDK и JRE</h2>
-
-<p>Чтобы скомпилировать ваше приложение для платформы Android N, необходимо использовать
-Java 8 Developer Kit (JDK 8), а для использования некоторых инструментов с Android
-Studio 2.1 необходимо установить Java 8 Runtime Environment (JRE 8). Поэтому если у вас еще
-нет последних версий каждого из этих пакетов, загрузите JDK 8 и JRE 8
-прямо сейчас.</p>
-
-<p>Установите версию JDK в Android Studio, выполнив следующие шаги.</p>
-
-<ol>
-  <li>Откройте проект Android в Android Studio, затем откройте
-окно "Project Structure", выбрав <strong>File &gt; Project
-Structure</strong>. (Вы также можете установить структуру по умолчанию для всех проектов,
-выбрав <strong>File &gt; Other Settings &gt; Default Project Structure</strong>).
-
-   </li>
-   <li>В левой панели окна щелкните <strong>SDK Location</strong>.
-   </li>
-   <li>В поле <strong>JDK Location</strong> укажите расположение
-Java 8 JDK (нажмите кнопку справа
-для просмотра своих файлов), затем нажмите <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">Обновление или создание проекта</h2>
-
-<p>
-  Для использования API-интерфейсов Android N ваш проект должен быть сконфигурирован соответствующим образом.
-</p>
-
-<p>Если вы планируете использовать возможности языка Java 8, ознакомьтесь в документе
-<a href="{@docRoot}preview/j8-jack.html">Возможности языка Java 8</a>
-с информацией о поддерживаемых возможностях Java 8 и о настройке
-проекта с компилятором Jack.</p>
-
-
-<h3 id="update">Обновление существующего проекта</h3>
-
-<p>Откройте файл
-<code>build.gradle</code> для своего модуля и укажите в нем следующие значения:
-
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc1'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">Создание нового проекта</h3>
-
-
-<p>Чтобы создать новый проект разработки с использованием Android N Preview SDK выполните следующие действия.</p>
-
-<ol>
-  <li>Выберите <strong>File &gt; New Project</strong> и выполняйте указания, пока не перейдете на страницу
-"Target Android Devices".
-  </li>
-  <li>На этой странице выберите вариант <strong>Phone and Tablet</strong>.</li>
-  <li>В разделе <strong>Phone and Tablet</strong> перейдите в список <strong>Minimum
-SDK</strong> и выберите
-<strong>N: Android API 23, N Preview (Preview)</strong>.</li>
-</ol>
-
-
-<h2 id="next">Дальнейшие действия</h2>
-
-<ul>
-  <li>Выполните рекомендации руководства <a href="{@docRoot}preview/download.html">Тест на устройстве Android N</a>.</li>
-  <li>Более подробную информацию о платформе Android N можно найти в документе
-<a href="{@docRoot}preview/behavior-changes.html">Изменения в работе</a>
-и в описании <a href="{@docRoot}preview/api-overview.html">API-интерфейсов и возможностей Android N</a>.
-</li>
-</ul>
diff --git a/docs/html-intl/intl/ru/preview/features/direct-boot.jd b/docs/html-intl/intl/ru/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/ru/preview/features/direct-boot.jd
rename to docs/html-intl/intl/ru/training/articles/direct-boot.jd
index 3392c13..98849fe 100644
--- a/docs/html-intl/intl/ru/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/ru/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Содержание документа</h2>
   <ol>
     <li><a href="#run">Запрос доступа для запуска в режиме Direct Boot</a></li>
diff --git a/docs/html-intl/intl/ru/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
similarity index 96%
rename from docs/html-intl/intl/ru/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
index 51a4c4d..3e67d35 100644
--- a/docs/html-intl/intl/ru/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Содержание документа</h2>
   <ol>
     <li><a href="#accessing">Доступ к каталогу во внешнем хранилище</a></li>
@@ -57,8 +57,8 @@
 <p>Система пытается предоставить доступ к внешнему каталогу и, при необходимости,
 запрашивает подтверждение доступа у пользователя с помощью упрощенного пользовательского интерфейса:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Рисунок 1.</strong> Приложение запрашивает
 доступ к каталогу Pictures.</p>
 
diff --git a/docs/html-intl/intl/ru/preview/features/security-config.jd b/docs/html-intl/intl/ru/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/ru/preview/features/security-config.jd
rename to docs/html-intl/intl/ru/training/articles/security-config.jd
index 5294a4f..dee9b77b 100644
--- a/docs/html-intl/intl/ru/preview/features/security-config.jd
+++ b/docs/html-intl/intl/ru/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Содержание документа</h2>
 <ol>
diff --git a/docs/html-intl/intl/ru/preview/features/picture-in-picture.jd b/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
similarity index 98%
rename from docs/html-intl/intl/ru/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
index 5be0bff..fc26368 100644
--- a/docs/html-intl/intl/ru/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Содержание документа</h2>
 <ol>
@@ -57,7 +57,7 @@
 видео, окно PIP автоматически
 закроется. Пользователи также могут закрыть окно PIP, используя экран последних задач.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Рисунок 1.</strong> Видео в режиме "картинка в картинке"
  отображается в углу экрана, пока пользователь просматривает
 контент на главном экране.</p>
@@ -114,7 +114,7 @@
 <p>Добавление кнопки PIP на панель управления мультимедиа позволяет пользователям легко переключаться
 в режим PIP с сохранением возможностей управления воспроизведением видео.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Рисунок 1.</strong> Кнопка режима "картинка в картинке"
 на панели управления мультимедиа.</p>
 
diff --git a/docs/html-intl/intl/ru/preview/features/tv-recording-api.jd b/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/ru/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
index 5e6ce45..19d6db3 100644
--- a/docs/html-intl/intl/ru/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Содержание документа</h2>
   <ol>
     <li><a href="#supporting">Указание на поддержку записи</a></li>
diff --git a/docs/html-intl/intl/vi/preview/behavior-changes.jd b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/vi/preview/behavior-changes.jd
rename to docs/html-intl/intl/vi/about/versions/nougat/android-7.0-changes.jd
index 3060fbf..58834a5 100644
--- a/docs/html-intl/intl/vi/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Trong tài liệu này</h2>
 
@@ -74,7 +74,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Hình 1.</strong> Minh họa cách thức Chế độ Ngủ sâu áp dụng ở cấp đầu tiên của
   các hạn chế hoạt động hệ thống nhằm cải thiện thời lượng pin.
@@ -93,7 +93,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>Hình 2.</strong> Minh họa cách Chế độ Ngủ sâu áp dụng cấp thứ hai của
    các hạn chế hoạt động hệ thống sau khi thiết bị được đặt một chỗ trong một khoảng thời gian nhất định.
@@ -229,10 +229,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/vi/preview/samples.jd b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0-samples.jd
similarity index 78%
rename from docs/html-intl/intl/vi/preview/samples.jd
rename to docs/html-intl/intl/vi/about/versions/nougat/android-7.0-samples.jd
index aa1a8c6..448c39d 100644
--- a/docs/html-intl/intl/vi/preview/samples.jd
+++ b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">Dùng thử đa cửa sổ</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   Ví dụ này minh họa cách tận dụng giao diện người dùng
   đa cửa sổ với ứng dụng của bạn.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Thông báo đang Hoạt động</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Đây là ví dụ đã có sẵn, minh họa một dịch vụ đơn giản để gửi
   thông báo bằng cách sử dụng NotificationCompat. Mỗi cuộc hội thoại chưa đọc từ một người dùng
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Dịch vụ Nhắn tin</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   Đây là một ví dụ đã có sẵn, minh họa cách sử dụng
   NotificationManager để cho biết có bao nhiêu thông báo một ứng dụng hiện
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Khởi động Trực tiếp</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Ví dụ này minh họa cách lưu trữ và truy cập dữ liệu trên bộ lưu trữ
   mã hóa thiết bị, luôn khả dụng khi thiết bị được khởi động.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Truy cập Thư mục theo Phạm vi</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   Ví dụ này minh họa cách đọc và ghi dữ liệu từ các thư mục
   cụ thể trong khi cần ít quyền hơn.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
   Tải mã trên GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/vi/preview/api-overview.jd b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0.jd
similarity index 97%
rename from docs/html-intl/intl/vi/preview/api-overview.jd
rename to docs/html-intl/intl/vi/about/versions/nougat/android-7.0.jd
index 5abc2f8..b218a4e 100644
--- a/docs/html-intl/intl/vi/preview/api-overview.jd
+++ b/docs/html-intl/intl/vi/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Các tính năng chính cho nhà phát triển</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -70,7 +70,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>Hình 1.</strong> Các ứng dụng chạy trong chế độ chia màn hình.
 </p>
@@ -126,15 +126,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -261,7 +261,7 @@
 <h2 id="data_saver">Tiết kiệm dữ liệu</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Hình 4.</strong> Tính năng Tiết kiệm dữ liệu trong mục Settings.
@@ -296,7 +296,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Hình 5.</strong> Các ô Cài đặt nhanh trong vùng hiển thị thông báo.
diff --git a/docs/html-intl/intl/vi/preview/index.jd b/docs/html-intl/intl/vi/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/vi/preview/index.jd
rename to docs/html-intl/intl/vi/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/vi/preview/j8-jack.jd b/docs/html-intl/intl/vi/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/vi/preview/j8-jack.jd
rename to docs/html-intl/intl/vi/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/vi/preview/features/multi-window.jd b/docs/html-intl/intl/vi/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/vi/preview/features/multi-window.jd
rename to docs/html-intl/intl/vi/guide/topics/ui/multi-window.jd
index 5b2cb54..3317d1c 100644
--- a/docs/html-intl/intl/vi/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/vi/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>Trong tài liệu này</h2>
       <ol>
         <li><a href="#overview">Tổng quan</a></li>
@@ -68,8 +68,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>Hình 1.</strong> Hai ứng dụng chạy trong chế độ chia màn hình.
 </p>
diff --git a/docs/html-intl/intl/vi/preview/download.jd b/docs/html-intl/intl/vi/preview/download.jd
deleted file mode 100644
index 8b2a272..0000000
--- a/docs/html-intl/intl/vi/preview/download.jd
+++ /dev/null
@@ -1,550 +0,0 @@
-page.title=Kiểm thử trên Thiết bị
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Trước khi tải xuống và cài đặt các thành phần của
-      Android Preview SDK, bạn phải đồng ý với các điều khoản và
-      điều kiện sau.</p>
-
-    <h2 class="norule">Điều khoản và Điều kiện</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-Đây là Thỏa thuận Cấp phép Android SDK Preview (gọi là “Thỏa thuận Cấp phép”).
-
-1. Giới thiệu
-
-1.1 Android SDK Preview (trong Thỏa thuận Cấp phép này gọi là “Preview” và cụ thể bao gồm các tệp hệ thống Android, các API dạng gói, và các tệp thư viện Preview, nếu và khi nào chúng được cung cấp) được cấp phép cho bạn theo các điều khoản của Thỏa thuận Cấp phép này. Thỏa thuận Cấp phép này hợp thành một hợp đồng ràng buộc pháp lý giữa bạn và Google liên quan đến việc bạn sử dụng Preview.
-
-1.2 "Android" có nghĩa là chồng phần mềm Android cho thiết bị, được cung cấp theo Dự án Nguồn mở Android, nằm ở địa chỉ URL sau: http://source.android.com/, được cập nhật trong từng thời kỳ.
-
-1.3 “Tương thích Android” nghĩa là bất cứ triển khai Android nào (i) tuân thủ theo tài liệu Định nghĩa Tính tương thích Android, có thể được tìm thấy tại trang web về tính tương thích Android (http://source.android.com/compatibility) và có thể được cập nhật theo thời gian; và (ii) vượt qua thành công Gói Kiểm tra Tính tương thích Android (CTS).
-
-1.4 "Google" có nghĩa là Google Inc., một công ty ở Delaware với trụ sở kinh doanh chính tại 1600 Amphitheatre Parkway, Mountain View, CA 94043, Hoa Kỳ.
-
-2. Chấp thuận Thỏa thuận Cấp phép
-
-2.1 Để sử dụng Preview, trước tiên bạn phải đồng ý với Thỏa thuận Cấp phép. Bạn không được sử dụng Preview nếu không chấp nhận Thỏa thuận Cấp phép này.
-
-2.2 Bằng việc nhấp vào chấp nhận và/hoặc sử dụng Preview, theo đây bạn đồng ý với các điều khoản của Thỏa thuận Cấp phép này.
-
-2.3 Bạn không được sử dụng Preview và không được chấp nhận Thỏa thuận Cấp phép nếu bạn là người bị cấm nhận Preview theo pháp luật của Hoa Kỳ hoặc các quốc gia khác bao gồm quốc gia nơi bạn cư trú hoặc nơi mà bạn sử dụng Preview từ đó.
-
-2.4 Nếu bạn sẽ sử dụng Preview trong nội bộ công ty hoặc tổ chức của bạn thì bạn đồng ý chịu ràng buộc bởi Thỏa thuận Cấp phép này đại diện cho bên tuyển dụng của mình hoặc đơn vị khác, và bạn tuyên bố và bảo đảm rằng bạn có đầy đủ thẩm quyền pháp lý để ràng buộc bên tuyển dụng của mình hoặc đơn vị đó với Thỏa thuận Cấp phép này. Nếu bạn không có thẩm quyền cần thiết, bạn không được chấp nhận Thỏa thuận Cấp phép này hoặc sử dụng Preview đại diện cho bên tuyển dụng của mình hoặc đơn vị khác.
-
-3. Giấy phép Preview từ Google
-
-3.1 Tùy thuộc vào các điều khoản của Thỏa thuận Cấp phép này, Google cấp cho bạn một giấy phép giới hạn, toàn cầu, miễn phí sử dụng, không thể chuyển nhượng, không độc quyền và không thể cấp phép lại để sử dụng Preview cho mục đích duy nhất là phát triển các ứng dụng cho các triển khai Android tương thích.
-
-3.2 Bạn không được sử dụng Preview này để phát triển các ứng dụng cho các nền tảng khác (bao gồm các triển khai Android không tương thích) hoặc để phát triển một bộ SDK khác. Bạn dĩ nhiên được phát triển các ứng dụng cho các nền tảng khác, bao gồm các triển khai Android không tương thích, miễn là Preview này không được sử dụng cho mục đích đó.
-
-3.3 Bạn đồng ý rằng Google hoặc các bên thứ ba sở hữu tất cả quyền, quyền sở hữu hoặc lợi ích hợp pháp trong và đối với Preview, bao gồm bất kỳ Quyền Sở hữu Trí tuệ nào nằm trong Preview. "Quyền Sở hữu Trí tuệ" có nghĩa là bất kỳ và tất cả các quyền theo luật về bằng sáng chế, luật về bản quyền, luật về bí mật thương mại, luật về nhãn hiệu thương mại và bất kỳ và tất cả các quyền sở hữu khác. Google bảo lưu tất cả các quyền không được cấp phép rõ ràng cho bạn.
-
-3.4 Bạn không được sử dụng Preview cho bất kỳ mục đích nào không được cho phép rõ ràng bởi Thỏa thuận Cấp phép này. Trừ trường hợp được yêu cầu bởi giấy phép của bên thứ ba có liên quan, bạn không được: (a) sao chép (trừ trường hợp sao lưu), sửa đổi, điều chỉnh cho phù hợp, phân phối lại, biên dịch ngược, kỹ thuật đảo ngược, phân rã, hoặc tạo sản phẩm phái sinh từ Preview hay bất kỳ phần nào của Preview; hoặc (b) tải bất kỳ phần nào của Preview lên một thiết bị cầm tay di động hoặc bất kỳ thiết bị phần cứng nào khác ngoại trừ máy tính cá nhân, kết hợp bất kỳ phần nào của Preview với phần mềm khác, hay phân phối bất kỳ phần mềm hay thiết bị nào tích hợp một phần của Preview.
-
-3.5 Việc sử dụng, tái tạo lại và phân phối các thành phần của Preview được cấp phép theo một giấy phép phần mềm nguồn mở được chi phối chủ yếu bởi các điều khoản của giấy phép phần mềm nguồn mở đó chứ không phải Thỏa thuận Cấp phép này. Bạn đồng ý duy trì một giấy phép có uy tín liên quan đến các giấy phép phần mềm mã nguồn mở theo tất cả các quyền được cấp và phải tránh bất kỳ hành động nào có thể chấm dứt, đình chỉ hoặc vi phạm các quyền đó.
-
-3.6 Bạn đồng ý rằng hình thức và tính chất của Preview mà Google cung cấp có thể thay đổi mà không có thông báo trước cho bạn và rằng các phiên bản sau này của Preview có thể không tương thích với các ứng dụng được phát triển trên những phiên bản trước của Preview. Bạn đồng ý rằng Google có thể ngừng (vĩnh viễn hoặc tạm thời) việc cung cấp Preview (hoặc bất kỳ tính năng nào trong Preview) cho bạn hoặc cho người dùng nói chung toàn quyền theo quyết định của Google, mà không cần thông báo trước cho bạn.
-
-3.7 Không có bất cứ nội dung nào trong Thỏa thuận Cấp phép này trao cho bạn quyền sử dụng bất kỳ tên thương mại, thương hiệu, dấu hiệu dịch vụ, logo, tên miền, hoặc các tính năng nhãn hiệu đặc biệt nào khác.
-
-3.8 Bạn đồng ý rằng bạn sẽ không gỡ bỏ, che đậy, hoặc sửa đổi bất kỳ thông báo quyền sở hữu nào (bao gồm các thông báo về bản quyền và thương hiệu) mà có thể gắn với hoặc có trong Preview.
-
-4. Việc Bạn sử dụng Preview
-
-4.1 Google đồng ý rằng không có bất cứ nội dung nào trong Thỏa thuận Cấp phép này cấp cho Google bất cứ quyền, quyền sở hữu hay lợi ích nào từ bạn (hay bên cấp phép của bạn) theo Thỏa thuận Cấp phép này trong hoặc đối với bất kỳ ứng dụng phần mềm nào mà bạn phát triển bằng cách sử dụng Preview, bao gồm bất kỳ quyền sở hữu trí tuệ nào nằm trong những ứng dụng đó.
-
-4.2 Bạn đồng ý sử dụng Preview và viết ứng dụng chỉ cho các mục đích được cho phép bởi (a) Thỏa thuận Cấp phép này và (b) bất kỳ luật, quy định hoặc thực hành áp dụng nào hoặc hướng dẫn được chấp nhận chung ở các vùng tài phán liên quan (bao gồm bất kỳ luật nào về việc xuất dữ liệu hoặc phần mềm đến và từ Hoa Kỳ hoặc các quốc gia có liên quan khác).
-
-4.3 Bạn đồng ý rằng nếu bạn sử dụng Preview để phát triển ứng dụng, bạn sẽ bảo vệ quyền riêng tư và các quyền hợp pháp của người dùng. Nếu người dùng cung cấp cho bạn tên người dùng, mật khẩu hoặc thông tin đăng nhập hay thông tin cá nhân khác, bạn phải thông báo cho người dùng rằng thông tin sẽ có sẵn cho ứng dụng của bạn, và bạn phải cung cấp thông báo về quyền riêng tư và sự bảo vệ thỏa đáng về mặt pháp lý cho những người dùng đó. Nếu ứng dụng của bạn lưu trữ thông tin cá nhân hoặc nhạy cảm được cung cấp bởi người dùng, ứng dụng phải làm vậy một cách bảo mật. Nếu người dùng cung cấp cho bạn thông tin về Tài khoản Google, ứng dụng của bạn chỉ được sử dụng thông tin đó để truy cập Tài khoản Google của người dùng khi, và chỉ cho các mục đích giới hạn mà mỗi người dùng đã cấp phép cho bạn để thực hiện.
-
-4.4 Bạn đồng ý rằng bạn sẽ không tham gia vào bất kỳ hoạt động nào với Preview, bao gồm việc phát triển hoặc phân phối một ứng dụng, mà can thiệp vào, làm gián đoạn, gây thiệt hại, hoặc truy cập một cách trái phép vào máy chủ, mạng hoặc tài sản hay dịch vụ khác của Google hoặc bất kỳ bên thứ ba nào.
-
-4.5 Bạn đồng ý rằng bạn hoàn toàn chịu trách nhiệm về (và rằng Google không có trách nhiệm đối với bạn hay bất kỳ bên thứ ba nào về) bất kỳ dữ liệu, nội dung hay tài nguyên nào mà bạn tạo lập, truyền hoặc hiển thị thông qua Android và/hoặc các ứng dụng cho Android, và về hậu quả của những hành động của bạn (bao gồm bất kỳ tổn thất hay thiệt hại nào mà Google có thể phải gánh chịu) bởi việc làm như vậy.
-
-4.6 Bạn đồng ý rằng bạn hoàn toàn chịu trách nhiệm về (và rằng Google không có trách nhiệm đối với bạn hay bất kỳ bên thứ ba nào về) bất kỳ sự vi phạm nào đối với các nghĩa vụ của bạn theo Thỏa thuận Cấp phép này, bất kỳ hợp đồng với bên thứ ba áp dụng nào hoặc các Điều khoản Dịch vụ, hoặc bất kỳ luật hay quy định áp dụng nào, và về hậu quả của những hành động của bạn (bao gồm bất kỳ tổn thất hay thiệt hại nào mà Google hoặc bất kỳ bên thứ ba nào có thể phải gánh chịu) do bất kỳ sự vi phạm nào như vậy.
-
-4.7 Preview đang được phát triển, và việc kiểm thử và phản hồi của bạn là một phần quan trọng trong quá trình phát triển này. Bằng việc sử dụng Preview, bạn thừa nhận rằng việc triển khai một số tính năng vẫn còn đang được phát triển và rằng bạn không nên dựa vào Preview có đầy đủ chức năng của một phiên bản ổn định. Bạn đồng ý không công khai phân phối hoặc gửi bất kỳ ứng dụng nào bằng Preview này bởi Preview này sẽ không còn được hỗ trợ sau khi Android SDK bản chính thức được phát hành.
-
-5. Thông tin Xác thực Nhà phát triển của bạn
-
-5.1 Bạn đồng ý rằng bạn chịu trách nhiệm duy trì tính bảo mật của bất kỳ thông tin xác thực nhà phát triển nào mà có thể được phát hành cho bạn bởi Google hoặc bạn có thể tự chọn và rằng bạn sẽ hoàn toàn chịu trách nhiệm về tất cả ứng dụng được phát triển theo thông tin xác thực nhà phát triển của bạn.
-
-6. Quyền riêng tư và Thông tin
-
-6.1 Để tiếp tục đổi mới và cải thiện Preview, Google có thể thu thập một số thống kê về sử dụng từ phần mềm bao gồm nhưng không giới hạn mã định danh duy nhất, địa chỉ IP liên kết, số phiên bản của phần mềm, và thông tin về những công cụ và/hoặc dịch vụ trong Preview đang được sử dụng và chúng đang được sử dụng như thế nào. Trước khi bất kỳ thông tin nào được thu thập, Preview sẽ thông báo cho bạn và xin phép sự đồng ý của bạn. Nếu bạn từ chối cho phép, thông tin sẽ không được thu thập.
-
-6.2 Dữ liệu thu thập được kiểm tra chung để cải thiện Preview và được duy trì theo Chính sách Quyền riêng tư của Google tại http://www.google.com/policies/privacy/.
-
-7. Ứng dụng của Bên thứ ba
-
-7.1 Nếu bạn sử dụng Preview để chạy các ứng dụng được phát triển bởi một bên thứ ba hoặc truy cập dữ liệu, nội dung hoặc tài nguyên được cung cấp bởi một bên thứ ba, bạn đồng ý rằng Google không chịu trách nhiệm về những ứng dụng, dữ liệu, nội dung hoặc tài nguyên đó. Bạn hiểu rằng tất cả dữ liệu, nội dung hoặc tài nguyên mà bạn có thể truy cập thông qua các ứng dụng của bên thứ ba như vậy hoàn toàn thuộc trách nhiệm của người cung cấp chúng và rằng Google không chịu trách nhiệm về bất kỳ tổn thất hay thiệt hại nào mà bạn có thể gặp phải do kết quả từ việc sử dụng hay truy cập bất kỳ ứng dụng của bên thứ ba, dữ liệu, nội dung hay tài nguyên nào như vậy.
-
-7.2 Bạn cần ý thức được rằng dữ liệu, nội dung và tài nguyên được trình chiếu cho bạn thông qua một ứng dụng của bên thứ ba như vậy có thể được bảo vệ bởi các quyền sở hữu trí tuệ thuộc sở hữu của các nhà cung cấp (hoặc bởi cá nhân hoặc công ty khác đại diện cho họ). Bạn không được sửa đổi, thuê, cho thuê, cho vay, bán, phân phối hoặc tạo sản phẩm phái sinh dựa trên những dữ liệu, nội dung hoặc tài nguyên này (hoặc toàn bộ hoặc một phần) trừ khi bạn đã được cấp phép cụ thể để làm vậy bởi chủ sở hữu có liên quan.
-
-7.3 Bạn hiểu rằng việc bạn sử dụng các ứng dụng, dữ liệu, nội dung hoặc tài nguyên của bên thứ ba như vậy có thể phải tuân thủ các điều khoản riêng giữa bạn và bên thứ ba có liên quan.
-
-8. Sử dụng các API Google
-
-8.1 Các API Google
-
-8.1.1 Nếu bạn sử dụng bất kỳ API nào để truy xuất dữ liệu từ Google, bạn hiểu rằng dữ liệu có thể được bảo vệ bởi quyền sở hữu trí tuệ thuộc sở hữu của Google hoặc những bên cung cấp dữ liệu (hoặc bởi cá nhân hoặc công ty khác đại diện cho họ). Việc bạn sử dụng bất kỳ API nào như vậy có thể phải tuân theo các Điều khoản Dịch vụ bổ sung. Bạn không được sửa đổi, thuê, cho thuê, cho vay, bán, phân phối hoặc tạo sản phẩm phái sinh dựa trên dữ liệu này (hoặc toàn bộ hoặc một phần) trừ khi được cho phép bởi các Điều khoản Dịch vụ có liên quan.
-
-8.1.2 Nếu bạn sử dụng bất kỳ API nào để truy xuất dữ liệu của một người dùng từ Google, bạn hiểu và đồng ý rằng bạn sẽ chỉ truy xuất dữ liệu với sự cho phép rõ ràng của người dùng và chỉ khi, và cho các mục đích giới hạn mà người dùng đã được cấp quyền để thực hiện.
-
-9. Chấm dứt Thỏa thuận Cấp phép
-
-9.1 Thỏa thuận Cấp phép sẽ tiếp tục áp dụng cho đến khi được chấm dứt hoặc bởi bạn hoặc Google như quy định dưới đây.
-
-9.2 Nếu bạn muốn chấm dứt Thỏa thuận Cấp phép, bạn có thể làm như vậy bằng cách ngừng sử dụng Preview và bất kỳ thông tin nhà phát triển nào có liên quan.
-
-9.3 Bất cứ lúc nào, Google đều có thể chấm dứt Thỏa thuận Cấp phép này, có hoặc không có nguyên nhân, sau khi thông báo cho bạn.
-
-9.4 Thỏa thuận Cấp phép sẽ tự động chấm dứt mà không cần có thông báo hay hành động khác tùy theo sự việc nào sớm hơn:
-(A) khi Google ngừng cung cấp Preview hoặc một số thành phần nhất định của Preview cho người dùng ở quốc gia mà bạn đang cư trú hoặc nơi bạn đang sử dụng dịch vụ; và
-(B) Google phát hành một phiên bản phát hành cuối cùng của Android SDK.
-
-9.5 Khi Thỏa thuận Cấp phép bị chấm dứt, giấy phép đã cấp cho bạn trong Thỏa thuận Cấp phép sẽ chấm dứt, ngay lập tức bạn sẽ ngừng tất cả việc sử dụng Preview này, và các quy định tại khoản 10, 11, 12 và 14 sẽ vẫn còn hiệu lực mãi mãi.
-
-10. ĐIỀU KHOẢN MIỄN TRỪ
-
-10.1 BẠN HIỂU VÀ ĐỒNG Ý RÕ RÀNG RẰNG VIỆC BẠN SỬ DỤNG PREVIEW HOÀN TOÀN LÀ RỦI RO CỦA BẠN VÀ RẰNG PREVIEW ĐƯỢC CUNG CẤP TRÊN CƠ SỞ “NGUYÊN TRẠNG” VÀ “CÓ SẴN” MÀ KHÔNG CÓ BẤT KỲ SỰ BẢO ĐẢM NÀO TỪ GOOGLE.
-
-10.2 VIỆC BẠN SỬ DỤNG PREVIEW VÀ BẤT KỲ TÀI NGUYÊN NÀO ĐƯỢC TẢI XUỐNG HOẶC CÓ ĐƯỢC BẰNG CÁCH KHÁC THÔNG QUA VIỆC SỬ DỤNG PREVIEW LÀ QUYẾT ĐỊNH VÀ RỦI RO CỦA CHÍNH BẠN VÀ BẠN HOÀN TOÀN CHỊU TRÁCH NHIỆM VỀ BẤT KỲ THIỆT HẠI NÀO ĐỐI VỚI HỆ THỐNG MÁY TÍNH HOẶC THIẾT BỊ KHÁC HOẶC VIỆC MẤT DỮ LIỆU LÀ KẾT QUẢ TỪ VIỆC SỬ DỤNG ĐÓ. KHÔNG GIỚI HẠN TRONG NỘI DUNG TRÊN, BẠN HIỂU RẰNG PREVIEW KHÔNG PHẢI LÀ BẢN PHÁT HÀNH ỔN ĐỊNH VÀ CÓ THỂ CHỨA LỖI, KHIẾM KHUYẾT VÀ CÁC LỖ HỔNG BẢO MẬT CÓ THỂ DẪN ĐẾN THIỆT HẠI ĐÁNG KỂ, BAO GỒM MẤT KHẢ NĂNG SỬ DỤNG HOÀN TOÀN, KHÔNG THỂ PHỤC HỒI ĐƯỢC CỦA HỆ THỐNG MÁY TÍNH HAY THIẾT BỊ KHÁC CỦA BẠN.
-
-10.3 GOOGLE CÔNG KHAI TUYÊN BỐ MIỄN TRỪ TRÁCH NHIỆM ĐỐI VỚI TẤT CẢ BẢO ĐẢM VÀ ĐIỀU KIỆN CÁC LOẠI, DÙ RÕ RÀNG HAY NGỤ Ý, BAO GỒM, NHƯNG KHÔNG GIỚI HẠN NHỮNG BẢO ĐẢM VÀ ĐIỀU KIỆN NGỤ Ý VỀ KHẢ NĂNG MUA BÁN ĐƯỢC, SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ VÀ KHÔNG XÂM PHẠM.
-
-11. GIỚI HẠN TRÁCH NHIỆM
-
-11.1 BẠN HIỂU VÀ ĐỒNG Ý RÕ RÀNG RẰNG GOOGLE, CÁC CÔNG TY CON VÀ CÔNG TY LIÊN KẾT CỦA GOOGLE, VÀ CÁC BÊN CẤP PHÉP CỦA GOOGLE SẼ KHÔNG CHỊU TRÁCH NHIỆM ĐỐI VỚI BẠN THEO BẤT KỲ LÝ THUYẾT TRÁCH NHIỆM NÀO VỀ BẤT KỲ THIỆT HẠI MANG TÍNH TRỰC TIẾP, GIÁN TIẾP, NGẪU NHIÊN, ĐẶC BIỆT, HẬU QUẢ HOẶC BẤT THƯỜNG NÀO MÀ BẠN CÓ THỂ PHẢI CHỊU, BAO GỒM BẤT KỲ TRƯỜNG HỢP MẤT DỮ LIỆU NÀO, DÙ GOOGLE HAY ĐẠI DIỆN CỦA GOOGLE CÓ BIẾT VỀ KHẢ NĂNG PHÁT SINH MẤT MÁT NHƯ VẬY HAY KHÔNG.
-
-12. Bồi thường
-
-12.1 Trong giới hạn tối đa mà pháp luật cho phép, bạn đồng ý bảo vệ, bồi thường và đảm bảo Google, các công ty liên kết của họ và các giám đốc, cán bộ, nhân viên và đại lý tương ứng của họ không bị thiệt hại trước và đối với bất kỳ và tất cả khiếu nại, hành động, kiện tụng hoặc thủ tục cũng như bất kỳ và tất cả tổn thất, trách nhiệm, thiệt hại, chi phí và phí tổn nào (bao gồm phí luật sư hợp lý) phát sinh từ hoặc phải trả từ (a) việc bạn sử dụng Preview, (b) bất kỳ ứng dụng nào do bạn phát triển trên Preview mà xâm phạm bất kỳ Quyền Sở hữu Trí tuệ của bất kỳ người nào hay bôi nhọ bất kỳ người nào hoặc vi phạm các quyền công khai hoặc riêng tư của họ, và (c) bất kỳ sự không tuân thủ nào của bạn đối với Thỏa thuận Cấp phép này.
-
-13. Thay đổi Thỏa thuận Cấp phép
-
-13.1 Google có thể thực hiện các thay đổi về Thỏa thuận Cấp phép khi họ phân phối các phiên bản mới của Preview. Khi những thay đổi này được thực hiện, Google sẽ lập một phiên bản Thỏa thuận Cấp phép mới có sẵn trên trang web nơi Preview được cung cấp.
-
-14. Các Điều khoản Pháp lý Chung
-
-14.1 Thỏa thuận Cấp phép này cấu thành toàn bộ thỏa thuận pháp lý giữa bạn và Google và chi phối việc bạn sử dụng Preview (không bao gồm bất kỳ dịch vụ nào mà Google có thể cung cấp cho bạn theo một thỏa thuận riêng bằng văn bản), và hoàn toàn thay thế bất kỳ thỏa thuận nào trước đây giữa bạn và Google liên quan tới Preview.
-
-14.2 Bạn đồng ý rằng nếu Google không thực hiện hay thi hành bất kỳ quyền hay chế tài hợp pháp nào có trong Thỏa thuận Cấp phép này (hoặc Google được hưởng lợi theo bất kỳ luật áp dụng nào), điều này sẽ không được coi như sự khước từ hình thức đối với các quyền của Google và rằng các quyền hoặc chế tài đó sẽ vẫn dành cho Google.
-
-14.3 Nếu bất kỳ tòa án pháp luật nào, có thẩm quyền tài phán đối với vấn đề này, phán rằng bất kỳ quy định nào của Thỏa thuận Cấp phép này không có hiệu lực, quy định đó sẽ bị xóa bỏ khỏi Thỏa thuận Cấp phép này mà không ảnh hưởng tới phần còn lại của Thỏa thuận Cấp phép này. Các quy định còn lại của Thỏa thuận Cấp phép này sẽ tiếp tục có giá trị và thi hành được.
-
-14.4 Bạn hiểu và đồng ý rằng mỗi thành viên trong nhóm các công ty mà trong đó Google là công ty mẹ sẽ là bên thụ hưởng thứ ba của Thỏa thuận Cấp phép và rằng những công ty khác đó sẽ có quyền trực tiếp thi hành, và dựa vào, bất kỳ quy định nào của Thỏa thuận Cấp phép này mà trao lợi ích cho họ (hoặc trao quyền có lợi cho họ). Ngoài điều này ra, không người hay công ty nào khác sẽ là bên thụ hưởng thứ ba của Thỏa thuận Cấp phép này.
-
-14.5 HẠN CHẾ VỀ XUẤT KHẨU. PREVIEW PHẢI TUÂN THEO PHÁP LUẬT VÀ QUY ĐỊNH VỀ XUẤT KHẨU CỦA HOA KỲ. BẠN PHẢI TUÂN THỦ TẤT CẢ PHÁP LUẬT VÀ QUY ĐỊNH VỀ XUẤT KHẨU TRONG NƯỚC VÀ QUỐC TẾ ÁP DỤNG CHO PREVIEW. NHỮNG LUẬT NÀY BAO GỒM CÁC HẠN CHẾ VỀ ĐIỂM ĐẾN, NGƯỜI DÙNG CUỐI VÀ MỤC ĐÍCH SỬ DỤNG CUỐI.
-
-14.6 Bạn không được phép chỉ định hoặc chuyển nhượng Thỏa thuận Cấp phép mà không có sự chấp thuận trước bằng văn bản của Google, và mọi nỗ lực chuyển nhượng mà không có chấp thuận như vậy sẽ vô hiệu lực. Bạn sẽ không được giao phó các trách nhiệm hoặc nghĩa vụ của mình theo Thỏa thuận Cấp phép này khi chưa có sự phê duyệt trước bằng văn bản của Google.
-
-14.7 Thỏa thuận Cấp phép này và mối quan hệ giữa bạn với Google theo Thỏa thuận Cấp phép sẽ được điều chỉnh bởi pháp luật của Tiểu bang California, không xét tới các quy định về xung đột pháp luật của họ. Bạn và Google đồng ý trình lên theo thẩm quyền tài phán duy nhất của các tòa án bên trong quận Santa Clara, California để giải quyết bất kỳ vấn đề pháp lý nào phát sinh từ Thỏa thuận Cấp phép này. Không kể điều này, bạn đồng ý rằng Google sẽ vẫn được phép xin các lệnh chế tài của tòa (hoặc một hình thức chế tài pháp lý khẩn cấp tương đương) ở bất kỳ vùng tài phán nào.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">Tôi đã đọc và đồng ý với các điều khoản và điều kiện trên</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>Trong tài liệu này</h2>
-      <ol>
-        <li><a href="#device-preview">Thiết lập thiết bị phần cứng</a>
-          <ol>
-            <li><a href="#ota">Nhận cập nhật qua sóng vô tuyến</a></li>
-            <li><a href="#flash">Flash thủ công thiết bị</a></li>
-            <li><a href="#revertDevice">Gỡ cài đặt</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Thiết lập bộ giả lập</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Để chạy và kiểm thử ứng dụng của bạn trên nền tảng mới, bạn cần phải thiết lập môi trường thời gian chạy Android N
-. Bạn có thể thực hiện điều đó bằng một trong các cách sau:
-</p>
-
-<ul>
-  <li>Cài đặt Android N trên một thiết bị phần cứng được hỗ trợ, hoặc</li>
-  <li>Thiết lập một bộ giả lập Android chạy Android N</li>
-</ul>
-
-<p>
-  Nếu bạn muốn có một môi trường để kiểm thử khả năng tương thích cơ bản của ứng dụng của bạn trên
-  nền tảng mới này, tất cả những gì bạn cần là APK hiện tại của bạn và một thiết bị phần cứng hoặc
-  bộ giả lập. Bạn không nhất thiết phải cập nhật môi trường phát triển đầy đủ
-  để thực hiện kiểm thử cơ bản.
-</p>
-
-<p>
-  Nếu bạn muốn sửa đổi ứng dụng của mình để nhắm mục tiêu đến Android N hoặc sử dụng các API Android N mới,
-  bạn cần thiết lập một môi trường phát triển được cập nhật để hỗ trợ
-  Android N. <a href="{@docRoot}preview/setup-sdk.html">Thiết lập để Phát triển dành cho
-  Android N</a> có các chi tiết.
-</p>
-
-
-<h2 id="device-preview">Thiết lập thiết bị phần cứng</h2>
-
-<p>
-  Bản N Developer Preview cung cấp các cập nhật hệ thống cho một loạt các thiết bị phần cứng
-  mà bạn có thể sử dụng để kiểm thử ứng dụng của bạn, từ điện thoại tới máy tính bảng và TV.
-</p>
-
-<p>
-  Nếu bạn có quyền truy cập vào một thiết bị được hỗ trợ, bạn có thể cập nhật nó thành bản dựng theo mốc của Preview dành cho
-  Nhà phát triển bằng một trong những cách sau:
-</p>
-
-<ul>
-  <li><strong>Đăng ký cập nhật hệ thống tự động qua vô tuyến cho thiết bị</strong> thông qua
-  <a href="https://g.co/androidbeta">Chương trình Android Beta</a>. Sau khi đăng ký, thiết bị của bạn sẽ nhận được
-  qua sóng vô tuyến các cập nhật định kỳ về tất cả bản dựng theo mốc trong bản N Developer Preview. Cách tiếp cận này
-  được khuyến khích bởi nó cho phép bạn chuyển tiếp liền mạch từ môi trường hiện tại của bạn
- qua nhiều bản phát hành khác nhau của N Developer Preview.</li>
-  <li><strong>Tải xuống ảnh hệ thống của Developer Preview và flash thiết bị</strong>.
-  Các cập nhật qua vô tuyến không được cung cấp tự động cho các thiết bị mà bạn flash thủ công, nhưng
-  bạn có thể đăng ký Chương trình Android Beta cho các thiết bị đó để nhận cập nhật qua vô tuyến. </li>
-</ul>
-
-<h3 id="ota">Đăng ký cập nhật tự động qua vô tuyến cho thiết bị</h3>
-
-<p>
-  Nếu bạn có quyền truy cập vào một thiết bị được hỗ trợ (xem danh sách trong bảng
-  Tải xuống), bạn có thể nhận được cập nhật qua sóng vô tuyến để xem trước các phiên bản của Android
- bằng cách đăng ký <a href="https://g.co/androidbeta">Chương trình Android Beta</a> cho thiết bị. Các cập nhật này được
-  tự động tải xuống và sẽ cập nhật thiết bị của bạn giống như các bản cập nhật
-  hệ thống chính thức.
-</p>
-
-<p>
-  Bạn có thể hủy đăng ký thiết bị bất cứ lúc nào. Thiết bị sẽ nhận được bản cập nhật qua vô tuyến
- của phiên bản Android sản xuất mới nhất khả dụng cho thiết bị đó
-  (ví dụ, Android 6.0 Marshmallow). Việc cập nhật yêu cầu phải thiết lập lại thiết bị
-  hoàn toàn, vì vậy dữ liệu người dùng trên thiết bị sẽ được gỡ bỏ. Hãy đảm bảo <strong>sao lưu
-  dữ liệu quan trọng</strong> trước khi hủy đăng ký thiết bị.
-</p>
-
-<p>
-  Để biết thêm thông tin và đăng ký thiết bị của bạn, xem
-  trang web <a href="https://g.co/androidbeta">Chương trình Android Beta</a>.
-</p>
-
-<p class="note"><strong>Lưu ý:</strong>
-  Việc hủy đăng ký yêu cầu phải cài đặt lại toàn bộ thiết bị. Trước hết hãy sao lưu
-  các dữ liệu quan trọng.
-</p>
-
-<h3 id="flash">Flash thiết bị thủ công</h3>
-
-<p>
-  Bất cứ lúc nào bạn cũng có thể tải xuống ảnh hệ thống mới nhất của Developer Preview và
-  flash thủ công nó vào thiết bị của bạn. Xem bảng dưới đây để tải xuống ảnh hệ thống
-  cho thiết bị kiểm thử của bạn. Việc flash thủ công thiết bị sẽ hữu ích nếu bạn cần
-  kiểm soát chính xác môi trường kiểm thử hoặc cần phải cài đặt lại thường xuyên,
-  chẳng hạn như cho kiểm thử tự động.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  Việc cài đặt ảnh hệ thống trên thiết bị <strong>sẽ gỡ bỏ tất cả dữ liệu khỏi
-  thiết bị</strong>, vì vậy trước hết bạn nên sao lưu dữ liệu của mình.
-</p>
-
-<p>
-  Sau khi sao lưu dữ liệu thiết bị và tải xuống ảnh hệ thống bên dưới
-  khớp với thiết bị của bạn, hãy làm theo hướng dẫn tại <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
- để flash ảnh này vào thiết bị của bạn.
-</p>
-
-<p>
-  Các ảnh hệ thống được flash thủ công <strong>không
-  tự động nhận cập nhật qua vô tuyến</strong> cho các bản dựng theo mốc sau này của
-  Developer Preview. Hãy đảm bảo giữ cho môi trường của bạn được cập nhật và flash một
-  ảnh hệ thống mới tại mỗi mốc của Developer Preview.
-</p>
-
-<p>
-  Nếu bạn quyết định muốn nhận cập nhật qua vô tuyến sau khi đã flash thủ công thiết bị,
-  tất cả những gì bạn cần làm là đăng ký <a href="https://g.co/androidbeta">Chương trình Android
-  Beta</a> cho thiết bị. Bạn có thể đăng ký thiết bị bất cứ lúc nào để nhận được
-  bản cập nhật qua vô tuyến tiếp theo của Preview.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Thiết bị</th>
-    <th scope="col">Tải xuống / Tổng kiểm</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Gỡ cài đặt Preview khỏi thiết bị</h3>
-
-<p>
-  Nếu bạn muốn gỡ cài đặt preview khỏi thiết bị, bạn có thể thực hiện điều đó bằng một trong
-  những cách sau: </p>
-  <ul>
-    <li><strong>Lấy thông số kỹ thuật của ảnh hệ thống nguyên gốc</strong> và sau đó flash thủ công
-    nó cho thiết bị.
-      <ul>
-          <li>Đối với <strong>các thiết bị Nexus và Pixel C</strong>, xem
-        trang <a href="http://developers.google.com/android/nexus/images">Ảnh Cài đặt Gốc
-        cho Thiết bị Nexus</a> để tìm bản tải xuống. </li>
-        <li>Đối với <strong>các thiết bị khác</strong>, vui lòng liên hệ trực tiếp với nhà sản xuất
-thiết bị. Hoặc, nếu thiết bị được hỗ trợ
-        trong Chương trình Android Beta, bạn có thể đăng ký
-        chương trình cho thiết bị và sau đó hủy đăng ký thiết bị (xem bên dưới).</li>
-      </ul>
-    </li>
-    <li><strong>Hủy đăng ký thiết bị khỏi Chương trình Android Beta</strong>. Nếu
-    thiết bị được đăng ký <a href="https://g.co/androidbeta">Chương trình Android Beta
-    </a>, không quan trọng là thiết bị nào, bạn có thể dễ dàng hủy đăng ký thiết bị khỏi chương trình này.
-  <p>
-    Thiết bị sẽ nhận được bản cập nhật qua vô tuyến của phiên bản Android sản xuất
-    mới nhất có sẵn cho thiết bị đó (ví dụ, Android 6.0 Marshmallow).
-    Bản cập nhật yêu cầu thiết lập lại toàn bộ thiết bị, vì vậy dữ liệu người dùng trên thiết bị sẽ được
-    gỡ bỏ. Hãy đảm bảo rằng bạn đã  <strong>sao lưu dữ liệu quan trọng</strong> trước khi
-    hủy đăng ký thiết bị.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Lưu ý:</strong>
-  Việc gỡ cài đặt ảnh hệ thống của Developer Preview trước khi
-  kết thúc chương trình yêu cầu phải thiết lập lại toàn bộ thiết bị và gỡ bỏ tất cả dữ liệu người dùng
-  trên thiết bị.
-</p>
-
-
-<h2 id="setupAVD">Thiết lập bộ giả lập</h2>
-
-<p>Để sử dụng Bộ Giả Lập Android chạy Android N Preview, bạn cần
-tải xuống Android N Preview SDK và tạo một thiết bị ảo cho
-bộ giả lập.</p>
-
-<p>Đầu tiên, tải xuống Android N Preview SDK như sau (nếu bạn
-đã có nó trong khi <a href="{@docRoot}preview/setup-sdk.html">thiết lập
-để phát triển dành cho Android N</a>, bạn có thể bỏ qua phần này):
-
-<ol>
-  <li>Trong Android Studio, Mở hộp thoại Settings
-    (<strong>File &gt; Settings</strong> trên Windows/Linux, hoặc
-    <strong>Android Studio &gt; Preferences</strong> trên Mac). Trong bảng điều khiển
-    bên trái, chọn <strong>Appearance &amp; Behavior &gt;
-  System Settings &gt; Android SDK</strong>.
-
-  <li>Nhấp vào tab <strong>SDK Platforms</strong>, rồi chọn hộp kiểm
-  <strong>Android N Preview</strong>.</li>
-
-  <li>Nhấp vào tab <strong>SDK Tools</strong>, rồi chọn
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, và các hộp kiểm <strong>Android SDK Tools</strong>
-.
-  </li>
-
-  <li>Nhấp vào <strong>OK</strong> và chấp nhận thỏa thuận
-    giấy phép cho bất kỳ gói nào sẽ được cài đặt.
-  </li>
-</ol>
-
-<p>Giờ đây bạn sẽ có <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong>, và <strong>SDK Tools
-25.0.9</strong>. Nếu bạn không cập nhật Các Công cụ SDK lên 25.0.9, bạn sẽ không
-thể chạy ảnh hệ thống x86_64 cho Android N.</p>
-
-
-<p>Bây giờ, hãy tạo một thiết bị ảo với ảnh hệ thống Android N:</p>
-
-<ol>
-  <li>Mở Trình quản lý AVD bằng cách chọn <strong>Tools &gt; Android &gt;
-    AVD Manager</strong>.</li>
-  <li>Nhấp vào <strong>Create Virtual Device</strong>.</li>
-  <li>Chọn một thiết bị chẳng hạn như Nexus 5X, Nexus 6P, Nexus 9, hoặc Android TV,
-    rồi nhấp vào <strong>Next</strong>.</li>
-  <li>Chọn ảnh hệ thống <strong>N</strong> (với
-    <strong>x86</strong> ABI), rồi nhấp vào <strong>Next</strong>.
-    (Hiện chỉ có ảnh hệ thống x86 được hỗ trợ với Bộ giả lập Android
-dành cho Preview Android N.)
-  <li>Hoàn thành các bước cấu hình AVD còn lại và nhấp vào
-    <strong>Finish</strong>.</li>
-</ol>
-
-<p>Giờ đây bạn có thể khởi chạy Bộ giả lập Android với AVD Preview Android N.</p>
-
-<p>
-Để có trải nghiệm tốt nhất trong Bộ giả lập Android, hãy cài đặt
-Android Studio 2.1 Preview, có hỗ trợ <a href="http://tools.android.com/tech-docs/emulator">Bộ giả lập Android 2.0 Beta</a>
-với hiệu suất nhanh hơn nhiều so với Bộ giả lập trong
-Android Studio 1.5.</p>
-
-<p class="note"><strong>Lưu ý:</strong>
-  Nếu bạn hiện đang sử dụng Android Studio 2.0 Beta, một vấn đề đã được biết đến
- sẽ ngăn cản bạn tạo AVD bằng ảnh hệ thống của N Preview, vì vậy
-  hiện bạn cần sử dụng preview của Android Studio 2.1 để tạo các AVD.
-</p>
-
-<p>Để biết thêm thông tin về tạo thiết bị ảo, hãy xem <a href="{@docRoot}tools/devices/index.html">Quản lý Thiết bị ảo</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/vi/preview/overview.jd b/docs/html-intl/intl/vi/preview/overview.jd
deleted file mode 100644
index f709489..0000000
--- a/docs/html-intl/intl/vi/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Tổng quan về Chương trình
-page.metaDescription=Hãy chuẩn bị ứng dụng sẵn sàng cho phiên bản Android tiếp theo.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Chào mừng bạn đến với <strong>Android N Developer Preview</strong>, một chương trình
-  cung cấp cho bạn mọi thứ cần thiết để kiểm thử và tối ưu hóa các ứng dụng cho phiên bản
-  Android tiếp theo. Đây là chương trình miễn phí và bạn có thể bắt đầu ngay bằng cách
-  tải xuống các công cụ của N Developer Preview.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Thiết bị phần cứng và ảnh của bộ giả lập
-      </h5>
-
-      <p>
-        Chạy và kiểm thử ứng dụng của bạn trên một loạt các thiết bị hoặc trên bộ giả lập.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Mã nền tảng mới nhất
-      </h5>
-
-      <p>
-        Chúng tôi sẽ cung cấp các bản cập nhật hàng tháng trong thời gian của Preview vì vậy bạn sẽ được kiểm tra các thay đổi nền tảng mới nhất.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Ưu tiên các vấn đề của nhà phát triển
-      </h5>
-
-      <p>
-        Trong một vài tuần đầu, chúng tôi sẽ dành ưu tiên cho các vấn đề
-        được nhà phát triển báo cáo, vì vậy hãy kiểm thử và gửi phản hồi sớm nhất có thể.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        Các hành vi và khả năng mới
-      </h5>
-
-      <p>
-        Tiến hành công việc sớm để hỗ trợ các hành vi mới của nền tảng và phát triển với các tính năng mới.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Cập nhật qua OTA
-      </h5>
-
-      <p>
-        Các bản cập nhật liền mạch qua sóng vô tuyến cho bất kỳ thiết bị nào được hỗ trợ thông qua
-        Chương trình Android Beta. Không cần phải flash.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Phản hồi và hỗ trợ
-      </h5>
-
-      <p>
-        Báo cáo các vấn đề và gửi phản hồi về cho chúng tôi thông qua
-        <a href="{@docRoot}preview/bug">bộ theo dõi vấn đề</a> của chúng tôi. Kết nối với các nhà phát triển
-        khác trong
-        <a href="{@docRoot}preview/dev-community">Cộng đồng Nhà phát triển&nbsp;N</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">Tiến trình thời gian và các bản cập nhật</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  N Developer Preview sẽ kéo dài từ 9 tháng 3 năm 2016 đến khi phát hành công chúng
-  bản Android N cuối cùng cho AOSP và OEM, dự kiến trong Q3 2016.
-</p>
-
-<p>
-  Tại các mốc phát triển chính chúng tôi sẽ cung cấp các bản cập nhật cho môi trường phát triển và
-  kiểm thử của bạn. Nói chung, bạn có thể nhận một bản cập nhật hàng tháng (khoảng cách
-  4 đến 6 tuần). Các mốc được liệt kê dưới đây.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (phát hành lần đầu, alpha)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (bản cập nhật tăng dần, alpha)</li>
-  <li><strong>Preview 3</strong> (bản cập nhật tăng dần, beta)</li>
-  <li><strong>Preview 4</strong> (các API cuối cùng và SDK chính thức, phát hành Play)</li>
-  <li><strong>Preview 5</strong> (các ảnh hệ thống gần hoàn thiện để kiểm thử cuối cùng)</li>
-  <li><strong>Phát hành bản cuối</strong> cho AOSP và hệ sinh thái</li>
-</ul>
-
-<p>
-  Mỗi bản cập nhật sẽ có các công cụ SDK, ảnh hệ thống xem trước, bộ giả lập, tài liệu
-  tham khảo và những khác biệt về API.
-</p>
-
-<p>
-  <strong>Ba phiên bản Preview đầu tiên</strong> sẽ cung cấp một <strong>môi trường
-  kiểm thử và phát triển sớm</strong> để giúp bạn xác định
-  các vấn đề tương thích trong ứng dụng hiện tại và lập kế hoạch di chuyển hoặc trang bị hoạt động
-   cần thiết để nhắm tới nền tảng mới. Đây là giai đoạn ưu tiên để bạn
-  gửi phản hồi cho chúng tôi về các tính năng, khả năng tương thích của API và tệp
-  &mdash; đối với mọi vấn đề đó, vui lòng sử dụng <a href="{@docRoot}preview/bug">bộ theo dõi
-  vấn đề</a>. Sẽ có một số thay đổi với API giữa các bản cập nhật này.
-</p>
-
-<p>
-  Tại <strong>Preview 4 và 5</strong> bạn sẽ được sử dụng <strong>các
-API và SDK N cuối cùng</strong> để phát triển, và cả các ảnh hệ thống gần hoàn thiện
-  để kiểm thử các hành vi, tính năng của hệ thống. Android N sẽ cung cấp một mức
-  API chuẩn vào thời điểm này. Bạn có thể tiến hành kiểm thử khả năng tương thích cuối cùng đối với các ứng dụng
-  cũ và tinh chỉnh mã nguồn mới có sử dụng các API hoặc tính năng mới của N.
-</p>
-
-<p>
-  Ngoài ra, bắt đầu từ Preview 4 bạn có thể <strong>phát hành ứng dụng lên
-  các thiết bị</strong> chạy Android N ở cấp API chính thức, chẳng hạn như
-  thiết bị người dùng được chọn cho chương trình Android Beta. Bạn có thể
-  phát hành ứng dụng lên kênh alpha và beta của Google Play trước do đó bạn có thể kiểm thử
-  ứng dụng của mình với người dùng Android Beta trước khi phân phối rộng rãi trên
-  cửa hàng.
-</p>
-
-<p>
-  Khi bạn kiểm thử và phát triển trên Android N, chúng tôi khuyến cáo bạn <strong>duy trì
-  môi trường phát triển được cập nhật</strong> khi các cập nhật Preview được
-  phát hành. Để giúp cho quá trình này thuận tiện hơn, bạn có thể đăng ký các thiết bị kiểm thử của mình vào
-  chương trình Android Beta và lấy <strong>các bản cập nhật qua sóng vô tuyến (OTA)</strong> tại
-  mỗi mốc. Ngoài ra, các ảnh xem trước cũng có sẵn để bạn
-  tải xuống và flash thủ công.
-</p>
-
-<p>
-  Chúng tôi sẽ thông báo cho bạn khi các cập nhật Preview xuất hiện thông qua <a href="http://android-developers.blogspot.com/">Blog Nhà phát triển Android</a>, cũng
-  như thông qua trang này và <a href="{@docRoot}preview/dev-community">Cộng đồng
-  Nhà phát triển Android N</a>.
-</p>
-
-
-<h2 id="preview_tools">Có gì trong N Developer Preview?</h2>
-
-<p>
-  N Developer Preview có tất cả mọi thứ bạn cần để kiểm thử ứng dụng
-  sẵn có của bạn trên nhiều loại kích cỡ màn hình, công nghệ mạng, chipset CPU/GPU
-  và kiến trúc phần cứng.
-</p>
-
-<h3 id="sdk_tools">Bộ công cụ SDK</h3>
-
-<p>Bạn có thể tải xuống các thành phần này thông qua Trình quản lý SDK trong <a href="{@docRoot}sdk/installing/adding-packages.html">Android Studio</a>:</p>
-
-<ul>
-  <li> N Developer Preview <strong>SDK và công cụ</strong>
-  <li> <strong>Ảnh hệ thống cho bộ giả lập</strong> (32-bit và 64-bit) của N Developer Preview
-  <li> <strong>Ảnh hệ thống cho bộ giả lập cho Android TV</strong> (32-bit) của N Developer Preview
-  <li> Các thư viện hỗ trợ của N Developer Preview (dành cho các mẫu ứng dụng mới)
-</ul>
-
-<p>
-  Chúng tôi sẽ cung cấp các bản cập nhật cho các công cụ phát triển này theo từng mốc khi cần thiết.
-</p>
-
-<h3 id="hardware_system_images">Ảnh hệ thống cho phần cứng</h3>
-
-<p>
-  N Developer Preview bao gồm các ảnh hệ thống cho Nexus và phần cứng khác mà bạn có thể sử dụng khi
-  kiểm thử và phát triển trên các thiết bị vật lý. Hãy xem trang <a href="{@docRoot}preview/download.html">Ảnh cho Thiết bị</a> để có danh sách đầy đủ
-  các ảnh cho phần cứng.
-</p>
-
-<p>
-  Chúng tôi sẽ cung cấp các ảnh hệ thống cập nhật cho những thiết bị này tại mỗi mốc. Bạn
-  có thể tải xuống và flash các ảnh hệ thống cập nhật vào các thiết bị kiểm thử
-  một cách thủ công nhiều lần theo nhu cầu. Điều này đặc biệt hữu ích đối với các môi trường
-  kiểm thử tự động, trong đó bạn có thể cần flash lại thiết bị nhiều
-  lần.
-</p>
-
-<p class="note"><strong>Lưu ý</strong>:
-  <strong>Các thiết bị được flash thủ công sẽ không nhận các bản cập nhật qua OTA</strong> giống như trong
-  preview của năm ngoái.  Năm nay bạn có thể nhận qua OTA bằng cách đăng ký các thiết bị trong
-  Chương trình Android Beta &mdash; hãy xem chi tiết trong phần tiếp theo.
-</p>
-
-<h3 id="android_beta">Các bản cập nhật OTA thông qua Chương trình Android Beta</h3>
-
-<p>
-  Tính năng mới cho Android N là một chương trình cập nhật qua sóng vô tuyến (OTA) sẽ tự động
-  phát hành các cập nhật Preview mới nhất của Android N trực tiếp tới thiết bị đã đăng ký
-   trong chương trình. Đây là chương trình miễn phí và mở đối với bất cứ ai có một
-  thiết bị được hỗ trợ đã đăng ký với tài khoản Google của họ.
-</p>
-
-<p>
-  Để đăng ký vào chương trình, hãy truy cập trang <a href="https://g.co/androidbeta">Chương trình
-  Android Beta</a>. Bạn sẽ thấy
-   tất cả các thiết bị đã đăng ký với tài khoản của bạn có đủ điều kiện để đăng ký
-  Android Beta.
-</p>
-
-<ol>
-  <li> Hãy chọn các thiết bị bạn muốn nhận bản cập nhật Android N
-  <li> Nhấp vào Đăng ký, đọc và đồng ý với các điều khoản dịch vụ và sau đó nhấp OK
-</ol>
-
-<p>
-  Một khi đã đăng ký, thiết bị của bạn sẽ sớm nhận được một bản cập nhật. Trong hầu hết trường hợp,
-  bạn sẽ không cần thực hiện thiết lập lại toàn bộ dữ liệu để chuyển sang Android N. Tuy nhiên,
-  chúng tôi khuyến cáo bạn sao lưu bất kỳ dữ liệu nào bạn không muốn bị mất trước khi
-   đăng ký thiết bị.
-</p>
-
-<p>
-  Khi các bản cập nhật được phát hành tới thiết bị của bạn, chúng tôi khuyến cáo bạn tải xuống và
-  cài đặt sớm nhất có thể. Bạn sẽ muốn cập nhật các
-  thay đổi mới nhất về UI, hành vi, API và các tính năng của hệ thống.
-</p>
-
-<p>
-  Khi kết thúc Developer Preview, các thiết bị đăng ký của bạn sẽ
-   nhận một bản cập nhật của bản phát hành Android N chính thức.
-</p>
-
-<p>
-  Bạn có thể hủy đăng ký các thiết bị của mình trong chương trình Android Beta bất kỳ lúc nào thông qua
-   trang Android Beta. Trước khi hủy đăng ký, hãy chắc chắn sao lưu dự phòng dữ liệu của bạn trên
-   thiết bị đó.
-</p>
-
-  <p class="note"><strong>Lưu ý</strong>:
-  Khi bạn hủy đăng ký, <strong>thiết bị của bạn sẽ được khôi phục cài đặt gốc</strong>
-  về phiên bản mới nhất
-  của Android 6.0 Marshmallow (không nhất thiết là phiên bản bạn từng
-  được cài đặt trước khi đăng ký thiết bị).  Để đảm bảo cài đặt mới hoàn toàn,
-   dữ liệu của bạn sẽ bị xóa khỏi thiết bị, bao gồm danh bạ, tin nhắn,
-  ảnh, v.v...
-</p>
-
-<h3 id="documentation_and_sample_code">Tài liệu và mã mẫu</h3>
-
-<p>
-  Các nguồn tài liệu này có trên trang Developer Preview để
-  trợ giúp bạn tìm hiểu về Android&nbsp;N:
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Thiết lập để Phát triển dành cho
-Android N</a> có
-  các hướng dẫn từng bước để bắt đầu.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">Các thay đổi
-  Hành vi</a> chỉ ra cho bạn các phần chính yếu để kiểm thử.</li>
-  <li> Tổng quan về các API mới, bao gồm một phần <a href="{@docRoot}preview/api-overview.html">Tổng quan về API</a>, bản tải xuống được
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo
- API</a> và các hướng dẫn chi tiết cho nhà phát triển đối với các tính năng quan trọng như
-  hỗ trợ đa cửa sổ, thông báo gộp, hỗ trợ đa bản địa và các tính năng khác.
-  <li> <a href="{@docRoot}preview/samples.html">Mã mẫu</a> trong đó
-  minh họa cách hỗ trợ các quyền và tính năng mới.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Ghi chú phát hành</a>
-  cho phiên bản hiện hành của N Developer Preview, bao gồm các ghi chú về thay đổi và
-  các báo cáo về sự khác biệt.
-</ul>
-
-<h4 id="reference">Tham khảo API có thể tải xuống</h4>
-
-<p>
-  Trong các cập nhật preview có sớm bạn có thể tải xuống
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo API
-  mới nhất cho nền tảng Android N</a> dưới dạng tệp lưu trữ zip riêng biệt. Bản tải xuống
-  tham khảo này cũng có một báo cáo về các khác biệt để giúp bạn nhận biết các thay đổi API từ
-   API 23 và bản cập nhật trước đó.
-</p>
-
-<p>
-  Khi các API Android N hoàn thiện và được chỉ định một mức API chính thức,
-   chúng tôi sẽ cung cấp tham khảo API cho bạn trực tuyến tại <a href="https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Tài nguyên Hỗ trợ
-</h3>
-
-<p>
-  Khi bạn kiểm thử và phát triển trên N Developer Preview, xin vui lòng sử dụng các kênh sau
-  để thông báo các vấn đề và gửi phản hồi.
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">Bộ theo dõi Vấn đề N Developer Preview
-  </a> là <strong>kênh phản hồi chính</strong> của bạn. Bạn có thể thông báo lỗi, các vấn đề về
-  hiệu năng và phản hồi chung thông qua bộ theo dõi vấn đề. Bạn cũng có thể kiểm tra
-<a href="{@docRoot}preview/bug">các vấn đề đã biết</a> và
-   tìm các bước khắc phục. Chúng tôi sẽ cập nhật thông tin cho bạn về vấn đề của bạn khi nó đã được phân loại và gửi tới
-   nhóm kỹ thuật Android xem xét. </li>
-  <li> <a href="{@docRoot}preview/dev-community">Cộng đồng Nhà phát triển Android N</a> là
-   một cộng đồng Google+ nơi bạn có thể <strong>kết nối với các nhà phát triển khác</strong> đang thử nghiệm
-   Android N. Bạn có thể chia sẻ các phát hiện hoặc ý tưởng hoặc tìm câu trả lời cho các
-    thắc mắc về Android N. Chúng tôi sẽ điều hành cộng đồng này và cung cấp các câu trả lời và
-    hướng dẫn khi cần thiết.</li>
-</ul>
-
-<h3 id="targeting">Nhắm mục tiêu, API xem trước và phát hành</h3>
-
-<p>
-  N Developer Preview sẽ cung cấp một hệ thống và thư viện
-   Android chỉ dành cho phát triển mà <strong>không có mức API tiêu chuẩn</strong>. Nếu bạn muốn
-  bỏ các hành vi về khả năng tương thích để kiểm thử ứng dụng của mình (đặc biệt
-  khuyến cáo), bạn có thể nhắm mục tiêu phiên bản xem trước của Android N bằng cách thiết lập
-  <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
- của ứng dụng thành <code>“N”</code>.
-</p>
-
-<p>
-  Android N Developer Preview cung cấp các <strong>API xem trước</strong>
-  &mdash; các API này không phải bản chính thức cho đến khi SDK cuối cùng được phát hành,
-  hiện được dự kiến phát hành vào quý ba năm 2016. Điều này có nghĩa là có thể
-  <strong>có các thay đổi API nhỏ</strong> sau này, đặc biệt trong
-   các tuần đầu của chương trình. Chúng tôi sẽ cung cấp bản tóm tắt các thay đổi cho bạn theo
-   mỗi bản cập nhật của Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Lưu ý</strong>: Mặc dù các API xem trước có thể thay đổi nhưng
-  các hành vi hệ thống cơ bản vẫn ổn định và sẵn sàng để kiểm thử
-  ngay.
-</p>
-
-<p>
-  Google Play <strong>không cho phép phát hành các ứng dụng nhắm mục tiêu tới N Developer
-  Preview</strong>. Khi có bản SDK cuối cùng của Android N bạn sẽ có thể
-   nhắm mục tiêu mức API Android N chính thức và phát hành ứng dụng của mình lên Google
-  Play thông qua các kênh phát hành alpha và beta. Trong thời gian này, nếu bạn muốn
-   phân phối một ứng dụng nhắm mục tiêu Android N cho người kiểm thử thì bạn có thể thực hiện phân phối qua email hoặc
-  bằng cách tải trực tiếp trên trang web của bạn.
-</p>
-
-<p>
-  Khi Android N được phát hành hoàn chỉnh cho AOSP và OEM, dự kiến vào Q3 2016,
-  bạn có thể phát hành ứng dụng của mình nhắm mục tiêu Android N lên kênh
-  phát hành công chúng trong Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">Cách thức bắt đầu</h2>
-
-<p>
-  Để bắt đầu kiểm thử ứng dụng của bạn với Android N:
-</p>
-
-<ol>
-  <li> Xem lại <a href="{@docRoot}preview/api-overview.html">Tổng quan về API</a>
-  và <a href="{@docRoot}preview/behavior-changes.html">Các thay đổi Hành vi</a> để
-  biết được có những gì mới và nó sẽ tác động đến ứng dụng của bạn như thế nào. Đặc biệt,
-  hãy tìm hiểu về các tính năng <a href="{@docRoot}preview/features/notification-updates.html">thông báo</a> mới và
-  <a href="{@docRoot}preview/features/multi-window.html">hỗ trợ đa cửa sổ</a>.</li>
-  <li> Thiết lập môi trường của bạn bằng cách làm theo các hướng dẫn để <a href="{@docRoot}preview/setup-sdk.html">Preview SDK</a>
-  và cấu hình các thiết bị kiểm thử.</li>
-  <li> Làm theo <a href="https://developers.google.com/android/nexus/images">các hướng dẫn
-  flash</a> để flash ảnh hệ thống Android N mới nhất cho thiết bị của bạn. </li>
-  <li> Xem lại <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo API</a>
- và <a href="{@docRoot}preview/samples.html">các ví dụ về Android N</a> để hiểu
-  sâu hơn về các tính năng API mới cũng như cách sử dụng chúng trong ứng dụng của bạn.
-  <li> Tham gia <a href="{@docRoot}preview/dev-community">Cộng đồng
-  Nhà phát triển Android N</a> để nhận được thông tin mới nhất và kết nối với các
-  nhà phát triển khác đang thử nghiệm với nền tảng mới.</li>
-</ol>
-
-<p>
-  Cảm ơn bạn đã tham gia chương trình Android N Developer Preview!
-</p>
diff --git a/docs/html-intl/intl/vi/preview/setup-sdk.jd b/docs/html-intl/intl/vi/preview/setup-sdk.jd
deleted file mode 100644
index bdba713..0000000
--- a/docs/html-intl/intl/vi/preview/setup-sdk.jd
+++ /dev/null
@@ -1,223 +0,0 @@
-page.title=Thiết lập Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Tải Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Tải SDK Android N</a>
-    <ol>
-      <li><a href="#docs-dl">Tài liệu tham khảo</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Tải JDK và JRE của Java 8</a></li>
-  <li><a href="#create-update">Cập nhật hoặc Tạo một dự án</a></li>
-  <li><a href="#next">Các bước tiếp theo</a></li>
-</ol>
-  </div>
-</div>
-
-<p>Để phát triển các ứng dụng cho Android N Preview bạn cần thực hiện một số cập nhật
-đối với môi trường phát triển của mình như mô tả trên trang này.</p>
-
-<p>Để đơn thuần thử khả năng tương thích của ứng dụng trên
-ảnh hệ thống Android N, hãy làm theo hướng dẫn <a href="{@docRoot}preview/download.html">Kiểm thử trên một Thiết bị Android N</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Tải Android Studio 2.1 (bản xem trước)</h2>
-
-<p>Nền tảng Android N bổ sung hỗ trợ cho <a href="{@docRoot}preview/j8-jack.html">các tính năng của ngôn ngữ Java 8</a>,
-yêu cầu phải có một trình biên dịch mới có tên là Jack. Phiên bản Jack mới nhất
-hiện chỉ được hỗ trợ trong Android Studio 2.1. Do đó, nếu bạn muốn
-sử dụng các tính năng của ngôn ngữ Java 8 thì bạn cần sử dụng Android Studio 2.1 để
-dựng ứng dụng. Nếu không, bạn không cần sử dụng trình biên dịch Jack nhưng bạn
-vẫn cần cập nhật lên JDK 8 để biên dịch cho nền tảng Android N,
-như mô tả dưới đây.
-</p>
-
-<p>Android Studio 2.1 hiện đang có dưới dạng bản xem trước trong kênh
-phát hành Canary. Nếu bạn đã
-có Android Studio và không muốn cập nhật lên kênh canary thì bạn có thể
-tải xuống Android Studio 2.1 dưới dạng bản cài đặt riêng và sử dụng
-để phát triển với Android N để không làm ảnh hưởng đến môi trường Android Studio
-chính của bạn.</p>
-
-<p>Để tải xuống Android Studio 2.1 dưới dạng bản cài đặt riêng, hãy thực hiện
-các bước sau (hoặc nếu bạn muốn nhận Android Studio 2.1 dưới dạng bản cập nhật cho
-bản cài đặt có sẵn thì hãy chuyển đến bước 4):</p>
-
-<ol>
-  <li>Chỉnh sửa tên của
-   bản cài đặt Android Studio có sẵn và thêm số phiên bản. Làm như vậy
-  để khi bạn cài đặt, phiên bản mới sẽ không ghi đè lên phiên bản có sẵn.</li>
-  <li>Tải xuống tệp ZIP phù hợp cho hệ điều hành của bạn từ
-    <a href="http://tools.android.com/download/studio/canary/latest">trang tải xuống của kênh canary</a>.
-  </li>
-  <li>Giải nén gói đó và chuyển các thành phần của Android Studio 2.1 tới
-   vị trí phù hợp cho các ứng dụng của bạn trên hệ thống rồi khởi chạy nó.</li>
-  <li>Mở hộp thoại Settings
-    (<strong>File &gt; Settings</strong> trên Windows/Linux, hoặc
-    <strong>Android Studio &gt; Preferences</strong> trên Mac). Trong khung
-    bên trái, chọn<strong>Appearance &amp; Behavior &gt; System Settings &gt;
-    Updates</strong>.
-  </li>
-  <li>Trên khung Updates, chọn hộp kiểm <strong>Automatically
-    check updates for</strong> và chọn
-    <strong>Canary Channel</strong> từ danh sách thả xuống.
-  </li>
-</ol>
-
-<p>Hãy để cửa sổ cài đặt này mở cho bước tiếp theo.</p>
-
-
-<h2 id="get-sdk">Tải N Preview SDK</h2>
-
-<p>Để bắt đầu phát triển với các API Android N, bạn cần cài đặt
- Android N Preview SDK trong Android Studio như sau:</p>
-
-<ol>
-  <li>Vẫn tại khung Updates (bước 4 bên trên),
-  hãy chọn hộp kiểm <strong>Automatically
-    check updates for Android SDK</strong> và chọn
-    <strong>Preview Channel</strong> từ danh sách thả xuống.
-  </li>
-  <li>Nhấp vào <strong>Check Now</strong>.</li>
-
-  <li>Trong khung bên trái, chọn <strong>Appearance &amp; Behavior &gt;
-  System Settings &gt; Android SDK</strong>.
-
-  <li>Nhấp vào tab <strong>SDK Platforms</strong>, rồi chọn hộp kiểm
-  <strong>Android N Preview</strong>.</li>
-
-  <li>Nhấp vào tab <strong>SDK Tools</strong>, rồi chọn
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, và các hộp kiểm <strong>Android SDK Tools</strong>
-.
-  </li>
-
-  <li>Nhấp vào <strong>OK</strong>, sau đó đồng ý với các thỏa thuận
-    cấp phép cho các gói cần được cài đặt.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Tải tài liệu tham khảo cho N Preview</h3>
-
-<p>
-  Thông tin chi tiết về các API Android N có trong tài liệu tham khảo của
- Bản xem trước N mà bạn có thể tải xuống từ bảng sau.
-  Gói này có một bản ngoại tuyến được rút gọn của trang web
-  cho nhà phát triển Android và có một bản tham khảo API được cập nhật cho API Android N, một
-   báo cáo về sự khác biệt API.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Tài liệu</th>
-    <th scope="col">Tổng kiểm</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-1-docs.zip">n-preview-1-docs.zip</a></td>
-    <td width="100%">
-      MD5: 4ab33ccbe698f46f125cc5b807cf9c2f<br>
-      SHA-1: 6a3880b3ccd19614daae5a4d0698ea6ae11c20a5
-    </td>
-  </tr>
-</table>
-
-
-
-<h2 id="java8">Tải JDK và JRE của Java 8</h2>
-
-<p>Để biên dịch ứng dụng của bạn cho nền tảng Android N, bạn cần sử dụng
-Bộ công cụ phát triển Java 8 (JDK 8) và để sử dụng một số công cụ với Android
-Studio 2.1 thì bạn cần cài đặt Java 8 Runtime Environment (JRE). Vì vậy, nếu
-bạn không có phiên bản mới nhất của mỗi bộ thì hãy tải xuống JDK 8 và JRE 8
-ngay.</p>
-
-<p>Sau đó đặt phiên bản JDK trong Android Studio như sau:</p>
-
-<ol>
-  <li>Mở một dự án Android trong Android Studio, sau đó mở
-    hộp thoại Project Structure bằng cách chọn <strong>File &gt;
-        Project Structure</strong>. (Bằng cách khác, bạn có thể đặt mặc định
-        cho mọi dự án bằng cách chọn <strong>File &gt; Other Settings &gt;
-        Default Project Structure</strong>.)
-   </li>
-   <li>Trong khung bên trái của hộp thoại, hãy nhấp <strong>SDK Location</strong>.
-   </li>
-   <li>Trong ô <strong>JDK Location</strong>, hãy nhập vị trí của
-    Java 8 JDK (nhấp vào nút bên phải
-    để duyệt tìm tệp của bạn), sau đó nhấp <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">Cập nhật hoặc Tạo một dự án</h2>
-
-<p>
-  Dự án của bạn phải được cấu hình phù hợp để sử dụng các API Android N.
-</p>
-
-<p>Nếu bạn dự định sử dụng các tính năng của ngôn ngữ Java 8 thì bạn cũng nên đọc mục
-<a href="{@docRoot}preview/j8-jack.html">Các tính năng của Ngôn ngữ Java 8</a>
-để biết thêm thông tin về các tính năng của Java 8 được hỗ trợ và
-cách cấu hình dự án với trình biên dịch Jack.</p>
-
-
-<h3 id="update">Cập nhật một dự án có sẵn</h3>
-
-<p>Mở tệp
-  <code>build.gradle</code> cho mô-đun của bạn và cập nhật các giá trị như
-   sau:
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc1'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">Tạo một dự án mới</h3>
-
-
-<p>Để tạo một dự án mới để phát triển với Android N Preview SDK:</p>
-
-<ol>
-  <li>Nhấp vào <strong>File &gt; New Project</strong>. và thực hiện theo các bước đến khi
-  bạn đến trang Target Android Devices.
-  </li>
-  <li>Trong trang này, hãy chọn tùy chọn <strong>Phone and Tablet</strong>.</li>
-  <li>Dưới tùy chọn <strong>Phone and Tablet</strong>, trong danh sách tùy chọn <strong>Minimum
-    SDK</strong> hãy chọn
-    <strong>N: Android API 23, N Preview (Preview)</strong>.</li>
-</ol>
-
-
-<h2 id="next">Các bước tiếp theo</h2>
-
-<ul>
-  <li>Làm theo hướng dẫn <a href="{@docRoot}preview/download.html">Kiểm thử trên một Thiết bị Android N</a>.</li>
-  <li>Tìm hiểu thêm về nền tảng Android N với
-<a href="{@docRoot}preview/behavior-changes.html">Các thay đổi Hành vi</a>
-và<a href="{@docRoot}preview/api-overview.html">API Android N
-và Các tính năng</a>.</li>
-</ul>
diff --git a/docs/html-intl/intl/vi/preview/features/direct-boot.jd b/docs/html-intl/intl/vi/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/vi/preview/features/direct-boot.jd
rename to docs/html-intl/intl/vi/training/articles/direct-boot.jd
index 9b2a557..c93e255 100644
--- a/docs/html-intl/intl/vi/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/vi/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Trong tài liệu này</h2>
   <ol>
     <li><a href="#run">Yêu cầu Truy cập để Chạy trong quá trình Khởi động Trực tiếp</a></li>
diff --git a/docs/html-intl/intl/vi/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
similarity index 95%
rename from docs/html-intl/intl/vi/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
index d6db0ec..a4d9779 100644
--- a/docs/html-intl/intl/vi/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Trong tài liệu này</h2>
   <ol>
     <li><a href="#accessing">Truy cập một Thư mục lưu trữ bên ngoài</a></li>
@@ -57,8 +57,8 @@
 <p>Hệ thống sẽ cố gắng cấp quyền truy cập tới thư mục bên ngoài và nếu
 cần sẽ xác nhận quyền truy cập với người dùng bằng một UI được đơn giản hóa:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Hình 1.</strong> Một ứng dụng yêu cầu
 truy cập tới thư mục Pictures.</p>
 
diff --git a/docs/html-intl/intl/vi/preview/features/security-config.jd b/docs/html-intl/intl/vi/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/vi/preview/features/security-config.jd
rename to docs/html-intl/intl/vi/training/articles/security-config.jd
index 797e198..1d8670d 100644
--- a/docs/html-intl/intl/vi/preview/features/security-config.jd
+++ b/docs/html-intl/intl/vi/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Trong tài liệu này</h2>
 <ol>
diff --git a/docs/html-intl/intl/vi/preview/features/picture-in-picture.jd b/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
similarity index 98%
rename from docs/html-intl/intl/vi/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
index 65799db..9156152 100644
--- a/docs/html-intl/intl/vi/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>Trong tài liệu này</h2>
 <ol>
@@ -57,7 +57,7 @@
 khác bắt đầu phát trên màn hình chính, cửa sổ PIP sẽ tự động
 được đóng. Người dùng cũng có thể đóng cửa sổ PIP thông qua nút Recents.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Hình 1.</strong> Một video Ảnh trong ảnh
 được hiển thị ở góc màn hình khi người dùng duyệt nội dung
 trên màn hình chính.</p>
@@ -114,7 +114,7 @@
 <p>Thêm một nút PIP vào thanh điều khiển media của bạn sẽ cho phép người dùng dễ dàng chuyển
 sang chế độ PIP khi điều khiển phát lại video.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Hình 1.</strong> Một nút Ảnh trong ảnh
 trên thanh điều khiển media.</p>
 
diff --git a/docs/html-intl/intl/vi/preview/features/tv-recording-api.jd b/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/vi/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
index 6dfb53e..bfd718b 100644
--- a/docs/html-intl/intl/vi/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>Trong tài liệu này</h2>
   <ol>
     <li><a href="#supporting">Chỉ báo Hỗ trợ ghi lại</a></li>
diff --git a/docs/html-intl/intl/zh-cn/preview/guide.jd b/docs/html-intl/intl/zh-cn/about/versions/marshmallow/android-6.0-testing.jd
similarity index 98%
rename from docs/html-intl/intl/zh-cn/preview/guide.jd
rename to docs/html-intl/intl/zh-cn/about/versions/marshmallow/android-6.0-testing.jd
index 9f7737f..d1e1187 100644
--- a/docs/html-intl/intl/zh-cn/preview/guide.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/marshmallow/android-6.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>本文内容</h2>
       <ol>
         <li><a href="#runtime-permissions">测试权限</a></li>
diff --git a/docs/html-intl/intl/zh-cn/preview/behavior-changes.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/zh-cn/preview/behavior-changes.jd
rename to docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-changes.jd
index 4e3a6b5..71aff37 100644
--- a/docs/html-intl/intl/zh-cn/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>本文内容</h2>
 
@@ -77,7 +77,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>图 1.</strong> 低电耗模式如何应用第一级系统活动限制以延长电池寿命的图示。
 
@@ -96,7 +96,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>图 2.</strong> 低电耗模式如何在设备处于静止状态达到一定时间后应用第二级系统活动限制的图示。
 
@@ -282,10 +282,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/zh-cn/preview/samples.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-samples.jd
similarity index 74%
rename from docs/html-intl/intl/zh-cn/preview/samples.jd
rename to docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-samples.jd
index dd68566..600e33a 100644
--- a/docs/html-intl/intl/zh-cn/preview/samples.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">多窗口 Playground</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   此示例演示如何在您的应用中充分利用多窗口用户界面。
 
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">活动通知</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   这是一个已存在的示例，其显示一个使用 NotificationCompat 发送通知的简单服务。该服务将来自用户的每个未读会话以不同的通知形式发送。
 
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">消息传递服务</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   这是一个已存在的示例，其演示如何使用 NotificationManager 指示应用当前显示的通知数量。
 
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">直接启动</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   此示例显示如何在设备加密的存储（启动设备后始终可用）中存储和访问数据。
 
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">作用域目录访问</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   此示例演示如何从特定目录读取和写入数据，同时需要较少的权限。
 
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">在 GitHub 中获取</a>
 
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/zh-cn/preview/guide.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd
similarity index 98%
copy from docs/html-intl/intl/zh-cn/preview/guide.jd
copy to docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd
index 9f7737f..d1e1187 100644
--- a/docs/html-intl/intl/zh-cn/preview/guide.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>本文内容</h2>
       <ol>
         <li><a href="#runtime-permissions">测试权限</a></li>
diff --git a/docs/html-intl/intl/zh-cn/preview/api-overview.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0.jd
similarity index 97%
rename from docs/html-intl/intl/zh-cn/preview/api-overview.jd
rename to docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0.jd
index f4f889d..8810d39 100644
--- a/docs/html-intl/intl/zh-cn/preview/api-overview.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>重要的开发者功能</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -78,7 +78,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>图 1. </strong>在分屏模式下运行的应用。
 </p>
@@ -142,15 +142,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -277,7 +277,7 @@
 <h2 id="data_saver">Data Saver</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>图 4. </strong> 设置中的 Data Saver
@@ -357,7 +357,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>图 5.</strong> 通知栏中的快速设置图块。
diff --git a/docs/html-intl/intl/zh-cn/preview/index.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/zh-cn/preview/index.jd
rename to docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/zh-cn/design/patterns/notifications.jd b/docs/html-intl/intl/zh-cn/design/patterns/notifications.jd
deleted file mode 100644
index 57e02e4..0000000
--- a/docs/html-intl/intl/zh-cn/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=通知
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>开发者文档</h3>
-    <p>通知用户</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Android 4.4 及更低版本中的通知</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>视频</h3>
-    <p>DevBytes：Android L 开发者预览当中的通知</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>通知系统可让用户随时了解应用中的相关和即时事件，例如来自好友的新聊天信息或日历事件。可将通知视作新闻频道，在重要的事件发生时提醒用户注意，或者当作日志，在用户未注意时记录事件&mdash;可在用户的所有 Android 设备上按需同步。
-
-
-
-
-
-</p>
-
-<h4 id="New"><strong>Android 5.0 新增内容</strong></h4>
-
-<p>在 Android 5.0 中，通知在结构、外观和功能方面获得了重要的更新：
-</p>
-
-<ul>
-  <li>通知在外观上发生了更改，与新的材料设计主题保持一致。
-</li>
-  <li> 通知现在可以在设备锁定屏幕上使用，而敏感信息仍然可以隐藏于背后。
-
-</li>
-  <li>设备在使用时收到的高优先级通知现在采用名为浮动通知的新格式。
-</li>
-  <li>云同步通知：在一台 Android 设备上清除通知，则在其他设备上也会将其清除。
-
-</li>
-</ul>
-
-<p class="note"><strong>注：</strong>该版本 Android 的通知设计与之前的版本大不相同。
-
-有关之前版本通知设计的信息，请参阅<a href="./notifications_k.html"> Android 4.4 及更低版本中的通知</a>。
-</p>
-
-<h2 id="Anatomy">通知详解</h2>
-
-<p>本部分介绍通知的基本组成部分，及其在不同类型设备上显示的方式。
-</p>
-
-<h3 id="BaseLayout">基本布局</h3>
-
-<p>所有通知至少要包括一个基本布局，包括：</p>
-
-<ul>
-  <li> 通知的<strong>图标</strong>。图标以符号形式表示来源应用。如果应用生成多个类型的通知，它也可用于指明通知类型。
-
-
-</li>
-  <li> 通知<strong>标题</strong>以及其他
-<strong>文本</strong>。</li>
-  <li> <strong>时间戳</strong>。</li>
-</ul>
-
-<p>利用 {@link android.app.Notification.Builder Notification.Builder}为之前版本平台创建的通知，其外观和行为方式与在 Android
-5.0 中完全相同，唯一的变动在于系统为您处理通知的方式存在细微的样式变动。
-
-如需了解之前 Android 版本通知设计的详细信息，请参阅<a href="./notifications_k.html"> Android 4.4 及更低版本中的通知</a>。
-
-</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      手持设备通知（左）和穿戴设备（右）上同一通知的基本布局，带有用户照片和通知图标
-
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">展开布局</h3>
-
-
-<p>您可以选择让应用的通知提供多少信息详情。
-它们可显示消息的前几行，也可以显示更大的预览图像。
-额外的信息可以为用户提供更多上下文，并且，在某些情况下，可能允许用户完整阅读消息。
-
-
-用户可进行两指缩放或执行单指滑移，在紧凑和展开布局之间切换。
-
-
- 对于单一事件通知，Android 提供了三种展开布局模板（文本、收件箱和图像），供您在应用中使用。
-
-下图展示单一事件通知在手持设备（左）和穿戴式设备（右）上的外观。
-
-</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">操作</h3>
-
-<p>Android 支持在通知底部显示可选的操作。通过操作，用户可在通知栏中处理最常见的任务，而无需打开来源应用。这样可加快交互的速度，而通过结合使用滑动清除通知的功能，有助于用户专注于对自身重要的通知。
-
-
-
-
-
-</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">请慎重考虑要在通知中包含多少操作。
-您加入的操作越多，用户就越无所适从。
-请通过只包含最重要且有意义的操作，尽量减少通知中的操作数量。
-
-
-</p>
-
-<p>适合在通知中使用的操作具有如下特点：</p>
-
-<ul>
-  <li> 对正在显示的内容类型必要、常用且常见
-
-  <li> 让用户可以迅速完成任务
-</ul>
-
-<p>避免以下类型的操作：</p>
-
-<ul>
-  <li> 含义模糊
-  <li> 跟通知的默认操作一样（例如“阅读”或“打开”）
-
-</ul>
-
-
-
-<p>您最多可以指定三个操作，每个操作由操作图标和名称组成。
-
- 通过为简单的基本布局添加操作，可以展开该通知，即使该通知没有展开布局，此方法仍然有效。
-
-由于操作仅对展开的通知显示（否则会隐藏），因此要确保用户从通知调用的任何操作都可在相关联的应用中使用。
-
-
-
-
-</p>
-
-<h2 style="clear:left">浮动通知</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    出现在沉浸式应用顶部的浮动通知（手机来电，高优先级）示例
-
-
-  </p>
-</div>
-
-<p>收到高优先级通知时（见右侧），它会向用户短时间显示一个包含可选操作的展开布局。
-
-</p>
-<p> 之后，通知会缩回通知栏。
-如果通知的<a href="#correctly_set_and_manage_notification_priority">优先级</a>标志为高、最大或全屏，则会得到浮动通知。
-</p>
-
-<p><b>浮动通知的范例</b></p>
-
-<ul>
-  <li> 使用设备时来电</li>
-  <li> 使用设备时闹铃</li>
-  <li> 新的短信</li>
-  <li> 电池电量过低</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">指导原则</h2>
-
-
-<h3 id="MakeItPersonal">个人化</h3>
-
-<p>对于他人发送的项目通知（例如消息或状态更新），请使用
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} 包含此人的头像。
-另外将有关此人的信息附加到通知的元数据（参阅 {@link android.app.Notification#EXTRA_PEOPLE}）。
-</p>
-
-<p>您通知的主图标仍然会显示，因此，该用户可将其与状态栏中显示的图标相关联。
-
-</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  显示触发通知的用户以及该用户所发送信息的通知。
-</p>
-
-
-<h3 id="navigate_to_the_right_place">导航至正确位置</h3>
-
-<p>在用户触摸通知的正文时（在操作按钮的外面），打开应用并定位至正确的位置，以便用户可查看通知中引用的数据并据此操作。
-
-
-在大多数情况下，该位置是某个数据项目（例如消息）的详情视图，但如果是存档通知，那么也可能是摘要视图。
-
-如果您的应用将用户带到应用顶层以下的任何位置，可将导航插入应用的返回栈，这样用户就可以通过按下系统返回按钮返回至顶层。
-
-如需了解详细信息，请参阅<a href="{@docRoot}design/patterns/navigation.html#into-your-app">导航</a>设计模式中的“通过主屏幕小工具和通知进入您的应用”<em></em>。
-
-</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">正确设置和管理通知优先级。
-
-</h3>
-
-<p>Android 支持通知的优先级标志。该标志可以影响您的通知相对于其他通知出现的位置，并且可以帮助确保用户始终能在第一时间看到对他们最重要的通知。
-
-
-在发布通知时，您可以选择下列优先级之一：
-
-</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>优先级</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>用法</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>用于重要和紧急的通知，告知用户属于时间关键型状况，或者必须予以解决方可继续执行某个特定任务。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>主要用于重要通信，例如包含用户特别感兴趣的内容的消息或聊天事件。高优先级通知会触发浮动通知显示。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>用于不属于此处所述其他任何优先级的所有通知。</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>用于您希望告知用户但不是很紧急的通知。
-低优先级通知最好显示在列表的底部，这里正适合放置公共事项或无收件人姓名的社交更新之类的通知：
-
-用户要求接收相关通知，但是这些通知的优先级永远不会高于紧急或直接通信。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>用于上下文或背景信息，例如天气信息或上下文位置信息。最低优先级通知不会出现在状态栏中。
-
-用户可在展开的通知栏上找到它们。
-</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>如何选择合适的优先级</strong>
-
-</h4>
-
-<p><code>DEFAULT</code>、<code>HIGH</code> 和 <code>MAX</code> 是中断优先级别，在活动过程中有中断用户的风险。
-
-为了避免打扰应用的用户，中断优先级仅保留用于以下通知
-：</p>
-
-<ul>
-  <li> 涉及另一个用户</li>
-  <li> 时间敏感</li>
-  <li> 可能会立即改变用户在现实世界中的行为</li>
-</ul>
-
-<p>设置为 <code>LOW</code> 和 <code>MIN</code> 的通知可能仍然对用户很重要：
-很多通知（如果不是绝大多数）不需要用户立即注意，也不需要振动，但仍然包含用户选择查看通知时将会觉得重要的信息。
-
-
-<code>LOW</code> 和 <code>MIN</code>优先级通知的条件包括：
-</p>
-
-<ul>
-  <li> 不涉及其他用户</li>
-  <li> 不属于时间敏感型</li>
-  <li> 包含用户可能感兴趣但可选择在空闲时浏览的内容
-</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">设置通知类别
-</h3>
-
-<p>如果通知属于以下预定义类别（参阅下文）之一，则为其分配相应的类别。
-
-诸如通知栏（或其他任何通知侦听器）这样的系统 UI 项目，可使用该信息来进行评级和筛选决策。
-
-</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>来电（语音或视频）或相似的同步通信请求
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>传入的直接消息（短信、即时消息等）</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>异步群发消息（电子邮件）</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>日历事件</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>促销或广告</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>闹铃或定时器</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>长时间运行的后台操作的进度</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>社交网络或共享更新</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>后台操作或身份验证状态中的错误</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>媒体传输播放控制</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>系统或设备状态更新。保留给系统使用。</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>正在运行的后台服务的指示</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>对于某个事件的特定、及时建议。例如，新闻应用可能会建议用户接下来可能想要阅读的新话题。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>有关设备或上下文状态的持续信息</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">通知摘要</h3>
-
-<p>如果特定类型的通知已经在您的应用尝试发送同类型的新通知时挂起，可将它们合并到单个应用摘要通知中，而不要新建对象。
-
-</p>
-
-<p>摘要通知会生成摘要说明，让用户了解特定类型的通知有多少处于挂起状态。
-
-</p>
-
-<div class="col-6">
-
-<p><strong>禁忌用法</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>建议用法</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">您可通过使用展开的摘要布局提供有关组成摘要的各个通知的更多详情。
-
-此方法可让用户更好地了解哪些通知处于挂起状态，如果他们有足够的兴趣，还可在相关联的应用中阅读详情。
-
-
-
-</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  展开和收起的摘要通知（使用 <code>InboxStyle</code>）
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">将通知设置为可选
-</h3>
-
-<p>用户应始终能控制通知。允许用户通过将某个通知设置项目添加至您的应用设置，禁用应用的通知或更改其提醒属性，例如警报声和是否使用振动。
-
-
-
-</p>
-
-<h3 id="use_distinct_icons">使用不同的图标</h3>
-<p>通过扫一眼通知区域，用户可以了解哪些类型的通知当前处于挂起状态。
-
-</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>建议用法</strong></p>
-    <p>查看 Android 应用已经提供的通知图标并为您的应用创建外观明显不同的通知图标。
-
-</p>
-
-    <p><strong>建议用法</strong></p>
-    <p>对小图标使用正确的<a href="/design/style/iconography.html#notification">通知图标样式</a>，对操作图标使用相应的材料灯<a href="/design/style/iconography.html#action-bar">操作栏图标</a>。
-
-
-
-</p>
-<p ><strong>建议用法</strong></p>
-<p >图标外观要简洁清晰，避免使用过于精细、难以辨认的图标。
-</p>
-
-  <div><p><strong>禁忌用法</strong></p>
-    <p>对小图标和操作图标设置任何附加的阿尔法通道属性（变暗或变淡）；这些图标会有抗锯齿边缘，但是由于 Android 使用这些图标作为蒙板（即仅使用阿尔法通道），因此通常应以完全不透明的方式绘制图像。
-
-
-
-
-</p>
-
-</div>
-<p style="clear:both"><strong>禁忌用法</strong></p>
-
-<p>利用色彩将您的应用与其他应用区分开来。通知图标应该是纯白透明背景图像。
-</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">对通知 LED 施加相应的脉冲
-</h3>
-
-<p>许多 Android 设备都配有通知 LED，用于让用户在屏幕关闭时了解事件。
-
-优先级为 <code>MAX</code>、
-<code>HIGH</code> 或 <code>DEFAULT</code> 的通知应让 LED 发光，而优先级较低的通知（<code>LOW</code> 和 <code>MIN</code>）则不应让 LED 发光。
-
-</p>
-
-<p>用户对通知的控制应延伸至 LED。当您使用 DEFAULT_LIGHTS 时，LED 将发出白光。
-
-您的通知不应使用不同的颜色，除非用户明确对其进行了自定义。
-
-</p>
-
-<h2 id="building_notifications_that_users_care_about">构建用户关注的通知
-</h2>
-
-<p>要创建用户喜爱的应用，精心设计通知很重要。通知是应用的代言人，还可增强应用的个性化特征。
-
-
-无用或者不重要的通知会给用户带来烦恼，或者由于过分分散用户的注意力而使其感到愤怒，因此请谨慎使用通知。
-
-
-</p>
-
-<h3 id="when_to_display_a_notification">何时显示通知</h3>
-
-<p>要创建人们乐于使用的应用，就需要认识到用户的注意力和关注点是一种必须予以保护的资源，这一点很重要。
-
-尽管 Android 的通知系统在设计上希望最小化通知对用户注意力的影响，但是仍然要重视通知会中断用户任务流程这一事实。在您计划通知时，要问问自己，它们是否足够重要，是否适合让用户中断手上的任务。
-
-
-
-
-
-
-如果您不确定，可允许用户使用应用的通知设置来选择是否接收通知，或者将通知优先级标志调整为 <code>LOW</code> 或 <code>MIN</code>，从而避免在用户做其他事情时分散他们的注意力。
-
-
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   时间敏感通知的示例
-  </p>
-
-<p>尽管行为良好的应用通常只在用户对其操作后才会发出通知，但在极少数情况下，应用通过无提示的通知形式打断用户也是值得的。
-</p>
-
-<p>将通知主要用于<strong>时间敏感的事件</strong>，尤其是这些同步事件<strong>涉及其他用户时</strong>。
-例如，传入的聊天属于实时同步通信形式：
-
-另一个用户在主动等待您的回应。
-日历事件是使用通知并引起用户注意的另一个好例子，因为事件已经迫近，并且日历事件通常涉及其他人员。
-
-
-</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">何时不显示通知
-</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>在其他很多情况下都不适合显示通知：</p>
-
-<ul>
-  <li> 不要将并非特定于用户的信息或并非确实时间敏感的信息告知用户。
-
-例如，流经社交网络的异步和未经订阅的更新，通常不适合引发实时中断。
-
-
-对于确实关注它们的用户，可让他们选择接收通知。
-</li>
-  <li> 如果相关的新信息当前显示在屏幕上，则不要创建通知。
-不过可以使用应用本身的 UI 在上下文中将新信息直接告知用户。
-
-
-  例如，聊天应用不应在用户主动和另一名用户聊天时创建系统通知。
-</li>
-  <li> 对于技术要求不高的操作（例如保存或同步信息或更新应用），如果应用或系统无需用户参与就可解决问题，请不要中断用户。
-
-</li>
-  <li> 如果可以让应用自行恢复错误，而不必让用户采取任何操作，则不要中断用户来告知他们发生此错误。
-
-</li>
-  <li> 请不要创建没有实际通知内容和仅仅是为您的应用做宣传的通知。通知应当提供有用、及时、最新的信息，而不应仅用于推广应用。
-
-
-
-</li>
-  <li> 请不要为了向用户宣传您的品牌而创建过多的通知。
-
-  此类通知会让用户不满，从而很可能离您而去。提供少量更新信息并让用户保持与您的应用交互的最佳方式是开发一个小工具，让用户可以选择是否将其放在主屏幕上。
-
-
-
-
-</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">与通知交互
-</h2>
-
-<p>通知由状态栏中的图标指示，并且可以通过打开抽屉式通知栏进行访问。
-
-</p>
-
-<p>触摸通知会打开相关联的应用并进入与通知匹配的详细内容。在通知上向左或向右滑动会将其从抽屉式通知栏中删除。
-
-</p>
-
-<h3 id="ongoing_notifications">持续性通知</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    因播放音乐而持续显示的通知
-  </p>
-</div>
-<p>持续性通知可让用户持续了解后台运行的进度。例如，音乐播放器在通知系统中通告当前播放的曲目，并继续进行播放，直至用户停止播放。
-
-
-
-持续性通知也可为持续时间较长的任务（例如下载文件或视频编码之类的任务）向用户显示反馈。
-
-用户无法手动从抽屉式通知栏中删除持续性通知。
-</p>
-
-<h3 id="ongoing_notifications">媒体播放</h3>
-<p>在 Android 5.0 中，锁定屏幕不会为弃用的
-{@link android.media.RemoteControlClient} 类显示传输控件。但是它<em>确实</em>会显示通知，因此每个应用的播放通知现在是用户在锁屏状态控制播放的主要方式。
-
-此行为可让应用更好地控制显示哪些按钮，这样，无论是否锁屏，都可以为用户提供一致的体验。
-
-
-</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">对话框和 Toast
-</h3>
-
-<p>如果您的应用当前未显示在屏幕上，则不应创建对话框或 Toast。
-对话框或 Toast 应仅限用于即时响应用户在应用内部采取的操作。有关使用对话框和 Toast 的进一步指导，请参阅<a href="/design/patterns/confirming-acknowledging.html">确认和确知</a>。
-
-
-
-</p>
-
-<h3>排名和排序</h3>
-
-<p>通知属于新闻，因此基本以时间倒序显示，并且会特别考虑应用规定的通知<a href="#correctly_set_and_manage_notification_priority">优先级</a>。
-
-
-</p>
-
-<p>通知是锁定屏幕的关键部分，并且在设备显示屏每次亮起时突出显示。
-
-锁定屏幕上的空间有限，因此确定哪些通知最为紧急或最密切相关非常重要。
-
-由于这个原因，Android 在处理通知时使用了更为精密的排序算法，考虑到以下因素：
-
-</p>
-
-<ul>
-  <li> 时间戳以及应用规定的优先级。</li>
-  <li> 通知是否最近以声音或振动形式告知过用户。
-（也就是说，如果手机刚发出了铃声，并且用户希望知道“刚才发生了什么？”，那么锁定屏幕应让用户一眼看到相应的通知。）
-
-
-</li>
-  <li> 与使用 {@link android.app.Notification#EXTRA_PEOPLE} 的通知相关的任何人，尤其是加星标的联系人。
-</li>
-</ul>
-
-<p>为了充分利用此排序功能，请专注于您希望建立的用户体验，而不是拘泥于列表上的某个特定项。
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Gmail 通知使用的是默认优先级，因此它们的顺序通常低于来自即时通讯应用（例如环聊）的消息，但是在有新邮件送达时会临时占位。
-
-
-
-
-  </p>
-
-
-<h3>在锁定屏幕上</h3>
-
-<p>由于通知在锁定屏幕上可见，所以用户隐私是特别重要的考虑事项。
-
-通知通常包含敏感信息，并且不一定需要让所有拿起设备并打开显示屏的人看到。
-
-</p>
-
-<ul>
-  <li> 对于配置了安全锁定屏幕（PIN 码、图案或密码）的设备，界面分为公用和私人部分。
-公用界面可显示在安全锁定屏幕上，因此任何人都可看见。
-私人界面是锁定屏幕背后的内容，只有在用户登录设备后才会显示。
-</li>
-</ul>
-
-<h3>用户对显示在安全锁定屏幕上的信息的控制</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    位于锁定屏幕上的通知，具有用户解锁设备后可显示的内容。
-  </p>
-</div>
-
-<p>在设置安全锁定屏幕时，用户可以选择从安全锁定屏幕隐藏敏感的详细信息。
-在这种情况下，系统 UI 会考虑通知的<em>可见性级别</em>，从而确定哪些内容可以安全地显示出来。
-
-</p>
-<p> 要控制可见性级别，可调用 <code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>，然后指定以下值之一：
-
-</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>。显示通知的完整内容。
-
-  在未指定可见性的情况下，此设置是系统的默认设置。</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>。在锁定屏幕上，会显示通知的基本信息，包括其图标以及发布此通知的应用名称。
-
-剩下的通知详细信息不会显示。需要注意的一些有用建议如下：
-
-  <ul>
-    <li> 如果您希望为通知提供不同的公用版本，供系统显示在安全锁定屏幕上，可在 <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code> 字段中提供替换通知对象。
-
-
-
-    <li> 该设置可让您的应用有机会创建有用内容的删减版本，但是不会显示个人信息。
-可参考短信应用的示例，这种应用的通知包括短信的文本以及发信者的姓名和联系人图标。该通知应为 <code>VISIBILITY_PRIVATE</code>，但是 <code>publicVersion</code> 仍然可以包含“有 3 条新消息”这样的有用信息，而不会提供其他识别性详细信息。
-
-
-
-
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>。仅显示最为精简的信息，甚至不包括通知图标。
-</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Android Wear 上的通知
-</h2>
-
-<p>通知及其<em>操作</em>默认会和穿戴设备桥接。开发者可以控制哪些通知会从手机桥接至手表，反之亦然。
-
-
-开发者也可以控制哪些操作会进行桥接。如果您的应用包含无法通过单次点击完成的操作，则可以将这些操作隐藏在您的 Android Wear 设备通知中，或者考虑将它们连接至 Android Wear 设备应用，从而可让用户在其手表上完成操作。
-
-
-
-
-
-</p>
-
-<h4>桥接通知和操作</h4>
-
-<p>连接的设备，例如手机，可将通知桥接至 Android Wear 设备，从而将通知显示在此处。
-与此相似，您也可以桥接操作，从而让用户可在 Android Wear 设备上直接操作通知。
-</p>
-
-<p><strong>桥接</strong></p>
-
-<ul>
-  <li> 新的即时通讯</li>
-  <li> 单次点击操作，例如 +1、赞、收藏</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>不要桥接</strong></p>
-
-<ul>
-  <li> 新收到的播客通知</li>
-  <li> 映射至手表上无法使用的功能的操作</li>
-</ul>
-
-
-
-<p><h4>为 Android Wear 设备定义的独特操作</h4></p>
-
-<p>有些操作只能在 Android Wear 上执行。包括以下情况：</p>
-
-<ul>
-  <li> 例如“马上回来”这样的预设回复快速列表</li>
-  <li> 在手机上打开</li>
-  <li> 调出语音输入屏幕的“评论”或“回复”操作</li>
-  <li> 启动 Android Wear 专用应用的操作</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/zh-cn/preview/j8-jack.jd b/docs/html-intl/intl/zh-cn/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/zh-cn/preview/j8-jack.jd
rename to docs/html-intl/intl/zh-cn/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/zh-cn/preview/features/multi-window.jd b/docs/html-intl/intl/zh-cn/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/zh-cn/preview/features/multi-window.jd
rename to docs/html-intl/intl/zh-cn/guide/topics/ui/multi-window.jd
index cfcdf6d..5ec27d7 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/zh-cn/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>本文内容</h2>
       <ol>
         <li><a href="#overview">概览</a></li>
@@ -69,8 +69,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>图 1.</strong> 两个应用在分屏模式中左右并排显示。
 </p>
diff --git a/docs/html-intl/intl/zh-cn/preview/_book.yaml b/docs/html-intl/intl/zh-cn/preview/_book.yaml
deleted file mode 100644
index 81956ed..0000000
--- a/docs/html-intl/intl/zh-cn/preview/_book.yaml
+++ /dev/null
@@ -1,342 +0,0 @@
-toc:
-- title: 计划概览
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: 支持与版本说明
-  path: /preview/support.html
-
-- title: 设置 Preview
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: 在设备上测试
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: 行为变更
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: 后台优化
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: 语言和区域设置
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 概览
-  section:
-  - title: 多窗口支持
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: 通知
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Data Saver
-    path: /preview/features/data-saver.html
-  - title: TV 录制
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: 网络安全配置
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: ICU4J 支持
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android フレームワーク API
-    - name: zh-tw-lang
-      value: ICU4J Android フレームワーク API
-  - title: Java 8 语言功能
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 の機能
-    - name: zh-tw-lang
-      value: Java 8 の機能
-  - title: Android for Work Updates
-    path: /preview/features/afw.html
-  - title: 作用域目录访问
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: 示例
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: 许可协议
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html-intl/intl/zh-cn/preview/download-ota.jd b/docs/html-intl/intl/zh-cn/preview/download-ota.jd
deleted file mode 100644
index 5d17abc..0000000
--- a/docs/html-intl/intl/zh-cn/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=应用设备 OTA 映像
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">在下载和安装 Android Preview SDK 的组件之前，您必须同意下列条款和条件。
-
-</p>
-
-    <h2 class="norule">条款和条件</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-本协议是 Android SDK Preview 许可协议（以下称为“许可协议”）。
-
-1. 简介
-
-1.1 Android SDK Preview（在本许可协议中简称为“Preview”，具体包括 Android 系统文件、封装 API 以及 Preview 库文件（若可用））依据本许可协议的条款授权您使用。本许可协议在您与 Google 之间就您对“Preview”的使用构成具有法律约束力的合约。
-
-1.2 “Android”是指以 Android 开源项目（项目网址为 http://source.android.com/，其内容会不时更新）名义提供、面向设备的 Android 软件栈。
-
-1.3 “Android 兼容”是指 (i) 符合与 Android 兼容性定义文档（可在 Android 兼容性网站 http://source.android.com/compatibility 上找到，并可能会不时更新）标准的任何 Android 实现；并 (ii) 成功通过 Android 兼容性测试套件 (CTS) 的测试。
-
-1.4“Google”是指 Google Inc.，是一家特拉华州公司，主要营业地位于：1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。
-
-2. 接受许可协议
-
-2.1 要使用“Preview”，您必须先同意本许可协议。如果您不接受本许可协议，则不得使用“Preview”。
-
-2.2 点击接受并/或使用“Preview”，即表示您特此同意本许可协议的条款。
-
-2.3 如果依照美国或其他国家/地区（包括您居住或您使用“Preview”所在的国家/地区）的法律，您被禁止获取“Preview”，则您不得使用“Preview”，也不得接受本许可协议。
-
-2.4 如果您将在贵公司或组织内部使用“Preview”，则您同意代表您的雇主或其他实体接受本许可协议的约束，并且您表示并保证您拥有完全的合法授权令您的雇主或上述实体受本许可协议的约束。如果您不具备必要的授权，则不得代表您的雇主或其他实体接受本许可协议或使用“Preview”。
-
-3. Google “Preview”许可
-
-3.1 Google 依据本许可协议的条款授予您有限的、全球性、免版税、不可转让、非独占性且不可次级许可的“Preview”使用许可，其用途仅限针对 Android 的兼容实现来开发应用。
-
-3.2 您不得使用此“Preview”来开发适用于其他平台（包括 Android 的非兼容实现）的应用或开发其他 SDK。您当然可以随意开发适用于其他平台（包括 Android 的非兼容实现）的应用，前提是不使用此“Preview”来进行此类开发。
-
-3.3 您同意 Google 或第三方拥有“Preview”中存在或与其有关联的全部合法权利、所有权和利益，包括“Preview”中存在的任何知识产权。“知识产权”是指根据专利法、版权法、商业机密法、商标法享有的任何及全部权利，以及其他任何及全部专有权利。Google 保留所有未明确授予您的权利。
-
-3.4 您不得将“Preview”用于本许可协议未明确允许的任何用途。除适用第三方许可所要求的范围外，您不得：(a) 对“Preview”或“Preview”的任何部分进行复制（备份用途除外）、修改、改编、再分发、反编译、逆向工程、反汇编或创建其衍生品；或 (b) 将“Preview”的任何部分加载到移动手持终端或除个人计算机之外的任何其他硬件设备上，将“Preview”的任何部分与其他软件合并，或者发行任何融入“Preview”某一部分的软件或设备。
-
-3.5 对于依据开源软件许可授权的“Preview”组件，其使用、复制和分发仅受该开源软件许可条款的制约，不受本许可协议的约束。您同意在依照被授予的所有权利作为被许可方期间，在遵守此类开源软件许可协议方面始终保持良好的信誉，并避免进行任何可能导致终止、暂停或违反此类权利的行动。
-
-3.6 您同意 Google 所提供“Preview”的形式和性质可随时发生变更，而无需事先通知您，并且未来的“Preview”版本可能会与在之前的“Preview”版本上开发的应用不兼容。您同意 Google 可单方面决定在未事先通知您的情况下全面停止（永久性或暂时性）向您或用户提供“Preview”（或“Preview”内的任何功能）。
-
-3.7 本许可协议内没有任何条款授予您使用 Google 的任何商品名、商标、服务标志、徽标、域名或其他独特品牌特征的权利。
-
-3.8 您同意您不会移除、遮盖或篡改“Preview”上可能贴有或“Preview”内可能包含的任何专有权利声明（包括版权声明和商标声明）。
-
-4. 您对“Preview”的使用
-
-4.1 Google 同意本许可协议中的任何条款均未授予 Google 从您（或您的许可方）处获取您依照本许可协议使用“Preview”开发的任何软件应用中存在或与其相关的权利、所有权或利益，包括这些应用中存在的任何知识产权。
-
-4.2 您同意只出于 (a) 本许可协议和 (b) 相关管辖区域内任何适用法律、法规或公认惯例或准则（包括有关向美国或其他相关国家/地区出口数据或软件或从美国或其他相关国家/地区进口数据或软件的任何法律）所允许的目的而使用“Preview”和编写应用。
-
-4.3 您同意，如果您使用“Preview”开发应用，您将会保护用户的隐私权和合法权利。如果用户向您提供用户名、密码或其他登录信息或个人信息，您必须确保用户知晓这些信息将供您的应用使用，并且您必须为这些用户提供足以满足法律要求的隐私声明和保护。如果您的应用存储由用户提供的个人信息或敏感信息，其存储方式必须安全。如果用户向您提供 Google 帐户信息，您的应用只能在用户允许时出于用户所许可的有限目的使用该信息访问用户的 Google 帐户。
-
-4.4 您同意您不会利用“Preview”从事任何干扰、中断、损坏或以未经授权方式访问 Google 或任何第三方的服务器、网络或其他财产或服务的 Activity（包括应用的开发或分发）。
-
-4.5 您同意您对通过 Android 和/或 Android 应用创建、传输或显示的任何数据、内容或资源以及您的行为所导致的后果（包括 Google 可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.6 您同意您为违反本许可协议、任何适用的第三方合约或服务条款或任何适用法律或法规下的义务以及任何上述违规行为所导致的后果（包括 Google 或任何第三方可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.7 “Preview”正在开发中，您的测试和反馈是开发过程的重要环节。使用“Preview”，即表示您承认某些功能仍在开发实现之中，您不应期望“Preview”具备稳定版本的全部功能。您同意不使用此“Preview”公开发布或发运任何应用，因为此“Preview”在 Android SDK 正式发行之后将不再受支持。
-
-5. 您的开发者凭据
-
-5.1 您同意，对于 Google 可能向您发放或可能由您自行选择的任何开发者凭据，您有责任保持其机密性，并且您对以您的开发者凭据名义开发的所有应用负全责。
-
-6. 隐私权和信息
-
-6.1 为持续创新和改进“Preview”，Google 可能会从软件收集某些使用统计数据，包括但不限于唯一标识符、关联的 IP 地址、软件的版本号以及有关软件使用了“Preview”中哪些工具和/或服务及其使用方式的信息。在收集任何上述信息之前，“Preview”都会通知您并征求您的同意。如果您拒绝同意，我们将不会收集这些信息。
-
-6.2 我们会对收集的数据进行汇总调查，以便改进“Preview”，并会按照 Google 的隐私政策（网址为 http://www.google.com/policies/privacy/）维护数据。
-
-7. 第三方应用
-
-7.1 如果您使用“Preview”运行由第三方开发或访问由第三方提供的数据、内容或资源的应用，您同意 Google 对这些应用、数据、内容或资源不承担任何责任。您理解，您通过上述第三方应用可能访问到的所有数据、内容或资源由其提供者负全责，Google 对您因使用或访问其中任何第三方应用、数据、内容或资源而遭受的任何损失或损害不承担任何责任。
-
-7.2 您应知晓，通过此类第三方应用提供给您的数据、内容和资源可能受提供商（或代表他们的其他人员或公司）拥有的知识产权的保护。除非相关所有者明确给予许可，否则您不得修改、出租、租赁、借出、出售、分发这些数据、内容或资源（的全部或部分），或以其为基础创建衍生品。
-
-7.3 您承认您对上述第三方应用、数据、内容或资源的使用可能受到您与相关第三方之间单独订立的条款的制约。
-
-8. 使用 Google API
-
-8.1 Google API
-
-8.1.1 如果您使用任何 API 从 Google 检索数据，即表示您承认这些数据可能受到 Google 或这些数据提供方（或代表他们的其他人员或公司）拥有的知识产权的保护。您对任何上述 API 的使用可能受到附加服务条款的制约。除非相关服务条款允许，否则您不得修改、出租、租赁、借出、出售、分发这些数据（全部或部分），或以其为基础创建衍生品。
-
-8.1.2 如果您使用任何 API 从 Google 检索用户数据，即表示您承认并同意您只有在征得用户明确同意时才会检索数据，并且只能在用户允许时出于用户许可的有限目的检索数据。
-
-9. 终止许可协议
-
-9.1 本许可协议将持续有效，直至您或 Google 按以下规定终止本协议。
-
-9.2 如果您想终止本许可协议，可通过停止使用“Preview”以及任何相关开发者凭据予以终止。
-
-9.3 Google 有权在向您作出通知后，有理由或无理由地随时终止与您订立的这份许可协议。
-
-9.4 本许可协议将在下列情况下自动终止，而无需另行通知或采取其他行动，以先符合条件者为准：
-(A) Google 在您居住或使用服务所在国家/地区停止向用户提供“Preview”或“Preview”的某些部分；
-(B) Google 发行 Android SDK 的最终版本。
-
-9.5 在本许可协议终止时，本许可协议中向您授予的许可将终止，您应立即完全停止使用“Preview”，并且第 10、11、12 和 14 节的条款将无限期继续存在。
-
-10.免责声明
-
-10.1 您明确理解并同意，您使用“Preview”的风险将由您自行承担，并且“Preview”是按“原样”和“现状”提供，Google 不提供任何类型的担保。
-
-10.2 您对“Preview”的使用以及通过使用“Preview”下载或以其他方式获得的任何材料由您自行决定，风险自负，并且对于因此类使用而对您的计算机系统或其他设备造成的任何损害或数据损失由您单方面负责。在不对上文所述予以限制的条件下，您了解“Preview”并非稳定版本，可能存在将导致重大损害的错误、缺陷和安全漏洞，包括无法挽回地完全无法使用您的计算机系统或其他设备。
-
-10.3 Google 进一步明确拒绝任何类型的所有担保和条件，无论明示或暗示，包括但不限于有关适销性、特定用途适用性以及非侵权的暗示担保和条件。
-
-11. 有限责任
-
-11.1 您明确理解并同意，对于您可能遭遇的任何直接、间接、附带、特殊、继发或惩罚性损害（包括任何数据损失），Google 及其子公司和附属公司以及其许可方在任何责任理论下对您概不承担任何责任，无论 Google 或其代表是否已被告知或是否本应知晓发生任何上述损失的可能性。
-
-12. 赔偿
-
-12.1 您同意，在法律所允许的最大限度内，为 Google、其附属公司及其各自的董事、高管、员工和代理商提供辩护，使其免于因下列情况引起或产生的任何及所有索赔、诉讼、起诉或诉讼程序以及任何及所有损失、债务、损害、成本和费用（包括合理的律师费用）而承担责任或遭受损害：(a) 您对“Preview”的使用；(b) 您在“Preview”上开发的任何应用侵犯任何人的任何知识产权或诽谤任何人或侵犯其公开权或隐私权；以及 (c) 您的任何行为有悖于本许可协议
-
-13. 许可协议的更改
-
-13.1 Google 可能会在分发新版本“Preview”时对许可协议做出更改。做出这些更改后，Google 将在提供“Preview”的网站上公布新版本的许可协议。
-
-14. 一般法律条款
-
-14.1 本许可协议构成您与 Google 之间的完整法律协议，管辖您对“Preview”（不包括 Google 可能依据另外的书面协议向您提供的任何服务）的使用，并完全取代您之前与 Google 之间签订的、与“Preview”有关的任何协议。
-
-14.2 您同意，如果 Google 未行使或未强制执行本许可协议包含的任何法定权利或救济（或 Google 在任何适用法律下享有的相关利益），不得视为 Google 正式放弃这些权利，Google 仍可获得这些权利或救济。
-
-14.3 如果任何拥有管辖权的法院将本许可协议的任何条款裁定为无效，则该条款将从本许可协议中删除，而不会影响本许可协议的其余部分。本许可协议的其余条款将继续有效且可强制执行。
-
-14.4 您承认并同意，Google 集团旗下的每一家公司都将成为本许可协议的第三方受益人，并且此类其他公司将有权直接强制执行和依赖本许可协议中任何授予其利益（或支持其权利）的条款。除此之外，任何其他人员或公司均不得成为本许可协议的第三方受益人。
-
-14.5 出口限制。“Preview”受美国出口法律和法规的制约。您必须遵守适用于“Preview”的所有国内和国际出口法律和法规。这些法律包括目的地、最终用户和最终用途方面的限制。
-
-14.6 未经 Google 事先书面批准，您不得擅自转让或转移本许可协议，未经此类批准而试图进行的任何转让均为无效。未经 Google 事先书面批准，您不得委托您依据本许可协议所应承担的责任或义务。
-
-14.7 本许可协议以及您与 Google 依据本许可协议而建立的关系受加利福尼亚州法律管辖，而无论其是否与其他法律条款冲突。您与 Google 同意服从位于加利福尼亚州圣克拉拉县内法院的专属司法管辖权，以解决本许可协议引起的任何法律事务。尽管有上述规定，您同意仍允许 Google 在任何管辖区域申请禁令救济（或同等类型的紧急法律救济）。
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">我已阅读并同意上述条款和条件</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  本页提供了无线 (OTA) 设备映像的下载链接，并描述了如何手动向设备应用一项 OTA 更新。
-此过程可用于恢复通过 Android Beta 计划接收 OTA 更新并且在安装更新后不能启动的设备。
-
-
-</p>
-
-<h2 id="install-ota">安装 OTA 映像</h2>
-
-<p></p>
-
-<p>将 OTA 软件包安装到设备：</p>
-
-<ol>
-  <li>从下表中下载 OTA 设备映像。</li>
-  <li>将设备重新启动为恢复模式。如需有关将 Nexus 设备设为此模式的更多信息，请参阅<a href="https://support.google.com/nexus/answer/4596836">将您的 Nexus 设备恢复为出厂设置</a>。
-
-
-
-  </li>
-  <li>在设备上，选择 <strong>ADB sideload</strong>。</li>
-  <li>将设备连接到加载了 Android 开发环境并安装了Android 调试桥 (ADB) 工具的计算机。
-</li>
-  <li>运行以下命令：
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">设备 OTA 映像</h2>
-
-<table>
-  <tr>
-    <th scope="col">设备</th>
-    <th scope="col">下载/校验和</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/zh-cn/preview/download.jd b/docs/html-intl/intl/zh-cn/preview/download.jd
deleted file mode 100644
index 2d3b883..0000000
--- a/docs/html-intl/intl/zh-cn/preview/download.jd
+++ /dev/null
@@ -1,544 +0,0 @@
-page.title=在设备上测试
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">在下载和安装 Android Preview SDK 的组件之前，您必须同意下列条款和条件。
-
-</p>
-
-    <h2 class="norule">条款和条件</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-本协议是 Android SDK Preview 许可协议（以下称为“许可协议”）。
-
-1. 简介
-
-1.1 Android SDK Preview（在本许可协议中简称为“Preview”，具体包括 Android 系统文件、封装 API 以及 Preview 库文件（若可用））依据本许可协议的条款授权您使用。本许可协议在您与 Google 之间就您对“Preview”的使用构成具有法律约束力的合约。
-
-1.2 “Android”是指以 Android 开源项目（项目网址为 http://source.android.com/，其内容会不时更新）名义提供、面向设备的 Android 软件栈。
-
-1.3 “Android 兼容”是指 (i) 符合与 Android 兼容性定义文档（可在 Android 兼容性网站 http://source.android.com/compatibility 上找到，并可能会不时更新）标准的任何 Android 实现；并 (ii) 成功通过 Android 兼容性测试套件 (CTS) 的测试。
-
-1.4“Google”是指 Google Inc.，是一家特拉华州公司，主要营业地位于：1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。
-
-2. 接受许可协议
-
-2.1 要使用“Preview”，您必须先同意本许可协议。如果您不接受本许可协议，则不得使用“Preview”。
-
-2.2 点击接受并/或使用“Preview”，即表示您特此同意本许可协议的条款。
-
-2.3 如果依照美国或其他国家/地区（包括您居住或您使用“Preview”所在的国家/地区）的法律，您被禁止获取“Preview”，则您不得使用“Preview”，也不得接受本许可协议。
-
-2.4 如果您将在贵公司或组织内部使用“Preview”，则您同意代表您的雇主或其他实体接受本许可协议的约束，并且您表示并保证您拥有完全的合法授权令您的雇主或上述实体受本许可协议的约束。如果您不具备必要的授权，则不得代表您的雇主或其他实体接受本许可协议或使用“Preview”。
-
-3. Google “Preview”许可
-
-3.1 Google 依据本许可协议的条款授予您有限的、全球性、免版税、不可转让、非独占性且不可次级许可的“Preview”使用许可，其用途仅限针对 Android 的兼容实现来开发应用。
-
-3.2 您不得使用此“Preview”来开发适用于其他平台（包括 Android 的非兼容实现）的应用或开发其他 SDK。您当然可以随意开发适用于其他平台（包括 Android 的非兼容实现）的应用，前提是不使用此“Preview”来进行此类开发。
-
-3.3 您同意 Google 或第三方拥有“Preview”中存在或与其有关联的全部合法权利、所有权和利益，包括“Preview”中存在的任何知识产权。“知识产权”是指根据专利法、版权法、商业机密法、商标法享有的任何及全部权利，以及其他任何及全部专有权利。Google 保留所有未明确授予您的权利。
-
-3.4 您不得将“Preview”用于本许可协议未明确允许的任何用途。除适用第三方许可所要求的范围外，您不得：(a) 对“Preview”或“Preview”的任何部分进行复制（备份用途除外）、修改、改编、再分发、反编译、逆向工程、反汇编或创建其衍生品；或 (b) 将“Preview”的任何部分加载到移动手持终端或除个人计算机之外的任何其他硬件设备上，将“Preview”的任何部分与其他软件合并，或者发行任何融入“Preview”某一部分的软件或设备。
-
-3.5 对于依据开源软件许可授权的“Preview”组件，其使用、复制和分发仅受该开源软件许可条款的制约，不受本许可协议的约束。您同意在依照被授予的所有权利作为被许可方期间，在遵守此类开源软件许可协议方面始终保持良好的信誉，并避免进行任何可能导致终止、暂停或违反此类权利的行动。
-
-3.6 您同意 Google 所提供“Preview”的形式和性质可随时发生变更，而无需事先通知您，并且未来的“Preview”版本可能会与在之前的“Preview”版本上开发的应用不兼容。您同意 Google 可单方面决定在未事先通知您的情况下全面停止（永久性或暂时性）向您或用户提供“Preview”（或“Preview”内的任何功能）。
-
-3.7 本许可协议内没有任何条款授予您使用 Google 的任何商品名、商标、服务标志、徽标、域名或其他独特品牌特征的权利。
-
-3.8 您同意您不会移除、遮盖或篡改“Preview”上可能贴有或“Preview”内可能包含的任何专有权利声明（包括版权声明和商标声明）。
-
-4. 您对“Preview”的使用
-
-4.1 Google 同意本许可协议中的任何条款均未授予 Google 从您（或您的许可方）处获取您依照本许可协议使用“Preview”开发的任何软件应用中存在或与其相关的权利、所有权或利益，包括这些应用中存在的任何知识产权。
-
-4.2 您同意只出于 (a) 本许可协议和 (b) 相关管辖区域内任何适用法律、法规或公认惯例或准则（包括有关向美国或其他相关国家/地区出口数据或软件或从美国或其他相关国家/地区进口数据或软件的任何法律）所允许的目的而使用“Preview”和编写应用。
-
-4.3 您同意，如果您使用“Preview”开发应用，您将会保护用户的隐私权和合法权利。如果用户向您提供用户名、密码或其他登录信息或个人信息，您必须确保用户知晓这些信息将供您的应用使用，并且您必须为这些用户提供足以满足法律要求的隐私声明和保护。如果您的应用存储由用户提供的个人信息或敏感信息，其存储方式必须安全。如果用户向您提供 Google 帐户信息，您的应用只能在用户允许时出于用户所许可的有限目的使用该信息访问用户的 Google 帐户。
-
-4.4 您同意您不会利用“Preview”从事任何干扰、中断、损坏或以未经授权方式访问 Google 或任何第三方的服务器、网络或其他财产或服务的 Activity（包括应用的开发或分发）。
-
-4.5 您同意您对通过 Android 和/或 Android 应用创建、传输或显示的任何数据、内容或资源以及您的行为所导致的后果（包括 Google 可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.6 您同意您为违反本许可协议、任何适用的第三方合约或服务条款或任何适用法律或法规下的义务以及任何上述违规行为所导致的后果（包括 Google 或任何第三方可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.7 “Preview”正在开发中，您的测试和反馈是开发过程的重要环节。使用“Preview”，即表示您承认某些功能仍在开发实现之中，您不应期望“Preview”具备稳定版本的全部功能。您同意不使用此“Preview”公开发布或发运任何应用，因为此“Preview”在 Android SDK 正式发行之后将不再受支持。
-
-5. 您的开发者凭据
-
-5.1 您同意，对于 Google 可能向您发放或可能由您自行选择的任何开发者凭据，您有责任保持其机密性，并且您对以您的开发者凭据名义开发的所有应用负全责。
-
-6. 隐私权和信息
-
-6.1 为持续创新和改进“Preview”，Google 可能会从软件收集某些使用统计数据，包括但不限于唯一标识符、关联的 IP 地址、软件的版本号以及有关软件使用了“Preview”中哪些工具和/或服务及其使用方式的信息。在收集任何上述信息之前，“Preview”都会通知您并征求您的同意。如果您拒绝同意，我们将不会收集这些信息。
-
-6.2 我们会对收集的数据进行汇总调查，以便改进“Preview”，并会按照 Google 的隐私政策（网址为 http://www.google.com/policies/privacy/）维护数据。
-
-7. 第三方应用
-
-7.1 如果您使用“Preview”运行由第三方开发或访问由第三方提供的数据、内容或资源的应用，您同意 Google 对这些应用、数据、内容或资源不承担任何责任。您理解，您通过上述第三方应用可能访问到的所有数据、内容或资源由其提供者负全责，Google 对您因使用或访问其中任何第三方应用、数据、内容或资源而遭受的任何损失或损害不承担任何责任。
-
-7.2 您应知晓，通过此类第三方应用提供给您的数据、内容和资源可能受提供商（或代表他们的其他人员或公司）拥有的知识产权的保护。除非相关所有者明确给予许可，否则您不得修改、出租、租赁、借出、出售、分发这些数据、内容或资源（的全部或部分），或以其为基础创建衍生品。
-
-7.3 您承认您对上述第三方应用、数据、内容或资源的使用可能受到您与相关第三方之间单独订立的条款的制约。
-
-8. 使用 Google API
-
-8.1 Google API
-
-8.1.1 如果您使用任何 API 从 Google 检索数据，即表示您承认这些数据可能受到 Google 或这些数据提供方（或代表他们的其他人员或公司）拥有的知识产权的保护。您对任何上述 API 的使用可能受到附加服务条款的制约。除非相关服务条款允许，否则您不得修改、出租、租赁、借出、出售、分发这些数据（全部或部分），或以其为基础创建衍生品。
-
-8.1.2 如果您使用任何 API 从 Google 检索用户数据，即表示您承认并同意您只有在征得用户明确同意时才会检索数据，并且只能在用户允许时出于用户许可的有限目的检索数据。
-
-9. 终止许可协议
-
-9.1 本许可协议将持续有效，直至您或 Google 按以下规定终止本协议。
-
-9.2 如果您想终止本许可协议，可通过停止使用“Preview”以及任何相关开发者凭据予以终止。
-
-9.3 Google 有权在向您作出通知后，有理由或无理由地随时终止与您订立的这份许可协议。
-
-9.4 本许可协议将在下列情况下自动终止，而无需另行通知或采取其他行动，以先符合条件者为准：
-(A) Google 在您居住或使用服务所在国家/地区停止向用户提供“Preview”或“Preview”的某些部分；
-(B) Google 发行 Android SDK 的最终版本。
-
-9.5 在本许可协议终止时，本许可协议中向您授予的许可将终止，您应立即完全停止使用“Preview”，并且第 10、11、12 和 14 节的条款将无限期继续存在。
-
-10.免责声明
-
-10.1 您明确理解并同意，您使用“Preview”的风险将由您自行承担，并且“Preview”是按“原样”和“现状”提供，Google 不提供任何类型的担保。
-
-10.2 您对“Preview”的使用以及通过使用“Preview”下载或以其他方式获得的任何材料由您自行决定，风险自负，并且对于因此类使用而对您的计算机系统或其他设备造成的任何损害或数据损失由您单方面负责。在不对上文所述予以限制的条件下，您了解“Preview”并非稳定版本，可能存在将导致重大损害的错误、缺陷和安全漏洞，包括无法挽回地完全无法使用您的计算机系统或其他设备。
-
-10.3 Google 进一步明确拒绝任何类型的所有担保和条件，无论明示或暗示，包括但不限于有关适销性、特定用途适用性以及非侵权的暗示担保和条件。
-
-11. 有限责任
-
-11.1 您明确理解并同意，对于您可能遭遇的任何直接、间接、附带、特殊、继发或惩罚性损害（包括任何数据损失），Google 及其子公司和附属公司以及其许可方在任何责任理论下对您概不承担任何责任，无论 Google 或其代表是否已被告知或是否本应知晓发生任何上述损失的可能性。
-
-12. 赔偿
-
-12.1 您同意，在法律所允许的最大限度内，为 Google、其附属公司及其各自的董事、高管、员工和代理商提供辩护，使其免于因下列情况引起或产生的任何及所有索赔、诉讼、起诉或诉讼程序以及任何及所有损失、债务、损害、成本和费用（包括合理的律师费用）而承担责任或遭受损害：(a) 您对“Preview”的使用；(b) 您在“Preview”上开发的任何应用侵犯任何人的任何知识产权或诽谤任何人或侵犯其公开权或隐私权；以及 (c) 您的任何行为有悖于本许可协议
-
-13. 许可协议的更改
-
-13.1 Google 可能会在分发新版本“Preview”时对许可协议做出更改。做出这些更改后，Google 将在提供“Preview”的网站上公布新版本的许可协议。
-
-14. 一般法律条款
-
-14.1 本许可协议构成您与 Google 之间的完整法律协议，管辖您对“Preview”（不包括 Google 可能依据另外的书面协议向您提供的任何服务）的使用，并完全取代您之前与 Google 之间签订的、与“Preview”有关的任何协议。
-
-14.2 您同意，如果 Google 未行使或未强制执行本许可协议包含的任何法定权利或救济（或 Google 在任何适用法律下享有的相关利益），不得视为 Google 正式放弃这些权利，Google 仍可获得这些权利或救济。
-
-14.3 如果任何拥有管辖权的法院将本许可协议的任何条款裁定为无效，则该条款将从本许可协议中删除，而不会影响本许可协议的其余部分。本许可协议的其余条款将继续有效且可强制执行。
-
-14.4 您承认并同意，Google 集团旗下的每一家公司都将成为本许可协议的第三方受益人，并且此类其他公司将有权直接强制执行和依赖本许可协议中任何授予其利益（或支持其权利）的条款。除此之外，任何其他人员或公司均不得成为本许可协议的第三方受益人。
-
-14.5 出口限制。“Preview”受美国出口法律和法规的制约。您必须遵守适用于“Preview”的所有国内和国际出口法律和法规。这些法律包括目的地、最终用户和最终用途方面的限制。
-
-14.6 未经 Google 事先书面批准，您不得擅自转让或转移本许可协议，未经此类批准而试图进行的任何转让均为无效。未经 Google 事先书面批准，您不得委托您依据本许可协议所应承担的责任或义务。
-
-14.7 本许可协议以及您与 Google 依据本许可协议而建立的关系受加利福尼亚州法律管辖，而无论其是否与其他法律条款冲突。您与 Google 同意服从位于加利福尼亚州圣克拉拉县内法院的专属司法管辖权，以解决本许可协议引起的任何法律事务。尽管有上述规定，您同意仍允许 Google 在任何管辖区域申请禁令救济（或同等类型的紧急法律救济）。
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">我已阅读并同意上述条款和条件</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>本文内容</h2>
-      <ol>
-        <li><a href="#device-preview">设置硬件设备</a>
-          <ol>
-            <li><a href="#ota">获取无线更新</a></li>
-            <li><a href="#flash">手动刷写设备</a></li>
-            <li><a href="#revertDevice">卸载</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">设置模拟器</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  要在新平台上运行和测试您的应用，您需要设置 Android N
-运行组件环境。您可以通过以下任一方式完成此设置：
-</p>
-
-<ul>
-  <li>在受支持的硬件设备上安装 Android N，或者</li>
-  <li>设置运行 Android N 的 Android 模拟器</li>
-</ul>
-
-<p>
-  如果您需要一个环境用于完成应用在新平台上的基本兼容性测试，则只需现有 APK 和一台硬件设备或模拟器。执行基本测试不一定需要更新整个部署环境。
-
-
-
-</p>
-
-<p>
-  如果您想针对 Android N 或为了使用新的 Android N API 而修改您的应用，则需要一个已更新为支持 Android N 的部署环境并对其进行设置。<a href="{@docRoot}preview/setup-sdk.html">设置以开发 Android N 应用</a>介绍了详细信息。
-
-
-
-</p>
-
-
-<h2 id="device-preview">设置硬件设备</h2>
-
-<p>
-  N Developer Preview 提供适用于各种硬件设备（手机、平板、电视等）的系统更新，您可以使用这些设备测试自己的应用。
-
-</p>
-
-<p>
-  如果您可以访问受支持的设备，则可通过以下方式之一将其更新到 Developer Preview 里程碑构建版本：
-
-</p>
-
-<ul>
-  <li><strong>通过Android Beta 计划</strong>注册设备以获取自动<a href="https://g.co/androidbeta"> OTA 系统更新</a>。
-注册后，您的设备即会收到 N Developer Preview 中所有里程碑构建版本的定期 OTA 更新。
-建议采用此方法，因为它允许您通过各种版本的 N Developer Preview 从您当前的环境实现无缝转换。
-
-</li>
-  <li><strong>下载 Developer Preview 系统映像并刷写设备</strong>。系统不会为手动刷写的设备自动提供 OTA 更新，不过您可以将这些设备注册参加 Android Beta 计划以获取 OTA 更新。
-
- </li>
-</ul>
-
-<h3 id="ota">注册设备以获取自动 OTA 更新</h3>
-
-<p>
-  如果您可以访问受支持的设备（参见“下载”表格中的列表），则可以通过将该设备注册参加 <a href="https://g.co/androidbeta">Android Beta 计划</a>，获取 Android Preview 的无线更新。系统将自动下载这些更新并如正式系统更新一样更新您的设备。
-
-
-
-
-</p>
-
-<p>
-  您可以随时取消注册设备。取消注册后，设备将收到其可用的最新生产版本的 Android 系统（例如 Android 6.0 Marshmallow）的 OTA 更新。
-
-该更新要求完全重置设备，因此设备上的用户数据将被删除。
-在取消注册设备之前，务必先<strong>备份重要数据</strong>。
-
-</p>
-
-<p>
-  如需了解详细信息并注册您的设备，请参阅
-<a href="https://g.co/androidbeta">Android Beta 计划</a>网站。
-</p>
-
-<p class="note"><strong>注：</strong>
-  取消注册要求完全重置设备。务必先备份重要数据。
-
-</p>
-
-<h3 id="flash">手动刷写设备</h3>
-
-<p>
-  您可以随时下载最新的 Developer Preview 系统映像并将其手动刷入设备。
-请参阅下表下载适合您的测试设备的系统映像。
-如果您需要精确控制测试环境，或者需要经常重新安装系统，比如为了进行自动测试而重新安装，则手动刷写设备比较有用。
-
-
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  在设备上安装系统映像会<strong>删除设备中的所有数据</strong>，因此务必先备份数据。
-
-</p>
-
-<p>
-  备份设备数据并下载下面与设备匹配的系统映像后，请按照 <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
-中的说明将映像刷入设备中。
-
-</p>
-
-<p>
-  手动刷入的系统映像<strong>不会自动接收更高 Developer Preview 里程碑构建版本的 OTA 更新</strong>。请确保您的环境处于最新状态，并在每次有新的 Developer Preview 里程碑构建版本发布时刷入新的系统映像。
-
-
-
-</p>
-
-<p>
-  如果在手动刷写设备后您确定需要获取 OTA 更新，则只需将设备注册参加
-<a href="https://g.co/androidbeta">Android Beta 计划</a>即可。您可以随时注册设备以通过无线下载方式接收下一次的 Preview 更新。
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">设备</th>
-    <th scope="col">下载/校验和</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">从设备卸载 Preview</h3>
-
-<p>
-  如果您想从设备卸载 Preview，可以通过以下方式之一来完成：
- </p>
-  <ul>
-    <li><strong>获取出厂规格系统映像</strong>，然后手动将其刷入设备中。
-
-      <ul>
-          <li>对于 <strong>Nexus 设备和 Pixel C 设备</strong>，请参阅<a href="http://developers.google.com/android/nexus/images">适用于 Nexus 设备的出厂映像</a>页面进行下载。
-
- </li>
-        <li>对于<strong>其他设备</strong>，请直接联系设备制造商，或者，如果设备是 Android Beta 计划支持的设备，则您可以将设备注册参加该计划，然后取消注册（见下文）。
-
-
-</li>
-      </ul>
-    </li>
-    <li><strong>从 Android Beta 计划取消注册设备</strong>。如果设备已注册参加 <a href="https://g.co/androidbeta">Android Beta
- 计划</a>，则只需从计划中取消注册该设备即可，与是何种设备无关。
-
-  <p>
-    取消注册后，设备将收到其可用的最新生产版本的 Android 系统（例如 Android 6.0 Marshmallow）的 OTA 更新。
-
-    该更新要求完全重置设备，因此设备上的用户数据将被删除。
-在取消注册设备之前，务必先<strong>备份重要数据</strong>。
-
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>注：</strong>
-  如果要在计划结束之前卸载 Developer Preview 系统映像，则需要完全重置设备并删除设备上的所有用户数据。
-
-
-</p>
-
-
-<h2 id="setupAVD">设置模拟器</h2>
-
-<p>要使用 Android 模拟器运行 Android N Preview，需要下载
-Android N Preview SDK，并为模拟器创建一个虚拟设备。
-</p>
-
-<p>首先，按照如下操作下载 Android N Preview SDK（如果您在<a href="{@docRoot}preview/setup-sdk.html">设置以开发 Android N 应用</a>过程中即已获得此 SDK，则可跳过这部分）：
-
-
-
-<ol>
-  <li>在 Android Studio 中，打开“Settings”对话框
-（Windows/Linux：<strong>File &gt; Settings</strong>；或 Mac：<strong>Android Studio &gt; Preferences</strong>）。
-在左侧面板中，选择 <strong>Appearance &amp; Behavior &gt; System Settings &gt; Android SDK</strong>。
-
-
-
-  <li>点击 <strong>SDK Platforms</strong> 选项卡，然后选中 <strong>Android N Preview</strong> 复选框。
-</li>
-
-  <li>点击 <strong>SDK Tools</strong> 选项卡，然后选中
- <strong>Android SDK Build Tools</strong>、<strong>Android SDK
- Platform-Tools</strong> 和 <strong>Android SDK Tools</strong> 复选框。
-
-  </li>
-
-  <li>点击 <strong>OK</strong> 并接受要安装的任何软件包的许可协议。
-
-  </li>
-</ol>
-
-<p>现在，您应该有 <strong>Android SDK Built-Tools 24.0 0 rc1</strong>、<strong>Platform-Tools 24.0.0 rc1</strong> 和 <strong>SDK Tools
-25.0.9</strong>。如果您尚未将 SDK Tools 更新至 25.0.9，则将无法运行 Android N 的 x86_64 系统映像。
-
-</p>
-
-
-<p>现在，使用 Android N 系统映像创建虚拟设备：</p>
-
-<ol>
-  <li>通过选择 <strong>Tools &gt; Android &gt;
- AVD Manager</strong> 打开 AVD Manager。</li>
-  <li>点击 <strong>Create Virtual Device</strong>。</li>
-  <li>选择设备，例如 Nexus 5X、Nexus 6P、Nexus 9 或 Android TV，然后点击 <strong>Next</strong>。
-</li>
-  <li>选择 <strong>N</strong> 系统映像（带
-<strong>x86</strong> ABI），然后点击 <strong>Next</strong>。（适用于 Android N Preview 的 Android 模拟器当前仅支持 x86 系统映像。）
-
-
-  <li>完成余下 AVD 配置并点击
- <strong>Finish</strong>。</li>
-</ol>
-
-<p>现在，您可以使用 Android N Preview AVD 启动 Android 模拟器。</p>
-
-<p>
-要获得 Android 模拟器最佳运行体验，请确保您使用的是 Android Studio 2.1 或更高版本，该版本支持 <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>，与
-Android Studio 1.5 中的模拟器相比，其运行速度快得多。
-
-</p>
-
-<p>如需了解有关创建虚拟设备的详细信息，请参阅<a href="{@docRoot}tools/devices/index.html">管理虚拟设备</a>。
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/zh-cn/preview/features/afw.jd b/docs/html-intl/intl/zh-cn/preview/features/afw.jd
deleted file mode 100644
index 0d4c562..0000000
--- a/docs/html-intl/intl/zh-cn/preview/features/afw.jd
+++ /dev/null
@@ -1,556 +0,0 @@
-page.title=Android for Work 更新
-page.metaDescription=Android N 中的新 Android for Work API 和功能
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-
-
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>本文内容</h2>
-      <ol>
-        <li><a href="#qr">QR 码配置</a>
-</li>
-
-        <li><a href="#sec-challenge">工作资料安全性挑战</a>
-</li>
-
-        <li><a href="#suspend">停用应用访问</a>
-</li>
-
-        <li><a href="#toggle-work">切换工作模式</a>
-</li>
-
-        <li><a href="#always-on-vpn">Always-On VPN</a>
-</li>
-
-        <li><a href="#contacts">联系人与工作资料集成</a>
-</li>
-
-        <li><a href="#remote-reboot">远程重新启动</a>
-</li>
-
-        <li><a href="#disable-roaming">停用数据网络漫游</a>
-</li>
-
-        <li><a href="#process-logging">企业进程记录</a>
-</li>
-
-        <li><a href="#bug-reports">远程错误报告</a>
-</li>
-
-        <li><a href="#remove-cert">移除客户端证书</a>
-</li>
-
-        <li><a href="#grant-cert-on-install">允许访问安装设备上的客户端证书</a>
-</li>
-
-        <li><a href="#ui-policy">系统 UI 策略透明度</a>
-</li>
-
-        <li><a href="#restrictions-mgmt">应用限制管理增强</a>
-</li>
-
-        <li><a href="#location-off">位置关闭开关</a>
-</li>
-
-        <li><a href="#custom-provisioning">自定义配置</a>
-</li>
-
-        <li><a href="#multi-wifi-ca">多 Wi-Fi CA 证书</a>
-</li>
-
-        <li><a href="#custom-lock">自定义锁屏消息</a>
-</li>
-
-        <li><a href="#work-connectionservice">工作资料 ConnectionService</a>
-</li>
-
-        <li><a href="#lock-wp">锁定壁纸</a>
-</li>
-
-        <li><a href="#lock-user-icon">锁定壁纸</a>
-</li>
-
-        <li><a href="#health-monitoring">设备运行状况监测</a>
-</li>
-
-      </ol>
-
-    <h2>另请参阅</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK 参考</a>
-</li>
-    </ul>
-  </div>
-</div>
-
-<p>本文介绍了 Android N 中提供的新 Android for Work 功能。
-</p>
-
-<h2 id="qr">QR 码配置</h2>
-
-<p>
-  Android for Work 现在支持使用 QR 码来配置企业负责的设备。
-安装向导现在允许您通过扫描 QR 码来配置设备。
-
-</p>
-
-<h2 id="sec-challenge">工作资料安全性挑战</h2>
-
-<p>
-  个人资料所有者可以要求用户为在工作资料中运行的应用指定安全性挑战。
-系统会在用户尝试打开任何工作应用时显示安全性挑战。
-如果用户成功完成安全性挑战，系统可解锁工作资料并将其解密（如果需要）。
-
-
-</p>
-
-<p>
-  如果个人资料所有者发送一项 {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} Intent，系统会提示用户设置一项安全性挑战。
-个人资料所有者也可以发送一项 <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> Intent 来提示用户设置设备锁定。
-
-
-</p>
-
-<p>
-  个人资料所有者可以选择为工作挑战设置不同于其他设备密码策略的密码策略。
-例如，设备挑战响应的最小长度可以与其它密码要求的长度不同。
-
-个人资料所有者使用常见的 {@link android.app.admin.DevicePolicyManager} 方法来设置挑战策略，如 {@link
-  android.app.admin.DevicePolicyManager#setPasswordQuality
-  setPasswordQuality()} 和 {@link
-  android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-  setPasswordMinimumLength()}。
-
-个人资料所有者还能通过使用由新的 <code>DevicePolicyManager.getParentProfileInstance()</code> 方法返回的 {@link android.app.admin.DevicePolicyManager} 实例来设置设备锁定，
-
-
-此外，个人资料所有者可以使用 {@link android.app.admin.DevicePolicyManager} 类的新 <code>setOrganizationColor()</code> 和 <code>setOrganizationName()</code> 方法来自定义工作挑战的凭据屏幕。
-
-
-
-</p>
-
-<p>
-  有关新方法和常量的详细信息，请参阅 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK 参考</a> 中的 <code>DevicePolicyManager</code> 参考页面。
-
-</p>
-
-<h2 id="suspend">停用应用访问</h2>
-
-<p>
-  设备所有者和个人资料所有者可以通过调用新 <code>DevicePolicyManager.setPackagesSuspended()</code> 方法来临时暂停软件包访问。
-
-所有者可以用同样的方法来重新启用这些软件包。
-</p>
-
-<p>
-  在软件包被暂停期间，它不能启动 Activity ，到软件包的通知会被阻止，而<a href="{@docRoot}guide/components/recents.html">概览屏幕</a>中的应用条目会被隐藏。
-
-  暂停的软件包不会显示在<a href="{@docRoot}guide/components/recents.html">概览屏幕</a>中，并且它们不能显示对话（包括提醒和 Snackbar），
-也不能播放音频或振动设备。
-
-</p>
-
-<p>
-  启动器应对暂停的应用应用一个独特的 UI，以指示应用目前不可用；例如它们可以将应用图标显示为灰色。
-
-启动器可以通过调用新 <code>DevicePolicyManager.getPackageSuspended()</code> 方法来确定应用是否被暂停。
-
-</p>
-
-<h2 id="toggle-work">切换工作模式</h2>
-
-<p>
-  在双个人资料设备上，用户可以打开或关闭工作模式。在工作模式关闭时，托管个人资料会被暂时关闭。
-工作资料应用、后台同步和通知都会被停用，包括个人资料所有者应用。
-
-在工作资料被停用时，系统会显示一个持久的状态图标，以提醒用户他们将无法启动工作应用。
-
-系统启动器会指示工作应用和小工具都将无法访问。
-
-</p>
-
-<h2 id="always-on-vpn">Always-On VPN</h2>
-
-<p>
-  设备所有者和个人资料所有者可以要求工作应用始终通过指定的 VPN 连接到网络。
-如果所有者设置了此要求，设备会在启动时自动开始 VPN。
-
-</p>
-
-<p>
-  所有者可以通过调用新 <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> 方法来要求使用 VPN。
-通过调用新 <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> 方法来确定所有者是否设置了 VPN 要求。
-
-
-</p>
-
-<p>
-  由于 VPN 服务无需应用交互即可由系统直接绑定，因此，VPN 客户端必须针对 Always on VPN 处理新的入口点。
-像以前一样，您可以通过使用与操作 {@link android.net.VpnService android.net.VpnService} 匹配的 Intent 过滤器查找活动的服务。
-
-
-</p>
-
-<p>
-  用户可以使用 <strong>Settings &gt; More &gt; VPN</strong> 屏幕来手动设置实现 {@link
-  android.net.VpnService} 的 Always on VPN 客户端。
-
-</p>
-
-<h2 id="contacts">联系人与工作资料集成</h2>
-
-<p>
-  个人资料所有者可以允许主用户对工作联系人进行本地搜索和目录查找。
-例如，用户可以从他们的个人拨号器或联系人应用访问个人和工作目录联系人（如果他们的个人资料管理员允许）。
-
-
-</p>
-
-<p>
-  利用联系人提供程序的开发者可以使用企业联系人 API 从主用户访问工作资料目录条目（如果策略允许）：
-
-
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  个人资料所有者可以使用以下新方法来控制主用户的工作联系人可见性：
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">远程重新启动</h2>
-
-<p>
-  设备所有者可以远程重新启动设备。有些情况下，部署在公共场所的封装内设备会阻止访问电源按钮。
-如果设备需要重新启动，管理员可以使用新 <code>DevicePolicyManager.reboot()</code> 方法来进行此操作。
-
-
-</p>
-
-<h2 id="disable-roaming">停用数据网络漫游</h2>
-
-<p>
-  设备所有者可以使用新的 {@link
-  android.os.UserManager} 用户限制 <code>DISALLOW_DATA_ROAMING</code> 来停用数据网络漫游。
-</p>
-
-<h2 id="process-logging">企业进程记录</h2>
-
-<p>
-  设备所有者可以通过远程跟踪设备活动来识别可疑活动 ，包括应用启动、ADB Activity 和屏幕解锁。
-进程记录不要求用户同意。
-若要检索记录，设备所有者可以使用 <code>DevicePolicyManager.setSecurityLoggingEnabled()</code> 来启用设备记录。
-
-</p>
-
-<p>
-  API 更改包括：
-</p>
-
-<ul>
-
-  <li>
-    新类 <code>android.app.admin.SecurityLog</code> 和它的方法
-
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">远程错误报告</h2>
-
-<p>
-  设备所有者可以远程触发和检索包含设备状态转储文件的错误报告，这允许对已知事故或受损害的设备进行取证调查。
-
-鉴于错误报告的详细性质，需要经过用户同意。
-
-</p>
-
-<p>
-  Android N 包括以下 API 添加来支持此功能。如需详细信息，请参阅 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK 参考</a>。
-
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">移除客户端证书</h2>
-
-<p>
-  个人资料所有者和设备所有者现在可以通过调用新方法 <code>DevicePolicyManager.removeKeyPair()</code> 来移除通过 {@link android.app.admin.DevicePolicyManager#installKeyPair
-  installKeyPair()} 安装的客户端证书。
-
-
-</p>
-
-<h2 id="grant-cert-on-install">允许访问安装设备上的客户端证书
-</h2>
-
-<p>
-  如果个人资料所有者或设备所有者授予第三方应用管理证书的权限，应用便可授予自身访问其所安装证书的权限，无需所有者进行任何干预。
-
-
-</p>
-
-<p>
-  用于管理证书的现有 API 经过扩展，现包括：
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">系统 UI 策略透明度</h2>
-
-<p>
-  影响用户体验或限制用户设置的策略是向用户完全公开的，个人资料所有者和设备所有者可以将策略归于他们公司的 IT 部门。
-
-除了“Settings”中一贯的“Action not allowed”消息之外，IT 管理员可以通过以下新 {@link android.app.admin.DevicePolicyManager} 方法在设备设置中设置组织特定的支持消息：
-
-
-
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="restrictions-mgmt">应用限制管理增强</h2>
-
-<p>
-  设备或个人资料所有者可以通过新 <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code> 方法启用另一项应用，以管理应用限制。
-
-
-提名的应用可以通过调用 <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code> 来检查是否已被授予此权限。
-
-
-</p>
-
-<p>
-  提名管理应用限制的应用可以为该用户或个人资料内的任何软件包调用 {@link
-  android.app.admin.DevicePolicyManager#setApplicationRestrictions
-  setApplicationRestrictions()} 和 {@link
-  android.app.admin.DevicePolicyManager#getApplicationRestrictions
-  getApplicationRestrictions()}。
-</p>
-
-<h2 id="location-off">位置关闭开关</h2>
-
-<p>
-  用户可以停用工作应用的位置权限，同时仍可继续在个人应用中访问位置信息。
-Location Settings 中的一个单独的位置访问开关允许用户拒绝对工作资料内运行的应用的位置更新或最后位置查询。
-
-
-</p>
-
-<p>
-  顶层位置关闭开关停用对主个人资料和托管个人资料的位置访问权限。
-
-</p>
-
-<h2 id="custom-provisioning">自定义配置</h2>
-
-<p>
-  应用可以用企业颜色和徽标来自定义个人资料所有者和设备所有者配置流程。
-
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    自定义流程颜色。
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    用企业徽标来自定义流程。
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">多 Wi-Fi CA 证书</h2>
-
-<p>
-  个人资料所有者和设备所有者可以为一项指定的 Wi-Fi 配置设置多个 CA 证书。
-如果企业 Wi-Fi 网络针对有相同 SSID 的独立接入点设置了独立 CA，IT 管理员可以使用新 <code>setCaCertificates()</code> 方法将所有相关 CA 包括在 Wi-Fi 配置中。
-
-
-
-</p>
-
-<p>
-  添加的 API 有：
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">自定义锁屏消息</h2>
-
-<p>
-  设备所有者可以提供将显示在锁屏上的所有者信息。
-  该信息的优先级高于用户锁屏消息（如果已设置）。
-新 {@link android.app.admin.DevicePolicyManager} 方法有：
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">工作资料 ConnectionService</h2>
-
-<p>
-  个人资料所有者可以为调用后端（调用帐户）指定一项使用工作特定 {@link android.telecom.ConnectionService} 的工作拨号器应用。
-
-工作拨号器会保持仅限工作的调用记录，并仅依赖于工作联系人。
-无论拨号应用是什么，用户都将获得一致的调用内 UI 体验。
-传入到工作调用帐户的工作调用会与传入到个人调用帐户的个人调用相区别。
-
-
-</p>
-
-<p>
-  拨号器应检查新标记 <code>android.telecom.Call.PROPERTY_WORK_CALL</code>，以确定一项调用是否是工作调用。
-
-如果一项调用是工作调用，拨号器应通过添加工作徽章等方式做如此指示。
-
-</p>
-
-<h2 id="lock-wp">锁定壁纸</h2>
-
-<p>
-  新的用户限制 (<code>DISALLOW_SET_WALLPAPER</code>) 可以阻止用户更改他们的壁纸。
-设备所有者或个人资料所有者仍可以改变壁纸，但只能更改他们控制的用户或个人资料的壁纸。
-
-例如，个人资料所有者不能更改父用户的壁纸，但主个人资料的个人资料所有者或设备所有者却可以。
-
-想要更改壁纸的个人资料所有者或设备所有者应检查他们管理的用户或个人资料是否有壁纸 ({@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}) 以及他们是否被允许更改这个壁纸（通过新方法 <code>WallpaperManager.isWallpaperSettingAllowed()</code>）。
-
-
-
-</p>
-
-<h2 id="lock-user-icon">锁定用户图标</h2>
-
-<p>
-  新的用户限制 (<code>DISALLOW_SET_USER_ICON</code>) 阻止用户更改其用户图标。
-用户的设备所有者或个人资料所有者仍可以更改图标。
-但是个人资料所有者只能更改其控制的个人资料的用户图标。
-
-</p>
-
-<h2 id="health-monitoring">设备运行状况监测</h2>
-
-<p>
-  设备所有者或个人资料所有者可以使用新的 <code>HardwarePropertiesManager</code> 界面来检索有关设备运行状况的信息，如 CPU 或 GPU 温度和 CPU 使用率。
-
-新的监测界面特别适合监测在远程位置运行的无人值守设备。
-
-
-</p>
diff --git a/docs/html-intl/intl/zh-cn/preview/license.jd b/docs/html-intl/intl/zh-cn/preview/license.jd
deleted file mode 100644
index 66f3ed3..0000000
--- a/docs/html-intl/intl/zh-cn/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=许可协议
-
-@jd:body
-
-<p>
-在开始使用 Android SDK Preview 之前，您必须同意下列条款和条件。正如下文所述，请注意：这是 Android SDK 的预览版，可能随时更改，恕不另行通知，您使用此版本的风险由您自行承担。
-Android SDK Preview 并非稳定版本，可能包含会对您的计算机系统、设备和数据造成损害的错误和缺陷。
-</p>
-
-<p>
-本协议是 Android SDK Preview 许可协议（以下称为“许可协议”）。
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. 简介
-
-1.1 Android SDK Preview（在本许可协议中简称为“Preview”，具体包括 Android 系统文件、封装 API 以及Preview 库文件（若可用））依据本许可协议的条款授权您使用。本许可协议在您与 Google 之间就您对“Preview”的使用构成具有法律约束力的合约。
-
-1.2 “Android”是指以 Android 开源项目（项目网址为 http://source.android.com/，其内容会不时更新）名义提供、面向设备的 Android 软件栈。
-
-1.3 “Android 兼容”是指 (i) 符合与 Android 兼容性定义文档（可在 Android 兼容性网站 http://source.android.com/compatibility 上找到，并可能会不时更新）标准的任何 Android 实现；并 (ii) 成功通过 Android 兼容性测试套件 (CTS) 的测试。
-
-1.4“Google”是指 Google Inc.，是一家特拉华州公司，主要营业地位于：1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。
-
-2. 接受许可协议
-
-2.1 要使用“Preview”，您必须先同意本许可协议。如果您不接受本许可协议，则不得使用“Preview”。
-
-2.2 点击接受并/或使用“Preview”，即表示您特此同意本许可协议的条款。
-
-2.3 如果依照美国或其他国家/地区（包括您居住或您使用“Preview”所在的国家/地区）的法律，您被禁止获取“Preview”，则您不得使用“Preview”，也不得接受本许可协议。
-
-2.4 如果您将在贵公司或组织内部使用“Preview”，则您同意代表您的雇主或其他实体接受本许可协议的约束，并且您表示并保证您拥有完全的合法授权令您的雇主或上述实体受本许可协议的约束。如果您不具备必要的授权，则不得代表您的雇主或其他实体接受本许可协议或使用“Preview”。
-
-3. Google “Preview”许可
-
-3.1 Google 依据本许可协议的条款授予您有限的、全球性、免版税、不可转让、非独占性且不可次级许可的“Preview”使用许可，其用途仅限针对 Android 的兼容实现来开发应用。
-
-3.2 您不得使用此“Preview”来开发适用于其他平台（包括 Android 的非兼容实现）的应用或开发其他 SDK。您当然可以随意开发适用于其他平台（包括 Android 的非兼容实现）的应用，前提是不使用此“Preview”来进行此类开发。
-
-3.3 您同意 Google 或第三方拥有“Preview”中存在或与其有关联的全部合法权利、所有权和利益，包括“Preview”中存在的任何知识产权。“知识产权”是指根据专利法、版权法、商业机密法、商标法享有的任何及全部权利，以及其他任何及全部专有权利。Google 保留所有未明确授予您的权利。
-
-3.4 您不得将“Preview”用于本许可协议未明确允许的任何用途。除适用第三方许可所要求的范围外，您不得：(a) 对“Preview”或“Preview”的任何部分进行复制（备份用途除外）、修改、改编、再分发、反编译、逆向工程、反汇编或创建其衍生品；或 (b) 将“Preview”的任何部分加载到移动手持终端或除个人计算机之外的任何其他硬件设备上，将“Preview”的任何部分与其他软件合并，或者发行任何融入“Preview”某一部分的软件或设备。
-
-3.5 对于依据开源软件许可授权的“Preview”组件，其使用、复制和分发仅受该开源软件许可条款的制约，不受本许可协议的约束。您同意在依照被授予的所有权利作为被许可方期间，在遵守此类开源软件许可协议方面始终保持良好的信誉，并避免进行任何可能导致终止、暂停或违反此类权利的行动。
-
-3.6 您同意 Google 所提供“Preview”的形式和性质可随时发生变更，而无需事先通知您，并且未来的“Preview”版本可能会与在之前的“Preview”版本上开发的应用不兼容。您同意 Google 可单方面决定在未事先通知您的情况下全面停止（永久性或暂时性）向您或用户提供“Preview”（或“Preview”内的任何功能）。
-
-3.7 本许可协议内没有任何条款授予您使用 Google 的任何商品名、商标、服务标志、徽标、域名或其他独特品牌特征的权利。
-
-3.8 您同意您不会移除、遮盖或篡改“Preview”上可能贴有或“Preview”内可能包含的任何专有权利声明（包括版权声明和商标声明）。
-
-4. 您对“Preview”的使用
-
-4.1 Google 同意本许可协议中的任何条款均未授予 Google 从您（或您的许可方）处获取您依照本许可协议使用“Preview”开发的任何软件应用中存在或与其相关的权利、所有权或利益，包括这些应用中存在的任何知识产权。
-
-4.2 您同意只出于 (a) 本许可协议和 (b) 相关管辖区域内任何适用法律、法规或公认惯例或准则（包括有关向美国或其他相关国家/地区出口数据或软件或从美国或其他相关国家/地区进口数据或软件的任何法律）所允许的目的而使用“Preview”和编写应用。
-
-4.3 您同意，如果您使用“Preview”开发应用，您将会保护用户的隐私权和合法权利。如果用户向您提供用户名、密码或其他登录信息或个人信息，您必须确保用户知晓这些信息将供您的应用使用，并且您必须为这些用户提供足以满足法律要求的隐私声明和保护。如果您的应用存储由用户提供的个人信息或敏感信息，其存储方式必须安全。如果用户向您提供 Google 帐户信息，您的应用只能在用户允许时出于用户所许可的有限目的使用该信息访问用户的 Google 帐户。
-
-4.4 您同意您不会利用“Preview”从事任何干扰、中断、损坏或以未经授权方式访问 Google 或任何第三方的服务器、网络或其他财产或服务的 Activity（包括应用的开发或分发）。
-
-4.5 您同意您对通过 Android 和/或 Android 应用创建、传输或显示的任何数据、内容或资源以及您的行为所导致的后果（包括 Google 可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.6 您同意您为违反本许可协议、任何适用的第三方合约或服务条款或任何适用法律或法规下的义务以及任何上述违规行为所导致的后果（包括 Google 或任何第三方可能遭受的任何损失或损害）负全责（Google 在上述方面对您或任何第三方不承担任何责任）。
-
-4.7 “Preview”正在开发中，您的测试和反馈是开发过程的重要环节。使用“Preview”，即表示您承认某些功能仍在开发实现之中，您不应期望“Preview”具备稳定版本的全部功能。您同意不使用此“Preview”公开发布或发运任何应用，因为此“Preview”在 Android SDK 正式发行之后将不再受支持。
-
-5. 您的开发者凭据
-
-5.1 您同意，对于 Google 可能向您发放或可能由您自行选择的任何开发者凭据，您有责任保持其机密性，并且您对以您的开发者凭据名义开发的所有应用负全责。
-
-6. 隐私权和信息
-
-6.1 为持续创新和改进“Preview”，Google 可能会从软件收集某些使用统计数据，包括但不限于唯一标识符、关联的 IP 地址、软件的版本号以及有关软件使用了“Preview”中哪些工具和/或服务及其使用方式的信息。在收集任何上述信息之前，“Preview”都会通知您并征求您的同意。如果您拒绝同意，我们将不会收集这些信息。
-
-6.2 我们会对收集的数据进行汇总调查，以便改进“Preview”，并会按照 Google 的隐私政策（网址为 http://www.google.com/policies/privacy/）维护数据。
-
-7. 第三方应用
-
-7.1 如果您使用“Preview”运行由第三方开发或访问由第三方提供的数据、内容或资源的应用，您同意 Google 对这些应用、数据、内容或资源不承担任何责任。您理解，您通过上述第三方应用可能访问到的所有数据、内容或资源由其提供者负全责，Google 对您因使用或访问其中任何第三方应用、数据、内容或资源而遭受的任何损失或损害不承担任何责任。
-
-7.2 您应知晓，通过此类第三方应用提供给您的数据、内容和资源可能受提供商（或代表他们的其他人员或公司）拥有的知识产权的保护。除非相关所有者明确给予许可，否则您不得修改、出租、租赁、借出、出售、分发这些数据、内容或资源（的全部或部分），或以其为基础创建衍生品。
-
-7.3 您承认您对上述第三方应用、数据、内容或资源的使用可能受到您与相关第三方之间单独订立的条款的制约。
-
-8. 使用 Google API
-
-8.1 Google API
-
-8.1.1 如果您使用任何 API 从 Google 检索数据，即表示您承认这些数据可能受到 Google 或这些数据提供方（或代表他们的其他人员或公司）拥有的知识产权的保护。您对任何上述 API 的使用可能受到附加服务条款的制约。除非相关服务条款允许，否则您不得修改、出租、租赁、借出、出售、分发这些数据（全部或部分），或以其为基础创建衍生品。
-
-8.1.2 如果您使用任何 API 从 Google 检索用户数据，即表示您承认并同意您只有在征得用户明确同意时才会检索数据，并且只能在用户允许时出于用户许可的有限目的检索数据。
-
-9. 终止许可协议
-
-9.1 本许可协议将持续有效，直至您或 Google 按以下规定终止本协议。
-
-9.2 如果您想终止本许可协议，可通过停止使用“Preview”以及任何相关开发者凭据予以终止。
-
-9.3 Google 有权在向您作出通知后，有理由或无理由地随时终止与您订立的这份许可协议。
-
-9.4 本许可协议将在下列情况下自动终止，而无需另行通知或采取其他行动，以先符合条件者为准：
-(A) Google 在您居住或使用服务所在国家/地区停止向用户提供“Preview”或“Preview”的某些部分；
-(B) Google 发行 Android SDK 的最终版本。
-
-9.5 在本许可协议终止时，本许可协议中向您授予的许可将终止，您应立即完全停止使用“Preview”，并且第 10、11、12 和 14 节的条款将无限期继续存在。
-
-10.免责声明
-
-10.1 您明确理解并同意，您使用“Preview”的风险将由您自行承担，并且“Preview”是按“原样”和“现状”提供，Google 不提供任何类型的担保。
-
-10.2 您对“Preview”的使用以及通过使用“Preview”下载或以其他方式获得的任何材料由您自行决定，风险自负，并且对于因此类使用而对您的计算机系统或其他设备造成的任何损害或数据损失由您单方面负责。在不对上文所述予以限制的条件下，您了解“Preview”并非稳定版本，可能存在将导致重大损害的错误、缺陷和安全漏洞，包括无法挽回地完全无法使用您的计算机系统或其他设备。
-
-10.3 Google 进一步明确拒绝任何类型的所有担保和条件，无论明示或暗示，包括但不限于有关适销性、特定用途适用性以及非侵权的暗示担保和条件。
-
-11. 有限责任
-
-11.1 您明确理解并同意，对于您可能遭遇的任何直接、间接、附带、特殊、继发或惩罚性损害（包括任何数据损失），Google 及其子公司和附属公司以及其许可方在任何责任理论下对您概不承担任何责任，无论 Google 或其代表是否已被告知或是否本应知晓发生任何上述损失的可能性。
-
-12. 赔偿
-
-12.1 您同意，在法律所允许的最大限度内，为 Google、其附属公司及其各自的董事、高管、员工和代理商提供辩护，使其免于因下列情况引起或产生的任何及所有索赔、诉讼、起诉或诉讼程序以及任何及所有损失、债务、损害、成本和费用（包括合理的律师费用）而承担责任或遭受损害：(a) 您对“Preview”的使用；(b) 您在“Preview”上开发的任何应用侵犯任何人的任何知识产权或诽谤任何人或侵犯其公开权或隐私权；以及 (c) 您的任何行为有悖于本许可协议
-
-13. 许可协议的更改
-
-13.1 Google 可能会在分发新版本“Preview”时对许可协议做出更改。做出这些更改后，Google 将在提供“Preview”的网站上公布新版本的许可协议。
-
-14. 一般法律条款
-
-14.1 本许可协议构成您与 Google 之间的完整法律协议，管辖您对“Preview”（不包括 Google 可能依据另外的书面协议向您提供的任何服务）的使用，并完全取代您之前与 Google 之间签订的、与“Preview”有关的任何协议。
-
-14.2 您同意，如果 Google 未行使或未强制执行本许可协议包含的任何法定权利或救济（或 Google 在任何适用法律下享有的相关利益），不得视为 Google 正式放弃这些权利，Google 仍可获得这些权利或救济。
-
-14.3 如果任何拥有管辖权的法院将本许可协议的任何条款裁定为无效，则该条款将从本许可协议中删除，而不会影响本许可协议的其余部分。本许可协议的其余条款将继续有效且可强制执行。
-
-14.4 您承认并同意，Google 集团旗下的每一家公司都将成为本许可协议的第三方受益人，并且此类其他公司将有权直接强制执行和依赖本许可协议中任何授予其利益（或支持其权利）的条款。除此之外，任何其他人员或公司均不得成为本许可协议的第三方受益人。
-
-14.5 出口限制。“Preview”受美国出口法律和法规的制约。您必须遵守适用于“Preview”的所有国内和国际出口法律和法规。这些法律包括目的地、最终用户和最终用途方面的限制。
-
-14.6 未经 Google 事先书面批准，您不得擅自转让或转移本许可协议，未经此类批准而试图进行的任何转让均为无效。未经 Google 事先书面批准，您不得委托您依据本许可协议所应承担的责任或义务。
-
-14.7 本许可协议以及您与 Google 依据本许可协议而建立的关系受加利福尼亚州法律管辖，而无论其是否与其他法律条款冲突。您与 Google 同意服从位于加利福尼亚州圣克拉拉县内法院的专属司法管辖权，以解决本许可协议引起的任何法律事务。尽管有上述规定，您同意仍允许 Google 在任何管辖区域申请禁令救济（或同等类型的紧急法律救济）。
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-cn/preview/overview.jd b/docs/html-intl/intl/zh-cn/preview/overview.jd
deleted file mode 100644
index 8bbd120..0000000
--- a/docs/html-intl/intl/zh-cn/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=计划概览
-page.metaDescription=让您的应用做好迎接 Android 的下一版本的准备。
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  欢迎使用 <strong>Android N Developer Preview</strong>，此程序将为您提供针对 Android 的下一版本测试和优化应用所需的所有功能。它是免费的，您只需下载 N Developer Preview 工具即可立即使用。
-
-
-
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        硬件和模拟器映像
-      </h5>
-
-      <p>
-        在各种设备或模拟器上运行并测试应用。
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        最新的平台代码
-      </h5>
-
-      <p>
-        我们将在 Preview 期间每月提供更新，以便您针对最新的平台变更测试您的应用。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        优先处理开发者问题
-      </h5>
-
-      <p>
-        在最初的几周里，我们将优先处理开发者报告的问题，所以请尽快测试并提供反馈。
-
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        新行为和新功能
-      </h5>
-
-      <p>
-        请尽早开始支持新平台行为并使用新功能进行开发。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        通过 OTA 推送更新
-      </h5>
-
-      <p>
-        通过 Android Beta 计划，所有支持的设备都可以实现无缝 OTA 更新。无需刷机。
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        反馈和支持
-      </h5>
-
-      <p>
-        使用 <a href="{@docRoot}preview/bug">Issue Tracker</a> 向我们报告问题并提供反馈。
-与
-<a href="{@docRoot}preview/dev-community">N&nbsp;开发者社区</a>中的其他开发者建立联系。
-
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">时间表和更新</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  N Developer Preview 从 2016 年 3 月 9 日开始使用，到向 AOSP 和 OEM 公开发布最终 Android N 时停止使用，预计将于 2016 年第三季度发布最终版本。
-
-</p>
-
-<p>
-  在关键的开发阶段的里程碑，我们将为您的测试设备和测试环境提供更新。
-一般每月（间隔 4 到 6 周）会提供一次更新。
-里程碑列表如下。
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong>（初始版本，alpha）</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong>（增量更新，alpha）</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong>（增量更新，beta）</li>
-  <li><strong>Preview 4</strong>（最终 API 和官方 SDK，在 Play 中发布）</li>
-  <li><strong>Preview 5</strong>（接近最终版本系统映像，用于最终测试）</li>
-  <li>向 AOSP 和生态系统发布<strong>最终版本</strong></li>
-</ul>
-
-<p>
-  每次的更新包括 SDK 工具、Preview 系统映像、模拟器、参考文档和 API 差异。
-
-</p>
-
-<p>
-  <strong>前三个 Preview 里程碑</strong>提供<strong>早期测试和开发环境</strong>，帮助您发现当前应用中的兼容性问题，并针对新平台计划必要的迁移或功能工作。
-
-
-这是向我们提供功能和 API 以及文件兼容性问题反馈的优先期 &mdash; 请使用 <a href="{@docRoot}preview/bug">Issue Tracker</a> 进行反馈。
-
-
-在更新期间，API 可能会有变更。
-</p>
-
-<p>
-  在<strong>Preview 4 和 5</strong> 中，您将可以访问<strong>最终版的 N API 和 SDK</strong> 进行开发，以及用于测试系统行为和功能的接近最终版的系统映像。
-
-此时 Android N 会提供标准的 API 级别。
-您可以对旧版应用进行最终的兼容性测试，并优化使用 N API 或功能的新代码。
-
-</p>
-
-<p>
-  此外，从 Preview 4 开始，您将可以面向运行正式 API 级别的 Android N 的<strong>设备发布应用</strong>，例如选择加入 Android Beta 计划的消费者设备。您可以先在 Google Play 的 alpha 和 beta 渠道发布应用，通过 Android Beta 消费者对应用进行测试，然后在商店大范围推广。
-
-
-
-
-
-</p>
-
-<p>
-  如果您在 Android N 中进行测试和开发，我们郑重建议您随着 Preview 更新的发布，<strong>将开发环境保持为相应的最新版本</strong>。
-
-为了方便更新，您可以在 Android Beta 计划中注册您的测试设备，这样就可以在每个里程碑实现<strong>空中下载 (OTA) 更新</strong>。
-
-此外，您还将获得可手动下载并刷入的系统映像。
-
-</p>
-
-<p>
-  当有 Preview 更新可用时，我们将通过 <a href="http://android-developers.blogspot.com/">Android 开发者博客</a>、此网站以及 <a href="{@docRoot}preview/dev-community">Android N 开发者社区</a>通知您。
-
-
-</p>
-
-
-<h2 id="preview_tools">N Developer Preview 包含的内容</h2>
-
-<p>
-  N Developer Preview 包括您在各种使用不同屏幕尺寸、网络技术、CPU/GPU 芯片组和硬件架构的设备中测试现有应用所需的所有功能。
-
-
-</p>
-
-<h3 id="sdk_tools">SDK 工具</h3>
-
-<p>您可通过 <a href="{@docRoot}studio/intro/update.html">Android Studio</a> 中的 SDK 管理器下载这些组件：</p>
-
-<ul>
-  <li> N Developer Preview <strong>SDK 和工具</strong>
-  <li> N Developer Preview <strong>模拟器系统映像</strong>（32 位和 64 位）
-  <li> 适用于 Android TV 的 N Developer Preview<strong>模拟器系统映像</strong>（32 位）
-  <li> N Developer Preview 支持库（用于新应用模板）
-</ul>
-
-<p>
-  我们将根据需要在每个里程碑为这些开发工具提供更新。
-</p>
-
-<h3 id="hardware_system_images">硬件系统映像</h3>
-
-<p>
-  N Developer Preview 包含 Nexus 以及可用于在物理设备上进行测试和开发的其他硬件系统映像。如需了解硬件映像的完整列表，请参阅<a href="{@docRoot}preview/download.html">设备映像</a>页面。
-
-
-</p>
-
-<p>
-  我们将在每个里程碑为这些设备提供更新的系统映像。您可以手动下载更新的系统映像，并刷入测试设备（如需要，可多次刷入）。
-
-这尤其适合需要多次重刷设备的自动化测试环境。
-
-
-</p>
-
-<p class="note"><strong>注</strong>：
-  <strong>手动刷入设备将不会像在去年的 Preview 中一样获得 OTA 更新。</strong>
-今年，您可以通过在 Android Beta 计划中注册设备获得 OTA &mdash; 有关详情请参阅下文。
-
-</p>
-
-<h3 id="android_beta">通过 Android Beta 计划获得 OTA 更新</h3>
-
-<p>
-  Android N 的一项新功能是空中下载 (OTA) 更新计划，该功能可以将 Android N 最新的Preview 更新直接发送到注册该计划的设备。该计划是免费服务，只要您拥有支持的设备并将其注册到 Google 帐户，就可以使用该服务。
-
-
-
-</p>
-
-<p>
-  如需注册该计划，请访问 <a href="https://g.co/androidbeta">Android Beta 计划</a>网站。您将可以看到您的帐户中所有可以注册 Android Beta 的设备。
-
-
-
-</p>
-
-<ol>
-  <li> 选择用于接收 Android N 更新的设备
-  <li> 点击 Enroll，查看并同意服务条款，然后点击 OK。
-</ol>
-
-<p>
-  注册完成后，您的设备将很快收到更新。多数情况下，切换到 Android N 不需要重置所有数据，但建议您在注册设备前对重要数据进行备份，以免丢失。
-
-
-
-</p>
-
-<p>
-  在设备收到更新后，建议您尽快下载并安装更新，以便在系统 UI、行为、API 和功能中及时同步最新的变更。
-
-
-</p>
-
-<p>
-  在 Developer Preview 结束运行时，您的注册设备将收到官方 Android N 版本的更新。
-
-</p>
-
-<p>
-  您可以在 Android Beta 网站上随时注销注册 Android Beta 计划的设备。在注销前，请务必备份设备上的数据。
-
-
-</p>
-
-  <p class="note"><strong>注</strong>：
-  注销后，<strong>您的设备将恢复到最新版本 Android 6.0 Marshmallow 的出厂设置</strong>（不一定是您注册设备前安装的版本）。
-
-
-为确保全新安装，您设备中的数据将被擦除，包括联系人、消息和照片等。
-
-
-</p>
-
-<h3 id="documentation_and_sample_code">文档和示例代码</h3>
-
-<p>
-  Developer Preview 网站上提供的以下文档资源有助于您了解 Android&nbsp;N：
-
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Android N 开发设置</a>，提供入门指南的分步说明。
-
-</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">行为变更</a>，带您了解主要测试领域。
-</li>
-  <li> 新 API 文档，包括 <a href="{@docRoot}preview/api-overview.html">API 概览</a>、可下载的 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 参考资料</a>以及有关主要功能（例如多窗口支持、受限通知、多区域设置支持等）的详细开发者指南。
-
-
-
-  <li> <a href="{@docRoot}preview/samples.html">示例代码</a>，演示如何支持权限和其他新功能。
-
-  <li> N Developer Preview 当前版本的<a href="{@docRoot}preview/support.html#release-notes">版本说明</a>，包括变更说明和差异报告。
-
-
-</ul>
-
-<h4 id="reference">可下载的 API 参考资料</h4>
-
-<p>
-  在 Preview 更新初期，您可以下载最新的 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Android N 平台 API 参考资料</a>，作为单独的 Zip 存档。下载的参考资料还包含差异报告，可帮助您识别相对 API 23 和上一次更新 API 的变更。
-
-
-
-
-</p>
-
-<p>
-  在确定最终版本 Android N API 并指定正式 API 级别后，我们将在网站 <a href="https://developer.android.com">https://developer.android.com</a> 上提供 API 参考资料。
-
-</p>
-
-<h3 id="support_resources">
-  支持资源
-</h3>
-
-<p>
-  在 N Developer Preview 中测试和开发时，请使用以下渠道报告问题和提供反馈。
-
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue Tracker</a>是您的<strong>主要反馈渠道。</strong>
-您可通过 Issue Tracker 报告错误、性能问题和一般反馈。
-您还可检查 <a href="{@docRoot}preview/bugs">已知问题</a>并找出解决方法步骤。
-
-我们将对您的问题进行分类并发送到 Android 工程团队以供审查，且会为您提供进度更新通知。
- </li>
-  <li> <a href="{@docRoot}preview/dev-community">Android N 开发者社区</a>是一个 Google+ 社区。在此社区中，您可<strong>与其他使用 Android N 的开发者建立联系</strong>。您可以分享观察结果或想法，或找到 Android N 问题的解决方法。我们将管理社区，并根据需要提供解答和指导。
-
-
-
-</li>
-</ul>
-
-<h3 id="targeting">锁定目标、Preview API 和发布</h3>
-
-<p>
-  N Developer Preview 提供的系统和 Android 库仅面向开发，<strong>不具备标准的 API 级别</strong>。如果您想通过拒绝兼容性行为测试您的应用（强烈推荐此做法），则可将应用的 <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> 设置为 <code>“N”</code>，从而锁定 Android N 的预览版本。
-
-
-
-
-
-</p>
-
-<p>
-  Android N Developer Preview 提供<strong>预览版 API</strong> 功能
-&mdash; 在最终的 SDK 发布之前，这些 API 都不是正式的 API。目前，最终的 SDK 计划于 2016 年第三季度发布。
-这意味着一段时期内，特别是该计划的最初几周内，
-<strong>API 可能会出现细微变化</strong>。
-我们会通过 Android N Developer Preview 的每次更新，为您提供一份变更摘要。
-
-</p>
-
-<p class="note">
-  <strong>注</strong>：虽然 Preview API 可能会更改，但基本系统行为仍保持稳定，可以立即用于测试。
-
-
-</p>
-
-<p>
-  Google Play <strong>禁止发布面向 N Developer Preview 的应用</strong>。
-当 Android N 最终版本 SDK 可用时，您可以锁定官方 Android N API 级别，并通过 alpha 和 beta 发布渠道将应用发布至 Google Play。
-
-与此同时，如果您需要将针对 Android N 的应用分发给测试者，则可通过电子邮件或从您的网站直接下载实现这一点。
-
-
-</p>
-
-<p>
-  在向 AOSP 和 OEM 全面发布 Android N 后（计划在 2016 年第三季度发布），您将可以在 Google Play 的公开发布渠道发布面向 Android N 的应用。
-
-
-</p>
-
-
-<h2 id="how_to_get_started">入门指南</h2>
-
-<p>
-  在使用 Android N 测试应用前，请执行以下操作：
-</p>
-
-<ol>
-  <li> 查看 <a href="{@docRoot}preview/api-overview.html">API 概览</a>和<a href="{@docRoot}preview/behavior-changes.html">行为变更</a>，大致了解新功能及其如何影响您的应用。
-
-尤其是，您需要了解新的<a href="{@docRoot}preview/features/notification-updates.html">通知</a>功能和<a href="{@docRoot}preview/features/multi-window.html">多窗口支持</a>。
-
-</li>
-  <li> 根据<a href="{@docRoot}preview/setup-sdk.html">设置 Preview SDK</a> 和配置测试设备的说明设置您的环境。
-</li>
-  <li> 根据<a href="https://developers.google.com/android/nexus/images">刷入说明</a>，对设备刷入最新的 Android N 系统映像。
- </li>
-  <li> 查阅 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 参考资料</a>和 <a href="{@docRoot}preview/samples.html">Android N 示例</a>，更深入地了解新 API 功能以及如何在应用中使用这些功能。
-
-
-  <li> 加入 <a href="{@docRoot}preview/dev-community">Android N 开发者社区</a>，获取最新资讯，并与使用新平台的其他开发者建立联系。
-
-</li>
-</ol>
-
-<p>
-  感谢您加入 Android N Developer Preview 计划！
-</p>
diff --git a/docs/html-intl/intl/zh-cn/preview/preview_toc.cs b/docs/html-intl/intl/zh-cn/preview/preview_toc.cs
deleted file mode 100644
index 9e852c5..0000000
--- a/docs/html-intl/intl/zh-cn/preview/preview_toc.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽">计划概览</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/support.html">支持与版本说明</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK">设置 Preview</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試">在设备上测试</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">行为变更</a></div>
-      <ul>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">后台优化</a></li>
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">语言和区域设置</a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="&lt;?cs var:toroot ?&gt;preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers </a></div>
-      <ul>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援">多窗口支持</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">通知</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/data-saver.html">Data Saver</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製">TV 录制</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定">网络安全配置</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API">ICU4J 支持</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能">Java 8 语言功能</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/afw.html">Android for Work 更新</a></li>
-
-        <li><a href="&lt;?cs var:toroot ?&gt;preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取">作用域目录访问</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例">示例</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="&lt;?cs var:toroot ?&gt;preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議">许可协议</a></div>
-  </li>
-
-</ul> 
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-cn/preview/setup-sdk.jd b/docs/html-intl/intl/zh-cn/preview/setup-sdk.jd
deleted file mode 100644
index c629cd9..0000000
--- a/docs/html-intl/intl/zh-cn/preview/setup-sdk.jd
+++ /dev/null
@@ -1,187 +0,0 @@
-page.title=设置 Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">获取 Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">获取 Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">参考文档</a>
-    </ol>
-  </li>
-  <li><a href="#java8">获取 Java 8 JDK</a></li>
-  <li><a href="#create-update">更新或创建一个项目</a></li>
-  <li><a href="#next">后续步骤</a></li>
-</ol>
-  </div>
-</div>
-
-<p>若要开发适用于 Android N Preview 的应用，您需要对您的开发者环境进行一些更新，如本页所述。
-</p>
-
-<p>若只是在 Android N 系统映像上测试应用的兼容性，请按照<a href="{@docRoot}preview/download.html">在 Android N 设备上进行测试</a>指南进行操作。
-</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">获取 Android Studio 2.1</h2>
-
-<p>Android N 平台为 <a href="{@docRoot}preview/j8-jack.html">Java 8 语言功能</a>添加支持，该功能需要一个名为 Jack 的新编译。
-当前仅在 Android Studio 2.1 中支持最新的 Jack 版本。因此，如果您想要使用 Java 8 语言功能，则必须使用 Android Studio 2.1 构建应用。
-
-
-或者，您不需要使用 Jack 编译器，但仍需要更新至 JDK 8 以便使用 Android N 平台进行编译，如下所述。
-
-</p>
-
-<p>如果您已经安装了 Android Studio，请通过点击 <strong>Help &gt; Check for Update</strong>（在 Mac 上，点击 <strong>Android Studio &gt; Check for Updates</strong>）来确保您安装的是 Android Studio 2.1 或更高版本。
-
-</p>
-
-<p>如果您尚未安装，请在此处<a href="{@docRoot}studio/">下载 Android Studio 2.1</a>。
-</p>
-
-
-<h2 id="get-sdk">获取 N Preview SDK</h2>
-
-<p>开始使用 Android N API 进行开发时，您需要按如下所示在 Android Studio 中安装 Android N Preview SDK：
-</p>
-
-<ol>
-  <li>点击 <strong>Tools &gt;Android &gt;
-SDK Manager</strong> 来打开 SDK 管理器。</li>
-
-  <li>在 <strong>SDK Platforms</strong> 选项卡中选中 <strong>Android N Preview</strong> 复选框。
-</li>
-
-  <li>点击 <strong>SDK Tools</strong> 选项卡，然后选中
- <strong>Android SDK Build Tools</strong>、<strong>Android SDK
- Platform-Tools</strong> 和 <strong>Android SDK Tools</strong> 复选框。
-
-  </li>
-
-  <li>点击 <strong>OK</strong>，然后接受需要安装的所有软件包的许可协议。
-
-  </li>
-</ol>
-
-<h3 id="docs-dl">获取 N Preview 参考文档</h3>
-
-<p>
-  有关 Android N API 的详细信息可在 N Preview 参考文档中获取，您可以从下表下载该文档。此软件包包含一个离线的删节版 Android 开发者网站，并包含更新的 API 参考（适用于 Android N API），以及一个 API 差异报告。
-
-
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">文档</th>
-    <th scope="col">校验和</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
-    <td width="100%">
-      MD5:19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
-      SHA-1:9224bd4445cd7f653c4c294d362ccb195a2101e7
-    </td>
-  </tr>
-<table>
-
-
-
-<h2 id="java8">获取 Java 8 JDK</h2>
-
-<p>若要使用 Android N 平台编译您的应用，并在 Android Studio 2.1 中使用一些工具，您需要安装 Java 8 Developer Kit (JDK 8)。
-因此，如果您还没有最新版本，请立即下载 JDK 8 。
-</p>
-
-<p>然后，按如下所示在 Android Studio 中设置 JDK 版本：</p>
-
-<ol>
-  <li>在 Android Studio 中打开 Android 项目，然后通过选择 <strong>File &gt; Project Structure</strong> 打开“Project Structure”对话框。（或者，您可以通过选择 <strong>File &gt; Other Settings &gt; Default Project Structure</strong> 设置所有项目的默认值。）
-
-
-
-
-   </li>
-   <li>在对话框的左侧面板中，点击 <strong>SDK Location</strong>。
-   </li>
-   <li>在 <strong>JDK Location</strong> 字段中，输入 Java 8 JDK 的位置（点击右侧的按钮可浏览您的文件），然后点击 <strong>OK</strong>。
-
-
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">更新或创建一个项目</h2>
-
-<p>
-  若要使用 Android N API，则必须正确配置您的项目。
-</p>
-
-<p>如果您计划使用 Java 8 语言功能，您还应阅读 <a href="{@docRoot}preview/j8-jack.html">Java 8 语言功能</a>，以更详细的了解支持的 Java 8 功能，以及如何使用 Jack 编译器配置项目。
-
-
-</p>
-
-
-<h3 id="update">更新现有项目</h3>
-
-<p>打开模块的 <code>build.gradle</code> 文件，并按如下所示更新值：
-
-
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc3'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">创建新项目</h3>
-
-
-<p>若要使用 Android N Preview SDK 创建新的开发项目：</p>
-
-<ol>
-  <li>点击 <strong>File &gt; New Project</strong>。按照步骤进行操作，直到您到达“Target Android Devices”页面。
-
-  </li>
-  <li>在此页面上，选择 <strong>Phone and Tablet</strong> 选项。</li>
-  <li>在 <strong>Phone and Tablet</strong> 选项下，从 <strong>Minimum SDK</strong> 选项列表中，选择 <strong>N: Android API 23, N Preview (Preview)</strong>。
-
-</li>
-</ol>
-
-
-<h2 id="next">后续步骤</h2>
-
-<ul>
-  <li>按照<a href="{@docRoot}preview/download.html">在 Android N 设备上进行测试</a>指南进行操作。</li>
-  <li>通过<a href="{@docRoot}preview/behavior-changes.html">行为变更</a>以及 <a href="{@docRoot}preview/api-overview.html">Android N API 和功能</a>了解更多有关 Android N 平台的信息。
-
-
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/zh-cn/preview/support.jd b/docs/html-intl/intl/zh-cn/preview/support.jd
deleted file mode 100644
index 353a71d..0000000
--- a/docs/html-intl/intl/zh-cn/preview/support.jd
+++ /dev/null
@@ -1,1188 +0,0 @@
-page.title=支持和版本说明
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>本文内容</h2>
-
-<ul>
-  <li><a href="#dp3">Developer Preview 3</a>
-    <ul>
-      <li><a href="#general">一般公告</a></li>
-      <li><a href="#new">DP3 的新功能</a></li>
-      <li><a href="#ki">已知问题</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  当您使用 Android N Developer Preview 进行开发和测试时，您可借助两个主要支持渠道：
-请在 <a href="https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a> 提交有关设备、系统和 Google App 错误的错误。
-对于其他应用问题，请直接联系开发者。
-
-</p>
-
-<p>若要与其他参与 Android N 的开发者讨论问题或想法，请加入 <a href="{@docRoot}preview/dev-community">Developer Preview Google+ 社区</a>。
-</p>
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日期：2016 年 5 月<br>
-        构建：NPD35K<br>
-        模拟器支持：x86 &amp; ARM（32/64 位）<br>
-        Google Play 服务：8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="general">一般公告</h3>
-
-<p>
-  Developer Preview 版本适用于<strong>应用开发者和其他早期试用者</strong>，可用于日常使用、开发或兼容性测试。
-
-请注意关于版本的一般注意事项：
-
-</p>
-
-<ul>
-  <li>这个版本可能会在支持设备上出现不同的<strong>稳定性问题</strong>。
-用户可能会遇到系统不稳定，如内核错误和崩溃。
-
-  </li>
-
-  <li>有些应用<strong>可能无法在新的平台版本上如预期运行。</strong>
-这其中包括 Google 应用和其他应用。
-  </li>
-
-  <li>Developer Preview 3 已在以下设备上经过<strong>兼容性测试套件 (CTS) 批准</strong>：
-Nexus 5X、Nexus 6、Nexus 6P 和 Pixel C。依赖 CTS 批准构建的应用应能在这些设备上正常运行(例如 Android Pay)。
-
-
-  </li>
-
-  <li>Developer Preview 3 <strong>适用于所有支持设备：</strong>
-Nexus 5X、Nexus 6、Nexus 6P、Nexus 9、Nexus Player、Pixel C、General Mobile 4G (Android One) 以及 Sony Xperia Z3 (D6603 和
-  D6653 型号)。
-
-
-  </li>
-</ul>
-
-
-<h3 id="new">DP3 的新功能</h3>
-
-<h4 id="">面向 Android 的 VR 模式</h4>
-
-<p>
-  Android N 为新的 VR 模式增加了平台支持和优化，以使开发者能为用户打造高质量移动 VR 体验。
-增加了一些性能增强特性，包括允许 VR 应用访问某个专属的 CPU 核心。
-
-在您的应用中，您可以充分利用到专为 VR 设计的智能头部跟踪和立体声通知功能。
-最重要的是，Android N 的图形延时非常低。
-
-</p>
-
-<p>
-  如需更多信息，请参阅<a href="https://developers.google.com/vr/android/">面向 Android 的Google VR SDK</a>。
-</p>
-
-<h4 id="">持续性能模式</h4>
-
-<p>
-  为解决这些限制，Android N 包括了<a href="{@docRoot}preview/api-overview.html#sustained_performance_api">持续性能模式</a> 支持，帮助原始设备制造商 (OEM) 提供关于长期运行应用的设备性能能力的提示。
-
-应用开发者随后可以使用这些提示来根据可预测的一致设备性能水平调整长期应用。
-
-应用开发者只能在 Nexus 6P 设备的 Developer Preview 上尝试这项新的 API。
-
-</p>
-
-<h4>多进程 WebView</h4>
-
-<p>
-  从 Android N 中的版本 51 开始，WebView 将开发者选项“多进程 WebView”被启用时，在一个单独的沙盒进程中运行网页内容。
-
-WebView 团队正在寻求关于 N 中的兼容性和运行时性能的反馈，并随后将在未来 Android 版本中启用多进程 WebView。
-
-在这个版本中，可预期启动时间回归、总内存使用和软件渲染性能。
-
-</p>
-
-<p>
-  如果您在多进程模式中遇到意外问题，请告诉我们。
-请通过<a href="https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">提交错误</a>来联系 WebView 团队。
-
-</p>
-
-<h4 id="">键盘快捷键辅助工具</h4>
-
-<p>
-  在 Android N 中，用户可以按 <code>Meta+/</code> 触发<strong>键盘快捷键</strong>屏幕，它会显示系统和对焦的应用中可用的所有快捷键。
-
-开发者可以添加自己的快捷键，或者从他们的应用触发快捷键屏幕。
-请参阅<a href="{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">键盘快捷键辅助工具</a>以了解详细信息。
-
-</p>
-
-<h4 id="">FrameMetrics API</h4>
-
-<p>
-  DP3 引入了一项新的 <a href="{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>，它通过公开流式传输 Pub/Sub API 来传递应用的当前窗口帧计时信息，允许应用监测其 UI 渲染性能。<code>FrameMetricsListener</code> 可用于从更高的粒度衡量生产中的交互级 UI 性能，无需 USB 连接。
-
-
-
-
-
-</p>
-
-<h4 id="api-changes">功能和 API 更改</h4>
-
-<dl>
-  <dt>
-    启动器快捷键和启动器快捷键 API
-  </dt>
-
-  <dd>
-    我们已经决定将这项功能推迟到未来的 Android 版本中。我们计划从下一个 Developer Preview 开始，从公开 Android N API 中移除启动器快捷键 API（ShortcutManager 等）。
-
-
-  </dd>
-
-  <dt>
-    WebView Javascript 在页面加载之前运行
-  </dt>
-
-  <dd>
-    从面向 Android N 的应用开始，JavaScript 上下文会在加载新页面时重置。
-目前，新 {@link android.webkit.WebView} 实例中加载的第一个页面会继承上下文。
-
-    想要在 {@link
-    android.webkit.WebView} 中注入 Javascript 的开发者应在页面开始加载后执行脚本。
-
-  </dd>
-
-  <dt>
-    不安全起点上的 WebView 地理定位
-  </dt>
-
-  <dd>
-    从面向 Android N 的应用开始，地理定位 API 将仅在安全的起点（通过 HTTPS）上被允许。
-此政策的目的是在用户使用不安全连接时保护他们的私人信息。
-
-  </dd>
-
-  <dt>
-    Data Saver
-  </dt>
-
-  <dd>
-    从 Developer Preview 3 开始，应用可以使用 Intent 来显示系统对话框，使用户能直接向 Data Saver 豁免白名单中添加应用。
-
-请参阅 <a href="{@docRoot}preview/api-overview.html#data_saver">Data Saver 文档</a>以了解详细信息。
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#number-blocking">号码屏蔽</a>
-  </dt>
-
-  <dd>
-    如果未经授权的用户试图屏蔽或取消屏蔽一个号码，操作会即时失败，并返回 {@link java.lang.SecurityException}。
-（之前，操作曾引发 {@link java.lang.UnsupportedOperationException} ）
-
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">快速设置图块 API</a>
-
-  </dt>
-
-  <dd>
-    系统现在使用 Activity 的元数据来决定图块模式。
-    （之前平铺模式是由 <code>TileService.onTileAdded()</code> 的返回值决定。）
-如需了解详细信息，请参阅可下载的 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 参考</a> 中的
-<code>TileService.META_DATA_ACTIVE_TILE</code>。
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">修复开发者报告的问题</h4>
-
-<p>
-  开发者报告的许多问题都已得到修复，包括：
-</p>
-
-<ul>
-  <li>在 1 首歌后蓝牙音频播放中断（错误 <a href="https://code.google.com/p/android/issues/detail?id=206889">206889</a>）
-  </li>
-
-  <li>Pixel C 不断崩溃（错误 <a href="https://code.google.com/p/android/issues/detail?id=206962">206962</a>）
-  </li>
-
-  <li>时钟和 Toast 通知问题（错误 <a href="https://code.google.com/p/android/issues/detail?id=203094">203094</a>）
-  </li>
-
-  <li>当通过 USB C 电缆连接到 MacBook Pro 时，Pixel C 重新启动（错误 <a href="https://code.google.com/p/android/issues/detail?id=205432">205432</a>）
-
-  </li>
-
-  <li>日历偏移一天（错误 <a href="https://code.google.com/p/android/issues/detail?id=203002">203002</a>）
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo 返回无效数据（错误 <a href="https://code.google.com/p/android/issues/detail?id=203022">203022</a>）
-  </li>
-
-  <li>Nexus 6p，蓝牙一直断开（错误 <a href="https://code.google.com/p/android/issues/detail?id=208062">208062</a>）
-  </li>
-</ul>
-
-<p>如需已修复问题的完整清单，请参阅 <a href="https://goo.gl/6uCKtf">Issue Tracker</a>。
-</p>
-
-<h3 id="ki">已知问题</h3>
-
-<h4>无障碍功能</h4>
-
-<ul>
-  <li>将间距被设置为近最大水平时，无法侦听 TTS 输出。
-  </li>
-
-  <li>当用户添加工作资料时可能会使无障碍功能和设置中断。
-无障碍状态会在用户下一次触及相关设置时恢复。
-
-  </li>
-</ul>
-
-<h4>相机</h4>
-
-<ul>
-  <li>相机应用表现出了不稳定性；它可能会在各种情况下崩溃，例如当在多窗口模式下启动时。
-
-  </li>
-
-  <li>在全景模式下连按快门可能导致相机应用崩溃。
-
-  </li>
-</ul>
-
-<h4>音频</h4>
-<ul>
-  <li>平台音频播放器问题阻止某些应用程序的正常运行。
-例如，Skype 和其他应用程序受到此问题的影响。
-  </li>
-</ul>
-
-<h4>连接</h4>
-
-
-<ul>
-  <li>当蓝牙低功耗 (BLE) 外围角色设备公布一项服务和一项 BLE 中心角色设备相连时，外围角色设备很快会断开连接。
-
-
-  </li>
-
-  <li>当屏幕关闭时 Wi-Fi 连接可能丢失。
-  </li>
-
-  <li>RFCOMM 连接不稳定，可能导致数据损坏和悬挂的连接。
-
-  </li>
-
-  <li>活动网络状态（{@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} 和 {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}）可能会在一些受限制的后台情况下返回错误的值。
-
-  </li>
-</ul>
-
-
-<h4>
-  启动器
-</h4>
-
-<ul>
-  <li>默认启动器的所有应用托盘都可能在循环关闭/开启屏幕后无响应。
-返回到主屏幕并重新启动所有应用程序托盘可以解决这个问题。
-
-  </li>
-</ul>
-
-<h4>
-  键盘
-</h4>
-
-<ul>
-  <li>在将一个运行 Android 6.0 或更早版本的设备更新到 N Developer Preview 时，Google 键盘不会保留首选项数据，如最近的表情符号和声音设置。
-
-
-  </li>
-
-  <li>Google Indic 托管键盘可能不稳定。
-  </li>
-
-  <li>当在密码字段中输入文本时，用户可以选择俄罗斯语作为输入语言，但键盘仍将为英语。
-这可以防止用户输入俄罗斯语的密码。
-
-  </li>
-</ul>
-
-<h4>
-  区域设置和语言
-</h4>
-
-<ul>
-  <li>当使用从右到左 (RTL) 的语言区域时，系统可能会在重新启动设备后意外切换到从左到右 (LTR) 表示。
-
-  </li>
-</ul>
-
-<h4>媒体</h4>
-
-<ul>
-  <li>Nexus 9 和 Nexus Player 上的媒体播放可能会不稳定，包括播放高清视频出现问题。
-
-  </li>
-</ul>
-
-<h4>
-  多窗口模式
-</h4>
-
-<ul>
-  <li>当在多窗口模式下改变屏幕方向时，设备可能会冻结。
-  </li>
-
-  <li>目前有几个应用程序出现了多窗口模式问题：
-    <ul>
-      <li>当把“Settings &gt; Display &gt; Screen brightness”对接到多窗口时，系统 UI 可能崩溃。
-
-      </li>
-
-      <li>在多窗口模式下启动时，相机应用可能会崩溃。
-      </li>
-
-      <li>在多窗口模式下启动时，YouTube 可能会崩溃。若要修复此问题，您可以在“Storage &gt; Apps &gt; YouTube”中清除 YouTube 应用数据。
-
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play 服务
-</h4>
-
-<ul>
-  <li>当用户选择一个使用 ASCII 范围外的字母和数字的系统语言区域时，通过 Google Play 服务使用 Google Cast 的应用可能会不稳定。
-
-
-  </li>
-</ul>
-
-<h4>
-  Android for Work 和 Google Apps 设备规范
-</h4>
-
-<ul>
-  <li>当用户在“设备规范状态”屏幕固定的情况下解锁设备时，设备规范应用可能会崩溃。
-
-  </li>
-
-  <li>在启用了基于文件的加密的情况下，在设置了工作资料并随后关闭工作后，用户必须解锁主个人资料屏幕锁定，以便能再次访问工作应用。
-
-
-  </li>
-
-  <li>在移除安全模式锁定并在多窗口下打开工作应用/个人应用时，设备重新启动。
-
-  </li>
-
-  <li>设置 DISALLOW_VPN_CONFIG 会导致设备规范客户端设置的 Always-on-VPN 显示同意对话框。
-
-  </li>
-
-  <li>在 VPN 以 Always-on-VPN 模式连接之前，流量不会锁定。
-  </li>
-</ul>
-
-<h4>
-  外部存储
-</h4>
-
-<ul>
-  <li>当用户将应用从内部存储移动到可采用的外部存储（可能包括 SD 卡和通过 USB 连接的设备）时，应用可能会变得不稳定。
-
-
-  </li>
-</ul>
-
-<h4>
-  Google Play 中的屏幕缩放和多 APK
-</h4>
-
-<ul>
-  <li>在运行 Android N 的设备上，Google Play 服务 9.0.83 错误地报告当前屏幕密度，而不是报告稳定屏幕密度。
-当屏幕缩放在这些设备上启用时，可能会导致 Google Play 选择一个为更小的屏幕设计的多 APK 应用版本。
-
-此问题已在下一版 Google Play 服务中得到修复，并将包含在以后的 Developer Preview 版本中。
-
-
-  </li>
-
-  <li>在运行 Android N 的设备上，Google Play 服务 9.0.83 版目前会报告 Vulkan 支持，但不会报告 Vulkan 版本。
-这可能会导致 Google Play 在有较高版本支持的设备上选择为较低的 Vulkan 支持而设计的多 APK 应用版本。
-
-目前，Google Play Store 不接受使用 Vulkan 版本定位的应用上传。
-这一支持将被添加到未来的 Google Play Store 中，并会在下一版 Google Play 服务（将包括在稍后的 Developer Preview 版本中）中得到修复，任何使用 Google Play 服务 9.0.83 版本的设备都将继续获得面向基本 Vulkan 支持的应用版本。
-
-
-
-
-  </li>
-</ul>
-
-<h4 id="">通知</h4>
-
-<ul>
-  <li>MessagingStyle 不显示发件人为“null”（自己）的通知。
-  </li>
-</ul>
-
-<h4 id="">开发者工具</h4>
-
-<ul>
-  <li>
-    <code>adb</code> 有时可能在使用 JDWP 调试时断开连接。
-  </li>
-</ul>
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-
-
-
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日期：2016 年 4 月<br>
-        构建：NPC91K、NPC91O<br>
-        模拟器支持：x86 &amp; ARM（32/64 位）<br>
-        Google Play 服务：8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">DP2 的新功能</h3>
-
-<ul>
-  <li>Vulkan（新的 3D 渲染 API）的平台支持，提供明晰、低开销的 GPU（图形处理单元）控制功能，同时大大提升绘图调用密集型应用的性能。
-
-有关详情，请参阅
-<a href="{@docRoot}ndk/guides/graphics/index.html"> 文档</a>。
-  </li>
-
-  <li>新人物表情符号，带肤色支持和新的 Unicode 9 字形。
-  在键盘在调色板中建立对它们的支持之前，肤色和新的表情符号将不会显示。
-开发者不需要进行任何操作便能使用这些新的表情符号，除非应用使用的是非系统字体。
-IME 开发者需要整合对新表情符号的支持。
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">启动器快捷键 API</a>：
-应用可以使用 <code>ShortcutManager</code> 来向启动器发送应用内起点的快捷键。
-
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">多窗口</a>：
-    您现在可以为 Activity 单独指定最小高度和最小宽度。
-此外，一些 API 名称已略有改变。
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">修复开发者报告的问题</h4>
-
-<p>
-  开发者报告的许多问题都已得到修复，包括：
-</p>
-
-<ul>
-  <li>无法连接到隐藏的 SSID 或非广播 Wi-Fi。（错误 <a href="https://code.google.com/p/android/issues/detail?id=203116">203116</a>）
-  </li>
-
-  <li>麦克风在整个活动期间保持静音状态。（错误 <a href="https://code.google.com/p/android/issues/detail?id=205922">205922</a>）
-  </li>
-
-  <li>更改多窗口焦点会暂停 YouTube。（错误 <a href="https://code.google.com/p/android/issues/detail?id=203424">203424</a>）
-  </li>
-
-  <li>直接回复可能关闭打开的活动。（错误 <a href="https://code.google.com/p/android/issues/detail?id=204411">204411</a>）
-  </li>
-
-  <li>各种稳定性修复。
-  </li>
-</ul>
-
-<h3 id="dp2-general">一般公告</h3>
-
-<p>
-  Developer Preview 版本仅针对<strong>应用开发者</strong>，仅适用于兼容性测试和早期开发。
-
-  请注意关于版本的一般注意事项：
-</p>
-
-<ul>
-
-  <li>开发工具组件和支持库已更新为 DP2 版本。
-确保为在开发 DP2 之前更新您的预览开发环境。
-如需有关设置您的开发环境的说明，请参阅 <a href="{@docRoot}preview/setup-sdk.html">设置 Preview</a>
-
-
-  </li>
-
-  <li>此版本在所有设备上都出现了不同的稳定性和性能问题，<strong>不适合在手机或平板电脑上的日常使用</strong>，特别是对于非开发人员。
-
-
-  </li>
-
-  <li>在此版本中，电池寿命和性能尚未优化：
-
-
-    <ul>
-      <li>系统和应用<strong>性能已知会周期性地减缓/卡顿</strong>，设备可能偶尔无响应。
-这些问题可能随着长时间使用而变得更迫切。
-
-      </li>
-
-      <li>电池寿命可能在此版本的屏幕开启和屏幕关闭用例里出现倒退。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>有些<strong>应用可能无法在 Developer Preview 2 上正常</strong>运行。这其中包括 Google 应用和其他应用。
-
-  </li>
-
-  <li>这个早期版本未经<strong>兼容性测试套件 (CTS) 批准</strong>。
-依赖 CTS 批准架构的应用无法运行（例如 Android Pay）。
-
-  </li>
-
-  <li>此预览版支持以下设备：Nexus 5X、Nexus 6、 Nexus 6P、Nexus 9、and Pixel C 以及 General Mobile 4G (Android One)。
-
-即将推出 Nexus Player 支持。
-  </li>
-
-
-  <li><a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> 已被更新，以处理 DP1 和 DP2 之间的 API 变更。
-
-  </li>
-</ul>
-
-<h3 id="dp2-ki">已知问题</h3>
-
-<h4>性能和电池</h4>
-
-<ul>
-  <li>系统和应用<strong>性能已知会周期性地减缓/卡顿</strong>，设备可能偶尔无响应。
-这些问题可能随着长时间使用而变得更迫切。
-
-  </li>
-</ul>
-
-<h4>Google 帐户</h4>
-
-<ul>
-  <li>在有些情况下，<code>AccountManagerService</code> 问题可能会阻止登录 Google 帐户。
-
-  </li>
-</ul>
-
-<h4>系统更新</h4>
-
-<ul>
-  <li>设备可能会在更新到 DP2 后立即重新启动。
-  </li>
-</ul>
-
-<h4>无障碍功能</h4>
-
-<ul>
-  <li>当间距被设置为近最大水平时，文本语音转换 (TTS) 输出侦听出现问题。
-
-  </li>
-</ul>
-
-<h4>蓝牙</h4>
-
-<ul>
-  <li>蓝牙低功耗 (LE) GATT 特征使用错误的写入类型，并且将不会被发送到远程设备。
-因此，举例来说，有些健身设备将无法运行。
-
-  </li>
-</ul>
-
-<h4>设置向导</h4>
-
-<ul>
-  <li>安装向导中的在新设备（或刚刚重置的设备）上从“Your Google Account”恢复数据的选项不可用。
-您必须在安装向导中选择“another Android device”来从现有设备恢复数据，或者将其设置为新设备。
-
-
-  </li>
-</ul>
-
-<h4>原始设备制造商 (OEM) 解锁</h4>
-
-<ul>
-  <li>在有些设备上，当运行 DP2 时，“Developer Options”中的 <strong>Enable OEM unlock</strong> 会变成灰色。
-<br>
-  <strong>解决方法：</strong>访问 <a href="https://www.google.com/android/beta" class="external-link">www.google.com/android/beta</a> 来选择加入 Android Beta 计划（如果您尚未选择加入）。
-
-然后，选择退出并接受降级 OTA。
-选择退出会导致设备降级到 Android 6.0。现在，您应该可以在“Developer Options”中选择 <strong>Enable OEM unlock</strong>。
-
-当您降级设备时，个人数据将被删除；但是不管怎样，解锁引导装载程序仍会删除这些数据。
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>工作安全性挑战
-    <ul>
-      <li>在迁移到 N 后，或在用户创建工作资料之后，工作资料无法在密钥库中创建秘钥，直到用户更改了模式、PIN 码或密码，或设置了一项工作挑战为止。
-
-
-      </li>
-
-      <li>在直接启动模式下，对设备应用密码限制会导致工作资料被解锁，即使设备是锁定的。
-
-      这会使工作资料变得可以访问，即使它应受到设备锁屏的保护。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>Always on VPN
-    <ul>
-      <li>如果 Always On VPN 模式已打开，但 VPN 却不可用，这表示应用是通过普通网络链接。
-如果应用没有可用的 VPN 连接，这表示应用处于脱机状态。
-
-      </li>
-
-      <li>在 Always On 模式下，当设备以直接启动模式重新启动后，VPN 连接未建立，即使是在用户解锁安全锁屏之后。
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>暂停软件包
-    <ul>
-      <li>设备管理员可以暂停关键系统软件包，这可能会导致意外的行为，如拨打电话，即使此时显示了“Telephone disabled”对话框。
-
-
-      </li>
-    </ul>
-  </li>
-
-  <li>其他
-    <ul>
-      <li>如果当用户插入物理媒体（如 SD 卡）时 {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} 被设置为 true，设置应用会在启动时崩溃。
-
-      </li>
-
-      <li>工作资料中的第一次检查需要几分钟时间完成。
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>将连结数和非零之间的差值作为第一个连结数会导致 {@code vkCreateGraphicsPipeline()} 失败。
-</li>
-      <li>Vulkan 在预期纹理坐标上表现出错误的采样行为。</li>
-      <li>在 multithreadCmdBuffer 示例中，{@code vkCmdClearColorImage()} 会在运行 N-DP2 驱动程序时崩溃。
-</li>
-      <li>{@code vkGetPhysicalDeviceFormatProperties()} 的返回值并未给 {@code VkFormatProperties::linearTilingFeatures} 设置一个值，这会导致取 0 值作为结果。
-
-</li>
-      <li>Vulkan 浮点帧缓冲附件未能正确处理。</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>SPIR-V 着色器可能触发驱动程序断言。</li>
-      <li>一些管线配置可能导致 {@code vkCreateGraphicsPipeline()} 崩溃。
-</li>
-  </ul>
-</ul>
-
-<h4>设备特定问题</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    当设备从插槽 1 切换到插槽2 SIM 时，数据连接失败。
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    无法切换语音搜索“Always On”选项。
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    除 HDR+ 照片之外的纵向相机照片被损坏。
-
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    Nexus Player 上的 Netflix 高清内容播放可能失败。
-  </dd>
-
-  <dd>
-    任何依赖于动态视频分辨率变化的应用都可能会在 Nexus Player 上失败。
-
-  </dd>
-
-  <dd>
-    任何使用 VP9 视频编解码器的应用都可能会在 Nexus Player 上失败。
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>日期：2016 年 3 月<br>
-        构建：NPC56P、NPC56R 已更新：NPC56W、NPC56X<br>
-        模拟器支持：x86 &amp; ARM（32/64 位）<br>
-        Google Play 服务：8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">一般公告</h3>
-
-<p>
-  Developer Preview 版本仅针对应用开发者，仅适用于兼容性测试和早期开发。
-请注意关于版本的一般注意事项：
-
-</p>
-<ul>
-  <li>此版本在所有设备上都出现了不同的稳定性和性能问题，<em>不适合在手机或平板电脑上的日常使用</em>，特别是对于非开发人员。
-
-
-  </li>
-
-  <li>系统和应用<strong>性能已知会周期性地减缓/卡顿</strong>，设备可能偶尔无响应。
-这些问题可能随着长时间使用而变得更迫切。
-
-  </li>
-
-  <li>电池寿命可能在此版本的屏幕开启和屏幕关闭用例里出现倒退。
-
-  </li>
-
-  <li>有些应用可能无法在 Developer Preview 1 上正常运行。这其中包括 Google 应用和其他应用。
-
-  </li>
-
-  <li>这个早期版本未经兼容性测试套件 (CTS) 批准。依赖 CTS 批准架构的应用将无法运行（例如 Android Pay）。
-
-  </li>
-
-  <li>此预览版支持以下设备：Nexus 5X、Nexus 6、 Nexus 6P、Nexus 9、Nexus Player、and Pixel C 以及 General Mobile 4G (Android One)。
-
-
-  </li>
-</ul>
-
-<h3 id="dp1-platform">平台问题</h3>
-
-<h4>性能和电池</h4>
-
-<ul>
-  <li>系统和应用性能已知会<strong>周期性地减缓/卡顿</strong>，设备可能偶尔无响应。
-这些问题可能随着长时间使用而变得更迫切。
-
-  </li>
-
-  <li>电池寿命可能在此版本的屏幕开启和屏幕关闭用例里出现倒退。
-
-  </li>
-</ul>
-<h4 id="dialer">拨号器</h4>
-
-<ul>
-  <li>拨号器应用不支持直接启动。这将稍后在 N Developer Preview 中解决。
-
-  </li>
-
-  <li>语音邮件播放无效。
-  </li>
-</ul>
-
-<h4>麦克风</h4>
-
-<ul>
-   <li>系统可能在多个应用中和重新启动时错误地保留麦克风静音状态。如果您在一项应用中将麦克风静音，并且此状态保留，打开有任何麦克风静音控件的应用，取消静音麦克风。</li>
-</ul>
-
-<h4 id="ui">系统 UI</h4>
-
-<ul>
-  <li>系统 UI 中的一些新增或修改字符串未被翻译成所有语言。
-
-  </li>
-
-  <li>概览 UI 仍在开发中，并且随时可能更改。例如，我们打算移除当用户切换应用时显示的计时器。
-
-
-  </li>
-
-  <li>设置控件和切换可能很慢，或出现无响应。
-  </li>
-
-  <li>通知的视觉设计可能随时更改。
-  </li>
-
-  <li>在 Gmail 应用中，包括在捆绑通知中的电子邮件直接存档无法正常运行。
-
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>工作安全性挑战
-    <ul>
-      <li>在迁移到 N 后，或在用户创建工作资料之后，工作资料无法在密钥库中创建秘钥，直到用户更改了模式、PIN 码或密码，或设置了一项工作挑战为止。
-
-
-      </li>
-
-      <li>在直接启动模式下，对设备应用密码限制会导致工作资料被解锁，即使设备是锁定的。
-
-      这会使工作资料变得可以访问，即使它应受到设备锁屏的保护。
-
-      </li>
-
-      <li>当用户输入了错误的密码和 PIN 码后，系统不会显示任何信息性消息；相反，它仅清除了输入字段。
-
-此问题不影响模式或指纹输入。
-      </li>
-
-      <li>在平板电脑上，后台显示的工作挑战小得不成比例。
-
-      </li>
-
-      <li>与 N Developer Preview 绑定的 <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">Google Apps 设备规范</a>版本尚不支持工作资料安全性挑战功能。
-
-
-        开发者应使用 <a href="https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> 来测试此功能。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>Always on VPN
-    <ul>
-      <li>如果 Always On VPN 模式开启，但 VPN 却不可用，这表示应用未被指定为通过普通网络连接的 Always On 政策例外。
-
-除非应用被指定为 Always On 政策例外，否则当没有可用的 VPN 连接时，应用会处于脱机状态。
-
-        <ul>
-          <li>在 Always On 模式下，当设备以直接启动模式重新启动后，VPN 连接未建立，即使是在用户解锁安全锁屏之后。
-
-
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>改进的联系人
-    <ul>
-      <li>蓝牙 PBAP/MAP 不显示工作联系人的来电显示。
-下一个 Preview 版本将解决此问题。
-      </li>
-    </ul>
-  </li>
-
-  <li>工作模式
-    <ul>
-      <li>Google 即时桌面不显示工作模式是否开启。
-Google 即时桌面也不显示应用暂停状态。
-      </li>
-
-      <li>在用户关闭和开启工作模式后，系统不再显示工作资料应用小工具，如日历。
-
-      </li>
-    </ul>
-  </li>
-
-  <li>暂停软件包
-  </li>
-
-  <li>设备管理员可以暂停关键系统软件包，这可能会导致意外的行为，如拨打电话，即使此时显示了“Telephone disabled”对话框。
-
-
-  </li>
-
-  <li>其他
-    <ul>
-      <li>如果当用户插入物理媒体（如 SD 卡）时 {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} 被设置为 true，设置应用会在启动时崩溃。
-
-      </li>
-
-      <li>当用户卸载然后重新安装一项应用后，{@code DPM.setPackagesSuspended} 状态不会持续。
-在卸载/重新安装后，应用应保持暂停，或者暂停的应用应无法卸载。
-
-
-      </li>
-
-      <li>工作资料中的第一次检查需要几分钟时间完成。
-这可能导致设备需要超过正常的时间才能在 Play EMM API 中可见。
-
-      </li>
-
-      <li>工作资料应用的通知不对安装在个人资料中的通知侦听器可见。
-其结果是，系统不能按预期显示通知。
-
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >键盘</h4>
-
-<ul>
-  <li>键盘和 Android 设备之间的蓝牙配对可能不稳定。
-  </li>
-</ul>
-
-<h4 >视频</h4>
-
-<ul>
-<li>视频播放可能滞后并显示中断。</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>Wi-Fi 发生了一些重构，可能改变 API 极端状况下的行为。
-具体来说，尝试连接特定网络，或尝试断开网络连接的应用应重新测试。
-
-  </li>
-
-  <li>旧版 DHCP 客户端已经从平台中移除。平台支持的唯一 DHCP 客户端是在 M 中引入的 DHCP 客户端。
-
-  </li>
-</ul>
-
-<h4>直接启动</h4>
-
-<ul>
-  <li>NFC 在第一次解锁前将无法运行。
-    <ul>
-      <li>当启用了蓝牙的电话重新启动时，蓝牙不会自动开启。
-您必须手动重新启用蓝牙。
-      </li>
-
-      <li>在某些情况下，默认铃声不在有来电和短信响起。
-此行为将在下一个 N Preview 版本中修复，但括一项例外（和解决方法）。
-
-      </li>
-
-      <li>在未刚刚清除数据的设备（自设置为直接启动模式以来至少已启动一次的设备），默认的通知铃声不响。
-
-用户可以通过从设置中手动选择铃声来解决此问题。
-
-      </li>
-
-      <li>在运行 N Developer Preview 版本的设备上，直接启动会默认启用。
-若要启用用于测试和开发的直接启动，前往“Developer Options”，然后点击“Convert to File Encryption”。
-
-      在这个开发者预览版本中，这要求恢复出厂设置为重新分配，并将您的设备格式重定为基于文件的加密。
-
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Android TV 画中画</h4>
-
-<ul>
-  <li>Recents UI 中的 PIP 集成并不全面，并且随时可能更改。
-
-    <ul>
-      <li>PIP 窗口的动画不顺畅。Preview 未来版本将改善这一点。
-
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">Preview 未来版本将改善 PIP 的视觉设计和布局调整。
-
-  </li>
-</ul>
-
-<h4>错误报告</h4>
-
-<ul>
-  <li>错误报告并不总是能成功完成（作为一种解决方法，有时它们仍然可以通过内部存储空间内的文档提供程序访问。
-
-
-  </li>
-</ul>
-
-<h4>分屏多窗口</h4>
-
-<ul>
-  <li>当进入分屏模式时，应用可能会发生崩溃和意外的 UI 行为。
-有些应用必须由应用开发者修复。
-
-  </li>
-
-  <li>如果一个应用面向的是 N 之前的 Android 平台版本，应用可能无法运行，分屏 Toast 通知可能会多次显示。
-
-  </li>
-
-  <li>在使用有固定屏幕方向的应用的同事长按 Overview 按钮可能导致意外应用行为。
-
-  </li>
-
-  <li>在调整大小时应用可能会闪烁。
-  </li>
-
-  <li>动画尚未最后确定。
-  </li>
-</ul>
-
-<h4>输入方法</h4>
-
-<ul>
-  <li>当<b>使用系统语言</b>时 Google 键盘意外变回通用 Google 键盘，但 Google 键盘不支持系统语言首选项中选定的任何语言。
-
-它应恢复为 American English。
-
-    <p>
-      您可以通过添加至少一种 Google 键盘支持的语言来解决此问题。
-
-    </p>
-  </li>
-</ul>
-
-<h4>无障碍功能</h4>
-
-<ul>
-  <li>话语提示显示的功能问题包括可能导致系统崩溃或缺少话语提示语音反馈的通知、快速设置图块和多窗口显示。
-
-下一个 Preview 版本将解决这些问题。
-
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">特定于设备的说明和问题</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>在这一版的 Preview 中，Nexus Player 预计会出现视频播放、应用兼容性和稳定性问题。
-
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>多窗口调整大小可能会导致崩溃。</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Nexus 9 设备可能无法在通过 Android Beta 计划获得空中下载 (OTA) 更新后启动。
-要恢复此问题，您可以尝试手动安装 OTA 映像。
-如需了解详细信息，请参阅<a href="{@docRoot}preview/download-ota.html">应用设备 OTA 映像 </a>。
-
-</li>
-</ul>
-
diff --git a/docs/html-intl/intl/zh-cn/preview/features/direct-boot.jd b/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/zh-cn/preview/features/direct-boot.jd
rename to docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
index 306a7a4..20f8b57 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>本文内容</h2>
   <ol>
     <li><a href="#run">请求在直接启动时运行</a></li>
diff --git a/docs/html-intl/intl/zh-cn/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
similarity index 91%
rename from docs/html-intl/intl/zh-cn/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
index 4ff5f36..83d50b4 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
@@ -8,8 +8,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>本文内容</h2>
   <ol>
     <li><a href="#accessing">访问外部存储目录</a></li>
@@ -75,8 +75,8 @@
 <p>系统尝试授予对外部目录的访问权限，并使用一个简化的 UI 向用户确认访问权限（如果需要）：
 </p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>图 1.</strong> 一个请求访问 Pictures 目录的应用。
 </p>
 
@@ -142,8 +142,8 @@
 如果用户拒绝了一项请求，而应用再次请求访问，UI 会显示一个 <b>Don't ask again</b> 复选框：
 </p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>图 1.</strong> 应用第二次请求访问可移动介质。
 </p>
 
diff --git a/docs/html-intl/intl/zh-cn/preview/features/security-config.jd b/docs/html-intl/intl/zh-cn/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/zh-cn/preview/features/security-config.jd
rename to docs/html-intl/intl/zh-cn/training/articles/security-config.jd
index e029a03..19e29b3 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/security-config.jd
+++ b/docs/html-intl/intl/zh-cn/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>本文内容</h2>
 <ol>
diff --git a/docs/html-intl/intl/zh-cn/preview/features/data-saver.jd b/docs/html-intl/intl/zh-cn/training/basics/network-ops/data-saver.jd
similarity index 99%
rename from docs/html-intl/intl/zh-cn/preview/features/data-saver.jd
rename to docs/html-intl/intl/zh-cn/training/basics/network-ops/data-saver.jd
index 203e8b1..4e3ede1 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/data-saver.jd
+++ b/docs/html-intl/intl/zh-cn/training/basics/network-ops/data-saver.jd
@@ -4,8 +4,8 @@
 page.image=images/cards/card-nyc_2x.jpg
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>
       本文内容
     </h2>
@@ -231,4 +231,4 @@
     从白名单中移除指定软件包 UID，以阻止当 Data Saver 启用时后台按流量计费的流量消耗。
 
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/zh-cn/preview/features/picture-in-picture.jd b/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
similarity index 97%
rename from docs/html-intl/intl/zh-cn/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
index 27606a9..6cfa815 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>本文内容</h2>
 <ol>
@@ -59,7 +59,7 @@
 
 用户还可以通过“最近使用记录”关闭 PIP 窗口。</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>图 1.</strong> 用户在主屏幕上浏览内容时屏幕角落窗口播放画中画视频。
 
 </p>
@@ -116,7 +116,7 @@
 <p>在媒体控制栏上添加 PIP 按钮可以方便用户在控制视频播放的同时切换到 PIP 模式。
 </p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>图 1.</strong> 媒体控制栏上的画中画按钮。
 </p>
 
diff --git a/docs/html-intl/intl/zh-cn/preview/features/tv-recording-api.jd b/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/zh-cn/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
index 2dec87d..754e065 100644
--- a/docs/html-intl/intl/zh-cn/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>本文内容</h2>
   <ol>
     <li><a href="#supporting">指示支持录制</a></li>
diff --git a/docs/html-intl/intl/zh-tw/preview/behavior-changes.jd b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-changes.jd
similarity index 97%
rename from docs/html-intl/intl/zh-tw/preview/behavior-changes.jd
rename to docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-changes.jd
index fb1c1db..71569a3 100644
--- a/docs/html-intl/intl/zh-tw/preview/behavior-changes.jd
+++ b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-changes.jd
@@ -6,8 +6,8 @@
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>此文件內容</h2>
 
@@ -74,7 +74,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png" alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>圖 1.</strong> 休眠如何套用第一層級的系統活動限制以延長電池使用時間的示意圖。
 
@@ -93,7 +93,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png" alt="" id="figure2" />
 <p class="img-caption">
   <strong>圖 2.</strong> 休眠如何在裝置靜置不動一段時間之後套用第二層級的系統活動限制的示意圖。
 
@@ -229,10 +229,10 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
diff --git a/docs/html-intl/intl/zh-tw/preview/samples.jd b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-samples.jd
similarity index 74%
rename from docs/html-intl/intl/zh-tw/preview/samples.jd
rename to docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-samples.jd
index 265c0ff..0cb83b6 100644
--- a/docs/html-intl/intl/zh-tw/preview/samples.jd
+++ b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0-samples.jd
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">多視窗 Playground</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
 <p>
   此範例示範如何在您的應用程式中發揮多視窗使用者介面的功能。
 
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">使用中通知</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   這是現有的範例，它會顯示使用 NotificationCompat 傳送通知的簡單服務。來自使用者的每個未閱讀交談都會以個別通知方式傳送。
 
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">簡訊服務</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   這是現有的範例，它示範如何使用 NotificationManager 告知使用者應用程式目前顯示的通知數目。
 
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">直接開機</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   此範例示範如何在裝置加密的儲存空間 (裝置開機後即一律可用) 中儲存及存取資料。
 
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">限定範圍目錄存取</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   此範例示範如何讀取及寫入特定目錄的資料，同時要求較少的權限。
 
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">在 GitHub 上取得</a>
 
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html-intl/intl/zh-tw/preview/api-overview.jd b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0.jd
similarity index 97%
rename from docs/html-intl/intl/zh-tw/preview/api-overview.jd
rename to docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0.jd
index e5fdf8d..2e73e4b 100644
--- a/docs/html-intl/intl/zh-tw/preview/api-overview.jd
+++ b/docs/html-intl/intl/zh-tw/about/versions/nougat/android-7.0.jd
@@ -7,8 +7,8 @@
 
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>主要開發人員功能</h2>
   <ol>
       <ul style="list-style-type:none;">
@@ -70,7 +70,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
 <p class="img-caption">
   <strong>圖 1.</strong> 在分割畫面模式中執行的應用程式。
 </p>
@@ -126,15 +126,15 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
 </div>
 
 
@@ -261,7 +261,7 @@
 <h2 id="data_saver">Data Saver</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>圖 4.</strong> [設定] 中的 Data Saver。
@@ -296,7 +296,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>圖 5.</strong> 通知欄中的快速設定磚。
diff --git a/docs/html-intl/intl/zh-tw/preview/index.jd b/docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd
similarity index 100%
rename from docs/html-intl/intl/zh-tw/preview/index.jd
rename to docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd
diff --git a/docs/html-intl/intl/zh-tw/design/patterns/notifications.jd b/docs/html-intl/intl/zh-tw/design/patterns/notifications.jd
deleted file mode 100644
index 3e3f59c..0000000
--- a/docs/html-intl/intl/zh-tw/design/patterns/notifications.jd
+++ /dev/null
@@ -1,872 +0,0 @@
-page.title=通知
-page.tags="notifications","design","L"
-@jd:body
-
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>開發人員文件</h3>
-    <p>通知使用者</p>
-  </div>
-</a>
-
-<a class="notice-designers" href="notifications_k.html">
-  <div>
-    <h3>Android 4.4 及較早版本中的通知</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>影片</h3>
-    <p>DevBytes：Android L 開發者預覽版中的通知</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>通知系統可以隨時知會使用者有關應用程式中的相關事件與及時事件，例如來自朋友的新聊天訊息。您可以將通知視為一種事件發生時警示使用者的新聞管道，或是在使用者沒注意時，記錄事件的日誌 &mdash; 並會視情況跨所有 Android 裝置且同步處理。
-
-
-
-
-
-</p>
-
-<h4 id="New"><strong>Android 5.0 新功能</strong></h4>
-
-<p>在 Android 5.0 中，通知會透過結構化、視覺化和功能化的效果接收重要更新：
-</p>
-
-<ul>
-  <li>通知已經有視覺方面的變更，與新的材料設計風格一致。
-</li>
-  <li> 現在可在裝置的鎖定螢幕上提供通知，而敏感內容仍可隱藏於其背後。
-
-</li>
-  <li>當裝置於使用中收到高優先順序的通知時，會使用稱為預告 (heads-up) 通知的新格式。
-</li>
-  <li>雲端同步化通知：關閉您其中一部 Android 裝置的通知，隨之也會在其他裝置上關閉此通知。
-
-</li>
-</ul>
-
-<p class="note"><strong>注意：</strong>此版本 Android 中的通知設計和先前版本大相徑庭。
-
-如需有關先前版本通知的設計資訊，請參閱
-<a href="./notifications_k.html">Android 4.4 及較早版本中的通知</a>。</p>
-
-<h2 id="Anatomy">通知的詳細分析</h2>
-
-<p>本節會重溫通知的基礎功能，以及其如何可在不同類型裝置上出現。
-</p>
-
-<h3 id="BaseLayout">基礎版面配置</h3>
-
-<p>至少，所有通知都必須包含一個基礎版面配置，它包含：</p>
-
-<ul>
-  <li> 通知的<strong>圖示</strong>。該圖示代表原始應用程式。如果應用程式會產生一種以上的通知類型，則圖示也有可能表示通知類型。
-
-
-</li>
-  <li> 一個通知<strong>標題</strong>和額外<strong>文字</strong>。
-</li>
-  <li> 一個<strong>時間戳記</strong>。</li>
-</ul>
-
-<p>針對先前平台版本，使用 {@link android.app.Notification.Builder Notification.Builder}
-所建立的通知其外觀與運作方式和在 Android 5.0
-中的一樣，只是在系統為您處理的方式上有一點樣式上的變更。
-如需更多有關 Android 先前版本通知的詳細資訊，請參閱
-<a href="./notifications_k.html">Android 4.4 及較早版本中的通知</a>。
-</p></p>
-
-
-    <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      手持裝置通知的基礎版面配置 (左)，以及穿戴裝置上的相同通知 (右)，都帶有使用者相片及一個通知圖示
-
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">擴充的版面配置</h3>
-
-
-<p>您可以選擇到底要讓您應用程式的通知提供多詳細的資料。
-通知可以顯示訊息的前幾行，也可以顯示較大的影像預覽。
-此額外資訊可提供使用者更多內容，而且 &mdash; 在某些情況下 &mdash; 可讓使用者讀取完整訊息。
-
-
-使用者可以捏合縮放或執行單手指滑動，在精簡的版面配置與擴充的版面配置間切換。
-
-
- 對於單一事件通知，Android 提供三個擴充版面配置範本
-(文字、收件匣和影像)，讓您可以在應用程式中使用。
-以下的影像顯示單一事件通知在手持裝置 (左) 和穿戴裝置 (右) 上的外觀。
-
-</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">動作</h3>
-
-<p>Android 支援可以在通知底端顯示的選用動作。透過動作，使用者可針對特定通知，從通知欄 (notification shade) 內處理最常見的工作，而無需開啟原始啟動的應用程式。這可加速互動，而且在配合滑動關閉
-(swipe-to-dismiss)
-時，有助使用者專注於高重要性的通知。
-
-
-
-</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
-
-
-
-<p style="clear:both">明智地決定要在通知中要納入多少個動作。
-您納入的動作愈多，就會發現創造出愈複雜的通知。
-請納入最緊迫重要且有意義的動作，限制自己儘可能使用最少數目的動作。
-
-
-</p>
-
-<p>適合用於通知上的動作包含：</p>
-
-<ul>
-  <li> 必須是必要、頻繁且典型的想要顯示內容類型
-
-  <li> 可讓使用者快速完成工作
-</ul>
-
-<p>避免下列狀況：</p>
-
-<ul>
-  <li> 模稜兩可
-  <li> 和通知的預設動作相同 (如「讀取」或「開啟」)
-
-</ul>
-
-
-
-<p>您最多可以指定三個動作，每個動作都由一個動作圖示與名稱組成。
-
- 為簡單的基礎版面配置新增動作，可讓通知變得更具擴充性
---
-即使通知並未具備擴充的版面配置。由於動作只針對擴充的通知顯示，其他時候則隱藏，請確認使用者可從通知內呼叫的任何動作，也可以從關聯的應用程式中使用。
-
-
-
-
-</p>
-
-<h2 style="clear:left">預告通知</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
-  <p class="img-caption">
-    預告通知 (來電、高優先順序)
-出現在沉浸式應用程式之上的範例
-
-  </p>
-</div>
-
-<p>當高優先順序的通知到達 (如右) 時，會對使用者呈現很短的時間，且會顯示可能執行動作的擴充版面配置。
-
-</p>
-<p> 在這段時間之後，通知會退回至通知欄。
-如果通知的<a href="#correctly_set_and_manage_notification_priority">優先順序</a>被標記為「高」、「最大」或「全螢幕」，就會取得預告通知。
-</p>
-
-<p><b>預告通知的好範例</b></p>
-
-<ul>
-  <li> 使用裝置時有來電</li>
-  <li> 使用裝置時啟動鬧鐘功能</li>
-  <li> 新簡訊</li>
-  <li> 電池電力不足</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">指導方針</h2>
-
-
-<h3 id="MakeItPersonal">提供個人設定</h3>
-
-<p>針對由另一人傳送項目的通知
-(如郵件或狀態更新)，使用
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} 納入對方提供的影像。也將對方的資訊附加至通知的中繼資料中
-(請參閱 {@link android.app.Notification#EXTRA_PEOPLE})。</p>
-
-<p>您通知的主要圖示仍會顯示，這樣使用者就可以將主要圖示與狀態列中的可見圖示關聯起來。
-
-</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
-<p style="margin-top:10px" class="img-caption">
-  通知會顯示觸發通知的人及其傳送的內容。
-</p>
-
-
-<h3 id="navigate_to_the_right_place">導覽至正確的地方</h3>
-
-<p>當輕觸通知的本文時
-(在動作按鈕之外)，請將您的應用程式開啟至使用者可以檢視的地方，並根據通知中引用資料進行動作。
-
-在多數情況下，這將是單一資料項目 (如訊息) 的詳細資料檢視，但如果通知被堆疊時，也可能會是概述檢視。
-
-如果您的應用程式會將使用者帶到應用程式頂層之下的任何地方，則請將導覽過程插入應用程式的返回堆疊中，這可以讓使用者能夠按下系統的返回按鈕，返回至頂層。
-
-如需詳細資訊，請見<a href="{@docRoot}design/patterns/navigation.html#into-your-app">導覽</a>設計模式中的「透過主螢幕視窗小工具和通知，導覽至您的應用程式」<em></em>。
-
-</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">正確設定和管理通知優先順序
-
-</h3>
-
-<p>Android 支援對通知設定優先順序的旗標。此旗標可與其他通知旗標比較，影響通知顯示的位置，這有助於確保使用者一律會先看到最重要的通知。
-
-
-在發佈通知時，您可以從以下優先順序等級選擇：
-
-</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>優先順序</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>使用</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>用於關鍵且緊急的通知，警示使用者注意此通知具時效性或必須在繼續特定工作前先解決的情況。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>主要用於重要通訊，例如內容為使用者特別感興趣的郵件或聊天事件。高優先順序通知會觸發預告通知的顯示。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>用於不屬於此處所述任何其他優先事項類型的所有通知。</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>用於您希望使用者能夠被告知，但不那麼緊急的通知。
-低優先順序通知往往出現在清單的底端，因此適合於公共或間接的社交更新：
-
-使用者已要求針對這類事件通知，但這些通知一律不會優先於緊急或直接通訊。
-
-
-</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>用於內容關聯或背景資訊，例如天氣資訊或內容關聯位置的資訊。最低優先順序通知不會出現在狀態列。
-
-使用者會在展開通知欄時找到這些通知。
-</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>如何選擇合適的優先順序</strong>
-
-</h4>
-
-<p><code>DEFAULT</code>、<code>HIGH</code> 和 <code>MAX</code> 為可中斷的優先順序等級，且有打斷使用者正進行動作的風險。
-
-如要避免惹惱您應用程式的使用者，請將可中斷的優先順序保留給下列通知：
-</p>
-
-<ul>
-  <li> 涉及另一人</li>
-  <li> 具時效性</li>
-  <li> 可能會立即變更使用者在現實世界中的行為</li>
-</ul>
-
-<p>對使用者而言，設定為 <code>LOW</code> 和 <code>MIN</code> 的通知仍可能很有價值：
-很多通知 -- 就算不是大多數 -- 並不需要使用者立即注意，或透過振動使用者的手腕加以提醒；但在使用者選擇查看通知時，這些通知仍會包含使用者覺得有價值的資訊。
-
-
-<code>LOW</code> 和 <code>MIN</code>
- 優先順序通知的準則包含：</p>
-
-<ul>
-  <li> 不會牽涉到別人</li>
-  <li> 不具時效性</li>
-  <li> 包含使用者可能感興趣，但可能在空閒時才會瀏覽的內容
-</li>
-</ul>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
-
-
-<h3 style="clear:both" id="set_a_notification_category">設定通知類別
-</h3>
-
-<p>如果您的通知屬於某個預先定義的類別
-(詳見下列說明)，則請據以指派。
-通知欄 (或任何其他通知接聽器) 等系統 UI
-可能會使用此資訊，決定排名和篩選結果。
-</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>來電 (語音或視訊) 或類似的同步化通訊要求
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>傳入的直接訊息 (簡訊、即時訊息等)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>非同步大量郵件 (電子郵件)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>「行事曆」事件</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>宣傳或廣告</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>鬧鐘或計時器</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>長時間執行的背景操作其進度</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>社交網路或共用更新</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>背景操作或驗證狀態中的錯誤</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>播放的媒體傳輸控制</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>系統或裝置狀態更新。保留供系統使用。</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>執行背景服務的表示</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>針對單一件事的特定、及時建議。例如，新聞應用程式可能會想推薦其認為使用者下一步想要閱讀的新聞報導。
-
-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>有關裝置或內容關聯狀態的進行中資訊</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">概述您的通知</h3>
-
-<p>當您的應用程式嘗試傳送的通知，但已有類型相同的通知仍在等待中，則請針對應用程式將這些相同類型的通知合併為單一概述通知，而不要建立新物件。
-
-</p>
-
-<p>概述通知會建立概述描述，並讓使用者瞭解特定種類的通知有多少數目正在等待處理。
-
-</p>
-
-<div class="col-6">
-
-<p><strong>不要這樣做</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>請這樣做</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">您可以使用擴充摘要版面配置，針對組成概述的個別通知，提供更多詳細資料。
-
-這種方法可讓使用者更能感覺出哪些通知正處於等待處理，以及是否夠有趣，以便在關聯應用程式中詳細閱讀。
-
-
-
-</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
-  <p class="img-caption">
-  概述實際上是通知的展開和收縮 (使用 <code>InboxStyle</code>)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">讓通知成為可選用的
-</h3>
-
-<p>使用者應該總是能夠控制通知。讓使用者可以停用您應用程式的通知，或變更其警示屬性，如鬧鐘聲音或是否要使用振動，方法則是為您的應用程式設定新增通知設定項目。
-
-
-
-</p>
-
-<h3 id="use_distinct_icons">使用易於分辨的的圖示</h3>
-<p>使用者應該能瞄一下通知區域，即可以分辨哪些種類的通知目前正在等待處理。
-
-</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
-</div>
-
-  <div><p><strong>請這樣做</strong></p>
-    <p>查看 Android 應用程式圖示，
-Android 應用程式已為您的應用程式提供外觀易於分辨的通知圖示。
-</p>
-
-    <p><strong>請這樣做</strong></p>
-    <p>針對小圖示使用<a href="/design/style/iconography.html#notification">通知圖示樣式</a>，針對您的動作列圖示使用 Material Light <a href="/design/style/iconography.html#action-bar">動作列圖示樣式</a>。
-
-
-
-</p>
-<p ><strong>請這樣做</strong></p>
-<p >讓圖示保持看起來簡單的狀態，避免因過多的詳細資料造成使用者難以看清楚。
-</p>
-
-  <div><p><strong>不要這樣做</strong></p>
-    <p>將任何額外的
-Alpha
-(變暗或淡出)
-置入您的小圖示和動作圖示之中；它們的邊緣可能會有反鋸齒狀，但因為 Android 使用這些圖示做為遮罩
-(也就是說，只使用 Alpha 通道)，所以影像通常會以完全透明度來繪製。
-</p>
-
-</div>
-<p style="clear:both"><strong>不要這樣做</strong></p>
-
-<p>使用顏色以區分您與其他人的應用程式。通知圖示應該只是個白色圖示透明背景的背景影像。
-</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">可以調整通知 LED 適當開啟
-</h3>
-
-<p>許多 Android 裝置具備通知 LED，可用於當螢幕關閉時通知使用者有新事件。
-
-優先順序等級為<code>MAX</code>、<code>HIGH</code> 和 <code>DEFAULT</code> 的通知，
-應該要讓 LED 亮起，而只有低優先順序 (<code>LOW</code> 和 <code>MIN</code>) 的通知則不需要。
-
-</p>
-
-<p>使用者對通知的控制應該延伸到 LED 上。當您使用 DEFAULT_LIGHTS，LED 會亮白色。
-
-除非使用者已明確自訂通知，否則您的通知不應該使用其他顏色。
-
-</p>
-
-<h2 id="building_notifications_that_users_care_about">建立使用者喜歡的通知
-</h2>
-
-<p>若要建立使用者喜歡的應用程式，精心設計您的通知非常重要。通知代表您應用程式的聲音，並有助於您應用程式的個性。
-
-
-非必要或非重要的通知會讓使用者不高興，這會讓他們覺得應用程式想要吸引注目不擇手段，所以請明智地使用通知。
-
-
-</p>
-
-<h3 id="when_to_display_a_notification">顯示通知的時機</h3>
-
-<p>若要建立人們喜歡使用的應用程式，重要的是要體認到使用者的注意與專注是必須加以保護的資源。
-
-雖然 Android 的通知系統已重新設計，儘量降低通知對使用者注意力的影響。但仍然必須警覺，通知會中斷使用者的工作流程。在規劃您的通知時，請先自問：通知是否足夠重要到可以合理地中斷使用者。
-
-
-
-
-
-
-如果您不確定，則讓使用者可以使用您應用程式的通知設定，或調整通知優先順序旗標為 <code>LOW</code> 或 <code>MIN</code>，避免使用者在從事其他工作時因此分心。
-
-
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   具時效性的通知範例
-  </p>
-
-<p>妥善規劃的應用程式只會在必要時才出現，但有幾個情況的確有益於應用程式透過無提示通知中斷使用者的行為。
-</p>
-
-<p>通知主要還是使用於<strong>具時效性時間的事件</strong>，特別是當這些同步事件<strong>涉及其他人</strong>的時候。
-比如說，傳入的聊天是通訊的即時、同步形式：
-
-另一個使用者正主動等待您的回應。
-「行事曆」事件是何時使用通知吸引使用者注意的另一個好例子，因為事件即將發生，而「行事曆」事件通常牽涉到其他人。
-
-
-</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">不顯示通知的時機
-</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
-</div>
-
-<p>在許多其他情況下，通知並不適當：</p>
-
-<ul>
-  <li> 當通知並非直接針對使用者，或者資訊並非真正具時效性時，請避免通知使用者。
-
-例如，來自社交網路的非同步與間接更新，通常不是即時中斷的好時機。
-
-
-對於重視這些狀況的使用者，可以讓他們自行選擇加入通知。
-</li>
-  <li> 如果相關的新資訊目前正在螢幕上，則不要建立另一個通知。
-反之，直接在前後關係中使用應用程式本身的 UI 通知使用者有新資訊。
-
-
-  例如，當使用者正與另一位使用者聊天時，聊天應用程式不應建立系統通知。
-</li>
-  <li> 如果應用程式或系統可以不干擾使用者而解決問題，就不要因為如儲存或同步化資訊，或更新應用程式等低層級的技術操作而中斷使用者活動。
-
-</li>
-  <li> 如果可能的話，就讓應用程式能自行從錯誤恢復，在不需要使用者進行任何動作時，就不要告知他們錯誤而中斷使用者的活動。
-
-</li>
-  <li> 不要建立無實質內容的通知，也不要建立內容僅是在廣告您應用程式的通知。
-
-通知應該要能夠提供實用、及時的新資訊，而非只是為了啟動一個應用程式。
-
-</li>
-  <li> 請不要為了讓您的品牌出現在使用者面前，而建立多餘的通知。
-
-  這類通知會讓您的使用者感到失望並不願意使用您的應用程式。能夠提供少量的更新資訊並可以吸引使用者注意您應用程式的最佳方式，是開發一個小工具，讓使用者可以選擇放置在主畫面上。
-
-
-
-
-</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">與通知互動
-</h2>
-
-<p>通知可由狀態列上的圖示表示，並可以透過開啟通知匣來存取。
-
-</p>
-
-<p>輕觸通知會開啟相關應用程式，顯示符合通知的詳細資料內容。對通知往左右滑動，可以將通知從通知匣中移除。
-
-</p>
-
-<h3 id="ongoing_notifications">進行中通知</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
-      <p class="img-caption">
-    因為音樂播放的緣故所以有進行中通知
-  </p>
-</div>
-<p>進行中通知可讓使用者得知在背景中正在進行程序的資訊。例如，音樂播放程式會在通知系統中宣告正在播放的曲目，除非使用者停止曲目，否則就會繼續宣告。
-
-
-
-進行中通知也可以針對如下載檔案或編碼影片等耗時較長的工作，向使用者顯示目前進度。
-
-使用者無法手動將進行中通知從通知匣移除。
-</p>
-
-<h3 id="ongoing_notifications">媒體播放</h3>
-<p>在 Android 5.0 中，鎖定螢幕不會針對已過時的
-{@link android.media.RemoteControlClient} 類別，顯示傳輸控制項。但鎖定螢幕「的確」<em></em>會顯示通知，所以每個應用程式的播放通知，現在都已經是使用者從鎖定狀態控制播放的主要方法。
-
-這個行為可讓應用程式進一步控制以何種方式顯示哪些按鈕，同時無論螢幕是否鎖定，都能為使用者提供一致性的體驗。
-
-
-</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">對話和快顯通知
-</h3>
-
-<p>您的應用程式目前若不在畫面上，就不應建立對話或快顯通知。
-對話或快顯通知只在使用者於您應用程式內採取動作時產生立即回應時才顯示。至於使用對話與快顯通知的進一步指引，請參閱<a href="/design/patterns/confirming-acknowledging.html">確認和確認完成</a>。
-
-
-
-</p>
-
-<h3>排名和排序</h3>
-
-<p>通知就是新聞，所以基本上是以逆時間順序顯示，同時會針對應用程式指定的通知<a href="#correctly_set_and_manage_notification_priority">優先順序</a>，給與特殊考慮。
-
-
-</p>
-
-<p>通知是鎖定螢幕的重要部分，並會在裝置重新顯示螢幕時明確作用。
-
-鎖定螢幕上的空間有限，所以更重要的是辨別出最緊急或相關的通知。
-
-基於這個理由，Android 針對通知提供了更複雜的排序演算法，並同時考慮：
-
-</p>
-
-<ul>
-  <li> 時間戳記和應用程式指定的優先順序。</li>
-  <li> 通知最近是否以聲音或振動干擾使用者。
-(也就是說，如果電話剛發出一個聲響，而使用者想要知道「剛剛發生什麼事？」，鎖定螢幕應該以瞄一下就能取得通知的方式來回應使用者。
-)
-
-</li>
-  <li> 任何使用 {@link android.app.Notification#EXTRA_PEOPLE} 附加至該通知的人員，尤其是他們是否為標記星號的連絡人。
-</li>
-</ul>
-
-<p>要善用這種排序，請著重於您想要建立的使用者體驗，而非著眼於清單上的任何特定排名位置。
-
-</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Gmail 通知使用預設的優先順序，所以通常排序低於像 Hangouts 等即時訊息應用程式，但當有新郵件進來時，會暫時立即提升。
-
-
-
-
-  </p>
-
-
-<h3>在鎖定螢幕上</h3>
-
-<p>由於通知可見於鎖定螢幕上，因此使用者隱私是特別重要的考量。
-
-通知通常包含敏感資訊，而且不一定要顯示給拿起裝置並打開顯示的任何人。
-
-</p>
-
-<ul>
-  <li> 針對具有安全鎖定螢幕 (PIN、圖案或密碼) 的裝置，介面有公用和私密兩部分。
-公用介面可以顯示在安全鎖定螢幕上，因此任何人都可看見。
-私密介面是鎖定螢幕背後的世界，只在使用者登入裝置時才會顯示。
-</li>
-</ul>
-
-<h3>使用者控制安全鎖定螢幕上顯示的資訊</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
-      <p class="img-caption">
-    鎖定螢幕上的通知，以及使用者解鎖裝置後顯示的內容。
-  </p>
-</div>
-
-<p>當設定安全鎖定螢幕時，使用者可以選擇隱藏來自安全鎖定螢幕的機密詳細資料。
-在這種情況下，系統 UI 會考慮通知的「可見度」<em></em>等級，判斷可以顯示何種內容。
-
-</p>
-<p> 如要控制可見度等級，可以呼叫
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>，並指定下列值之一：
-</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>。
-顯示通知的完整內容。
-  如果未指定可見度，則這會是系統預設值。</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>。
-在鎖定螢幕上，顯示這個通知存在的基本資訊，
-包括通知圖示和發佈通知的應用程式。通知詳細資料的其他部分則不會顯示。
-但請記住的下列幾點：
-  <ul>
-    <li> 如果您想要提供您通知的不同公用版本，
-以便顯示在安全鎖定螢幕上，
-請在 <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>
-欄位中提供一個取代的「通知」物件。
-    <li> 此設定可以讓您的應用程式有機會建立內容的改編版本，非常實用但卻不會透露個人資訊。
-考慮簡訊應用程式的例子，
-其通知包含簡訊的文字和傳送者的姓名與連絡人圖示。
-此通知應該是 <code>VISIBILITY_PRIVATE</code>，但 <code>publicVersion</code> 仍包含像「3 個新訊息」等實用資訊，
-但卻又不提供任何其他可用來識別的詳細資料。
-
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>。僅顯示最起碼的資訊，
-甚至連通知圖示都排除。</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Android Wear 上的通知
-</h2>
-
-<p>預設情況下，通知和其<em>動作</em>會橋接至穿戴裝置。
-開發人員可以控制哪些通知可從電話橋接至手錶上，
-反之亦然。
-開發人員還可以控制哪些動作可以橋接。如果您的
-應用程式包含
-無法以單一點選完成的動作，
-請在您的穿戴通知上隱藏這些動作
-，或考慮將其連結至穿戴應用程式，
-讓使用者可以在手錶上完成動作。
-</p>
-
-<h4>橋接通知和動作</h4>
-
-<p>例如電話等已連線的裝置，
-可以橋接通知至穿戴裝置，讓通知可以在該處顯示。同樣的，也可以橋接動作，
-這樣使用者就可以直接從穿戴裝置對通知執行動作。</p>
-
-<p><strong>橋接</strong></p>
-
-<ul>
-  <li> 新的即時訊息</li>
-  <li> 例如 +1 等單點選動作，像 Heart</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
-
-<p><strong>請勿橋接</strong></p>
-
-<ul>
-  <li> 新到播客的通知</li>
-  <li> 對應至手錶上不可能執行的動作</li>
-</ul>
-
-
-
-<p><h4>要在穿戴裝置上定義的獨特動作</h4></p>
-
-<p>有些動作只能在穿戴裝置上執行。這些動作包含：</p>
-
-<ul>
-  <li> 罐頭回應的快速清單，例如「會馬上回來」</li>
-  <li> 在手機上開啟</li>
-  <li> 帶出語音輸入畫面的「註解」或「回覆」動作</li>
-  <li> 啟動穿戴裝置特定的應用程式動作</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />
diff --git a/docs/html-intl/intl/zh-tw/preview/j8-jack.jd b/docs/html-intl/intl/zh-tw/guide/platform/j8-jack.jd
similarity index 100%
rename from docs/html-intl/intl/zh-tw/preview/j8-jack.jd
rename to docs/html-intl/intl/zh-tw/guide/platform/j8-jack.jd
diff --git a/docs/html-intl/intl/zh-tw/preview/features/multi-window.jd b/docs/html-intl/intl/zh-tw/guide/topics/ui/multi-window.jd
similarity index 98%
rename from docs/html-intl/intl/zh-tw/preview/features/multi-window.jd
rename to docs/html-intl/intl/zh-tw/guide/topics/ui/multi-window.jd
index 5ea247b..86d22fb 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/multi-window.jd
+++ b/docs/html-intl/intl/zh-tw/guide/topics/ui/multi-window.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+  <div id="tb">
     <h2>此文件內容</h2>
       <ol>
         <li><a href="#overview">總覽</a></li>
@@ -68,8 +68,8 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x," id="img-split-screen" />
 <p class="img-caption">
   <strong>圖 1.</strong> 在分割畫面模式中並排執行的兩個應用程式。
 </p>
diff --git a/docs/html-intl/intl/zh-tw/preview/download.jd b/docs/html-intl/intl/zh-tw/preview/download.jd
deleted file mode 100644
index caa2a55..0000000
--- a/docs/html-intl/intl/zh-tw/preview/download.jd
+++ /dev/null
@@ -1,550 +0,0 @@
-page.title=在裝置上測試
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">在下載並安裝 Android Preview SDK 的元件之前 ，您必須同意遵守下列條款和條件。
-
-</p>
-
-    <h2 class="norule">條款和條件</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-這是「Android SDK Preview 授權協議」(以下稱「授權協議」)。
-
-1. 簡介
-
-1.1「Android SDK Preview」(在「授權協議」中稱為「Preview」，包括 (如果有可用的) Android 系統檔案、經過封裝的 API 和 Preview 程式庫檔案) 是在「授權協議」之條款的約束下授權給您使用。「授權協議」就您對「Preview」的使用，構成您與 Google 間具法律約束力之合約。
-
-1.2「Android」係指「Android 軟體開放原始碼專案」(http://source.android.com/) 所提供的 Android 裝置軟體堆疊 (不定期更新)。
-
-1.3「與 Android 相容」表示符合下列條件的任何 Android 實作：(i) 符合「Android 相容性定義」文件，此文件位於 Android 相容性網站 (http://source.android.com/compatibility) 且不定期更新；以及 (ii) 順利通過「Android 相容性測試套件」(CTS) 的測試。
-
-1.4 "Google" 係指 Google Inc.，是一家在美國德拉瓦州註冊的公司，總公司位於 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。
-
-2. 接受「授權協議」
-
-2.1 必須先同意遵守「授權協議」，才能使用此「Preview」。如果不接受「授權協議」，您就無法使用此「Preview」。
-
-2.2 按一下 [接受] 且/或使用「Preview」，即表示您同意「授權協議」的條款。
-
-2.3 如果您是美國或其他國家/地區 (包括您所居住或使用此「Preview」的國家/地區) 的法律所禁止接收此「Preview」的人員，就不得使用此「Preview」及接受「授權協議」。
-
-2.4 如果您將在公司或組織內部使用「Preview」，您就要代表雇主或其他實體同意受「授權協議」約束，且您代表並保證具備完整法定權限來約束您的雇主或這類實體遵守「授權協議」。如果您不具備必要的權限，就不得代表您的雇主或其他實體接受「授權協議」或使用此「Preview」。
-
-3. 來自 Google 的 Preview 授權
-
-3.1 在此「授權合約」之條款的約束下，Google 授予您此「Preview」的使用授權，此授權為有限、全球通用、買斷式、不可轉讓且不可轉授權，此「Preview」僅供您用來開發在 Android 相容實作上執行的應用程式。
-
-3.2 您不得使用此「Preview」來開發適用於其他平台 (包括與 Android 不相容的實作) 的應用程式或開發另一個 SDK。您當然可以使用它來開發適用於其他平台 (包括與 Android 不相容的實作) 的應用程式，惟不得將此「Preview」用於該用途。
-
-3.3 您同意 Google 或第三方對此「Preview」擁有一切法定權利及權益，包括存在於此「Preview」中的任何「智慧財產權」。「智慧財產權」係指專利法、著作權法、商業秘密法、商標法及任何和所有其他專利權下的任何及一切權利。Google 保留一切未明確授予您的權利。
-
-3.4 您不得將此「Preview」用於「授權協議」未明文許可的任何用途。除非適用的第三方授權所需，否則您不得：(a) 對此「Preview」或其任何部分進行複製 (備份用途除外)、修改、改編、轉散佈、反向組譯、還原工程、解編或製作衍生成品；或是 (b) 將此「Preview」的任何部分載入至行動電話或個人電腦以外的任何其他硬體裝置、將此「Preview」的任何部分與其他軟體結合，或散佈包含此「Preview」之任一部分的任何軟體或裝置。
-
-3.5 對開放原始碼軟體授權下所授權之「Preview」的使用、複製及散佈，完全受該開放原始碼軟體授權的條款規範，而不受「授權合約」規範。您同意遵守從這類開放原始碼軟體授權獲得的所有權利，並且避免採取任何可能終止、中止或侵害這類權利的行為。
-
-3.6 您同意 Google 可在不事先通知您的情況下變更其所提供之「Preview」的形式和本質，且此「Preview」的未來版本可與在此「Preview」的先前版本上開發的應用程式不相容。您同意 Google 通常可全權斟酌永久或暫時停止提供此「Preview」(或此「Preview」的任何功能) 給您或使用者，毋須事先通知。
-
-3.7「授權協議」中的所有條款皆未授予您任何使用 Google 之商業名稱、商標、服務標章、標誌、網域名稱或其他明確品牌特徵的權利。
-
-3.8 您同意不會移除、遮蔽或更改可能附加至或內含在此「Preview」中的任何專利權通知 (包括著作權和商標通知)。
-
-4. 您對「Preview」的使用
-
-4.1 Google 同意在「授權協議」下，任何條款皆未從您 (或您的授權人) 賦予 Google 對您使用此「Preview」開發之任何軟體應用程式的任何權利及權益，包括存在於這些應用程式中的任何智慧財產權。
-
-4.2 您同意只就 (a)「授權協議」和 (b) 相關管轄權中任何適用法律、規定或是普遍獲得接受之慣例或指導方針 (包括任何有關將資料或軟體輸出或輸入美國或其他相關國家/地區的法律) 所允許的用途使用此「Preview」及撰寫應用程式。
-
-4.3 您同意如果使用此「Preview」開發應用程式，您將保護使用者的隱私權和法定權利。如果使用者提供您使用者名稱、密碼或是其他登入資訊或個人資訊，您必須告知使用者這類資訊將提供給您的應用程式使用，並且必須為這些使用者提供法定充分的隱私權通知和保護。如果您的應用程式會儲存使用者所提供的個人或敏感資訊，它必須確保這些資訊安全無虞。如果使用者提供 Google 帳戶資訊給您，則只有在每個使用者已授權您存取其 Google 帳戶並僅限用於使用者所授權之用途的情況下，您的應用程式才能使用該資訊來存取使用者的 Google 帳戶。
-
-4.4 您同意不會使用此「Preview」從事任何不當活動，例如開發或散佈會以未經授權的方式干擾、妨礙、損害或存取 Google 或任何第三方之伺服器、網路或是其他財產或服務的應用程式。
-
-4.5 您同意對您透過 Android 裝置和 (或) Android 應用程式建立、傳輸或顯示的任何資料、內容或資源，以及上述行為造成的後果 (包括 Google 可能蒙受的任何損失或損害) 負起全責 (而 Google 對您或任何第三方就上述一切不需負任何責任)。
-
-4.6 您同意對違反在此「授權協議」、任何適用之第三方合約或《服務條款》或是任何適用之法律或規定下所必須遵守的義務，以及違反相關義務造成的後果 (包括 Google 或任何第三方可能蒙受的任何損失或損害) 負起全責 (而 Google 對您或任何第三方就上述一切不需負任何責任)。
-
-4.7「Preview」目前正在開發中，因此您的測試與意見反應對開發程序非常重要。使用「Preview」，您即認同某些功能仍處於開發階段，因此您不應期待「Preview」擁有穩定版本的完整功能。在官方 Android SDK 發行之後，此「Preview」不再受到支援時，您同意不使用此「Preview」公開散佈或隨附任何應用程式。
-
-5. 您的開發人員認證
-
-5.1 您同意負責保密 Google 可能核發給您或您自己選擇的任何開發人員認證，並且對在您開發人員認證名義下開發的所有應用程式負起全責。
-
-6. 隱私權和資訊
-
-6.1 為了持續更新及改進此「Preview」，Google 可能會從軟體收集某些使用狀況統計數據，包括但不限於軟體的唯一識別碼、相關 IP 位址、版本號碼，以及有關使用此「Preview」中的哪些工具和 (或) 服務及其使用方式的相關資訊。在收集這類資訊之前，此「Preview」會先通知您並徵求您的同意。如果您不同意，Google 將不會收集這類資訊。
-
-6.2 Google 會彙總並檢查收集到的資料，據以改善此「Preview」，並且會依據《Google 隱私權政策》(http://www.google.com/policies/privacy/) 加以妥善保存。
-
-7. 第三方應用程式
-
-7.1 如果您使用此「Preview」來執行第三方開發的應用程式，或是執行會存取第三方所提供之資料、內容或資源的應用程式，您同意 Google 不需對這類應用程式、資料、內容或資源負任何責任。您了解您透過第三方應用程式存取的所有資料、內容或資源是由其提供者負起全責，而 Google 對您因使用或存取任何這些第三方應用程式、資料、內容或資源所造成的損失或損害不需負任何責任。7.2 您了解第三方應用程式提供給您的資料、內容或資源可能受到提供者 (或代表他們的其他人員或公司) 所擁有的智慧財產權保護。
-
-您不得根據這類資料、內容或資源 (不論是整個或部分) 修改、出租、出借、販售、散佈或製作衍生成品，除非相關擁有者明確授權您從事上述活動。7.3 您了解使用第三方應用程式、資料、內容或資源可能受到您與相關第三方之間的個別條款約束。
-
-
-
-8. 使用 Google API
-
-8.1 Google API
-
-8.1.1 如果您使用任何 API 從 Google 擷取資料，您瞭解這些資料可能受到 Google 或資料提供者 (或代表他們的其他人員或公司) 所擁有的智慧財產權保護。您對任何這類 API 的使用可能受到其他《服務條款》約束。除非相關《服務條款》明文允許，否則您不得根據這類資料 (不論是整個或部分) 修改、出租、出借、販售、散佈或製作衍生成品。8.1.2 使用任何 API 從 Google 擷取使用者的資料時，您了解並同意只有在該使用者明確同意且授權您擷取其資料，而且僅限用於使用者所授權之用途的情況下，您才能擷取資料。
-
-
-
-終止「授權協議」
-
-9.1 除非您或 Google 終止「授權協議」(請見下方說明)，否則「授權協議」將持續具有效力。
-
-9.2 如果想終止「授權協議」，只要停止使用此「Preview」及任何相關的開發人員憑證即可。
-
-9.3 Google 可隨時通知您終止「授權協議」，無論有無原因。
-
-9.4「授權協議」在先發生下列任一情況時，將自動終止而不另行通知或採取其他行動：
-(A) Google 決定不再提供此「Preview」或此「Preview」的特定部分給您所居住或使用此服務之國家/地區的使用者；或
-(B) Google 發行最終版本的 Android SDK。
-
-9.5 當「授權條款」終止時，您在「授權協議」所獲得的授權也將會一併終止，您將立即停止「Preview」的所有使用，而第 10、11、12 和 14 項的條款將無限期持續適用。
-
-10. 免責聲明
-
-10.1 您明確了解並同意完全自負使用此「Preview」的風險，並且此「Preview」是依「現況」和「可提供性」提供，Google 不負任何擔保責任。
-
-10.2 您對使用此「Preview」及透過此「Preview」以下載或其他方式取得的任何內容，需自行斟酌和自負風險，而且您對因這類使用而對您的電腦系統或其他裝置所造成的任何損害或資料遺失，需負起全責。不限於前述，您瞭解此「Preview」不是穩定的版本，可能會包含許多錯誤、瑕疵和安全性弱點而對您的電腦系統或其他裝置造成嚴重的損害，包括完全、不可回復的損失。
-
-10.3 Google 進一步明確聲明不提供任何形式的瑕疵擔保和條件 (不論明示或默示)，包括但不限於適售性、適合特定用途及未侵權的默示擔保和條件。
-
-11. 責任限制
-
-11.1 您明確瞭解並同意在任何歸責理論下，就可能由您引起的任何直接、間接、附隨性、特殊性、衍生性或懲罰性損害賠償 (包括任何資料遺失)，不論 Google 或其代表是否已獲告知或應已瞭解發生任何這類損失的可能性，Google、其子公司和關係企業及其授權人不必對您負起任何責任。
-
-12. 賠償
-
-12.1 在法律允許的最大範圍內，您同意為 Google、其子公司及其個別董監事、主管、員工和代理人，就任何和一切索賠、法律行動、訴訟或訴訟程序，以及因下列原因而引起的任何和一切損失、責任、損害賠償、費用及開支 (包括合理的律師費)，提供辯護、賠償損失並確保其免於承擔賠償責任：(a) 您使用此「Preview」；(b) 您使用此「Preview」開發的應用程式侵害任何人的任何智慧財產權，或是詆毀任何人或違反其公開權或隱私權；以及 (c) 您未遵守「授權協議」。
-
-13. 對「授權協議」做出的變更
-
-13.1 Google 可在散佈此「Preview」的新版本時修改「授權協議」。做出這類變更後，Google 會在提供此「Preview」的網站上提供「授權協議」的新版本。
-
-14. 一般法律條款
-
-14.1「授權協議」構成您與 Google 之間的法律協議，用於管制您對此「Preview」(不包括 Google 依據個別書面協議提供給您的任何服務) 的使用，並完全取代先前您與 Google 之間就此「Preview」簽署的相關協議。
-
-14.2 您同意如果 Google 未行使或執行「授權協議」所含的任何法律權利或救濟 (或在任何適用法律下對 Google 有利的權益)，並不代表 Google 正式放棄權利，Google 日後仍可行使這些權利或救濟。
-
-14.3 如果經任何法院 (就此事宜依管轄權決定) 裁決「授權協議」中有任何條款無效，則該條款將自「授權協議」中移除，「授權協議」的其餘部分則不受影響。「授權協議」的其餘條款將持續具有效力且可執行。
-
-14.4 您瞭解並同意 Google 旗下子公司體系的每位成員都是「授權協議」的第三方受益人，而且這類其他公司有權直接執行和依據「授權協議」中對其授予權益 (或對其有利之權利) 的任何條款。除此之外的任何其他人員或公司皆非「授權協議」的第三方受益人。
-
-14.5 出口限制。此「Preview」受美國出口法規約束。您必須遵守適用於此「Preview」的所有國內和國際出口法規。這些法律包括對目的地、使用者及最終用途的限制。
-
-14.6 未事先取得 Google 事先書面核准的情況下，您不得轉讓或轉移「授權協議」，未經這類核准的任何轉讓將會失效。您不得在未事先取得 Google 書面核准的情況下，委派其「授權協議」涵蓋的責任或義務。
-
-14.7「授權協議」以及您與 Google 就「授權協議」構成的關係皆受加州法律管轄，毋須理會其法律牴觸條款。您和 Google 同意服從位於加州聖塔克拉拉 (Santa Clara, California) 郡內法院的專屬管轄權，以解決由「授權協議」產生的任何法律事務。儘管如此，您同意 Google 仍可在任何管轄權中申請禁制令救濟 (或同等類型的緊急法定救濟)。
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">我已閱讀並同意上述條款和條件</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>此文件內容</h2>
-      <ol>
-        <li><a href="#device-preview">設定硬體裝置</a>
-          <ol>
-            <li><a href="#ota">取得隔空傳輸更新</a></li>
-            <li><a href="#flash">手動刷新裝置</a></li>
-            <li><a href="#revertDevice">解除安裝</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">設定模擬器</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  如果要在新的平台上執行並測試您的應用程式，您需要設定 Android N 執行階段環境。您可以透過下列其中一種方式進行：
-
-</p>
-
-<ul>
-  <li>在支援的硬體裝置上安裝 Android N，或</li>
-  <li>設定執行 Android N 的 Android 模擬器</li>
-</ul>
-
-<p>
-  如果您想要有一個在新平台上為應用程式進行基本相容性測試的環境，您只需要最新的 APK 與一個硬體裝置或模擬器。執行基本測試並不需要更新整個開發環境。
-
-
-
-</p>
-
-<p>
-  如果您想要針對 Android N 修改應用程式或使用新的 Android N API，則需要設定已更新可支援 Android N 的開發環境。<a href="{@docRoot}preview/setup-sdk.html">設定以針對 Android N 開發</a>中提供詳細資訊。
-
-
-
-</p>
-
-
-<h2 id="device-preview">設定硬體裝置</h2>
-
-<p>
-  「N Developer Preview」為多種硬體裝置提供系統更新，您可以使用這些裝置 (從手機到平板電腦與電視) 來測試您的應用程式。
-
-</p>
-
-<p>
-  如果您使用支援的裝置，可以透過下列其中一個方式，將它更新到「Developer Preview」里程碑版本：
-
-</p>
-
-<ul>
-  <li>透過 <a href="https://g.co/androidbeta">Android Beta 計劃</a><strong>在自動 OTA 系統更新中註冊裝置</strong>。註冊之後，您的裝置將會定期透過隔空傳輸 (OTA) 更新方式收到「N Developer Preview」中的所有里程碑版本。建議您使用這個方法，因為它讓您透過「N Developer Preview」的多個版本，順暢地從目前的環境轉移。
-
-
-
-</li>
-  <li><strong>下載「Developer Preview」系統映像並更新裝置</strong>。當您手動更新時，不會自動為裝置提供 OTA 更新，但是您可以在「Android Beta 計劃」中註冊這些裝置來取得 OTA 更新。
-
- </li>
-</ul>
-
-<h3 id="ota">在自動 OTA 更新中註冊裝置</h3>
-
-<p>
-  如果您使用支援的裝置 (請參閱「下載」表中的清單)，可在 <a href="https://g.co/androidbeta">Android Beta 計劃</a>中註冊該裝置，然後接收 Android 預覽版的隔空傳輸更新。這些更新會自動下載並更新您的裝置，就像官方系統更新一樣。
-
-
-
-
-</p>
-
-<p>
-  您可以隨時取消註冊裝置。裝置會透過 OTA 更新方式接收提供給該裝置的最新 Android 生產版本 (例如 Android 6.0 Marshmallow)。更新要求重設整個裝置，所以裝置上的使用者資料會被移除。取消註冊裝置前，請務必<strong>備份重要資料</strong>。
-
-
-
-
-</p>
-
-<p>
-  如需註冊裝置的詳細資訊，請參閱 <a href="https://g.co/androidbeta">Android Beta 計劃</a>網站。
-
-</p>
-
-<p class="note"><strong>注意：</strong>取消註冊要求重設整個裝置。請先備份重要資料。
-
-
-</p>
-
-<h3 id="flash">手動更新裝置</h3>
-
-<p>
-  您可以隨時下載最新的「Developer Preview」系統映像並手動刷新到您的裝置。請參閱下表，下載適用於您測試裝置的系統映像。如果您需要確切控制測試環境或需要經常重新安裝 (例如自動化測試)，則手動更新裝置是實用的做法。
-
-
-
-
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  在裝置上安裝系統映像會<strong>移除裝置中的所有資料</strong>，因此您應該先備份您的資料。
-
-</p>
-
-<p>
-  備份裝置資料並下載下面符合您裝置的系統映像之後，請依照 <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> 的指示，將映像刷新到您的裝置。
-
-
-</p>
-
-<p>
-  手動刷新系統映像<strong>不會自動透過 OTA 更新方式收到</strong>較新的「Developer Preview」里程碑版本。請務必讓環境保持在最新狀態，使用每個「Developer Preview」里程碑的新系統映像進行刷新。
-
-
-
-</p>
-
-<p>
-  如果您決定手動更新裝置後要接收 OTA 更新，您唯一要做的事是在 <a href="https://g.co/androidbeta">Android Beta 計劃</a>中註冊裝置。您可以隨時註冊裝置，以隔空傳輸方式接收下一個「Preview」更新。
-
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">裝置</th>
-    <th scope="col">下載 / 總和檢查碼</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">從裝置解除安裝 Preview</h3>
-
-<p>
-  如果您想要從裝置解除安裝預覽版，可以透過下列其中一方式執行：
- </p>
-  <ul>
-    <li><strong>取得出廠規格系統映像</strong>，然後手動刷新到裝置。
-
-      <ul>
-          <li>對於 <strong>Nexus 裝置與 Pixel C 裝置</strong>，請查看 <a href="http://developers.google.com/android/nexus/images">Nexus 裝置原廠映像檔</a>頁面進行下載。
-
- </li>
-        <li>對於<strong>其他裝置</strong>，請直接聯絡裝置製造商。或者，如果是「Android Beta 計劃」中支援的裝置，則可以在這個計劃中註冊裝置，然後再取消註冊 (請參閱下面的資訊)。
-
-
-</li>
-      </ul>
-    </li>
-    <li><strong>從「Android Beta 計劃」取消註冊裝置</strong>。如果在 <a href="https://g.co/androidbeta">Android Beta 計劃</a>中註冊裝置，則無論是什麼裝置，只需從這個計劃取消註冊即可。
-
-
-  <p>
-    裝置會透過 OTA 更新方式接收提供給該裝置的最新 Android 生產版本 (例如 Android 6.0 Marshmallow)。更新要求重設整個裝置，所以裝置上的使用者資料會被移除。取消註冊裝置前，請務必<strong>備份重要資料</strong>。
-
-
-
-
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>注意：</strong>在計劃結束前解除安裝「Developer Preview」系統映像需要重設整個裝置，而且會移除裝置上的所有使用者資料。
-
-
-
-</p>
-
-
-<h2 id="setupAVD">設定模擬器</h2>
-
-<p>如果要使用 Android 模擬器來執行 Android N Preview，您需要下載 Android N Preview SDK 並為模擬器建立一個虛擬裝置。
-
-</p>
-
-<p>首先，遵循下列方式下載 Android N Preview SDK (如果您在<a href="{@docRoot}preview/setup-sdk.html">設定以針對 Android N 開發</a>時已經取得該 SDK，則可以略過這個部分)：
-
-
-
-<ol>
-  <li>在 Android Studio 中，開啟 [Settings] 對話方塊 (在Windows/Linux 上是 [File] &gt; [Settings]<strong></strong>，在 Mac 上是 [Android Studio] &gt; [Preferences]<strong></strong>)。在左面板中，選取 [Appearance &amp; Behavior] &gt; [System Settings] &gt; [Android SDK]<strong></strong>。
-
-
-
-
-
-  <li>按一下 [SDK Platforms] 分頁，然後選取 [Android N Preview] 核取方塊。<strong></strong><strong></strong>
-</li>
-
-  <li>按一下 [SDK Tools]<strong></strong> 分頁，然後選取 [Android SDK Build Tools]<strong></strong>、[Android SDK Platform-Tools]<strong></strong> 與 [Android SDK Tools]<strong></strong> 核取方塊。
-
-
-
-  </li>
-
-  <li>按一下 [OK]<strong></strong>，接受要安裝之任何套件的授權合約。
-
-  </li>
-</ol>
-
-<p>您現在應該有 <strong>Android SDK Built-Tools 24.0 0 rc1</strong>、<strong>Platform-Tools 24.0.0 rc1</strong> 與 <strong>SDK Tools 25.0.9</strong>。如果您沒有將 SDK Tools 更新為 25.0.9，就無法執行 Android N 的 x86_64 系統映像。
-
-
-</p>
-
-
-<p>現在使用 Android N 系統映像建立一個虛擬裝置：</p>
-
-<ol>
-  <li>選取 [Tools] &gt; [Android] &gt; [AVD Manager]<strong></strong> 以開啟 AVD Manager。
-</li>
-  <li>按一下 [Create Virtual Device]<strong></strong>。</li>
-  <li>選取裝置 (例如 Nexus 5X、Nexus 6P、Nexus 9 或 Android TV)，然後按一下 [Next]<strong></strong>。
-</li>
-  <li>選取 [N]<strong></strong> 系統映像 (含 <strong>x86</strong> ABI)，然後按一下 [Next]<strong></strong> (Android N Preview 的 Android 模擬器目前只支援 x86 系統映像)。
-
-
-
-  <li>完成其餘的 AVD 設定，然後按一下 [Finish]<strong></strong>。
-</li>
-</ol>
-
-<p>您現在可以使用 Android N Preview AVD 啟動 Android 模擬器。</p>
-
-<p>
-為了在 Android 模擬器中獲得最佳體驗，請安裝 Android Studio 2.1 Preview，它支援 <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>，效能比 Android Studio 1.5 中的模擬器快。
-
-
-</p>
-
-<p class="note"><strong>注意：</strong>如果您目前使用 Android Studio 2.0 Beta，它已知會出現阻止您使用 N Preview 系統映像建立 AVD 的問題，所以您目前需要使用 Android Studio 2.1 預覽版來建立 AVD。
-
-
-
-</p>
-
-<p>如需建立虛擬裝置的詳細資訊，請參閱<a href="{@docRoot}tools/devices/index.html">管理虛擬裝置</a>。
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html-intl/intl/zh-tw/preview/overview.jd b/docs/html-intl/intl/zh-tw/preview/overview.jd
deleted file mode 100644
index 590afe5..0000000
--- a/docs/html-intl/intl/zh-tw/preview/overview.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=計劃總覽
-page.metaDescription=讓您的應用程式為下一版 Android 做好準備。
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-<!--
-<div class="cols" style=
-"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview 3 is now available
-  </h3>
-  <p>Includes final SDK and near-final system images</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-notes">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#preview3-get">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Get the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  歡迎使用「Android N Developer Preview」<strong></strong>，本計劃提供為新版 Android 測試和最佳化您應用程式所需的一切。它是免費的，而且您可以下載「N Developer Preview」工具來立刻開始。
-
-
-
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        硬體與模擬器映像
-      </h5>
-
-      <p>
-        在各種裝置上或在模擬器上執行並測試您的應用程式。
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        最新的平台程式碼
-      </h5>
-
-      <p>
-        我們將在 Preview 期間提供每月更新，讓您能夠針對最新的平台變更進行測試。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        開發人員問題的優先順序
-      </h5>
-
-      <p>
-        在前幾個星期內，我們將讓開發人員優先回報問題，因此請儘快測試並提供意見回饋。
-
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        新行為與功能
-      </h5>
-
-      <p>
-        儘早開始開發以支援新的平台行為，並使用新功能來開發。
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        更新是透過隔空傳輸 (OTA) 方式傳遞
-      </h5>
-
-      <p>
-        透過「Android Beta 計劃」，可以在任何支援的裝置上透過無接縫的隔空傳輸方式取得更新。不需要刷機。
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        意見回饋與支援
-      </h5>
-
-      <p>
-        使用我們的<a href="{@docRoot}preview/bug">問題追蹤器</a>回報問題並提供意見回饋。與 <a href="{@docRoot}preview/dev-community">N&nbsp;開發人員社群</a>中的開發人員互動。
-
-
-
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">時間軸與更新</h2>
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  「N Developer Preview」計畫日期從 2016 年 3 月 9 日到最終 Android N 公開發行版釋出給 AOSP 與 OEM 為止 (預計是 2016 年第 3 季)。
-
-</p>
-
-<p>
-  在關鍵開發里程碑，我們將為您的開發與測試環境傳遞更新。一般而言，您可以預期每個月 (4 到 6 週的間隔) 都能收到更新。里程碑列出如下。
-
-
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html">預覽版 1</a></strong> (初始版本，Alpha)</li>
-  <li><strong>預覽版 2</strong> (遞增更新，Beta)</li>
-  <li><strong>預覽版 3</strong> (遞增更新，Beta)</li>
-  <li><strong>預覽版 4</strong> (最終 API 與正式 SDK，Play 發佈)</li>
-  <li><strong>預覽版 5</strong> (用於最終測試的近最終系統映像)</li>
-  <li><strong>最終版本</strong> (推出給 AOSP 與生態系統)</li>
-</ul>
-
-<p>
-  每個更新都包括 SDK 工具、預覽版系統映像、模擬器、參考文件與 API 差異。
-
-</p>
-
-<p>
-  <strong>前三個預覽版里程碑</strong>提供<strong>早期測試與開發環境</strong>，可協助您發現目前應用程式中的相容性問題，並針對在新平台運作的目標規劃遷移或功能工作。您可以在這個優先順序期間將您對功能與 API 和檔案相容性問題的意見回饋提供給我們 &mdash; 對於上述所有問題，請使用<a href="{@docRoot}preview/bug">問題追蹤器</a>。您可以預期這些更新之間會有一些 API 變更。
-
-
-
-
-
-
-</p>
-
-<p>
-  在<strong>預覽版 4 與 5</strong>，您將能存取<strong>最終 N API 與 SDK</strong> 以進行開發，並存取接近最終系統映像來測試系統行為與功能。Android N 在此時將提供標準 API 層級。您可以開始為您的舊版應用程式執行最終相容性測試，並調整使用 N API 或功能的任何新程式碼。
-
-
-
-
-</p>
-
-<p>
-  此外，從預覽版 4 開始，您可以<strong>發佈應用程式到執行 Android N 的裝置 (在正式 API 層級)</strong>，例如已選擇加入 Android Beta 計劃的使用者裝置。您可以先發佈到 Google Play 的 Alpha 與 Beta 管道，以便在廣泛於商店中散佈之前，先透過 Android Beta 使用者測試您的應用程式。
-
-
-
-
-
-</p>
-
-<p>
-  當您在 Android N 上測試及開發時，強烈建議您在預覽版更新發行時立即更新，<strong>讓您的開發環境保持在最新狀態</strong>。為簡化此程序，您可以在 Android Beta 計劃中註冊您的測試裝置，並在每個里程碑取得<strong>隔空傳輸 (OTA) 更新</strong>。或者，我們也會提供已更新的預覽版映像讓您下載並手動刷新。
-
-
-
-
-
-</p>
-
-<p>
-  我們將透過 <a href="http://android-developers.blogspot.com/">Android 開發人員部落格</a>，還有此網站與 <a href="{@docRoot}preview/dev-community">Android N 開發人員社群</a>來通知您有可用的預覽版更新。
-
-
-</p>
-
-
-<h2 id="preview_tools">N Developer Preview 中有什麼？</h2>
-
-<p>
-  「N Developer Preview」包括您針對各種不同螢幕大小、網路技術、 CPU/GPU 晶片組與硬體架構，測試現有應用程式所需的一切。
-
-
-</p>
-
-<h3 id="sdk_tools">SDK 工具</h3>
-
-<p>您可以透過 <a href="{@docRoot}sdk/installing/adding-packages.html">Android Studio</a> 中的 SDK Manager 下載這些元件：</p>
-
-<ul>
-  <li> N Developer Preview <strong>SDK 工具</strong>
-  <li> N Developer Preview <strong>模擬器系統映像</strong> (32 位元與 64 位元)
-  <li> N Developer Preview <strong>模擬器系統映像 (適用於 Android TV)</strong> (32 位元)
-  <li> N Developer Preview 支援程式庫 (適用於新的應用程式範本)
-</ul>
-
-<p>
-  我們將視需要在每個里程碑提供這些開發工具的更新。
-</p>
-
-<h3 id="hardware_system_images">硬體系統映像</h3>
-
-<p>
-  「N Developer Preview」包括 Nexus 以及在實體裝置上測試及開發時可以使用的其他硬體系統映像。如需硬體映像的完整清單，請參閱<a href="{@docRoot}preview/download.html">裝置映像</a>頁面。
-
-
-</p>
-
-<p>
-  我們將在每個里程碑傳遞已更新的系統映像。您可以下載已更新的系統映像並手動將它刷到您的測試裝置，而且刷機頻率無限制。當您需要在自動化測試環境多次刷新您裝置時，這特別實用。
-
-
-
-
-</p>
-
-<p class="note"><strong>注意</strong>：<strong>手動刷新的裝置將無法像去年的預覽版一樣取得 OTA 更新</strong>。今年，您可以透過在「Android Beta 計劃」註冊裝置以取得 OTA &mdash; 請參閱下一節的詳細資料。
-
-
-
-</p>
-
-<h3 id="android_beta">透過 Android Beta 計劃取得 OTA 更新</h3>
-
-<p>
-  Android N 中的其中一個新功能是隔空傳輸 (OTA) 更新計劃，它可以自動將最新的 Android N 預覽版更新直接傳遞給已註冊此計劃的裝置。加入此計劃完全免費，而且此計劃開放給所有擁有支援裝置並已註冊 Google 帳戶的人。
-
-
-
-</p>
-
-<p>
-  如果要註冊此計劃，請瀏覽 <a href="https://g.co/androidbeta">Android Beta 計劃</a>網站。您將會看到已在您的帳戶註冊且符合加入 Android Beta 計劃的所有裝置。
-
-
-
-</p>
-
-<ol>
-  <li> 選擇要接收 Android N 更新的裝置
-  <li> 按一下 [Enroll]，閱讀並同意服務條款，然後按一下 [OK]。
-</ol>
-
-<p>
-  一旦註冊，您的裝置很快就會收到更新。在大部分情況下，您不需要執行完整重設以將您的資料移到 Android N，但建議您先備份重要資料，再註冊裝置。
-
-
-
-</p>
-
-<p>
-  當更新傳遞到您的裝置之後，建議您儘快下載並安裝。您將能掌握系統 UI、行為、API 與功能的最新變更。
-
-
-</p>
-
-<p>
-  在「Developer Preview」結束時，您已註冊的裝置將會收到正式 Android N 版本的更新。
-
-</p>
-
-<p>
-  您可以隨時取消註冊 Android Beta 計劃。在取消註冊之前，請務必備份裝置上的資料。
-
-
-</p>
-
-  <p class="note"><strong>注意</strong>：當您取消註冊時，<strong>系統會將您的裝置還原為出廠預設值</strong>並更新到最新版本的 Android 6.0 Marshmallow (不一定是註冊裝置之前安裝的版本)。為確保乾淨的安裝，系統會將您的資料從裝置清除，包括聯絡人、訊息與相片等。
-
-
-
-
-
-
-</p>
-
-<h3 id="documentation_and_sample_code">文件與範例程式碼</h3>
-
-<p>
-  「Developer Preview」網站上提供這些文件資源，協助您了解 Android&nbsp;N：
-
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">設定以針對 Android N 開發</a>提供逐步指示協助您開始。
-
-</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">行為變更</a>指出要測試的關鍵區域。
-</li>
-  <li> 新 API 的文件，包括 <a href="{@docRoot}preview/api-overview.html">API 總覽</a>、可下載的 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 參考資料</a>與詳細關鍵功能 (例如多視窗支援、整合式通知、多地區設定支援等) 的開發人員指南。
-
-
-
-  <li> 示範如何支援權限與其他新功能的<a href="{@docRoot}preview/samples.html">範例程式碼</a>。
-
-  <li> 適用於目前 N Developer Preview 的<a href="{@docRoot}preview/support.html#release-notes">版本資訊</a>，包括變更資訊與差異報告。
-
-
-</ul>
-
-<h4 id="reference">可下載的 API 參考資料</h4>
-
-<p>
-  在早期預覽版更新期間，您能以獨立 zip 壓縮檔的形式下載最新的 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Android N 平台 API 參考資料</a>。下載的參考資料也包括差異報告，可協助您瞭解自 API 23 與前次更新之後的 API 變更。
-
-
-
-
-</p>
-
-<p>
-  當 Android N API 邁入最終階段且我們為它指派正式 API 層級時，我們將在 <a href="https://developer.android.com">https://developer.android.com</a> 為您提供線上 API 參考資料。
-
-</p>
-
-<h3 id="support_resources">
-  支援資源
-</h3>
-
-<p>
-  在「N Developer Preview」上測試及開發時，請使用這些管道來回報問題及提供意見回饋：
-
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview 問題追蹤器</a>是您的<strong>主要意見回饋管道</strong>。您可以透過此問題追蹤器來回報錯誤、效能問題與一般意見回饋。您也可以檢查<a href="{@docRoot}preview/bug">已知問題</a>並尋找變通方式步驟。當您的問題經過分類並傳送給 Android 工程團隊檢閱時，我們會通知您。
-
-
-
-
- </li>
-  <li> <a href="{@docRoot}preview/dev-community">Android N 開發人員社群</a>是您能<strong>與其他 Android N 開發人員聯絡</strong>的 Google+ 社群。您可以分享有關 Android N 的觀察或想法，或尋找解答。我們會主持社群並視需要提供解答與指導方針。
-
-
-
-</li>
-</ul>
-
-<h3 id="targeting">目標設定、預覽版 API 及發佈</h3>
-
-<p>
-  「N Developer Preview」提供僅供開發的系統與<strong>沒有標準 API 層級</strong>的 Android 程式庫。如果要選擇退出相容性行為以測試您的應用程式 (強烈建議)，您可以透過將您應用程式的 <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> 設定為 <code>“N”</code>，以便以 Android N 預覽版。做為目標。
-
-
-
-
-
-</p>
-
-<p>
-  「Android N Developer Preview」提供<strong>預覽版 API</strong> &mdash; 在最終版 SDK (目前規劃在 2016 年第 3 季) 發行之前的都不是正式 API。這表示您可以預期這段時間會有<strong>小幅度的 API 變更</strong>，特別是在計劃開始的前幾週。隨著每次更新「Android N Developer Preview」，我們將提供變更摘要。
-
-
-
-
-
-</p>
-
-<p class="note">
-  <strong>注意</strong>：雖然預覽版 API 可能會變更，基本系統行為均已穩定且能夠立即測試。
-
-
-</p>
-
-<p>
-  Google Play <strong>會防止發佈目標為 N Developer Preview 的應用程式</strong>。當 Android N 最終 SDK 可用時，您將能以正式 Android N API 層級做為目標，並透過 Alpha 與 Beta 發行管道將您的應用程式發佈到 Google Play。同時，如果要將目標為 Android N 的應用程式散佈給測試人員，您可以透過電子郵件或您網站的直接下載連結來完成。
-
-
-
-
-
-</p>
-
-<p>
-  在完全將 Android N 釋出給 AOSP 與 OEM 時 (預計是 2016 年第 3 季)，您可以將以 Android N 為目標的發佈發佈給 Google Play 中的公開發行管道。
-
-
-</p>
-
-
-<h2 id="how_to_get_started">如何開始</h2>
-
-<p>
-  開始使用 Android N 測試您的應用程式：
-</p>
-
-<ol>
-  <li> 檢閱 <a href="{@docRoot}preview/api-overview.html">API 總覽</a>與<a href="{@docRoot}preview/behavior-changes.html">行為變更</a>以瞭解新功能，以及它會如何影響您的應用程式。特別是瞭解新的<a href="{@docRoot}preview/features/notification-updates.html">通知</a>功能與<a href="{@docRoot}preview/features/multi-window.html">多視窗支援</a>。
-
-
-
-</li>
-  <li> 依照<a href="{@docRoot}preview/setup-sdk.html">設定 Preview SDK</a> 的指示來設定您的環境，並設定測試裝置。
-</li>
-  <li> 依照<a href="https://developers.google.com/android/nexus/images">刷新指示</a>，將您的裝置刷新為最新的 Android N 系統映像。
- </li>
-  <li> 檢閱 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API 參考資料</a>與 <a href="{@docRoot}preview/samples.html">Android N 範例</a>，以深入瞭解新的 API 功能以及如何在您的應用程式中運用。
-
-
-  <li> 加入 <a href="{@docRoot}preview/dev-community">Android N 開發人員社群</a>以取得最新消息，並與使用新平台的開發人員聯絡
-
-</li>
-</ol>
-
-<p>
-  感謝您參與「Android N Developer Preview」計劃！
-</p>
diff --git a/docs/html-intl/intl/zh-tw/preview/setup-sdk.jd b/docs/html-intl/intl/zh-tw/preview/setup-sdk.jd
deleted file mode 100644
index b486ed4..0000000
--- a/docs/html-intl/intl/zh-tw/preview/setup-sdk.jd
+++ /dev/null
@@ -1,223 +0,0 @@
-page.title=設定 Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">取得 Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">取得 Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">參考文件</a>
-    </ol>
-  </li>
-  <li><a href="#java8">取得 Java 8 JDK 與 JRE</a></li>
-  <li><a href="#create-update">更新或建立專案</a></li>
-  <li><a href="#next">後續步驟</a></li>
-</ol>
-  </div>
-</div>
-
-<p>如果要開發適用於「Android N Preview」的應用程式，您必須為您的開發人員環境進行一些更新，如此頁面上所述。
-</p>
-
-<p>如果只要在 Android N 系統映像上測試您應用程式的相容性，請依照<a href="{@docRoot}preview/download.html">在 Android N 裝置上測試</a>中的指南執行。
-</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">取得 Android Studio 2.1 (預覽版)</h2>
-
-<p>Android N 平台新增對 <a href="{@docRoot}preview/j8-jack.html">Java 8 語言功能</a>的支援，它需要名為 Jack 的新編譯器。目前，只有 Android Studio 2.1 中才支援最新的 Jack 版本。因此，如果要使用 Java 8 語言功能，您必須使用 Android Studio 2.1 來建置您的應用程式。否則，您不需要使用 Jack 編譯器，但您仍需要更新到 JDK 8 以針對 Android N 編譯，如下所述。
-
-
-
-
-
-
-</p>
-
-<p>Android Studio 2.1 目前在早期測試發行管道中是以預覽版形式提供。如果您已經有 Android Studio 但不想要更新到早期測試管道，您可以下載 Android Studio 2.1 並另行安裝，並使用它來針對 Android N 進行開發，這樣並不會影響您的主要 Android Studio 環境。
-
-
-
-
-</p>
-
-<p>如果要下載 Android Studio 2.1 並另行安裝，請依照這些步驟執行 (或者，如果要以現有安裝之更新的形式接收 Android Studio 2.1，請跳到步驟 4)：
-
-</p>
-
-<ol>
-  <li>編輯現有 Android Studio 安裝的名稱，並附加版本號碼。這樣，當您安裝新版本時，它將不會覆寫現有的版本。
-
-</li>
-  <li>從<a href="http://tools.android.com/download/studio/canary/latest">早期測試管道下載頁面</a>針對您的作業系統下載適當的 ZIP 檔案。
-
-  </li>
-  <li>將套件解壓縮，並將 Android Studio 2.1 內容移動到系統上應用程式的適當位置，然後將它啟動。
-</li>
-  <li>開啟 [Settings] 對話方塊 (在 Windows/Linux 上是 [File] &gt; [Settings]<strong></strong>，在 Mac 上是 [Android Studio] &gt; [Preferences]<strong></strong>)。在左面板中，選取 [Appearance &amp; Behavior] &gt; [System Settings] &gt; [Updates]<strong></strong>。
-
-
-
-
-  </li>
-  <li>在 [Updates] 面板上，選取 [Automatically check updates for]<strong></strong> 核取方塊，然後從下拉式清單選取 [Canary Channel]<strong></strong>。
-
-
-  </li>
-</ol>
-
-<p>針對下一個步驟，將此設定視窗維持開啟。</p>
-
-
-<h2 id="get-sdk">取得 N Preview SDK</h2>
-
-<p>如果要開始使用 Android N API 來開發，您必須在 Android Studio 中安裝 Android N Preview SDK，如下所示：
-</p>
-
-<ol>
-  <li>在仍於 [Updates] 面板 (上面的步驟 4) 中檢視時，選取 [Automatically check updates for Android SDK]<strong></strong> 核取方塊，然後從下拉式清單中選取 [Preview Channel]<strong></strong>。
-
-
-
-  </li>
-  <li>按一下 [Check Now]<strong></strong>。</li>
-
-  <li>在左面板中，選取 [Appearance &amp; Behavior] &gt; [System Settings] &gt; [Android SDK]<strong></strong>。
-
-
-  <li>按一下 [SDK Platforms]<strong></strong> 分頁，然後選取 [Android N Preview]<strong></strong> 核取方塊。
-</li>
-
-  <li>按一下 [SDK Tools]<strong></strong> 分頁，然後選取 [Android SDK Build Tools]<strong></strong>、[Android SDK Platform-Tools]<strong></strong> 與 [Android SDK Tools]<strong></strong> 核取方塊。
-
-
-
-  </li>
-
-  <li>按一下 [OK]<strong></strong>，然後接受要安裝之任何套件的授權合約。
-
-  </li>
-</ol>
-
-<h3 id="docs-dl">取得 N Preview 參考文件</h3>
-
-<p>
-  您可以在 N Preview 參考文件 (可從下表下載) 中找到有關 Android N API 的詳細資訊。此套件包含 Android 開發人員網站的已刪節離線版本，而且包括適用於 Android N API 的已更新 API 參考資料與 API 差異報告。
-
-
-
-
-</p>
-
-<table>
-  <tr>
-    <th scope="col">文件</th>
-    <th scope="col">總和檢查碼</th>
-  </tr>
-  <tr>
-    <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-1-docs.zip">n-preview-1-docs.zip</a></td>
-    <td width="100%">
-      MD5：4ab33ccbe698f46f125cc5b807cf9c2f<br>
-      SHA-1：6a3880b3ccd19614daae5a4d0698ea6ae11c20a5
-    </td>
-  </tr>
-</table>
-
-
-
-<h2 id="java8">取得 Java 8 JDK 與 JRE</h2>
-
-<p>如果要針對 Android N 平台編譯您的應用程式，您必須使用 Java 8 開發人員套件 (JDK 8)，而且如果要使用某些工具來搭配 Android Studio 2.1，您必須安裝 Java 8 執行階段環境 (JRE 8)。因此，如果您沒有最新版本的 JDK 8 與 JRE 8，請立即下載。
-
-
-
-</p>
-
-<p>接著，在 Android Studio 中設定 JDK 版本，如下所示：</p>
-
-<ol>
-  <li>在 Android Studio 中開啟 Android 專案，然後選取 [File] &gt; [Project Structure] 以開啟 [Project Structure] 對話方塊 <strong></strong>(或者，您可以選取 [File] &gt; [Other Settings] &gt; [Default Project Structure]<strong></strong>，以針對所有專案設定預設值)。
-
-
-
-
-   </li>
-   <li>在對話方塊的左面板中，按一下 [SDK Location]<strong></strong>。
-   </li>
-   <li>在 [JDK Location]<strong></strong> 欄位中，輸入 Java 8 JDK 的位置 (按一下右邊的按鈕以瀏覽您的檔案)，然後按一下 [OK]<strong></strong>8 。
-
-
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
-
-
-<h2 id="create-update">更新或建立專案</h2>
-
-<p>
-  如果要使用 Android N API，您必須適當地設定您的專案。
-</p>
-
-<p>如果計畫使用 Java 8 語言功能，您也應該閱讀 <a href="{@docRoot}preview/j8-jack.html">Java 8 語言功能</a>，以取得支援之 Java 8 功能以及如何搭配 Jack 編譯器設定您專案的詳細資訊。
-
-
-</p>
-
-
-<h3 id="update">更新現有的專案</h3>
-
-<p>開啟模組的 <code>build.gradle</code> 檔案並更新值，如下所示：
-
-
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>'android-N'</strong>
-  buildToolsVersion <strong>'24.0.0-rc1'</strong>
-  ...
-
-  defaultConfig {
-     minSdkVersion <strong>'N'</strong>
-     targetSdkVersion <strong>'N'</strong>
-     ...
-  }
-  ...
-}</pre>
-
-
-<h3 id="create">建立新專案</h3>
-
-
-<p>使用 Android N Preview SDK 建立新的開發專案：</p>
-
-<ol>
-  <li>按一下 [File] &gt; [New Project]<strong></strong>，並依照步驟執行，直到到達 [Target Android Devices] 頁面。
-
-  </li>
-  <li>在此頁面上，選取 [Phone and Tablet]<strong></strong> 選項。</li>
-  <li>在 [Phone and Tablet]<strong></strong> 選項下，在 [Minimum SDK]<strong></strong> 選項清單中，選取 [N: Android API 23, N Preview (Preview)]<strong></strong>。
-
-</li>
-</ol>
-
-
-<h2 id="next">後續步驟</h2>
-
-<ul>
-  <li>依照<a href="{@docRoot}preview/download.html">在 Android N 裝置上測試</a>中的指南執行。</li>
-  <li>深入了解 Android N 平台的<a href="{@docRoot}preview/behavior-changes.html">行為變更</a>與 <a href="{@docRoot}preview/api-overview.html">Android N API 與功能</a>。
-
-
-</li>
-</ul>
diff --git a/docs/html-intl/intl/zh-tw/preview/features/direct-boot.jd b/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
similarity index 99%
rename from docs/html-intl/intl/zh-tw/preview/features/direct-boot.jd
rename to docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
index 7e4ea73..fdcb172 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/direct-boot.jd
+++ b/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>此文件內容</h2>
   <ol>
     <li><a href="#run">要求直接開機期間的執行權限</a></li>
diff --git a/docs/html-intl/intl/zh-tw/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
similarity index 94%
rename from docs/html-intl/intl/zh-tw/preview/features/scoped-folder-access.jd
rename to docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
index 0a530d2..b1c1a76 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/scoped-folder-access.jd
+++ b/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>此文件內容</h2>
   <ol>
     <li><a href="#accessing">存取外部儲存空間目錄</a></li>
@@ -57,8 +57,8 @@
 <p>系統會嘗試授予對外部目錄的存取權，並在需要時使用簡化的 UI 向使用者確認存取權：
 </p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png" srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>圖 1.</strong> 應用程式要求對 [圖片] 目錄的存取權。
 </p>
 
diff --git a/docs/html-intl/intl/zh-tw/preview/features/security-config.jd b/docs/html-intl/intl/zh-tw/training/articles/security-config.jd
similarity index 99%
rename from docs/html-intl/intl/zh-tw/preview/features/security-config.jd
rename to docs/html-intl/intl/zh-tw/training/articles/security-config.jd
index 4fe8d0d..9b42b58 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/security-config.jd
+++ b/docs/html-intl/intl/zh-tw/training/articles/security-config.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>此文件內容</h2>
 <ol>
diff --git a/docs/html-intl/intl/zh-tw/preview/features/picture-in-picture.jd b/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
similarity index 97%
rename from docs/html-intl/intl/zh-tw/preview/features/picture-in-picture.jd
rename to docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
index 6b8a178..e643f65d 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/picture-in-picture.jd
+++ b/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>此文件內容</h2>
 <ol>
@@ -57,7 +57,7 @@
 
 使用者也可以透過 Recents 關閉 PIP 視窗。</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>圖 1.</strong> 當使用者瀏覽主畫面上的內容時，可看到螢幕角落的子母畫面中的影片。
 
 </p>
@@ -114,7 +114,7 @@
 <p>將 PIP 按鈕新增到媒體控制列，可讓您的使用者在控制影片播放時輕鬆地切換到 PIP 模式。
 </p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>圖 1.</strong> 媒體控制列上的子母畫面按鈕。
 </p>
 
diff --git a/docs/html-intl/intl/zh-tw/preview/features/tv-recording-api.jd b/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
similarity index 98%
rename from docs/html-intl/intl/zh-tw/preview/features/tv-recording-api.jd
rename to docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
index d857477..8b3a5ce 100644
--- a/docs/html-intl/intl/zh-tw/preview/features/tv-recording-api.jd
+++ b/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>此文件內容</h2>
   <ol>
     <li><a href="#supporting">指出錄製支援</a></li>
diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml
index 2b94718..a158114 100644
--- a/docs/html/_redirects.yaml
+++ b/docs/html/_redirects.yaml
@@ -23,6 +23,8 @@
   to: /studio/debug/index.html
 - from: /sdk/compatibility-library.html
   to: /topic/libraries/support-library/index.html
+- from: /billions
+  to: /topic/billions/index.html
 - from: /tools/extras/support-library.html
   to: /topic/libraries/support-library/index.html
 - from: /training/basics/fragments/support-lib.html
@@ -151,6 +153,8 @@
   to: /google/play/billing/index.html
 - from: /guide/developing/tools/proguard.html
   to: /studio/build/shrink-code.html
+- from: /guide/developing/tools/aidl.html
+  to: /guide/components/aidl.html
 - from: /guide/developing/tools/...
   to: /studio/command-line/
 - from: /guide/developing/...
@@ -321,6 +325,8 @@
   to: https://www.google.com/design/spec/layout/principles.html
 - from: /design/patterns/navigation-drawer.html
   to: https://www.google.com/design/spec/patterns/navigation-drawer.html
+- from: /design/patterns/notifications.html
+  to: https://material.google.com/patterns/notifications.html
 - from: /design/patterns/selection.html
   to: https://www.google.com/design/spec/patterns/selection.html
 - from: /design/patterns/settings.html
@@ -421,6 +427,8 @@
   to: /training/implementing-navigation/lateral.html
 - from: /training/cloudsync/aesync.html
   to: /google/gcm/index.html
+- from: /training/cloudsync/index.html
+  to: /training/backup/index.html
 - from: /training/basics/location/
   to: /training/location/
 - from: /training/monetization/index.html
@@ -473,6 +481,14 @@
   to: /distribute/stories/index.html
 - from: /distribute/stories/tablets.html
   to: /distribute/stories/index.html
+- from: /distribute/stories/glu-dh.html
+  to: /distribute/stories/games/glu-dh.html
+- from: /distribute/stories/apps/tapps.html
+  to: /distribute/stories/games/tapps.html
+- from: /distribute/stories/apps/upbeat-games.html
+  to: /distribute/stories/games/upbeat-games.html
+- from: /distribute/stories/games/two-dots.html
+  to: /distribute/stories/games/dots.html
 - from: /distribute/googleplay/edu/index.html
   to: /distribute/googleplay/edu/about.html
 - from: /distribute/googleplay/edu/contact.html
@@ -805,8 +821,8 @@
   to: /about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client
 - from: /shareables/...
   to: https://commondatastorage.googleapis.com/androiddevelopers/shareables/...
-- from: /downloads/
-  to: https://commondatastorage.googleapis.com/androiddevelopers/
+- from: /downloads/...
+  to: https://commondatastorage.googleapis.com/androiddevelopers/...
 - from: /training/performance/battery/network/action-any-traffic.html
   to: /topic/performance/power/network/action-any-traffic.html
 - from: /training/performance/battery/network/action-app-traffic.html
@@ -1202,9 +1218,45 @@
 - from: /r/studio-ui/menu-start.html
   to: /training/index.html?utm_medium=android-studio
 
-# N Preview redirects
-
+# Redirects from (removed) N Preview documentation
+- from: /preview/features/afw.html
+  to: https://developers.google.com/android/work/overview
+- from: /preview/features/multi-window.html
+  to: /guide/topics/ui/multi-window.html
+- from: /preview/features/icu4j-framework.html
+  to: /guide/topics/resources/icu4j-framework.html
 - from: /preview/features/key-attestation.html
   to: /training/articles/security-key-attestation.html
 - from: /preview/features/security-config.html
-  to: /training/articles/security-config.html
\ No newline at end of file
+  to: /training/articles/security-config.html
+- from: /preview/features/picture-in-picture.html
+  to: /training/tv/playback/picture-in-picture.html
+- from: /preview/features/tv-recording-api.html
+  to: /training/tv/tif/content-recording.html
+- from: /preview/features/direct-boot.html
+  to: /training/articles/direct-boot.html
+- from: /preview/features/scoped-folder-access.html
+  to: /training/articles/scoped-directory-access.html
+- from: /preview/features/notification-updates.html
+  to: /guide/topics/ui/notifiers/notifications.html
+- from: /preview/features/multilingual-support.html
+  to: /guide/topics/resources/multilingual-support.html
+- from: /preview/j8-jack.html
+  to: /guide/platform/j8-jack.html
+- from: /about/versions/marshmallow/samples.html
+  to: /about/versions/marshmallow/android-6.0-samples.html
+- from: /preview/behavior-changes.html
+  to: /about/versions/nougat/android-7.0-changes.html
+- from: /preview/samples.html
+  to: /about/versions/nougat/android-7.0-samples.html
+- from: /preview/guide.html
+  to: /about/versions/nougat/android-7.0-testing.html
+- from: /preview/api-overview.html
+  to: /about/versions/nougat/android-7.0.html
+- from: /preview/index.html
+  to: /about/versions/nougat/index.html
+- from: /preview/features/background-optimization.html
+  to: /topic/performance/background-optimization.html
+- from: /preview/features/data-saver.html
+  to: /training/basics/network-ops/data-saver.html
+
diff --git a/docs/html/about/_book.yaml b/docs/html/about/_book.yaml
index fdbe53f..958435d 100644
--- a/docs/html/about/_book.yaml
+++ b/docs/html/about/_book.yaml
@@ -1,4 +1,16 @@
 toc:
+- title: Nougat
+  path: /about/versions/nougat/index.html
+  section:
+  - title: Android 7.0 APIs
+    path: /about/versions/nougat/android-7.0.html
+  - title: Android 7.0 Changes
+    path: /about/versions/nougat/android-7.0-changes.html
+  - title: Android 7.0 Samples
+    path: /about/versions/nougat/android-7.0-samples.html
+  - title: Android 7.0 Testing
+    path: /about/versions/nougat/android-7.0-testing.html
+
 - title: Marshmallow
   path: /about/versions/marshmallow/index.html
   section:
@@ -7,7 +19,9 @@
   - title: Android 6.0 Changes
     path: /about/versions/marshmallow/android-6.0-changes.html
   - title: Android 6.0 Samples
-    path: /about/versions/marshmallow/samples.html
+    path: /about/versions/marshmallow/android-6.0-samples.html
+  - title: Android 6.0 Testing
+    path: /about/versions/marshmallow/android-6.0-testing.html
 
 - title: Lollipop
   path: /about/versions/lollipop.html
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 3cbfde9..f5d23e8 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -59,7 +59,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -81,7 +81,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016.
 
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
@@ -101,7 +101,7 @@
 
 
 <img alt="" style="float:right"
-src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A47.5%2C41.9%2C10.6&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
+src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A46.0%2C42.6%2C11.4&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
 
 <p>To declare which version of OpenGL ES your application requires, you should use the {@code
 android:glEsVersion} attribute of the <a
@@ -119,21 +119,21 @@
 </tr>
 <tr>
 <td>2.0</td>
-<td>47.5%</td>
+<td>46.0%</td>
 </tr>
 <tr>
 <td>3.0</td>
-<td>41.9%</td>
+<td>42.6%</td>
 </tr>
 <tr>
 <td>3.1</td>
-<td>10.6%</td>
+<td>11.4%</td>
 </tr>
 </table>
 
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016</em></p>
 
 
 
@@ -147,19 +147,19 @@
       "Large": {
         "hdpi": "0.5",
         "ldpi": "0.2",
-        "mdpi": "4.4",
+        "mdpi": "4.3",
         "tvdpi": "2.1",
         "xhdpi": "0.5"
       },
       "Normal": {
-        "hdpi": "40.9",
-        "mdpi": "4.1",
+        "hdpi": "40.0",
+        "mdpi": "3.8",
         "tvdpi": "0.1",
-        "xhdpi": "26.3",
-        "xxhdpi": "15.1"
+        "xhdpi": "27.3",
+        "xxhdpi": "15.5"
       },
       "Small": {
-        "ldpi": "1.9"
+        "ldpi": "1.8"
       },
       "Xlarge": {
         "hdpi": "0.3",
@@ -167,8 +167,8 @@
         "xhdpi": "0.7"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A2.1%2C11.4%2C2.2%2C41.7%2C27.5%2C15.1&chf=bg%2Cs%2C00000000&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chs=400x250&cht=p",
-    "layoutchart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A3.9%2C7.7%2C86.5%2C1.9&chf=bg%2Cs%2C00000000&chl=Xlarge%7CLarge%7CNormal%7CSmall&chs=400x250&cht=p"
+    "densitychart": "//chart.googleapis.com/chart?chd=t%3A2.0%2C11.0%2C2.2%2C40.8%2C28.5%2C15.5&chf=bg%2Cs%2C00000000&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&cht=p&chs=400x250&chco=c4df9b%2C6fad0c",
+    "layoutchart": "//chart.googleapis.com/chart?chd=t%3A3.9%2C7.6%2C86.7%2C1.8&chf=bg%2Cs%2C00000000&chl=Xlarge%7CLarge%7CNormal%7CSmall&cht=p&chs=400x250&chco=c4df9b%2C6fad0c"
   }
 ];
 
@@ -176,7 +176,7 @@
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A0.1%2C1.9%2C1.7%2C17.8%2C30.2%2C35.1%2C13.3&chf=bg%2Cs%2C00000000&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&chs=500x250&cht=p",
+    "chart": "//chart.googleapis.com/chart?chd=t%3A0.1%2C1.7%2C1.6%2C16.7%2C29.2%2C35.5%2C15.2&chf=bg%2Cs%2C00000000&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&cht=p&chs=500x250&chco=c4df9b%2C6fad0c",
     "data": [
       {
         "api": 8,
@@ -186,47 +186,47 @@
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "1.9"
+        "perc": "1.7"
       },
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "1.7"
+        "perc": "1.6"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "6.4"
+        "perc": "6.0"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "8.8"
+        "perc": "8.3"
       },
       {
         "api": 18,
         "name": "Jelly Bean",
-        "perc": "2.6"
+        "perc": "2.4"
       },
       {
         "api": 19,
         "name": "KitKat",
-        "perc": "30.1"
+        "perc": "29.2"
       },
       {
         "api": 21,
         "name": "Lollipop",
-        "perc": "14.3"
+        "perc": "14.1"
       },
       {
         "api": 22,
         "name": "Lollipop",
-        "perc": "20.8"
+        "perc": "21.4"
       },
       {
         "api": 23,
         "name": "Marshmallow",
-        "perc": "13.3"
+        "perc": "15.2"
       }
     ]
   }
diff --git a/docs/html/about/versions/android-5.0-changes.jd b/docs/html/about/versions/android-5.0-changes.jd
index 25d253f..0e9dac5 100644
--- a/docs/html/about/versions/android-5.0-changes.jd
+++ b/docs/html/about/versions/android-5.0-changes.jd
@@ -105,7 +105,9 @@
 
 <p>Make sure your notifications take these Android 5.0 changes into account.
  To learn more about designing your notifications for Android 5.0 and higher,
- see the <a href="{@docRoot}design/patterns/notifications.html">notifications design guide</a>.
+ see the <a
+ href="https://material.google.com/patterns/notifications.html">notifications
+ design guide</a>.
 </p>
 
 <h3 id="NotificationsMaterialDesignStyle">Material design style</h3>
diff --git a/docs/html/about/versions/marshmallow/samples.jd b/docs/html/about/versions/marshmallow/android-6.0-samples.jd
similarity index 100%
rename from docs/html/about/versions/marshmallow/samples.jd
rename to docs/html/about/versions/marshmallow/android-6.0-samples.jd
diff --git a/docs/html/preview/guide.jd b/docs/html/about/versions/marshmallow/android-6.0-testing.jd
similarity index 95%
copy from docs/html/preview/guide.jd
copy to docs/html/about/versions/marshmallow/android-6.0-testing.jd
index 28c0fe9..f9d9265 100644
--- a/docs/html/preview/guide.jd
+++ b/docs/html/about/versions/marshmallow/android-6.0-testing.jd
@@ -1,4 +1,4 @@
-page.title=Testing Guide
+page.title=Android 6.0 Testing Guide
 page.image=images/cards/card-n-guide_2x.png
 meta.tags="preview", "testing"
 page.tags="preview", "developer preview"
@@ -17,7 +17,7 @@
 </div>
 
 <p>
-  Android N gives you an opportunity to ensure your apps work with the next
+  Android 6.0 gives you an opportunity to ensure your apps work with the next
   version of the platform. This preview includes a number of APIs and behavior changes that can
   impact your app, as described in the <a href="{@docRoot}preview/api-overview.html">API
   Overview</a> and <a href="{@docRoot}preview/behavior-changes.html">Behavior Changes</a>. In testing
@@ -39,13 +39,6 @@
   <li><a href="#ids">Auto Backup and Device Identifiers</a></li>
 </ul>
 
-<p>
-  For more information about how to set up devices or virtual devices with a preview system image
-  for testing, see <a href="{@docRoot}preview/setup-sdk.html">Set up
-the Android N SDK</a>.
-</p>
-
-
 <h2 id="runtime-permissions">Testing Permissions</h2>
 
 <p>
diff --git a/docs/html/preview/behavior-changes.jd b/docs/html/about/versions/nougat/android-7.0-changes.jd
similarity index 91%
rename from docs/html/preview/behavior-changes.jd
rename to docs/html/about/versions/nougat/android-7.0-changes.jd
index ba08d9b..4f9054c 100644
--- a/docs/html/preview/behavior-changes.jd
+++ b/docs/html/about/versions/nougat/android-7.0-changes.jd
@@ -1,7 +1,7 @@
-page.title=Behavior Changes
+page.title=Android 7.0 Changes
 page.keywords=preview,sdk,compatibility
-meta.tags="preview", "compatibility"
-page.tags="preview", "developer preview"
+meta.tags="Android 7.0", "Nougat", "android n", "compatibility"
+page.tags="Android 7.0", "Nougat", "android n", "developer preview"
 page.image=images/cards/card-n-changes_2x.png
 @jd:body
 
@@ -44,7 +44,7 @@
 <h2>See Also</h2>
 <ol>
   <li><a href="{@docRoot}preview/api-overview.html">
-    Android N for Developers</a></li>
+    Android 7.0 APIs</a></li>
 </ol>
 
 </div>
@@ -52,7 +52,7 @@
 
 
 <p>
-  Along with new features and capabilities, Android N
+  Along with new features and capabilities, Android 7.0
   includes a variety of system and API behavior changes. This document
   highlights some of the key changes that you should understand and account for
   in your apps.
@@ -67,7 +67,7 @@
 <h2 id="perf">Battery and Memory</h2>
 
 <p>
-Android N includes system behavior changes aimed at improving the battery life
+Android 7.0 includes system behavior changes aimed at improving the battery life
 of devices and reducing RAM usage. These changes can affect your app’s access to
 system resources, along with the way your app interacts with other apps via
 certain implicit intents.
@@ -78,14 +78,14 @@
 <p>
   Introduced in Android 6.0 (API level 23), Doze improves battery life by
   deferring CPU and network activities when a user leaves a device unplugged,
-  stationary, and with the screen turned off. Android N brings further
+  stationary, and with the screen turned off. Android 7.0 brings further
   enhancements to Doze by applying a subset of CPU and network restrictions
   while the device is unplugged with the screen turned off, but not necessarily
   stationary, for example, when a handset is traveling in a user’s pocket.
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-1.png"
+<img src="{@docRoot}images/android-7.0/doze-diagram-1.png"
   alt="" height="251px" id="figure1" />
 <p class="img-caption">
   <strong>Figure 1.</strong> Illustration of how Doze applies a first level of
@@ -105,7 +105,7 @@
 </p>
 
 
-<img src="{@docRoot}preview/images/doze-diagram-2.png"
+<img src="{@docRoot}images/android-7.0/doze-diagram-2.png"
   alt="" id="figure2" />
 <p class="img-caption">
   <strong>Figure 2.</strong> Illustration of how Doze applies a second level of
@@ -128,7 +128,7 @@
 <h3 id="bg-opt">Project Svelte: Background Optimizations</h3>
 
 <p>
-  Android N removes three implicit broadcasts in order to help optimize both
+  Android 7.0 removes three implicit broadcasts in order to help optimize both
   memory use and power consumption. This change is necessary because implicit
   broadcasts frequently start apps that have registered to listen for them in
   the background. Removing these broadcasts can substantially benefit device
@@ -154,12 +154,12 @@
 </p>
 
 <p>
-  To alleviate these issues, Android N applies the following
+  To alleviate these issues, Android 7.0 applies the following
   optimizations:
 </p>
 
 <ul>
-  <li>Apps targeting Android N do not receive {@link
+  <li>Apps targeting Android 7.0 do not receive {@link
   android.net.ConnectivityManager#CONNECTIVITY_ACTION} broadcasts, even if they
   have manifest entries to request notification of these events. Apps that are
   running can still listen for {@code CONNECTIVITY_CHANGE} on their main thread
@@ -169,12 +169,12 @@
   <li>Apps cannot send or receive {@link
   android.hardware.Camera#ACTION_NEW_PICTURE} or {@link
   android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts. This optimization
-  affects all apps, not only those targeting Android N.
+  affects all apps, not only those targeting Android 7.0.
   </li>
 </ul>
 
 <p>If your app uses any of these intents, you should remove dependencies
-  on them as soon as possible so that you can target Android N devices properly.
+  on them as soon as possible so that you can target Android 7.0 devices properly.
   The Android framework provides several solutions to mitigate the need for
   these implicit broadcasts. For example, the {@link
   android.app.job.JobScheduler} API provides a robust mechanism to schedule
@@ -193,14 +193,14 @@
 <h2 id="perm">Permissions Changes</h2>
 
 <p>
-  Android N includes changes to permissions that may affect your app.
+  Android 7.0 includes changes to permissions that may affect your app.
 </p>
 
 <h3 id="permfilesys">File system permission changes</h3>
 
 <p>
   In order to improve the security of private files, the private directory of
-  apps targeting Android N or higher has restricted access (<code>0700</code>).
+  apps targeting Android 7.0 or higher has restricted access (<code>0700</code>).
   This setting prevents leakage of metadata of private files, such as their size
   or existence. This permission change has multiple side effects:
 </p>
@@ -232,7 +232,7 @@
     stored files by filename. Legacy applications may end up with an
     unaccessible path when accessing {@link
     android.app.DownloadManager#COLUMN_LOCAL_FILENAME}. Apps targeting
-    Android N or higher trigger a {@link java.lang.SecurityException} when
+    Android 7.0 or higher trigger a {@link java.lang.SecurityException} when
     attempting to access
     {@link android.app.DownloadManager#COLUMN_LOCAL_FILENAME}.
     Legacy applications that set the download location to a public location by
@@ -255,7 +255,7 @@
 <h2 id="sharing-files">Sharing Files Between Apps</h2>
 
 <p>
-For apps targeting Android N, the Android framework enforces
+For apps targeting Android 7.0, the Android framework enforces
 the {@link android.os.StrictMode} API policy that prohibits exposing {@code file://} URIs
 outside your app. If an intent containing a file URI leaves your app, the app fails
 with a {@code FileUriExposedException} exception.
@@ -272,7 +272,7 @@
 <h2 id="accessibility">Accessibility Improvements</h2>
 
 <p>
-  Android N includes changes intended to improve the usability of the
+  Android 7.0 includes changes intended to improve the usability of the
   platform for users with low or impaired vision. These changes should
   generally not require code changes in your app, however you should review
   these feature and test them with your app to assess potential impacts to user
@@ -283,7 +283,7 @@
 <h3 id="screen-zoom">Screen Zoom</h3>
 
 <p>
-  Android N enables users to set <strong>Display size</strong>which magnifies
+  Android 7.0 enables users to set <strong>Display size</strong>which magnifies
   or shrinks all elements on the screen, thereby improving device accessibility
   for users with low vision. Users cannot zoom the screen past a minimum screen
   width of <a href=
@@ -294,16 +294,16 @@
 <div class="cols">
 
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
 </div>
 <div class="col-6">
-  <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+  <img src="{@docRoot}images/android-7.0/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
 </div>
 
 </div> <!-- end cols -->
 <p class="img-caption">
   <strong>Figure 3.</strong> The screen on the right shows the effect of
-  increasing the Display size of a device running an Android N system image.
+  increasing the Display size of a device running an Android 7.0 system image.
 </p>
 
 
@@ -323,7 +323,7 @@
   Runtime Changes</a>, just as if the device's orientation had changed.
   </li>
 
-  <li>If an app targets Android N, all of its processes
+  <li>If an app targets Android 7.0, all of its processes
   (foreground and background) are notified of the configuration change as
   described in <a href=
   "{@docRoot}guide/topics/resources/runtime-changes.html">Handling
@@ -365,7 +365,7 @@
 <h3 id="vision-settings">Vision Settings in Setup Wizard</h3>
 
 <p>
-  Android N includes Vision Settings on the Welcome screen, where users can
+  Android 7.0 includes Vision Settings on the Welcome screen, where users can
   set up the following accessibility settings on a new device:
   <strong>Magnification gesture</strong>, <strong>Font size</strong>,
   <strong>Display size</strong> and <strong>TalkBack</strong>. This change
@@ -378,13 +378,13 @@
 <h2 id="ndk">NDK Apps Linking to Platform Libraries</h2>
 
 <p>
-  Starting in Android N, the system prevents apps from dynamically linking
+  Starting in Android 7.0, the system prevents apps from dynamically linking
   against non-NDK libraries, which may cause your app to crash. This change in
   behavior aims to create a consistent app experience across platform updates
   and different devices. Even though your code might not be linking against
   private libraries, it's possible that a third-party static library in your
   app could be doing so. Therefore, all developers should check to make sure
-  that their apps do not crash on devices running Android N. If your app uses
+  that their apps do not crash on devices running Android 7.0. If your app uses
   native code, you should only be using <a href=
   "{@docRoot}ndk/guides/stable_apis.html">public NDK APIs</a>.
 </p>
@@ -595,7 +595,7 @@
 <p>
   To help you identify issues loading private libraries, logcat may generate a
   warning or runtime error. For example, if your app targets API level 23 or
-  lower, and tries to access a private library on a device running Android N,
+  lower, and tries to access a private library on a device running Android 7.0,
   you may see a warning similar to the following:
 </p>
 
@@ -626,7 +626,7 @@
 <p>
   You may also see these logcat outputs if your app uses third-party libraries
   that dynamically link to private platform APIs. The readelf tool in the
-  Android NDK allows you to generate a list of all dynamically linked shared
+  Android 7.0DK allows you to generate a list of all dynamically linked shared
   libraries of a given <code>.so</code> file by running the following command:
 </p>
 
@@ -692,7 +692,7 @@
 
 <h2 id="afw">Android for Work</h2>
 <p>
-  Android N contains changes for apps that target Android for Work, including
+  Android 7.0 contains changes for apps that target Android for Work, including
   changes to certificate installation, password resetting, secondary user
   management, and access to device identifiers. If you are building apps for
   Android for Work environments, you should review these changes and modify
@@ -749,7 +749,7 @@
   DER-encoded format under a .crt or .cer file extension.
   </li>
 
-  <li>Starting in Android N, fingerprint enrollment and storage are managed per user.
+  <li>Starting in Android 7.0, fingerprint enrollment and storage are managed per user.
   If a profile owner’s Device Policy Client (DPC) targets pre-N on an N device,
   the user is still able to set fingerprint on the device, but work
   applications cannot access device fingerprint. When the DPC targets N and
@@ -765,7 +765,7 @@
   is returned, even if the encryption key is specific to the user or profile.
   </li>
 
-  <li>In Android N, several methods that would ordinarily affect the entire
+  <li>In Android 7.0, several methods that would ordinarily affect the entire
   device behave differently if the device has a work profile installed with a
   separate work challenge. Rather than affecting the entire device, these
   methods apply only to the work profile. (The complete list of such methods is
@@ -785,14 +785,14 @@
 </ul>
 
 <p>
-  For more information about changes to Android for Work in Android N, see
+  For more information about changes to Android for Work in Android 7.0, see
   <a href="{@docRoot}preview/features/afw.html">Android for Work Updates</a>.
 </p>
 
 <h2 id="annotations">Annotations Retention</h2>
 
 <p>
-Android N fixes a bug where the visibility of annotations was being ignored.
+Android 7.0 fixes a bug where the visibility of annotations was being ignored.
 This issue enabled the runtime to access annotations that it should not have been
 able to. These annotations included:
 </p>
@@ -811,7 +811,7 @@
 <h2 id="other">Other Important Points</h2>
 
 <ul>
-<li>When an app is running on Android N, but targets a lower API level,
+<li>When an app is running on Android 7.0, but targets a lower API level,
 and the user changes display size, the app process is killed. The app
 must be able to gracefully handle this scenario. Otherwise, it crashes
 when the user restores it from Recents.
@@ -830,7 +830,7 @@
 </li>
 
 <li>
-Apps on Android N should be able to gracefully handle configuration changes,
+Apps on Android 7.0 should be able to gracefully handle configuration changes,
 and should not crash on subsequent starts. You can verify app behavior
 by changing font size (<strong>Setting</strong> >
 <strong>Display</strong> > <strong>Font size</strong>), and then restoring
@@ -839,7 +839,7 @@
 
 <li>
 Due to a bug in previous versions of Android, the system did not flag writing
-to a TCP socket on the main thread as a strict-mode violation. Android N fixes this bug.
+to a TCP socket on the main thread as a strict-mode violation. Android 7.0 fixes this bug.
 Apps that exhibit this behavior now throw an {@code android.os.NetworkOnMainThreadException}.
 Generally, performing network operations on the main thread is a bad idea because these operations
 usually have a high tail latency that causes ANRs and jank.
@@ -860,7 +860,7 @@
 common example is storing too much data in
 {@link android.app.Activity#onSaveInstanceState Activity.onSaveInstanceState()},
 which causes {@code ActivityThread.StopInfo} to throw a
-{@code RuntimeException} when your app targets Android N.
+{@code RuntimeException} when your app targets Android 7.0.
 </li>
 
 <li>
@@ -881,7 +881,7 @@
 </li>
 
 <li>
-If an app on Android N with
+If an app on Android 7.0 with
 {@link android.Manifest.permission#DELETE_PACKAGES DELETE_PACKAGES}
 permission tries to delete a package, but a different app had installed that package,
 the system requires user confirmation. In this scenario, apps should expect
diff --git a/docs/html/preview/samples.jd b/docs/html/about/versions/nougat/android-7.0-samples.jd
similarity index 71%
rename from docs/html/preview/samples.jd
rename to docs/html/about/versions/nougat/android-7.0-samples.jd
index 1544d9c..98f7090 100644
--- a/docs/html/preview/samples.jd
+++ b/docs/html/about/versions/nougat/android-7.0-samples.jd
@@ -1,10 +1,10 @@
-page.title=Samples
-page.tags="preview", "samples", "android"
+page.title=Android 7.0 Samples
+page.tags="Android 7.0", "nougat", "samples", "android"
 page.image=images/cards/card-n-samples_2x.png
 @jd:body
 
 <p>
-  The following code samples are provided for Android N. To
+  The following code samples are provided for Android 7.0. To
   download the samples in Android Studio, select the <b>File &gt; Import
   Samples</b> menu option.
 </p>
@@ -16,7 +16,7 @@
 
 
 <h3 id="mw">Multi-Window Playground</h3>
-<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156"/>
+<img src="{@docRoot}images/android-7.0/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156"/>
 <p>
   This sample demonstrates how to take advantage of multiple window
   user interfaces with your app.
@@ -28,7 +28,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="an">Active Notifications</h3>
-<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   This is a pre-existing sample which shows a simple service that sends
   notifications using NotificationCompat. Each unread conversation from a user
@@ -45,7 +45,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="ms">Messaging Service</h3>
-<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<img src="{@docRoot}images/android-7.0/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
 <p>
   This is a pre-existing sample which demonstrates how to use
   NotificationManager to tell how many notifications an application is currently
@@ -62,7 +62,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="fbe">Direct Boot</h3>
-<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   This sample demonstrates how to store and access data in a device encrypted
   storage which is always available while the device is booted.
@@ -74,7 +74,7 @@
 
 <div style="clear: both;"></div>
 <h3 id="sda">Scoped Directory Access</h3>
-<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<img src="{@docRoot}images/android-7.0/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
 <p>
   This sample demonstrates how to read and write data from specific
   directories, while requiring fewer permissions.
@@ -82,4 +82,4 @@
 <p>
   <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
   Get it on GitHub</a>
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html/preview/guide.jd b/docs/html/about/versions/nougat/android-7.0-testing.jd
similarity index 97%
rename from docs/html/preview/guide.jd
rename to docs/html/about/versions/nougat/android-7.0-testing.jd
index 28c0fe9..f30382e 100644
--- a/docs/html/preview/guide.jd
+++ b/docs/html/about/versions/nougat/android-7.0-testing.jd
@@ -1,4 +1,4 @@
-page.title=Testing Guide
+page.title=Android 7.0 Testing Guide
 page.image=images/cards/card-n-guide_2x.png
 meta.tags="preview", "testing"
 page.tags="preview", "developer preview"
@@ -17,7 +17,7 @@
 </div>
 
 <p>
-  Android N gives you an opportunity to ensure your apps work with the next
+  Android 7.0 gives you an opportunity to ensure your apps work with the next
   version of the platform. This preview includes a number of APIs and behavior changes that can
   impact your app, as described in the <a href="{@docRoot}preview/api-overview.html">API
   Overview</a> and <a href="{@docRoot}preview/behavior-changes.html">Behavior Changes</a>. In testing
diff --git a/docs/html/preview/api-overview.jd b/docs/html/about/versions/nougat/android-7.0.jd
similarity index 88%
rename from docs/html/preview/api-overview.jd
rename to docs/html/about/versions/nougat/android-7.0.jd
index c7ffb7a..87c8d93 100644
--- a/docs/html/preview/api-overview.jd
+++ b/docs/html/about/versions/nougat/android-7.0.jd
@@ -1,6 +1,6 @@
-page.title=Android N for Developers
-meta.tags="preview", "androidn"
-page.tags="preview", "developer preview"
+page.title=Android 7.0 APIs
+meta.tags="Android 7.0", "android n", "Nougat"
+page.tags="Android 7.0", "Nougat", "android n", "developer preview"
 page.image=images/cards/card-n-apis_2x.png
 @jd:body
 
@@ -51,29 +51,27 @@
 
 
 
-<p>Android N is still in active development, but you can try it
-now as part of the N Developer Preview. The sections below highlight some of
-the new features for developers. </p>
-
 <p>
-  Make sure to check out the <a href=
-  "{@docRoot}preview/behavior-changes.html">Behavior Changes</a> to learn about
-  areas where platform changes may affect your apps, take a look at the
-  developer guides to learn more about key features, and download the <a href=
-  "{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a> for details on
-  new APIs.
+Android 7.0
+(<a href="{@docRoot}reference/android/os/Build.VERSION_CODES.html#N">N</a>) 
+offers new features for users and app developers. This document provides
+an introduction to the most notable APIs. Make sure, also,
+to check out the <href="{@docRoot}about/versions/nougat/behavior.changes.html">
+Behavior Changes</a> to learn about areas where platform changes
+may affect your apps. In addition, the various developer guides
+can provide more information about key features.
 </p>
 
 <h2 id="multi-window_support">Multi-window Support</h2>
 
 
-<p>In Android N, we're introducing a new and much-requested multitasking feature
-into the platform &mdash; multi-window support. </p>
+<p>In Android 7.0, we're introducing a new and much-requested
+multitasking feature into the platform &mdash; multi-window support. </p>
 
   <p>Users can now pop open two apps on the screen at once. </p>
   <ul>
   <li>On phones and tablets
-running Android N, users can run two apps side-by-side or
+running Android 7.0, users can run two apps side-by-side or
 one-above-the-other in splitscreen mode. Users can resize the apps by dragging
 the divider between them. </li>
 
@@ -84,7 +82,7 @@
   </ul>
 
 <div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;"
+<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;"
     id="img-split-screen" />
 <p class="img-caption">
   <strong>Figure 1.</strong> Apps running in split-screen mode.
@@ -111,8 +109,8 @@
 
 <h2 id="notification_enhancements">Notification Enhancements</h2>
 
-<p>In Android N we've redesigned notifications to make them easier and faster to
-use. Some of the changes include:</p>
+<p>In Android 7.0 we've redesigned notifications to make them easier and
+faster to use. Some of the changes include:</p>
 
 <ul>
   <li>
@@ -150,17 +148,17 @@
 </ul>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-1.png" alt=""
+  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt=""
   style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-3.png" alt=""
+  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt=""
   style="padding:.5em;max-width:226px">
 </div>
 
 <div class="col-4of12">
-  <img src="{@docRoot}preview/images/notifications-2.png" alt=""
+  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt=""
   style="padding:.5em;max-width:226px">
 </div>
 
@@ -177,17 +175,17 @@
 
 <h2 id="jit_aot">Profile-guided JIT/AOT Compilation</h2>
 
-<p>In Android N, we've added a Just in Time (JIT) compiler with code profiling to
-ART, which lets it constantly improve the performance of Android apps as they
-run. The JIT compiler complements ART's current Ahead of Time (AOT) compiler
-and helps improve runtime performance, save storage space, and speed up app
-updates and system updates.</p>
+<p>In Android 7.0, we've added a Just in Time (JIT) compiler with code
+profiling to ART, which lets it constantly improve the performance of
+Android apps as they run. The JIT compiler complements ART's current
+Ahead of Time (AOT) compiler and helps improve runtime performance, save
+storage space, and speed up app updates and system updates.</p>
 
-<p>Profile-guided compilation lets ART manage the AOT/JIT compilation for each app
-according to its actual usage, as well as conditions on the device. For
-example, ART maintains a profile of each app's hot methods and can precompile
-and cache those methods for best performance. It leaves other parts of the app
-uncompiled until they are actually used.</p>
+<p>Profile-guided compilation lets ART manage the AOT/JIT compilation for
+each app according to its actual usage, as well as conditions on the device.
+For example, ART maintains a profile of each app's hot methods and can
+precompile and cache those methods for best performance. It leaves other parts
+of the app uncompiled until they are actually used.</p>
 
 <p>Besides improving performance for key parts of the app, profile-guided
 compilation helps reduce an app's overall RAM footprint, including associated
@@ -210,14 +208,14 @@
 apps' CPU and network activities when the device is idle, such as when it's
 sitting on a table or in a drawer. </p>
 
-<p>Now in Android N, Doze takes a step further and saves battery while on the go.
+<p>Now in Android 7.0, Doze takes a step further and saves battery while on the go.
 Any time the screen is off for a period of time and the device is unplugged,
 Doze applies a subset of the familiar CPU and network restrictions to apps.
 This means users can save battery even when carrying their devices in their
 pockets.</p>
 
 
-<img src="/preview/images/doze-diagram-1.png"
+<img src="/images/android-7.0/doze-diagram-1.png"
   alt="" id="figure1" />
 <p class="img-caption">
   <strong>Figure 3.</strong> Doze now applies
@@ -245,7 +243,7 @@
 <h2 id="background_optimizations">Project Svelte: Background Optimizations</h2>
 
 <p>Project Svelte is an ongoing effort to minimize RAM use by system and apps
-across the range of Android devices in the ecosystem. In Android N, Project
+across the range of Android devices in the ecosystem. In Android 7.0, Project
 Svelte is focused on optimizing the way apps run in the background. </p>
 
 <p>Background processing is an essential part of most apps. When handled right, it
@@ -269,17 +267,17 @@
 
 <p>We're continuing to extend <code>JobScheduler</code> and
 <code>GCMNetworkManager</code> to meet more of
-your use cases &mdash; for example, in Android N you can now schedule background
+your use cases &mdash; for example, in Android 7.0 you can now schedule background
 work based on changes in Content Providers. At the same time we're starting to
 deprecate some of the older patterns that can reduce system performance,
 especially on low-memory devices.</p>
 
-<p>In Android N we're removing three commonly-used implicit broadcasts &mdash;
+<p>In Android 7.0 we're removing three commonly-used implicit broadcasts &mdash;
  {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
   android.hardware.Camera#ACTION_NEW_PICTURE}, and {@link
   android.hardware.Camera#ACTION_NEW_VIDEO} &mdash; since those can wake the
 background processes of multiple apps at once and strain memory and battery. If
-your app is receiving these, take advantage of the N Developer Preview to
+your app is receiving these, take advantage of the Android 7.0 to
   migrate to <code>JobScheduler</code> and related APIs instead. </p>
 
 <p>
@@ -290,7 +288,7 @@
 
 <h2 id="surfaceview">SurfaceView</h2>
 <p>
-Android N brings synchronous movement to the {@link android.view.SurfaceView}
+Android 7.0 brings synchronous movement to the {@link android.view.SurfaceView}
 class, which provides better battery performance
 than {@link android.view.TextureView} in certain cases: When rendering video or
 3D content, apps with scrolling and animated video position use less power with
@@ -311,14 +309,14 @@
 </p>
 
 <p>
-Starting with Android N, we strongly recommend that you save power by using
+Starting with Android 7.0, we strongly recommend that you save power by using
 {@link android.view.SurfaceView} instead of {@link android.view.TextureView}.
 </p>
 
 <h2 id="data_saver">Data Saver</h2>
 
 <div class="col-5of12" style="margin-right:1.5em;">
-<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
 
 <p class="img-caption" style="padding-right:2em;">
   <strong>Figure 4.</strong> Data Saver in Settings.
@@ -329,7 +327,7 @@
 exceeds the cost of the device itself. For many users, cellular data is an
 expensive resource that they want to conserve. </p>
 
-<p>Android N introduces Data Saver mode, a new system service that helps reduce
+<p>Android 7.0 introduces Data Saver mode, a new system service that helps reduce
 cellular data use by apps, whether roaming, near the end of the billing cycle,
 or on a small prepaid data pack. Data Saver gives users control over how apps
 use cellular data and lets developers provide more efficient service when Data
@@ -342,7 +340,7 @@
 and so on. Users can whitelist specific apps to allow background metered data
 usage even when Data Saver is turned on.</p>
 
-<p>Android N extends the {@link android.net.ConnectivityManager} to provide apps a
+<p>Android 7.0 extends the {@link android.net.ConnectivityManager} to provide apps a
 way to <a href="{@docRoot}preview/features/data-saver.html#status">retrieve the
 user's Data Saver preferences</a> and <a
 href="{@docRoot}preview/features/data-saver.html#monitor-changes">monitor
@@ -353,7 +351,7 @@
 <h2 id="vulkan">Vulkan API</h2>
 
 <p>
-  Android N integrates <a href="http://www.khronos.org/vulkan" class=
+  Android 7.0 integrates <a href="http://www.khronos.org/vulkan" class=
   "external-link">Vulkan™</a>, a new 3D rendering API, into the platform. Like
   <a href="https://www.khronos.org/opengles/" class="external-link">OpenGL™
   ES</a>, Vulkan is an open standard for 3D graphics and rendering maintained
@@ -368,7 +366,7 @@
 </p>
 
 <p>
-  Vulkan development tools and libraries are rolled into the Android NDK. They
+  Vulkan development tools and libraries are rolled into the Android 7.0DK. They
   include:
 </p>
 
@@ -401,7 +399,7 @@
 
 
 <div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
 
 <p class="img-caption" style="padding-left:2em;">
   <strong>Figure 5.</strong> Quick Settings tiles in the notification shade.
@@ -409,7 +407,7 @@
 
 
   </div><p>Quick Settings is a popular and simple way to expose key settings and actions,
-directly from the notification shade. In Android N, we've expanded the scope of
+directly from the notification shade. In Android 7.0, we've expanded the scope of
 Quick Settings to make it even more useful and convenient. </p>
 
 <p>We've added more room for additional Quick Settings tiles, which users can
@@ -417,7 +415,7 @@
 given users control over what Quick Settings tiles appear and where they are
 displayed &mdash; users can add or move tiles just by dragging and dropping them. </p>
 
-<p>For developers, Android N also adds a new API that lets you define your own
+<p>For developers, Android 7.0 also adds a new API that lets you define your own
   Quick Settings tiles to give users easy access to key controls and actions in your app.</p>
 
 <p>
@@ -441,7 +439,7 @@
 
 <h2 id="number-blocking">Number Blocking</h2>
 
-<p>Android N now supports number blocking in the platform and provides a
+<p>Android 7.0 now supports number blocking in the platform and provides a
 framework API to let service providers maintain a blocked-number list. The
 default SMS app, the default phone app, and carrier apps can read from and
 write to the blocked-number list. The list is not accessible to other apps.</p>
@@ -471,7 +469,7 @@
 <h2 id="call_screening">Call Screening</h2>
 
 <p>
-  Android N allows the default phone app to screen incoming calls. The phone
+  Android 7.0 allows the default phone app to screen incoming calls. The phone
   app does this by implementing the new <code>CallScreeningService</code>,
   which allows the phone app to perform a number of actions based on an
   incoming call's {@link android.telecom.Call.Details Call.Details}, such as:
@@ -493,20 +491,20 @@
 <h2 id="multi-locale_languages">Multi-locale Support, More Languages</h2>
 
 
-<p>Android N now lets users select <strong>multiple locales</strong> in Settings,
+<p>Android 7.0 now lets users select <strong>multiple locales</strong> in Settings,
 to better support bilingual use-cases. Apps can use
 a new API to get the user's selected locales and then offer more sophisticated
 user experiences for multi-locale users &mdash; such as showing search results in
 multiple languages and not offering to translate webpages in a language the
 user already knows.</p>
 
-<p>Along with multi-locale support, Android N also expands the range of languages
+<p>Along with multi-locale support, Android 7.0 also expands the range of languages
 available to users. It offers more than 25 variants each for commonly used
 languages such as English, Spanish, French, and Arabic. It also adds partial
 support for more than 100 new languages.</p>
 
 <p>Apps can get the list of locales set by the user by calling
-<code>LocaleList.GetDefault()</code>.  To support the expanded number of locales, Android N is
+<code>LocaleList.GetDefault()</code>.  To support the expanded number of locales, Android 7.0 is
 changing the way that it resolves resources. Make sure that you test and verify that your apps
 working as expected with the new resource resolution logic.</p>
 
@@ -518,7 +516,7 @@
 <h2 id="emoji">New Emojis</h2>
 
 <p>
-  Android N introduces additional emojis and emoji-related features including
+  Android 7.0 introduces additional emojis and emoji-related features including
   skin tone emojis and support for variation
   selectors. If your app supports emojis,
   follow the guidelines below to take advantage of these emoji-related features.
@@ -544,7 +542,7 @@
       Unicode documentation on variations</a>.
   </li>
   <li>
-    <strong>Check that an emoji supports skin tone.</strong> Android N allows users to modify the
+    <strong>Check that an emoji supports skin tone.</strong> Android 7.0 allows users to modify the
     rendered skin tone of emojis to their preference. Keyboard apps should provide visual
     indications for emojis that have multiple skin tones and should allow users to
     select the skin tone that they prefer. To determine which system emojis have
@@ -560,7 +558,7 @@
 <h2 id="icu4">ICU4J APIs in Android</h2>
 
 <p>
-  Android N now offers a subset of <a href=
+  Android 7.0 now offers a subset of <a href=
   "http://site.icu-project.org/">ICU4J</a> APIs in the Android framework under
   the <code>android.icu</code> package. Migration is easy, and mostly entails
   simply changing from the <code>com.java.icu</code> namespace to
@@ -579,7 +577,7 @@
 <h3>Chrome + WebView, Together</h3>
 
 <p>
-  Starting with Chrome version 51 on Android N and above, the Chrome APK on your device
+  Starting with Chrome version 51 on Android 7.0 and above, the Chrome APK on your device
   is used to provide and render Android System WebViews. This approach improves memory
   usage on the device itself and also reduces the bandwidth required to keep
   WebView up to date (as the standalone WebView APK will no longer be updated
@@ -596,7 +594,7 @@
 <h3>Multiprocess</h3>
 
 <p>
-  Starting with Chrome version 51 in Android N, WebView will run web content in a
+  Starting with Chrome version 51 in Android 7.0, WebView will run web content in a
   separate sandboxed process when the developer option "Multiprocess WebView"
   is enabled.
 </p>
@@ -617,7 +615,7 @@
 
 <h3>Javascript run before page load</h3>
 <p>
-  Starting with apps targeting Android N, the Javascript context will be reset
+  Starting with apps targeting Android 7.0, the Javascript context will be reset
   when a new page is loaded. Currently, the context is carried over for the
   first page loaded in a new WebView instance.
 </p>
@@ -630,7 +628,7 @@
 <h3>Geolocation on insecure origins</h3>
 
 <p>
-  Starting with apps targeting Android N, the geolocation API will only be
+  Starting with apps targeting Android 7.0, the geolocation API will only be
   allowed on secure origins (over HTTPS.) This policy is designed to protect
   users’ private information when they’re using an insecure connection.
 </p>
@@ -640,7 +638,7 @@
 <p>
   WebView is updated regularly, so we recommend that you test compatibility
   with your app frequently using WebView’s beta channel. To get started testing
-  pre-release versions of WebView on Android N, download and install either
+  pre-release versions of WebView on Android 7.0, download and install either
   Chrome Dev or Chrome Beta, and select it as the WebView implementation under
   developer options as described above. Please report issues via the <a href=
   "https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">Chromium
@@ -656,7 +654,7 @@
 
 <h2 id="gles_32">OpenGL&trade; ES 3.2 API</h2>
 
-<p>Android N adds framework interfaces and platform support for OpenGL ES 3.2, including:</p>
+<p>Android 7.0 adds framework interfaces and platform support for OpenGL ES 3.2, including:</p>
 
 <ul>
   <li> All extensions from the <a class="external-link"
@@ -667,7 +665,7 @@
   <li> Robust buffer access control to reduce WebGL overhead.
 </ul>
 
-<p>The framework API for OpenGL ES 3.2 on Android N is provided with the
+<p>The framework API for OpenGL ES 3.2 on Android 7.0 is provided with the
 <code>GLES32</code> class. When using OpenGL ES 3.2, be sure to declare the
 requirement in your manifest file, using the <code>&lt;uses-feature&gt;</code> tag and
 the <code>android:glEsVersion</code> attribute. </p>
@@ -679,7 +677,7 @@
 
 <h2 id="android_tv_recording">Android TV Recording</h2>
 
-<p>Android N adds the ability to record and playback content from Android TV input
+<p>Android 7.0 adds the ability to record and playback content from Android TV input
 services via new recording APIs.  Building on top of existing time-shifting
 APIs, TV input services can control what channel data can be recorded, how
 recorded sessions are saved, and manage user interaction with recorded content. </p>
@@ -690,7 +688,7 @@
 
 <h2 id="android_for_work">Android for Work</h2>
 
-<p>Android for Work adds many new features and APIs for devices running Android N.
+<p>Android for Work adds many new features and APIs for devices running Android 7.0.
 Some highlights are below &mdash; for a complete list of changes, see
 <a href="{@docRoot}preview/features/afw.html">Android for Work Updates</a>.</p>
 
@@ -763,7 +761,7 @@
 
 <h2 id="accessibility_enhancements">Accessibility Enhancements</h2>
 
-<p>Android N now offers Vision Settings directly on the Welcome screen for new
+<p>Android 7.0 now offers Vision Settings directly on the Welcome screen for new
 device setup. This makes it much easier for users to discover and configure
 accessibility features on their devices, including magnification gesture, font
 size, display size, and TalkBack. </p>
@@ -773,7 +771,7 @@
 early with these settings enabled. You can enable them from Settings >
 Accessibility.</p>
 
-<p>Also in Android N, accessibility services can now help users with motor
+<p>Also in Android 7.0, accessibility services can now help users with motor
 impairments to touch the screen. The new API allows building services with
 features such as face-tracking, eye-tracking, point scanning, and so on, to
 meet the needs of those users.</p>
@@ -791,7 +789,7 @@
 the user as normal. This also means accessibility services can also be
   available immediately after a restart.</p>
 
-<p>Direct boot takes advantage of file based encryption in Android N
+<p>Direct boot takes advantage of file based encryption in Android 7.0
 to enable fine grained encryption policies for both system and app data.
 The system uses a device-encrypted store for select system data and explicitly
 registered app data. By default a credential-encrypted store is used for all
@@ -812,7 +810,7 @@
 <h2 id="key_attestation">Key Attestation</h2>
 
 <p>
-  Android N introduces <em>key attestation</em>, a new security tool that helps
+  Android 7.0 introduces <em>key attestation</em>, a new security tool that helps
   you make sure that the key pairs stored within a device's <a class=
   "external-link" href=
   "https://source.android.com/security/keystore/"><em>hardware-backed
@@ -836,8 +834,8 @@
 </p>
 
 <p class="note">
-  <strong>Note: </strong>Only a small number of devices running Android N
-  support hardware-level key attestation; all other devices running Android N
+  <strong>Note: </strong>Only a small number of devices running Android 7.0
+  support hardware-level key attestation; all other devices running Android 7.0
   use software-level key attestation instead. Before you verify the properties
   of a device's hardware-backed keys in a production-level environment, you
   should make sure that the device supports hardware-level key attestation. To
@@ -857,7 +855,7 @@
 
 <h2 id="network_security_config">Network Security Config</h2>
 
-<p>In Android N, apps can customize the behavior of their secure (HTTPS, TLS)
+<p>In Android 7.0, apps can customize the behavior of their secure (HTTPS, TLS)
 connections safely, without any code modification, by using the declarative
 <em>Network Security Config</em> instead of using the conventional
 error-prone programmatic APIs (e.g. X509TrustManager).</p>
@@ -884,7 +882,7 @@
 
 <h2 id="default_trusted_ca">Default Trusted Certificate Authority</h2>
 
-<p>By default, apps that target Android N only trust system-provided certificates
+<p>By default, apps that target Android 7.0 only trust system-provided certificates
 and no longer trust user-added Certificate Authorities (CA). Apps targeting Android
 N that wish to trust user-added CAs should use the
 <a href="{@docRoot}preview/features/security-config.html">Network Security Config</a> to
@@ -893,7 +891,7 @@
 <h2 id="apk_signature_v2">APK Signature Scheme v2</h2>
 
 <p>
-  Android N introduces APK Signature Scheme v2, a new app-signing scheme that
+  Android 7.0 introduces APK Signature Scheme v2, a new app-signing scheme that
   offers faster app install times and more protection against unauthorized
   alterations to APK files. By default, Android Studio 2.2 and the Android
   Plugin for Gradle 2.2 sign your app using both APK Signature Scheme v2 and
@@ -943,7 +941,7 @@
 
 <h2 id="scoped_directory_access">Scoped Directory Access</h2>
 
-<p>In Android N, apps can use new APIs to request access to specific <a
+<p>In Android 7.0, apps can use new APIs to request access to specific <a
 href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">external
 storage</a> directories, including directories on removable media such as SD
 cards. The new APIs greatly simplify how your application accesses standard
@@ -965,7 +963,7 @@
 <h2 id="keyboard_shortcuts_helper">Keyboard Shortcuts Helper</h2>
 
 <p>
-  In Android N, the user can press <strong>Meta + /</strong> to trigger a
+  In Android 7.0, the user can press <strong>Meta + /</strong> to trigger a
   <em>Keyboard Shortcuts</em> screen that displays all shortcuts available both
   from the system and from the app in focus. The system retrieves these
   shortcuts automatically from the app’s menu if the shortcuts exist. You can
@@ -992,7 +990,7 @@
 </h2>
 
 <p>
-  Android N introduces the Custom Pointer API, which lets you customize the
+  Android 7.0 introduces the Custom Pointer API, which lets you customize the
   appearance, visibility, and behavior of the pointer. This capability is
   especially useful when a user is using a mouse or touchpad to interact with
   UI objects. The default pointer uses a standard icon. This API also includes
@@ -1017,7 +1015,7 @@
 </p>
 
 <p>
-To address these limitations, Android N includes support for
+To address these limitations, Android 7.0 includes support for
 <em>sustained performance mode</em>, enabling OEMs to provide hints about
 device-performance capabilities for long-running apps. App developers
 can use these hints to tune apps for a predictable,
@@ -1025,7 +1023,7 @@
 </p>
 
 <p>
-App developers can try out this new API in the N Developer Preview on
+App developers can try out this new API in Android 7.0 on
 Nexus 6P devices only. To use this feature,
 set the sustained performance window flag for the window
 you want to run in sustained performance mode. Set this flag using the
@@ -1036,12 +1034,12 @@
 <h2 id="vr">VR Support</h2>
 
 <p>
-Android N adds platform support and optimizations for a new VR Mode to let developers
+Android 7.0 adds platform support and optimizations for a new VR Mode to let developers
 build high-quality mobile VR experiences for users. There are a number of performance
 enhancements, including access to an exclusive CPU core for VR apps.
 Within your apps, you can take advantage of intelligent head-tracking,
-and stereo notifications that work for VR. Most importantly, Android N provides for
-very low latency graphics. For complete information about building VR apps for Android N,
+and stereo notifications that work for VR. Most importantly, Android 7.0 provides for
+very low latency graphics. For complete information about building VR apps for Android 7.0,
 see the <a href="https://developers.google.com/vr/android/">Google VR SDK for Android</a>.
 </p>
 
@@ -1049,7 +1047,7 @@
 <h2 id="print_svc">Print Service Enhancements</h2>
 
 <p>
-  In Android N, print service developers can now surface additional information
+  In Android 7.0, print service developers can now surface additional information
   about individual printers and print jobs.
 </p>
 
@@ -1138,11 +1136,11 @@
 </p>
 
 <p>
-  Android N adds the concept of <em>virtual files</em> to the Storage Access
+  Android 7.0 adds the concept of <em>virtual files</em> to the Storage Access
   Framework. The virtual files feature allows your
   {@link android.provider.DocumentsProvider} to return document URIs that can be
   used with an {@link android.content.Intent#ACTION_VIEW} intent even if they
-  don't have a direct bytecode representation. Android N also allows you to
+  don't have a direct bytecode representation. Android 7.0 also allows you to
   provide alternate formats for user files, virtual or otherwise.
 </p>
 
diff --git a/docs/html/preview/index.jd b/docs/html/about/versions/nougat/index.jd
similarity index 94%
rename from docs/html/preview/index.jd
rename to docs/html/about/versions/nougat/index.jd
index 241a98e..aaf7e92 100644
--- a/docs/html/preview/index.jd
+++ b/docs/html/about/versions/nougat/index.jd
@@ -22,10 +22,9 @@
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
       <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          <strong>Android N final SDK is now available!</strong>
-          Get ready for Android N!
+          <strong>Android 7.0 Nougat brings a new crop of sweet features to your Android device.</strong>
           <strong>Test your apps</strong> on Nexus and other devices. Support new system
           behaviors to <strong>save power and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
@@ -49,9 +48,9 @@
     </div>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
+           data-maxResults="3"></div>
     </div>
   </div>
 </section>
@@ -128,7 +127,8 @@
     data-cardSizes="6x6"
     data-items-per-page="6"
     data-maxResults="15"
-    data-initial-results="3"></div>
+    data-initial-results="3">
+  </div>
 </div></section>
 
 
diff --git a/docs/html/auto/images/logos/auto/gmc.png b/docs/html/auto/images/logos/auto/gmc.png
index ab36da1..ee0c1bf 100644
--- a/docs/html/auto/images/logos/auto/gmc.png
+++ b/docs/html/auto/images/logos/auto/gmc.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/koenigsegg.png b/docs/html/auto/images/logos/auto/koenigsegg.png
new file mode 100644
index 0000000..f2cf17b
--- /dev/null
+++ b/docs/html/auto/images/logos/auto/koenigsegg.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/lada.png b/docs/html/auto/images/logos/auto/lada.png
index d172460..77bb5a4 100644
--- a/docs/html/auto/images/logos/auto/lada.png
+++ b/docs/html/auto/images/logos/auto/lada.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/opel.png b/docs/html/auto/images/logos/auto/opel.png
index fcb7040..ecae4db 100644
--- a/docs/html/auto/images/logos/auto/opel.png
+++ b/docs/html/auto/images/logos/auto/opel.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/peugeot.png b/docs/html/auto/images/logos/auto/peugeot.png
index d76a4bc..e2bce36 100644
--- a/docs/html/auto/images/logos/auto/peugeot.png
+++ b/docs/html/auto/images/logos/auto/peugeot.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/renault.png b/docs/html/auto/images/logos/auto/renault.png
index 2970430..c676bd1 100644
--- a/docs/html/auto/images/logos/auto/renault.png
+++ b/docs/html/auto/images/logos/auto/renault.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/seat.png b/docs/html/auto/images/logos/auto/seat.png
index 9802ccf..ddd9d05 100644
--- a/docs/html/auto/images/logos/auto/seat.png
+++ b/docs/html/auto/images/logos/auto/seat.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/ssangyong.png b/docs/html/auto/images/logos/auto/ssangyong.png
index 9e0f117..c50237a 100644
--- a/docs/html/auto/images/logos/auto/ssangyong.png
+++ b/docs/html/auto/images/logos/auto/ssangyong.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/tata.png b/docs/html/auto/images/logos/auto/tata.png
index dfc4a5f..fc405446 100644
--- a/docs/html/auto/images/logos/auto/tata.png
+++ b/docs/html/auto/images/logos/auto/tata.png
Binary files differ
diff --git a/docs/html/auto/images/logos/auto/volvo.png b/docs/html/auto/images/logos/auto/volvo.png
index 683af26..4d39db0 100644
--- a/docs/html/auto/images/logos/auto/volvo.png
+++ b/docs/html/auto/images/logos/auto/volvo.png
Binary files differ
diff --git a/docs/html/auto/index.jd b/docs/html/auto/index.jd
index 167ed7b..e6fde38 100644
--- a/docs/html/auto/index.jd
+++ b/docs/html/auto/index.jd
@@ -499,6 +499,12 @@
             </div>
             <div class="cols cols-leftp">
               <div class="col-5">
+                <a href=" http://koenigsegg.com/">
+                  <img src="/auto/images/logos/auto/koenigsegg.png"
+                      width="120" height="120" class="img-logo" />
+                </a>
+              </div> 
+              <div class="col-5">
                 <a href="  http://www.lada.ru/en/">
                   <img src="{@docRoot}auto/images/logos/auto/lada.png"
                       width="120" height="120" class="img-logo" />
@@ -516,14 +522,14 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
+            </div>  
+            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href=" http://www.lincoln.com/">
                   <img src="{@docRoot}auto/images/logos/auto/lincoln.png"
                     width="120" height="120" class="img-logo" />
                 </a>
               </div>
-            </div>
-            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.mahindra.com/">
                   <img src="{@docRoot}auto/images/logos/auto/mahindra.png"
@@ -542,15 +548,14 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-
+            </div>
+            <div class="cols cols-leftp">  
               <div class="col-5">
                 <a href="http://www.mercedes-benz.com/">
                   <img src="{@docRoot}auto/images/logos/auto/mbenz.png"
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-          </div>
-            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.mitsubishi-motors.com/">
                   <img src="{@docRoot}auto/images/logos/auto/mitsubishi.png"
@@ -569,16 +574,14 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-
+            </div>
+            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.peugeot.com/">
                   <img src="{@docRoot}auto/images/logos/auto/peugeot.png"
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-            </div>
-
-            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.ramtrucks.com/">
                   <img src="{@docRoot}auto/images/logos/auto/ram.png"
@@ -597,15 +600,14 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-           
+            </div>
+            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.seat.com/">
                   <img src="{@docRoot}auto/images/logos/auto/seat.png"
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-            </div>
-            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.skoda-auto.com/">
                   <img src="{@docRoot}auto/images/logos/auto/skoda.png"
@@ -624,16 +626,14 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-
+            </div>
+            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.globalsuzuki.com/automobile/">
                   <img src="{@docRoot}auto/images/logos/auto/suzuki.png"
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-            </div>
-
-            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.tatamotors.com/">
                   <img src="{@docRoot}auto/images/logos/auto/tata.png"
@@ -652,8 +652,8 @@
                       width="120" height="120" class="img-logo" />
                 </a>
               </div>
-			
-			
+			      </div>
+            <div class="cols cols-leftp">
               <div class="col-5">
                 <a href="http://www.volvocars.com/intl">
                   <img src="{@docRoot}auto/images/logos/auto/volvo.png"
@@ -661,7 +661,6 @@
                 </a>
               </div>
             </div>
-        </div>
       </div>
 
       <div class="landing-section landing-red-background">
diff --git a/docs/html/design/_book.yaml b/docs/html/design/_book.yaml
index df5406f..18b4719 100644
--- a/docs/html/design/_book.yaml
+++ b/docs/html/design/_book.yaml
@@ -90,23 +90,6 @@
       value: 使用返回和向上导航
     - name: zh-tw-lang
       value: 使用 [返回] 及 [上一層] 導覽
-  - title: Notifications
-    path: /design/patterns/notifications.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
   - title: Widgets
     path: /design/patterns/widgets.html
   - title: Swipe Views
diff --git a/docs/html/design/design_toc.cs b/docs/html/design/design_toc.cs
index a837a04..c1f3c3b 100644
--- a/docs/html/design/design_toc.cs
+++ b/docs/html/design/design_toc.cs
@@ -70,15 +70,6 @@
        zh-tw-lang="使用 [返回] 及 [上一層] 導覽">
        Navigation</a></li>
 
-      <li><a href="<?cs var:toroot ?>design/patterns/notifications.html"
-       es-lang="Notificaciones"
-       ja-lang="通知"
-       ko-lang="알림"
-       pt-br-lang="Notificações"
-       ru-lang="Уведомления"
-       zh-cn-lang="通知"
-       zh-tw-lang="通知">
-       Notifications</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/widgets.html">Widgets</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/swipe-views.html">Swipe Views</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/fullscreen.html">Full Screen</a></li>
diff --git a/docs/html/design/handhelds/index.jd b/docs/html/design/handhelds/index.jd
index 4a4526c..cf224ae 100755
--- a/docs/html/design/handhelds/index.jd
+++ b/docs/html/design/handhelds/index.jd
@@ -92,7 +92,8 @@
 <p>Notifications are brief messages that users can access at any time from the status bar. They
 provide updates, reminders, or information that's important, but not critical enough to warrant
 interrupting the user. Open the notifications drawer by swiping down on the status bar. Touching a
-notification opens the associated app. <a href="{@docRoot}design/patterns/notifications.html">More on Notifications</a></p>
+notification opens the associated app. <a
+href="https://material.google.com/patterns/notifications.html">More on Notifications</a></p>
 
 <div class="cols">
   <div class="col-4">
diff --git a/docs/html/design/patterns/new.jd b/docs/html/design/patterns/new.jd
index df4c2ed..4bd3aa3 100755
--- a/docs/html/design/patterns/new.jd
+++ b/docs/html/design/patterns/new.jd
@@ -18,7 +18,7 @@
 
 <h3>Notifications</h3>
 
-<p><a href="{@docRoot}design/patterns/notifications.html">Notifications</a> receive important
+<p><a href="https://material.google.com/patterns/notifications.html">Notifications</a> receive important
 updates in Android 5.0, with material design visual changes, notification availability in the
 lockscreen, priority notifications, and cloud-synced notifications.</p>
 
@@ -124,7 +124,7 @@
 
     <p>The base notification layout has not changed, so app notifications designed for versions
     earlier than Jelly Bean still look and work the same. Check the updated <a
-    href="{@docRoot}design/patterns/notifications.html">Notifications</a> page for
+    href="https://material.google.com/patterns/notifications.html">Notifications</a> page for
     more details.</p>
   </div>
   <div class="col-6">
diff --git a/docs/html/design/patterns/notifications.jd b/docs/html/design/patterns/notifications.jd
deleted file mode 100644
index 844c3b6..0000000
--- a/docs/html/design/patterns/notifications.jd
+++ /dev/null
@@ -1,895 +0,0 @@
-page.title=Notifications
-page.tags="notifications","design"
-@jd:body
-
-  <a class="notice-developers right" href="{@docRoot}training/notify-user/index.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Notifying the User</p>
-  </div>
-</a>
-
-<a class="notice-designers right" href="notifications_k.html">
-  <div>
-    <h3>Notifications in Android 4.4 and Lower</h3>
-  </div>
-</a>
-
-<!-- video box -->
-<a class="notice-developers-video right" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
-<div>
-    <h3>Video</h3>
-    <p>DevBytes: Notifications in the Android L Developer Preview</p>
-</div>
-</a>
-
-<style>
-  .col-5, .col-6, .col-7 {
-    margin-left:0px;
-  }
-</style>
-
-<p>The notification system allows users to keep informed about relevant and
-timely
-events in your app, such as new chat messages from a friend or a calendar event.
-Think of notifications as a news channel that alerts the user to important
-events as
-they happen or a log that chronicles events while the user is not paying
-attention&mdash;and one that is synced as appropriate across all their Android devices.</p>
-
-<h4 id="New"><strong>New in Android 5.0</strong></h4>
-
-<p>In Android 5.0, notifications receive important updates: structurally,
-visually, and functionally:</p>
-
-<ul>
-  <li>Notifications have undergone visual changes consistent with the new
-material design theme.</li>
-  <li> Notifications are now available on the device lock screen, while
-sensitive content can still
-  be hidden behind it.</li>
-  <li>High-priority notifications received while the device is in use now use a new format called
-  heads-up notifications.</li>
-  <li>Cloud-synced notifications: Dismissing a notification on one of your
-Android devices dismisses it
-  on the others, as well.</li>
-</ul>
-
-<p class="note"><strong>Note:</strong> Notification design in this version of
-Android is a significant
-departure from that of previous versions. For information about notification design in previous
-versions, see <a href="./notifications_k.html">Notifications in Android 4.4 and lower</a>.</p>
-
-<h2 id="Anatomy">Anatomy of a Notification</h2>
-
-<p>This section goes over basic parts of a notification and how they can
-appear on different types of devices.</p>
-
-<h3 id="BaseLayout">Base layout</h3>
-
-<p>At a minimum, all notifications consist of a base layout, including:</p>
-
-<ul>
-  <li> The notification's <strong>icon</strong>. The icon symbolizes the
-originating app. It may also
-  potentially indicate notification type if the app generates more than one
-type.</li>
-  <li> A notification <strong>title</strong> and additional
-<strong>text</strong>.</li>
-  <li> A <strong>timestamp</strong>.</li>
-</ul>
-
-<p>Notifications created with {@link android.app.Notification.Builder Notification.Builder}
-for previous platform versions look and work the same in Android
-5.0, with only minor stylistic changes that the system handles
-for you. For more information about notifications on previous versions of
-Android, see
-<a href="./notifications_k.html">Notifications in Android 4.4 and lower</a>.</p></p>
-
-
-    <img style="margin:20px 0 0 0"
-src="{@docRoot}images/android-5.0/notifications/basic_combo.png"
-      alt="" width="700px" />
-
-
-<div style="clear:both;margin-top:20px">
-      <p class="img-caption">
-      Base layout of a handheld notification (left) and the same notification on Wear (right),
-      with a user photo and a notification icon
-    </p>
-  </div>
-
-<h3 id="ExpandedLayouts">Expanded layouts</h3>
-
-
-<p>You can choose how much detail your app's notifications should
-provide. They can show the first
-few lines of a message or show a larger image preview. The additional
-information provides the user with more
-context, and&mdash;in some cases&mdash;may allow the user to read a message in its
-entirety. The user can
-pinch-zoom or perform a single-finger glide to toggle between compact
-and expanded layouts.
- For single-event notifications, Android provides three expanded layout
-templates (text, inbox, and
- image) for you to use in your application. The following images show you how
-single-event notifications look on
- handhelds (left) and wearables (right).</p>
-
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
-  alt="" width="700px" height;="284px" />
-<img style="margin-top:30px"
-src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
-    alt="" width="311px" height;="450px" />
-
-<h3 id="actions" style="clear:both; margin-top:40px">Actions</h3>
-
-<p>Android supports optional actions that are displayed at the bottom
-of the notification.
-With actions, users can handle the most common tasks for a particular
-notification from within the notification shade without having to open the
-originating application.
-This speeds up interaction and, in conjunction with swipe-to-dismiss, helps users focus on
-notifications that matter to them.</p>
-
-
-  <img src="{@docRoot}images/android-5.0/notifications/action_combo.png"
-    alt="" width="700px" />
-
-
-
-<p style="clear:both">Be judicious with how many actions you include with a
-notification. The more
-actions you include, the more cognitive complexity you create. Limit yourself
-to the smallest number
-of actions possible by only including the most imminently important and
-meaningful actions.</p>
-
-<p>Good candidates for actions on notifications are actions that:</p>
-
-<ul>
-  <li> Are essential, frequent, and typical for the content type you're
-displaying
-  <li> Allow the user to accomplish tasks quickly
-</ul>
-
-<p>Avoid actions that are:</p>
-
-<ul>
-  <li> Ambiguous
-  <li> The same as the default action of the notification (such as "Read" or
-"Open")
-</ul>
-
-
-
-<p>You can specify a maximum of three actions, each consisting of an action
-icon and name.
- Adding actions to a simple base layout makes the notification expandable,
-even if the
- notification doesn't have an expanded layout. Since actions are only shown for
-expanded
- notifications and are otherwise hidden,  make sure that any action a
-user can invoke from
- a notification is available from within the associated application, as
-well.</p>
-
-<h2 style="clear:left">Heads-up Notification</h2>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/hun-example.png"
-    alt="" width="311px" />
-  <p class="img-caption">
-    Example of a heads-up notification (incoming phone call, high priority)
-appearing on top of an
-    immersive app
-  </p>
-</div>
-
-<p>When a high-priority notification arrives (see right), it is presented
-to users for a
-short period of time with an expanded layout exposing possible actions.</p>
-<p> After this period of time, the notification retreats to the notification
-shade. If a notification's <a href="#correctly_set_and_manage_notification_priority">priority</a> is
-flagged as High, Max, or full-screen, it gets a heads-up notification.</p>
-
-<p><b>Good examples of heads-up notifications</b></p>
-
-<ul>
-  <li> Incoming phone call when using a device</li>
-  <li> Alarm when using a device</li>
-  <li> New SMS message</li>
-  <li> Low battery</li>
-</ul>
-
-<h2 style="clear:both" id="guidelines">Guidelines</h2>
-
-
-<h3 id="MakeItPersonal">Make it personal</h3>
-
-<p>For notifications of items sent by another person (such as a message or
-status update), include that person's image using
-{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}. Also attach information about
-the person to the notification's metadata (see {@link android.app.Notification#EXTRA_PEOPLE}).</p>
-
-<p>Your notification's main icon is still shown, so the user can associate
-it with the icon
-visible in the status bar.</p>
-
-
-<img src="{@docRoot}images/android-5.0/notifications/Triggered.png"
-  alt="" width="311px"/>
-<p style="margin-top:10px" class="img-caption">
-  Notification that shows the person who triggered it and the content they sent.
-</p>
-
-
-<h3 id="navigate_to_the_right_place">Navigate to the right place</h3>
-
-<p>When the user touches the body of a notification (outside of the action
-buttons), open your app
-to the place where the user can view and act upon the data referenced in the
-notification. In most cases, this will be the detailed view of a single data item such as a message,
-but it might also be a
-summary view if the notification is stacked. If your app takes the
-user anywhere below your app's top level, insert navigation into your app's back stack so that the
-user can press the system back button to return to the top level. For more information, see
-<em>Navigation into Your App via Home Screen Widgets and Notifications</em> in the <a
-href="{@docRoot}design/patterns/navigation.html#into-your-app">Navigation</a>
-design pattern.</p>
-
-<h3 id="correctly_set_and_manage_notification_priority">Correctly set and
-manage notification
-priority</h3>
-
-<p>Android supports a priority flag for notifications. This flag allows you to
-influence where your notification appears, relative to other notifications, and
-helps ensure
-that users always see their most important notifications first. You can choose
-from the
-following priority levels when posting a notification:</p>
-<table>
- <tr>
-    <td class="tab0">
-<p><strong>Priority</strong></p>
-</td>
-    <td class="tab0">
-<p><strong>Use</strong></p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MAX</code></p>
-</td>
-    <td class="tab1">
-<p>Use for critical and urgent notifications that alert the user to a condition
-that is
-time-critical or needs to be resolved before they can continue with a
-particular task.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>HIGH</code></p>
-</td>
-    <td class="tab1">
-<p>Use primarily for important communication, such as message or chat
-events with content that is particularly interesting for the user.
-High-priority notifications trigger the heads-up notification display.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>DEFAULT</code></p>
-</td>
-    <td class="tab1">
-<p>Use for all notifications that don't fall into any of the other priorities described here.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>LOW</code></p>
-</td>
-    <td class="tab1">
-<p>Use for notifications that you want the user to be informed about, but
-that are less urgent. Low-priority notifications tend to show up at the bottom of the list,
-which makes them a good
-choice for things like public or undirected social updates: The user has asked to
-be notified about
-them, but these notifications should never take precedence over urgent or direct
-communication.</p>
-</td>
- </tr>
- <tr>
-    <td class="tab1">
-<p><code>MIN</code></p>
-</td>
-    <td class="tab1">
-<p>Use for contextual or background information such as weather information or contextual
-location information.
-Minimum-priority notifications do not appear in the status bar. The user
-discovers them on expanding the notification shade.</p>
-</td>
- </tr>
-</table>
-
-
-<h4 id="how_to_choose_an_appropriate_priority"><strong>How to choose an
-appropriate
-priority</strong></h4>
-
-<p><code>DEFAULT</code>, <code>HIGH</code>, and <code>MAX</code> are interruptive priority levels, and risk
-interrupting the user
-in mid-activity. To avoid annoying your app's users, reserve interruptive priority levels for
-notifications that:</p>
-
-<ul>
-  <li> Involve another person</li>
-  <li> Are time-sensitive</li>
-  <li> Might immediately change the user's behavior in the real world</li>
-</ul>
-
-<p>Notifications set to <code>LOW</code> and <code>MIN</code> can still be
-valuable for the user: Many, if not most, notifications just don't need to command the user's
-immediate attention, or vibrate the user's wrist, yet contain information that the user will find
-valuable when they choose to
-look for notifications. Criteria for <code>LOW</code> and <code>MIN</code>
-priority notifications include:</p>
-
-<ul>
-  <li> Don't involve other people</li>
-  <li> Aren't time sensitive</li>
-  <li> Contain content the user might be interested in but could choose to
-browse at their leisure</li>
-</ul>
-
-
-  <img
-src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png"
-    alt="" width="700"/>
-
-
-<h3 style="clear:both" id="set_a_notification_category">Set a notification
-category</h3>
-
-<p>If your notification falls into one of the predefined categories (see
-below), assign it
-accordingly.  Aspects of the system UI such as the notification shade (or any
-other notification
-listener) may use this information to make ranking and filtering decisions.</p>
-<table>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
-</td>
-    <td>
-<p>Incoming call (voice or video) or similar synchronous communication
-request</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
-</td>
-    <td>
-<p>Incoming direct message (SMS, instant message, etc.)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
-</td>
-    <td>
-<p>Asynchronous bulk message (email)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
-</td>
-    <td>
-<p>Calendar event</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
-</td>
-    <td>
-<p>Promotion or advertisement</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
-</td>
-    <td>
-<p>Alarm or timer</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
-</td>
-    <td>
-<p>Progress of a long-running background operation</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
-</td>
-    <td>
-<p>Social network or sharing update</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
-</td>
-    <td>
-<p>Error in background operation or authentication status</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
-</td>
-    <td>
-<p>Media transport control for playback</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
-</td>
-    <td>
-<p>System or device status update.  Reserved for system use.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
-</td>
-    <td>
-<p>Indication of running background service</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
-</td>
-    <td>
-<p>A specific, timely recommendation for a single thing.  For example, a news
-app might want to
-recommend a news story it believes the user will want to read next.</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p><code><a
-href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
-</td>
-    <td>
-<p>Ongoing information about device or contextual status</p>
-</td>
- </tr>
-</table>
-
-<h3 id="summarize_your_notifications">Summarize your notifications</h3>
-
-<p>If a notification of a certain type is already pending when your app tries to send a new
-notification of the same type, combine them into a single summary notification for the app. Do not
-create a new object.</p>
-
-<p>A summary notification builds a summary description and allows the user to
-understand how many
-notifications of a particular kind are pending.</p>
-
-<div class="col-6">
-
-<p><strong>Don't</strong></p>
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png"
-    alt="" width="311px" />
-</div>
-
-<div>
-<p><strong>Do</strong></p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png"
-    alt="" width="311px"/>
-</div>
-
-<p style="clear:left; padding-top:30px; padding-bottom:20px">You can provide
-more detail about the individual notifications that make up a
- summary by using the expanded digest layout. This approach allows users to gain a
-better sense of which
- notifications are pending and if they are interesting enough to read in
-detail within the
- associated app.</p>
-<div class="col-6">
-  <img src="{@docRoot}images/android-5.0/notifications/Stack.png"
-style="margin-bottom:20px"
-    alt="" width="311px" />
-  <p class="img-caption">
-  Expanded and contracted notification that is a summary (using <code>InboxStyle</code>)
-  </p>
-</div>
-
-<h3 style="clear:both" id="make_notifications_optional">Make notifications
-optional</h3>
-
-<p>Users should always be in control of notifications. Allow the user to
-disable your app's
-notifications or change their alert properties, such as alert sound and whether
-to use vibration,
-by adding a notification settings item to your application settings.</p>
-
-<h3 id="use_distinct_icons">Use distinct icons</h3>
-<p>By glancing at the notification area, the user should be able to discern
-what kinds of
-notifications are currently pending.</p>
-
-<div class="figure">
-  <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png"
-    alt="" width="420" />
-</div>
-
-  <div><p><strong>Do</strong></p>
-    <p>Look at the notification icons Android apps already provide and create
-notification icons for
-    your app that are sufficiently distinct in appearance.</p>
-
-    <p><strong>Do</strong></p>
-    <p>Use the proper <a
-href="/design/style/iconography.html#notification">notification icon style</a>
- for small icons, and the Material Light
-    <a href="/design/style/iconography.html#action-bar">action bar icon
-style</a> for your action
-    icons.</p>
-<p ><strong>Do</strong></p>
-<p >Keep your icons visually simple, avoiding excessive detail that is hard to
-discern.</p>
-
-  <div><p><strong>Don't</strong></p>
-    <p>Place any additional alpha (dimming or fading) into your
-small icons and action
-    icons; they can have anti-aliased edges, but because Android uses these
-icons as masks (that is, only
-    the alpha channel is used), the image should generally be drawn at full
-opacity.</p>
-
-</div>
-<p style="clear:both"><strong>Don't</strong></p>
-
-<p>Use color to distinguish your app from others. Notification icons should
-only be a white-on-transparent background image.</p>
-
-
-<h3 id="pulse_the_notification_led_appropriately">Pulse the notification LED
-appropriately</h3>
-
-<p>Many Android devices contain a notification LED, which is used to keep the
-user informed about
-events while the screen is off. Notifications with a priority level of <code>MAX</code>,
-<code>HIGH</code>, or <code>DEFAULT</code> should
-cause the LED to glow, while those with lower priority (<code>LOW</code> and
-<code>MIN</code>) should not.</p>
-
-<p>The user's control over notifications should extend to the LED. When you use
-DEFAULT_LIGHTS, the
-LED will glow white. Your notifications shouldn't use a different
-color unless the
-user has explicitly customized it.</p>
-
-<h2 id="building_notifications_that_users_care_about">Building Notifications
-That Users Care About</h2>
-
-<p>To create an app that users love, it is important to design your
-notifications carefully.
-Notifications embody your app's voice, and contribute to your app's
-personality. Unwanted or
-unimportant notifications can annoy the user or make them resent how much
-attention the app wants
-from them, so use notifications judiciously.</p>
-
-<h3 id="when_to_display_a_notification">When to display a notification</h3>
-
-<p>To create an application that people enjoy using, it's important to
-recognize that the user's
-attention and focus is a resource that must be protected. While Android's
-notification system has
-been designed to minimize the impact of notifications on the user's attention,
-it is
-still important to be aware of the fact that notifications are interrupting the
-user's task flow.
-As you plan your notifications, ask yourself if they are important enough to
-warrant an interruption. If you are unsure, allow the user to opt into a
-notification using your apps notification settings, or adjust
-the notifications priority flag to <code>LOW</code> or <code>MIN</code> to
-avoid distracting the user while they are doing
-something else.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png"
-    alt="" width="311px" />
-  <p style="margin-top:10px" class="img-caption">
-   Examples of time-sensitive notification
-  </p>
-
-<p>While well-behaved apps generally only speak when spoken to, a few cases
-do merit an app's interrupting the user with an unprompted notification.</p>
-
-<p>Use notifications primarily for <strong>time-sensitive events</strong>, especially
- if these synchronous events <strong>involve other people</strong>. For
-instance, an incoming chat
- is a real-time and synchronous form of communication: Another user
-actively waiting on your response. Calendar events are another good example of when to use a
-notification and grab the
-  user's attention, because the event is imminent, and calendar events often
-involve other people.</p>
-
-<h3 style="clear:both" id="when_not_to_display_a_notification">When not to
-display a notification</h3>
-
-<div class="figure" style="margin-top:60px">
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png"
-    alt="" width="311px" />
-</div>
-
-<p>In many other cases, notifications aren't appropriate:</p>
-
-<ul>
-  <li> Avoid notifying the user of information that is not directed
-specifically at them, or
-  information that is not truly time-sensitive. For instance, the asynchronous
-and undirected updates
-  flowing through a social network generally do not warrant a real-time
-interruption. For the users
-  who do care about them, allow them to opt-in.</li>
-  <li> Don't create a notification if the relevant new information is currently
-on screen. Instead,
-  use the UI of the application itself to notify the user of new information
-directly in context.
-  For instance, a chat application should not create system notifications while
-the user is actively chatting with another user.</li>
-  <li> Don't interrupt the user for low-level technical operations, like saving
-or syncing information, or updating an application if the app or system can resolve the issue
-without involving the user.</li>
-  <li> Don't interrupt the user to inform them of an error if it is possible
-for the application to recover from the error on its own without the user
-taking any action.</li>
-  <li> Don't create notifications that have no true notification content and
-merely advertise your
-  app. A notification should provide useful, timely, new information and should
-not be used
-  merely to launch an app.</li>
-  <li> Don't create superfluous notifications just to get your brand in front
-of users.
-  Such notifications frustrate and likely alienate your audience. The
-best way to provide
-  small amounts of updated information and keep them engaged
-with your
-  app is to develop a widget that they can choose to place on their
-home screen.</li>
-</ul>
-
-<h2 style="clear:left" id="interacting_with_notifications">Interacting with
-Notifications</h2>
-
-<p>Notifications are indicated by icons in the status bar, and can be accessed
-by opening the
-notification drawer.</p>
-
-<p>Touching a notification opens the associated app to detailed content
-that matches the notification.
-Swiping left or right on a notification removes it from the drawer.</p>
-
-<h3 id="ongoing_notifications">Ongoing notifications</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png"
-    alt="" width="311px"  />
-      <p class="img-caption">
-    Ongoing notification due to music playback
-  </p>
-</div>
-<p>Ongoing notifications keep users informed about an ongoing process in the
-background.
-For example, music players announce the currently playing track in the
-notification system and
-continue to do so until the user stops the playback. Ongoing notifications can also
-show the user
-feedback for longer tasks like downloading a file, or encoding a video. A user cannot manually
-remove an ongoing notification from the notification drawer.</p>
-
-<h3 id="ongoing_notifications">Media playback</h3>
-<p>In Android 5.0, the lock screen doesn't show transport controls for the deprecated
-{@link android.media.RemoteControlClient} class. But it <em>does</em> show notifications, so each
-app's playback notification is now the primary
-way for users to control playback from a locked state. This behavior gives apps more
-control over which
-buttons to show, and in what way, while providing a consistent experience for
-the user whether or not the screen is locked.</p>
-
-<h3 style="clear:both"
-id="dialogs_and_toasts_are_for_feedback_not_notification">Dialogs
-and toasts</h3>
-
-<p>Your app should not create a dialog or toast if it is not currently on
-screen. A dialog or toast
- should only be displayed as an immediate response to the user taking an action
-inside of your app.
-For further guidance on the use of dialogs and toasts, refer to
-<a href="/design/patterns/confirming-acknowledging.html">Confirming & Acknowledging</a>.</p>
-
-<h3>Ranking and ordering</h3>
-
-<p>Notifications are news, and so are essentially shown in
-reverse-chronological order, with
-special consideration given to the app's stated notification
-<a href="#correctly_set_and_manage_notification_priority">priority</a>.</p>
-
-<p>Notifications are a key part of the lock screen, and are featured prominently
-every
-time the device display comes on. Space on the lock screen is tight, so it
-is more important
-than ever to identify the most urgent or relevant notifications. For this
-reason, Android has a
-more sophisticated sorting algorithm for notifications, taking into account:</p>
-
-<ul>
-  <li> The timestamp and application's stated priority.</li>
-  <li> Whether the notification has recently disturbed the user with sound or
-vibration. (That is,
-  if the phone just made a noise, and the user wants to know "What just
-happened?", the lock screen
-  should answer that at a glance.)</li>
-  <li> Any people attached to the notification using {@link android.app.Notification#EXTRA_PEOPLE},
-  and, in particular, whether they are starred contacts.</li>
-</ul>
-
-<p>To best take advantage of this sorting, focus on the user
-experience you want
-to create, rather than aiming for any particular spot on the list.</p>
-
-  <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png"
-    alt="" width="700px" />
-
-  <p class="img-caption" style="margin-top:10px">Gmail notifications are
-default priority, so they
-  normally sort below messages from an instant messaging app like Hangouts, but
-get a
-  temporary bump when new messages come in.
-  </p>
-
-
-<h3>On the lock screen</h3>
-
-<p>Because notifications are visible on the lock screen, user privacy is an
-especially
-important consideration. Notifications often contain sensitive information, and
-should not necessarily be visible
-to anyone who picks up the device and turns on the display.</p>
-
-<ul>
-  <li> For devices that have a secure lock screen (PIN, pattern, or password), the interface has
-  public and private parts. The public interface can be displayed on a secure lock screen and
-  therefore seen by anyone. The private interface is the world behind that lock screen, and
-  is only revealed once the user has signed into the device.</li>
-</ul>
-
-<h3>User control over information displayed on the secure lock screen</h3>
-<div class="figure" style="width:311px">
-  <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png"
-  srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px"/>
-      <p class="img-caption">
-    Notifications on the lock screen, with contents revealed after the user unlocks the device.
-  </p>
-</div>
-
-<p>When setting up a secure lock screen, the user can choose to conceal
-sensitive details from the secure lock screen. In this case the System UI
-considers the notification's <em>visibility level</em> to figure out what can
-safely be shown.</p>
-<p> To control the visibility level, call
-<code><a
-href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>,
-and specify one of these values:</p>
-
-<ul>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>.
-Shows the notification's full content.
-  This is the system default if visibility is left unspecified.</li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
-On the lock screen, shows basic information about the existence of this notification, including its
-icon and the name of the app that posted it. The rest of the notification's details are not displayed.
-A couple of good points to keep in mind are as follows:
-  <ul>
-    <li> If you want to provide a different public version of your notification
-for the system to display on a secure lock screen, supply a replacement
-Notification object in the <code><a
-href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>
-field.
-    <li> This setting gives your app an opportunity to create a redacted version of the
-content that is still useful but does not reveal personal information. Consider the example of an
-SMS app whose notifications include the text of the SMS and the sender's name and contact icon.
-This notification should be <code>VISIBILITY_PRIVATE</code>, but <code>publicVersion</code> could still
-contain useful information like "3 new messages" without any other identifying
-details.
-  </ul>
-  </li>
-  <li><code><a
-href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</A></code>. Shows only the most minimal information, excluding
-even the notification's icon.</li>
-</ul>
-<h2 style="clear:both" id="notifications_on_android_wear">Notifications on
-Android Wear</h2>
-
-<p>Notifications and their <em>actions</em> are bridged over to Wear devices by default.
-Developers can control which notifications bridge from the
-phone to the watch,
-and vice-versa. Developers can also control which actions bridge, as well. If
-your app includes
-actions that can't be accomplished with a single tap, either hide these actions
-on your Wear
-notification or consider hooking them up to a Wear app, thus allowing the user to
-finish the action on
-their watch.</p>
-
-<h4>Bridging notifications and actions</h4>
-
-<p>A connected device, such as a phone, can bridge notifications to a Wear device, so that the
-notifications are displayed there. Similarly, it can bridge actions, so that the user can act
-on the notifications right from the Wear device.</p>
-
-<p><strong>Bridge</strong></p>
-
-<ul>
-  <li> New instant messages</li>
-  <li> Single-tap actions such as +1, Like, Heart</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px"
-height="156px"
-  alt="" />
-
-<p><strong>Don't bridge</strong></p>
-
-<ul>
-  <li> Notifications of newly arrived podcasts</li>
-  <li> Actions that map to features that aren't possible on the watch</li>
-</ul>
-
-
-
-<p><h4>Unique actions to define for Wear</h4></p>
-
-<p>There are some actions that you can perform only on Wear. These include the following:</p>
-
-<ul>
-  <li> Quick lists of canned responses such as "Be right back"</li>
-  <li> Open on the phone</li>
-  <li> A "Comment" or "Reply" action that brings up the speech input screen</li>
-  <li> Actions that launch Wear-specific apps</li>
-</ul>
-
-<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px"
-height="156px"
-  alt="" />
diff --git a/docs/html/design/wear/style.jd b/docs/html/design/wear/style.jd
index 75bd65f..804223f 100644
--- a/docs/html/design/wear/style.jd
+++ b/docs/html/design/wear/style.jd
@@ -67,7 +67,7 @@
 
 <h2 id="KeepMinimum" style="clear:both">Keep Notifications to a Minimum</h2>
 
-<p>Don’t abuse the user’s attention. Active notifications (that is, those that cause the device to vibrate) should only be used in cases that are both timely and involve a contact, for example receiving a message from a friend. Non-urgent notifications should be silently added to the Context Stream. See also the general <a href="{@docRoot}design/patterns/notifications.html">Android Notifications Guidelines</a>.</p>
+<p>Don’t abuse the user’s attention. Active notifications (that is, those that cause the device to vibrate) should only be used in cases that are both timely and involve a contact, for example receiving a message from a friend. Non-urgent notifications should be silently added to the Context Stream. See also the general <a href="https://material.google.com/patterns/notifications.html">Android Notifications Guidelines</a>.</p>
 
 
 
diff --git a/docs/html/distribute/engage/notifications.jd b/docs/html/distribute/engage/notifications.jd
index c38f649..a37d703 100644
--- a/docs/html/distribute/engage/notifications.jd
+++ b/docs/html/distribute/engage/notifications.jd
@@ -10,7 +10,7 @@
 </div>
 
 <p>
-  The <a href="/design/patterns/notifications.html">notification system</a>
+  The <a href="https://material.google.com/patterns/notifications.html">notification system</a>
   allows your app to keep the user informed about events, such as new messages,
   upcoming calendar appointments, shared photos, and much more. They are a
   fundamental feature of Android that consumers check frequently to receive
diff --git a/docs/html/distribute/essentials/optimizing-your-app.jd b/docs/html/distribute/essentials/optimizing-your-app.jd
index 09c52d4..d09a1a8 100644
--- a/docs/html/distribute/essentials/optimizing-your-app.jd
+++ b/docs/html/distribute/essentials/optimizing-your-app.jd
@@ -475,7 +475,7 @@
   A great way to deliver a delightful user experience is to integrate tightly
   with the operating system. Features like <a href=
   "{@docRoot}guide/topics/appwidgets/index.html">Home screen widgets</a>,
-  <a href="{@docRoot}design/patterns/notifications.html">rich
+  <a href="https://material.google.com/patterns/notifications.html">rich
   notifications</a>, <a href="{@docRoot}guide/topics/search/index.html">global
   search integration</a>, and <a href=
   "{@docRoot}reference/android/widget/QuickContactBadge.html">Quick
diff --git a/docs/html/distribute/essentials/quality/core.jd b/docs/html/distribute/essentials/quality/core.jd
index 637eaac..3499f23 100644
--- a/docs/html/distribute/essentials/quality/core.jd
+++ b/docs/html/distribute/essentials/quality/core.jd
@@ -186,7 +186,7 @@
   <td>
     <p style="margin-bottom:.5em;">
     Notifications follow Android Design <a href=
-    "{@docRoot}design/patterns/notifications.html">guidelines</a>. In
+    "https://material.google.com/patterns/notifications.html">guidelines</a>. In
     particular:
     </p>
 
diff --git a/docs/html/distribute/essentials/quality/wear.jd b/docs/html/distribute/essentials/quality/wear.jd
index fc1c73f..34c6cc5 100644
--- a/docs/html/distribute/essentials/quality/wear.jd
+++ b/docs/html/distribute/essentials/quality/wear.jd
@@ -18,7 +18,7 @@
       Core App Quality</a></li>
     <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">
       Optimize Your App</a></li>
-    <li><a href="{@docRoot}design/patterns/notifications.html">
+    <li><a href="https://material.google.com/patterns/notifications.html">
       Notifications</a></li>
   </ol>
 </div>
diff --git a/docs/html/distribute/googleplay/developer-console.jd b/docs/html/distribute/googleplay/developer-console.jd
index c826e82..5a6c96fc 100644
--- a/docs/html/distribute/googleplay/developer-console.jd
+++ b/docs/html/distribute/googleplay/developer-console.jd
@@ -10,30 +10,30 @@
   <div id="qv">
     <h2>Features</h2>
     <ol>
-      <li><a href="#latest">Latest blog posts</a></li>
-      <li><a href="#publish">Publish with confidence</a></li>
-      <li><a href="#aquire-users">Acquire users</a></li>
-      <li><a href="#insights">Actionable insights</a></li>
-      <li><a href="#manage">Manage your app</a></li>
+      <li><a href="#latest">Latest Blog Posts</a></li>
+      <li><a href="#publish">Publish with Confidence</a></li>
+      <li><a href="#aquire-users">Acquire Users</a></li>
+      <li><a href="#insights">Learn about Users and App Performance</a></li>
+      <li><a href="#manage">Manage Your App</a></li>
     </ol>
   </div>
 </div>
 
 <p>
-  The <a href="https://play.google.com/apps/publish/">Google Play Developer
-  Console</a> is your home for publishing operations and tools.
+  The <a class="external-link" href="https://play.google.com/apps/publish/">Google Play Developer
+  Console</a> is your home for publishing and managing your apps.
 </p>
 
 <img src="{@docRoot}images/distribute/googleplay/gp-devconsole-home.png" style="width:480px;">
 
 <p>
-  Upload apps, build your product pages, configure prices and distribution, and
-  publish. You can manage all phases of publishing on Google Play through the
-  Developer Console, from any web browser.
+  You can manage all phases of publishing on Google Play through the Developer
+  Console. Using any web browser, you can upload apps, build product pages, set
+  prices, configure distribution, and publish apps.
 </p>
 
 <p>
-  Once you've <a href=
+  After you've <a href=
   "{@docRoot}distribute/googleplay/start.html">registered</a> and received
   verification by email, you can sign in to your Google Play Developer Console.
 </p>
@@ -44,7 +44,7 @@
 
 <div class="dynamic-grid">
 <div class="headerLine">
-<h2 id="latest">Latest blog posts</h2>
+<h2 id="latest">Latest Blog Posts</h2>
 </div>
 
 <div class="resource-widget resource-flow-layout col-13"
@@ -54,31 +54,10 @@
   data-maxResults="3"></div>
   </div>
 
-<h2 id="publish">Publish with confidence</h2>
-
+<h2 id="publish">Publish with Confidence</h2>
+<p>The Developer Console provides rich testing features and staged rollouts that help you to
+ provide apps that satisfy your users.</p>
 <div class="wrap">
-  <h3 id="alpha-beta">Alpha and beta tests</h3>
-
-  <div class="cols" style="margin-top:2em;">
-    <div class="col-3of12">
-      <p>
-        Distribute your pre-release app to users as an open beta with a
-        one-click, opt-in URL or as a closed beta using an email list, Google
-        Group, or Google+ community. Users can then provide feedback, while not
-        affecting your app’s public reviews and rating. This valuable feedback
-        will help you test features and improve the quality of your app.
-        <a href="{@docRoot}distribute/engage/beta.html">Learn more</a>.
-      </p>
-    </div>
-
-    <div class="col-8of12 col-push-1of12">
-      <img src=
-      "{@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test.png"
-      srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test.png 1x, {@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test_2x.png 2x"
-      width="500">
-    </div>
-  </div>
 
   <h3 id="cloud-test">Cloud Test Lab</h3>
 
@@ -87,8 +66,8 @@
       <p>
         Get free automated testing of your app on physical devices covering
         nearly every brand, model, and version of the devices your users might
-        be using. The lab will help you quickly find compatibility issues you
-        may miss using only your available test devices. Sign-up in the
+        have. The lab helps you quickly find compatibility issues that you
+        might miss using only your available test devices. Sign up in the
         Developer Console to become an early tester before this feature becomes
         more widely available. <a href=
         "https://developers.google.com/cloud-test-lab/" class=
@@ -100,57 +79,85 @@
       <img src=
       "{@docRoot}images/distribute/googleplay/dev-console_cloud-test-lab.png"
       srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_cloud-test-lab.png 1x, {@docRoot}images/distribute/googleplay/dev-console_cloud-test-lab_2x.png 2x"
+      "{@docRoot}images/distribute/googleplay/dev-console_cloud-test-lab.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_cloud-test-lab_2x.png 2x"
       width="500">
     </div>
   </div>
 </div>
 
+  <h3 id="alpha-beta">Alpha and beta tests</h3>
+
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-3of12">
+      <p>
+      Collect user feedback on early versions of your app with alpha and beta testing.
+        Distribute your pre-release app to users as an open beta with a
+        one-click, opt-in URL or as a closed beta using an email list, Google
+        Group, or Google+ community. Users can provide feedback, while not
+        affecting your app’s public reviews and rating. This valuable feedback
+        helps you test features and improve the quality of your app.
+        <a href="{@docRoot}distribute/engage/beta.html">Learn more</a>.
+      </p>
+    </div>
+
+    <div class="col-8of12 col-push-1of12">
+      <img src=
+      "{@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test.png"
+      srcset=
+      "{@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_running-a-beta-test_2x.png 2x"
+      width="500">
+    </div>
+  </div>
+
 <h3 id="staged-rollouts">Staged rollouts</h3>
 
 <p>
-  Release app updates progressively to an increasing portion of your users and
-  monitor for missed issues. Then take the opportunity to fix problems before
-  all your users are affected. <a href=
+Discover and fix problems with a limited user base before making a wider release.
+With staged rollouts, you can release app updates progressively to an increasing portion of
+ your users.
+You can fix problems before your app reaches the broader user community. <a href=
   "https://support.google.com/googleplay/android-developer/answer/3131213"
-  class="external-link">Learn more.</a>
+  class="external-link">Learn more</a>.
 </p>
 
-<p class="aside">
-  <strong>Tip:</strong> If you find an issue during a rollout stage you can
-  halt the rollout to further minimize the effect, and then resume rollout once
-  a fix has been made.
+<p class="note">
+  <strong>Tip:</strong> If you find an issue during a rollout stage, you can
+  halt the rollout, make the fix, and then resume.
 </p>
 
-<h2 id="aquire-users">Aquire users</h2>
-
-  <h3 id="adwords">AdWords Universal App Campaigns</h3>
+<h2 id="aquire-users">Acquire Users</h2>
+<p>Using the Developer Console, you can configure targeted ads to present your app to more users.
+ You can test variations of your Play Store listings and track user responses.</p>
+  <h3 id="adwords">Promote your app with AdWords</h3>
 
   <p>
-    Easily and conveniently buy AdWords app install ads, across Search
+    Easily and conveniently buy AdWords app install ads. AdWords Universal App Campaigns
+    appear across Search
     (including Play Search), YouTube, AdMob, and the Google Display Network.
-    Simply set a budget and cost per acquisition and Google takes care of the
+    Set a budget and cost per acquisition, and Google takes care of the
     rest. <a href="{@docRoot}distribute/users/promote-with-ads.html">Learn
     more</a>.
   </p>
 
 <div class="wrap">
-  <h3 id="listing-experiments">Store Listing Experiments</h3>
+  <h3 id="listing-experiments">Increase installs with improved store listings</h3>
 
   <div class="cols" style="margin-top:2em;">
     <div class="col-3of12">
-      <p>
-        Test variations of the images and text used to promote and describe
-        your app on your Play store listing. Then when enough data has been
-        collected, choose to make the winning combination visible on Google
+      <p>With store listing experiments,
+        you can test variations of your app's Play Store listing.
+        You can try different combinations of images and text used to promote and describe
+        your app on its Play Store listing. Collect data, choose the best combination, and make
+        it visible on Google
         Play. <a href="{@docRoot}distribute/users/experiments.html">Learn
         more</a>.
       </p>
 
-      <p class="aside">
-        <strong>Tip:</strong> You can even try out different orders for your
-        screenshots and other images to discover which grabs users’ attention
-        the best.
+      <p class="note">
+        <strong>Tip:</strong> You can reorder your screenshots and other images in different ways
+        to determine the arrangement that best attracts users.
       </p>
     </div>
 
@@ -158,20 +165,21 @@
       <img src=
       "{@docRoot}images/distribute/googleplay/dev-console_store-listing-experiment.png"
       srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_store-listing-experiment.png 1x, {@docRoot}images/distribute/googleplay/dev-console_store-listing-experiment_2x.png 2x"
+      "{@docRoot}images/distribute/googleplay/dev-console_store-listing-experiment.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_store-listing-experiment_2x.png 2x"
       width="500">
     </div>
   </div>
 
-  <h3 id="user-perf-report">User Acquisition performance report</h3>
+  <h3 id="user-perf-report">User acquisition performance report</h3>
 
   <div class="cols" style="margin-top:2em;">
     <div class="col-3of12">
       <p>
-        Discover where visitors to your Play Store listing come from, how many
-        go on to install your app, and how many buy your in-app products in the
-        User Acquisition performance report; compare cohorts, examine
-        acquisition channels, and see details of users and buyers. <a href=
+        Discover information about visitors to your Play Store listing, such as where they come
+        from, how many go on to install your app, and how many buy your in-app products. You
+        can also compare cohorts, examine acquisition channels, and see details of users and
+        buyers. <a href=
         "{@docRoot}distribute/users/user-acquisition.html">Learn more</a>.
       </p>
     </div>
@@ -180,14 +188,16 @@
       <img src=
       "{@docRoot}images/distribute/googleplay/dev-console_conversion-funnel.png"
       srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_conversion-funnel.png 1x, {@docRoot}images/distribute/googleplay/dev-console_conversion-funnel_2x.png 2x"
+      "{@docRoot}images/distribute/googleplay/dev-console_conversion-funnel.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_conversion-funnel_2x.png 2x"
       width="500">
     </div>
   </div>
 </div>
 
-<h2 id="insights">Actionable insights</h2>
-
+<h2 id="insights">Learn about App Users and Performance</h2>
+<p>Using the Developer console, you can gain valuable insights about app performance.
+ You can better understand user behavior and find out ways to optimize your app. </p>
 <div class="wrap">
 
 <h3 id="player-analytics">Player Analytics</h3>
@@ -195,8 +205,10 @@
   <div class="cols" style="margin-top:2em;">
     <div class="col-3of12">
       <p>
-        With Google Play game services integration, discover more about the
-        behaviour of your game players; how they play and how they buy. Also get
+        Google Play game services offers a comprehensive dashboard of player and engagement
+        statistics.
+        With Player Analytics, discover more about the
+        behavior of your game users, including how they play and how they buy. Also get
         help setting and monitoring revenue budgets. <a href=
         "{@docRoot}distribute/engage/game-services.html">Learn more</a>.
       </p>
@@ -206,7 +218,8 @@
       <img src=
       "{@docRoot}images/distribute/googleplay/dev-console_player-analytics.png"
       srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_player-analytics.png 1x, {@docRoot}images/distribute/googleplay/dev-console_player-analytics_2x.png 2x"
+      "{@docRoot}images/distribute/googleplay/dev-console_player-analytics.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_player-analytics_2x.png 2x"
       width="500">
     </div>
   </div>
@@ -216,74 +229,77 @@
   <div class="cols" style="margin-top:2em;">
     <div class="col-3of12">
       <p>
-        Get a wide range of reports on the performance of your app and behaviour
-        of users; such as installs, revenue, crashes, and more. Turn on email
-        alerts to be notified of any sudden changes to important stats. <a href=
-        "https://support.google.com/googleplay/android-developer/topic/3450942?ref_topic=3450986"
-        class="external-link">Learn more.</a>
+        Get a wide range of reports on the performance of your app and behavior
+        of users such as installs, revenue, and crashes. Turn on email
+        alerts to receive notifications of any sudden changes to important stats. <a  href=
+    "https://support.google.com/googleplay/android-developer/topic/3450942?ref_topic=3450986"
+        class="external-link">Learn more</a>.
       </p>
     </div>
 
     <div class="col-8of12 col-push-1of12">
       <img src=
       "{@docRoot}images/distribute/googleplay/dev-console_statistics.png" srcset=
-      "{@docRoot}images/distribute/googleplay/dev-console_statistics.png 1x, {@docRoot}images/distribute/googleplay/dev-console_statistics_2x.png 2x"
+      "{@docRoot}images/distribute/googleplay/dev-console_statistics.png 1x,
+      {@docRoot}images/distribute/googleplay/dev-console_statistics_2x.png 2x"
       width="500">
     </div>
   </div>
 </div>
 
 
-<h3 id="optimization"> Optimization tips</h3>
+<h3 id="optimization">Optimization tips</h3>
 
 <p>
-  Get tips, based on automatic app scanning, on ways in which you can improve
-  your app, everything from updating old APIs to suggestions for languages you
-  should consider localizing to.
+  Automatic app scanning provides tips on ways to improve your apps&mdash;everything
+  from updating old APIs to suggested languages for localization.
 </p>
 
-<h2 id="manage">Manage your app</h2>
+<h2 id="manage">Manage Your App</h2>
 
 <h3 id="manage-apks">Manage your APKs</h3>
 
 <p>
   Upload and manage your Android application packages (APK) to the Developer
-  Console as drafts or to your Alpha, Beta, or Production channels. <a href=
+  Console as drafts or to your Alpha, Beta, or Production channels. <a  href=
   "https://support.google.com/googleplay/android-developer/answer/113469?ref_topic=3450986"
-  class="external-link">Learn more.</a>
+  class="external-link">Learn more</a>.
 </p>
 
-<p class="aside">
-  <strong>Tip:</strong> Ensure users get the best possible experience for the
+<p class="note">
+  <strong>Tip:</strong> Ensure that users get the best possible experience for the
   smallest app downloads by creating multiple APKs with just the right content
-  for device screen size, hardware features and more.
+  for hardware features such as screen size. For more information about using multiple APKs,
+  see <a href="https://developer.android.com/training/multiple-apks/index.html">
+  Maintaining Multiple APKs.</a>
 </p>
 
 <h3 id="iap">In-app products and subscriptions</h3>
 
 <p>
-  Manage your in-app products and price them for local markets accordingly.
-  Offer weekly, monthly, annual, or seasonal subscriptions and take advantage
-  of features such as grace periods and trials. <a href=
+  Manage your in-app products and price them for local markets.
+  Offer weekly, monthly, annual, or seasonal subscriptions. Attract new users
+  with features such as grace periods and trials. <a href=
   "https://support.google.com/googleplay/android-developer/topic/3452896?ref_topic=3452890"
-  class="external-link">Learn more.</a>
+  class="external-link">Learn more</a>.
 </p>
 
 <h3 id="pricing">Pricing and distribution</h3>
 
 <p>
-  Control the price of your app for each country you choose to distribute to.
-  Make your app available to new audiences — opt-in to Android Auto, Android
+  Control the price of your app for each country that you distribute to.
+  Make your app available to new audiences&mdash;opt-in to Android Auto, Android
   TV, and Android Wear, as well as Designed for Families, Google Play for Work,
   and Google Play for Education. <a href=
   "https://support.google.com/googleplay/android-developer/answer/113469#pricing"
   class="external-link">Learn more</a>.
 </p>
 
-<p class="external-link">
-  <strong>Tip:</strong> You can set prices in other countries automatically
-  based on current exchange rates using the <strong>auto-convert prices
-  now</strong> feature.
+<p  class="note">
+  <strong>Note:</strong> When you distribute your app to countries that use other currencies,
+  the Google Play Developer Console autofills country-specific prices based on current exchange
+  rates and locally-relevant pricing patterns. You can update the exchange rates manually by
+  selecting <strong>Refresh exchange rates</strong>.
 </p>
 
 <p style="clear:both">
diff --git a/docs/html/distribute/stories/apps/aftenposten.jd b/docs/html/distribute/stories/apps/aftenposten.jd
index f1f388e..a813c00 100644
--- a/docs/html/distribute/stories/apps/aftenposten.jd
+++ b/docs/html/distribute/stories/apps/aftenposten.jd
@@ -2,7 +2,7 @@
 page.metaDescription=Aftenposten upgraded their app and improved user retention.
 page.tags="developerstory", "apps", "googleplay"
 page.image=images/cards/distribute/stories/aftenposten.png
-page.timestamp=1468270114
+page.timestamp=1468901834
 
 @jd:body
 
@@ -74,7 +74,7 @@
 
 <p>
   Find out more about best practices for <a href=
-  "{@docRoot}design/patterns/notifications.html">Notifications</a> and <a href=
+  "https://material.google.com/patterns/notifications.html">Notifications</a> and <a href=
   "{@docRoot}training/building-content-sharing.html">Building Apps with Content
   Sharing</a>.
 </p>
diff --git a/docs/html/distribute/stories/apps/el-mundo.jd b/docs/html/distribute/stories/apps/el-mundo.jd
index 2ee813d..2dbaeea 100644
--- a/docs/html/distribute/stories/apps/el-mundo.jd
+++ b/docs/html/distribute/stories/apps/el-mundo.jd
@@ -2,7 +2,7 @@
 page.metaDescription=El Mundo uses Material Design principles to enhance their app's user experience.
 page.tags="developerstory", "apps", "googleplay"
 page.image=images/cards/distribute/stories/el-mundo.png
-page.timestamp=1468270112
+page.timestamp=1468901833
 
 @jd:body
 
diff --git a/docs/html/distribute/stories/apps/segundamano.jd b/docs/html/distribute/stories/apps/segundamano.jd
index 4cbf817..7ed4d8e 100644
--- a/docs/html/distribute/stories/apps/segundamano.jd
+++ b/docs/html/distribute/stories/apps/segundamano.jd
@@ -2,7 +2,7 @@
 page.metaDescription=Segundamano developed Android app to increase potential for growth.
 page.tags="developerstory", "apps", "googleplay"
 page.image=images/cards/distribute/stories/segundamano.png
-page.timestamp=1468270110
+page.timestamp=1468901832
 
 @jd:body
 
diff --git a/docs/html/distribute/stories/glu-dh.jd b/docs/html/distribute/stories/games/glu-dh.jd
similarity index 100%
rename from docs/html/distribute/stories/glu-dh.jd
rename to docs/html/distribute/stories/games/glu-dh.jd
diff --git a/docs/html/distribute/stories/apps/tapps.jd b/docs/html/distribute/stories/games/tapps.jd
similarity index 98%
rename from docs/html/distribute/stories/apps/tapps.jd
rename to docs/html/distribute/stories/games/tapps.jd
index 1292139..221b9a8 100644
--- a/docs/html/distribute/stories/apps/tapps.jd
+++ b/docs/html/distribute/stories/games/tapps.jd
@@ -1,8 +1,8 @@
 page.title=Tapps Games Increases Installs by More Than 20% with Store Listing Experiments
 page.metaDescription=Tapps Games increased their use of store listing experiments in the Developer Console, with impressive results.
-page.tags="developerstory", "apps", "googleplay"
+page.tags="developerstory", "games", "googleplay"
 page.image=images/cards/distribute/stories/tapps.png
-page.timestamp=1468270108
+page.timestamp=1468901831
 
 @jd:body
 
diff --git a/docs/html/distribute/stories/games/two-dots.jd b/docs/html/distribute/stories/games/two-dots.jd
deleted file mode 100644
index a2299ce..0000000
--- a/docs/html/distribute/stories/games/two-dots.jd
+++ /dev/null
@@ -1,77 +0,0 @@
-page.title=Two Dots increased installs by 7 percent using Store Listing Experiments
-page.metaDescription=Two Dots, the sequel to the popular game Dots, is a free-to-play puzzle game launched by Playdots, Inc. Playdots decided to use Store Listing Experiments to see if adding a call to action in the games’ store listing short descriptions had an impact on installs.
-page.tags="developerstory", "games", "googleplay"
-page.image=images/cards/distribute/stories/two-dots.png
-page.timestamp=1456431511
-
-@jd:body
-
-
-<h3>Background</h3>
-
-<div class="figure" style="width:113px">
-  <img src="{@docRoot}images/distribute/stories/two-dots-icon.png"
-  height="113" />
-</div>
-
-<p>
-  <a class="external-link"
-  href="https://play.google.com/store/apps/details?id=com.weplaydots.twodotsandroid&hl=en">
-  Two Dots</a>, the sequel to the popular game
-  <a class="external-link"
-  href="https://play.google.com/store/apps/details?id=com.nerdyoctopus.gamedots&hl=en">
-  Dots</a>, is a free-to-play puzzle game launched by Playdots, Inc. in May
-  2014. Since launch it has gained over 30 million downloads, seen over five
-  billion games played, and achieved 15 times the revenue of the original Dots
-  game within a year. Dots decided to use
-  <a class="external-link"
-  href="https://support.google.com/googleplay/android-developer/answer/6227309">
-  Store Listing Experiments</a> to see if adding a call to action in the games'
-  store listing short descriptions had an impact on installs.
-
-</p>
-
-<h3>What they did</h3>
-
-<p>
-  Dots used localized store listing experiments in the Google Play Developer
-  Console to test both games’ short descriptions. They compared the games’
-  current descriptions — the control, with no call to action — against variant
-  descriptions, targeting half of their traffic with the variant descriptions.
-</p>
-
-<h3>Results</h3>
-
-<p>
-  The results showed that the addition of a call to action in the short
-  description had a positive impact on installs.
-</p>
-
-
-  <img
-   src="{@docRoot}images/distribute/stories/two-dots-screenshot.png"
-   srcset=
-  "{@docRoot}images/distribute/stories/two-dots-screenshot.png 1x
-  {@docRoot}images/distribute/stories/two-dots-screenshot_2x.png 2x">
-  <p class="img-caption">
-    Beautifully designed achievements badges encourage unlock
-  </p>
-
-
-<p>
-  In Dots, the conversion rate increased by 2 percent with a simple call to
-  action in the variant text. In Two Dots, where a call to action was combined
-  with messaging that the game is the “best puzzle game on Android”, conversion
-  rates increased by 7 percent compared to the control description.
-</p>
-
-<h3>Get started</h3>
-
-<p>
-  Learn how to run
-  <a clas="external-link"
-  href="https://support.google.com/googleplay/android-developer/answer/6227309">
-  Store Listing Experiments</a> and read our best practices for
-  <a href="https://developer.android.com/distribute/users/experiments.html">
-  running successful experiments</a>.
-</p>
diff --git a/docs/html/distribute/stories/apps/upbeat-games.jd b/docs/html/distribute/stories/games/upbeat-games.jd
similarity index 96%
rename from docs/html/distribute/stories/apps/upbeat-games.jd
rename to docs/html/distribute/stories/games/upbeat-games.jd
index 02222d3..16a1d51 100644
--- a/docs/html/distribute/stories/apps/upbeat-games.jd
+++ b/docs/html/distribute/stories/games/upbeat-games.jd
@@ -1,8 +1,8 @@
 page.title=Witch Puzzle Achieves 98% of International Installs on Android
 page.metaDescription=Witch Puzzle localized their app into 12 languages.
-page.tags="developerstory", "apps", "googleplay"
+page.tags="developerstory", "games", "googleplay"
 page.image=images/cards/distribute/stories/witch-puzzle.png
-page.timestamp=1468270106
+page.timestamp=1468901832
 
 @jd:body
 
diff --git a/docs/html/distribute/stories/index.jd b/docs/html/distribute/stories/index.jd
index 8fe1019..1adc5ae 100644
--- a/docs/html/distribute/stories/index.jd
+++ b/docs/html/distribute/stories/index.jd
@@ -19,21 +19,43 @@
 <section class="dac-section dac-small" id="latest-apps"><div class="wrap">
   <h2 class="norule">Latest from apps</h2>
 
+  <h3 class="norule">Videos</h3>
+
   <div class="resource-widget resource-flow-layout col-16"
-      data-query="type:distribute+tag:developerstory+tag:apps, type:youtube+tag:developerstory+tag:apps"
+      data-query="type:youtube+tag:developerstory+tag:apps"
       data-sortOrder="-timestamp"
       data-cardSizes="6x6"
       data-items-per-page="15"
-      data-initial-results="9"></div>
+      data-initial-results="6"></div>
+
+  <h3 class="norule">Articles</h3>
+
+  <div class="resource-widget resource-flow-layout col-16"
+      data-query="type:distribute+tag:developerstory+tag:apps"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-items-per-page="15"
+      data-initial-results="6"></div>
 </div></section>
 
 <section class="dac-section dac-small" id="latest-games"><div class="wrap">
   <h2 class="norule">Latest from games</h2>
 
+  <h3 class="norule">Videos</h3>
+
   <div class="resource-widget resource-flow-layout col-16"
-      data-query="type:distribute+tag:developerstory+tag:games,type:youtube+tag:developerstory+tag:games"
+      data-query="type:youtube+tag:developerstory+tag:games"
       data-sortOrder="-timestamp"
       data-cardSizes="6x6"
       data-items-per-page="15"
-      data-initial-results="9"></div>
+      data-initial-results="6"></div>
+
+  <h3 class="norule">Articles</h3>
+
+  <div class="resource-widget resource-flow-layout col-16"
+      data-query="type:distribute+tag:developerstory+tag:games"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-items-per-page="15"
+      data-initial-results="6"></div>
 </div></section>
diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
index a05cc8d..7d932b7 100644
--- a/docs/html/google/play/billing/billing_overview.jd
+++ b/docs/html/google/play/billing/billing_overview.jd
@@ -7,19 +7,20 @@
 <div id="qv">
   <h2>Quickview</h2>
   <ul>
-    <li>Use In-app Billing to sell digital goods, including one-time items and
+    <li>Use In-app Billing to sell digital products, including one-time products and
 recurring subscriptions.</li>
-    <li>Supported for any app published on Google Play. You only need a Google
+    <li>In-app Billing is supported for any app published on Google Play. You need only a
+    Google
 Play Developer Console account and a Google payments merchant account.</li>
-    <li>Checkout processing is automatically handled by Google Play, with the
-same look-and-feel as for app purchases.</li>
+    <li>Google Play automatically handles checkout processing with the
+same look and feel as app purchases.</li>
   </ul>
   <h2>In this document</h2>
   <ol>
     <li><a href="#api">In-app Billing API</a></li>
     <li><a href="#products">In-app Products</a>
        <ol>
-       <li><a href="#prodtypes">Product Types</a>
+       <li><a href="#prodtypes">Product types</a>
        </ol>
     </li>
     <li><a href="#console">Google Play Developer Console</a></li>
@@ -27,30 +28,33 @@
     <li><a href="#samples">Sample App</a></li>
     <li><a href="#migration">Migration Considerations</a></li>
   </ol>
-   <h2>Related Samples</h2>
+   <h2>Related samples</h2>
   <ol>
     <li><a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">Sample
       Application (V3)</a></li>
   </ol>
-   <h2>Related Videos</h2>
+   <h2>Related videos</h2>
   <ol>
-    <li><a href="https://www.youtube.com/watch?v=UvCl5Xx7Z5o">Implementing
+    <li><a class="external-link"  href="https://www.youtube.com/watch?v=UvCl5Xx7Z5o">
+    Implementing
       Freemium</a></li>
   </ol>
 </div>
 </div>
 
-<p>This documentation describes the fundamental In-app Billing components and
+<p>This document describes the fundamental In-app Billing components and
 features that you need to understand in order to add In-app
 Billing features into your application.</p>
 
-<p class="note"><b>Note</b>: Ensure that you comply with applicable laws in the countries where you
-distribute apps. For example, in EU countries, laws based on the
-<a href="http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2005:149:0022:0039:EN:PDF">
-Unfair Commercial Practices Directive</a> prohibit direct exhortations to children to buy advertised
-products or to persuade their parents or other adults to buy advertised products for them.
-See the
-<a href="http://ec.europa.eu/consumers/enforcement/docs/common_position_on_online_games_en.pdf">
+<p class="note"><b>Note</b>: Ensure that you comply with applicable laws in the countries where
+ you distribute apps. For example, in EU countries, laws based on the
+<a class="external-link"
+ href="http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2005:149:0022:0039:EN:PDF">
+Unfair Commercial Practices Directive</a> prohibit direct exhortations to children to buy
+  advertised products or to persuade their parents or other adults to buy advertised products
+  for them. See the
+<a class="external-link"
+ href="http://ec.europa.eu/consumers/enforcement/docs/common_position_on_online_games_en.pdf">
 position of the EU consumer protection authorities</a> for more information on this and other
 topics.
 </p>
@@ -61,75 +65,82 @@
 app then conveys billing requests and responses between your
 application and the Google Play server. In practice, your application never
 directly communicates with the Google Play server. Instead, your application
-sends billing requests to the Google Play application over interprocess
+sends billing requests to the Google Play app over interprocess
 communication (IPC) and receives responses from the Google Play app.
 Your application does not manage any network connections between itself and
 the Google Play server.</p>
-<p>In-app Billing can be implemented only in applications that you publish
+<p>You can implement In-app Billing only in applications that you publish
 through Google Play. To complete in-app purchase requests, the Google Play app
 must be able to access the Google Play server over the network.</p>
 
-<p>In-app billing Version 3 is the latest version, and maintains very broad
+<p>In-app Billing Version 3 is the latest version, and it maintains very broad
 compatibility across the range of Android devices. In-app Billing Version 3 is
-supported on devices running Android 2.2 or higher that have the latest version
-of the Google Play store installed (<a
+supported on devices running Android 2.2 (API level 8) or higher that have the latest version
+of the Google Play app installed (<a
 href="{@docRoot}about/dashboards/index.html">a vast majority</a> of active
 devices).</p>
 
 <h4>Version 3 features</h4>
+<p>In-app Billing Version 3 provides the following features:</p>
 <ul>
-<li>Requests are sent through a streamlined API that allows you to easily request
-product details from Google Play, order in-app products, and quickly restore
-items based on users' product ownership</li>
-<li>Order information is synchronously propagated to the device on purchase
-completion</li>
-<li>All purchases are “managed” (that is, Google Play keeps track of the user's
-ownership of in-app products). The user cannot own multiple copies of an in-app
-item; only one copy can be owned at any point in time</li>
-<li>Purchased items can be consumed. When consumed, the item reverts to the
-"unowned" state and can be purchased again from Google Play</li>
-<li>Provides support for <a
-  href="{@docRoot}google/play/billing/billing_subscriptions.html">subscriptions</a></li>
+<li>Your app sends requests through a streamlined API that allows users to easily request
+product details from Google Play and order in-app products. The API quickly restores
+products based on the user's ownership.</li>
+<li>The API synchronously propagates order information to the device on purchase
+completion.</li>
+<li>All purchases are <em>managed</em> (that is, Google Play keeps track of the user's
+ownership of in-app products). The user can't own multiple copies of an in-app
+product; only one copy can be owned at any point in time.</li>
+<li>Purchased products can be consumed. When consumed, the product reverts to the
+<em>unowned</em> state and can be purchased again from Google Play.</li>
+<li>The API provides support for <a
+  href="{@docRoot}google/play/billing/billing_subscriptions.html">subscriptions</a>.</li>
 </ul>
 <p>For details about other versions of In-app Billing, see the
 <a href="{@docRoot}google/play/billing/versions.html">Version Notes</a>.</p>
 
 <h2 id="products">In-app Products</h2>
-<p>In-app products are the digital goods that you offer for sale from inside your
-application to users. Examples of digital goods includes in-game currency,
+<p>In-app products are the digital products that you offer for sale to users from inside your
+application. Examples of digital products include in-game currency,
 application feature upgrades that enhance the user experience, and new content
 for your application.</p>
 <p>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. Unlike with priced applications, once
-the user has purchased an in-app product there is no refund window.</p>
+You can't use In-app Billing to sell physical products, personal services, or
+anything that requires physical delivery. Unlike with priced applications, there is no refund
+ window after
+the user has purchased an in-app product.</p>
 <p>Google Play does not provide any form of content delivery. You are
 responsible for delivering the digital content that you sell in your
-applications. In-app products are always explicitly associated with one and
-only one app. That is, one application cannot purchase an in-app product
-published for another app, even if they are from the same developer.</p>
+applications. In-app products are always explicitly associated with
+ only one app. That is, one application can't purchase an in-app product
+that is published for another app, even if they are from the same developer.</p>
 
 <h3 id="prodtypes">Product types</h3>
 <p>In-app Billing supports different product types to give you flexibility in
 how you monetize your application. In all cases, you define your products using
 the Google Play Developer Console.</p>
-<p>You can specify these types of products for your In-app Billing application
-— <em>managed in-app products</em> and <em>subscriptions</em>. Google Play
-handles and tracks ownership for in-app products and subscriptions on your
-application on a per user account basis.
-<a href="{@docRoot}google/play/billing/api.html#producttypes">Learn more about
-the product types supported by In-app Billing Version 3</a>.</p>
+<p>You can specify two product types for your In-app Billing application:
+ <em>managed in-app products</em> and <em>subscriptions</em>. Google Play
+handles and tracks ownership for in-app products and subscriptions for your
+application on a per-user basis.
+<a href="{@docRoot}google/play/billing/api.html#producttypes">Learn more</a> about
+the product types supported by In-app Billing Version 3.</p>
 
 <h2 id="console">Google Play Developer Console</h2>
 <p>The Developer Console is where you can publish your
 In-app Billing application and manage the various in-app products that are
 available for purchase from your application.</p>
 <p>You can create a product list of
-digital goods that are associated with your application, including items for
-one-time purchase and recurring subscriptions. For each item, you can define
-information such as the item’s unique product ID (also called its SKU), product
-type, pricing, description, and how Google Play should handle and track
-purchases for that product.</p>
+digital products that are associated with your application, including products for
+one-time purchase and recurring subscriptions. You can define
+information for each product such as the following:</p>
+<ul>
+<li>Unique product ID (also called its SKU).</li>
+<li>Product type.</li>
+<li>Pricing.</li>
+<li>Description.</li>
+<li>Google Play handling and tracking of purchases for that product.</li></p>
+</ul>
 <p>If you sell several of your apps or in-app products at the same price, you
 can add <em>pricing templates</em> to manage these price points from a
 centralized location. When using pricing templates, you can include local taxes
@@ -146,7 +157,7 @@
 In-app Billing</a>.</p>
 
 <h2 id="checkout">Google Play Purchase Flow</h2>
-<p>Google Play uses the same checkout backend service as is used for application
+<p>Google Play uses the same backend checkout service that is used for application
 purchases, so your users experience a consistent and familiar purchase flow.</p>
 <p class="note"><strong>Important:</strong> You must have a Google payments
 merchant account to use the In-app Billing service on Google Play.</p>
@@ -157,8 +168,8 @@
 <p>When the checkout process is complete,
 Google Play sends your application the purchase details, such as the order
 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>
+application have to handle any financial transactions; that role belongs to
+ Google Play.</p>
 
 <h2 id="samples">Sample Application</h2>
 <p>To help you integrate In-app Billing into your application, the Android SDK
@@ -166,16 +177,16 @@
 from inside an app.</p>
 
 <p>The <a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">
-TrivialDrive sample for the Version 3 API</a> sample shows how to use the In-app
+TrivialDrive for the Version 3 API</a> sample shows how to use the In-app
 Billing Version 3 API
 to implement in-app product and subscription purchases for a driving game. The
-application demonstrates how to send In-app Billing requests, and handle
+application demonstrates how to send In-app Billing requests and handle
 synchronous responses from Google Play. The application also shows how to record
-item consumption with the API. The Version 3 sample includes convenience classes
+product consumption with the API. The Version 3 sample includes convenience classes
 for processing In-app Billing operations as well as perform automatic signature
 verification.</p>
 
-<p class="caution"><strong>Recommendation</strong>: Make sure to obfuscate the
+<p class="caution"><strong>Recommendation</strong>: Be sure to obfuscate the
 code in your application before you publish it. For more information, see
 <a href="{@docRoot}google/play/billing/billing_best_practices.html">Security
 and Design</a>.</p>
@@ -183,16 +194,17 @@
 <h2 id="migration">Migration Considerations</h2>
 <p>The In-app Billing Version 2 API was discontinued in January 2015.
 If you have an existing In-app Billing implementation that uses API Version 2 or
-earlier, you must migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version
-3</a>.</p>
+earlier, you must migrate to <a href="{@docRoot}google/play/billing/api.html">
+In-app Billing Version 3</a>.</p>
 
-<p>If you have published apps selling in-app products, note that:</p>
+<p>After migration, managed and unmanaged products are handled as follows:</p>
 <ul>
-<li>Managed items and subscriptions that you have previously defined in the Developer Console will
-work with Version 3 as before.</li>
-<li>Unmanaged items that you have defined for existing applications will be
-treated as managed products if you make a purchase request for these items using
-the Version 3 API. You do not need to create a new product entry in Developer
-Console for these items, and you can use the same product IDs to purchase these
-items.
+<li>Managed products and subscriptions that you have previously defined in the
+ Developer Console
+ work with Version 3 just as before.</li>
+<li>Unmanaged products that you have defined for existing applications are
+ treated as managed products if you make a purchase request for these products using
+the Version 3 API. You don't need to create a new product entry in the Developer
+Console for these products, and you can use the same product IDs to manage these
+products.
 </ul>
diff --git a/docs/html/google/play/billing/billing_promotions.jd b/docs/html/google/play/billing/billing_promotions.jd
index ccf50fc..4fe1abf 100644
--- a/docs/html/google/play/billing/billing_promotions.jd
+++ b/docs/html/google/play/billing/billing_promotions.jd
@@ -1,7 +1,7 @@
 page.title=In-app Promotions
 parent.title=In-app Billing
 parent.link=index.html
-page.metaDescription=Support promo codes in your app, which let you give content or features away to a limited number of users free of charge.
+page.metaDescription=Support promo codes in your app, which lets you give content or features away to a limited number of users free of charge.
 page.image=/images/play_dev.jpg
 page.tags="promotions, billing, promo codes"
 meta.tags="monetization, inappbilling, promotions"
@@ -13,7 +13,7 @@
   <h2>In this document</h2>
   <ol>
     <li><a href="#workflow">Creating and Redeeming Promo Codes</a></li>
-    <li><a href="#supporting">Supporting Promo Codes In Your App</a></li>
+    <li><a href="#supporting">Supporting Promo Codes in Your App</a></li>
     <li><a href="#testing">Testing In-app Promotions</a></li>
   </ol>
   <h2>See also</h2>
@@ -27,26 +27,26 @@
 
 <p>
   Promo codes let you give content or features away to a limited number of
-  users free of charge. Once you create a promo code, you can distribute it
+  users free of charge. After you create a promo code, you can distribute it
   subject to the
   <!--TODO: Link to TOS when/if they're available as a web page --> terms of
-  service. The user enters the promo code in your app or in the Play Store app,
-  and gets the item at no cost. You can use promo codes in many ways to
-  creatively engage with users. For example:
+  service. The user enters the promo code in your app or in the Google Play Store app
+  and receives the item at no cost. You can use promo codes in many ways to
+  creatively engage with users, such as the following:
 </p>
 
 <ul>
   <li>A game could have a special item, such as a character or decoration,
   that's only available to players who attend an event. The developer could
   distribute cards with promo codes at the event, and users would enter their
-  promo code to unlock the item.
+  promo codes to unlock the item.
   </li>
 
-  <li>An app developer might distribute promo codes at local businesses, to
+  <li>An app developer might distribute promo codes at local businesses to
   encourage potential users to try the app.
   </li>
 
-  <li>An app developer might give out "friends and family" codes to its employees to
+  <li>An app developer might give <em>friends and family codes</em> to its employees to
   share with their friends.
   </li>
 </ul>
@@ -54,11 +54,11 @@
 <p>
   Every promo code is associated with a particular <em>product ID</em> (also
   known as a <em>SKU</em>). You can create promo codes for your existing in-app
-  products. You can also keep a SKU off the Play Store, so the only way to get
+  products. You can also keep an SKU off the Play Store, so that the only way to get
   that item is by entering that SKU's promo code. When a user enters the promo
-  code in the Play Store or in their app, the user gets the item, just as if
+  code in the Play Store or in an app, the user gets the item, just as if
   they paid full price for it. If your app already uses <a href=
-  "{@docRoot}google/play/billing/api.html">In-app Billing version 3</a> to
+  "{@docRoot}google/play/billing/api.html">In-app Billing Version 3</a> to
   support in-app purchases, it's easy to add support for promo codes.
 </p>
 
@@ -67,12 +67,12 @@
 <p>
   You create promo codes through the <a href=
   "https://play.google.com/apps/publish/" class="external-link">Google Play
-  Developer Console</a>. Each promo code is associated with a single product item
+  Developer Console</a>. Each promo code is associated with a single product
   registered in the developer console.
 </p>
 
 <p>
-  When a user gets a promo code, they redeem it in one of two ways:
+  A user can redeem a promo code in one of these two ways:
 </p>
 
 <ul>
@@ -85,33 +85,20 @@
 
   <li>The user can redeem the code in the Google Play Store app. Once the user
   enters the code, the Play Store prompts the user to open the app (if they have
-  the latest version installed) or to download or update it. (We do not
-  currently support redeeming promo codes from the Google Play web store.)
+  the latest version installed) or to download or update it. Google doesn't
+  currently support redeeming promo codes from the Google Play web store.
   </li>
 </ul>
 
-<p>
-  If the promo code is for a <a href=
-  "{@docRoot}google/play/billing/api.html#consumetypes">consumable product</a>,
-  the user can apply an additional code for the same product <em>after</em> the first
-  product is consumed. For example, a game might offer promo codes for a bundle
-  of extra lives. Betty has two different promo codes for that bundle. She
-  redeems a single promo code, then launches the game. When the game launches,
-  the her character receives the lives, consuming the item. She can now redeem
-  the second promo code for another bundle of lives. (She cannot redeem the
-  second promo code until after she consumes the item she purchased with the
-  first promo code.)
-</p>
-
-<h2 id="supporting">Supporting Promo Codes In Your App</h2>
+<h2 id="supporting">Supporting Promo Codes in Your App</h2>
 
 <p>
-  To support promotion codes, your app should call the <a href=
+  To support promotion codes, your app must call the <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
   method whenever the app starts or resumes. This method returns a bundle of all
   current, unconsumed purchases, including purchases the user made by redeeming
-  a promo code. This simplest approach is to call <a href=
+  a promo code. The simplest approach is to call <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
   in your activity's {@link android.app.Activity#onResume onResume()} method,
@@ -119,21 +106,21 @@
   activity is unpaused. Calling <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
-  on startup and resume guarantees that your app will find out about all
+  on startup and resume guarantees that your app finds out about all
   purchases and redemptions the user may have made while the app wasn't
   running. Furthermore, if a user makes a purchase while the app is running and
-  your app misses it for any reason, your app will still find out about the
+  your app misses it for any reason, your app still finds out about the
   purchase the next time the activity resumes and calls <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>.
 </p>
 
 <p>
-  In addition, your app should allow users to redeem promo codes inside the app
+  Your app should allow users to redeem promo codes inside the app
   itself. If your app supports the in-app purchase workflow (described in
   <a href=
   "{@docRoot}google/play/billing/billing_integrate.html#billing-requests">Making
-  In-app Billing Requests</a>), your app automatically supports in-app
+  In-app Billing requests</a>), your app automatically supports in-app
   redemption of promo codes. When you launch the in-app purchase UI,
   the user has the option to pay for the purchase with
   a promo code. Your activity's {@link android.app.Activity#onActivityResult
@@ -141,9 +128,9 @@
   purchase was completed. However, your app should still call <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
-  on startup and resume, just in case the purchase and consumption workflow
-  didn't complete. For example, if the user successfully redeems a promo code,
-  and then your app crashes before the item is consumed, your app still gets
+  on startup and resume, in case the purchase and consumption workflow
+  didn't complete. For example, if the user successfully redeems a promo code
+  and then your app crashes before the item is consumed, your app still receives
   information about the purchase when the app calls <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a> on its next startup.
@@ -160,8 +147,8 @@
 <p>
   To listen for the <code>PURCHASES_UPDATED</code> intent, dynamically create a
   {@link android.content.BroadcastReceiver} object and register it to listen
-  for <code>"com.android.vending.billing.PURCHASES_UPDATED"</code>. Register
-  the receiver by putting code like this in your activity's {@link
+  for <code>com.android.vending.billing.PURCHASES_UPDATED</code>. Register
+  the receiver by inserting code similar to the following in your activity's {@link
   android.app.Activity#onResume onResume()} method:
 </p>
 
@@ -172,36 +159,34 @@
 <p>
   When the user makes a purchase, the system invokes your broadcast receiver's
   {@link android.content.BroadcastReceiver#onReceive onReceive()} method. That
-  method should call <a href=
+  method must call <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
   to see what purchases the user has made.
 </p>
 
-<p>
-  Your activity's {@link android.app.Activity#onPause onPause()} method should
-  unregister the broadcast receiver, to reduce system overhead when your app
-  isn't running:
+<p>To reduce system overhead when your app
+  isn't running, your activity's {@link android.app.Activity#onPause onPause()} method must
+  unregister the broadcast receiver:
 </p>
 
 <pre>unRegisterReceiver(myPromoReceiver);</pre>
 
 <p class="note">
-  <strong>Note:</strong> You should not register this broadcast receiver in the
+  <strong>Note:</strong> Don't register this broadcast receiver in the
   app manifest. Declaring the receiver in the manifest can cause the system to
   launch the app to handle the intent if the user makes a purchase while the app
-  isn't running. This behavior is not necessary, and may be annoying to the
-  user. Instead, your app should call <a href=
-  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
-  ><code>getPurchases()</code></a>
-  when the user launches it, to find out about any purchases the user made
-  while the app wasn't running.
+  isn't running. This behavior is not necessary and may be annoying to the
+  user.
+  To find out about any purchases the user made while the app wasn't running,
+  call <a href="{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a> when the user launches the app.
 </p>
 
 <h2 id="testing">Testing In-app Promotions</h2>
 
 <p>
-  If your app supports in-app promotions, you should test the following use
+  If your app supports in-app promotions, test the following use
   cases.
 </p>
 
@@ -211,18 +196,18 @@
   If the user redeems a promo code within the app's purchase flow, as described
   in <a href=
   "{@docRoot}google/play/billing/billing_integrate.html#billing-requests">Making
-  In-app Billing Requests</a>, the system invokes your activity's {@link
+  In-app Billing requests</a>, the system invokes your activity's {@link
   android.app.Activity#onActivityResult onActivityResult()} method to handle
   the purchase. Verify that {@link android.app.Activity#onActivityResult
-  onActivityResult()} handles the purchase properly, whether the user uses cash
+  onActivityResult()} handles the purchase properly, whether the user pays with money
   or a promo code.
 </p>
 
-<h3 id="test-playstore">User redeems promo code in the Play Store</h3>
+<h3 id="test-playstore">User redeems promo code in the Google Play Store</h3>
 
 <p>
   If the user redeems a promo code in the Play Store, there are several
-  possible workflows. You should verify each one of these.
+  possible workflows. Verify each one of these workflows.
 </p>
 
 <h4 id="test-app-uninstalled">App is not installed</h4>
@@ -231,16 +216,16 @@
   If the user redeems a promo code for an app that is not installed on the
   device, the Play Store prompts the user to install the app. (If the app is
   installed but not up-to-date, the Play Store prompts the user to update the
-  app.) You should test the following sequence on a device that does not
+  app.) Test the following sequence on a device that doesn't
   have your app installed.
 </p>
 
 <ol>
-  <li>User redeems a promo code for the app in the Play Store. The Play Store
+  <li>The user redeems a promo code for the app in the Play Store. The Play Store
   prompts the user to install your app.
   </li>
 
-  <li>User installs and launches your app. Verify that on startup, the app
+  <li>The user installs and launches your app. Verify that on startup, the app
   calls <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
@@ -252,16 +237,16 @@
 
 <p>
   If the user redeems a promo code for an app that is installed on the device,
-  the Play Store prompts the user to switch to the app.  You should test the
+  the Play Store prompts the user to switch to the app. Test the
   following sequence on a device that has your app installed but not running:
 </p>
 
 <ol>
-  <li>User redeems a promo code for the app in the Play Store. The Play Store
+  <li>The user redeems a promo code for the app in the Play Store. The Play Store
   prompts the user to switch to your app.
   </li>
 
-  <li>User launches your app. Verify that on startup, the app calls <a href=
+  <li>The user launches your app. Verify that on startup the app calls <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
   ><code>getPurchases()</code></a>
   and correctly detects the purchase the user made with the promo code.
@@ -274,15 +259,15 @@
 <p>
   If the user redeems a promo code for an app that is currently running on the
   device, the Play Store notifies the app via a <code>PURCHASES_UPDATED</code>
-  intent. You should test the following sequence:
+  intent. Test the following sequence:
 </p>
 
 <ol>
-  <li>User launches the app. Verify that the app has properly registered itself to
+  <li>The user launches the app. Verify that the app has properly registered itself to
   receive the <code>PURCHASES_UPDATED</code> intent.
   </li>
 
-  <li>User launches the Play Store app and redeems a promo code for the app. The Play
+  <li>The user launches the Play Store app and redeems a promo code for the app. The Play
   Store fires a <code>PURCHASES_UPDATED</code> intent. Verify that your app's
   {@link android.content.BroadcastReceiver#onReceive
   BroadcastReceiver.onReceive()} callback fires to handle the intent.
@@ -291,11 +276,11 @@
   <li>Your {@link android.content.BroadcastReceiver#onReceive onReceive()}
   method should respond to the intent by calling <a href=
   "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
-  ><code>getPurchases()</code></a>. Verify that it calls this method, and that
+  ><code>getPurchases()</code></a>. Verify that your app calls this method and that
   it correctly detects the purchase the user made with the promo code.
   </li>
 
-  <li>User switches back to your app. Verify that the user has the purchased
+  <li>The user switches back to your app. Verify that the user has the purchased
   item.
   </li>
 </ol>
diff --git a/docs/html/guide/_book.yaml b/docs/html/guide/_book.yaml
index 6d6686b..20ee483 100644
--- a/docs/html/guide/_book.yaml
+++ b/docs/html/guide/_book.yaml
@@ -9,6 +9,33 @@
   - title: System Permissions
     path: /guide/topics/security/permissions.html
 
+- title: Platform Architecture
+  path: /guide/platform/index.html
+  section:
+  - title: Use Java 8 Language Features
+    path: /guide/platform/j8-jack.html
+    path_attributes:
+    - name: es-lang
+      value: Funciones del lenguaje Java 8
+    - name: in-lang
+      value: Fitur Bahasa Java 8
+    - name: ja-lang
+      value: Java 8 の機能
+    - name: ko-lang
+      value: Java 8 언어 기능
+    - name: pt-br-lang
+      value: Recursos de linguagem do Java 8
+    - name: ru-lang
+      value: Возможности языка Java 8
+    - name: vi-lang
+      value: Tính năng của Ngôn ngữ Java 8
+    - name: zh-cn-lang
+      value: Java 8 语言功能
+    - name: zh-tw-lang
+      value: Java 8 語言功能
+  - title: Verifying App Behavior on the Android Runtime (ART)
+    path: /guide/practices/verifying-apps-art.html
+
 - title: App Components
   path: /guide/components/index.html
   section:
@@ -69,6 +96,11 @@
     path: /guide/topics/resources/runtime-changes.html
   - title: Localization
     path: /guide/topics/resources/localization.html
+    section:
+    - title: ICU4J Android Framework APIs
+      path: /guide/topics/resources/icu4j-framework.html
+    - title: Language and Locale
+      path: /guide/topics/resources/multilingual-support.html
   - title: Resource Types
     path: /guide/topics/resources/available-resources.html
     section:
@@ -203,6 +235,8 @@
       path: /guide/topics/search/adding-custom-suggestions.html
     - title: Searchable Configuration
       path: /guide/topics/search/searchable-config.html
+  - title: Multi-Window Support
+    path: /guide/topics/ui/multi-window.html
   - title: Drag and Drop
     path: /guide/topics/ui/drag-drop.html
   - title: Accessibility
@@ -417,5 +451,3 @@
       path: /guide/practices/screen-compat-mode.html
   - title: Supporting Tablets and Handsets
     path: /guide/practices/tablets-and-handsets.html
-  - title: Verifying App Behavior on ART
-    path: /guide/practices/verifying-apps-art.html
diff --git a/docs/html/guide/components/intents-common.jd b/docs/html/guide/components/intents-common.jd
index 9488f6e..e6c9fc6 100644
--- a/docs/html/guide/components/intents-common.jd
+++ b/docs/html/guide/components/intents-common.jd
@@ -99,7 +99,6 @@
     </ol>
   </li>
   <li><a href="#AdbIntents">Verify Intents with the Android Debug Bridge</a></li>
-  <li><a href="#Now">Intents Fired by Google Now</a></li>
 </ol>
 
   <h2>See also</h2>
@@ -110,9 +109,9 @@
 </div>
 </div>
 
-<!-- Google Now box styles -->
+<!-- Google Voice Actions box styles -->
 <style type="text/css">
-.now-box {
+.voice-box {
   border-color: rgb(204,204,204);
   border-style: solid;
   border-width: 1px;
@@ -121,99 +120,120 @@
   padding: 17px;
   width: 200px;
 }
-.now-box li {
+.voice-box li {
   font-size: 13px;
   font-style: italic;
   margin-top: 0px;
 }
-.now-box ul {
+.voice-box ul {
   margin-bottom: 0px;
 }
-.now-img {
+.voice-img {
   width: 30px;
   margin-bottom: 0px !important;
 }
-.now-img-cont {
+.voice-img-cont {
   float: left;
   margin-right: 10px;
 }
-.now-title {
+.voice-title {
   font-weight: bold;
   margin-top: 7px;
 }
-.now-list {
+.voice-list {
   font-size: 13px;
   margin-bottom: 10px !important;
   list-style-type: none;
 }
-.now-list li {
+.voice-list li {
   font-style: italic;
 }
 </style>
 
-<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>
+  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>
+  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>
+  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 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>
+<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>
 
-<p>To learn how to fire the intents listed on this page from your development host, see
-<a href="#AdbIntents">Verify Intents with the Android Debug Bridge</a>.</p>
+<p>
+  To learn how to fire the intents listed on this page from your development
+  host, see <a href="#AdbIntents">Verify Intents with the Android Debug
+  Bridge</a>.
+</p>
 
-<h4>Google Now</h4>
+<h4>Google Voice Actions</h4>
 
-<p><a href="http://www.google.com/landing/now/">Google Now</a> fires some of the intents listed
-on this page in response to voice commands. For more information, see
-<a href="#Now">Intents Fired by Google Now</a>.</p>
-
-
-
-
-
+<p>
+  <a href="https://developers.google.com/voice-actions/">Google Voice
+  Actions</a> fires some of the intents listed on this page in response to
+  voice commands. For more information, see <a href=
+  "https://developers.google.com/voice-actions/system/#system_actions_reference">
+  Intents fired by Google Voice Actions</a>.
+</p>
 
 <h2 id="Clock">Alarm Clock</h2>
 
-
 <h3 id="CreateAlarm">Create an alarm</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img" width="30"
-           height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"set an alarm for 7 am"</li>
+    <li>"set an alarm for 7 am"
+    </li>
   </ul>
 </div>
 
@@ -301,22 +321,30 @@
 
 <h3 id="CreateTimer">Create a timer</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"set timer for 5 minutes"</li>
+    <li>"set timer for 5 minutes"
+    </li>
   </ul>
 </div>
 
-<p>To create a countdown timer, use the {@link android.provider.AlarmClock#ACTION_SET_TIMER}
-action and specify timer details such as the duration using extras defined below.</p>
+<p>
+  To create a countdown timer, use the {@link
+  android.provider.AlarmClock#ACTION_SET_TIMER} action and specify timer
+  details such as the duration using extras defined below.
+</p>
 
 <p class="note"><strong>Note:</strong> This intent was added
 in Android 4.4 (API level 19).</p>
@@ -594,28 +622,36 @@
 &lt;/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>
+<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>
 
 
 
 <h3 id="CameraStill">Start a camera app in still image mode</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"take a picture"</li>
+    <li>"take a picture"
+    </li>
   </ul>
 </div>
 
@@ -661,17 +697,22 @@
 
 <h3 id="CameraVideo">Start a camera app in video mode</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"record a video"</li>
+    <li>"record a video"
+    </li>
   </ul>
 </div>
 
@@ -1348,20 +1389,30 @@
 
 <h3 id="CallCar">Call a car</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"get me a taxi"</li>
-    <li>"call me a car"</li>
+    <li>"get me a taxi"
+    </li>
+
+    <li>"call me a car"
+    </li>
   </ul>
-  <p style="font-size:13px;margin-bottom:0px;margin-top:10px">(Android Wear only)</p>
+
+  <p style="font-size:13px;margin-bottom:0px;margin-top:10px">
+    (Android Wear only)
+  </p>
 </div>
 
 <p>To call a taxi, use the
@@ -1548,17 +1599,22 @@
 
 <h3 id="PlaySearch">Play music based on a search query</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"play michael jackson billie jean"</li>
+    <li>"play michael jackson billie jean"
+    </li>
   </ul>
 </div>
 
@@ -1861,19 +1917,28 @@
 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>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"call 555-5555"</li>
-    <li>"call bob"</li>
-    <li>"call voicemail"</li>
+    <li>"call 555-5555"
+    </li>
+
+    <li>"call bob"
+    </li>
+
+    <li>"call voicemail"
+    </li>
   </ul>
 </div>
 
@@ -1947,16 +2012,22 @@
 
 <h3 id="SearchOnApp">Search using a specific app</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30"/></a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"search for cat videos on myvideoapp"</li>
+    <li>"search for cat videos on myvideoapp"
+    </li>
   </ul>
 </div>
 <!-- Video box -->
@@ -1976,7 +2047,7 @@
 <dd>
   <dl>
     <dt><code>"com.google.android.gms.actions.SEARCH_ACTION"</code></dt>
-    <dd>Support search queries from Google Now.</dd>
+    <dd>Support search queries from Google Voice Actions.</dd>
   </dl>
 </dd>
 
@@ -2207,17 +2278,22 @@
 
 <h3 id="ViewUrl">Load a web URL</h3>
 
-<!-- Google Now box -->
-<div class="now-box">
-  <div class="now-img-cont">
-    <a href="#Now">
-      <img src="{@docRoot}guide/components/images/voice-icon.png" class="now-img"
-           width="30" height="30" alt=""/>
-    </a>
+<!-- Google Voice Actions box -->
+<div class="voice-box">
+  <div class="voice-img-cont">
+    <a href=
+    "https://developers.google.com/voice-actions/system/#system_actions_reference">
+    <img src="{@docRoot}guide/components/images/voice-icon.png" class=
+    "voice-img" width="30" height="30" alt=""></a>
   </div>
-  <p class="now-title">Google Now</p>
+
+  <p class="voice-title">
+    Google Voice Actions
+  </p>
+
   <ul>
-    <li>"open example.com"</li>
+    <li>"open example.com"
+    </li>
   </ul>
 </div>
 
@@ -2307,128 +2383,4 @@
 
 
 <p>For more information, see
-<a href="{@docRoot}tools/help/shell.html#am">ADB Shell Commands</a>.</p>
-
-
-
-
-
-
-<h2 id="Now">Intents Fired by Google Now</h2>
-
-<p><a href="http://www.google.com/landing/now/">Google Now</a> recognizes many voice commands
-and fires intents for them. As such, users may launch your app with a Google Now voice command
-if your app declares the corresponding intent filter. For example, if your app can
-<a href="#CreateAlarm">set an alarm</a> and you add the corresponding intent filter to your
-manifest file, Google Now lets users choose your app when they request to set an alarm, as
-shown in figure 1.</p>
-
-<img src="{@docRoot}guide/components/images/google-action.png"
-     srcset="{@docRoot}guide/components/images/google-action_2x.png 2x"
-     width="700" height="241" alt=""/>
-<p class="img-caption"><strong>Figure 1.</strong> Google Now lets users choose from installed
-apps that support a given action.</p>
-
-<p>Google Now recognizes voice commands for the actions listed in table 1. For more information
-about declaring each intent filter, click on the action description.</p>
-
-<p class="table-caption"><strong>Table 1.</strong> Voice commands recognized by Google Now
-(Google Search app v3.6).</p>
-<table>
-<tr>
-  <th>Category</th>
-  <th>Details and Examples</th>
-  <th>Action Name</th>
-</tr>
-<tr>
-  <td rowspan="2" style="vertical-align:middle">Alarm</td>
-  <td>
-    <p><a href="#CreateAlarm">Set alarm</a></p>
-    <ul class="now-list">
-      <li>"set an alarm for 7 am"</li>
-    </ul>
-  </td>
-  <td>{@link android.provider.AlarmClock#ACTION_SET_ALARM AlarmClock.ACTION_SET_ALARM}</td>
-</tr>
-<tr>
-  <td>
-    <p><a href="#CreateTimer">Set timer</a></p>
-    <ul class="now-list">
-      <li>"set a timer for 5 minutes"</li>
-    </ul>
-  </td>
-  <td>{@link android.provider.AlarmClock#ACTION_SET_TIMER AlarmClock.ACTION_SET_TIMER}</td>
-</tr>
-<tr>
-  <td style="vertical-align:middle">Communication</td>
-  <td>
-    <p><a href="#DialPhone">Call a number</a></p>
-    <ul class="now-list">
-      <li>"call 555-5555"</li>
-      <li>"call bob"</li>
-      <li>"call voicemail"</li>
-    </ul>
-  </td>
-  <td>{@link android.content.Intent#ACTION_CALL Intent.ACTION_CALL}</td>
-</tr>
-<tr>
-  <td style="vertical-align:middle">Local</td>
-  <td>
-    <p><a href="#CallCar">Book a car</a></p>
-    <ul class="now-list">
-      <li>"call me a car"</li>
-      <li>"book me a taxi"</li>
-    </ul>
-  </td>
-  <td><a href="{@docRoot}reference/com/google/android/gms/actions/ReserveIntents.html#ACTION_RESERVE_TAXI_RESERVATION">
-      <code>ReserveIntents<br/>.ACTION_RESERVE_TAXI_RESERVATION</code></a></td>
-</tr>
-<tr>
-  <td rowspan="3" style="vertical-align:middle">Media</td>
-  <td>
-    <p><a href="#PlaySearch">Play music from search</a></p>
-    <ul class="now-list">
-      <li>"play michael jackson billie jean"</li>
-    </ul>
-  </td>
-  <td>{@link android.provider.MediaStore#INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH MediaStore<br/>.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH}</td>
-</tr>
-<tr>
-  <td>
-    <p><a href="#CameraStill">Take a picture</a></p>
-    <ul class="now-list">
-      <li>"take a picture"</li>
-    </ul>
-  </td>
-  <td>{@link android.provider.MediaStore#INTENT_ACTION_STILL_IMAGE_CAMERA MediaStore<br/>.INTENT_ACTION_STILL_IMAGE_CAMERA}</td>
-</tr>
-<tr>
-  <td>
-    <p><a href="#CameraVideo">Record a video</a></p>
-    <ul class="now-list">
-      <li>"record a video"</li>
-    </ul>
-  </td>
-  <td>{@link android.provider.MediaStore#INTENT_ACTION_VIDEO_CAMERA MediaStore<br/>.INTENT_ACTION_VIDEO_CAMERA}</td>
-</tr>
-<tr>
-  <td style="vertical-align:middle">Search</td>
-  <td>
-    <p><a href="#SearchOnApp">Search using a specific app</a></p>
-    <ul class="now-list">
-      <li>"search for cat videos <br/>on myvideoapp"</li>
-    </ul>
-  </td>
-  <td><code>"com.google.android.gms.actions<br/>.SEARCH_ACTION"</code></td>
-</tr>
-<tr>
-  <td style="vertical-align:middle">Web browser</td>
-  <td>
-    <p><a href="#ViewUrl">Open URL</a></p>
-    <ul class="now-list">
-      <li>"open example.com"</li>
-    </ul>
-  </td>
-  <td>{@link android.content.Intent#ACTION_VIEW Intent.ACTION_VIEW}</td>
-</tr>
-</table>
+<a href="{@docRoot}tools/help/shell.html#am">ADB Shell Commands</a>.</p>
\ No newline at end of file
diff --git a/docs/html/guide/platform/images/android-stack_2x.png b/docs/html/guide/platform/images/android-stack_2x.png
new file mode 100644
index 0000000..33bb144
--- /dev/null
+++ b/docs/html/guide/platform/images/android-stack_2x.png
Binary files differ
diff --git a/docs/html/guide/platform/index.jd b/docs/html/guide/platform/index.jd
new file mode 100644
index 0000000..9aed461
--- /dev/null
+++ b/docs/html/guide/platform/index.jd
@@ -0,0 +1,217 @@
+page.title=Platform Architecture
+page.keywords=platform,architecture,framework
+@jd:body
+
+
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>
+      In this document
+    </h2>
+
+    <ol>
+      <li>
+        <a href="#linux-kernel">The Linux Kernel</a>
+      </li>
+
+      <li>
+        <a href="#hal">Hardware Abstraction Layer (HAL)</a>
+      </li>
+
+      <li>
+        <a href="#art">Android Runtime</a>
+      </li>
+
+      <li>
+        <a href="#native-libs">Native C/C++ Libraries</a>
+      </li>
+
+      <li>
+        <a href="#api-framework">Java API Framework</a>
+      </li>
+
+      <li>
+        <a href="#system-apps">System Apps</a>
+      </li>
+    </ol>
+  </div>
+</div>
+
+<p>
+  Android is an open source, Linux-based software stack created for a wide
+  array of devices and form factors. The following diagram shows the major
+  components of the Android platform.
+</p>
+
+<img src="/guide/platform/images/android-stack_2x.png" alt="" width=
+"519">
+<p class="img-caption">
+  <strong>Figure 1.</strong> The Android software stack.
+</p>
+
+<h2 id="linux-kernel">
+The Linux Kernel
+</h2>
+
+<p>
+  The foundation of the Android platform is the Linux kernel. For example,
+  <a href="#art">the Android Runtime (ART)</a> relies on the Linux kernel for
+  underlying functionalities such as threading and low-level memory management.
+</p>
+
+<p>
+  Using a Linux kernel allows Android to take advantage of <a href=
+  "https://source.android.com/security/overview/kernel-security.html">key
+  security features</a> and allows device manufacturers to develop hardware
+  drivers for a well-known kernel.
+</p>
+
+<h2 id="hal">
+Hardware Abstraction Layer (HAL)
+</h2>
+
+<p>
+  The <a href=
+  "https://source.android.com/devices/index.html#Hardware%20Abstraction%20Layer">
+  hardware abstraction layer (HAL)</a> provides standard interfaces that expose
+  device hardware capabilities to the higher-level <a href=
+  "#api-framework">Java API framework</a>. The HAL consists of multiple library
+  modules, each of which implements an interface for a specific type of hardware
+  component, such as the <a href=
+  "https://source.android.com/devices/camera/index.html">camera</a> or <a href=
+  "https://source.android.com/devices/bluetooth.html">bluetooth</a> module.
+  When a framework API makes a call to access device hardware, the Android
+  system loads the library module for that hardware component.
+</p>
+
+<h2 id="art">
+Android Runtime
+</h2>
+
+<p>
+  For devices running Android version 5.0 (API level 21) or higher, each app
+  runs in its own process and with its own instance of the <a href=
+  "http://source.android.com/devices/tech/dalvik/index.html">Android Runtime
+  (ART)</a>. ART is written to run multiple virtual machines on low-memory
+  devices by executing DEX files, a bytecode format designed specially for
+  Android that's optimized for minimal memory footprint. Build toolchains, such
+  as <a href="https://source.android.com/source/jack.html">Jack</a>, compile
+  Java sources into DEX bytecode, which can run on the Android platform.
+</p>
+
+<p>
+  Some of the major features of ART include the following:
+</p>
+
+<ul>
+  <li>Ahead-of-time (AOT) and just-in-time (JIT) compilation
+  </li>
+
+  <li>Optimized garbage collection (GC)
+  </li>
+
+  <li>Better debugging support, including a dedicated sampling profiler,
+  detailed diagnostic exceptions and crash reporting, and the ability to set
+  watchpoints to monitor specific fields
+  </li>
+</ul>
+
+<p>
+  Prior to Android version 5.0 (API level 21), Dalvik was the Android runtime.
+  If your app runs well on ART, then it should work on Dalvik as well, but
+  <a href="/guide/platform/verifying-apps-art.html">the reverse may not be
+  true</a>.
+</p>
+
+<p>
+  Android also includes a set of core runtime libraries that provide most of
+  the functionality of the Java programming language, including some <a href=
+  "/guide/platform/j8-jack.html">Java 8 language features</a>, that the Java
+  API framework uses.
+</p>
+
+<h2 id="native-libs">
+  Native C/C++ Libraries
+</h2>
+
+<p>
+  Many core Android system components and services, such as ART and HAL, are
+  built from native code that require native libraries written in C and C++.
+  The Android platform provides Java framework APIs to expose the functionality
+  of some of these native libraries to apps. For example, you can access
+  <a href="/guide/topics/graphics/opengl.html">OpenGL ES</a> through the
+  Android framework’s <a href=
+  "/reference/android/opengl/package-summary.html">Java OpenGL API</a> to add
+  support for drawing and manipulating 2D and 3D graphics in your app.
+</p>
+
+<p>
+  If you are developing an app that requires C or C++ code, you can use the
+  <a href="/ndk/index.html">Android NDK</a> to access some of these <a href=
+  "/ndk/guides/stable_apis.html">native platform libraries</a> directly from
+  your native code.
+</p>
+
+<h2 id="api-framework">
+Java API Framework
+</h2>
+
+<p>
+  The entire feature-set of the Android OS is available to you through APIs
+  written in the Java language. These APIs form the building blocks you need to
+  create Android apps by simplifying the reuse of core, modular system
+  components and services, which include the following:
+</p>
+
+<ul>
+  <li>A rich and extensible <a href="/guide/topics/ui/overview.html">View
+  System</a> you can use to build an app’s UI, including lists, grids, text
+  boxes, buttons, and even an embeddable web browser
+  </li>
+
+  <li>A <a href="/guide/topics/resources/overview.html">Resource Manager</a>,
+  providing access to non-code resources such as localized strings, graphics,
+  and layout files
+  </li>
+
+  <li>A <a href="/guide/topics/ui/notifiers/notifications.html">Notification
+  Manager</a> that enables all apps to display custom alerts in the status bar
+  </li>
+
+  <li>An <a href="/guide/components/activities.html">Activity Manager</a> that
+  manages the lifecycle of apps and provides a common <a href=
+  "/guide/components/tasks-and-back-stack.html">navigation back stack</a>
+  </li>
+
+  <li>
+    <a href="/guide/topics/providers/content-providers.html">Content
+    Providers</a> that enable apps to access data from other apps, such as
+    the Contacts app, or to share their own data
+  </li>
+</ul>
+
+<p>
+  Developers have full access to the same <a href=
+  "/reference/packages.html">framework APIs</a> that Android system apps use.
+</p>
+
+<h2 id="system-apps">
+System Apps
+</h2>
+
+<p>
+  Android comes with a set of core apps for email, SMS messaging, calendars,
+  internet browsing, contacts, and more. Apps included with the platform have
+  no special status among the apps the user chooses to install. So a
+  third-party app can become the user's default web browser, SMS messenger, or
+  even the default keyboard (some exceptions apply, such as the system's
+  Settings app).
+</p>
+
+<p>
+  The system apps function both as apps for users and to provide key
+  capabilities that developers can access from their own app. For example, if
+  your app would like to deliver an SMS message, you don't need to build that
+  functionality yourself—you can instead invoke whichever SMS app is already
+  installed to deliver a message to the recipient you specify.
+</p>
\ No newline at end of file
diff --git a/docs/html/preview/j8-jack.jd b/docs/html/guide/platform/j8-jack.jd
similarity index 63%
rename from docs/html/preview/j8-jack.jd
rename to docs/html/guide/platform/j8-jack.jd
index 4ea016d..9b19426 100644
--- a/docs/html/preview/j8-jack.jd
+++ b/docs/html/guide/platform/j8-jack.jd
@@ -1,41 +1,63 @@
-page.title=Java 8 Language Features
+page.title=Use Java 8 Language Features
 page.keywords="android N", "Java 8", "Jack"
 @jd:body
 
 <div id="qv-wrapper">
   <div id="qv">
+    <h2 id="Contents">
+      In this document:
+    </h2>
+
     <ol>
       <li>
-        <a href="#supported-features">Supported Java 8 Language Features and APIs</a>
+        <a href="#supported-features">Supported Java 8 Language Features and
+        APIs</a>
       </li>
+
       <li>
-        <a href="#configuration">Enabling Java 8 Features and the Jack Toolchain</a>
+        <a href="#configuration">Enable Java 8 Features and the Jack
+        Toolchain</a>
+        <ul>
+          <li>
+            <a href="#configure-gradle">Configure Gradle</a>
+          </li>
+
+          <li>
+            <a href="#known-issues">Known issues</a>
+          </li>
+        </ul>
       </li>
     </ol>
   </div>
 </div>
 
-<p>Android N introduces support for Java 8 language features
-  that you can use when developing apps that target Android N.
-  This page describes the new language features supported in the Android N
-  Preview, how to properly set up your project to use them, and any known
-  issues you may encounter.
+<p>
+  Android supports all Java 7 language features and a subset of Java 8 language
+  features that vary by platform version. This page describes the new language
+  features you can use, how to properly configure your project to use them, and
+  any known issues you may encounter.
 </p>
 
-<p>To start using these features, you need to download and set up Android
-Studio 2.1 and the Android N Preview SDK, which includes the required
-Jack toolchain and updated Android Plugin for Gradle. If you haven't yet
-installed the Android N Preview SDK, see <a href=
-"{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android N</a>.</p>
-
-
-
 <p class="note">
-  <strong>Note:</strong> Using the new Java 8 language features is not a
-  requirement for developing apps that target the Android N platform. If you
-  don't want to write code with Java 8 language features, you can keep your
-  project's source and target compatibility values set to Java 7, but you still
-  must compile with JDK 8 to build against the Android N platform.
+  <strong>Note:</strong> When developing apps for Android, using Java 8
+  language features is optional. You can keep your project's source and target
+  compatibility values set to Java 7, but you still need to compile using JDK
+  8.
+</p>
+
+<p>
+  Support for Java 8 language features requires a new compiler called <a href=
+  "https://source.android.com/source/jack.html">Jack</a>. Jack is supported
+  only on Android Studio 2.1 and higher. So if you want to use Java 8 language
+  features, you need to use Android Studio 2.1 to build your app.
+</p>
+
+<p>
+  If you already have Android Studio installed, make sure you update to the
+  latest version by clicking <strong>Help &gt; Check for Update</strong> (on
+  Mac, <strong>Android Studio &gt; Check for Updates</strong>). If you don't
+  already have the IDE installed on your workstation, <a href=
+  "{@docRoot}studio/">download Android Studio here</a>.
 </p>
 
 <h2 id="supported-features">
@@ -43,9 +65,9 @@
 </h2>
 
 <p>
-  Android does not currently support all Java 8 language features. However, the
-  following features are now available when developing apps targeting the
-  Android N Preview:
+  Android does not support all Java 8 language features. However, the
+  following features are available when developing apps targeting
+  Android 7.0 (API level 24):
 </p>
 
 <ul>
@@ -94,7 +116,7 @@
 </p>
 
 <p>
-  Additionally, the following Java 8 language feature APIs are now available:
+  Additionally, the following Java 8 language APIs are also available:
 </p>
 
 <ul>
@@ -144,37 +166,36 @@
 </ul>
 
 <h2 id="configuration">
-  Enabling Java 8 Features and the Jack Toolchain
+  Enable Java 8 Features and the Jack Toolchain
 </h2>
 
 <p>
   In order to use the new Java 8 language features, you need to also use the
-  new <a class="external-link" href=
-  "https://source.android.com/source/jack.html">Jack toolchain</a>. This new
-  Android toolchain compiles Java language source into Android-readable dex
-  bytecode, has its own {@code .jack} library format, and provides most toolchain
-  features as part of a single tool: repackaging, shrinking, obfuscation and
-  multidex.
+  <a href="https://source.android.com/source/jack.html">Jack toolchain</a>.
+  This new Android toolchain compiles Java language sources into
+  Android-readable DEX bytecode, has its own {@code .jack} library format, and
+  provides most toolchain features as part of a single tool: repackaging,
+  shrinking, obfuscation and multidex.
 </p>
 
 <p>Here is a comparison of the two toolchains used to build Android DEX files:</p>
 <ul>
   <li>Legacy javac toolchain:<br>
-  <b>javac</b> ({@code .java} --&gt; {@code .class}) --&gt; <b>dx</b> ({@code
-  .class} --&gt; {@code .dex})
+  <b>javac</b> ({@code .java} → {@code .class}) → <b>dx</b> ({@code
+  .class} → {@code .dex})
   </li>
 
   <li>New Jack toolchain:<br>
-  <b>Jack</b> ({@code .java} --&gt; {@code .jack} --&gt; {@code .dex})
+  <b>Jack</b> ({@code .java} → {@code .jack} → {@code .dex})
   </li>
 </ul>
 
-<h3>
-  Configuring Gradle
+<h3 id="configure-gradle">
+  Configure Gradle
 </h3>
 
 <p>
-  To enable the Java 8 language features and Jack for your project, enter the
+  To enable Java 8 language features and Jack for your project, enter the
   following in your module-level {@code build.gradle} file:
 </p>
 
@@ -195,7 +216,7 @@
 </pre>
 
 <h3 id="known-issues">
-  Known Issues
+  Known issues
 </h3>
 
 <p>
@@ -217,5 +238,5 @@
   </li>
 </ul>
 
-<p>If you find other problems while using Jack, <a href=
+<p>If you find other issues while using Jack, <a href=
 "http://tools.android.com/filing-bugs">please file a bug</a>.</p>
\ No newline at end of file
diff --git a/docs/html/guide/practices/verifying-apps-art.jd b/docs/html/guide/practices/verifying-apps-art.jd
index 217c65c..2da7c0e 100644
--- a/docs/html/guide/practices/verifying-apps-art.jd
+++ b/docs/html/guide/practices/verifying-apps-art.jd
@@ -2,60 +2,82 @@
 @jd:body
 
 <div id="qv-wrapper">
-<div id="qv">
-<h2>Quickview</h2>
-  <ul>
-    <li>The new Android runtime (ART) is available on some of the newest Android
-      devices, though all of them currently have Dalvik as the default
-      runtime.</li>
-    <li>App developers should make sure their apps are compatible with ART,
-      especially if you use JNI to run native code or if you use certain tools
-      that produce non-standard code (such as some obfuscators).</li>
-  </ul>
+  <div id="qv">
+    <h2 id="Contents">
+      In this document
+    </h2>
 
-  <h2 id="Contents">In this document</h2>
- <ol>
-    <li><a href="#GC_Migration">Addressing Garbage Collection (GC) Issues</a></li>
-    <li><a href="#JNI_Issues">Preventing JNI Issues</a>
-      <ol>
-        <li><a href="#JNI_and_GC">Checking JNI code for garbage-collection
-          issues</a></li>
-        <li><a href="#Error_Handling">Error handling</a></li>
-        <li><a href="#Object_Model_Changes">Object model changes</a></li>
-      </ol>
-    </li>
-    <li><a href="#Stack_Size">Preventing Stack Size Issues</a></li>
-    <li><a href="#AOT_Fails">Fixing AOT Compilation Issues</a></li>
-    <li><a href="#Reporting_Problems">Reporting Problems</a></li>
-  </ol>
-  <h2>See also</h2>
-  <ol>
-    <li><a href="http://source.android.com/devices/tech/dalvik/art.html">Introducing ART</a></li>
-    <li><a
-href="http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html">Debugging
-Android JNI with CheckJNI</a></li>
-  </ol>
-</div>
+    <ol>
+      <li>
+        <a href="#GC_Migration">Addressing Garbage Collection (GC) Issues</a>
+      </li>
+
+      <li>
+        <a href="#JNI_Issues">Preventing JNI Issues</a>
+        <ol>
+          <li>
+            <a href="#JNI_and_GC">Checking JNI code for garbage-collection
+            issues</a>
+          </li>
+
+          <li>
+            <a href="#Error_Handling">Error handling</a>
+          </li>
+
+          <li>
+            <a href="#Object_Model_Changes">Object model changes</a>
+          </li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="#Stack_Size">Preventing Stack Size Issues</a>
+      </li>
+
+      <li>
+        <a href="#AOT_Fails">Fixing AOT Compilation Issues</a>
+      </li>
+
+      <li>
+        <a href="#Reporting_Problems">Reporting Problems</a>
+      </li>
+    </ol>
+
+    <h2>
+      See also
+    </h2>
+
+    <ol>
+      <li>
+        <a href=
+        "http://source.android.com/devices/tech/dalvik/art.html">Introducing
+        ART</a>
+      </li>
+
+      <li>
+        <a href=
+        "http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html">
+        Debugging Android JNI with CheckJNI</a>
+      </li>
+    </ol>
+  </div>
 </div>
 
-<p>With Android 4.4, we are beginning to roll out a new Android runtime,
-<strong>ART</strong>. This runtime offers a number of new features that improve
-performance and smoothness of the Android platform and apps. (You can find more
-information about ART's new features in <a
-href="http://source.android.com/devices/tech/dalvik/art.html">Introducing
-ART</a>.)</p>
+<p>
+  The Android runtime (ART) is the default runtime for devices running Android
+  5.0 (API level 21) and higher. This runtime offers a number of features
+  that improve performance and smoothness of the Android platform and apps.
+  You can find more information about ART's new features in <a href=
+  "http://source.android.com/devices/tech/dalvik/art.html">Introducing
+  ART</a>.
+</p>
 
-<p>Currently, ART is available on a number of Android 4.4 devices, such as the
-Nexus 4, Nexus 5, Nexus 7, and Google Play edition devices.
-At this time, all devices still use Dalvik as the default runtime. We encourage
-you to test your apps for ART compatibility and to take advantage of ART's new
-features. However, for the time being, you should also take care to maintain
-compatibility with Dalvik.</p>
-
-<p>This document lets you know about things to watch for when migrating an
-existing app to be compatible with ART. Most apps should just work when
-running with ART. However, some techniques that work on Dalvik do not work on
-ART. This document discusses some of these issues.</p>
+<p>
+  However, some techniques that work on Dalvik do not work on ART. This
+  document lets you know about things to watch for when migrating an existing
+  app to be compatible with ART. Most apps should just work when running with
+  ART.
+</p>
 
 <h2 id="GC_Migration">Addressing Garbage Collection (GC) Issues</h2>
 
@@ -147,7 +169,7 @@
 
 <h3 id="Error_Handling">Error handling</h3>
 
-<p>ART's JNI throws errors in a number of cases where Dalvik didn’t. (Once
+<p>ART's JNI throws errors in a number of cases where Dalvik doesn’t. (Once
 again, you can catch many such cases by testing with CheckJNI.)</p>
 
 <p>For example, if <code>RegisterNatives</code> is called with a method that
diff --git a/docs/html/guide/topics/data/data-storage.jd b/docs/html/guide/topics/data/data-storage.jd
index a745d00..770340b 100644
--- a/docs/html/guide/topics/data/data-storage.jd
+++ b/docs/html/guide/topics/data/data-storage.jd
@@ -252,6 +252,17 @@
 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="ScopedDirAccess">Using Scoped Directory Access</h3>
+
+On Android 7.0 or later, if you need access to a specific directory on
+external storage, use scoped directory access. Scoped directory access
+simplifies how your application accesses standard external storage directories,
+such as the <code>Pictures</code> directory, and provides a simple
+permissions UI that clearly details what directory the application is
+requesting access to. For more details on scoped directory access, see
+<a href="{@docRoot}training/articles/scoped-directory-access.html">Using
+Scoped Directory Access</a>.
+
 <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
diff --git a/docs/html/guide/topics/data/index.jd b/docs/html/guide/topics/data/index.jd
index 169fc22..3872825 100644
--- a/docs/html/guide/topics/data/index.jd
+++ b/docs/html/guide/topics/data/index.jd
@@ -11,13 +11,15 @@
   <div class="col-12">
     <h3>Training</h3>
 
-    <a href="http://developer.android.com/training/cloudsync/index.html">
-      <h4>Syncing to the Cloud</h4>
-      <p>This class covers different strategies for cloud enabled applications. It covers syncing
-data with the cloud using your own back-end web application, and backing up data using the cloud so
-that users can restore their data when installing your application on a new device.</p>
+    <a href="{@docRoot}training/backup/index.html">
+      <h4>Backing up App Data to the Cloud</h4>
+      <p>
+        This class covers techniques for backing up data to the cloud so that
+        users can restore their data when recovering from a data loss (such as a
+        factory reset) or installing your application on a new device.
+      </p>
     </a>
 
   </div>
 
-</div>
\ No newline at end of file
+</div>
diff --git a/docs/html/guide/topics/manifest/activity-element.jd b/docs/html/guide/topics/manifest/activity-element.jd
index 5ced295..6deb14b 100644
--- a/docs/html/guide/topics/manifest/activity-element.jd
+++ b/docs/html/guide/topics/manifest/activity-element.jd
@@ -35,6 +35,7 @@
           android:<a href="#prmsn">permission</a>="<i>string</i>"
           android:<a href="#proc">process</a>="<i>string</i>"
           android:<a href="#relinquish">relinquishTaskIdentity</a>=["true" | "false"]
+          android:<a href="#resizeableActivity">resizeableActivity</a>=["true" | "false"]
           android:<a href="#screen">screenOrientation</a>=["unspecified" | "behind" |
                                      "landscape" | "portrait" |
                                      "reverseLandscape" | "reversePortrait" |
@@ -43,6 +44,7 @@
                                      "sensor" | "fullSensor" | "nosensor" |
                                      "user" | "fullUser" | "locked"]
           android:<a href="#state">stateNotNeeded</a>=["true" | "false"]
+          android:<a href="#supportsPIP">supportsPictureInPicture</a>=["true" | "false"]
           android:<a href="#aff">taskAffinity</a>="<i>string</i>"
           android:<a href="#theme">theme</a>="<i>resource or theme</i>"
           android:<a href="#uioptions">uiOptions</a>=["none" | "splitActionBarWhenNarrow"]
@@ -794,9 +796,39 @@
 and icons in the <a href="{@docRoot}guide/components/recents.html">overview screen</a>.</p>
 </dd>
 
+<dt id="resizeableActivity"><code>resizeableActivity</code></dt>
+
+<dd>
+<p>
+  Specifies whether the app supports <a href=
+  "{@docRoot}guide/topics/ui/multi-window.html">multi-window display</a>. You
+  can set this attribute in either the <code>&lt;activity&gt;</code> or
+  <a href="application-element.html"><code>&lt;application&gt;</code></a>
+  element.
+</p>
+
+<p>
+  If you set this attribute to true, the user can launch the activity in
+  split-screen and freeform modes. If you set the attribute to false, the
+  activity does not support multi-window mode. If this value is false, and the
+  user attempts to launch the activity in multi-window mode, the activity takes
+  over the full screen.
+</p>
+
+<p>
+  If your app targets API level 24 or higher, but you do not specify a value
+  for this attribute, the attribute's value defaults to true.
+</p>
+
+<p>
+  This attribute was added in API level 24.
+</p>
+</dd>
 
 <dt><a name="screen"></a>{@code android:screenOrientation}</dt>
-<dd>The orientation of the activity's display on the device.
+<dd>The orientation of the activity's display on the device. The system ignores
+  this attribute if the activity is running in <a
+  href="{@docRoot}guide/topics/ui/multi-window.html">multi-window mode</a>.
 
 <p>The value can be any one of the following strings:</p>
 
@@ -921,6 +953,19 @@
 crashes for some reason.
 </p></dd>
 
+<dt id="supportsPIP"><code>supportsPictureInPicture</code></dt>
+
+<dd>
+<p>
+  Specifies whether the activity supports <a href=
+  "{@docRoot}training/tv/playback/picture-in-picture.jd">Picture-in-Picture</a>
+  display. The system ignores this attribute if <a href=
+  "#resizeableActivity"><code>android:resizeableActivity</code></a> is false.
+</p>
+
+<p>This attribute was added in API level 24.</p>
+</dd>
+
 <dt><a name="aff"></a>{@code android:taskAffinity}</dt>
 <dd>The task that the activity has an affinity for.  Activities with
 the same affinity conceptually belong to the same task (to the same
diff --git a/docs/html/guide/topics/manifest/application-element.jd b/docs/html/guide/topics/manifest/application-element.jd
index 56d61f3..f8e251e 100644
--- a/docs/html/guide/topics/manifest/application-element.jd
+++ b/docs/html/guide/topics/manifest/application-element.jd
@@ -26,6 +26,7 @@
              android:<a href="#proc">process</a>="<i>string</i>"
              android:<a href="#restoreany">restoreAnyVersion</a>=["true" | "false"]
              android:<a href="#requiredAccountType">requiredAccountType</a>="<i>string</i>"
+             android:<a href="#resizeableActivity">resizeableActivity</a>=["true" | "false"]
              android:<a href="#restrictedAccountType">restrictedAccountType</a>="<i>string</i>"
              android:<a href="#supportsrtl">supportsRtl</a>=["true" | "false"]
              android:<a href="#aff">taskAffinity</a>="<i>string</i>"
@@ -358,6 +359,34 @@
 </dd>
 
 
+<dt id="resizeableActivity"><code>resizeableActivity</code></dt>
+
+<dd>
+<p>
+  Specifies whether the app supports <a href=
+  "{@docRoot}guide/topics/ui/multi-window.html">multi-window display</a>. You
+  can set this attribute in either the <a href="activity-element">
+  <code>&lt;activity&gt;</code></a> or <code>&lt;application&gt;</code> element.
+</p>
+
+<p>
+  If you set this attribute to true, the user can launch the activity in
+  split-screen and freeform modes. If you set the attribute to false, the
+  activity does not support multi-window mode. If this value is false, and the
+  user attempts to launch the activity in multi-window mode, the activity takes
+  over the full screen.
+</p>
+
+<p>
+  If your app targets API level 24 or higher, but you do not specify a value
+  for this attribute, the attribute's value defaults to true.
+</p>
+
+<p>
+  This attribute was added in API level 24.
+</p>
+</dd>
+
 <dt><a name="restrictedAccountType"></a>{@code android:restrictedAccountType}</dt>
 <dd>Specifies the account type required by this application and indicates that restricted profiles
 are allowed to access such accounts that belong to the owner user. If your app requires an
diff --git a/docs/html/guide/topics/manifest/manifest-intro.jd b/docs/html/guide/topics/manifest/manifest-intro.jd
index c843567..851674c 100644
--- a/docs/html/guide/topics/manifest/manifest-intro.jd
+++ b/docs/html/guide/topics/manifest/manifest-intro.jd
@@ -6,50 +6,53 @@
 
 <h2>In this document</h2>
 <ol>
-<li><a href="#filestruct">Structure of the Manifest File</a></li>
-<li><a href="#filec">File Conventions</a>
-<li><a href="#filef">File Features</a>
-	<ol>
-	<li><a href="#ifs">Intent Filters</a></li>
-	<li><a href="#iconlabel">Icons and Labels</a></li>
-	<li><a href="#perms">Permissions</a></li>
-	<li><a href="#libs">Libraries</a></li>
-	</ol></li>
+<li><a href="#filestruct">Manifest file structure</a></li>
+<li><a href="#filec">File conventions</a>
+<li><a href="#filef">File features</a>
+    <ol>
+    <li><a href="#ifs">Intent filters</a></li>
+    <li><a href="#iconlabel">Icons and labels</a></li>
+    <li><a href="#perms">Permissions</a></li>
+    <li><a href="#libs">Libraries</a></li>
+    </ol></li>
 </ol>
 </div>
 </div>
 
 <p>
-  Every application must have an AndroidManifest.xml file (with precisely that
+  Every application must have an {@code AndroidManifest.xml} file (with precisely that
   name) in its root directory. <span itemprop="description">The manifest file
-  presents essential information about your app to the Android system,
-  information the system must have before it can run any of the app's
-  code.</span> Among other things, the manifest does the following:
+  provides essential information about your app to the Android system, which
+  the system must have before it can run any of the app's
+  code.</span>
+</p>
+
+<p>
+Among other things, the manifest file does the following:
 </p>
 
 <ul>
 <li>It names the Java package for the application.
 The package name serves as a unique identifier for the application.</li>
 
-<li>It describes the components of the application &mdash; the activities,
-services, broadcast receivers, and content providers that the application is
-composed of.  It names the classes that implement each of the components and
-publishes their capabilities (for example, which {@link android.content.Intent
-Intent} messages they can handle).  These declarations let the Android system
-know what the components are and under what conditions they can be launched.</li>
+<li>It describes the components of the application, which include the activities,
+services, broadcast receivers, and content providers that compose the application.
+It also names the classes that implement each of the components and
+publishes their capabilities, such as the {@link android.content.Intent
+Intent} messages that they can handle. These declarations inform the Android system
+of the components and the conditions in which they can be launched.</li>
 
-<li>It determines which processes will host application components.</li>
+<li>It determines the processes that host the application components.</li>
 
-<li>It declares which permissions the application must have in order to
-access protected parts of the API and interact with other applications.</li>
-
-<li>It also declares the permissions that others are required to have in
+<li>It declares the permissions that the application must have in order to
+access protected parts of the API and interact with other applications. It also declares
+the permissions that others are required to have in
 order to interact with the application's components.</li>
 
 <li>It lists the {@link android.app.Instrumentation} classes that provide
-profiling and other information as the application is running.  These declarations
+profiling and other information as the application runs. These declarations
 are present in the manifest only while the application is being developed and
-tested; they're removed before the application is published.</li>
+are removed before the application is published.</li>
 
 <li>It declares the minimum level of the Android API that the application
 requires.</li>
@@ -57,16 +60,27 @@
 <li>It lists the libraries that the application must be linked against.</li>
 </ul>
 
+<p class="note"><strong>Note</strong>: As you prepare your Android app to run on Chromebooks,
+there are some important hardware and software feature limitations that you should consider. See
+the <a href="{@docRoot}topic/arc/manifest.html">
+App Manifest Compatibility for Chromebooks</a> document for more information.
+</p>
 
-<h2 id="filestruct">Structure of the Manifest File</h2>
+<h2 id="filestruct">Manifest file structure</h2>
 
 <p>
-The diagram below shows the general structure of the manifest file and
-every element that it can contain.  Each element, along with all of its
-attributes, is documented in full in a separate file.  To view detailed
-information about any element, click on the element name in the diagram,
-in the alphabetical list of elements that follows the diagram, or on any
-other mention of the element name.
+The code snippet below shows the general structure of the manifest file and
+every element that it can contain. Each element, along with all of its
+attributes, is fully documented in a separate file.
+</p>
+
+<p class="note"><strong>Tip</strong>: To view detailed
+information about any of the elements that are mentioned within the text of this document,
+simply click the element name.
+</p>
+
+<p>
+Here is an example of the manifest file:
 </p>
 
 <pre>
@@ -126,45 +140,45 @@
 </pre>
 
 <p>
-All the elements that can appear in the manifest file are listed below
-in alphabetical order.  These are the only legal elements; you cannot
+The following list contains all of the elements that can appear in the manifest file,
+in alphabetical order:
+</p>
+
+<ul>
+ <li><code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></code>  <!-- ##api level 4## --></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## --></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a></code>  <!-- ##api level 4## --></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code></li>
+</ul>
+
+<p class="note"><strong>Note</strong>: These are the only legal elements &ndash; you cannot
 add your own elements or attributes.
 </p>
 
-<p style="margin-left: 2em">
-<code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></code>  <!-- ##api level 4## -->
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a></code>  <!-- ##api level 4## -->
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code>
-</p>
-
-
-
-
-<h2 id="filec">File Conventions</h2>
+<h2 id="filec">File conventions</h2>
 
 <p>
-Some conventions and rules apply generally to all elements and attributes
-in the manifest:
+This section describes the conventions and rules that apply generally to all of the elements and
+attributes in the manifest file.
 </p>
 
 <dl>
@@ -172,29 +186,28 @@
 <dd>Only the
 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> and
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
-elements are required, they each must be present and can occur only once.
-Most of the others can occur many times or not at all &mdash; although at
-least some of them must be present for the manifest to accomplish anything
-meaningful.
+elements are required. They each must be present and can occur only once.
+Most of the other elements can occur many times or not at all. However, at
+least some of them must be present before the manifest file becomes useful.
 
 <p>
 If an element contains anything at all, it contains other elements.
-All values are set through attributes, not as character data within an element.
+All of the values are set through attributes, not as character data within an element.
 </p>
 
 <p>
-Elements at the same level are generally not ordered.  For example,
+Elements at the same level are generally not ordered. For example, the
 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>,
 <code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>, and
 <code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
 elements can be intermixed in any sequence. There are two key exceptions to this
-rule, however:
+rule:
 <ul>
   <li>
     An <code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
     element must follow the
     <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
-    it is an alias for.
+    for which it is an alias.
   </li>
   <li>
     The <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
@@ -207,15 +220,15 @@
 </p></dd>
 
 <dt><b>Attributes</b></dt>
-<dd>In a formal sense, all attributes are optional.  However, there are some
-that must be specified for an element to accomplish its purpose.  Use the
-documentation as a guide.  For truly optional attributes, it mentions a default
+<dd>In a formal sense, all attributes are optional. However, there are some attributes
+that must be specified so that an element can accomplish its purpose. Use the
+documentation as a guide. For truly optional attributes, it mentions a default
 value or states what happens in the absence of a specification.
 
 <p>Except for some attributes of the root
 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
-element, all attribute names begin with an {@code android:} prefix &mdash;
-for example, {@code android:alwaysRetainTaskState}.  Because the prefix is
+element, all attribute names begin with an {@code android:} prefix.
+For example, {@code android:alwaysRetainTaskState}. Because the prefix is
 universal, the documentation generally omits it when referring to attributes
 by name.</p></dd>
 
@@ -223,7 +236,7 @@
 <dd>Many elements correspond to Java objects, including elements for the
 application itself (the
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
-element) and its principal components &mdash; activities
+element) and its principal components: activities
 (<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>),
 services
 (<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>),
@@ -238,7 +251,7 @@
 {@link android.content.BroadcastReceiver}, and {@link android.content.ContentProvider}),
 the subclass is declared through a {@code name} attribute.  The name must include
 the full package designation.
-For example, an {@link android.app.Service} subclass might be declared as follows:
+For example, a {@link android.app.Service} subclass might be declared as follows:
 </p>
 
 <pre>&lt;manifest . . . &gt;
@@ -251,12 +264,12 @@
 &lt;/manifest&gt;</pre>
 
 <p>
-However, as a shorthand, if the first character of the string is a period, the
-string is appended to the application's package name (as specified by the
+However, if the first character of the string is a period, the
+application's package name (as specified by the
 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
 element's
 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code>
-attribute).  The following assignment is the same as the one above:
+attribute) is appended to the string. The following assignment is the same as that shown above:
 </p>
 
 <pre>&lt;manifest package="com.example.project" . . . &gt;
@@ -269,13 +282,13 @@
 &lt;/manifest&gt;</pre>
 
 <p>
-When starting a component, Android creates an instance of the named subclass.
+When starting a component, the Android system creates an instance of the named subclass.
 If a subclass isn't specified, it creates an instance of the base class.
 </p></dd>
 
 <dt><b>Multiple values</b></dt>
 <dd>If more than one value can be specified, the element is almost always
-repeated, rather than listing multiple values within a single element.
+repeated, rather than multiple values being listed within a single element.
 For example, an intent filter can list several actions:
 
 <pre>&lt;intent-filter . . . &gt;
@@ -286,108 +299,105 @@
 &lt;/intent-filter&gt;</pre></dd>
 
 <dt><b>Resource values</b></dt>
-<dd>Some attributes have values that can be displayed to users &mdash; for
-example, a label and an icon for an activity.  The values of these attributes
-should be localized and therefore set from a resource or theme.  Resource
-values are expressed in the following format,</p>
+<dd>Some attributes have values that can be displayed to users, such as
+a label and an icon for an activity. The values of these attributes
+should be localized and set from a resource or theme. Resource
+values are expressed in the following format:</p>
 
 <p style="margin-left: 2em">{@code @[<i>package</i>:]<i>type</i>/<i>name</i>}</p>
 
 <p>
-where the <i>package</i> name can be omitted if the resource is in the same package
-as the application, <i>type</i> is a type of resource &mdash; such as "string" or
-"drawable" &mdash; and <i>name</i> is the name that identifies the specific resource.
-For example:
+You can ommit the <i>package</i> name if the resource is in the same package
+as the application. The <i>type</i> is a type of resource, such as <em>string</em> or
+<em>drawable</em>, and the <i>name</i> is the name that identifies the specific resource.
+Here is an example:
 </p>
 
 <pre>&lt;activity android:icon="@drawable/smallPic" . . . &gt</pre>
 
 <p>
-Values from a theme are expressed in a similar manner, but with an initial '{@code ?}'
-rather than '{@code @}':
+The values from a theme are expressed similarly, but with an initial {@code ?}
+instead of {@code @}:
 </p>
 
 <p style="margin-left: 2em">{@code ?[<i>package</i>:]<i>type</i>/<i>name</i>}
 </p></dd>
 
 <dt><b>String values</b></dt>
-<dd>Where an attribute value is a string, double backslashes ('{@code \\}')
-must be used to escape characters &mdash; for example, '{@code \\n}' for
-a newline or '{@code \\uxxxx}' for a Unicode character.</dd>
+<dd>Where an attribute value is a string, you must use double backslashes ({@code \\})
+to escape characters, such as {@code \\n} for
+a newline or {@code \\uxxxx} for a Unicode character.</dd>
 </dl>
 
-
-<h2 id="filef">File Features</h2>
+<h2 id="filef">File features</h2>
 
 <p>
-The following sections describe how some Android features are reflected
+The following sections describe the way that some Android features are reflected
 in the manifest file.
 </p>
 
 
-<h3 id="ifs">Intent Filters</h3>
+<h3 id="ifs">Intent filters</h3>
 
 <p>
-The core components of an application (its activities, services, and broadcast
-receivers) are activated by <i>intents</i>.  An intent is a
+The core components of an application, such as its activities, services, and broadcast
+receivers, are activated by <i>intents</i>. An intent is a
 bundle of information (an {@link android.content.Intent} object) describing a
-desired action &mdash; including the data to be acted upon, the category of
+desired action, including the data to be acted upon, the category of
 component that should perform the action, and other pertinent instructions.
-Android locates an appropriate component to respond to the intent, launches
+The Android system locates an appropriate component that can respond to the intent, launches
 a new instance of the component if one is needed, and passes it the
-Intent object.
+{@link android.content.Intent} object.
 </p>
 
 <p>
-Components advertise their capabilities &mdash; the kinds of intents they can
-respond to &mdash; through <i>intent filters</i>.  Since the Android system
-must learn which intents a component can handle before it launches the component,
+The components advertise the types of intents that they can
+respond to through <i>intent filters</i>. Since the Android system
+must learn the intents that a component can handle before it launches the component,
 intent filters are specified in the manifest as
 <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
-elements.  A component may have any number of filters, each one describing
+elements. A component can have any number of filters, each one describing
 a different capability.
 </p>
 
 <p>
-An intent that explicitly names a target component will activate that component;
-the filter doesn't play a role.  But an intent that doesn't specify a target by
+An intent that explicitly names a target component activates that component, so
+the filter doesn't play a role. An intent that doesn't specify a target by
 name can activate a component only if it can pass through one of the component's
 filters.
 </p>
 
 <p>
-For information on how Intent objects are tested against intent filters,
-see a separate document,
-<a href="{@docRoot}guide/components/intents-filters.html">Intents
-and Intent Filters</a>.
+For information about how {@link android.content.Intent} objects are tested against intent filters,
+see the <a href="{@docRoot}guide/components/intents-filters.html">Intents
+and Intent Filters</a> document.
 </p>
 
-
-<h3 id="iconlabel">Icons and Labels</h3>
+<h3 id="iconlabel">Icons and labels</h3>
 
 <p>
 A number of elements have {@code icon} and {@code label} attributes for a
-small icon and a text label that can be displayed to users.  Some also have a
-{@code description} attribute for longer explanatory text that can also be
-shown on-screen.  For example, the
+small icon and a text label that can be displayed to users. Some also have a
+{@code description} attribute for longer, explanatory text that can also be
+shown on-screen. For example, the
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
-element has all three of these attributes, so that when the user is asked whether
+element has all three of these attributes so that when the user is asked whether
 to grant the permission to an application that has requested it, an icon representing
 the permission, the name of the permission, and a description of what it
-entails can all be presented to the user.
+entails are all presented to the user.
 </p>
 
 <p>
-In every case, the icon and label set in a containing element become the default
+In every case, the icon and label that are set in a containing element become the default
 {@code icon} and {@code label} settings for all of the container's subelements.
-Thus, the icon and label set in the
+Thus, the icon and label that are set in the
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
 element are the default icon and label for each of the application's components.
-Similarly, the icon and label set for a component &mdash; for example, an
+Similarly, the icon and label that are set for a component, such as an
 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
-element &mdash; are the default settings for each of the component's
+element, are the default settings for each of the component's
 <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
-elements.  If an
+elements. If an
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
 element sets a label, but an activity and its intent filter do not,
 the application label is treated as the label for both the activity and
@@ -395,62 +405,62 @@
 </p>
 
 <p>
-The icon and label set for an intent filter are used to represent a component
-whenever the component is presented to the user as fulfilling the function
-advertised by the filter.  For example, a filter with
-"{@code android.intent.action.MAIN}" and
-"{@code android.intent.category.LAUNCHER}" settings advertises an activity
-as one that initiates an application &mdash; that is, as
-one that should be displayed in the application launcher.  The icon and label
-set in the filter are therefore the ones displayed in the launcher.
+The icon and label that are set for an intent filter represent a component
+whenever the component is presented to the user and fulfills the function
+that is advertised by the filter. For example, a filter with
+{@code android.intent.action.MAIN} and
+{@code android.intent.category.LAUNCHER} settings advertises an activity
+as one that initiates an application. That is, as
+one that should be displayed in the application launcher. The icon and label
+that are set in the filter are displayed in the launcher.
 </p>
 
-
 <h3 id="perms">Permissions</h3>
 
 <p>
-A <i>permission</i> is a restriction limiting access to a part of the code
-or to data on the device.   The limitation is imposed to protect critical
+A <i>permission</i> is a restriction that limits access to a part of the code
+or to data on the device. The limitation is imposed to protect critical
 data and code that could be misused to distort or damage the user experience.
 </p>
 
 <p>
-Each permission is identified by a unique label.  Often the label indicates
-the action that's restricted.  For example, here are some permissions defined
+Each permission is identified by a unique label. Often the label indicates
+the action that's restricted. Here are some permissions that are defined
 by Android:
 </p>
 
-<p style="margin-left: 2em">{@code android.permission.CALL_EMERGENCY_NUMBERS}
-<br/>{@code android.permission.READ_OWNER_DATA}
-<br/>{@code android.permission.SET_WALLPAPER}
-<br/>{@code android.permission.DEVICE_POWER}</p>
+<ul>
+  <li>{@code android.permission.CALL_EMERGENCY_NUMBERS}</li>
+  <li>{@code android.permission.READ_OWNER_DATA}</li>
+  <li>{@code android.permission.SET_WALLPAPER}</li>
+  <li>{@code android.permission.DEVICE_POWER}</li>
+</ul>
 
 <p>
-A feature can be protected by at most one permission.
+A feature can be protected by only one permission.
 </p>
 
 <p>
-If an application needs access to a feature protected by a permission,
-it must declare that it requires that permission with a
+If an application needs access to a feature that is protected by a permission,
+it must declare that it requires the permission with a
 <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
-element in the manifest.  Then, when the application is installed on
-the device, the installer determines whether or not to grant the requested
+element in the manifest. When the application is installed on
+the device, the installer determines whether to grant the requested
 permission by checking the authorities that signed the application's
 certificates and, in some cases, asking the user.
 If the permission is granted, the application is able to use the protected
-features.  If not, its attempts to access those features will simply fail
+features. If not, its attempts to access those features fail
 without any notification to the user.
 </p>
 
 <p>
-An application can also protect its own components (activities, services,
-broadcast receivers, and content providers) with permissions.  It can employ
-any of the permissions defined by Android (listed in
-{@link android.Manifest.permission android.Manifest.permission}) or declared
-by other applications.  Or it can define its own.  A new permission is declared
+An application can also protect its own components with permissions. It can employ
+any of the permissions that are defined by Android, as listed in
+{@link android.Manifest.permission android.Manifest.permission}, or declared
+by other applications. It can also define its own. A new permission is declared
 with the
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
-element.  For example, an activity could be protected as follows:
+element. For example, an activity could be protected as follows:
 </p>
 
 <pre>
@@ -474,34 +484,34 @@
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 element, its use is also requested with the
 <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
-element.  Its use must be requested in order for other components of the
+element. You must request its use in order for other components of the
 application to launch the protected activity, even though the protection
 is imposed by the application itself.
 </p>
 
 <p>
-If, in the same example, the {@code permission} attribute was set to a
-permission declared elsewhere
-(such as {@code android.permission.CALL_EMERGENCY_NUMBERS}, it would not
-have been necessary to declare it again with a
+If, in the same example shown above, the {@code permission} attribute was set to a
+permission that is declared elsewhere,
+such as {@code android.permission.CALL_EMERGENCY_NUMBERS}, it would not
+be necessary to declare it again with a
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
-element.  However, it would still have been necessary to request its use with
+element. However, it would still be necessary to request its use with
 <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>.
 </p>
 
 <p>
 The
 <code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
-element declares a namespace for a group of permissions that will be defined in
-code.  And
+element declares a namespace for a group of permissions that are defined in
+code, and the
 <code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
-defines a label for a set of permissions (both those declared in the manifest with
+defines a label for a set of permissions, both those declared in the manifest with
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
-elements and those declared elsewhere).  It affects only how the permissions are
-grouped when presented to the user.  The
+elements and those declared elsewhere. This affects only how the permissions are
+grouped when presented to the user. The
 <code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
-element does not specify which permissions belong to the group;
-it just gives the group a name.  A permission is placed in the group
+element does not specify the permissions that belong to the group, but
+it gives the group a name. You can place a permission in the group
 by assigning the group name to the
 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 element's
@@ -515,15 +525,14 @@
 <p>
 Every application is linked against the default Android library, which
 includes the basic packages for building applications (with common classes
-such as Activity, Service, Intent, View, Button, Application, ContentProvider,
-and so on).
+such as Activity, Service, Intent, View, Button, Application, and ContentProvider).
 </p>
 
 <p>
-However, some packages reside in their own libraries.  If your application
-uses code from any of these packages, it must explicitly asked to be linked
-against them.  The manifest must contain a separate
+However, some packages reside in their own libraries. If your application
+uses code from any of these packages, it must explicitly ask to be linked
+against them. The manifest must contain a separate
 <code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
-element to name each of the libraries.  (The library name can be found in the
-documentation for the package.)
+element to name each of the libraries. You can find the library name in the
+documentation for the package.
 </p>
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 10841d6..9b32244 100755
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -1230,7 +1230,7 @@
     </p>
 
     <p>
-      When declared as required, this feature indicates that the app is
+      By default, your app requires this feature. This feature indicates that the app is
       compatible with a device only if that device emulates a touchscreen
       ("fake touch" interface) or has an actual touchscreen.
     </p>
@@ -1240,19 +1240,12 @@
       that emulates a subset of a touchscreen's capabilities. For example, a
       mouse or remote control could drive an on-screen cursor. If your app
       requires basic point and click interaction (in other words, it won't work
-      with only a d-pad controller), you should declare this feature. Because
+      with only a d-pad controller), you should declare this feature or simply
+      avoid declaring any {@code android.hardware.touchscreen.*} features. Because
       this is the minimum level of touch interaction, you can also use an app
       that declares this feature on devices that offer more complex touch
       interfaces.
     </p>
-
-    <p class="note">
-      <strong>Note:</strong> Apps require the {@code android.hardware.touchscreen}
-      feature by default. If you want your app to be available to devices that
-      provide a fake touch interface, you must also explicitly declare that a
-      touchscreen is not required as follows:
-    </p>
-    <pre>&lt;uses-feature android:name="android.hardware.touchscreen" <strong>android:required="false"</strong> /&gt;</pre>
   </dd>
 
   <dt>
@@ -1327,21 +1320,9 @@
     </p>
 
     <p>
-      By default, your app requires this feature. As such, your app is not
-      available to devices that provide only an emulated touch interface ("fake
-      touch") by default. If you want to make your app available on devices
-      that provide a fake touch interface (or even on devices that provide only
-      a d-pad controller), you must explicitly declare that a touchscreen is
-      not required by declaring {@code android.hardware.touchscreen} with
-      {@code android:required="false"}. You should add this declaration if your
-      app uses—but does not require—a real touchscreen interface.
-    </p>
-
-    <p>
       If your app in fact requires a touch interface (to perform more advanced
-      touch gestures such as fling), then you don't need to declare any touch
-      interface features because they're required by default. However, it's
-      best if you explicitly declare all features that your app uses.
+      touch gestures such as fling), then you must explicitly declare this feature
+      or any advanced touchscreen features.
     </p>
 
     <p>
diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd
index 94577ed..b8126c0 100755
--- a/docs/html/guide/topics/manifest/uses-sdk-element.jd
+++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd
@@ -223,9 +223,14 @@
 are running each version, see the <a href="{@docRoot}about/dashboards/index.html">Platform
 Versions dashboards page</a>.</p>
 
-<table>
+<table id="api-level-table">
   <tr><th>Platform Version</th><th>API Level</th><th>VERSION_CODE</th><th>Notes</th></tr>
 
+    <tr><td><a href="{@docRoot}about/versions/nougat/android-7.0.html">Android 7.0</a></td>
+    <td><a href="{@docRoot}sdk/api_diff/24/changes.html" title="Diff Report">24</a></td>
+    <td>{@link android.os.Build.VERSION_CODES#N}</td>
+    <td><a href="{@docRoot}about/versions/nougat/index.html">Platform Highlights</a></td></tr>
+
     <tr><td><a href="{@docRoot}about/versions/marshmallow/android-6.0.html">Android 6.0</a></td>
     <td><a href="{@docRoot}sdk/api_diff/23/changes.html" title="Diff Report">23</a></td>
     <td>{@link android.os.Build.VERSION_CODES#M}</td>
diff --git a/docs/html/guide/topics/renderscript/advanced.jd b/docs/html/guide/topics/renderscript/advanced.jd
index 6a72b97..5cc0556 100644
--- a/docs/html/guide/topics/renderscript/advanced.jd
+++ b/docs/html/guide/topics/renderscript/advanced.jd
@@ -63,7 +63,7 @@
   <code>llvm</code> compiler that runs as part of an Android build. When your application
   runs on a device, the bytecode is then compiled (just-in-time) to machine code by another
   <code>llvm</code> compiler that resides on the device. The machine code is optimized for the
-  device and also cached, so subsequent uses of the RenderScript enabled application does not
+  device and also cached, so subsequent uses of the RenderScript enabled application do not
   recompile the bytecode.</p>
 
   <p>Some key features of the RenderScript runtime libraries include:</p>
@@ -128,7 +128,7 @@
 <h3 id="func">Functions</h3>
 <p>Functions are reflected into the script class itself, located in
 <code>project_root/gen/package/name/ScriptC_renderscript_filename</code>. For
-example, if you declare the following function in your RenderScript code:</p>
+example, if you define the following function in your RenderScript code:</p>
 
 <pre>
 void touch(float x, float y, float pressure, int id) {
@@ -142,7 +142,7 @@
 }
 </pre>
 
-<p>then the following code is generated:</p>
+<p>then the following Java code is generated:</p>
 
 <pre>
 public void invoke_touch(float x, float y, float pressure, int id) {
@@ -155,7 +155,7 @@
 }
 </pre>
 <p>
-Functions cannot have a return value, because the RenderScript system is designed to be
+Functions cannot have return values, because the RenderScript system is designed to be
 asynchronous. When your Android framework code calls into RenderScript, the call is queued and is
 executed when possible. This restriction allows the RenderScript system to function without constant
 interruption and increases efficiency. If functions were allowed to have return values, the call
@@ -171,11 +171,11 @@
 
   <p>Variables of supported types are reflected into the script class itself, located in
 <code>project_root/gen/package/name/ScriptC_renderscript_filename</code>. A set of accessor
-methods are generated for each variable. For example, if you declare the following variable in
+methods is generated for each variable. For example, if you define the following variable in
 your RenderScript code:</p>
   <pre>uint32_t unsignedInteger = 1;</pre>
 
-  <p>then the following code is generated:</p>
+  <p>then the following Java code is generated:</p>
 
 <pre>
 private long mExportVar_unsignedInteger;
@@ -194,7 +194,7 @@
   <p>Structs are reflected into their own classes, located in
     <code>&lt;project_root&gt;/gen/com/example/renderscript/ScriptField_struct_name</code>. This
     class represents an array of the <code>struct</code> and allows you to allocate memory for a
-    specified number of <code>struct</code>s. For example, if you declare the following struct:</p>
+    specified number of <code>struct</code>s. For example, if you define the following struct:</p>
 <pre>
 typedef struct Point {
     float2 position;
@@ -373,7 +373,7 @@
 the array. The RenderScript runtime automatically has access to the newly written memory.
 
       <li>Accessor methods to get and set the values of each field in a struct. Each of these
-        accessor methods have an <code>index</code> parameter to specify the <code>struct</code> in
+        accessor methods has an <code>index</code> parameter to specify the <code>struct</code> in
         the array that you want to read or write to. Each setter method also has a
 <code>copyNow</code> parameter that specifies whether or not to immediately sync this memory
 to the RenderScript runtime. To sync any memory that has not been synced, call
@@ -395,10 +395,10 @@
     </ul>
 
   <h3 id="pointer">Pointers</h3>
-  <p>Pointers are reflected into the script class itself, located in
+  <p>Global pointers are reflected into the script class itself, located in
 <code>project_root/gen/package/name/ScriptC_renderscript_filename</code>. You
 can declare pointers to a <code>struct</code> or any of the supported RenderScript types, but a
-<code>struct</code> cannot contain pointers or nested arrays. For example, if you declare the
+<code>struct</code> cannot contain pointers or nested arrays. For example, if you define the
 following pointers to a <code>struct</code> and <code>int32_t</code></p>
 
 <pre>
@@ -410,7 +410,7 @@
 Point_t *touchPoints;
 int32_t *intPointer;
 </pre>
-  <p>then the following code is generated in:</p>
+  <p>then the following Java code is generated:</p>
 
 <pre>
 private ScriptField_Point mExportVar_touchPoints;
@@ -437,7 +437,7 @@
   </pre>
 
 <p>A <code>get</code> method and a special method named <code>bind_<em>pointer_name</em></code>
-(instead of a <code>set()</code> method) is generated. This method allows you to bind the memory
+(instead of a <code>set()</code> method) are generated. The <code>bind_<em>pointer_name</em></code> method allows you to bind the memory
 that is allocated in the Android VM to the RenderScript runtime (you cannot allocate
 memory in your <code>.rs</code> file). For more information, see <a href="#memory">Working
 with Allocated Memory</a>.
@@ -521,7 +521,7 @@
         describes.</p>
 
         <p>A type consists of five dimensions: X, Y, Z, LOD (level of detail), and Faces (of a cube
-        map). You can assign the X,Y,Z dimensions to any positive integer value within the
+        map). You can set the X,Y,Z dimensions to any positive integer value within the
         constraints of available memory. A single dimension allocation has an X dimension of
         greater than zero while the Y and Z dimensions are zero to indicate not present. For
         example, an allocation of x=10, y=1 is considered two dimensional and x=10, y=0 is
diff --git a/docs/html/guide/topics/renderscript/compute.jd b/docs/html/guide/topics/renderscript/compute.jd
index fe68654..13880ec 100755
--- a/docs/html/guide/topics/renderscript/compute.jd
+++ b/docs/html/guide/topics/renderscript/compute.jd
@@ -16,6 +16,13 @@
         </ol>
       </li>
       <li><a href="#using-rs-from-java">Using RenderScript from Java Code</a></li>
+      <li><a href="#reduction-in-depth">Reduction Kernels in Depth</a>
+        <ol>
+          <li><a href="#writing-reduction-kernel">Writing a reduction kernel</a></li>
+          <li><a href="#calling-reduction-kernel">Calling a reduction kernel from Java code</a></li>
+          <li><a href="#more-example">More example reduction kernels</a></li>
+        </ol>
+      </li>
     </ol>
 
     <h2>Related Samples</h2>
@@ -29,16 +36,18 @@
 
 <p>RenderScript is a framework for running computationally intensive tasks at high performance on
 Android. RenderScript is primarily oriented for use with data-parallel computation, although serial
-computationally intensive workloads can benefit as well. The RenderScript runtime will parallelize
-work across all processors available on a device, such as multi-core CPUs, GPUs, or DSPs, allowing
-you to focus on expressing algorithms rather than scheduling work or load balancing. RenderScript is
+workloads can benefit as well. The RenderScript runtime parallelizes
+work across processors available on a device, such as multi-core CPUs and GPUs. This allows
+you to focus on expressing algorithms rather than scheduling work. RenderScript is
 especially useful for applications performing image processing, computational photography, or
 computer vision.</p>
 
 <p>To begin with RenderScript, there are two main concepts you should understand:</p>
 <ul>
 
-<li>High-performance compute kernels are written in a C99-derived language.</li>
+<li>High-performance compute kernels are written in a C99-derived language. A <i>compute
+    kernel</i> is a function or collection of functions that you can direct the RenderScript runtime
+    to execute in parallel across a collection of data.</li>
 
 <li>A Java API is used for managing the lifetime of RenderScript resources and controlling kernel
 execution.</li>
@@ -48,7 +57,7 @@
 
 <p>A RenderScript kernel typically resides in a <code>.rs</code> file in the
 <code>&lt;project_root&gt;/src/</code> directory; each <code>.rs</code> file is called a
-script. Every script contains its own set of kernels, functions, and variables. A script can
+<i>script</i>. Every script contains its own set of kernels, functions, and variables. A script can
 contain:</p>
 
 <ul>
@@ -57,23 +66,32 @@
 
 <li>A pragma declaration (<code>#pragma rs java_package_name(com.example.app)</code>) that
 declares the package name of the Java classes reflected from this script.
-Note that your .rs file must be part of your application package, and not in a
+Note that your <code>.rs</code> file must be part of your application package, and not in a
 library project.</li>
 
-<li>Some number of invokable functions. An invokable function is a single-threaded RenderScript
+<li>Zero or more <strong><i>invokable functions</i></strong>. An invokable function is a single-threaded RenderScript
 function that you can call from your Java code with arbitrary arguments. These are often useful for
 initial setup or serial computations within a larger processing pipeline.</li>
 
-<li>Some number of script globals. A script global is equivalent to a global variable in C. You can
+<li><p>Zero or more <strong><i>script globals</i></strong>. A script global is equivalent to a global variable in C. You can
 access script globals from Java code, and these are often used for parameter passing to RenderScript
-kernels.</li>
+kernels.</p></li>
 
-<li>Some number of compute kernels. A kernel is a parallel function that executes across every
-{@link android.renderscript.Element} within an {@link android.renderscript.Allocation}.
+<li><p>Zero or more <strong><i>compute kernels</i></strong>. There are two kinds of compute
+kernels: <i>mapping</i> kernels (also called <i>foreach</i> kernels)
+and <i>reduction</i> kernels.</p>
 
-<p>A simple kernel may look like the following:</p>
+<p>A <em>mapping kernel</em> is a parallel function that operates on a collection of {@link
+  android.renderscript.Allocation Allocations} of the same dimensions. By default, it executes
+  once for every coordinate in those dimensions. It is typically (but not exclusively) used to
+  transform a collection of input {@link android.renderscript.Allocation Allocations} to an
+  output {@link android.renderscript.Allocation} one {@link android.renderscript.Element} at a
+  time.</p>
 
-<pre>uchar4 __attribute__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
+<ul>
+<li><p>Here is an example of a simple <strong>mapping kernel</strong>:</p>
+
+<pre>uchar4 RS_KERNEL invert(uchar4 in, uint32_t x, uint32_t y) {
   uchar4 out = in;
   out.r = 255 - in.r;
   out.g = 255 - in.g;
@@ -81,40 +99,113 @@
   return out;
 }</pre>
 
-<p>In most respects, this is identical to a standard C function. The first notable feature is the
-<code>__attribute__((kernel))</code> applied to the function prototype. This denotes that the
-function is a RenderScript kernel instead of an invokable function. The next feature is the
-<code>in</code> argument and its type. In a RenderScript kernel, this is a special argument that is
-automatically filled in based on the input {@link android.renderscript.Allocation} passed to the
-kernel launch. By default, the kernel is run across an entire {@link
-android.renderscript.Allocation}, with one execution of the kernel body per {@link
-android.renderscript.Element} in the {@link android.renderscript.Allocation}. The third notable
-feature is the return type of the kernel. The value returned from the kernel is automatically
-written to the appropriate location in the output {@link android.renderscript.Allocation}. The
-RenderScript runtime checks to ensure that the {@link android.renderscript.Element} types of the
-input and output Allocations match the kernel's prototype; if they do not match, an exception is
-thrown.</p>
+<p>In most respects, this is identical to a standard C
+  function. The <a href="#RS_KERNEL"><code>RS_KERNEL</code></a> property applied to the
+  function prototype specifies that the function is a RenderScript mapping kernel instead of an
+  invokable function. The <code>in</code> argument is automatically filled in based on the
+  input {@link android.renderscript.Allocation} passed to the kernel launch. The
+  arguments <code>x</code> and <code>y</code> are
+  discussed <a href="#special-arguments">below</a>. The value returned from the kernel is
+  automatically written to the appropriate location in the output {@link
+  android.renderscript.Allocation}. By default, this kernel is run across its entire input
+  {@link android.renderscript.Allocation}, with one execution of the kernel function per {@link
+  android.renderscript.Element} in the {@link android.renderscript.Allocation}.</p>
 
-<p>A kernel may have an input {@link android.renderscript.Allocation}, an output {@link
-android.renderscript.Allocation}, or both. A kernel may not have more than one input or one output
-{@link android.renderscript.Allocation}. If more than one input or output is required, those objects
-should be bound to <code>rs_allocation</code> script globals and accessed from a kernel or invokable
-function via <code>rsGetElementAt_<em>type</em>()</code> or
-<code>rsSetElementAt_<em>type</em>()</code>.</p>
+<p>A mapping kernel may have one or more input {@link android.renderscript.Allocation
+  Allocations}, a single output {@link android.renderscript.Allocation}, or both. The
+  RenderScript runtime checks to ensure that all input and output Allocations have the same
+  dimensions, and that the {@link android.renderscript.Element} types of the input and output
+  Allocations match the kernel's prototype; if either of these checks fails, RenderScript
+  throws an exception.</p>
 
-<p>A kernel may access the coordinates of the current execution using the <code>x</code>,
-<code>y</code>, and <code>z</code> arguments. These arguments are optional, but the type of the
-coordinate arguments must be <code>uint32_t</code>.</p></li>
+<p class="note"><strong>NOTE:</strong> Before Android 6.0 (API level 23), a mapping kernel may
+  not have more than one input {@link android.renderscript.Allocation}.</p>
+
+<p>If you need more input or output {@link android.renderscript.Allocation Allocations} than
+  the kernel has, those objects should be bound to <code>rs_allocation</code> script globals
+  and accessed from a kernel or invokable function
+  via <code>rsGetElementAt_<i>type</i>()</code> or <code>rsSetElementAt_<i>type</i>()</code>.</p>
+
+<p><strong>NOTE:</strong> <a id="RS_KERNEL"><code>RS_KERNEL</code></a> is a macro
+  defined automatically by RenderScript for your convenience:</p>
+<pre>
+#define RS_KERNEL __attribute__((kernel))
+</pre>
+</li>
+</ul>
+
+<p>A <em>reduction kernel</em> is a family of functions that operates on a collection of input
+  {@link android.renderscript.Allocation Allocations} of the same dimensions. By default,
+  its <a href="#accumulator-function">accumulator function</a> executes once for every
+  coordinate in those dimensions.  It is typically (but not exclusively) used to "reduce" a
+  collection of input {@link android.renderscript.Allocation Allocations} to a single
+  value.</p>
+
+<ul>
+<li><p>Here is an <a id="example-addint">example</a> of a simple <strong>reduction
+kernel</strong> that adds up the {@link android.renderscript.Element Elements} of its
+input:</p>
+
+<pre>#pragma rs reduce(addint) accumulator(addintAccum)
+
+static void addintAccum(int *accum, int val) {
+  *accum += val;
+}</pre>
+
+<p>A reduction kernel consists of one or more user-written functions.
+<code>#pragma rs reduce</code> is used to define the kernel by specifying its name
+(<code>addint</code>, in this example) and the names and roles of the functions that make
+up the kernel (an <code>accumulator</code> function <code>addintAccum</code>, in this
+example). All such functions must be <code>static</code>. A reduction kernel always
+requires an <code>accumulator</code> function; it may also have other functions, depending
+on what you want the kernel to do.</p>
+
+<p>A reduction kernel accumulator function must return <code>void</code> and must have at least
+two arguments. The first argument (<code>accum</code>, in this example) is a pointer to
+an <i>accumulator data item</i> and the second (<code>val</code>, in this example) is
+automatically filled in based on the input {@link android.renderscript.Allocation} passed to
+the kernel launch. The accumulator data item is created by the RenderScript runtime; by
+default, it is initialized to zero. By default, this kernel is run across its entire input
+{@link android.renderscript.Allocation}, with one execution of the accumulator function per
+{@link android.renderscript.Element} in the {@link android.renderscript.Allocation}. By
+default, the final value of the accumulator data item is treated as the result of the
+reduction, and is returned to Java.  The RenderScript runtime checks to ensure that the {@link
+android.renderscript.Element} type of the input Allocation matches the accumulator function's
+prototype; if it does not match, RenderScript throws an exception.</p>
+
+<p>A reduction kernel has one or more input {@link android.renderscript.Allocation
+Allocations} but no output {@link android.renderscript.Allocation Allocations}.</p></li>
+
+<p>Reduction kernels are explained in more detail <a href="#reduction-in-depth">here</a>.</p>
+
+<p>Reduction kernels are supported in Android 7.0 (API level 24) and later.</p>
+</li>
+</ul>
+
+<p>A mapping kernel function or a reduction kernel accumulator function may access the coordinates
+of the current execution using the <a id="special-arguments">special arguments</a> <code>x</code>,
+<code>y</code>, and <code>z</code>, which must be of type <code>int</code> or <code>uint32_t</code>.
+These arguments are optional.</p>
+
+<p>A mapping kernel function or a reduction kernel accumulator
+function may also take the optional special argument
+<code>context</code> of type <a
+href='reference/rs_for_each.html#android_rs:rs_kernel_context'>rs_kernel_context</a>.
+It is needed by a family of runtime APIs that are used to query
+certain properties of the current execution -- for example, <a
+href='reference/rs_for_each.html#android_rs:rsGetDimX'>rsGetDimX</a>.
+(The <code>context</code> argument is available in Android 6.0 (API level 23) and later.)</p>
+</li>
 
 <li>An optional <code>init()</code> function. An <code>init()</code> function is a special type of
-invokable function that is run when the script is first instantiated. This allows for some
+invokable function that RenderScript runs when the script is first instantiated. This allows for some
 computation to occur automatically at script creation.</li>
 
-<li>Some number of static script globals and functions. A static script global is equivalent to a
-script global except that it cannot be set from Java code. A static function is a standard C
+<li>Zero or more <strong><i>static script globals and functions</i></strong>. A static script global is equivalent to a
+script global except that it cannot be accessed from Java code. A static function is a standard C
 function that can be called from any kernel or invokable function in the script but is not exposed
 to the Java API. If a script global or function does not need to be called from Java code, it is
-highly recommended that those be declared <code>static</code>.</li> </ul>
+highly recommended that it be declared <code>static</code>.</li> </ul>
 
 <h4>Setting floating point precision</h4>
 
@@ -129,13 +220,13 @@
 
 </li>
 
-  <li><code>#pragma rs_fp_relaxed</code> - For apps that don’t require strict IEEE 754-2008
+  <li><code>#pragma rs_fp_relaxed</code>: For apps that don’t require strict IEEE 754-2008
     compliance and can tolerate less precision. This mode enables flush-to-zero for denorms and
     round-towards-zero.
 
 </li>
 
-  <li><code>#pragma rs_fp_imprecise</code> - For apps that don’t have stringent precision
+  <li><code>#pragma rs_fp_imprecise</code>: For apps that don’t have stringent precision
     requirements. This mode enables everything in <code>rs_fp_relaxed</code> along with the
     following:
 
@@ -162,14 +253,21 @@
     available on devices running Android 3.0 (API level 11) and higher. </li>
   <li><strong>{@link android.support.v8.renderscript}</strong> - The APIs in this package are
     available through a <a href="{@docRoot}tools/support-library/features.html#v8">Support
-    Library</a>, which allows you to use them on devices running Android 2.2 (API level 8) and
+    Library</a>, which allows you to use them on devices running Android 2.3 (API level 9) and
     higher.</li>
 </ul>
 
-<p>We strongly recommend using the Support Library APIs for accessing RenderScript because they
-  provide a wider range of device compatibility. Developers targeting specific versions of
-  Android can use {@link android.renderscript} if necessary.</p>
+<p>Here are the tradeoffs:</p>
 
+<ul>
+<li>If you use the Support Library APIs, the RenderScript portion of your application will be
+  compatible with devices running Android 2.3 (API level 9) and higher, regardless of which RenderScript
+  features you use. This allows your application to work on more devices than if you use the
+  native (<strong>{@link android.renderscript}</strong>) APIs.</li>
+<li>Certain RenderScript features are not available through the Support Library APIs.</li>
+<li>If you use the Support Library APIs, you will get (possibly significantly) larger APKs than
+if you use the native (<strong>{@link android.renderscript}</strong>) APIs.</li>
+</ul>
 
 <h3 id="ide-setup">Using the RenderScript Support Library APIs</h3>
 
@@ -202,7 +300,7 @@
     buildToolsVersion "23.0.3"
 
     defaultConfig {
-        minSdkVersion 8
+        minSdkVersion 9
         targetSdkVersion 19
 <strong>
         renderscriptTargetApi 18
@@ -250,7 +348,7 @@
 
 <p>Using RenderScript from Java code relies on the API classes located in the
 {@link android.renderscript} or the {@link android.support.v8.renderscript} package. Most
-applications follow the same basic usage patterns:</p>
+applications follow the same basic usage pattern:</p>
 
 <ol>
 
@@ -266,12 +364,12 @@
 script.</strong> An {@link android.renderscript.Allocation} is a RenderScript object that provides
 storage for a fixed amount of data. Kernels in scripts take {@link android.renderscript.Allocation}
 objects as their input and output, and {@link android.renderscript.Allocation} objects can be
-accessed in kernels using <code>rsGetElementAt_<em>type</em>()</code> and
-<code>rsSetElementAt_<em>type</em>()</code> when bound as script globals. {@link
+accessed in kernels using <code>rsGetElementAt_<i>type</i>()</code> and
+<code>rsSetElementAt_<i>type</i>()</code> when bound as script globals. {@link
 android.renderscript.Allocation} objects allow arrays to be passed from Java code to RenderScript
 code and vice-versa. {@link android.renderscript.Allocation} objects are typically created using
-{@link android.renderscript.Allocation#createTyped} or {@link
-android.renderscript.Allocation#createFromBitmap}.</li>
+{@link android.renderscript.Allocation#createTyped createTyped()} or {@link
+android.renderscript.Allocation#createFromBitmap createFromBitmap()}.</li>
 
 <li><strong>Create whatever scripts are necessary.</strong> There are two types of scripts available
 to you when using RenderScript:
@@ -281,9 +379,9 @@
 <li><strong>ScriptC</strong>: These are the user-defined scripts as described in <a
 href="#writing-an-rs-kernel">Writing a RenderScript Kernel</a> above. Every script has a Java class
 reflected by the RenderScript compiler in order to make it easy to access the script from Java code;
-this class will have the name <code>ScriptC_<em>filename</em></code>. For example, if the kernel
-above was located in <code>invert.rs</code> and a RenderScript context was already located in
-<code>mRS</code>, the Java code to instantiate the script would be:
+this class has the name <code>ScriptC_<i>filename</i></code>. For example, if the mapping kernel
+above were located in <code>invert.rs</code> and a RenderScript context were already located in
+<code>mRenderScript</code>, the Java code to instantiate the script would be:
 
 <pre>ScriptC_invert invert = new ScriptC_invert(mRenderScript);</pre></li>
 
@@ -294,35 +392,926 @@
 </ul></li>
 
 <li><strong>Populate Allocations with data.</strong> Except for Allocations created with {@link
-android.renderscript.Allocation#createFromBitmap}, an Allocation will be populated with empty data when it is
-first created. To populate an Allocation, use one of the <code>copy</code> methods in {@link
-android.renderscript.Allocation}.</li>
+android.renderscript.Allocation#createFromBitmap createFromBitmap()}, an Allocation is populated with empty data when it is
+first created. To populate an Allocation, use one of the "copy" methods in {@link
+android.renderscript.Allocation}. The "copy" methods are <a href="#asynchronous-model">synchronous</a>.</li>
 
-<li><strong>Set any necessary script globals.</strong> Globals may be set using methods in the same
-<code>ScriptC_<em>filename</em></code> class with methods named
-<code>set_<em>globalname</em></code>. For example, in order to set an <code>int</code> named
-<code>elements</code>, use the Java method <code>set_elements(int)</code>. RenderScript objects can
-also be set in kernels; for example, the <code>rs_allocation</code> variable named
-<code>lookup</code> can be set with the method <code>set_lookup(Allocation)</code>.</li>
+<li><strong>Set any necessary script globals.</strong> You may set globals using methods in the
+  same <code>ScriptC_<i>filename</i></code> class named <code>set_<i>globalname</i></code>. For
+  example, in order to set an <code>int</code> variable named <code>threshold</code>, use the
+  Java method <code>set_threshold(int)</code>; and in order to set
+  an <code>rs_allocation</code> variable named <code>lookup</code>, use the Java
+  method <code>set_lookup(Allocation)</code>. The <code>set</code> methods
+  are <a href="#asynchronous-model">asynchronous</a>.</li>
 
-<li><strong>Launch the appropriate kernels.</strong> Methods to launch a given kernel will be
-reflected in the same <code>ScriptC_<em>filename</em></code> class with methods named
-<code>forEach_<em>kernelname</em>()</code>. These launches are asynchronous, and launches will be
-serialized in the order in which they are launched. Depending on the arguments to the kernel, the
-method will take either one or two Allocations. By default, a kernel will execute over the entire
-input or output Allocation; to execute over a subset of that Allocation, pass an appropriate {@link
-android.renderscript.Script.LaunchOptions} as the last argument to the <code>forEach</code> method.
+<li><strong>Launch the appropriate kernels and invokable functions.</strong>
+<p>Methods to launch a given kernel are
+reflected in the same <code>ScriptC_<i>filename</i></code> class with methods named
+<code>forEach_<i>mappingKernelName</i>()</code>
+or <code>reduce_<i>reductionKernelName</i>()</code>.
+These launches are <a href="#asynchronous-model">asynchronous</a>.
+Depending on the arguments to the kernel, the
+method takes one or more Allocations, all of which must have the same dimensions. By default, a
+kernel executes over every coordinate in those dimensions; to execute a kernel over a subset of those coordinates,
+pass an appropriate {@link
+android.renderscript.Script.LaunchOptions} as the last argument to the <code>forEach</code> or <code>reduce</code> method.</p>
 
-<p>Invoked functions can be launched using the <code>invoke_<em>functionname</em></code> methods
-reflected in the same <code>ScriptC_<em>filename</em></code> class.</p></li>
+<p>Launch invokable functions using the <code>invoke_<i>functionName</i></code> methods
+reflected in the same <code>ScriptC_<i>filename</i></code> class.
+These launches are <a href="#asynchronous-model">asynchronous</a>.</p></li>
 
-<li><strong>Copy data out of {@link android.renderscript.Allocation} objects.</strong> In order to
-access data from an {@link android.renderscript.Allocation} from Java code, that data must be copied
-back to Java buffers using one of the <code>copy</code> methods in {@link
-android.renderscript.Allocation}. These functions will synchronize with asynchronous kernel and
-function launches as necessary.</li>
+<li><strong>Retrieve data from {@link android.renderscript.Allocation} objects
+and <i><a href="#javaFutureType">javaFutureType</a></i> objects.</strong>
+In order to
+access data from an {@link android.renderscript.Allocation} from Java code, you must copy that data
+back to Java using one of the "copy" methods in {@link
+android.renderscript.Allocation}.
+In order to obtain the result of a reduction kernel, you must use the <code><i>javaFutureType</i>.get()</code> method.
+The "copy" and <code>get()</code> methods are <a href="#asynchronous-model">synchronous</a>.</li>
 
-<li><strong>Tear down the RenderScript context.</strong> The RenderScript context can be destroyed
+<li><strong>Tear down the RenderScript context.</strong> You can destroy the RenderScript context
 with {@link android.renderscript.RenderScript#destroy} or by allowing the RenderScript context
-object to be garbage collected. This will cause any further use of any object belonging to that
+object to be garbage collected. This causes any further use of any object belonging to that
 context to throw an exception.</li> </ol>
+
+<h3 id="asynchronous-model">Asynchronous execution model</h3>
+
+<p>The reflected <code>forEach</code>, <code>invoke</code>, <code>reduce</code>,
+  and <code>set</code> methods are asynchronous -- each may return to Java before completing the
+  requested action.  However, the individual actions are serialized in the order in which they are launched.</p>
+
+<p>The {@link android.renderscript.Allocation} class provides "copy" methods to copy data to
+  and from Allocations.  A "copy" method is synchronous, and is serialized with respect to any
+  of the asynchronous actions above that touch the same Allocation.</p>
+
+<p>The reflected <i><a href="#javaFutureType">javaFutureType</a></i> classes provide
+  a <code>get()</code> method to obtain the result of a reduction. <code>get()</code> is
+  synchronous, and is serialized with respect to the reduction (which is asynchronous).</p>
+
+<h2 id="reduction-in-depth">Reduction Kernels in Depth</h2>
+
+<p><i>Reduction</i> is the process of combining a collection of data into a single
+value. This is a useful primitive in parallel programming, with applications such as the
+following:</p>
+<ul>
+  <li>computing the sum or product over all the data</li>
+  <li>computing logical operations (<code>and</code>, <code>or</code>, <code>xor</code>)
+  over all the data</li>
+  <li>finding the minimum or maximum value within the data</li>
+  <li>searching for a specific value or for the coordinate of a specific value within the data</li>
+</ul>
+
+<p>In Android 7.0 (API level 24) and later, RenderScript supports <i>reduction kernels</i> to allow
+efficient user-written reduction algorithms. You may launch reduction kernels on inputs with
+1, 2, or 3 dimensions.<p>
+
+<p>An example above shows a simple <a href="#example-addint">addint</a> reduction kernel.
+Here is a more complicated <a id="example-findMinAndMax">findMinAndMax</a> reduction kernel
+that finds the locations of the minimum and maximum <code>long</code> values in a
+1-dimensional {@link android.renderscript.Allocation}:</p>
+
+<pre>
+#define LONG_MAX (long)((1UL << 63) - 1)
+#define LONG_MIN (long)(1UL << 63)
+
+#pragma rs reduce(findMinAndMax) \
+  initializer(fMMInit) accumulator(fMMAccumulator) \
+  combiner(fMMCombiner) outconverter(fMMOutConverter)
+
+// Either a value and the location where it was found, or <a href="#INITVAL">INITVAL</a>.
+typedef struct {
+  long val;
+  int idx;     // -1 indicates <a href="#INITVAL">INITVAL</a>
+} IndexedVal;
+
+typedef struct {
+  IndexedVal min, max;
+} MinAndMax;
+
+// In discussion below, this initial value { { LONG_MAX, -1 }, { LONG_MIN, -1 } }
+// is called <a id="INITVAL">INITVAL</a>.
+static void fMMInit(MinAndMax *accum) {
+  accum->min.val = LONG_MAX;
+  accum->min.idx = -1;
+  accum->max.val = LONG_MIN;
+  accum->max.idx = -1;
+}
+
+//----------------------------------------------------------------------
+// In describing the behavior of the accumulator and combiner functions,
+// it is helpful to describe hypothetical functions
+//   IndexedVal min(IndexedVal a, IndexedVal b)
+//   IndexedVal max(IndexedVal a, IndexedVal b)
+//   MinAndMax  minmax(MinAndMax a, MinAndMax b)
+//   MinAndMax  minmax(MinAndMax accum, IndexedVal val)
+//
+// The effect of
+//   IndexedVal min(IndexedVal a, IndexedVal b)
+// is to return the IndexedVal from among the two arguments
+// whose val is lesser, except that when an IndexedVal
+// has a negative index, that IndexedVal is never less than
+// any other IndexedVal; therefore, if exactly one of the
+// two arguments has a negative index, the min is the other
+// argument. Like ordinary arithmetic min and max, this function
+// is commutative and associative; that is,
+//
+//   min(A, B) == min(B, A)               // commutative
+//   min(A, min(B, C)) == min((A, B), C)  // associative
+//
+// The effect of
+//   IndexedVal max(IndexedVal a, IndexedVal b)
+// is analogous (greater . . . never greater than).
+//
+// Then there is
+//
+//   MinAndMax minmax(MinAndMax a, MinAndMax b) {
+//     return MinAndMax(min(a.min, b.min), max(a.max, b.max));
+//   }
+//
+// Like ordinary arithmetic min and max, the above function
+// is commutative and associative; that is:
+//
+//   minmax(A, B) == minmax(B, A)                  // commutative
+//   minmax(A, minmax(B, C)) == minmax((A, B), C)  // associative
+//
+// Finally define
+//
+//   MinAndMax minmax(MinAndMax accum, IndexedVal val) {
+//     return minmax(accum, MinAndMax(val, val));
+//   }
+//----------------------------------------------------------------------
+
+// This function can be explained as doing:
+//   *accum = minmax(*accum, IndexedVal(in, x))
+//
+// This function simply computes minimum and maximum values as if
+// INITVAL.min were greater than any other minimum value and
+// INITVAL.max were less than any other maximum value.  Note that if
+// *accum is INITVAL, then this function sets
+//   *accum = IndexedVal(in, x)
+//
+// After this function is called, both accum->min.idx and accum->max.idx
+// will have nonnegative values:
+// - x is always nonnegative, so if this function ever sets one of the
+//   idx fields, it will set it to a nonnegative value
+// - if one of the idx fields is negative, then the corresponding
+//   val field must be LONG_MAX or LONG_MIN, so the function will always
+//   set both the val and idx fields
+static void fMMAccumulator(MinAndMax *accum, long in, int x) {
+  IndexedVal me;
+  me.val = in;
+  me.idx = x;
+
+  if (me.val <= accum->min.val)
+    accum->min = me;
+  if (me.val >= accum->max.val)
+    accum->max = me;
+}
+
+// This function can be explained as doing:
+//   *accum = minmax(*accum, *val)
+//
+// This function simply computes minimum and maximum values as if
+// INITVAL.min were greater than any other minimum value and
+// INITVAL.max were less than any other maximum value.  Note that if
+// one of the two accumulator data items is INITVAL, then this
+// function sets *accum to the other one.
+static void fMMCombiner(MinAndMax *accum,
+                        const MinAndMax *val) {
+  if ((accum->min.idx < 0) || (val->min.val < accum->min.val))
+    accum->min = val->min;
+  if ((accum->max.idx < 0) || (val->max.val > accum->max.val))
+    accum->max = val->max;
+}
+
+static void fMMOutConverter(int2 *result,
+                            const MinAndMax *val) {
+  result->x = val->min.idx;
+  result->y = val->max.idx;
+}
+</pre>
+
+<p class="note"><strong>NOTE:</strong> There are more example reduction
+  kernels <a href="#more-example">here</a>.</p>
+
+<p>In order to run a reduction kernel, the RenderScript runtime creates <em>one or more</em>
+variables called <a id="accumulator-data-items"><strong><i>accumulator data
+items</i></strong></a> to hold the state of the reduction process. The RenderScript runtime
+picks the number of accumulator data items in such a way as to maximize performance. The type
+of the accumulator data items (<i>accumType</i>) is determined by the kernel's <i>accumulator
+function</i> -- the first argument to that function is a pointer to an accumulator data
+item. By default, every accumulator data item is initialized to zero (as if
+by <code>memset</code>); however, you may write an <i>initializer function</i> to do something
+different.</p>
+
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a>
+kernel, the accumulator data items (of type <code>int</code>) are used to add up input
+values. There is no initializer function, so each accumulator data item is initialized to
+zero.</p>
+
+<p class="note"><strong>Example:</strong> In
+the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the accumulator data items
+(of type <code>MinAndMax</code>) are used to keep track of the minimum and maximum values
+found so far. There is an initializer function to set these to <code>LONG_MAX</code> and
+<code>LONG_MIN</code>, respectively; and to set the locations of these values to -1, indicating that
+the values are not actually present in the (empty) portion of the input that has been
+processed.</p>
+
+<p>RenderScript calls your accumulator function once for every coordinate in the
+input(s). Typically, your function should update the accumulator data item in some way
+according to the input.</p>
+
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a>
+kernel, the accumulator function adds the value of an input Element to the accumulator
+data item.</p>
+
+<p class="note"><strong>Example:</strong> In
+the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the accumulator function
+checks to see whether the value of an input Element is less than or equal to the minimum
+value recorded in the accumulator data item and/or greater than or equal to the maximum
+value recorded in the accumulator data item, and updates the accumulator data item
+accordingly.</p>
+
+<p>After the accumulator function has been called once for every coordinate in the input(s),
+RenderScript must <strong>combine</strong> the <a href="#accumulator-data-items">accumulator
+data items</a> together into a single accumulator data item. You may write a <i>combiner
+function</i> to do this. If the accumulator function has a single input and
+no <a href="#special-arguments">special arguments</a>, then you do not need to write a combiner
+function; RenderScript will use the accumulator function to combine the accumulator data
+items. (You may still write a combiner function if this default behavior is not what you
+want.)</p>
+
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a>
+kernel, there is no combiner function, so the accumulator function will be used. This is
+the correct behavior, because if we split a collection of values into two pieces, and we
+add up the values in those two pieces separately, adding up those two sums is the same as
+adding up the entire collection.</p>
+
+<p class="note"><strong>Example:</strong> In
+the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the combiner function
+checks to see whether the minimum value recorded in the "source" accumulator data
+item <code>*val</code> is less then the minimum value recorded in the "destination"
+accumulator data item <code>*accum</code>, and updates <code>*accum</code>
+accordingly. It does similar work for the maximum value. This updates <code>*accum</code>
+to the state it would have had if all of the input values had been accumulated into
+<code>*accum</code> rather than some into <code>*accum</code> and some into
+<code>*val</code>.</p>
+
+<p>After all of the accumulator data items have been combined, RenderScript determines
+the result of the reduction to return to Java. You may write an <i>outconverter
+function</i> to do this. You do not need to write an outconverter function if you want
+the final value of the combined accumulator data items to be the result of the reduction.</p>
+
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a> kernel,
+there is no outconverter function.  The final value of the combined data items is the sum of
+all Elements of the input, which is the value we want to return.</p>
+
+<p class="note"><strong>Example:</strong> In
+the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the outconverter function
+initializes an <code>int2</code> result value to hold the locations of the minimum and
+maximum values resulting from the combination of all of the accumulator data items.</p>
+
+<h3 id="writing-reduction-kernel">Writing a reduction kernel</h3>
+
+<p><code>#pragma rs reduce</code> defines a reduction kernel by
+specifying its name and the names and roles of the functions that make
+up the kernel.  All such functions must be
+<code>static</code>. A reduction kernel always requires an <code>accumulator</code>
+function; you can omit some or all of the other functions, depending on what you want the
+kernel to do.</p>
+
+<pre>#pragma rs reduce(<i>kernelName</i>) \
+  initializer(<i>initializerName</i>) \
+  accumulator(<i>accumulatorName</i>) \
+  combiner(<i>combinerName</i>) \
+  outconverter(<i>outconverterName</i>)
+</pre>
+
+<p>The meaning of the items in the <code>#pragma</code> is as follows:</p>
+<ul>
+
+<li><code>reduce(<i>kernelName</i>)</code> (mandatory): Specifies that a reduction kernel is
+being defined. A reflected Java method <code>reduce_<i>kernelName</i></code> will launch the
+kernel.</li>
+
+<li><p><code>initializer(<i>initializerName</i>)</code> (optional): Specifies the name of the
+initializer function for this reduction kernel. When you launch the kernel, RenderScript calls
+this function once for each <a href="#accumulator-data-items">accumulator data item</a>. The
+function must be defined like this:</p>
+
+<pre>static void <i>initializerName</i>(<i>accumType</i> *accum) { … }</pre>
+
+<p><code>accum</code> is a pointer to an accumulator data item for this function to
+initialize.</p>
+
+<p>If you do not provide an initializer function, RenderScript initializes every accumulator
+data item to zero (as if by <code>memset</code>), behaving as if there were an initializer
+function that looks like this:</p>
+<pre>static void <i>initializerName</i>(<i>accumType</i> *accum) {
+  memset(accum, 0, sizeof(*accum));
+}</pre>
+</li>
+
+<li><p><code><a id="accumulator-function">accumulator(<i>accumulatorName</i>)</a></code>
+(mandatory): Specifies the name of the accumulator function for this
+reduction kernel. When you launch the kernel, RenderScript calls
+this function once for every coordinate in the input(s), to update an
+accumulator data item in some way according to the input(s). The function
+must be defined like this:</p>
+
+<pre>
+static void <i>accumulatorName</i>(<i>accumType</i> *accum,
+                            <i>in1Type</i> in1, <i>&hellip;,</i> <i>inNType</i> in<i>N</i>
+                            <i>[, specialArguments]</i>) { &hellip; }
+</pre>
+
+<p><code>accum</code> is a pointer to an accumulator data item for this function to
+modify. <code>in1</code> through <code>in<i>N</i></code> are one <em>or more</em> arguments that
+are automatically filled in based on the inputs passed to the kernel launch, one argument
+per input. The accumulator function may optionally take any of the <a
+href="#special-arguments">special arguments</a>.</p>
+
+<p>An example kernel with multiple inputs is <a href="#dot-product"><code>dotProduct</code></a>.</p>
+</li>
+
+<li><code><a id="combiner-function">combiner(<i>combinerName</i>)</a></code>
+(optional): Specifies the name of the combiner function for this
+reduction kernel. After RenderScript calls the accumulator function
+once for every coordinate in the input(s), it calls this function as many
+times as necessary to combine all accumulator data items into a single
+accumulator data item. The function must be defined like this:</p>
+
+<pre>static void <i>combinerName</i>(<i>accumType</i> *accum, const <i>accumType</i> *other) { … }</pre>
+
+<p><code>accum</code> is a pointer to a "destination" accumulator data item for this
+function to modify. <code>other</code> is a pointer to a "source" accumulator data item
+for this function to "combine" into <code>*accum</code>.</p>
+
+<p class="note"><strong>NOTE:</strong> It is possible
+  that <code>*accum</code>, <code>*other</code>, or both have been initialized but have never
+  been passed to the accumulator function; that is, one or both have never been updated
+  according to any input data. For example, in
+  the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the combiner
+  function <code>fMMCombiner</code> explicitly checks for <code>idx &lt; 0</code> because that
+  indicates such an accumulator data item, whose value is <a href="#INITVAL">INITVAL</a>.</p>
+
+<p>If you do not provide a combiner function, RenderScript uses the accumulator function in its
+place, behaving as if there were a combiner function that looks like this:</p>
+
+<pre>static void <i>combinerName</i>(<i>accumType</i> *accum, const <i>accumType</i> *other) {
+  <i>accumulatorName</i>(accum, *other);
+}</pre>
+
+<p>A combiner function is mandatory if the kernel has more than one input, if the input data
+  type is not the same as the accumulator data type, or if the accumulator function takes one
+  or more <a href="#special-arguments">special arguments</a>.</p>
+</li>
+
+<li><p><code><a id="outconverter-function">outconverter(<i>outconverterName</i>)</a></code>
+(optional): Specifies the name of the outconverter function for this
+reduction kernel. After RenderScript combines all of the accumulator
+data items, it calls this function to determine the result of the
+reduction to return to Java. The function must be defined like
+this:</p>
+
+<pre>static void <i>outconverterName</i>(<i>resultType</i> *result, const <i>accumType</i> *accum) { … }</pre>
+
+<p><code>result</code> is a pointer to a result data item (allocated but not initialized
+by the RenderScript runtime) for this function to initialize with the result of the
+reduction. <i>resultType</i> is the type of that data item, which need not be the same
+as <i>accumType</i>. <code>accum</code> is a pointer to the final accumulator data item
+computed by the <a href="#combiner-function">combiner function</a>.</p>
+
+<p>If you do not provide an outconverter function, RenderScript copies the final accumulator
+data item to the result data item, behaving as if there were an outconverter function that
+looks like this:</p>
+
+<pre>static void <i>outconverterName</i>(<i>accumType</i> *result, const <i>accumType</i> *accum) {
+  *result = *accum;
+}</pre>
+
+<p>If you want a different result type than the accumulator data type, then the outconverter function is mandatory.</p>
+</li>
+
+</ul>
+
+<p>Note that a kernel has input types, an accumulator data item type, and a result type,
+  none of which need to be the same. For example, in
+  the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, the input
+  type <code>long</code>, accumulator data item type <code>MinAndMax</code>, and result
+  type <code>int2</code> are all different.</p>
+
+<h4 id="assume">What can't you assume?</h4>
+
+<p>You must not rely on the number of accumulator data items created by RenderScript for a
+  given kernel launch.  There is no guarantee that two launches of the same kernel with the
+  same input(s) will create the same number of accumulator data items.</p>
+
+<p>You must not rely on the order in which RenderScript calls the initializer, accumulator, and
+  combiner functions; it may even call some of them in parallel.  There is no guarantee that
+  two launches of the same kernel with the same input will follow the same order.  The only
+  guarantee is that only the initializer function will ever see an uninitialized accumulator
+  data item. For example:</p>
+<ul>
+<li>There is no guarantee that all accumulator data items will be initialized before the
+  accumulator function is called, although it will only be called on an initialized accumulator
+  data item.</li>
+<li>There is no guarantee on the order in which input Elements are passed to the accumulator
+  function.</li>
+<li>There is no guarantee that the accumulator function has been called for all input Elements
+  before the combiner function is called.</li>
+</ul>
+
+<p>One consequence of this is that the <a href="#example-findMinAndMax">findMinAndMax</a>
+  kernel is not deterministic: If the input contains more than one occurrence of the same
+  minimum or maximum value, you have no way of knowing which occurrence the kernel will
+  find.</p>
+
+<h4 id="guarantee">What must you guarantee?</h4>
+
+<p>Because the RenderScript system can choose to execute a kernel <a href="#assume">in many
+    different ways</a>, you must follow certain rules to ensure that your kernel behaves the
+    way you want. If you do not follow these rules, you may get incorrect results,
+    nondeterministic behavior, or runtime errors.</p>
+
+<p>The rules below often say that two accumulator data items must have "<a id="the-same">the
+  same value"</a>.  What does this mean?  That depends on what you want the kernel to do.  For
+  a mathematical reduction such as <a href="#example-addint">addint</a>, it usually makes sense
+  for "the same" to mean mathematical equality.  For a "pick any" search such
+  as <a href="#example-findMinAndMax">findMinAndMax</a> ("find the location of minimum and
+  maximum input values") where there might be more than one occurrence of identical input
+  values, all locations of a given input value must be considered "the same".  You could write
+  a similar kernel to "find the location of <em>leftmost</em> minimum and maximum input values"
+  where (say) a minimum value at location 100 is preferred over an identical minimum value at location
+  200; for this kernel, "the same" would mean identical <em>location</em>, not merely
+  identical <em>value</em>, and the accumulator and combiner functions would have to be
+  different than those for <a href="#example-findMinAndMax">findMinAndMax</a>.</p>
+
+<strong>The initializer function must create an <i>identity value</i>.</strong>  That is,
+  if <code><i>I</i></code> and <code><i>A</i></code> are accumulator data items initialized
+  by the initializer function, and <code><i>I</i></code> has never been passed to the
+  accumulator function (but <code><i>A</i></code> may have been), then
+<ul>
+<li><code><i>combinerName</i>(&<i>A</i>, &<i>I</i>)</code> must
+  leave <code><i>A</i></code> <a href="#the-same">the same</a></li>
+<li><code><i>combinerName</i>(&<i>I</i>, &<i>A</i>)</code> must
+  leave <code><i>I</i></code> <a href="#the-same">the same</a> as <code><i>A</i></code></li>
+</ul>
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a>
+  kernel, an accumulator data item is initialized to zero. The combiner function for this
+  kernel performs addition; zero is the identity value for addition.</p>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-findMinAndMax">findMinAndMax</a>
+  kernel, an accumulator data item is initialized
+  to <a href="#INITVAL"><code>INITVAL</code></a>.
+<ul>
+<li><code>fMMCombiner(&<i>A</i>, &<i>I</i>)</code> leaves <code><i>A</i></code> the same,
+  because <code><i>I</i></code> is <code>INITVAL</code>.</li>
+<li><code>fMMCombiner(&<i>I</i>, &<i>A</i>)</code> sets <code><i>I</i></code>
+  to <code><i>A</i></code>, because <code><i>I</i></code> is <code>INITVAL</code>.</li>
+</ul>
+Therefore, <code>INITVAL</code> is indeed an identity value.
+</p></div>
+
+<p><strong>The combiner function must be <i>commutative</i>.</strong>  That is,
+  if <code><i>A</i></code> and <code><i>B</i></code> are accumulator data items initialized
+  by the initializer function, and that may have been passed to the accumulator function zero
+  or more times, then <code><i>combinerName</i>(&<i>A</i>, &<i>B</i>)</code> must
+  set <code><i>A</i></code> to <a href="#the-same">the same value</a>
+  that <code><i>combinerName</i>(&<i>B</i>, &<i>A</i>)</code>
+  sets <code><i>B</i></code>.</p>
+<p class="note"><strong>Example:</strong> In the <a href="#example-addint">addint</a>
+  kernel, the combiner function adds the two accumulator data item values; addition is
+  commutative.</p>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-findMinAndMax">findMinAndMax</a> kernel,
+<pre>
+fMMCombiner(&<i>A</i>, &<i>B</i>)
+</pre>
+is the same as
+<pre>
+<i>A</i> = minmax(<i>A</i>, <i>B</i>)
+</pre>
+and <code>minmax</code> is commutative, so <code>fMMCombiner</code> is also.
+</p>
+</div>
+
+<p><strong>The combiner function must be <i>associative</i>.</strong>  That is,
+  if <code><i>A</i></code>, <code><i>B</i></code>, and <code><i>C</i></code> are
+  accumulator data items initialized by the initializer function, and that may have been passed
+  to the accumulator function zero or more times, then the following two code sequences must
+  set <code><i>A</i></code> to <a href="#the-same">the same value</a>:</p>
+<ul>
+<li><pre>
+<i>combinerName</i>(&<i>A</i>, &<i>B</i>);
+<i>combinerName</i>(&<i>A</i>, &<i>C</i>);
+</pre></li>
+<li><pre>
+<i>combinerName</i>(&<i>B</i>, &<i>C</i>);
+<i>combinerName</i>(&<i>A</i>, &<i>B</i>);
+</pre></li>
+</ul>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-addint">addint</a> kernel, the
+  combiner function adds the two accumulator data item values:
+<ul>
+<li><pre>
+<i>A</i> = <i>A</i> + <i>B</i>
+<i>A</i> = <i>A</i> + <i>C</i>
+// Same as
+//   <i>A</i> = (<i>A</i> + <i>B</i>) + <i>C</i>
+</pre></li>
+<li><pre>
+<i>B</i> = <i>B</i> + <i>C</i>
+<i>A</i> = <i>A</i> + <i>B</i>
+// Same as
+//   <i>A</i> = <i>A</i> + (<i>B</i> + <i>C</i>)
+//   <i>B</i> = <i>B</i> + <i>C</i>
+</li>
+</ul>
+Addition is associative, and so the combiner function is also.
+</p>
+</div>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-findMinAndMax">findMinAndMax</a> kernel,
+<pre>
+fMMCombiner(&<i>A</i>, &<i>B</i>)
+</pre>
+is the same as
+<pre>
+<i>A</i> = minmax(<i>A</i>, <i>B</i>)
+</pre>
+So the two sequences are
+<ul>
+<li><pre>
+<i>A</i> = minmax(<i>A</i>, <i>B</i>)
+<i>A</i> = minmax(<i>A</i>, <i>C</i>)
+// Same as
+//   <i>A</i> = minmax(minmax(<i>A</i>, <i>B</i>), <i>C</i>)
+</pre></li>
+<li><pre>
+<i>B</i> = minmax(<i>B</i>, <i>C</i>)
+<i>A</i> = minmax(<i>A</i>, <i>B</i>)
+// Same as
+//   <i>A</i> = minmax(<i>A</i>, minmax(<i>B</i>, <i>C</i>))
+//   <i>B</i> = minmax(<i>B</i>, <i>C</i>)
+</pre></li>
+<code>minmax</code> is associative, and so <code>fMMCombiner</code> is also.
+</p>
+</div>
+
+<p><strong>The accumulator function and combiner function together must obey the <i>basic
+  folding rule</i>.</strong>  That is, if <code><i>A</i></code>
+  and <code><i>B</i></code> are accumulator data items, <code><i>A</i></code> has been
+  initialized by the initializer function and may have been passed to the accumulator function
+  zero or more times, <code><i>B</i></code> has not been initialized, and <i>args</i> is
+  the list of input arguments and special arguments for a particular call to the accumulator
+  function, then the following two code sequences must set <code><i>A</i></code>
+  to <a href="#the-same">the same value</a>:</p>
+<ul>
+<li><pre>
+<i>accumulatorName</i>(&<i>A</i>, <i>args</i>);  // statement 1
+</pre></li>
+<li><pre>
+<i>initializerName</i>(&<i>B</i>);        // statement 2
+<i>accumulatorName</i>(&<i>B</i>, <i>args</i>);  // statement 3
+<i>combinerName</i>(&<i>A</i>, &<i>B</i>);       // statement 4
+</pre></li>
+</ul>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-addint">addint</a> kernel, for an input value <i>V</i>:
+<ul>
+<li>Statement 1 is the same as <code>A += <i>V</i></code></li>
+<li>Statement 2 is the same as <code>B = 0</code></li>
+<li>Statement 3 is the same as <code>B += <i>V</i></code>, which is the same as <code>B = <i>V</i></code></li>
+<li>Statement 4 is the same as <code>A += B</code>, which is the same as <code>A += <i>V</i></code></li>
+</ul>
+Statements 1 and 4 set <code><i>A</i></code> to the same value, and so this kernel obeys the
+basic folding rule.
+</p>
+</div>
+<div class="note">
+<p><strong>Example:</strong> In the <a href="#example-findMinAndMax">findMinAndMax</a> kernel, for an input
+  value <i>V</i> at coordinate <i>X</i>:
+<ul>
+<li>Statement 1 is the same as <code>A = minmax(A, IndexedVal(<i>V</i>, <i>X</i>))</code></li>
+<li>Statement 2 is the same as <code>B = <a href="#INITVAL">INITVAL</a></code></li>
+<li>Statement 3 is the same as
+<pre>
+B = minmax(B, IndexedVal(<i>V</i>, <i>X</i>))
+</pre>
+which, because <i>B</i> is the initial value, is the same as
+<pre>
+B = IndexedVal(<i>V</i>, <i>X</i>)
+</pre>
+</li>
+<li>Statement 4 is the same as
+<pre>
+A = minmax(A, B)
+</pre>
+which is the same as
+<pre>
+A = minmax(A, IndexedVal(<i>V</i>, <i>X</i>))
+</pre>
+</ul>
+Statements 1 and 4 set <code><i>A</i></code> to the same value, and so this kernel obeys the
+basic folding rule.
+</p>
+</div>
+
+<h3 id="calling-reduction-kernel">Calling a reduction kernel from Java code</h3>
+
+<p>For a reduction kernel named <i>kernelName</i> defined in the
+file <code><i>filename</i>.rs</code>, there are three methods reflected in the
+class <code>ScriptC_<i>filename</i></code>:</p>
+
+<pre>
+// Method 1
+public <i>javaFutureType</i> reduce_<i>kernelName</i>(Allocation ain1, <i>&hellip;,</i>
+                                        Allocation ain<i>N</i>);
+
+// Method 2
+public <i>javaFutureType</i> reduce_<i>kernelName</i>(Allocation ain1, <i>&hellip;,</i>
+                                        Allocation ain<i>N</i>,
+                                        Script.LaunchOptions sc);
+
+// Method 3
+public <i>javaFutureType</i> reduce_<i>kernelName</i>(<i><a href="#devec">devecSiIn1Type</a></i>[] in1, &hellip;,
+                                        <i><a href="#devec">devecSiInNType</a></i>[] in<i>N</i>);
+</pre>
+
+<p>Here are some examples of calling the <a href="#example-addint">addint</a> kernel:</p>
+<pre>
+ScriptC_example script = new ScriptC_example(mRenderScript);
+
+// 1D array
+//   and obtain answer immediately
+int input1[] = <i>&hellip;</i>;
+int sum1 = script.reduce_addint(input1).get();  // Method 3
+
+// 2D allocation
+//   and do some additional work before obtaining answer
+Type.Builder typeBuilder =
+  new Type.Builder(RS, Element.I32(RS));
+typeBuilder.setX(<i>&hellip;</i>);
+typeBuilder.setY(<i>&hellip;</i>);
+Allocation input2 = createTyped(RS, typeBuilder.create());
+<i>populateSomehow</i>(input2);  // fill in input Allocation with data
+script.result_int result2 = script.reduce_addint(input2);  // Method 1
+<i>doSomeAdditionalWork</i>(); // might run at same time as reduction
+int sum2 = result2.get();
+</pre>
+
+<p><strong>Method 1</strong> has one input {@link android.renderscript.Allocation} argument for
+  every input argument in the kernel's <a href="#accumulator-function">accumulator
+    function</a>. The RenderScript runtime checks to ensure that all of the input Allocations
+  have the same dimensions and that the {@link android.renderscript.Element} type of each of
+  the input Allocations matches that of the corresponding input argument of the accumulator
+  function's prototype. If any of these checks fail, RenderScript throws an exception. The
+  kernel executes over every coordinate in those dimensions.</p>
+
+<p><strong>Method 2</strong> is the same as Method 1 except that Method 2 takes an additional
+  argument <code>sc</code> that can be used to limit the kernel execution to a subset of the
+  coordinates.</p>
+
+<p><strong><a id="reduce-method-3">Method 3</a></strong> is the same as Method 1 except that
+  instead of taking Allocation inputs it takes Java array inputs. This is a convenience that
+  saves you from having to write code to explicitly create an Allocation and copy data to it
+  from a Java array. <em>However, using Method 3 instead of Method 1 does not increase the
+  performance of the code</em>. For each input array, Method 3 creates a temporary
+  1-dimensional Allocation with the appropriate {@link android.renderscript.Element} type and
+  {@link android.renderscript.Allocation#setAutoPadding} enabled, and copies the array to the
+  Allocation as if by the appropriate <code>copyFrom()</code> method of {@link
+  android.renderscript.Allocation}. It then calls Method 1, passing those temporary
+  Allocations.</p>
+<p class="note"><strong>NOTE:</strong> If your application will make multiple kernel calls with
+  the same array, or with different arrays of the same dimensions and Element type, you may improve
+  performance by explicitly creating, populating, and reusing Allocations yourself, instead of
+  by using Method 3.</p>
+<p><strong><i><a id="javaFutureType">javaFutureType</a></i></strong>,
+  the return type of the reflected reduction methods, is a reflected
+  static nested class within the <code>ScriptC_<i>filename</i></code>
+  class. It represents the future result of a reduction
+  kernel run. To obtain the actual result of the run, call
+  the <code>get()</code> method of that class, which returns a value
+  of type <i>javaResultType</i>. <code>get()</code> is <a href="#asynchronous-model">synchronous</a>.</p>
+
+<pre>
+public class ScriptC_<i>filename</i> extends ScriptC {
+  public static class <i>javaFutureType</i> {
+    public <i>javaResultType</i> get() { &hellip; }
+  }
+}
+</pre>
+
+<p><strong><i>javaResultType</i></strong> is determined from the <i>resultType</i> of the
+  <a href="#outconverter-function">outconverter function</a>. Unless <i>resultType</i> is an
+  unsigned type (scalar, vector, or array), <i>javaResultType</i> is the directly corresponding
+  Java type. If <i>resultType</i> is an unsigned type and there is a larger Java signed type,
+  then <i>javaResultType</i> is that larger Java signed type; otherwise, it is the directly
+  corresponding Java type. For example:</p>
+<ul>
+<li>If <i>resultType</i> is <code>int</code>, <code>int2</code>, or <code>int[15]</code>,
+  then <i>javaResultType</i> is <code>int</code>, <code>Int2</code>,
+  or <code>int[]</code>. All values of <i>resultType</i> can be represented
+  by <i>javaResultType</i>.</li>
+<li>If <i>resultType</i> is <code>uint</code>, <code>uint2</code>, or <code>uint[15]</code>,
+  then <i>javaResultType</i> is <code>long</code>, <code>Long2</code>,
+  or <code>long[]</code>.  All values of <i>resultType</i> can be represented
+  by <i>javaResultType</i>.</li>
+<li>If <i>resultType</i> is <code>ulong</code>, <code>ulong2</code>,
+  or <code>ulong[15]</code>, then <i>javaResultType</i>
+  is <code>long</code>, <code>Long2</code>, or <code>long[]</code>. There are certain values
+  of <i>resultType</i> that cannot be represented by <i>javaResultType</i>.</li>
+</ul>
+
+<p><strong><i>javaFutureType</i></strong> is the future result type corresponding
+  to the <i>resultType</i> of the <a href="#outconverter-function">outconverter
+  function</a>.</p>
+<ul>
+<li>If <i>resultType</i> is not an array type, then <i>javaFutureType</i>
+  is <code>result_<i>resultType</i></code>.</li>
+<li>If <i>resultType</i> is an array of length <i>Count</i> with members of type <i>memberType</i>,
+  then <i>javaFutureType</i> is <code>resultArray<i>Count</i>_<i>memberType</i></code>.</li>
+</ul>
+
+<p>For example:</p>
+
+<pre>
+public class ScriptC_<i>filename</i> extends ScriptC {
+  // for kernels with int result
+  public static class result_int {
+    public int get() { &hellip; }
+  }
+
+  // for kernels with int[10] result
+  public static class resultArray10_int {
+    public int[] get() { &hellip; }
+  }
+
+  // for kernels with int2 result
+  //   note that the Java type name "Int2" is not the same as the script type name "int2"
+  public static class result_int2 {
+    public Int2 get() { &hellip; }
+  }
+
+  // for kernels with int2[10] result
+  //   note that the Java type name "Int2" is not the same as the script type name "int2"
+  public static class resultArray10_int2 {
+    public Int2[] get() { &hellip; }
+  }
+
+  // for kernels with uint result
+  //   note that the Java type "long" is a wider signed type than the unsigned script type "uint"
+  public static class result_uint {
+    public long get() { &hellip; }
+  }
+
+  // for kernels with uint[10] result
+  //   note that the Java type "long" is a wider signed type than the unsigned script type "uint"
+  public static class resultArray10_uint {
+    public long[] get() { &hellip; }
+  }
+
+  // for kernels with uint2 result
+  //   note that the Java type "Long2" is a wider signed type than the unsigned script type "uint2"
+  public static class result_uint2 {
+    public Long2 get() { &hellip; }
+  }
+
+  // for kernels with uint2[10] result
+  //   note that the Java type "Long2" is a wider signed type than the unsigned script type "uint2"
+  public static class resultArray10_uint2 {
+    public Long2[] get() { &hellip; }
+  }
+}
+</pre>
+
+<p>If <i>javaResultType</i> is an object type (including an array type), each call
+  to <code><i>javaFutureType</i>.get()</code> on the same instance will return the same
+  object.</p>
+
+<p>If <i>javaResultType</i> cannot represent all values of type <i>resultType</i>, and a
+  reduction kernel produces an unrepresentible value,
+  then <code><i>javaFutureType</i>.get()</code> throws an exception.</p>
+
+<h4 id="devec">Method 3 and <i>devecSiInXType</i></h4>
+
+<p><strong><i>devecSiInXType</i></strong> is the Java type corresponding to
+  the <i>inXType</i> of the corresponding argument of
+  the <a href="#accumulator-function">accumulator function</a>. Unless <i>inXType</i> is an
+  unsigned type or a vector type, <i>devecSiInXType</i> is the directly corresponding Java
+  type. If <i>inXType</i> is an unsigned scalar type, then <i>devecSiInXType</i> is the
+  Java type directly corresponding to the signed scalar type of the same
+  size. If <i>inXType</i> is a signed vector type, then <i>devecSiInXType</i> is the Java
+  type directly corresponding to the vector component type. If <i>inXType</i> is an unsigned
+  vector type, then <i>devecSiInXType</i> is the Java type directly corresponding to the
+  signed scalar type of the same size as the vector component type. For example:</p>
+<ul>
+<li>If <i>inXType</i> is <code>int</code>, then <i>devecSiInXType</i>
+  is <code>int</code>.</li>
+<li>If <i>inXType</i> is <code>int2</code>, then <i>devecSiInXType</i>
+  is <code>int</code>. The array is a <em>flattened</em> representation: It has twice as
+  many <em>scalar</em> Elements as the Allocation has 2-component <em>vector</em>
+  Elements. This is the same way that the <code>copyFrom()</code> methods of {@link
+  android.renderscript.Allocation} work.</li>
+<li>If <i>inXType</i> is <code>uint</code>, then <i>deviceSiInXType</i>
+  is <code>int</code>. A signed value in the Java array is interpreted as an unsigned value of
+  the same bitpattern in the Allocation. This is the same way that the <code>copyFrom()</code>
+  methods of {@link android.renderscript.Allocation} work.</li>
+<li>If <i>inXType</i> is <code>uint2</code>, then <i>deviceSiInXType</i>
+  is <code>int</code>. This is a combination of the way <code>int2</code> and <code>uint</code>
+  are handled: The array is a flattened representation, and Java array signed values are
+  interpreted as RenderScript unsigned Element values.</li>
+</ul>
+
+<p>Note that for <a href="#reduce-method-3">Method 3</a>, input types are handled differently
+than result types:</p>
+
+<ul>
+<li>A script's vector input is flattened on the Java side, whereas a script's vector result is not.</li>
+<li>A script's unsigned input is represented as a signed input of the same size on the Java
+  side, whereas a script's unsigned result is represented as a widened signed type on the Java
+  side (except in the case of <code>ulong</code>).</li>
+</ul>
+
+<h3 id="more-example">More example reduction kernels</h3>
+
+<pre id="dot-product">
+#pragma rs reduce(dotProduct) \
+  accumulator(dotProductAccum) combiner(dotProductSum)
+
+// Note: No initializer function -- therefore,
+// each accumulator data item is implicitly initialized to 0.0f.
+
+static void dotProductAccum(float *accum, float in1, float in2) {
+  *accum += in1*in2;
+}
+
+// combiner function
+static void dotProductSum(float *accum, const float *val) {
+  *accum += *val;
+}
+</pre>
+
+<pre>
+// Find a zero Element in a 2D allocation; return (-1, -1) if none
+#pragma rs reduce(fz2) \
+  initializer(fz2Init) \
+  accumulator(fz2Accum) combiner(fz2Combine)
+
+static void fz2Init(int2 *accum) { accum->x = accum->y = -1; }
+
+static void fz2Accum(int2 *accum,
+                     int inVal,
+                     int x /* special arg */,
+                     int y /* special arg */) {
+  if (inVal==0) {
+    accum->x = x;
+    accum->y = y;
+  }
+}
+
+static void fz2Combine(int2 *accum, const int2 *accum2) {
+  if (accum2->x >= 0) *accum = *accum2;
+}
+</pre>
+
+<pre>
+// Note that this kernel returns an array to Java
+#pragma rs reduce(histogram) \
+  accumulator(hsgAccum) combiner(hsgCombine)
+
+#define BUCKETS 256
+typedef uint32_t Histogram[BUCKETS];
+
+// Note: No initializer function --
+// therefore, each bucket is implicitly initialized to 0.
+
+static void hsgAccum(Histogram *h, uchar in) { ++(*h)[in]; }
+
+static void hsgCombine(Histogram *accum,
+                       const Histogram *addend) {
+  for (int i = 0; i < BUCKETS; ++i)
+    (*accum)[i] += (*addend)[i];
+}
+
+// Determines the mode (most frequently occurring value), and returns
+// the value and the frequency.
+//
+// If multiple values have the same highest frequency, returns the lowest
+// of those values.
+//
+// Shares functions with the histogram reduction kernel.
+#pragma rs reduce(mode) \
+  accumulator(hsgAccum) combiner(hsgCombine) \
+  outconverter(modeOutConvert)
+
+static void modeOutConvert(int2 *result, const Histogram *h) {
+  uint32_t mode = 0;
+  for (int i = 1; i < BUCKETS; ++i)
+    if ((*h)[i] > (*h)[mode]) mode = i;
+  result->x = mode;
+  result->y = (*h)[mode];
+}
+</pre>
diff --git a/docs/html/guide/topics/resources/complex-xml-resources.jd b/docs/html/guide/topics/resources/complex-xml-resources.jd
index 66dcb58..ebf7bc3 100644
--- a/docs/html/guide/topics/resources/complex-xml-resources.jd
+++ b/docs/html/guide/topics/resources/complex-xml-resources.jd
@@ -93,8 +93,7 @@
         &lt;/vector&gt;
     <strong>&lt;aapt:attr /&gt;</strong>
 
-    &lt;target
-        android:name="rotationGroup" /&gt;
+    &lt;target android:name="rotationGroup"&gt;
         <strong>&lt;aapt:attr name="android:animation" &gt;</strong>
             &lt;objectAnimator
                 android:duration="6000"
@@ -102,6 +101,7 @@
                 android:valueFrom="0"
                 android:valueTo="360" /&gt;
         <strong>&lt;aapt:attr&gt;</strong>
+    &lt;/target&gt;
 &lt;/animated-vector&gt;
 </pre>
 </dd>
diff --git a/docs/html/preview/features/icu4j-framework.jd b/docs/html/guide/topics/resources/icu4j-framework.jd
similarity index 92%
rename from docs/html/preview/features/icu4j-framework.jd
rename to docs/html/guide/topics/resources/icu4j-framework.jd
index 839c077..e7cbe72 100644
--- a/docs/html/preview/features/icu4j-framework.jd
+++ b/docs/html/guide/topics/resources/icu4j-framework.jd
@@ -30,14 +30,16 @@
 
 <p>
   ICU4J is an open-source, widely used set of Java libraries providing Unicode
-  and globalization support for software applications. Android N
-  exposes a subset of the ICU4J APIs in the Android framework for app developers
+  and globalization support for software applications. Starting in Android 7.0
+  (API level 24), Android
+  exposes a subset of the ICU4J APIs for app developers
   to use under the {@code android.icu} package. These APIs use
   localization data present on the device. As a result, you can reduce your APK
   footprint by not compiling the ICU4J libraries into your APK; instead, you can
   simply call out to them in the framework. (In this case, you may want to provide
   <a href="{@docRoot}google/play/publishing/multiple-apks.html">multiple versions
-  of your APK</a>, so users running versions of Android lower than Android N
+  of your APK</a>, so users running versions of Android lower than
+  Android 7.0 (API level 24)
   can download a version of the app that contains the ICU4J libraries.)
 </p>
 
@@ -51,17 +53,17 @@
 <h2 id="relation">Relationship to ICU4J</h2>
 
 <p>
-  Android N exposes a subset of the ICU4J APIs via the
+  Android exposes a subset of the ICU4J APIs via the
   <code>android.icu</code> package, rather than <code>com.ibm.icu</code>. The
   Android framework may choose not to
-  expose ICU4J APIs for various reasons; for example, Android N does not expose
+  expose ICU4J APIs for various reasons; for example, Android does not expose
   some deprecated APIs or those that the ICU team have not yet declared as
   stable. As the ICU team deprecates APIs in the future, Android will also mark
   them as deprecated but will continue to include them.
 </p>
 
 <p class="table-caption"><strong>Table 1.</strong> ICU and CLDR versions used
-  in Android N.</p>
+  in Android].</p>
 <table>
 <tr>
 <th>Android API level</th>
@@ -69,7 +71,7 @@
 <th>CLDR version</th>
 </tr>
 <tr>
-<td>Android N</td>
+<td>Android 7.0 (API level 24)</td>
 <td>56</td>
 <td>28</td>
 </tr>
diff --git a/docs/html/preview/features/multilingual-support.jd b/docs/html/guide/topics/resources/multilingual-support.jd
similarity index 62%
rename from docs/html/preview/features/multilingual-support.jd
rename to docs/html/guide/topics/resources/multilingual-support.jd
index ff21b52..8d8484b 100644
--- a/docs/html/preview/features/multilingual-support.jd
+++ b/docs/html/guide/topics/resources/multilingual-support.jd
@@ -18,25 +18,21 @@
 </div>
 </div>
 
-<p>Android N provides enhanced support for multilingual users,
-allowing them to select multiple locales in settings. Android N
+<p>Starting in Android 7.0 (API level 24),
+Android provides enhanced support for multilingual users,
+allowing them to select multiple locales in settings. Android
 provides this capability by greatly expanding the number of locales supported
-and changing the way the system resolves resources. The new method of resolving
-resources is more robust and designed to be compatible with existing APKs, but
-you should take extra care to spot any unexpected behavior. For example, you
-should test to make sure that your app defaults to the expected language. Also,
-if your app supports multiple languages, you should ensure that this support works as
-intended. Finally, you should try to ensure that your app gracefully handles
-languages that you didn't explicitly design it to support.</p>
+and changing the way the system resolves resources.</p>
 
-<p>This document starts by explaining the resource resolution strategy prior to
-Android N. Next, it describes Android N's improved
-resource-resolution strategy. Last, it explains how to take advantage of
+<p>This document starts by explaining the resource resolution strategy in
+versions of Android lower than 7.0 (API level 24). Next, it describes
+the improved resource-resolution strategy in Android 7.0.
+Last, it explains how to take advantage of
 the expanded number of locales to support more multilingual users.</p>
 
 <h2 id="preN">Challenges in Resolving Language Resources</h2>
 
-<p>Prior to Android N, Android could not always successfully
+<p>Prior to Android 7.0, Android could not always successfully
  match app and system locales.</p>
 
  <p>For example, assume that you have the following situation:</p>
@@ -88,15 +84,17 @@
 
 <p>In this example, the system displays English strings without
 knowing whether the user can understand English. This behavior is pretty common
-today. Android N should substantially reduce the frequency
-of outcomes like this one.</p>
+today.</p>
 
 <h2 id="postN">Improvements to Resource-Resolution Strategy</h2>
-<p>Android N brings more robust resource resolution, and
-finds better fallbacks automatically. However, to speed up resolution and improve
+<p>Android 7.0 (API level 24) brings more robust resource resolution, and
+ finds better fallbacks automatically. However, to speed up resolution and
+ improve
  maintainability, you should store resources in the most common parent dialect.
- For example, if you were storing Spanish resources in the {@code es-US} directory
- before, move them into the {@code es-419} directory, which contains Latin American Spanish.
+ For example, if you were storing Spanish resources in the {@code es-US}
+ directory
+ before, move them into the {@code es-419} directory, which contains Latin
+ American Spanish.
  Similarly, if you have resource strings in a folder named {@code en-GB}, rename
  the folder to {@code en-001} (international English), because the most common
  parent for <code>en-GB</code> strings is {@code en-001}.
@@ -105,8 +103,8 @@
 
 <h3>Resource resolution examples</h3>
 
-<p>With Android N, the case described in <strong>Table 1</strong> is resolved
-differently:</p>
+<p>With versions of Android greater than 7.0, the case described in
+	<strong>Table 1</strong> is resolved differently:</p>
 
 <p class="table-caption" id="t-improved-res">
 <strong>Table 2.</strong> An improved resolution strategy for when there is no
@@ -142,7 +140,8 @@
 
 <p>Now the user gets French resources instead of English. This example also shows
  why you should store French strings in {@code fr} rather than {@code fr_FR}
- for Android N. Here the course of action is to match the closest parent dialect,
+ for Android 7.0 or higher. Here the course of action is
+ to match the closest parent dialect,
  making resolution faster and more predictable.</p>
 
 <p>In addition to this improved resolution logic, Android now offers more
@@ -184,38 +183,48 @@
 </tr>
 
 </table>
-<p>The user still gets a language they understand, even though the app doesn’t
-support French.</p>
+<p>
+  The user still gets a language they understand, even though the app doesn’t
+  support French.
+</p>
 
 
 <h2 id="design">Designing your App to Support Additional Locales</h2>
 <h3>LocaleList API</h3>
 
-<p>Android N adds a new API {@code LocaleList.getDefault()}
-that lets apps directly query the list of languages a user has specified. This API
-allows you to create more sophisticated
- app behavior and better-optimized display of content. For example, Search
+<p>
+  Starting with Android 7.0 (API level 24), Android exposes the
+  {@code LocaleList.getDefault()} API
+  that lets apps directly query the list of languages a user has specified. This API
+  allows you to create more sophisticated
+  app behavior and better-optimized display of content. For example, Search
   can show results in multiple languages based on user’s settings.  Browser apps
   can avoid offering to translate pages in a language the user already knows,
-  and keyboard apps can auto-enable all appropriate layouts. </p>
+  and keyboard apps can auto-enable all appropriate layouts.
+</p>
 
 <h3>Formatters</h3>
 
-<p>Up through Android 6.0 (API level 23), Android supported only one or two locales
- for many common languages
-(en, es, ar, fr, ru). Because there were only a few variants of each language,
-apps could get away with storing some numbers and dates as hard coded strings
-in resource files.  However, with Android's broadened set of supported locales,
-there can be
-significant differences in formats for dates, times, currencies, and similar
-information even within a single locale. Hard-coding your formats can produce a
-confusing experience for end users.  Therefore, when developing for Android N
-make sure to use formatters instead of hard coding numbers and date strings.</p>
+<p>
+  Up through Android 6.0 (API level 23), Android supported only one or
+  two locales
+  for many common languages
+  (en, es, ar, fr, ru). Because there were only a few variants of each language,
+  apps could get away with storing some numbers and dates as hard coded strings
+  in resource files.  However, with Android's broadened set of supported
+  locales, there can be
+  significant differences in formats for dates, times, currencies, and similar
+  information even within a single locale. Hard-coding your formats can produce
+  a confusing experience for end users.
+  Therefore, when developing for Android 7.0 or higher versions,
+  make sure to use formatters instead of hard coding numbers and date strings.</p>
 
-<p>A prime example is Arabic, whose support Android N expands from
-one {@code ar_EG} to 27 Arabic locales. These locales can share most resources,
-but some prefer ASCII digits, while others prefer native digits. For example,
-when you want to create a sentence with a digit variable, such as
-"Choose a 4 digit pin", use formatters as shown below:</p>
+<p>
+  For example, Android 7.0 and higher includes support for
+  27 Arabic locales. These locales can share most resources,
+  but some prefer ASCII digits, while others prefer native digits. For example,
+  when you want to create a sentence with a digit variable, such as
+  "Choose a 4 digit pin", use formatters as shown below:
+</p>
 
 <pre> format(locale, "Choose a %d-digit PIN", 4)</pre>
diff --git a/docs/html/guide/topics/resources/runtime-changes.jd b/docs/html/guide/topics/resources/runtime-changes.jd
index 2e6f9b7..3444e16 100644
--- a/docs/html/guide/topics/resources/runtime-changes.jd
+++ b/docs/html/guide/topics/resources/runtime-changes.jd
@@ -17,6 +17,8 @@
     <li><a href="accessing-resources.html">Accessing Resources</a></li>
     <li><a href="http://android-developers.blogspot.com/2009/02/faster-screen-orientation-change.html">Faster
         Screen Orientation Change</a></li>
+    <li><a href="{@docRoot}guide/topics/ui/multi-window.html#lifecycle">
+      Multi-Window Lifecycle</a></li>
   </ol>
 </div>
 </div>
diff --git a/docs/html/guide/topics/ui/layout/grid.jd b/docs/html/guide/topics/ui/layout/grid.jd
index 31f9b9c..cc53651 100644
--- a/docs/html/guide/topics/ui/layout/grid.jd
+++ b/docs/html/guide/topics/ui/layout/grid.jd
@@ -23,17 +23,32 @@
 
 <img src="{@docRoot}images/ui/gridlayout.png" alt="" />
 
-<p>{@link android.widget.TableLayout} positions its children into rows
-    and columns. TableLayout containers do not display border lines for their rows, columns,
-    or cells. The table will have as many columns as the row with the most cells. A table can leave
-cells empty, but cells cannot span columns, as they can in HTML.</p>
-<p>{@link android.widget.TableRow} objects are the child views of a TableLayout
-(each TableRow defines a single row in the table).
-Each row has zero or more cells, each of which is defined by any kind of other View. So, the cells of a row may be
-composed of a variety of View objects, like ImageView or TextView objects.
-A cell may also be a ViewGroup object (for example, you can nest another TableLayout as a cell).</p>
-<p>The following sample layout has two rows and two cells in each. The accompanying screenshot shows the
-result, with cell borders displayed as dotted lines (added for visual effect). </p>
+<p>
+  {@link android.widget.TableLayout} positions its children into rows and
+  columns. TableLayout containers do not display border lines for their rows,
+  columns, or cells. The table will have as many columns as the row with the
+  most cells. A table can leave cells empty. Cells can span multiple columns,
+  as they can in HTML. You can span columns by using the <code>span</code>
+  field in the {@link android.widget.TableRow.LayoutParams} class.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> Cells cannot span multiple rows.
+</p>
+
+<p>
+  {@link android.widget.TableRow} objects are the child views of a TableLayout
+  (each TableRow defines a single row in the table). Each row has zero or more
+  cells, each of which is defined by any kind of other View. So, the cells of
+  a row may be composed of a variety of View objects, like ImageView or
+  TextView objects. A cell may also be a ViewGroup object (for example, you
+  can nest another TableLayout as a cell).
+</p>
+<p>
+  The following sample layout has two rows and two cells in each. The
+  accompanying screenshot shows the result, with cell borders displayed as
+  dotted lines (added for visual effect).
+</p>
 
 <table class="columns">
     <tr>
diff --git a/docs/html/preview/features/multi-window.jd b/docs/html/guide/topics/ui/multi-window.jd
similarity index 77%
rename from docs/html/preview/features/multi-window.jd
rename to docs/html/guide/topics/ui/multi-window.jd
index ca5bd0d..704391f 100644
--- a/docs/html/preview/features/multi-window.jd
+++ b/docs/html/guide/topics/ui/multi-window.jd
@@ -17,6 +17,8 @@
       </ol>
     <h2>See Also</h2>
       <ol>
+        <li><a href="{@docRoot}training/tv/playback/picture-in-picture.html">Adding
+          Picture-in-Picture</a></li>
         <li><a class="external-link"
           href="https://github.com/googlesamples/android-MultiWindowPlayground">Multi-Window
           Playground sample app</a></li>
@@ -28,7 +30,7 @@
 </div>
 
 <p>
-  Android N adds support for displaying more than one app at the
+  Android 7.0 adds support for displaying more than one app at the
   same time. On handheld devices, two apps can run side-by-side or
   one-above-the-other in <em>split-screen</em> mode. On TV devices, apps can
   use <em>picture-in-picture</em> mode to continue video playback while users
@@ -36,7 +38,7 @@
 </p>
 
 <p>
-  If you build your app with the N Preview SDK, you can configure how your app
+  If your app targets Android 7.0 (API level 24) or higher, you can configure how your app
   handles multi-window display. For example, you can specify your activity's
   minimum allowable dimensions. You can also disable multi-window display for
   your app, ensuring that the system only shows your app in full-screen
@@ -46,20 +48,20 @@
 <h2 id="overview">Overview</h2>
 
 <p>
-  Android N allows several apps to share the screen at once. For
+  Android 7.0 allows several apps to share the screen at once. For
   example, a user could split the screen, viewing a web page on the left side
   while composing an email on the right side. The user experience depends on
   the device:
 </p>
 
 <ul>
-  <li>Handheld devices running Android N offer split-screen
+  <li>Handheld devices running Android 7.0 offer split-screen
   mode. In this mode, the system fills the screen with two apps, showing them
   either side-by-side or one-above-the-other. The user can drag the dividing
   line separating the two to make one app larger and the other smaller.
   </li>
 
-  <li>On Nexus Player running Android N, apps can put themselves
+  <li>On TV devices, apps can put themselves
   in <a href="picture-in-picture.html">picture-in-picture mode</a>, allowing
   them to continue showing content while the user browses or interacts with
   other apps.
@@ -72,9 +74,9 @@
   </li>
 </ul>
 
-<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650"
-    srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
-    {@docRoot}preview/images/mw-splitscreen_2x.png 2x,"
+<img src="{@docRoot}images/android-7.0/mw-splitscreen.png" alt="" width="650"
+    srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
+    {@docRoot}images/android-7.0/mw-splitscreen_2x.png 2x,"
     id="img-split-screen" />
 <p class="img-caption">
   <strong>Figure 1.</strong> Two apps running side-by-side in split-screen mode.
@@ -100,9 +102,7 @@
 <p>
   Users can <a href="{@docRoot}guide/topics/ui/drag-drop.html">drag and
   drop</a> data from one activity to another while the activities are sharing
-  the screen. (Previously, users could only drag and drop data within a single
-  activity.)
-</p>
+  the screen.
 
 <h2 id="lifecycle">Multi-Window Lifecycle</h2>
 
@@ -163,7 +163,7 @@
 <h2 id="configuring">Configuring Your App for Multi-Window Mode</h2>
 
 <p>
-  If your app targets Android N, you can configure how and
+  If your app targets API level 24 or higher, you can configure how and
   whether your app's activities support multi-window display. You can set
   attributes in your manifest to control both size and layout.
   A root activity's attribute settings apply to all activities
@@ -173,8 +173,8 @@
 </p>
 
 <p class="note">
-  <strong>Note:</strong> If you build a multi-orientation app with a version of the
-  SDK lower than Android N, and the user uses the app in
+  <strong>Note:</strong> If you build a multi-orientation app that targets API
+  level 23 or lower, and the user uses the app in
   multi-window mode, the system forcibly resizes the app. The system presents a
   dialog box warning the user that the app may behave unexpectedly. The system
   does <em>not</em> resize fixed-orientation apps; if
@@ -183,10 +183,13 @@
 </p>
 
 <h4 id="resizeableActivity">android:resizeableActivity</h4>
+
 <p>
-  Set this attribute in your manifest's <code>&lt;activity&gt;</code> or
-  <code>&lt;application&gt;</code> node to enable or disable multi-window
-  display:
+  Set this attribute in your manifest's <a href=
+  "{@docRoot}guide/topics/manifest/activity-element"><code>&lt;activity&gt;</code></a>
+  or <a href=
+  "{@docRoot}guide/topics/manifest/application-element"><code>&lt;application&gt;</code></a>
+  element to enable or disable multi-window display:
 </p>
 
 <pre>
@@ -202,16 +205,19 @@
 </p>
 
 <p>
-  If your app targets Android N, but you do not specify a value
+  If your app targets API level 24, but you do not specify a value
   for this attribute, the attribute's value defaults to true.
 </p>
 
 <h4 id="supportsPictureInPicture">android:supportsPictureInPicture</h4>
 
 <p>
-  Set this attribute in your manifest's <code>&lt;activity&gt;</code> node to
-  indicate whether the activity supports picture-in-picture display. This
-  attribute is ignored if <code>android:resizeableActivity</code> is false.
+  Set this attribute in your manifest's <a href=
+  "{@docRoot}guide/topics/manifest/activity-element"><code>&lt;activity&gt;</code></a>
+  node to indicate whether the activity supports <a href=
+  "{@docRoot}training/tv/playback/picture-in-picture.jd">Picture-in-Picture</a>
+  display. This attribute is ignored if <code>android:resizeableActivity</code>
+  is false.
 </p>
 
 <pre>
@@ -221,7 +227,7 @@
 <h3 id="layout">Layout attributes</h3>
 
 <p>
-  With Android N, the <code>&lt;layout&gt;</code> manifest element
+  With Android 7.0, the <code>&lt;layout&gt;</code> manifest element
   supports several attributes that affect how an activity behaves in
   multi-window mode:
 </p>
@@ -283,8 +289,8 @@
 <h2 id="running">Running Your App in Multi-Window Mode</h2>
 
 <p>
-  Android N offers new functionality to support apps that can run
-  in multi-window mode.
+  Beginning with Android 7.0, the system offers functionality to support apps
+  that can run in multi-window mode.
 </p>
 
 <h3 id="disabled-features">Disabled features in multi-window mode</h3>
@@ -309,15 +315,13 @@
 <h3 id="change-notification">Multi-window change notification and querying</h3>
 
 <p>
-  The following new methods have been added to the {@link android.app.Activity}
-  class to support multi-window display. For details on each method, see the
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
-  Reference</a>.
+  {@link android.app.Activity} offers the following methods to support
+  multi-window display.
 </p>
 
 <dl>
   <dt>
-    <code>Activity.isInMultiWindowMode()</code>
+    {@link android.app.Activity#isInMultiWindowMode isInMultiWindowMode()}
   </dt>
 
   <dd>
@@ -325,12 +329,14 @@
   </dd>
 
   <dt>
-    <code>Activity.isInPictureInPictureMode()</code>
+    {@link android.app.Activity#isInPictureInPictureMode
+    isInPictureInPictureMode()}
   </dt>
 
   <dd>
-    Call to find out if the activity is in picture-in-picture mode.
-
+    Call to find out if the activity is in <a href=
+    "{@docRoot}training/tv/playback/picture-in-picture.jd">picture-in-picture</a>
+    mode.
     <p class="note">
       <strong>Note:</strong> Picture-in-picture mode is a special case of
       multi-window mode. If <code>myActivity.isInPictureInPictureMode()</code>
@@ -340,7 +346,8 @@
   </dd>
 
   <dt>
-    <code>Activity.onMultiWindowModeChanged()</code>
+    {@link android.app.Activity#onMultiWindowModeChanged
+    onMultiWindowModeChanged()}
   </dt>
 
   <dd>
@@ -351,7 +358,8 @@
   </dd>
 
   <dt>
-    <code>Activity.onPictureInPictureModeChanged()</code>
+    {@link android.app.Activity#onPictureInPictureModeChanged
+    onPictureInPictureModeChanged()}
   </dt>
 
   <dd>
@@ -363,17 +371,21 @@
 </dl>
 
 <p>
-  There are also {@link android.app.Fragment} versions of each of these
-  methods, for example <code>Fragment.isInMultiWindowMode()</code>.
+  The {@link android.app.Fragment} class exposes versions of many of these
+  methods, for example {@link android.app.Fragment#onMultiWindowModeChanged
+  Fragment.onMultiWindowModeChanged()}.
 </p>
 
 <h3 id="entering-pip">Entering picture-in-picture mode</h3>
 
 <p>
-  To put an activity in picture-in-picture mode, call the new method
-  <code>Activity.enterPictureInPictureMode()</code>. This method has no effect if
-  the device does not support picture-in-picture mode. For more information,
-  see the <a href="picture-in-picture.html">Picture-in-Picture</a> documentation.
+  To put an activity in picture-in-picture mode, call {@link
+  android.app.Activity#enterPictureInPictureMode
+  Activity.enterPictureInPictureMode()}. This method has no effect if the
+  device does not support picture-in-picture mode. For more information, see
+  the <a href=
+  "{@docRoot}training/tv/playback/picture-in-picture.jd">Picture-in-Picture</a>
+  documentation.
 </p>
 
 <h3 id="launch">Launch New Activities in Multi-Window Mode</h3>
@@ -381,8 +393,8 @@
 <p>
   When you launch a new activity, you can hint to the system that the new
   activity should be displayed adjacent to the current one, if possible. To do
-  this, use the flag
-  <code>Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT</code>. Passing
+  this, use the intent flag
+  {@link android.content.Intent#FLAG_ACTIVITY_LAUNCH_ADJACENT}. Passing
   this flag requests the following behavior:
 </p>
 
@@ -400,7 +412,8 @@
 <p>
   If a device is in freeform mode and you are launching a new activity, you can
   specify the new activity's dimensions and screen location by calling
-  <code>ActivityOptions.setLaunchBounds()</code>. This method has no effect if
+  {@link android.app.ActivityOptions#setLaunchBounds
+  ActivityOptions.setLaunchBounds()}. This method has no effect if
   the device is not in multi-window mode.
 </p>
 
@@ -416,22 +429,15 @@
 <p>
   Users can <a href="{@docRoot}guide/topics/ui/drag-drop.html">drag and
   drop</a> data from one activity to another while the two activities are
-  sharing the screen. (Previously, users could only drag and drop data within a
-  single activity.) For this reason, you may want to add drag and drop
+  sharing the screen. (Prior to Android 7.0, users could only drag and drop data
+  within a single activity.) For this reason, you may want to add drag and drop
   functionality to your app if your app does not currently support it.
 </p>
 
-<p>
-  The N Preview SDK extends the <a href=
-  "{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a>
-  package to support cross-app drag and drop. For details on the following
-  classes and methods, see the <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N
-  Preview SDK Reference</a>.
-</p>
 
 <dl>
   <dt>
-    <code>android.view.DropPermissions</code>
+    {@link android.view.DragAndDropPermissions}
   </dt>
 
   <dd>
@@ -440,20 +446,20 @@
   </dd>
 
   <dt>
-    <code>View.startDragAndDrop()</code>
+    {@link android.view.View#startDragAndDrop View.startDragAndDrop()}
   </dt>
 
   <dd>
-    New alias for {@link android.view.View#startDrag View.startDrag()}. To
-    enable cross-activity drag and drop, pass the new flag
-    <code>View.DRAG_FLAG_GLOBAL</code>. If you need to give URI permissions to
-    the recipient activity, pass the new flags
-    <code>View.DRAG_FLAG_GLOBAL_URI_READ</code> or
-    <code>View.DRAG_FLAG_GLOBAL_URI_WRITE</code>, as appropriate.
+    Alias for {@link android.view.View#startDrag View.startDrag()}. To enable
+    cross-activity drag and drop, pass the flag {@link
+    android.view.View#DRAG_FLAG_GLOBAL}. If you need to give URI permissions to
+    the recipient activity, pass the flags {@link
+    android.view.View#DRAG_FLAG_GLOBAL_URI_READ} or {@link
+    android.view.View#DRAG_FLAG_GLOBAL_URI_WRITE}, as appropriate.
   </dd>
 
   <dt>
-    <code>View.cancelDragAndDrop()</code>
+    {@link android.view.View#cancelDragAndDrop View.cancelDragAndDrop()}
   </dt>
 
   <dd>
@@ -462,7 +468,7 @@
   </dd>
 
   <dt>
-    <code>View.updateDragShadow()</code>
+    {@link android.view.View#updateDragShadow View.updateDragShadow()}
   </dt>
 
   <dd>
@@ -471,7 +477,8 @@
   </dd>
 
   <dt>
-    <code>Activity.requestDragAndDropPermissions()</code>
+    {@link android.app.Activity#requestDragAndDropPermissions
+    Activity.requestDragAndDropPermissions()}
   </dt>
 
   <dd>
@@ -483,29 +490,29 @@
 <h2 id="testing">Testing Your App's Multi-Window Support</h2>
 
 <p>
-  Whether or not you update your app for Android N, you should
+  Whether or not your app targets API level 24 or higher, you should
   verify how it behaves in multi-window mode in case a user tries to launch it
-  in multiwindow mode on a device running Android N.
+  in multi-window mode on a device running Android 7.0 or higher.
 </p>
 
 <h3 id="configuring">Configuring a Test Device</h3>
 
 <p>
-  If you install Android N on a device, split-screen mode is
-  automatically supported.
+  If a device runs Android 7.0 or higher, it automatically supports split-screen
+  mode.
 </p>
 
-<h3 id="test-non-n">If your app was not built with the N Preview SDK</h3>
+<h3 id="test-non-n">If your app targets API level 23 or lower</h3>
 
 <p>
-  If you did not build your app with the N Preview SDK and the user attempts to use
-  the app in multi-window mode, the system forcibly resizes the app unless the app
-  declares a fixed orientation.
+  If your app targets API level 23 or lower and the user attempts to use
+  the app in multi-window mode, the system forcibly resizes the app unless the
+  app declares a fixed orientation.
 </p>
 
 <p>
   If your app does not declare a fixed orientation, you should launch your app
-  on a device running Android N and attempt to put the app in
+  on a device running Android 7.0 or higher and attempt to put the app in
   split-screen mode. Verify that the user experience is
   acceptable when the app is forcibly resized.
 </p>
@@ -519,7 +526,7 @@
 <h3 id="test-mw">If you support multi-window mode</h3>
 
 <p>
-  If you built your app with the N Preview SDK and have not disabled
+  If your app targets API level 24 or higher and does not disable
   multi-window support, verify the following behavior under both split-screen
   and freeform modes.
 </p>
@@ -593,7 +600,7 @@
 <p>
   If you disabled multi-window support by setting
   <code>android:resizableActivity="false"</code>, you should launch your app on
-  a device running Android N and attempt to put the app in
+  a device running Android 7.0 or higher and attempt to put the app in
   freeform and split-screen modes. Verify that when you do so, the app remains
   in full-screen mode.
 </p>
diff --git a/docs/html/guide/topics/ui/notifiers/notifications.jd b/docs/html/guide/topics/ui/notifiers/notifications.jd
index 6cd63f3..09dd5f4 100644
--- a/docs/html/guide/topics/ui/notifiers/notifications.jd
+++ b/docs/html/guide/topics/ui/notifiers/notifications.jd
@@ -21,6 +21,8 @@
     <ol>
       <li><a href="#Updating">Updating notifications</a></li>
       <li><a href="#Removing">Removing notifications</a></li>
+      <li><a href="#direct">Replying to notifications</a></li>
+      <li><a href="#bundle">Bundling notifications</a></li>
     </ol>
   </li>
   <li><a href="#NotificationResponse">Preserving Navigation when Starting an Activity</a>
@@ -37,12 +39,18 @@
   </li>
   <li><a href="#metadata">Notification Metadata</a></li>
   <li><a href="#Heads-up">Heads-up Notifications</a></li>
-  <li><a href="#lockscreenNotification">Lock Screen Notifications</a></li>
+  <li><a href="#lockscreenNotification">Lock Screen Notifications</a>
     <ol>
       <li><a href="#visibility">Setting Visibility</a></li>
       <li><a href="#controllingMedia">Controlling Media Playback on the Lock Screen</a></li>
     </ol>
-  <li><a href="#CustomNotification">Custom Notification Layouts</a></li>
+  </li>
+  <li><a href="#CustomNotification">Customizing Notifications</a>
+    <ol>
+      <li><a href="#custom">Custom Views</a></li>
+      <li><a href="#style">Messaging Style</a></li>
+    </ol>
+  </li>
 </ol>
 
     <h2>Key classes</h2>
@@ -60,7 +68,7 @@
 <h2>See also</h2>
 <ol>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Android Design: Notifications</a>
+        <a href="https://material.google.com/patterns/notifications.html">Material Design: Notifications</a>
     </li>
 </ol>
 </div>
@@ -97,7 +105,7 @@
 The material design changes introduced in Android 5.0 (API level 21) are of particular
 importance, and you should review the <a href="{@docRoot}training/material/index.html">Material
 Design</a> training for more information. To learn how to design notifications and their interactions,
-read the <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> design guide.</p>
+read the <a href="https://material.google.com/patterns/notifications.html">Notifications</a> design guide.</p>
 
 <h2 id="CreateNotification">Creating a Notification</h2>
 
@@ -184,7 +192,7 @@
 </p>
 <p> For information about setting an appropriate priority level, see "Correctly
     set and manage notification priority" in the <a
-    href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design
+    href="https://material.google.com/patterns/notifications.html">Notifications</a> Design
     guide.
 </p>
 <!-- ------------------------------------------------------------------------------------------ -->
@@ -323,7 +331,7 @@
     For example, Gmail notifies the user that new emails have arrived by increasing its count of
     unread messages and by adding a summary of each email to the notification. This is called
     "stacking" the notification; it's described in more detail in the
-    <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design guide.
+    <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design guide.
 </p>
 <p class="note">
     <strong>Note:</strong> This Gmail feature requires the "inbox" expanded layout, which is part
@@ -394,6 +402,305 @@
         all of the notifications you previously issued.
     </li>
 </ul>
+
+<!--------------------------------------------------------------- -->
+<h2 id="direct">Replying to notifications</h2>
+
+<p>
+  Starting in Android 7.0 (API level 24),
+  users can respond directly to text messages or update task lists
+  from within the notification
+  dialog. On a handheld, the inline reply action appears as an additional
+  button
+  displayed in the notification. When a user replies via keyboard, the system
+  attaches the text response to the intent
+  you had specified for the notification action and sends the intent to your
+  handheld app.
+</p>
+
+<img id="fig-reply-button" src="{@docRoot}images/android-7.0/inline-reply.png"
+  srcset="{@docRoot}images/android-7.0/inline-reply.png 1x,
+  {@docRoot}images/android-7.0/inline-reply_2x.png 2x"
+  width="400">
+<p class="img-caption">
+  <strong>Figure 1.</strong> The <strong>Reply</strong> action button.
+</p>
+
+<h3>Adding inline reply actions</h3>
+
+<p>To create a notification action that supports direct reply:
+</p>
+
+<ol>
+<li>Create an instance of {@link android.support.v4.app.RemoteInput.Builder}
+  that you can add to your notification
+action. This class's constructor accepts a string that the system uses as the key
+ for the text input. Later, your handheld app uses that key to retrieve the text
+  of the input.
+
+<pre>
+// Key for the string that's delivered in the action's intent.
+private static final String KEY_TEXT_REPLY = "key_text_reply";
+String replyLabel = getResources().getString(R.string.reply_label);
+RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
+        .setLabel(replyLabel)
+        .build();
+</pre>
+</li>
+<li>Attach the {@link android.support.v4.app.RemoteInput}
+ object to an action using <code>addRemoteInput()</code>.
+
+<pre>
+// Create the reply action and add the remote input.
+Notification.Action action =
+        new Notification.Action.Builder(R.drawable.ic_reply_icon,
+                getString(R.string.label), replyPendingIntent)
+                .addRemoteInput(remoteInput)
+                .build();
+</pre>
+</li>
+
+<li>Apply the action to a notification and issue the notification.
+
+<pre>
+// Build the notification and add the action.
+Notification newMessageNotification =
+        new Notification.Builder(mContext)
+                .setSmallIcon(R.drawable.ic_message)
+                .setContentTitle(getString(R.string.title))
+                .setContentText(getString(R.string.content))
+                .addAction(action))
+                .build();
+
+// Issue the notification.
+NotificationManager notificationManager =
+        NotificationManager.from(mContext);
+notificationManager.notify(notificationId, newMessageNotification);
+
+</pre>
+</li>
+
+</ol>
+
+
+<p> The system prompts the user to input a response when they trigger the
+notification action. </p>
+
+<img id="fig-user-input" src="{@docRoot}images/android-7.0/inline-type-reply.png"
+    srcset="{@docRoot}images/android-7.0/inline-type-reply.png 1x,
+    {@docRoot}images/android-7.0/inline-type-reply_2x.png 2x"
+    width="300">
+<p class="img-caption">
+  <strong>Figure 2.</strong> The user inputs text from the notification shade.
+</p>
+
+<h3>
+  Retrieving user input from the inline reply
+</h3>
+
+<p>
+  To receive user input from the notification interface to the activity you
+  declared in the reply action's intent:
+</p>
+
+<ol>
+  <li>Call {@link android.support.v4.app.RemoteInput#getResultsFromIntent
+  getResultsFromIntent()} by passing the notification action’s intent as the
+  input parameter. This method returns a {@link android.os.Bundle} that
+  contains the text response.
+
+    <pre>
+Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
+</pre>
+  </li>
+
+  <li>Query the bundle using the result key (provided to the {@link
+  android.support.v4.app.RemoteInput.Builder} constructor). You can complete
+  this process and retrieve the input text by creating a method, as in the
+  following code snippet:
+
+    <pre>
+// Obtain the intent that started this activity by calling
+// Activity.getIntent() and pass it into this method to
+// get the associated string.
+
+private CharSequence getMessageText(Intent intent) {
+    Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
+    if (remoteInput != null) {
+        return remoteInput.getCharSequence(KEY_TEXT_REPLY);
+    }
+    return null;
+ }
+</pre>
+  </li>
+
+  <li>Build and issue another notification, using the same notification ID that
+    you provided for the previous notification. The progress indicator
+    disappears from the notification interface to inform users of a successful
+    reply. When working with this new notification, use the context that gets
+    passed to the receiver's {@code onReceive()} method.
+
+    <pre>
+// Build a new notification, which informs the user that the system
+// handled their interaction with the previous notification.
+Notification repliedNotification =
+        new Notification.Builder(context)
+                .setSmallIcon(R.drawable.ic_message)
+                .setContentText(getString(R.string.replied))
+                .build();
+
+// Issue the new notification.
+NotificationManager notificationManager =
+        NotificationManager.from(context);
+notificationManager.notify(notificationId, repliedNotification);
+</pre>
+  </li>
+</ol>
+
+<p>
+  For interactive apps, such as chats, you can include additional
+  context when handling retrieved text. For example, these apps could show
+  multiple lines of chat history. When the user responds via {@link
+  android.support.v4.app.RemoteInput}, you can update the reply history
+  using the {@code setRemoteInputHistory()} method.
+</p>
+
+<p>
+  The notification must be either updated or cancelled after the app has
+  received remote input. When the user replies to a remote update
+  using Direct Reply,
+  do not cancel the notification. Instead, update the notification
+  to display the user's reply.
+  For notifications using {@code MessagingStyle}, you should add
+  the reply as the latest message. When using other templates, you can
+  append the user's reply to the remote-input history.
+</p>
+
+<!-------------------------------------------------------------------------- -->
+
+<h2 id="bundle">Bundling notifications</h2>
+
+<p>
+  Starting in Android 7.0 (API level 24),
+  Android provides developers with a new way to represent
+  a queue of notifications: <i>bundled notifications</i>. This is similar to the
+  <a href="{@docRoot}training/wearables/notifications/stacks.html">Notification
+  Stacks</a> feature in Android Wear. For example, if your app
+  creates notifications
+  for received messages, when more than one message is received, bundle the
+  notifications together as a single group. You can
+  use the {@link android.support.v4.app.NotificationCompat.Builder#setGroup
+  Builder.setGroup()} method to bundle similar notifications.</p>
+
+<p>
+  A notification group imposes a hierarchy on the notifications comprising it.
+  At the top of that hierarchy is a parent notification that displays summary
+  information for the group. The user can progressively
+  expand the notification group, and the system shows more information as the
+  user drills deeper. When the user expands the bundle, the system reveals more
+  information for all its child notifications; when the user
+  expands one of those notifications, the system reveals its entire content.
+</p>
+
+<img id="fig-bundles" src="{@docRoot}images/android-7.0/bundles.png"
+  srcset="{@docRoot}images/android-7.0/bundles.png 1x,
+          {@docRoot}images/android-7.0/bundles_2x.png 2x"
+  width="300">
+<p class="img-caption">
+  <strong>Figure 3.</strong> The user can progressively expand the notification
+  group.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> If the same app sends four or more notifications
+  and does not specify a grouping, the
+  system automatically groups them together.
+</p>
+
+<p>To learn how to add notifications to a group, see
+<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Add
+Each Notification to a Group</a>.</p>
+
+
+<h3 id="best-practices">Best practices for bundled notifications</h3>
+<p>This section provides guidelines about when to use notification groups instead
+of the {@link android.app.Notification.InboxStyle InboxStyle}
+notifications available in Android 6.0 and previous versions.</p>
+
+<h3>When to use bundled notifications</h3>
+
+<p>You should use notification groups only if all of the following conditions are
+true for your use case:</p>
+
+<ul>
+  <li>The child notifications are complete notifications and can be displayed
+   individually without the need for a group summary.</li>
+  <li>There is a benefit to surfacing the child notifications individually. For
+  example:
+  </li>
+  <ul>
+    <li>They are actionable, with actions specific to each child.</li>
+    <li>There is more information to the child that the user wants to read.</li>
+  </ul>
+</ul>
+
+<p>Examples of good use cases for notification groups include: a messaging app
+displaying a list of incoming messages, or an email app displaying a list of
+received emails.</p>
+
+<p>
+Examples of cases where a single notification is preferable
+ include individual messages from a single person, or a list representation of
+ single-line text items. You can use
+({@link android.app.Notification.InboxStyle InboxStyle} or
+{@link android.app.Notification.BigTextStyle BigTextStyle}) to accomplish
+this.
+</p>
+
+<h3 id ="post">Displaying bundled notifications</h3>
+
+<p>
+  The app should always post a group summary, even if the group contains just a
+  single child. The system will suppress the summary and directly display the
+  child notification if it only contains a single notification. This ensures
+  that the system can provide a consistent experience when the user swipes away
+  children of a group.
+</p>
+
+<h3>Peeking notifications</h3>
+
+<p>While the system usually displays child notifications as a group, you can set
+ them to temporarily appear as
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#Heads-up">
+ heads-up notifications</a>. This feature is especially useful because it allows
+  immediate access to the most recent child and the actions associated with it.
+</p>
+
+
+<h3>Backwards compatibility</h3>
+
+<p>
+  Both notification groups and remote input have been a part of the {@link
+  android.app.Notification} API since Android 5.0 (API level 21) to support
+  Android Wear devices. If you've already built notifications with these APIs,
+  the only action you must take is to verify that the app behavior corresponds
+  to the guidelines described above, and to consider implementing {@code
+  setRemoteInputHistory()}.
+</p>
+
+<p>
+  In order to support backward compatibility, the same APIs are available with
+  the support library's {@link android.support.v4.app.NotificationCompat}
+  class, allowing you to build notifications that works on versions of Android
+  less than 5.0 (API level 21).
+  On handhelds and tablets, users only see the summary notification,
+  so an app should still have an inbox style or an equivalent notification
+  representative for the whole information content of the group. As Android
+  Wear devices allow users to see all child notifications even on older
+  platform levels, you should build child notifications regardless of API
+  level.
+</p>
+
 <!-- ------------------------------------------------------------------------------------------ -->
 <!-- ------------------------------------------------------------------------------------------ -->
 <h2 id="NotificationResponse">Preserving Navigation when Starting an Activity</h2>
@@ -886,35 +1193,38 @@
 
 <h3 id="controllingMedia">Controlling Media Playback on the Lock Screen</h3>
 
-<p>In Android 5.0 (API level 21) the lock screen no longer displays media controls
-based on the {@link android.media.RemoteControlClient}, which is now deprecated. Instead, use the
-{@link android.app.Notification.MediaStyle} template with the
-{@link android.app.Notification.Builder#addAction(android.app.Notification.Action) addAction()}
-method, which converts actions into clickable icons.</p>
+<p>
+  In Android 5.0 (API level 21) the lock screen no longer displays media
+  controls based on the {@link android.media.RemoteControlClient}, which is
+  now deprecated. Instead, use the {@link
+  android.support.v7.app.NotificationCompat.MediaStyle} template with the
+  {@link
+  android.support.v4.app.NotificationCompat.Builder#addAction(android.support.v4.app.NotificationCompat.Action)
+  addAction()} method, which converts actions into clickable icons.
+</p>
 
-<p class="note"><strong>Note:</strong> The template and the
-{@link android.app.Notification.Builder#addAction(android.app.Notification.Action) addAction()}
-method are not included in the support library, so these features run in Android 5.0 and higher
-only.</p>
-
-<p>To display media playback controls on the lock screen in Android 5.0, set the visibility
-to {@link android.support.v4.app.NotificationCompat#VISIBILITY_PUBLIC}, as described above. Then add
-the actions and set the {@link android.app.Notification.MediaStyle} template, as described in the
-following sample code:</p>
+<p>
+  To display media playback controls on the lock screen in Android 5.0, set
+  the visibility to {@link
+  android.support.v4.app.NotificationCompat#VISIBILITY_PUBLIC}, as described
+  above. Then add the actions and set the {@link
+  android.support.v7.app.NotificationCompat.MediaStyle} template, as described
+  in the following sample code:
+</p>
 
 <pre>
-Notification notification = new Notification.Builder(context)
+Notification notification = new NotificationCompat.Builder(context)
     // Show controls on lock screen even when user hides sensitive content.
-    .setVisibility(Notification.VISIBILITY_PUBLIC)
+    .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
     .setSmallIcon(R.drawable.ic_stat_player)
     // Add media control buttons that invoke intents in your media service
     .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0
     .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent)  // #1
     .addAction(R.drawable.ic_next, "Next", nextPendingIntent)     // #2
     // Apply the media style template
-    .setStyle(new Notification.MediaStyle()
-    .setShowActionsInCompactView(1 /* #1: pause button */)
-    .setMediaSession(mMediaSession.getSessionToken())
+    .setStyle(new NotificationCompat.MediaStyle()
+        .setShowActionsInCompactView(1 /* #1: pause button */)
+        .setMediaSession(mMediaSession.getSessionToken()))
     .setContentTitle("Wonderful music")
     .setContentText("My Awesome Band")
     .setLargeIcon(albumArtBitmap)
@@ -984,3 +1294,69 @@
     standard notification layout text. If you use the same style in applications that target Android
     2.3 or higher, you'll ensure that your text is visible against the display background.
 </p>
+
+<!-- ------------------------------------------------------------------------ -->
+<h3 id="custom"> Custom Views</h3>
+<p>
+  Starting from Android 7.0 (API level 24),
+  you can customize notification views and
+  still obtain system decorations like notification headers, actions, and
+  expandable layouts.
+</p>
+
+<p>To enable this capability, Android provides the following APIs to style your
+  custom view:</p>
+
+<dl>
+<dt>
+{@code DecoratedCustomViewStyle()}</dt>
+<dd> Styles notifications other than media
+notifications.</dd>
+<dt>
+{@code DecoratedMediaCustomViewStyle()}</dt>
+<dd> Styles media notifications.</dd>
+</dl>
+
+<p>To use this API, call the {@code setStyle()} method, passing to it
+the desired custom view style.</p>
+
+<p>This snippet shows how to construct a custom notification object with the
+{@code DecoratedCustomViewStyle()} method.</p>
+
+<pre>
+Notification notification = new Notification.Builder()
+           .setSmallIcon(R.drawable.ic_stat_player)
+           .setLargeIcon(albumArtBitmap))
+           .setCustomContentView(contentView);
+           .setStyle(new Notification.DecoratedCustomViewStyle())
+           .build();
+
+</pre>
+
+<!-- ----------------------------------------------------------------------- -->
+
+<h3 id="style">Messaging Style</h3>
+<p>
+  Starting in Android 7.0 (API level 24),
+  Android provides an API for customizing the style of a notification.
+  Using the <code>MessagingStyle</code> class, you can change several of the
+  labels displayed on the notification, including the conversation title,
+  additional messages, and the content view for the notification.
+</p>
+
+<p>
+  The following code snippet demonstrates how to customize a notification's
+  style using the <code>MessagingStyle</code> class.
+</p>
+
+<pre>
+  Notification notification = new Notification.Builder()
+             .setStyle(new Notification.MessagingStyle("Me")
+                 .setConversationTitle("Team lunch")
+                 .addMessage("Hi", timestamp1, null) // Pass in null for user.
+                 .addMessage("What's up?", timestamp2, "Coworker")
+                 .addMessage("Not much", timestamp3, null)
+                 .addMessage("How about lunch?", timestamp4, "Coworker"))
+             .build();
+</pre>
+
diff --git a/docs/html/guide/topics/ui/notifiers/toasts.jd b/docs/html/guide/topics/ui/notifiers/toasts.jd
index d962727..2262a9a 100644
--- a/docs/html/guide/topics/ui/notifiers/toasts.jd
+++ b/docs/html/guide/topics/ui/notifiers/toasts.jd
@@ -76,16 +76,22 @@
 
 <h2 id="CustomToastView">Creating a Custom Toast View</h2>
 
-<p>If a simple text message isn't enough, you can create a customized layout for your
-toast notification. To create a custom layout, define a View layout,
-in XML or in your application code, and pass the root {@link android.view.View} object
-to the {@link android.widget.Toast#setView(View)} method.</p>
+<p>
+  If a simple text message isn't enough, you can create a customized layout
+  for your toast notification. To create a custom layout, define a View
+  layout, in XML or in your application code, and pass the root {@link
+  android.view.View} object to the {@link android.widget.Toast#setView(View)}
+  method.
+</p>
 
-<p>For example, you can create the layout for the toast visible in the screenshot to the right
-with the following XML (saved as <em>toast_layout.xml</em>):</p>
+<p>
+  For example, you can create the layout for the toast visible in the
+  screenshot to the right with the following XML (saved as
+  <em>layout/custom_toast.xml</em>):
+</p>
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:id="@+id/toast_layout_root"
+              android:id="@+id/custom_toast_container"
               android:orientation="horizontal"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
@@ -105,13 +111,16 @@
 &lt;/LinearLayout>
 </pre>
 
-<p>Notice that the ID of the LinearLayout element is "toast_layout_root". You must use this
-ID to inflate the layout from the XML, as shown here:</p>
+<p>
+  Notice that the ID of the LinearLayout element is "custom_toast_container".
+  You must use this ID and the ID of the XML layout file "custom_toast" to
+  inflate the layout, as shown here:
+</p>
 
 <pre>
 LayoutInflater inflater = getLayoutInflater();
 View layout = inflater.inflate(R.layout.custom_toast,
-                               (ViewGroup) findViewById(R.id.toast_layout_root));
+                (ViewGroup) findViewById(R.id.custom_toast_container));
 
 TextView text = (TextView) layout.findViewById(R.id.text);
 text.setText("This is a custom toast");
diff --git a/docs/html/preview/images/bundles.png b/docs/html/images/android-7.0/bundles.png
similarity index 100%
rename from docs/html/preview/images/bundles.png
rename to docs/html/images/android-7.0/bundles.png
Binary files differ
diff --git a/docs/html/preview/images/bundles_2x.png b/docs/html/images/android-7.0/bundles_2x.png
similarity index 100%
rename from docs/html/preview/images/bundles_2x.png
rename to docs/html/images/android-7.0/bundles_2x.png
Binary files differ
diff --git a/docs/html/preview/images/datasaver.png b/docs/html/images/android-7.0/datasaver.png
similarity index 100%
rename from docs/html/preview/images/datasaver.png
rename to docs/html/images/android-7.0/datasaver.png
Binary files differ
diff --git a/docs/html/preview/images/doze-diagram-1.png b/docs/html/images/android-7.0/doze-diagram-1.png
similarity index 100%
rename from docs/html/preview/images/doze-diagram-1.png
rename to docs/html/images/android-7.0/doze-diagram-1.png
Binary files differ
diff --git a/docs/html/preview/images/doze-diagram-2.png b/docs/html/images/android-7.0/doze-diagram-2.png
similarity index 100%
rename from docs/html/preview/images/doze-diagram-2.png
rename to docs/html/images/android-7.0/doze-diagram-2.png
Binary files differ
diff --git a/docs/html/preview/images/inline-reply.png b/docs/html/images/android-7.0/inline-reply.png
similarity index 100%
rename from docs/html/preview/images/inline-reply.png
rename to docs/html/images/android-7.0/inline-reply.png
Binary files differ
diff --git a/docs/html/preview/images/inline-reply_2x.png b/docs/html/images/android-7.0/inline-reply_2x.png
similarity index 100%
rename from docs/html/preview/images/inline-reply_2x.png
rename to docs/html/images/android-7.0/inline-reply_2x.png
Binary files differ
diff --git a/docs/html/preview/images/inline-type-reply.png b/docs/html/images/android-7.0/inline-type-reply.png
similarity index 100%
rename from docs/html/preview/images/inline-type-reply.png
rename to docs/html/images/android-7.0/inline-type-reply.png
Binary files differ
diff --git a/docs/html/preview/images/inline-type-reply_2x.png b/docs/html/images/android-7.0/inline-type-reply_2x.png
similarity index 100%
rename from docs/html/preview/images/inline-type-reply_2x.png
rename to docs/html/images/android-7.0/inline-type-reply_2x.png
Binary files differ
diff --git a/docs/html/preview/images/m-preview-timeline-crop.png b/docs/html/images/android-7.0/m-preview-timeline-crop.png
similarity index 100%
rename from docs/html/preview/images/m-preview-timeline-crop.png
rename to docs/html/images/android-7.0/m-preview-timeline-crop.png
Binary files differ
diff --git a/docs/html/preview/images/m-preview-timeline.png b/docs/html/images/android-7.0/m-preview-timeline.png
similarity index 100%
rename from docs/html/preview/images/m-preview-timeline.png
rename to docs/html/images/android-7.0/m-preview-timeline.png
Binary files differ
diff --git a/docs/html/preview/images/mw-portrait.png b/docs/html/images/android-7.0/mw-portrait.png
similarity index 100%
rename from docs/html/preview/images/mw-portrait.png
rename to docs/html/images/android-7.0/mw-portrait.png
Binary files differ
diff --git a/docs/html/preview/images/mw-splitscreen.png b/docs/html/images/android-7.0/mw-splitscreen.png
similarity index 100%
rename from docs/html/preview/images/mw-splitscreen.png
rename to docs/html/images/android-7.0/mw-splitscreen.png
Binary files differ
diff --git a/docs/html/preview/images/mw-splitscreen_2x.png b/docs/html/images/android-7.0/mw-splitscreen_2x.png
similarity index 100%
rename from docs/html/preview/images/mw-splitscreen_2x.png
rename to docs/html/images/android-7.0/mw-splitscreen_2x.png
Binary files differ
diff --git a/docs/html/preview/images/n-preview-setup.png b/docs/html/images/android-7.0/n-preview-setup.png
similarity index 100%
rename from docs/html/preview/images/n-preview-setup.png
rename to docs/html/images/android-7.0/n-preview-setup.png
Binary files differ
diff --git a/docs/html/preview/images/notifications-1.png b/docs/html/images/android-7.0/notifications-1.png
similarity index 100%
rename from docs/html/preview/images/notifications-1.png
rename to docs/html/images/android-7.0/notifications-1.png
Binary files differ
diff --git a/docs/html/preview/images/notifications-2.png b/docs/html/images/android-7.0/notifications-2.png
similarity index 100%
rename from docs/html/preview/images/notifications-2.png
rename to docs/html/images/android-7.0/notifications-2.png
Binary files differ
diff --git a/docs/html/preview/images/notifications-3.png b/docs/html/images/android-7.0/notifications-3.png
similarity index 100%
rename from docs/html/preview/images/notifications-3.png
rename to docs/html/images/android-7.0/notifications-3.png
Binary files differ
diff --git a/docs/html/preview/images/notifications-card.png b/docs/html/images/android-7.0/notifications-card.png
similarity index 100%
rename from docs/html/preview/images/notifications-card.png
rename to docs/html/images/android-7.0/notifications-card.png
Binary files differ
diff --git a/docs/html/preview/images/pip-active.png b/docs/html/images/android-7.0/pip-active.png
similarity index 100%
rename from docs/html/preview/images/pip-active.png
rename to docs/html/images/android-7.0/pip-active.png
Binary files differ
diff --git a/docs/html/preview/images/pip-button.png b/docs/html/images/android-7.0/pip-button.png
similarity index 100%
rename from docs/html/preview/images/pip-button.png
rename to docs/html/images/android-7.0/pip-button.png
Binary files differ
diff --git a/docs/html/preview/images/quicksettings.png b/docs/html/images/android-7.0/quicksettings.png
similarity index 100%
rename from docs/html/preview/images/quicksettings.png
rename to docs/html/images/android-7.0/quicksettings.png
Binary files differ
diff --git a/docs/html/preview/images/sample-activenotifications.png b/docs/html/images/android-7.0/sample-activenotifications.png
similarity index 100%
rename from docs/html/preview/images/sample-activenotifications.png
rename to docs/html/images/android-7.0/sample-activenotifications.png
Binary files differ
diff --git a/docs/html/preview/images/sample-directboot.png b/docs/html/images/android-7.0/sample-directboot.png
similarity index 100%
rename from docs/html/preview/images/sample-directboot.png
rename to docs/html/images/android-7.0/sample-directboot.png
Binary files differ
diff --git a/docs/html/preview/images/sample-messagingservice.png b/docs/html/images/android-7.0/sample-messagingservice.png
similarity index 100%
rename from docs/html/preview/images/sample-messagingservice.png
rename to docs/html/images/android-7.0/sample-messagingservice.png
Binary files differ
diff --git a/docs/html/preview/images/sample-multiwindow.png b/docs/html/images/android-7.0/sample-multiwindow.png
similarity index 100%
rename from docs/html/preview/images/sample-multiwindow.png
rename to docs/html/images/android-7.0/sample-multiwindow.png
Binary files differ
diff --git a/docs/html/preview/images/sample-scopeddirectoryaccess.png b/docs/html/images/android-7.0/sample-scopeddirectoryaccess.png
similarity index 100%
rename from docs/html/preview/images/sample-scopeddirectoryaccess.png
rename to docs/html/images/android-7.0/sample-scopeddirectoryaccess.png
Binary files differ
diff --git a/docs/html/images/android-7.0/scoped-directory-access-dont-ask.png b/docs/html/images/android-7.0/scoped-directory-access-dont-ask.png
new file mode 100644
index 0000000..6682948
--- /dev/null
+++ b/docs/html/images/android-7.0/scoped-directory-access-dont-ask.png
Binary files differ
diff --git a/docs/html/images/android-7.0/scoped-directory-access-dont-ask_2x.png b/docs/html/images/android-7.0/scoped-directory-access-dont-ask_2x.png
new file mode 100644
index 0000000..be717f9
--- /dev/null
+++ b/docs/html/images/android-7.0/scoped-directory-access-dont-ask_2x.png
Binary files differ
diff --git a/docs/html/images/android-7.0/scoped-directory-access-framed.png b/docs/html/images/android-7.0/scoped-directory-access-framed.png
new file mode 100644
index 0000000..e4d619a
--- /dev/null
+++ b/docs/html/images/android-7.0/scoped-directory-access-framed.png
Binary files differ
diff --git a/docs/html/images/android-7.0/scoped-directory-access-framed_2x.png b/docs/html/images/android-7.0/scoped-directory-access-framed_2x.png
new file mode 100644
index 0000000..fe17bce
--- /dev/null
+++ b/docs/html/images/android-7.0/scoped-directory-access-framed_2x.png
Binary files differ
diff --git a/docs/html/preview/images/scoped-folder-access-dont-ask.png b/docs/html/images/android-7.0/scoped-folder-access-dont-ask.png
similarity index 100%
rename from docs/html/preview/images/scoped-folder-access-dont-ask.png
rename to docs/html/images/android-7.0/scoped-folder-access-dont-ask.png
Binary files differ
diff --git a/docs/html/preview/images/scoped-folder-access-dont-ask_2x.png b/docs/html/images/android-7.0/scoped-folder-access-dont-ask_2x.png
similarity index 100%
rename from docs/html/preview/images/scoped-folder-access-dont-ask_2x.png
rename to docs/html/images/android-7.0/scoped-folder-access-dont-ask_2x.png
Binary files differ
diff --git a/docs/html/preview/images/scoped-folder-access-framed.png b/docs/html/images/android-7.0/scoped-folder-access-framed.png
similarity index 100%
rename from docs/html/preview/images/scoped-folder-access-framed.png
rename to docs/html/images/android-7.0/scoped-folder-access-framed.png
Binary files differ
diff --git a/docs/html/preview/images/scoped-folder-access-framed_2x.png b/docs/html/images/android-7.0/scoped-folder-access-framed_2x.png
similarity index 100%
rename from docs/html/preview/images/scoped-folder-access-framed_2x.png
rename to docs/html/images/android-7.0/scoped-folder-access-framed_2x.png
Binary files differ
diff --git a/docs/html/preview/images/screen-zoom-1.png b/docs/html/images/android-7.0/screen-zoom-1.png
similarity index 100%
rename from docs/html/preview/images/screen-zoom-1.png
rename to docs/html/images/android-7.0/screen-zoom-1.png
Binary files differ
diff --git a/docs/html/preview/images/screen-zoom-2.png b/docs/html/images/android-7.0/screen-zoom-2.png
similarity index 100%
rename from docs/html/preview/images/screen-zoom-2.png
rename to docs/html/images/android-7.0/screen-zoom-2.png
Binary files differ
diff --git a/docs/html/preview/images/studio-jdk-location.jpg b/docs/html/images/android-7.0/studio-jdk-location.jpg
similarity index 100%
rename from docs/html/preview/images/studio-jdk-location.jpg
rename to docs/html/images/android-7.0/studio-jdk-location.jpg
Binary files differ
diff --git a/docs/html/images/cards/card-notifications_2x.png b/docs/html/images/cards/card-notifications_2x.png
new file mode 100644
index 0000000..e56c1df
--- /dev/null
+++ b/docs/html/images/cards/card-notifications_2x.png
Binary files differ
diff --git a/docs/html/images/tools/sdk-manager-support-libs.png b/docs/html/images/tools/sdk-manager-support-libs.png
index 3796800..cb4cea5 100644
--- a/docs/html/images/tools/sdk-manager-support-libs.png
+++ b/docs/html/images/tools/sdk-manager-support-libs.png
Binary files differ
diff --git a/docs/html/images/topic/arc/sideload_figure_1.jpg b/docs/html/images/topic/arc/sideload_figure_1.jpg
new file mode 100644
index 0000000..8eb5085
--- /dev/null
+++ b/docs/html/images/topic/arc/sideload_figure_1.jpg
Binary files differ
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 03efa86..3ceddf2 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -857,8 +857,7 @@
       "design/index.html",
       "design/patterns/navigation.html",
       "design/patterns/actionbar.html",
-      "design/style/iconography.html",
-      "design/patterns/notifications.html"
+      "design/style/iconography.html"
     ]
   },
   "distribute/essentials/corequalityguidelines/functionality": {
@@ -1076,7 +1075,6 @@
   "distribute/getusers/notifications": {
     "title": "",
     "resources": [
-      "design/patterns/notifications.html",
       "distribute/engage/gcm.html",
       "https://play.google.com/about/developer-content-policy.html"
     ]
@@ -1181,8 +1179,7 @@
     "resources": [
       "distribute/essentials/optimizing-your-app.html",
       "distribute/tools/launch-checklist.html",
-      "distribute/googleplay/developer-console.html",
-      "design/patterns/notifications.html"
+      "distribute/googleplay/developer-console.html"
     ]
   },
   "distribute/engage/video/more": {
diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js
index 5c42277..c79ad88 100644
--- a/docs/html/jd_extras_en.js
+++ b/docs/html/jd_extras_en.js
@@ -2655,6 +2655,19 @@
     "lang": "en",
     "group": "",
     "tags": [],
+    "url": "https://material.google.com/patterns/notifications.html",
+    "timestamp": "1469639720",
+    "image": "images/cards/card-notifications_2x.png",
+    "title": "Notifications",
+    "summary": "Notifications inform your app’s users about relevant and timely events in your app.",
+    "keywords": ["notifications", "design"],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
     "url": "https://www.google.com/design/spec/usability/",
     "timestamp": null,
     "image": "images/cards/material-usability_2x.png",
@@ -2733,7 +2746,6 @@
     "type": "design",
     "category": "material design"
   },
-
   {
     "lang": "en",
     "group": "",
@@ -4672,7 +4684,7 @@
       "design/patterns/navigation.html",
       "design/patterns/actionbar.html",
       "design/style/iconography.html",
-      "design/patterns/notifications.html"
+      "https://material.google.com/patterns/notifications.html"
     ]
   },
   "distribute/essentials/corequalityguidelines/functionality": {
@@ -4869,7 +4881,7 @@
   "distribute/getusers/notifications": {
     "title": "",
     "resources": [
-      "design/patterns/notifications.html",
+      "https://material.google.com/patterns/notifications.html",
       "distribute/engage/gcm.html",
       "https://play.google.com/about/developer-content-policy.html"
     ]
@@ -4985,7 +4997,7 @@
       "distribute/essentials/optimizing-your-app.html",
       "distribute/tools/launch-checklist.html",
       "distribute/googleplay/developer-console.html",
-      "design/patterns/notifications.html"
+      "https://material.google.com/patterns/notifications.html"
     ]
   },
   "distribute/engage/video/more": {
@@ -5544,15 +5556,12 @@
     "https://medium.com/google-developers/writing-more-code-by-writing-less-code-with-android-studio-live-templates-244f648d17c7#.hczcm02du",
     ]
   },
-  "preview/landing/resources": {
+  "nougat/landing/resources": {
     "title": "",
     "resources": [
-      "preview/overview.html",
-      "preview/api-overview.html",
-      "preview/behavior-changes.html",
-      "preview/setup-sdk.html",
-      "preview/samples.html",
-      "preview/support.html"
+      "about/versions/nougat/api-overview.html",
+      "about/versions/nougat/behavior-changes.html",
+      "about/versions/nougat/samples.html",
     ]
   },
 
diff --git a/docs/html/preview/_book.yaml b/docs/html/preview/_book.yaml
deleted file mode 100644
index ad67249..0000000
--- a/docs/html/preview/_book.yaml
+++ /dev/null
@@ -1,344 +0,0 @@
-toc:
-- title: Program Overview
-  path: /preview/overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general del programa
-  - name: in-lang
-    value: Ikhtisar Program
-  - name: ja-lang
-    value: プログラム概要
-  - name: ko-lang
-    value: 프로그램 개요
-  - name: pt-br-lang
-    value: Visão geral do programa
-  - name: ru-lang
-    value: Обзор программы
-  - name: vi-lang
-    value: Tổng quan về Chương trình
-  - name: zh-cn-lang
-    value: 计划概览
-  - name: zh-tw-lang
-    value: 程式總覽
-
-- title: Support and Release Notes
-  path: /preview/support.html
-
-- title: Set Up the Preview
-  path: /preview/setup-sdk.html
-  path_attributes:
-  - name: es-lang
-    value: Configurar el SDK de la versión preliminar
-  - name: in-lang
-    value: Menyiapkan Preview
-  - name: ja-lang
-    value: Preview SDK のセットアップ
-  - name: ko-lang
-    value: 미리 보기 SDK 설정하기
-  - name: pt-br-lang
-    value: Configuração do Preview SDK
-  - name: ru-lang
-    value: Настройка пакета SDK Preview
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 设置预览版 SDK
-  - name: zh-tw-lang
-    value: 設定預覽版 SDK
-
-- title: Test on a Device
-  path: /preview/download.html
-  path_attributes:
-  - name: es-lang
-    value: Pruebe en un dispositivo
-  - name: in-lang
-    value: Menguji pada Perangkat
-  - name: ja-lang
-    value: デバイス上でテストする
-  - name: ko-lang
-    value: 기기에서 테스트
-  - name: pt-br-lang
-    value: Testar em um dispositivo
-  - name: ru-lang
-    value: Тестирование на устройстве
-  - name: vi-lang
-    value: Kiểm thử trên Thiết bị
-  - name: zh-cn-lang
-    value: 在设备上测试
-  - name: zh-tw-lang
-    value: 在裝置上測試
-
-- title: Behavior Changes
-  path: /preview/behavior-changes.html
-  path_attributes:
-  - name: es-lang
-    value: Cambios en los comportamientos
-  - name: in-lang
-    value: Perubahan Perilaku
-  - name: ja-lang
-    value: 動作の変更点
-  - name: ko-lang
-    value: 동작 변경
-  - name: pt-br-lang
-    value: Mudanças de comportamento
-  - name: ru-lang
-    value: Изменения в работе
-  - name: vi-lang
-    value: Các thay đổi Hành vi
-  - name: zh-cn-lang
-    value: 行为变更
-  - name: zh-tw-lang
-    value: 行為變更
-  section:
-  - title: Background Optimizations
-    path: /preview/features/background-optimization.html
-    path_attributes:
-    - name: es-lang
-      value: Optimizaciones en segundo plano
-    - name: in-lang
-      value: Optimisasi Latar Belakang
-    - name: ja-lang
-      value: バックグラウンド処理の最適化
-    - name: ko-lang
-      value: 백그라운드 최적화
-    - name: pt-br-lang
-      value: Otimizações em segundo plano
-    - name: ru-lang
-      value: Оптимизация фоновых процессов
-    - name: vi-lang
-      value: Tối ưu hóa Chạy ngầm
-    - name: zh-cn-lang
-      value: 后台优化
-    - name: zh-tw-lang
-      value: 背景最佳化
-  - title: Language and Locale
-    path: /preview/features/multilingual-support.html
-    path_attributes:
-    - name: es-lang
-      value: Idioma y configuración regional
-    - name: in-lang
-      value: Bahasa dan Lokal
-    - name: ja-lang
-      value: 言語とロケール
-    - name: ko-lang
-      value: 언어 및 로케일
-    - name: pt-br-lang
-      value: Idioma e localidade
-    - name: ru-lang
-      value: Язык и языковой стандарт
-    - name: vi-lang
-      value: Ngôn ngữ và Bản địa
-    - name: zh-cn-lang
-      value: 语言和区域设置
-    - name: zh-tw-lang
-      value: 語言和地區設定
-
-- title: Android N for Developers
-  path: /preview/api-overview.html
-  path_attributes:
-  - name: es-lang
-    value: Información general de la API
-  - name: in-lang
-    value: Android N untuk Pengembang
-  - name: ja-lang
-    value: API の概要
-  - name: ko-lang
-    value: API 개요
-  - name: pt-br-lang
-    value: Visão geral da API
-  - name: ru-lang
-    value: Обзор API-интерфейсов
-  - name: vi-lang
-    value: Android N cho Nhà phát triển
-  - name: zh-cn-lang
-    value: API 概览
-  - name: zh-tw-lang
-    value: API 總覽
-  section:
-  - title: Multi-Window Support
-    path: /preview/features/multi-window.html
-    path_attributes:
-    - name: es-lang
-      value: Compatibilidad con ventanas múltiples
-    - name: in-lang
-      value: Dukungan Multi-Jendela
-    - name: ja-lang
-      value: マルチ ウィンドウのサポート
-    - name: ko-lang
-      value: 다중 창 지원
-    - name: pt-br-lang
-      value: Suporte a várias janelas
-    - name: ru-lang
-      value: Поддержка многооконного режима
-    - name: vi-lang
-      value: Hỗ trợ đa cửa sổ
-    - name: zh-cn-lang
-      value: 多窗口支持
-    - name: zh-tw-lang
-      value: 多視窗支援
-  - title: Notifications
-    path: /preview/features/notification-updates.html
-    path_attributes:
-    - name: es-lang
-      value: Notificaciones
-    - name: in-lang
-      value: Pemberitahuan
-    - name: ja-lang
-      value: 通知
-    - name: ko-lang
-      value: 알림
-    - name: pt-br-lang
-      value: Notificações
-    - name: ru-lang
-      value: Уведомления
-    - name: vi-lang
-      value: Thông báo
-    - name: zh-cn-lang
-      value: 通知
-    - name: zh-tw-lang
-      value: 通知
-  - title: Data Saver
-    path: /preview/features/data-saver.html
-  - title: TV Recording
-    path: /preview/features/tv-recording-api.html
-    path_attributes:
-    - name: es-lang
-      value: Grabación de TV
-    - name: in-lang
-      value: Perekaman TV
-    - name: ja-lang
-      value: TV の録画
-    - name: ko-lang
-      value: TV 녹화
-    - name: pt-br-lang
-      value: Gravação para TV
-    - name: ru-lang
-      value: Запись ТВ
-    - name: vi-lang
-      value: Ghi lại TV
-    - name: zh-cn-lang
-      value: TV 录制
-    - name: zh-tw-lang
-      value: 電視錄製
-  - title: Key Attestation
-    path: /preview/features/key-attestation.html
-  - title: Network Security Configuration
-    path: /preview/features/security-config.html
-    path_attributes:
-    - name: es-lang
-      value: Configuración de seguridad de la red
-    - name: ja-lang
-      value: ネットワーク セキュリティ構成
-    - name: ko-lang
-      value: 네트워크 보안 구성
-    - name: pt-br-lang
-      value: Configurações de segurança de rede
-    - name: ru-lang
-      value: Конфигурация сетевой безопасности
-    - name: vi-lang
-      value: Cấu hình Bảo mật mạng
-    - name: zh-cn-lang
-      value: 网络安全配置
-    - name: zh-tw-lang
-      value: 網路安全性設定
-  - title: ICU4J Support
-    path: /preview/features/icu4j-framework.html
-    path_attributes:
-    - name: es-lang
-      value: API de ICU4J del framework de Android
-    - name: in-lang
-      value: ICU4J Android Framework API
-    - name: ja-lang
-      value: ICU4J Android フレームワーク API
-    - name: ko-lang
-      value: ICU4J Android 프레임워크 API
-    - name: pt-br-lang
-      value: APIs de estrutura do Android para ICU4J
-    - name: ru-lang
-      value: API-интерфейсы ICU4J в платформе Android
-    - name: vi-lang
-      value: API Khuôn khổ Android ICU4J
-    - name: zh-cn-lang
-      value: ICU4J Android 框架 API
-    - name: zh-tw-lang
-      value: ICU4J Android 架構 API
-  - title: Java 8 Language Features
-    path: /preview/j8-jack.html
-    path_attributes:
-    - name: es-lang
-      value: Funciones del lenguaje Java 8
-    - name: in-lang
-      value: Fitur Bahasa Java 8
-    - name: ja-lang
-      value: Java 8 の機能
-    - name: ko-lang
-      value: Java 8 언어 기능
-    - name: pt-br-lang
-      value: Recursos de linguagem do Java 8
-    - name: ru-lang
-      value: Возможности языка Java 8
-    - name: vi-lang
-      value: Tính năng của Ngôn ngữ Java 8
-    - name: zh-cn-lang
-      value: Java 8 语言功能
-    - name: zh-tw-lang
-      value: Java 8 語言功能
-  - title: Android for Work Updates
-    path: /preview/features/afw.html
-  - title: Scoped Directory Access
-    path: /preview/features/scoped-folder-access.html
-    path_attributes:
-    - name: es-lang
-      value: Acceso a directorios determinados
-    - name: ja-lang
-      value: 特定のディレクトリへのアクセス
-    - name: ko-lang
-      value: 범위가 지정된 디렉터리 액세스
-    - name: pt-br-lang
-      value: Acesso a diretórios com escopo
-    - name: ru-lang
-      value: Доступ к выделенным каталогам
-    - name: vi-lang
-      value: Truy cập Thư mục theo Phạm vi
-    - name: zh-cn-lang
-      value: 作用域目录访问
-    - name: zh-tw-lang
-      value: 限定範圍目錄存取
-
-- title: Samples
-  path: /preview/samples.html
-  path_attributes:
-  - name: es-lang
-    value: Ejemplos
-  - name: in-lang
-    value: Contoh
-  - name: ja-lang
-    value: サンプル
-  - name: ko-lang
-    value: 샘플
-  - name: pt-br-lang
-    value: Exemplos
-  - name: ru-lang
-    value: Примеры
-  - name: zh-cn-lang
-    value: 示例
-  - name: zh-tw-lang
-    value: 範例
-
-- title: License Agreement
-  path: /preview/license.html
-  path_attributes:
-  - name: es-lang
-    value: Contrato de licencia
-  - name: ja-lang
-    value: 使用許諾契約
-  - name: ko-lang
-    value: 라이선스 계약
-  - name: pt-br-lang
-    value: Contrato de licença
-  - name: ru-lang
-    value: Лицензионное соглашение
-  - name: zh-cn-lang
-    value: 许可协议
-  - name: zh-tw-lang
-    value: 授權協議
diff --git a/docs/html/preview/_project.yaml b/docs/html/preview/_project.yaml
deleted file mode 100644
index 3ec851a..0000000
--- a/docs/html/preview/_project.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-name: "Preview"
-home_url: /preview/
-description: "Android N final SDK is now available."
-content_license: cc3-apache2
-buganizer_id: 30209417
diff --git a/docs/html/preview/download-ota.jd b/docs/html/preview/download-ota.jd
deleted file mode 100644
index 65f7f9f..0000000
--- a/docs/html/preview/download-ota.jd
+++ /dev/null
@@ -1,332 +0,0 @@
-page.title=Applying a Device OTA Image
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Before downloading and installing components of
-      the Android Preview SDK, you must agree to the following terms and
-      conditions.</p>
-
-    <h2 class="norule">Terms and Conditions</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-This is the Android SDK Preview License Agreement (the “License Agreement”).
-
-1. Introduction
-
-1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
-
-1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.3 “Android-compatible” means any Android implemation that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).
-
-1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting the License Agreement
-
-2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
-
-2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
-
-2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
-
-2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
-
-3. Preview License from Google
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the Preview solely to develop applications for compatible implementations of Android.
-
-3.2 You may not use this Preview to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this Preview is not used for that purpose.
-
-3.3 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.4 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
-
-3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
-
-3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
-
-4. Use of the Preview by You
-
-4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-
-4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating the License Agreement
-
-9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
-
-9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
-(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
-(B) Google issues a final release version of the Android SDK.
-
-9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
-
-10. DISCLAIMERS
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
-
-14. General Legal Terms
-
-14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
-
-14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<p>
-  This page provides links to over-the-air (OTA) device images and describes
-  how to manually apply an OTA update to a device. This procedure may be useful
-  in recovering devices that received OTA updates through the Android Beta
-  Program and do not start up after the update is installed.
-</p>
-
-<h2 id="install-ota">Installing OTA Images</h2>
-
-<p></p>
-
-<p>To install an OTA package to a device:</p>
-
-<ol>
-  <li>Download an OTA device image from the table below.</li>
-  <li>Reboot the device into Recovery mode. For more information on putting
-    Nexus devices in this mode, see
-    <a href="https://support.google.com/nexus/answer/4596836">Reset your Nexus
-      device to factory settings</a>.
-  </li>
-  <li>On the device, select <strong>ADB sideload</strong>.</li>
-  <li>Connect the device to a computer with the Android development environment
-    loaded and the Android Debug Bridge (adb) tool installed.</li>
-  <li>Run the following command:
-    <pre>adb sideload <em>&lt;ota-package&gt;</em></pre>
-  </li>
-</ol>
-
-
-
-<h2 id="ota-images">Device OTA Images</h2>
-
-<table>
-  <tr>
-    <th scope="col">Device</th>
-    <th scope="col">Download / Checksums</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npd90g-0a874807.zip</a><br>
-      MD5: 4b83b803fac1a6eec13f66d0afc6f46e<br>
-      SHA-1: a9920bcc8d475ce322cada097d085448512635e2
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npd90g-06f5d23d.zip</a><br>
-      MD5: 513570bb3a91878c2d1a5807d2340420<br>
-      SHA-1: 2d2f40636c95c132907e6ba0d10b395301e969ed
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npd90g-5baa69c2.zip</a><br>
-      MD5: 096fe26c5d50606a424d2f3326c0477b<br>
-      SHA-1: 468d2e7aea444505513ddc183c85690c00fab0c1
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npd90g-c04785e1.zip</a><br>
-      MD5: 6aecd3b0b3a839c5ce1ce4d12187b03e<br>
-      SHA-1: 31633180635b831e59271a7d904439f278586f49
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npd90g-c56aa1b0.zip</a><br>
-      MD5: 0493fa79763d67bcdde8007299e1888d<br>
-      SHA-1: f709daf81968a1b27ed41fe40d42e0d106f3c494
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npd90g-3a0643ae.zip</a><br>
-      MD5: 9c38b6647fe5a4f2965196b7c409f0f7<br>
-      SHA-1: 77c6fb05191f0c2ae0956bae18f1c80b2f922f05
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npd90g-ec931914.zip</a><br>
-      MD5: 4c6135498ca156a9cdaf443ddfdcb2ba<br>
-      SHA-1: 297cc9a204685ef5507ec087fc7edf5b34551ce6
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npd90g-dcb0662d.zip</a><br>
-      MD5: f40ea6314a13ea6dd30d0e68098532a2<br>
-      SHA-1: 11af10b621f4480ac63f4e99189d61e1686c0865
-    </td>
-  </tr>
-
-</table>
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html/preview/download.jd b/docs/html/preview/download.jd
deleted file mode 100644
index e4db890..0000000
--- a/docs/html/preview/download.jd
+++ /dev/null
@@ -1,562 +0,0 @@
-page.title=Test on a Device
-meta.tags="preview", "nexus","system image"
-page.tags="preview", "androidn"
-page.image=images/cards/card-n-downloads_2x.png
-
-@jd:body
-
-<div style="position:relative; min-height:600px">
-
-  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
-
-    <p class="sdk-terms-intro">Before downloading and installing components of
-      the Android Preview SDK, you must agree to the following terms and
-      conditions.</p>
-
-    <h2 class="norule">Terms and Conditions</h2>
-
-    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
-This is the Android SDK Preview License Agreement (the “License Agreement”).
-
-1. Introduction
-
-1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
-
-1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.3 “Android-compatible” means any Android implemation that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).
-
-1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting the License Agreement
-
-2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
-
-2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
-
-2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
-
-2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
-
-3. Preview License from Google
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the Preview solely to develop applications for compatible implementations of Android.
-
-3.2 You may not use this Preview to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this Preview is not used for that purpose.
-
-3.3 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.4 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
-
-3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
-
-3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
-
-4. Use of the Preview by You
-
-4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-
-4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating the License Agreement
-
-9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
-
-9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
-(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
-(B) Google issues a final release version of the Android SDK.
-
-9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
-
-10. DISCLAIMERS
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
-
-14. General Legal Terms
-
-14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
-
-14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-  </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-  <div id="landing">
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-      <ol>
-        <li><a href="#device-preview">Set up a hardware device</a>
-          <ol>
-            <li><a href="#ota">Get over-the-air updates</a></li>
-            <li><a href="#flash">Manually flash a device</a></li>
-            <li><a href="#revertDevice">Uninstalling</a></li>
-          </ol>
-        </li>
-        <li><a href="#setupAVD">Set up an emulator</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  To run and test your app on the new platform you need to set up an Android N
-  runtime environment. You can do that in either of these ways:
-</p>
-
-<ul>
-  <li>Install Android N on a supported hardware device, or</li>
-  <li>Set up an Android emulator running Android N</li>
-</ul>
-
-<p>
-  If you want an environment for basic compatibility testing of your app on the
-  new platform, all you need is your current APK and a hardware device or
-  emulator. You don't necessarily need to update your full development
-  environment to do basic testing.
-</p>
-
-<p>
-  If you want to modify your app to target Android N or use new Android N APIs,
-  you need to set up a development environment that's updated to support
-  Android N. <a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for
-  Android N</a> has details.
-</p>
-
-
-<h2 id="device-preview">Set up a hardware device</h2>
-
-<p>
-  The N Developer Preview offers system updates for a range of hardware devices
-  that you can use for testing your app, from phones to tablets and TV.
-</p>
-
-<p>
-  If you have access to a supported device, you can update it to a Developer
-  Preview milestone build in one of these ways:
-</p>
-
-<ul>
-  <li>
-    <strong>Enroll the device in automatic OTA system updates</strong> through
-    the <a href="https://g.co/androidbeta">Android Beta Program</a>. Once
-    enrolled, your device will receive regular over-the-air (OTA) updates of
-    all milestone builds in the N Developer Preview. When the next version of
-    Android is released, your device will automatically update to the final
-    version. This approach is recommended because it lets you seamlessly
-    transition from your current environment, through the various releases of
-    the N Developer Preview, to the release version.
-  </li>
-
-  <li>
-    <strong>Download a Developer Preview system image and flash the
-    device</strong>. OTA updates are not provided automatically for devices
-    that you flash manually, but you can enroll those devices in Android Beta
-    Program to get OTA updates. When the next version of Android is released,
-    you can download the final device image from the <a href=
-    "https://developers.google.com/android/nexus/images" type=
-    "external-link">factory images</a> page.
-  </li>
-</ul>
-
-<h3 id="ota">Enroll the device in automatic OTA updates</h3>
-
-<p>
-  If you have access to a supported device (see the list in the Downloads
-  table), you can receive over-the-air updates to preview versions of Android
-  by enrolling that device in the <a href="https://g.co/androidbeta">Android
-  Beta Program</a>. These updates are automatically downloaded and will update
-  your device just like official system updates. When the next version of
-  Android is released, the device will automatically update to the production
-  version.
-</p>
-
-<p>
-  You can un-enroll a device at any time. The device will receive an OTA update
-  to the most recent production version of Android available for that device
-  (for example, Android 6.0 Marshmallow). The update requires a full device
-  reset, so user data on the device will be removed. Make sure to <strong>back
-  up important data</strong> before un-enrolling a device.
-</p>
-
-<p>
-  For more information and to enroll your device, see
-  the <a href="https://g.co/androidbeta">Android Beta Program</a> web site.
-</p>
-
-<p class="note"><strong>Note:</strong>
-  Un-enrolling requires a full device reset. Back up
-  important data first.
-</p>
-
-<h3 id="flash">Flashing a device manually</h3>
-
-<p>
-  At any time you can download the latest Developer Preview system image and
-  manually flash it to your device. See the table below to download the system
-  image for your test device. Manually flashing a device is useful if you need
-  precise control over the test environment or need to reinstall frequently,
-  such as for automated testing.
-</p>
-
-<!-- You can flash by ota or system image --><p>
-  Installing a system image on a device <strong>removes all data from the
-  device</strong>, so you should back up your data first.
-</p>
-
-<p>
-  After you back up your device data and download the system image below that
-  matches your device, follow the instructions at <a href=
-  "https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
-  to flash the image onto your device.
-</p>
-
-<p>
-  Manually flashed system images <strong>do not
-  automatically receive OTA updates</strong> to later Developer Preview
-  milestone builds or the final, production version. Make sure to keep your
-  environment up-to-date and flash a
-  new system image at each Developer Preview milestone.
-</p>
-
-<p>
-  If you decide you want to get OTA updates after manually flashing a device,
-  all you need to do is enroll the device in the <a href="https://g.co/androidbeta">Android
-  Beta Program</a>. You can enroll the device at any time to receive the next Preview
-  update over the air.
-</p>
-
-<table>
-  <tr>
-    <th scope="col">Device</th>
-    <th scope="col">Download / Checksums</th>
-  </tr>
-
-  <tr id="bullhead">
-    <td>Nexus 5X <br>"bullhead"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npd90g-factory-7a0ca1bc.tgz</a><br>
-      MD5: e7a9a3061335c1e0c8be2588f13290af<br>
-      SHA-1: 7a0ca1bcfa51bbefde34243603bc79c7dec214a1
-    </td>
-  </tr>
-
-  <tr id="shamu">
-    <td>Nexus 6 <br>"shamu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npd90g-factory-f7a4e3a9.tgz</a><br>
-      MD5: 2fb572ddcfca67bb1d741be97492a9ed<br>
-      SHA-1: f7a4e3a96c797827492998e855c8f9efbfc8559a
-    </td>
-  </tr>
-
-  <tr id="angler">
-    <td>Nexus 6P <br>"angler"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >angler-npd90g-factory-cd9ac81e.tgz</a><br>
-      MD5: 2370c30f3ef1d0684c1de5216a5d90fe<br>
-      SHA-1: cd9ac81ec7f4a646ac6054eecbf2ea4c4b89b054
-    </td>
-  </tr>
-
-  <tr id="volantis">
-    <td>Nexus 9 <br>"volantis"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npd90g-factory-41b55406.tgz</a><br>
-      MD5: cefa78950141da2a7c75e887717e3c8f<br>
-      SHA-1: 41b554060263a7ef16e4be8422cbd6caca26e00f
-    </td>
-  </tr>
-
-  <tr id="volantisg">
-    <td>Nexus 9G <br>"volantisg"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npd90g-factory-610492be.tgz</a><br>
-      MD5: 2f36dc0d0fab02ab78be500677ec239f<br>
-      SHA-1: 610492bedfc4127023040ecb2c89239a78a900ad
-    </td>
-  </tr>
-
-  <tr id="fugu">
-    <td>Nexus Player <br>"fugu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npd90g-factory-0fe95694.tgz</a><br>
-      MD5: f4cb48f919e4c29c631de21416c612e2<br>
-      SHA-1: 0fe95694e7bc41e4c3ac0e4438cd77102a0aa8b4
-    </td>
-  </tr>
-
-  <tr id="ryu">
-    <td>Pixel C <br>"ryu"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npd90g-factory-f4da981c.tgz</a><br>
-      MD5: d9f0e40b6c20d274831e8a7d285fd887<br>
-      SHA-1: f4da981c70576133321e2858e52fe2c990e68a75
-    </td>
-  </tr>
-
-  <tr id="seed">
-    <td>General Mobile 4G (Android One) <br>"seed"</td>
-    <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npd90g-factory-48f59c99.tgz</a><br>
-      MD5: 0ed565c509594072822d71c65b48ec8e<br>
-      SHA-1: 48f59c99ac43d1cd2f5656a283bb9868581663a8
-    </td>
-  </tr>
-
-</table>
-
-<h3 id="revertDevice">Uninstalling the Preview from a device</h3>
-
-<p>
-  If you want to uninstall the preview from a device, you can do so in one of
-  these ways: </p>
-  <ul>
-    <li><strong>Obtain a factory spec system image</strong> and then manually
-    flash it to the device.
-      <ul>
-          <li>For <strong>Nexus devices and Pixel C devices</strong>, see
-        the <a href="http://developers.google.com/android/nexus/images">Factory Images
-        for Nexus Devices</a> page for downloads. </li>
-        <li>For <strong>other devices</strong>, please contact the device manufacturer
-        directly. Alternatively, if the device is supported
-        in the Android Beta Program, you can enroll the device in the
-        program and then un-enroll it (see below).</li>
-      </ul>
-    </li>
-    <li><strong>Un-enroll the device from Android Beta Program</strong>. If the
-    device is enrolled in the <a href="https://g.co/androidbeta">Android Beta
-    Program</a>, regardless of device, you can simply un-enroll it from the program.
-  <p>
-    The device will receive an OTA update to the most recent production version
-    of Android available for that device (for example, Android 6.0 Marshmallow).
-    The update requires a full device reset, so user data on the device will be
-    removed. Make sure to <strong>back up important data</strong> before
-    un-enrolling a device.
-  </p>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong>
-  Uninstalling a Developer Preview system image prior to
-  the end of the program requires a full device reset and removes all user data
-  on the device.
-</p>
-
-
-<h2 id="setupAVD">Set up an emulator</h2>
-
-<p>To use the Android Emulator to run the Android N Preview, you need to
-download the Android N Preview SDK and create a virtual device for the
-emulator.</p>
-
-<p>First, download the Android N Preview SDK as follows (if you
-already got it while <a href="{@docRoot}preview/setup-sdk.html">setting up
-to develop for Android N</a>, you can skip this part):
-
-<ol>
-  <li>In Android Studio, open the Settings dialog
-    (<strong>File &gt; Settings</strong> on Windows/Linux, or
-    <strong>Android Studio &gt; Preferences</strong> on Mac). In the left
-    panel, select <strong>Appearance &amp; Behavior &gt;
-  System Settings &gt; Android SDK</strong>.
-
-  <li>Click the <strong>SDK Platforms</strong> tab, then select the
-  <strong>Android N Preview</strong> check box.</li>
-
-  <li>Click the <strong>SDK Tools</strong> tab, then select the
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, and <strong>Android SDK Tools</strong> check
-    boxes.
-  </li>
-
-  <li>Click <strong>OK</strong> and accept the license
-    agreements for any packages to be installed.
-  </li>
-</ol>
-
-<p>You should now have <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
-<strong>Platform-Tools 24.0.0 rc1</strong>, and <strong>SDK Tools
-25.0.9</strong>. If you do not update the SDK Tools to 25.0.9, then you won't
-be able to run the x86_64 system images for Android N.</p>
-
-
-<p>Now create a virtual device with the Android N system image:</p>
-
-<ol>
-  <li>Open the AVD Manager by selecting <strong>Tools > Android >
-    AVD Manager</strong>.</li>
-  <li>Click <strong>Create Virtual Device</strong>.</li>
-  <li>Select a device such as Nexus 5X, Nexus 6P, Nexus 9, or Android TV,
-    then click <strong>Next</strong>.</li>
-  <li>Select the <strong>N</strong> system image (with the
-    <strong>x86</strong> ABI), then click <strong>Next</strong>.
-    (Only x86 system images are currently supported with the Android Emulator
-for the Android N Preview.)
-  <li>Complete the rest of the AVD configuration and click
-    <strong>Finish</strong>.</li>
-</ol>
-
-<p>You can now launch the Android Emulator with the Android N Preview AVD.</p>
-
-<p>
-For the best experience in the Android Emulator, make sure you're using
-Android Studio 2.1 or higher, which supports <a
-href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>
-with much faster performance compared to the emulator in
-Android Studio 1.5.</p>
-
-<p>For more information about creating virtual devices, see <a href=
-  "{@docRoot}tools/devices/index.html">Managing Virtual Devices</a>.
-</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  </div><!-- landing -->
-
-</div><!-- relative wrapper -->
-
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").fadeIn('fast');
-    $("#landing").fadeOut('fast');
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-    /*
-      $("#tos").fadeOut('fast');
-      $("#landing").fadeIn('fast');
-    */
-
-      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
-
-    /*
-      location.hash = "";
-    */
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  $(window).hashchange( function(){
-    if (location.hash == "") {
-      location.reload();
-    }
-  });
-
-</script>
diff --git a/docs/html/preview/features/afw.jd b/docs/html/preview/features/afw.jd
deleted file mode 100644
index 17cd58e..0000000
--- a/docs/html/preview/features/afw.jd
+++ /dev/null
@@ -1,555 +0,0 @@
-page.title=Android for Work Updates
-page.metaDescription=New Android for Work APIs and features in Android N.
-page.keywords="android for work", "android N", "enterprise", "QR code"
-
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-      <ol>
-        <li><a href="#qr">QR Code Provisioning
-                </a></li>
-
-        <li><a href="#sec-challenge">Work Profile Security Challenge
-                </a></li>
-
-        <li><a href="#suspend">Disable Access to Apps
-                </a></li>
-
-        <li><a href="#toggle-work">Toggle Work Mode
-                </a></li>
-
-        <li><a href="#always-on-vpn">Always-On VPN
-                </a></li>
-
-        <li><a href="#contacts">Contacts Integration with Work Profile
-                </a></li>
-
-        <li><a href="#remote-reboot">Remote Reboot
-                </a></li>
-
-        <li><a href="#disable-roaming">Disable Data Roaming
-                </a></li>
-
-        <li><a href="#process-logging">Enterprise Process Logging
-                </a></li>
-
-        <li><a href="#bug-reports">Remote Bug Reports
-                </a></li>
-
-        <li><a href="#remove-cert">Remove a Client Certificate
-                </a></li>
-
-        <li><a href="#grant-cert-on-install">Grant Access to Client Certificate
-                on Installation</a></li>
-
-        <li><a href="#ui-policy">System UI Policy Transparency
-                </a></li>
-
-        <li><a href="#managed-configurations">Managed Configurations Enhancements
-                </a></li>
-
-        <li><a href="#location-off">Location Off Switch
-                </a></li>
-
-        <li><a href="#custom-provisioning">Customized Provisioning
-                </a></li>
-
-        <li><a href="#multi-wifi-ca">Multiple Wi-Fi CA Certificates
-                </a></li>
-
-        <li><a href="#custom-lock">Customized Lockscreen Message
-                </a></li>
-
-        <li><a href="#work-connectionservice">Work Profile ConnectionService
-                </a></li>
-
-        <li><a href="#lock-wp">Lock Down Wallpaper
-                </a></li>
-
-        <li><a href="#lock-user-icon">Lock Down User Icon
-                </a></li>
-
-        <li><a href="#health-monitoring">Device Health Monitoring
-                </a></li>
-
-      </ol>
-
-    <h2>See Also</h2>
-    <ul>
-      <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
-            Reference</a></li>
-    </ul>
-  </div>
-</div>
-
-<p>This document describes the new Android for Work features provided in
-Android N.</p>
-
-<h2 id="qr">QR Code Provisioning</h2>
-
-<p>
-  Android for Work now supports using QR codes to provision corporate-liable
-  devices. The setup wizard now allows you to scan a QR code to provision
-  the device.
-</p>
-
-<h2 id="sec-challenge">Work Profile Security Challenge</h2>
-
-<p>
-  Profile owners can require users to specify a security challenge for apps
-  running in the work profile. The system shows the security challenge when the
-  user attempts to open any work apps. If the user successfully completes the
-  security challenge, the system unlocks the work profile and decrypts it if
-  necessary.
-</p>
-
-<p>
-  If a profile owner sends an {@link
-  android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} intent, the
-  system prompts a user to set up a security challenge. The profile owner can
-  also send an <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> intent to
-  prompt the user to set a device lock.
-</p>
-
-<p>
-  Profile owners can choose to set the password policies for the work challenge
-  differently from the policies for other device passwords. For example, the
-  minimum length for the device challenge response can be different from the
-  length required for other passwords. Profile owners set the challenge
-  policies using the usual {@link android.app.admin.DevicePolicyManager}
-  methods, such as {@link
-  android.app.admin.DevicePolicyManager#setPasswordQuality
-  setPasswordQuality()} and {@link
-  android.app.admin.DevicePolicyManager#setPasswordMinimumLength
-  setPasswordMinimumLength()}. The profile owner can also set the device lock,
-  by using the {@link android.app.admin.DevicePolicyManager} instance returned
-  by the new <code>DevicePolicyManager.getParentProfileInstance()</code>
-  method. Additionally, profile owners can customize the credentials screen for
-  the work challenge by using the {@link android.app.admin.DevicePolicyManager}
-  class's new <code>setOrganizationColor()</code> and
-  <code>setOrganizationName()</code> methods.
-</p>
-
-<p>
-  For details on the new methods and constants, see the
-  <code>DevicePolicyManager</code> reference page in the <a
-  href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK Reference</a>.
-</p>
-
-<h2 id="suspend">Disable Access to Apps</h2>
-
-<p>
-  Device owners and profile owners can temporarily suspend access to packages
-  by calling the new <code>DevicePolicyManager.setPackagesSuspended()</code>
-  method. Owners can use the same method to re-enable those packages.
-</p>
-
-<p>
-  While a package is suspended, it cannot start activities, notifications to
-  the package are suppressed, and the app's entry in the <a
-  href="{@docRoot}guide/components/recents.html">overview screen</a> is hidden.
-  Suspended packages do not show in the <a href=
-  "{@docRoot}guide/components/recents.html">overview screen</a>, and they
-  cannot show dialogs (including toasts and snackbars). They also cannot play
-  audio or vibrate the device.
-</p>
-
-<p>
-  Launchers should apply a distinctive UI to suspended apps to show that the
-  apps aren't currently available; for example, they might render the app icon
-  in gray. Launchers can find out if an app is suspended by calling the new
-  <code>DevicePolicyManager.getPackageSuspended()</code> method.
-</p>
-
-<h2 id="toggle-work">Toggle Work Mode</h2>
-
-<p>
-  On dual-profile devices, users can toggle work mode on and off. While work
-  mode is turned off, the managed profile is temporarily shut down. Work
-  profile apps, background sync, and notifications are all disabled, including
-  the profile owner app. While the work profile is disabled, the system
-  displays a persistent status icon to remind users that they can't launch work
-  apps. The system launcher indicates that work apps and widgets are not
-  accessible.
-</p>
-
-<h2 id="always-on-vpn">Always-On VPN</h2>
-
-<p>
-  Device owners and profile owners can require that work apps always connect to
-  the network through a specified VPN. If owners set this requirement, the
-  device automatically starts that VPN at boot time.
-</p>
-
-<p>
-  Owners can require use of a VPN by calling the new
-  <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> method. To find out
-  if the owner has set a VPN requirement, call the new
-  <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> method.
-</p>
-
-<p>
-  Because the system can directly bind VPN services without app interaction,
-  VPN clients need to handle new entry points for always-on VPN. As before, you
-  can find active services by using an intent filter that matches the action
-  {@link android.net.VpnService android.net.VpnService}.
-</p>
-
-<p>
-  Users can manually set an always-on VPN client that implement {@link
-  android.net.VpnService} by using the <strong>Settings &gt; More &gt;
-  VPN</strong> screen.
-</p>
-
-<h2 id="contacts">Contacts Integration with Work Profile</h2>
-
-<p>
-  Profile owners can allow local search and directory lookup of work contacts
-  from the primary user. For example, a user can access both personal and work
-  directory contacts from their personal dialer or contacts application (if
-  permitted by their profile administrator).
-</p>
-
-<p>
-  Developers that leverage the Contact Provider can use the Enterprise Contacts
-  API to access work profile directory entries from the primary user if allowed
-  by policy:
-</p>
-
-<ul>
-  <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
-  </li>
-
-  <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
-  </li>
-</ul>
-
-<p>
-  Profile owners can control the visibility of work contacts in the primary
-  user using the following new methods:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
-  </li>
-</ul>
-
-<h2 id="remote-reboot">Remote Reboot</h2>
-
-<p>
-  Device owners can remotely reboot devices. In some cases, devices deployed in
-  public places inside enclosures can prevent access to the power button. If a
-  device needs to be rebooted, administrators can do so using the new
-  <code>DevicePolicyManager.reboot()</code> method.
-</p>
-
-<h2 id="disable-roaming">Disable Data Roaming</h2>
-
-<p>
-  Device owners can disable data roaming using the new {@link
-  android.os.UserManager} user restriction <code>DISALLOW_DATA_ROAMING</code>.
-</p>
-
-<h2 id="process-logging">Enterprise Process Logging</h2>
-
-<p>
-  Device owners can identify suspicious activity by remotely tracking device
-  activity, including app launches, adb activity, and screen unlocks. Process
-  logs don’t require user consent. To retrieve logs, device owners enable
-  device logging using <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
-</p>
-
-<p>
-  API changes include:
-</p>
-
-<ul>
-
-  <li>
-    The new class <code>android.app.admin.SecurityLog</code> and its
-    methods
-  </li>
-
-  <li>
-    <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrieveSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>List&lt;SecurityEvent&gt;
-      DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
-  </li>
-
-  <li>
-    <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
-  </li>
-</ul>
-
-<h2 id="bug-reports">Remote Bug Reports</h2>
-
-<p>
-  Device owners can remotely trigger and retrieve a bug report that contains a
-  device state dump file, which allows forensic investigation of a known
-  incident or compromised device. Due to the detailed nature of the bug report,
-  user consent is required.
-</p>
-
-<p>
-  Android N includes the following API additions to support this feature. For
-  details, see the <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
-  Reference</a>.
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.requestBugreport()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportFailed()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportShared()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
-  </li>
-
-  <li>
-    <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
-  </li>
-</ul>
-
-<h2 id="remove-cert">Remove a Client Certificate</h2>
-
-<p>
-  Profile owners and device owners can now remove client certificates that were
-  installed through {@link android.app.admin.DevicePolicyManager#installKeyPair
-  installKeyPair()} by calling the new method
-  <code>DevicePolicyManager.removeKeyPair()</code>.
-</p>
-
-<h2 id="grant-cert-on-install">Grant Access to Client Certificate on
-  Installation</h2>
-
-<p>
-  If a profile owner or device owner grants a third-party app the ability to
-  manage certificates, the app can grant itself access to certificates it
-  installs without any intervention by the owner.
-</p>
-
-<p>
-  The existing API for managing certificates is extended to include:
-</p>
-
-<ul>
-  <li><code>DevicePolicyManager.installKeyPair()</code>
-  </li>
-</ul>
-
-<h2 id="ui-policy">System UI Policy Transparency</h2>
-
-<p>
-  Policies that affect the user experience or restrict user Settings are fully
-  disclosed to the user, and profile owners and device owners can attribute the
-  policy to their company’s IT department. In addition to a consistent “Action
-  not allowed” message in Settings, IT administrators can set an
-  organization-specific support message in device settings with the following
-  new {@link android.app.admin.DevicePolicyManager} methods:
-</p>
-
-<ul>
-  <li>
-    <code>DevicePolicyManager.setShortSupportMessage()</code>
-  </li>
-
-  <li>
-    <code>DevicePolicyManager.setLongSupportMessage()</code>
-  </li>
-</ul>
-
-<h2 id="managed-configurations">Managed Configurations Enhancements</h2>
-
-<p>
-  The device or profile owner can enable another application to manage
-  configurations via the new
-  <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
-  method. The nominated application can check whether this permission has been
-  granted by calling
-  <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
-</p>
-
-<p>
-  An application nominated to manage configurations can call {@link
-  android.app.admin.DevicePolicyManager#setApplicationRestrictions
-  setApplicationRestrictions()} and {@link
-  android.app.admin.DevicePolicyManager#getApplicationRestrictions
-  getApplicationRestrictions()} for any packages within that user or profile.
-</p>
-
-<h2 id="location-off">Location Off Switch</h2>
-
-<p>
-  Users can disable location permissions for work apps while continuing to
-  access location information in their personal apps. A separate location
-  access switch in Location Settings allows users to deny location updates or
-  last-location queries for apps running in the work profile.
-</p>
-
-<p>
-  The top level location off switch disables location access for both the
-  primary profile and the managed profile.
-</p>
-
-<h2 id="custom-provisioning">Customized Provisioning</h2>
-
-<p>
-  An application can customize the profile owner and device owner provisioning
-  flows with corporate colors and logos.
-</p>
-
-<dl>
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
-  </dt>
-
-  <dd>
-    Customizes flow color.
-  </dd>
-
-  <dt>
-    <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
-  </dt>
-
-  <dd>
-    Customizes the flow with a corporate logo.
-  </dd>
-</dl>
-
-<h2 id="multi-wifi-ca">Multiple Wi-Fi CA Certificates</h2>
-
-<p>
-  Profile owners and device owners can set multiple CA certificates for a given
-  Wi-Fi configuration. When corporate Wi-Fi networks have separate CAs for
-  separate access points with the same SSID, IT administrators can include all
-  relevant CAs in the Wi-Fi configuration using the new method
-  <code>setCaCertificates()</code>.
-</p>
-
-<p>
-  APIs added are:
-</p>
-
-<ul>
-  <li>
-    <code>WifiEnterpriseConfig.setCaCertificates()</code>
-  </li>
-
-  <li>
-    <code>WifiEnterpriseConfig.getCaCertificates()</code>
-  </li>
-</ul>
-
-<h2 id="custom-lock">Customized Lockscreen Message</h2>
-
-<p>
-  Device owners can provide owner information to be shownon the lockscreen.
-  This information takes precedence over the user lock screen message (if one is
-  set). New {@link android.app.admin.DevicePolicyManager} methods are:
-</p>
-
-<ul>
-  <li>
-    <code>setDeviceOwnerLockScreenInfo()</code>
-  </li>
-
-  <li>
-    <code>getDeviceOwnerLockScreenInfo()</code>
-  </li>
-</ul>
-
-<h2 id="work-connectionservice">Work Profile ConnectionService</h2>
-
-<p>
-  Profile owners can specify a work dialer application that uses a
-  work-specific {@link android.telecom.ConnectionService} for the calling
-  backend (calling accounts). The work dialer maintains a work-only call log
-  and relies on work contacts only. Users have a consistent in-call UI
-  experience regardless of dialing application. Incoming work calls to the work
-  calling accounts are distinguished from personal incoming calls to the
-  personal calling accounts.
-</p>
-
-<p>
-  The dialer should check for the new flag
-  <code>android.telecom.Call.PROPERTY_ENTERPRISE_CALL</code> to determine if a call
-  is a work call. If a call is a work call, the dialer should indicate this,
-  such as by adding a work badge.
-</p>
-
-<h2 id="lock-wp">Lock Down Wallpaper</h2>
-
-<p>
-  A new user restriction (<code>DISALLOW_SET_WALLPAPER</code>) prevents the
-  user from changing their wallpaper. The device owner or profile owner can
-  still change the wallpaper, but they can only change the wallpaper for the
-  user or profile they control. For example, a profile owner can’t change the
-  wallpaper of the parent user, but a profile owner in the primary profile or
-  device owner can. A profile owner or device owner that wants to change the
-  wallpaper should check whether the the user or profile they manage has a
-  wallpaper ({@link android.app.WallpaperManager#isWallpaperSupported
-  isWallpaperSupported()}) and whether they are allowed to change it (with the
-  new method <code>WallpaperManager.isWallpaperSettingAllowed()</code>)
-</p>
-
-<h2 id="lock-user-icon">Lock Down User Icon</h2>
-
-<p>
-  A new user restriction (<code>DISALLOW_SET_USER_ICON</code>) prevents the
-  user from changing their user icon. The user’s device owner or profile owner
-  can still change the icon. However, a profile owner can only change the user
-  icon for the profile it controls.
-</p>
-
-<h2 id="health-monitoring">Device Health Monitoring</h2>
-
-<p>
-  A device owner or profile owner can use the new
-  <code>HardwarePropertiesManager</code> interface to retrieve information
-  about device health, such as CPU or GPU temperatures and CPU usage. The new
-  monitoring interface is especially useful for monitoring unattended devices
-  running in a remote location.
-</p>
diff --git a/docs/html/preview/features/notification-updates.jd b/docs/html/preview/features/notification-updates.jd
deleted file mode 100644
index fd65e12..0000000
--- a/docs/html/preview/features/notification-updates.jd
+++ /dev/null
@@ -1,400 +0,0 @@
-page.title=Notifications
-page.tags=notifications
-helpoutsWidget=true
-page.image=/preview/images/notifications-card.png
-
-trainingnavtop=true
-
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<!-- table of contents -->
-<h2>This document includes</h2>
-<ol>
-  <li><a href="#direct">Direct Reply</a></li>
-  <li><a href="#bundle">Bundled Notifications</a></li>
-  <li><a href="#custom">Custom Views</a></li>
-  <li><a href="#style">Messaging Style</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>Android N introduces several new APIs that allow apps to post
-notifications that are highly visible and interactive.</p>
-
-<p>Android N extends the existing {@link android.support.v4.app.RemoteInput}
-notification API to support inline replies on handsets. This feature allows users
- to quickly respond from the notification shade without visiting your app.</p>
-
-<p>
-  Android N also allows you to bundle similar notifications to
-  appear as a single notification. To make this possible, Android N uses the existing {@link
-  android.support.v4.app.NotificationCompat.Builder#setGroup
-  NotificationCompat.Builder.setGroup()} method. Users can expand each of the
-  notifications, and perform actions such as reply and dismiss on each of the
-  notifications, individually from the notification shade.
-</p>
-
-<p>Last, Android N also adds new APIs that allow you to leverage system
-decorations in your app’s customized notification views. These APIs help
-ensure that the notification views share a consistent presentation with
-standard templates.</p>
-
-<p>This document highlights some of the key changes that you should take into
- account when using the new notification features in your apps.</p>
-
-<h2 id="direct">Direct Reply</h2>
-
-<p>With the Direct Reply feature in Android N, users can quickly
-respond to text messages or update task lists directly within the notification
-interface. On a handheld, the inline reply action appears as an additional button
- attached to the notification. When a user replies via keyboard, the system attaches
-  the text response to the intent
-    you had specified for the notification action and sends the intent to your
-     handheld app.
-
-
-<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png"
-  srcset="{@docRoot}preview/images/inline-reply.png 1x,
-  {@docRoot}preview/images/inline-reply_2x.png 2x"
-  width="400">
-<p class="img-caption">
-  <strong>Figure 1.</strong> Android N adds the <strong>Reply</strong>
-  action button.
-</p>
-
-<h3>Adding inline reply actions</h3>
-
-<p>To create a notification action that supports direct reply:
-</p>
-
-<ol>
-<li>Create an instance of {@link android.support.v4.app.RemoteInput.Builder}
-  that you can add to your notification
-action. This class's constructor accepts a string that the system uses as the key
- for the text input. Later, your handheld app uses that key to retrieve the text
-  of the input.
-
-<pre>
-// Key for the string that's delivered in the action's intent.
-private static final String KEY_TEXT_REPLY = "key_text_reply";
-String replyLabel = getResources().getString(R.string.reply_label);
-RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
-        .setLabel(replyLabel)
-        .build();
-</pre>
-</li>
-<li>Attach the {@link android.support.v4.app.RemoteInput}
- object to an action using <code>addRemoteInput()</code>.
-
-<pre>
-// Create the reply action and add the remote input.
-Notification.Action action =
-        new Notification.Action.Builder(R.drawable.ic_reply_icon,
-                getString(R.string.label), replyPendingIntent)
-                .addRemoteInput(remoteInput)
-                .build();
-</pre>
-</li>
-
-<li>Apply the action to a notification and issue the notification.
-
-<pre>
-// Build the notification and add the action.
-Notification newMessageNotification =
-        new Notification.Builder(mContext)
-                .setSmallIcon(R.drawable.ic_message)
-                .setContentTitle(getString(R.string.title))
-                .setContentText(getString(R.string.content))
-                .addAction(action))
-                .build();
-
-// Issue the notification.
-NotificationManager notificationManager =
-        NotificationManager.from(mContext);
-notificationManager.notify(notificationId, newMessageNotification);
-
-</pre>
-</li>
-
-</ol>
-
-
-<p> The system prompts the user to input a response when they trigger the
-notification action. </p>
-
-<img id="fig-user-input" src="{@docRoot}preview/images/inline-type-reply.png"
-    srcset="{@docRoot}preview/images/inline-type-reply.png 1x,
-    {@docRoot}preview/images/inline-type-reply_2x.png 2x"
-    width="300">
-<p class="img-caption">
-  <strong>Figure 2.</strong> The user inputs text from the notification shade.
-</p>
-
-<h3>
-  Retrieving user input from the inline reply
-</h3>
-
-<p>
-  To receive user input from the notification interface to the activity you
-  declared in the reply action's intent:
-</p>
-
-<ol>
-  <li>Call {@link android.support.v4.app.RemoteInput#getResultsFromIntent
-  getResultsFromIntent()} by passing the notification action’s intent as the
-  input parameter. This method returns a {@link android.os.Bundle} that
-  contains the text response.
-
-    <pre>
-Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
-</pre>
-  </li>
-
-  <li>Query the bundle using the result key (provided to the {@link
-  android.support.v4.app.RemoteInput.Builder} constructor). You can complete
-  this process and retrieve the input text by creating a method, as in the
-  following code snippet:
-
-    <pre>
-// Obtain the intent that started this activity by calling
-// Activity.getIntent() and pass it into this method to
-// get the associated string.
-
-private CharSequence getMessageText(Intent intent) {
-    Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
-    if (remoteInput != null) {
-        return remoteInput.getCharSequence(KEY_TEXT_REPLY);
-    }
-    return null;
- }
-</pre>
-  </li>
-
-  <li>Build and issue another notification, using the same notification ID that
-    you provided for the previous notification. The progress indicator
-    disappears from the notification interface to inform users of a successful
-    reply. When working with this new notification, use the context that gets
-    passed to the receiver's {@code onReceive()} method.
-
-    <pre>
-// Build a new notification, which informs the user that the system
-// handled their interaction with the previous notification.
-Notification repliedNotification =
-        new Notification.Builder(context)
-                .setSmallIcon(R.drawable.ic_message)
-                .setContentText(getString(R.string.replied))
-                .build();
-
-// Issue the new notification.
-NotificationManager notificationManager =
-        NotificationManager.from(context);
-notificationManager.notify(notificationId, repliedNotification);
-</pre>
-  </li>
-</ol>
-
-<p>
-  For interactive apps, such as chats, it could be useful to include additional
-  context when handling retrieved text. For example, these apps could show
-  multiple lines of chat history. When the user responds via {@link
-  android.support.v4.app.RemoteInput}, you can update the reply history
-  using the {@code setRemoteInputHistory()} method.
-</p>
-
-<p>
-  The notification must be either updated or cancelled after the app has
-  received remote input. When the user replies to a remote update
-  using Direct Reply,
-  do not cancel the notification. Instead, update the notification to display the user's reply.
-For notifications using {@code MessagingStyle}, you should add
-the reply as the latest message. When using other templates, you can
-append the user's reply to the remote-input history.
-</p>
-
-<h2 id="bundle">Bundled Notifications</h2>
-
-<p>Android N provides developers with a new way to represent
- a queue of notifications: <i>bundled notifications</i>. This is similar to the
-  <a href="{@docRoot}training/wearables/notifications/stacks.html">Notification
-  Stacks</a> feature in Android Wear. For example, if your app creates notifications
-  for received messages, when more than one message is received, bundle the
- notifications together as a single group. You can
- use the existing {@link android.support.v4.app.NotificationCompat.Builder#setGroup
-Builder.setGroup()} method to bundle similar notifications.</p>
-
-<p>
-  A notification group imposes a hierarchy on the notifications comprising it.
-  At the top of that hierarchy is a parent notification that displays summary
-  information for the group. The user can progressively
-  expand the notification group, and the system shows more information as the
-  user drills deeper. When the user expands the bundle, the system reveals more
-  information for all its child notifications; when the user
-  expands one of those notifications, the system reveals its entire content.
-</p>
-
-<img id="fig-bundles" src="{@docRoot}preview/images/bundles.png"
-  srcset="{@docRoot}preview/images/bundles.png 1x,
-          {@docRoot}preview/images/bundles_2x.png 2x"
-  width="300">
-<p class="img-caption">
-  <strong>Figure 3.</strong> The user can progressively expand the notification
-  group.
-</p>
-
-<p class="note">
-  <strong>Note:</strong> If the same app sends four or more notifications
-  and does not specify a grouping, the
-  system automatically groups them together.
-</p>
-
-<p>To learn how to add notifications to a group, see
-<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Add
-Each Notification to a Group</a>.</p>
-
-
-<h3 id="best-practices">Best practices for bundled notifications</h3>
-<p>This section provides guidelines about when to use notification groups instead
-of the {@link android.app.Notification.InboxStyle InboxStyle}
-notifications that have been available in earlier versions of the
-Android platform.</p>
-
-<h3>When to use bundled notifications</h3>
-
-<p>You should use notification groups only if all of the following conditions are
-true for your use case:</p>
-
-<ul>
-  <li>The child notifications are complete notifications and can be displayed
-   individually without the need for a group summary.</li>
-  <li>There is a benefit to surfacing the child notifications individually. For
-  example:
-  </li>
-  <ul>
-    <li>They are actionable, with actions specific to each child.</li>
-    <li>There is more information to the child that the user wants to read.</li>
-  </ul>
-</ul>
-
-<p>Examples of good use cases for notification groups include: a messaging app
-displaying a list of incoming messages, or an email app displaying a list of
-received emails.</p>
-
-<p>
-Examples of cases where a single notification is preferable
- include individual messages from a single person, or a list representation of
- single-line text items. You can use
-({@link android.app.Notification.InboxStyle InboxStyle} or
-{@link android.app.Notification.BigTextStyle BigTextStyle}) to accomplish
-this.
-</p>
-
-<h3 id ="post">Displaying bundled notifications</h3>
-
-<p>
-  The app should always post a group summary, even if the group contains just a
-  single child. The system will suppress the summary and directly display the
-  child notification if it only contains a single notification. This ensures
-  that the system can provide a consistent experience when the user swipes away
-  children of a group.
-</p>
-
-<p class="note">
-  <strong>Note:</strong> This version of Android N does not yet
-  suppress the summary for notification groups containing a single child. This
-  functionality will be added in a later version of Android N.
-</p>
-
-<h3>Peeking notifications</h3>
-
-<p>While the system usually displays child notifications as a group, you can set
- them to temporarily appear as
- <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#Heads-up">
- heads-up notifications</a>. This feature is especially useful because it allows
-  immediate access to the most recent child and the actions associated with it.
-</p>
-
-
-<h3>Backwards compatibility</h3>
-
-<p>
-  Both notification groups and remote input have been a part of the {@link
-  android.app.Notification} API since Android 5.0 (API level 21) to support
-  Android Wear devices. If you've already built notifications with these APIs,
-  the only action you must take is to verify that the app behavior corresponds
-  to the guidelines described above, and to consider implementing {@code
-  setRemoteInputHistory()}.
-</p>
-
-<p>
-  In order to support backward compatibility, the same APIs are available with
-  the support library's {@link android.support.v4.app.NotificationCompat}
-  class, allowing you to build notifications that works on earlier Android
-  versions. On handhelds and tablets, users only see the summary notification,
-  so an app should still have an inbox style or an equivalent notification
-  representative for the whole information content of the group. As Android
-  Wear devices allow users to see all child notifications even on older
-  platform levels, you should build child notifications regardless of API
-  level.
-</p>
-
-<h2 id="custom"> Custom Views</h2>
-<p>Starting from Android N, you can customize notification views and
-still obtain system decorations like notification headers, actions, and
-expandable layouts.</p>
-
-<p>To enable this capability, Android N adds the following APIs to style your
-  custom view:</p>
-
-<dl>
-<dt>
-{@code DecoratedCustomViewStyle()}</dt>
-<dd> Styles notifications other than media
-notifications.</dd>
-<dt>
-{@code DecoratedMediaCustomViewStyle()}</dt>
-<dd> Styles media notifications.</dd>
-</dl>
-
-<p>To use this new API, call the {@code setStyle()} method, passing to it
-the desired custom view style.</p>
-
-<p>This snippet shows how to construct a custom notification object with the
-{@code DecoratedCustomViewStyle()} method.</p>
-
-<pre>
-Notification notification = new Notification.Builder()
-           .setSmallIcon(R.drawable.ic_stat_player)
-           .setLargeIcon(albumArtBitmap))
-           .setCustomContentView(contentView);
-           .setStyle(new Notification.DecoratedCustomViewStyle())
-           .build();
-
-</pre>
-
-<h2 id="style">Messaging Style</h2>
-<p>
-  Android N introduces a new API for customizing the style of a notification.
-  Using the <code>MessagingStyle</code> class, you can change several of the
-  labels displayed on the notification, including the conversation title,
-  additional messages, and the content view for the notification.
-</p>
-
-<p>
-  The following code snippet demonstrates how to customize a notification's
-  style using the <code>MessagingStyle</code> class.
-</p>
-
-<pre>
-  Notification notification = new Notification.Builder()
-             .setStyle(new Notification.MessagingStyle("Me")
-                 .setConversationTitle("Team lunch")
-                 .addMessage("Hi", timestamp1, null) // Pass in null for user.
-                 .addMessage("What's up?", timestamp2, "Coworker")
-                 .addMessage("Not much", timestamp3, null)
-                 .addMessage("How about lunch?", timestamp4, "Coworker"))
-             .build();
-</pre>
diff --git a/docs/html/preview/features/tv-recording-api.jd b/docs/html/preview/features/tv-recording-api.jd
deleted file mode 100644
index 6619821..0000000
--- a/docs/html/preview/features/tv-recording-api.jd
+++ /dev/null
@@ -1,142 +0,0 @@
-page.title=TV Recording
-page.keywords=preview,sdk,tv,recording
-page.tags=androidn
-page.image=images/cards/card-nyc_2x.jpg
-
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-  <h2>In this document</h2>
-  <ol>
-    <li><a href="#supporting">Indicating Support for Recording</a></li>
-    <li><a href="#recording">Recording a Session</a></li>
-    <li><a href="#errors">Handling Recording Errors</a></li>
-    <li><a href="#sessions">Managing Recorded Sessions</a></li>
-    <li><a href="#best">Best Practices</a></li>
-  </ol>
-</div>
-</div>
-
-<p>TV input services let the user pause and resume channel playback via
-time-shifting APIs. Android N expands on time-shifting
-by letting the user save multiple recorded sessions.</p>
-
-<p>Users can schedule recordings in advance, or start a recording as they watch
-a program. Once the system has saved a recording, the user can browse, manage,
-and play back the recording using the system TV app.</p>
-
-<p>If you want to provide recording functionality for your TV input service,
-you must indicate to the system that your app supports recording, implement
-the ability to record programs, handle and communicate any errors that occur
-during recording, and manage your recorded sessions.</p>
-
-<p class="note"><strong>Note:</strong> The Live Channels app does not yet
-provide a way for users to create or access recordings. Until changes are
-made to the Live Channels app, it may be difficult to fully test the recording
-experience for your TV input service.</p>
-
-<h2 id="supporting">Indicating Support for Recording</h2>
-
-<p>To tell the system that your TV input service supports recording, set
-the <code>android:canRecord</code> attribute in your service metadata XML file
-to <code>true</code>:
-</p>
-
-<pre>
-&lt;tv-input xmlns:android="http://schemas.android.com/apk/res/android"
-  <b>android:canRecord="true"</b>
-  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" /&gt;
-</pre>
-
-<p>For more information on the service metadata file, see
-<a href="{@docRoot}training/tv/tif/tvinput.html#manifest">Declare Your TV Input
-Service in the Manifest</a>.
-</p>
-
-<p>Alternatively, you can indicate recording support in your code using
-these steps:</p>
-
-<ol>
-<li>In your <code>TvInputService.onCreate()</code> method, create a new
-<code>TvInputInfo</code> object using the <code>TvInputInfo.Builder</code>
-class.</li>
-<li>When creating the new <code>TvInputInfo</code> object, call
-<code>setCanRecord(true)</code> before calling <code>build()</code> to
-indicate your service supports recording.</li>
-<li>Register your <code>TvInputInfo</code> object with the system by calling
-<code>TvInputManager.updateTvInputInfo()</code>.</li>
-</ol>
-
-<h2 id="recording">Recording a Session</h2>
-
-<p>After your TV input service registers that it supports recording
-functionality, the system calls your
-<code>TvInputService.onCreateRecordingSession()</code> when it needs to access
-your app's recording implementation. Implement your own
-<code>TvInputService.RecordingSession</code> subclass and return it
-when the <code>onCreateRecordingSession()</code> callback
-fires. This subclass is responsible for switching to the correct channel data,
-recording the requested data, and communicating recording status and errors to
-the system.</p>
-
-<p>When the system calls <code>RecordingSession.onTune()</code>, passing in a
-channel URI, tune to the channel that the URI specifies. Notify the system that
-your app has tuned to the desired channel by calling <code>notifyTuned()</code>,
-or, if your app could not tune to the proper channel, call
-<code>notifyError()</code>.</p>
-
-<p>The system next invokes the <code>RecordingSession.onStartRecording()</code>
-callback. Your app must start recording immediately. When the system invokes
-this callback, it may provide a URI that contains information about the program
-that is about to be recorded. When the recording is done, you need to copy this
-data to the <code>RecordedPrograms</code> data table.</p>
-
-<p>Finally, the system calls <code>RecordingSession.onStopRecording()</code>.
-At this point, your app must stop recording immediately. You also need to
-create an entry in the <code>RecordedPrograms</code> table. This entry should
-include the recorded session data URI in the
-<code>RecordedPrograms.COLUMN_RECORDING_DATA_URI</code> column, and any program
-information that the system provided in the initial call to
-<code>onStartRecording()</code>.</p>
-
-<p>For more details on how to access the <code>RecordedPrograms</code> table
-see <a href="#sessions">Managing Recorded Sessions</a>.</p>
-
-<h2 id="errors">Handling Recording Errors</h2>
-
-<p>If an error occurs during recording, rendering the recorded data unusable,
-notify the system by calling <code>RecordingSession.notifyError()</code>.
-Similarly, you can call <code>notifyError()</code> after a recording session is
-created to let the system know that your app can no longer record sessions.</p>
-
-<p>If an error occurs during recording, but you'd like to provide a usable
-partial recording to users for playback, call
-<code>RecordingSession.notifyRecordingStopped()</code> to enable the system to
-use the partial session.</p>
-
-<h2 id="sessions">Managing Recorded Sessions</h2>
-
-<p>The system maintains information for all recorded sessions from all
-recording-capable channel apps in the <code>TvContract.RecordedPrograms</code>
-content provider table. This information is accessible via the
-<code>RecordedPrograms.Uri</code> content URI. Use content provider APIs to
-read, add, and delete entries from this table.</p>
-
-<p>For more information on working with content provider data see
-<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
-Content Provider Basics</a> .</p>
-
-<h2 id="best">Best Practices</h2>
-
-<p>TV devices may have limited storage, so use your best judgment when
-allocating storage to save recorded sessions. Use
-<code>RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE)</code> when
-there isn't enough space to save a recorded session.</p>
-
-<p>When the user initiates recording, you should start recording data as soon
-as possible. To facilitate this, complete any up-front time-consuming tasks,
-like accessing and allocating storage space, when the system invokes the
-<code>onCreateRecordingSession()</code> callback. Doing so lets you start
-recording immediately when the <code>onStartRecording()</code> callback
-fires.</p>
diff --git a/docs/html/preview/license.jd b/docs/html/preview/license.jd
deleted file mode 100644
index ae02aae..0000000
--- a/docs/html/preview/license.jd
+++ /dev/null
@@ -1,145 +0,0 @@
-page.title=License Agreement
-
-@jd:body
-
-<p>
-To get started with the Android SDK Preview, you must agree to the following terms and conditions.
-As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.  The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.
-</p>
-
-<p>
-This is the Android SDK Preview License Agreement (the “License Agreement”).
-</p>
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
-1. Introduction
-
-1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
-
-1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.3 “Android-compatible” means any Android implemation that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).
-
-1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting the License Agreement
-
-2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
-
-2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
-
-2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
-
-2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
-
-3. Preview License from Google
-
-3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the Preview solely to develop applications for compatible implementations of Android.
-
-3.2 You may not use this Preview to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this Preview is not used for that purpose.
-
-3.3 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.4 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
-
-3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
-
-3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
-
-4. Use of the Preview by You
-
-4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-
-4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating the License Agreement
-
-9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
-
-9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
-(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
-(B) Google issues a final release version of the Android SDK.
-
-9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
-
-10. DISCLAIMERS
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
-
-14. General Legal Terms
-
-14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
-
-14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-
-
-</div>
\ No newline at end of file
diff --git a/docs/html/preview/overview.jd b/docs/html/preview/overview.jd
deleted file mode 100644
index 601442e..0000000
--- a/docs/html/preview/overview.jd
+++ /dev/null
@@ -1,450 +0,0 @@
-page.title=Program Overview
-page.metaDescription=Get your apps ready for the next version of Android.
-page.image=images/cards/card-n-overview_2x.png
-meta.tags="preview", "developer", "android"
-page.tags="preview", "developer", "android"
-
-@jd:body
-
-<!--
-<div class="cols" style=
-"background-color:#B2DFDB; padding: 5px 0;margin-bottom:1em; text-align:center;">
-<h3>
-    Developer Preview X is now available
-  </h3>
-  <p>This release includes the ...</p>
-   <div style="margin:auto 1em">
- <ul class="dac-section-links">
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/support.html#dp4">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Read the Notes</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="{@docRoot}preview/download.html">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Test the Update</a>
-    </li>
-
-    <li class="dac-section-link">
-      <a href="https://code.google.com/p/android-developer-preview/">
-      <span class="dac-sprite dac-auto-chevron"></span>
-      Report Issues</a>
-    </li>
-  </ul>
-  </div>
-</div>
--->
-
-<p>
-  Welcome to the <strong>Android N Developer Preview</strong>, a program that
-  gives you everything you need to test and optimize your apps for the next
-  version of Android. It's free, and you can get started right away just by
-  downloading the N Developer Preview tools.
-</p>
-
-
-
-
-
-
-
-<div style="background-color:#eceff1;padding:1em;">
-<div class="wrap">
-  <div class="cols">
-    <div class="col-4of12">
-      <h5>
-        Hardware and emulator images
-      </h5>
-
-      <p>
-        Run and test your apps on a range of devices or on an emulator.
-
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Latest platform code
-      </h5>
-
-      <p>
-        We’ll provide monthly updates during the Preview, so you’ll be testing against the latest platform changes.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Priority for developer issues
-      </h5>
-
-      <p>
-        During the first several weeks we’ll give priority to developer-reported
-        issues, so test and give feedback as soon as possible.
-      </p>
-    </div>
-
-  </div>
-
-  <div class="cols">
-
-
-    <div class="col-4of12">
-      <h5>
-        New behaviors and capabilities
-      </h5>
-
-      <p>
-        Start work early to support new platform behaviors and develop with new features.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-        <h5>
-        Updates delivered by OTA
-      </h5>
-
-      <p>
-        Seamless over-the-air updates for any supported device through the
-        Android Beta Program. No flashing is needed.
-      </p>
-    </div>
-
-    <div class="col-4of12">
-      <h5>
-        Feedback and support
-      </h5>
-
-      <p>
-        Report issues and give us feedback using our
-        <a href="{@docRoot}preview/bug">issue tracker</a>. Connect with other
-        developers in the
-        <a href="{@docRoot}preview/dev-community">N&nbsp;Developer Community</a>.
-      </p>
-    </div>
-  </div>
-</div>
-</div>
-
-<!--
-<p>New in the Android N Developer Preview: </p>
-
-<ul>
-  <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
-  <li> More supported devices, including devices from OEM partners</li>
-  <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
-</ul>
--->
-
-<h2 id="timeline">Timeline and updates</h2>
-
-<p>
-  The N Developer Preview runs from 9 March 2016 until the final Android N
-  public release to AOSP and OEMs, planned for Q3 2016.
-</p>
-
-<img src="{@docRoot}images/n-preview-updates_2x.png">
-
-<p>
-  At key development milestones, we’ll deliver updates for your development and
-  testing environment. In general you can expect an update each month (4 to 6
-  week interval). The milestones are listed below.
-</p>
-
-<ul>
-  <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (initial release, alpha)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (incremental update, alpha)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong> (incremental update, beta)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp4">Preview 4</a></strong> (final APIs and official SDK, Play publishing)</li>
-  <li><strong><a href="{@docRoot}preview/support.html#dp5">Preview 5</a></strong> (near-final system images for final testing)</li>
-  <li><strong>Final release</strong> to AOSP and ecosystem</li>
-</ul>
-
-<p>
-  Each update includes SDK tools, preview system images, emulators, reference
-  documentation, and API diffs.
-</p>
-
-<p>
-  The <strong>first three preview milestones</strong> provide an <strong>early
-  test and development environment</strong> that help you identify
-  compatibility issues in your current apps and plan migration or feature work
-  needed to target the new platform. This is the priority period in which to
-  give us your feedback on features and APIs and file compatibility issues
-  &mdash; for all of these, please use the <a href="{@docRoot}preview/bug">issue
-  tracker</a>. You can expect some API changes across these updates.
-</p>
-
-<p>
-  At <strong>previews 4 and 5</strong> you’ll have access to the <strong>final
-  N APIs and SDK</strong> to develop with, as well as near-final system images
-  to test system behaviors and features. Android N will provide a standard API
-  level at this time. You can begin final compatibility testing of your legacy
-  apps and refine any new code that is using the N APIs or features.
-</p>
-
-<p>
-  Also starting in preview 4, you’ll be able to <strong>publish apps to
-  devices</strong> running Android N at the official API level, such as
-  consumer devices that have opted into the Android Beta program. You can
-  publish into the Google Play alpha and beta channels first, so you can test
-  your apps with Android Beta consumers before distributing broadly on the
-  store.
-</p>
-
-<p>
-  As you test and develop on Android N, we strongly recommend <strong>keeping
-  your development environment up-to-date</strong> as preview updates are
-  released. To make the process easier, you can enroll your test devices in the
-  Android Beta program and get <strong>updates over-the-air (OTA)</strong> at
-  each milestone. Alternatively, updated preview images are available that you
-  download and flash manually.
-</p>
-
-<p>
-  We’ll notify you when preview updates are available via the <a href=
-  "http://android-developers.blogspot.com/">Android Developers Blog</a>, as
-  well as this site and the <a href="{@docRoot}preview/dev-community">Android
-  N Developer Community</a>.
-</p>
-
-
-<h2 id="preview_tools">What's in the N Developer Preview?</h2>
-
-<p>
-  The N Developer Preview includes everything you need to test your existing
-  apps on a variety of screen sizes, network technologies, CPU/GPU chipsets,
-  and hardware architectures.
-</p>
-
-<h3 id="sdk_tools">SDK tools</h3>
-
-<p>You can download these components through the SDK Manager in <a href="{@docRoot}studio/intro/update.html">Android Studio</a>:</p>
-
-<ul>
-  <li> N Developer Preview <strong>SDK and tools</strong>
-  <li> N Developer Preview <strong>emulator system image</strong> (32-bit & 64-bit)
-  <li> N Developer Preview <strong>emulator system Image for Android TV</strong> (32-bit)
-  <li> N Developer Preview support libraries (for new app templates)
-</ul>
-
-<p>
-  We’ll provide updates to these development tools at each milestone as needed.
-</p>
-
-<h3 id="hardware_system_images">Hardware system images</h3>
-
-<p>
-  The N Developer Preview includes Nexus and other hardware system images that you can use when
-  testing and developing on physical devices. See the <a href=
-  "{@docRoot}preview/download.html">Device Images</a> page for the full list
-  of hardware images.
-</p>
-
-<p>
-  We’ll deliver updated system images for these devices at each milestone. You
-  can download and flash the updated system images to your test devices
-  manually, as frequently as you need. This is especially useful for automated
-  testing environments where you might need to reflash your device multiple
-  times.
-</p>
-
-<p class="note"><strong>Note</strong>:
-  <strong>Devices flashed manually will not get OTA updates</strong> like in
-  last year’s preview. This year, you can get OTAs by enrolling devices in the
-  Android Beta Program &mdash; see details in the next section.
-</p>
-
-<h3 id="android_beta">OTA Updates through Android Beta Program</h3>
-
-<p>
-  New for Android N is an Over-the-Air (OTA) update program that automatically
-  delivers the latest preview updates of Android N directly to devices enrolled
-  in the program. The program is free, and it’s open to anyone who has a
-  supported device that’s registered to their Google account.
-</p>
-
-<p>
-  To enroll in the program visit the <a href="https://g.co/androidbeta">Android
-  Beta Program</a> site. You’ll
-  see all of the devices registered to your account that are eligible to enroll
-  in Android Beta.
-</p>
-
-<ol>
-  <li> Choose the devices you want to receive the Android N updates
-  <li> Click Enroll, read and agree to the terms of service, and then click OK
-</ol>
-
-<p>
-  Once you’ve enrolled, your device will soon receive an update. In most cases,
-  you will not need to do a full reset of your data to move to Android N, but
-  it’s recommended that you back up any data you don’t want to lose before
-  enrolling the device.
-</p>
-
-<p>
-  As updates are delivered to your device, we recommend downloading and
-  installing them as soon as possible. You’ll want to stay current with the
-  latest changes in system UI, behavior, APIs, and features.
-</p>
-
-<p>
-  At the conclusion of the Developer Preview, your enrolled devices will
-  receive an update to the official Android N release.
-</p>
-
-<p>
-  You can un-enroll your devices from the Android Beta program at any time from
-  the Android Beta site. Before un-enrolling, make sure to back-up your data on
-  the device.
-</p>
-
-  <p class="note"><strong>Note</strong>:
-  When you un-enroll, <strong>your device will be factory reset</strong>
-  to the latest version
-  of Android 6.0 Marshmallow (not necessarily the version that you had
-  installed prior to enrolling the device). To ensure a clean installation,
-  your data will be erased from the device, including contacts, messages,
-  photos, and so on.
-</p>
-
-<h3 id="documentation_and_sample_code">Documentation and sample code</h3>
-
-<p>
-  These documentation resources are available on the Developer Preview site to
-  help you learn about the Android&nbsp;N:
-</p>
-
-<ul>
-  <li> <a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for
-Android N</a> has
-  step-by-step instructions for getting started.</li>
-  <li> <a href="{@docRoot}preview/behavior-changes.html">Behavior
-  Changes</a> points you to key areas to test.</li>
-  <li> Documentation of new APIs, including an <a
-  href="{@docRoot}preview/api-overview.html">API Overview</a>, downloadable
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API
-  Reference</a>, and detailed developer guides on key features such as
-  multi-window support, bundled notifications, multi-locale support, and others.
-  <li> <a href="{@docRoot}preview/samples.html">Sample code</a> that
-  demonstrates how to support permissions and other new features.
-  <li> <a href="{@docRoot}preview/support.html#release-notes">Release notes</a>
-  for the current version of the N Developer Preview, including change notes and
-  diff reports.
-</ul>
-
-<h4 id="reference">Downloadable API Reference</h4>
-
-<p>
-  During the early preview updates, you can download the latest
-  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference
-  for the Android N platform</a> as a separate zip archive. The reference
-  download also includes a diff report that helps you identify API changes from
-  API 23 and the previous update.
-</p>
-
-<p>
-  When the Android N APIs are final and an official API level is assigned,
-  we’ll provide the API reference to you online at <a href=
-  "https://developer.android.com">https://developer.android.com</a>.
-</p>
-
-<h3 id="support_resources">
-  Support resources
-</h3>
-
-<p>
-  As you test and develop on the N Developer Preview, please use these channels
-  to report issues and give feedback.
-</p>
-
-<ul>
-  <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue
-    Tracker</a> is your <strong>primary feedback channel.</strong> You can report bugs, performance
-    issues, and general feedback through the issue tracker. You can also check for
-<a href="{@docRoot}preview/bugs">known issues</a> and
-    find workaround steps. We’ll keep you updated on your issue as it’s triaged and sent to
-    the Android engineering team for review. </li>
-  <li> The <a href="{@docRoot}preview/dev-community">Android N Developer Community</a> is
-    a Google+ community where you can <strong>connect with other developers</strong>working with
-    Android N. You can share observations or ideas or find answers to
-    questions about Android N. We’ll moderate the community and provide answers and
-    guidance as needed.</li>
-</ul>
-
-<h3 id="targeting">Targeting, preview APIs, and publishing</h3>
-
-<p>
-  The N Developer Preview provides a development-only system and Android
-  library that <strong>does not have a standard API level</strong>. If you want
-  to opt out of compatibility behaviors to test your app (which is strongly
-  recommended), you can target the preview version of Android N by setting your
-  app's <code><a href=
-  "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
-  to <code>“N”</code>.
-</p>
-
-<p>
-  The Android N Developer Preview delivers <strong>preview APIs</strong>
-  &mdash; the APIs will not be official until the final SDK is released,
-  currently planned for the third quarter of 2016. This means that you can
-  <strong>expect minor API changes</strong> over time, especially during
-  initial weeks of the program. We’ll provide a summary of changes to you with
-  each update of the Android N Developer Preview.
-</p>
-
-<p class="note">
-  <strong>Note</strong>: Although preview APIs may change, underlying
-  system behaviors are stable and ready for testing against
-  right away.
-</p>
-
-<p>
-  Google Play <strong>prevents publishing of apps targeting the N Developer
-  Preview</strong>. When the Android N final SDK is available, you’ll be able
-  to target the official Android N API level and publish your app to Google
-  Play via the alpha and beta release channels. Meanwhile, if you want to
-  distribute an app targeting Android N to testers, you can do so via email or
-  by direct download from your site.
-</p>
-
-<p>
-  At the full release of Android N to AOSP and OEMs, planned for Q3 2016,
-  you’ll be able to publish your apps targeting Android N to the public release
-  channel in Google Play.
-</p>
-
-
-<h2 id="how_to_get_started">How to get started</h2>
-
-<p>
-  To get started testing your app with Android N:
-</p>
-
-<ol>
-  <li> Review the <a href="{@docRoot}preview/api-overview.html">API Overview</a>
-  and <a href="{@docRoot}preview/behavior-changes.html">Behavior Changes</a> to
-  get an idea of what's new and how it affects your apps. In particular,
-  learn about the new <a href="{@docRoot}preview/features/notification-updates.html"
-  >notifications</a> features and
-  <a href="{@docRoot}preview/features/multi-window.html">multi-window support</a>.</li>
-  <li> Set up your environment by following the instructions for <a
-  href="{@docRoot}preview/setup-sdk.html">Setting up the Preview SDK</a>
-  and configuring test devices.</li>
-  <li> Follow the <a href="{@docRoot}preview/download.html">
-  instructions</a> to update your device to the latest build of the N Developer
-  Preview. The easiest way is to enroll your device in
-  <a href="https://www.google.com/android/beta">Android Beta</a> program. </li>
-  <li> Review the <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>
-  and <a href="{@docRoot}preview/samples.html">Android N samples</a> to gain more
-  insight into new API features and how to use them in your app.
-  <li> Join the <a href="{@docRoot}preview/dev-community">Android N
-  Developer Community</a> to get the latest news and connect with other
-  developers working with the new platform.</li>
-</ol>
-
-<p>
-  Thank you for your participation in the Android N Developer Preview program!
-</p>
diff --git a/docs/html/preview/preview_toc.cs b/docs/html/preview/preview_toc.cs
deleted file mode 100644
index 34d00a4..0000000
--- a/docs/html/preview/preview_toc.cs
+++ /dev/null
@@ -1,235 +0,0 @@
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/overview.html"
-   es-lang="Información general del programa"
-   in-lang="Ikhtisar Program"
-   ja-lang="プログラム概要"
-   ko-lang="프로그램 개요"
-   pt-br-lang="Visão geral do programa"
-   ru-lang="Обзор программы"
-   vi-lang="Tổng quan về Chương trình"
-   zh-cn-lang="计划概览"
-   zh-tw-lang="程式總覽">
-   Program Overview</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/support.html">
-      Support and Release Notes</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/setup-sdk.html"
-      es-lang="Configurar el SDK de la versión preliminar"
-      in-lang="Menyiapkan Preview"
-      ja-lang="Preview SDK のセットアップ"
-      ko-lang="미리 보기 SDK 설정하기"
-      pt-br-lang="Configuração do Preview SDK"
-      ru-lang="Настройка пакета SDK Preview"
-      vi-lang="Kiểm thử trên Thiết bị"
-      zh-cn-lang="设置预览版 SDK"
-      zh-tw-lang="設定預覽版 SDK">
-      Set Up the Preview</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/download.html"
-      es-lang="Pruebe en un dispositivo"
-      in-lang="Menguji pada Perangkat"
-      ja-lang="デバイス上でテストする"
-      ko-lang="기기에서 테스트"
-      pt-br-lang="Testar em um dispositivo"
-      ru-lang="Тестирование на устройстве"
-      vi-lang="Kiểm thử trên Thiết bị"
-      zh-cn-lang="在设备上测试"
-      zh-tw-lang="在裝置上測試">
-      Test on a Device</a></div>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>preview/behavior-changes.html"
-      es-lang="Cambios en los comportamientos"
-      in-lang="Perubahan Perilaku"
-      ja-lang="動作の変更点"
-      ko-lang="동작 변경"
-      pt-br-lang="Mudanças de comportamento"
-      ru-lang="Изменения в работе"
-      vi-lang="Các thay đổi Hành vi"
-      zh-cn-lang="行为变更"
-      zh-tw-lang="行為變更">Behavior Changes
-       </a></div>
-      <ul>
-        <li><a href="<?cs var:toroot ?>preview/features/background-optimization.html"
-              es-lang="Optimizaciones en segundo plano"
-              in-lang="Optimisasi Latar Belakang"
-              ja-lang="バックグラウンド処理の最適化"
-              ko-lang="백그라운드 최적화"
-              pt-br-lang="Otimizações em segundo plano"
-              ru-lang="Оптимизация фоновых процессов"
-              vi-lang="Tối ưu hóa Chạy ngầm"
-              zh-cn-lang="后台优化"
-              zh-tw-lang="背景最佳化">Background Optimizations
-              </a></li>
-        <li><a href="<?cs var:toroot ?>preview/features/multilingual-support.html"
-              es-lang="Idioma y configuración regional"
-              in-lang="Bahasa dan Lokal"
-              ja-lang="言語とロケール"
-              ko-lang="언어 및 로케일"
-              pt-br-lang="Idioma e localidade"
-              ru-lang="Язык и языковой стандарт"
-              vi-lang="Ngôn ngữ và Bản địa"
-              zh-cn-lang="语言和区域设置"
-              zh-tw-lang="語言和地區設定">Language and Locale
-              </a></li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>preview/api-overview.html"
-      es-lang="Información general de la API"
-      in-lang="Android N untuk Pengembang"
-      ja-lang="API の概要"
-      ko-lang="API 개요"
-      pt-br-lang="Visão geral da API"
-      ru-lang="Обзор API-интерфейсов"
-      vi-lang="Android N cho Nhà phát triển"
-      zh-cn-lang="API 概览"
-      zh-tw-lang="API 總覽">Android N for Developers
-      </a></div>
-      <ul>
-
-        <li><a href="<?cs var:toroot ?>preview/features/multi-window.html"
-              es-lang="Compatibilidad con ventanas múltiples"
-              in-lang="Dukungan Multi-Jendela"
-              ja-lang="マルチ ウィンドウのサポート"
-              ko-lang="다중 창 지원"
-              pt-br-lang="Suporte a várias janelas"
-              ru-lang="Поддержка многооконного режима"
-              vi-lang="Hỗ trợ đa cửa sổ"
-              zh-cn-lang="多窗口支持"
-              zh-tw-lang="多視窗支援">
-        Multi-Window Support</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/notification-updates.html"
-              es-lang="Notificaciones"
-              in-lang="Pemberitahuan"
-              ja-lang="通知"
-              ko-lang="알림"
-              pt-br-lang="Notificações"
-              ru-lang="Уведомления"
-              vi-lang="Thông báo"
-              zh-cn-lang="通知"
-              zh-tw-lang="通知">
-        Notifications</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/data-saver.html">
-        Data Saver</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/tv-recording-api.html"
-              es-lang="Grabación de TV"
-              in-lang="Perekaman TV"
-              ja-lang="TV の録画"
-              ko-lang="TV 녹화"
-              pt-br-lang="Gravação para TV"
-              ru-lang="Запись ТВ"
-              vi-lang="Ghi lại TV"
-              zh-cn-lang="TV 录制"
-              zh-tw-lang="電視錄製">
-        TV Recording</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/security-config.html"
-              es-lang="Configuración de seguridad de la red"
-              in-lang="Network Security Configuration"
-              ja-lang="ネットワーク セキュリティ構成"
-              ko-lang="네트워크 보안 구성"
-              pt-br-lang="Configurações de segurança de rede"
-              ru-lang="Конфигурация сетевой безопасности"
-              vi-lang="Cấu hình Bảo mật mạng"
-              zh-cn-lang="网络安全配置"
-              zh-tw-lang="網路安全性設定">
-        Network Security Configuration</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/icu4j-framework.html"
-              es-lang="API de ICU4J del framework de Android"
-              in-lang="ICU4J Android Framework API"
-              ja-lang="ICU4J Android フレームワーク API"
-              ko-lang="ICU4J Android 프레임워크 API"
-              pt-br-lang="APIs de estrutura do Android para ICU4J"
-              ru-lang="API-интерфейсы ICU4J в платформе Android"
-              vi-lang="API Khuôn khổ Android ICU4J"
-              zh-cn-lang="ICU4J Android 框架 API"
-              zh-tw-lang="ICU4J Android 架構 API">
-        ICU4J Support</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/j8-jack.html"
-              es-lang="Funciones del lenguaje Java 8"
-              in-lang="Fitur Bahasa Java 8"
-              ja-lang="Java 8 の機能"
-              ko-lang="Java 8 언어 기능"
-              pt-br-lang="Recursos de linguagem do Java 8"
-              ru-lang="Возможности языка Java 8"
-              vi-lang="Tính năng của Ngôn ngữ Java 8"
-              zh-cn-lang="Java 8 语言功能"
-              zh-tw-lang="Java 8 語言功能">
-        Java 8 Language Features</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/afw.html">
-        Android for Work Updates</a></li>
-
-        <li><a href="<?cs var:toroot ?>preview/features/scoped-folder-access.html"
-              es-lang="Acceso a directorios determinados"
-              in-lang="Scoped Directory Access"
-              ja-lang="特定のディレクトリへのアクセス"
-              ko-lang="범위가 지정된 디렉터리 액세스"
-              pt-br-lang="Acesso a diretórios com escopo"
-              ru-lang="Доступ к выделенным каталогам"
-              vi-lang="Truy cập Thư mục theo Phạm vi"
-              zh-cn-lang="作用域目录访问"
-              zh-tw-lang="限定範圍目錄存取">
-        Scoped Directory Access</a></li>
-      </ul>
-  </li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/samples.html"
-      es-lang="Ejemplos"
-      in-lang="Contoh"
-      ja-lang="サンプル"
-      ko-lang="샘플"
-      pt-br-lang="Exemplos"
-      ru-lang="Примеры"
-      zh-cn-lang="示例"
-      zh-tw-lang="範例">
-      Samples</a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/license.html"
-      es-lang="Contrato de licencia"
-      ja-lang="使用許諾契約"
-      ko-lang="라이선스 계약"
-      pt-br-lang="Contrato de licença"
-      ru-lang="Лицензионное соглашение"
-      zh-cn-lang="许可协议"
-      zh-tw-lang="授權協議">
-      License Agreement</a></div>
-  </li>
-
-</ul>
diff --git a/docs/html/preview/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
deleted file mode 100644
index ff11e8e..0000000
--- a/docs/html/preview/setup-sdk.jd
+++ /dev/null
@@ -1,175 +0,0 @@
-page.title=Set Up the Preview
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-sdk_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-  <div id="qv">
-<ol>
-  <li><a href="#get-as13">Get Android Studio 2.1</a></li>
-  <li><a href="#get-sdk">Get the Android N SDK</a>
-    <ol>
-      <li><a href="#docs-dl">Reference documentation</a>
-    </ol>
-  </li>
-  <li><a href="#java8">Get the Java 8 JDK</a></li>
-  <li><a href="#create-update">Update or Create a Project</a></li>
-  <li><a href="#next">Next Steps</a></li>
-</ol>
-  </div>
-</div>
-
-<p>To develop apps for the Android N Preview, you need to make some updates
-to your developer environment, as described on this page.</p>
-
-<p>To simply test your app's compatibility on the
-Android N system image, follow the guide to <a
-href="{@docRoot}preview/download.html">Test on an Android N Device</a>.</p>
-
-<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
-
-
-<h2 id="get-as13">Get Android Studio 2.1</h2>
-
-<p>The Android N platform adds support for <a
-href="{@docRoot}preview/j8-jack.html">Java 8 language features</a>,
-which require a new compiler called Jack. The latest version of Jack
-is currently supported only in Android Studio 2.1. So if you want to
-use Java 8 language features, you need to use Android Studio 2.1 to
-build your app. Otherwise, you don't need to use the Jack compiler, but you
-still need to update to JDK 8 to compile against the Android N platform,
-as described below.</p>
-
-<p>If you already have Android Studio installed, make sure you have Android
-Studio 2.1 or higher by clicking <strong>Help > Check for Update</strong>
-(on Mac, <strong>Android Studio > Check for Updates</strong>).</p>
-
-<p>If you don't have it, <a href="{@docRoot}studio/">download Android Studio
-2.1 here</a>.</p>
-
-
-<h2 id="get-sdk">Get the N Preview SDK</h2>
-
-<p>To start developing with Android N APIs, you need to install the
-Android N Preview SDK in Android Studio as follows:</p>
-
-<ol>
-  <li>Open the SDK Manager by clicking <strong>Tools > Android >
-  SDK Manager</strong>.</li>
-
-  <li>In the <strong>SDK Platforms</strong> tab, select the
-  <strong>Android N Preview</strong> check box.</li>
-
-  <li>Click the <strong>SDK Tools</strong> tab, then select the
-    <strong>Android SDK Build Tools</strong>, <strong>Android SDK
-    Platform-Tools</strong>, and <strong>Android SDK Tools</strong> check
-    boxes.
-  </li>
-
-  <li>Click <strong>OK</strong>, then accept the licensing
-    agreements for any packages that need to be installed.
-  </li>
-</ol>
-
-<h3 id="docs-dl">Get the N Preview reference documentation</h3>
-
-<p>Beginning with the Preview 4 release, the API reference for the
-  N platform (API level 24) is now available online at <a href=
-  "{@docRoot}reference/">developer.android.com/reference/</a>. There is also
-  an incremental diff report for <a href="{@docRoot}sdk/api_diff/24/changes.html"
-  >API changes between API levels 23 and 24</a>.</p>
-
-<h2 id="java8">Get the Java 8 JDK</h2>
-
-<p>To compile your app against the Android N platform and use some tools with
-Android Studio 2.1, you need to install the Java 8 Developer Kit (JDK 8). So, if
-you don't already have the latest version, download JDK 8 now.</p>
-
-<p>Then set the JDK version in Android Studio as follows:</p>
-
-<ol>
-  <li>Open an Android project in Android Studio, then open the
-    Project Structure dialog by selecting <strong>File &gt;
-        Project Structure</strong>. (Alternatively, you can set the default
-        for all projects by selecting <strong>File &gt; Other Settings &gt;
-        Default Project Structure</strong>.)
-   </li>
-   <li>In the left panel of the dialog, click <strong>SDK Location</strong>.
-   </li>
-   <li>In the <strong>JDK Location</strong> field, enter the location of the
-    Java 8 JDK (click the button on the right
-    to browse your files), then click <strong>OK</strong>.
-   </li>
-</ol>
-
-<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700"
-  alt="" />
-
-
-<h2 id="create-update">Update or Create a Project</h2>
-
-<p>Now that the N platform API level is "24" instead
-of "N", you can configure your projects normally with this API level (and even
-publish your apps compiled with API 24 on Google Play). Just be sure that you've
-updated your project to use <strong>Android SDK Build Tools 24.0.0</strong> and
-<strong>Android SDK Platform-Tools 24.0.0</strong>.</p>
-
-<p>If you plan to use Java 8 language features, you should also read
-<a href="{@docRoot}preview/j8-jack.html">Java 8 Language Features</a>
-for information about the supported Java 8 features and
-how to configure your project with the Jack compiler.</p>
-
-
-<h3 id="update">Update an existing project</h3>
-
-<p>Open the
-  <code>build.gradle</code> file for your module and update the values as
-  follows:
-</p>
-
-<pre>
-android {
-  compileSdkVersion <strong>24</strong>
-  buildToolsVersion <strong>'24.0.0'</strong>
-  ...
-
-  defaultConfig {
-     targetSdkVersion <strong>24</strong>
-     ...
-  }
-  ...
-}</pre>
-
-<p>Now that the API level 24 is final, you can compile against it and keep your
-<code>minSdkVersion</code> to whatever version is appropriate for your app.</p>
-
-
-<h3 id="create">Create a new project</h3>
-
-
-<p>To create a new project for development with the Android N Preview SDK:</p>
-
-<ol>
-  <li>Click <strong>File > New Project</strong>. and follow the steps until
-  you reach the <strong>Target Android Devices</strong> page.
-  </li>
-  <li>On this page, select the <strong>Phone and Tablet</strong> check box.</li>
-  <li>Under <strong>Phone and Tablet</strong> option, in the <strong>Minimum
-    SDK</strong> option list, select
-    <strong>API 24: Android 6.X (N Preview)</strong>.</li>
-</ol>
-
-
-<h2 id="next">Next Steps</h2>
-
-<ul>
-  <li>Follow the guide to <a
-href="{@docRoot}preview/download.html">Test on an Android N Device</a>.</li>
-  <li>Learn more about the Android N platform with
-<a href="{@docRoot}preview/behavior-changes.html">Behavior Changes</a>
-and <a href="{@docRoot}preview/api-overview.html">Android N APIs
-and Features</a>.</li>
-</ul>
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
deleted file mode 100644
index 0d0d9db..0000000
--- a/docs/html/preview/support.jd
+++ /dev/null
@@ -1,1698 +0,0 @@
-page.title=Support and Release Notes
-meta.keywords="preview", "android"
-page.tags="preview", "developer preview"
-page.image=images/cards/card-n-support_2x.png
-
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-
-<ul>
-  <li><a href="#dp5">Developer Preview 5</a>
-    <ul>
-      <li><a href="#general">General advisories</a></li>
-      <li><a href="#new">New in DP5</a></li>
-      <li><a href="#ki">Known issues</a></li>
-      <li><a href="#upgrade-notes">Notes on publishing apps
-      that target API 24</a></li>
-    </ul>
-  </li>
-  <li><a href="#dp4">Developer Preview 4</a></li>
-  <li><a href="#dp3">Developer Preview 3</a></li>
-  <li><a href="#dp2">Developer Preview 2</a></li>
-  <li><a href="#dp1">Developer Preview 1</a></li>
-</ul>
-
-<!--
-<h2>See Also</h2>
-<ol>
-  <li></li>
-</ol>
--->
-
-</div>
-</div>
-
-<p>
-  Two primary support channels are available to you when developing and testing
-  with the Android N Developer Preview: Please file bugs at <a href=
-  "https://developer.android.com/preview/bug"
-  >https://developer.android.com/preview/bug</a> for
-  device-specific, system, and Google App bugs. For issues in other apps,
-  please contact the developer directly.
-</p>
-
-<p>
-  To discuss issues or ideas with other developers working with Android N, join
-  the <a href="{@docRoot}preview/dev-community">Developer Preview Google+
-  community</a>.
-</p>
-
-<h2 id="dp5">Developer Preview 5</h2>
-
-<div class="cols">
-  <div class="col-6of12">
-    <p>
-      <em>Date: July 2016<br>
-      Build: NPD90G<br>
-      Emulator support: x86 &amp; ARM (32/64-bit)<br>
-      Google Play services: 8.4</em>
-    </p>
-  </div>
-</div>
-
-<h3 id="general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for <strong>app developers and other early
-  adopters</strong> and is available for daily use, development, or
-  compatibility testing. Please be aware of these general notes about the
-  release:
-</p>
-
-<ul>
-  <li>This release may have various <strong>stability issues</strong> on
-  supported devices.
-  </li>
-
-  <li>Some apps <strong>may not function as expected</strong> on the new
-  platform version. This includes Google’s apps as well as other apps.
-  </li>
-
-  <li>Developer Preview 5 is <strong>Compatibility Test Suite (CTS)
-  approved</strong> on these devices: Nexus 5X, Nexus 6, Nexus 6P, Nexus 9,
-  and Pixel C. Apps that depend on CTS approved builds should work normally
-  on these devices (Android Pay for example).
-  </li>
-
-  <li>Developer Preview 5 is <strong>available</strong> on Nexus 5X, Nexus 6, Nexus 6P,
-  Nexus 9, Nexus Player, Pixel C, and General Mobile 4G (Android One).
-  </li>
-</ul>
-
-
-<h3 id="new">New in DP5</h3>
-
-<h4>Updated system images for supported devices and emulator</h4>
-
-<p>
-  Developer Preview 5 includes <a href=
-  "{@docRoot}preview/download.html"><strong>near-final system
-  images</strong></a> for supported devices and the Android emulator. The
-  images include the final APIs (API level 24) for the upcoming Android N
-  platform. When you are done testing, you can publish apps using API
-  level 24 to Google Play, in alpha, beta, and production release channels.
-</p>
-
-
-<!--
-
-<h4 id="api-changes">Feature and API changes</h4>
-
-<ul>
-  <li>TODO</li>
-</ul>
-
--->
-
-<h3 id="ki">Known Issues</h3>
-
-<h4>Stability</h4>
-
-<ul>
-  <li>Users may encounter system instability (such as kernel panics and
-  crashes).
-  </li>
-</ul>
-
-<h4>Multi-window</h4>
-<ul>
-  <li>MapView may be blank when resized in multi-window mode and not focused.
-  </li>
-</ul>
-
-<h4>Do Not Disturb</h4>
-<ul>
-  <li>Do Not Disturb mode may be set at device reboot. To work around
-  the issue, delete the existing rule for VR as follows: go to
-  <strong>Settings > Sound > Do not disturb > Automatic Rules</strong>
-  and tap the trash icon next to the VR rule.
-  </li>
-</ul>
-
-<h4>Screen zoom and multiple APKs in Google Play</h4>
-<ul>
-  <li>On devices running Developer Preview 5, Google Play services 9.0.83
-  incorrectly reports the current screen density rather than the stable screen
-  density. When screen zoom is enabled on these devices, this can cause Google
-  Play to select a version of a multi-APK app that’s designed for smaller
-  screens. This issue is fixed in the next version of Google Play services.
-  </li>
-</ul>
-
-<h4>Vulkan support and multiple APKs in Google Play</h4>
-<ul>
-  <li>On devices running Developer Preview 5, Google Play services 9.0.83
-  currently reports Vulkan support but not Vulkan version. This can cause
-  Google Play to select a version of a multi-APK app that’s designed for lower
-  Vulkan support on devices with higher version support. Currently, the Google
-  Play Store does not accept uploads of Apps which use Vulkan version
-  targeting. This support will be added to the Google Play Store in the
-  future any Android N devices using the Google Play services 9.0.83 will
-  continue to receive versions of Apps targeting basic Vulkan support.
-  </li>
-</ul>
-
-<h4>Android Auto</h4>
-<ul>
-  <li>The version of Google Maps included in Developer Preview 5 (9.30)
-  crashes when used with Android Auto. This issue will be fixed in the
-  next update to Google Maps (9.31), expected in the coming weeks.
-  </li>
-</ul>
-
-
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-<!-- TBA, if any
-
-<h4 id="dp5-fixes">Fixes for issues reported by developers</h4>
-
-<p>
-  A number of issues reported by developers have been fixed, including:
-</p>
-
-<ul>
-  <li>TODO</li>
-</ul>
-
--->
-
-<h3 id="upgrade-notes">Notes on publishing apps that target API 24</h3>
-
-<p>
-  Before publishing apps that target API 24 in Google Play, keep these points
-  in mind:
-</p>
-
-<ul>
-  <li>If your app’s current <code>targetSdkVersion</code> is 22 or lower and
-  you want to target API 24, you’ll need to support <a href=
-  "{@docRoot}about/versions/marshmallow/android-6.0-changes.html">behaviors
-  introduced with Android 6.0 (Marshmallow)</a>, such as <a href=
-  "{@docRoot}training/permissions/requesting.html">runtime permissions</a>, in
-  addition to Android N behaviors.
-  </li>
-
-  <li>Once you publish an app with <code>targetSdkVersion</code> set to 23 or
-  higher, you can't later publish a version of the app with a higher
-  <code>versionCode</code> that targets 22 or lower. This restriction applies
-  in alpha and beta channels as well as production channel.
-  </li>
-</ul>
-
-
-<!-- DP4 Release Notes Archive -->
-
-<h2 id="dp4">Developer Preview 4</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Date: June 2016<br>
-        Build: NPD56N<br>
-        Emulator support: x86 &amp; ARM (32/64-bit)<br>
-        Google Play services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp4-general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for <strong>app developers and other early
-  adopters</strong> and is available for daily use, development, or
-  compatibility testing. Please be aware of these general notes about the
-  release:
-</p>
-
-<ul>
-  <li>This release may have various <strong>stability issues</strong> on
-  supported devices.
-  </li>
-
-  <li>Some apps <strong>may not function as expected</strong> on the new
-  platform version. This includes Google’s apps as well as other apps.
-  </li>
-
-  <li>Developer Preview 4 is <strong>Compatibility Test Suite (CTS)
-  approved</strong> on these devices: Nexus 5X, Nexus 6, Nexus 6P, and
-  Pixel C. Apps that depend on CTS approved builds should work normally
-  on these devices (Android Pay for example).
-  </li>
-
-  <li>Developer Preview 4 is <strong>available on all supported
-  devices:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player,
-  Pixel C, General Mobile 4G (Android One), as well as Sony Xperia Z3
-  (D6603 and D6653 models).
-  </li>
-</ul>
-
-
-<h3 id="dp4-new">New in DP4</h3>
-
-<h4>Android N final APIs</h4>
-
-<p>
-  Developer Preview 4 includes the <strong>final APIs</strong> for the upcoming
-  Android N platform. The new API level is 24.
-</p>
-
-<h4>Play publishing</h4>
-
-<p>
-  You can now publish apps that use <strong>API level 24</strong> to Google
-  Play, in alpha, beta, and production release channels.
-</p>
-
-<h4>Android Studio and tools updates</h4>
-
-<p>
-  Along with Developer Preview 4 we’re providing the <strong>final API 24
-  SDK</strong> to be used with Android Studio 2.1.2 and higher. In addition,
-  we’re releasing updated Developer Preview 4 system images for the emulator to
-  help test your apps.
-</p>
-
-<p>
-  As new updates roll out for Android Studio, you should see minor improvements in
-  the new project wizards and AVD manager as we add enhanced support for API 24.
-  These are primarily cosmetic changes and should not stop you from getting
-  your app ready for an update in the Play store.
-</p>
-
-<h4 id="dp4-api-changes">Feature and API changes</h4>
-
-<ul>
-  <li>In previous versions of Android, an app activates with all of its locale
-  resources loaded before locale negotiation begins. Starting in Android N DP4,
-  the system negotiates resource locales individually for each resource object
-  before the app activates.
-  </li>
-
-  <li>As announced at Developer Preview 3, we’ve deferred the Launcher
-  Shortcuts feature to a later release of Android. In Developer Preview 4,
-  we’ve removed the Launcher Shortcuts APIs.
-  </li>
-
-  <li>We’ve changed the BLE Scanning behavior starting in DP4. We’ll prevent
-  applications from starting and stopping scans more than 5 times in 30
-  seconds. For long running scans, we’ll convert them into opportunistic scans.
-  </li>
-
-  <li>The <a href=
-  "{@docRoot}preview/features/multi-window.html">Multi-Window</a>
-  <code>android:minimalHeight</code> and <code>android:minimalWidth</code>
-  attributes have been renamed to <code>android:minHeight</code> and
-  <code>android:minWidth</code>.
-  </li>
-</ul>
-
-<h3 id="dp4-ki">Known Issues</h3>
-
-<h4>Stability</h4>
-
-<ul>
-  <li>Users may encounter system instability (such as kernel panics and
-  crashes).
-  </li>
-</ul>
-
-<h4>Launcher</h4>
-
-<ul>
-  <li>The default launcher’s <strong>All Apps</strong> tray may become
-  unresponsive after cycling the screen off and on. Returning to the
-  homescreen and relaunching the <strong>All Apps</strong> tray may resolve
-  this issue.
-  </li>
-</ul>
-
-<h4>Setup Wizard</h4>
-
-<ul>
-  <li>Crash on selecting "Not now" in "Set up email" screen.
-  </li>
-</ul>
-
-<h4>Media</h4>
-
-<ul>
-  <li>Media playback may be unreliable on Nexus 9 and Nexus Player, including
-  issues playing HD video.
-  </li>
-
-  <li>Occasional freeze when running the YouTube app with other apps in
-  multi-window mode on Pixel C devices. In some cases hard reboot is required.
-  </li>
-
-  <li>Apps may have issues playing some Widevine DRM-protected content on Nexus
-  9 devices.
-  </li>
-
-  <li>Issues handling VP8 video on Nexus 9 devices.
-  </li>
-</ul>
-
-<h4>External storage</h4>
-
-<ul>
-  <li>Apps may become unstable when the user moves them from internal storage
-  to adoptable external storage (this can include SD card or devices attached
-  over USB).
-  </li>
-</ul>
-
-<h4>Screen zoom and multiple APKs in Google Play</h4>
-
-<ul>
-  <li>On devices running Android N, Google Play services 9.0.83 incorrectly
-  reports the current screen density rather than the stable screen density.
-  When screen zoom is enabled on these devices, this can cause Google Play to
-  select a version of a multi-APK app that’s designed for smaller screens. This
-  issue is fixed in the next version of Google Play services and will be
-  included in a later Developer Preview release.
-  </li>
-</ul>
-
-<h4>Vulkan support and multiple APKs in Google Play</h4>
-
-<ul>
-  <li>On devices running Android N, Google Play services 9.0.83 currently
-  reports Vulkan support but not Vulkan version. This can cause Google Play to
-  select a version of a multi-APK app that’s designed for lower Vulkan support
-  on devices with higher version support. Currently, the Google Play Store does
-  not accept uploads of apps which use Vulkan version targeting. This support
-  will be added to the Google Play Store in the future and fixed in the next
-  version of Google Play services (to be included in a later Developer Preview
-  release). Any N devices using the version of Google Play services 9.0.83 will
-  continue to receive versions of apps targeting basic Vulkan support.
-  </li>
-</ul>
-
-<h4>Accessibility</h4>
-<ul>
-  <li>Switch access doesn't allow user to navigate web pages in Chrome.
-  </li>
-
-  <li>Accessibility issues for talkback users with notification dismissal, and
-  wifi selection screen.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Currently, CA certificates provisioned through {@link
-  android.app.admin.DevicePolicyManager} are not
-  available to profiles other than the primary user/profile due to a preload
-  issue. For example, this could prevent a user from connecting to a trusted
-  server when in a Work profile. This issue will be resolved in the next
-  Developer Preview.
-  </li>
-
-  <li>After reboot with work mode off, solving work challenge does not switch
-  on work mode.
-  </li>
-
-  <li>Users receiving a video call in Hangouts have to unlock work challenge
-    first.
-  </li>
-
-  <li>Accessing Settings &gt; Security &gt; Device Security crash observed when
-  separating primary and work challenge.
-  </li>
-
-  <li>If {@link android.os.UserManager#DISALLOW_CONFIG_VPN} is set before
-  calling {@link android.app.admin.DevicePolicyManager#setAlwaysOnVpnPackage
-  DevicePolicyManager.setAlwaysOnVpnPackage()}, then setting always on VPN does
-  not work. That is, after rebooting the device with the {@link
-  android.os.UserManager#DISALLOW_CONFIG_VPN} restriction set, VPN is not
-  autostarted.
-  </li>
-</ul>
-
-<h4>Android Auto</h4>
-
-<p>
-  The version of Google Maps included in Developer Preview 4 (9.30) crashes
-  when used with Android Auto. This issue will be fixed in the next update to
-  Google Maps (9.31), expected in the coming weeks.
-</p>
-
-
-<!-- TBA, if any
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Device Name</strong>
-  </dt>
-
-  <dd>
-    Issue 1
-  </dd>
-
-  <dd>
-    Issue 2
-  </dd>
-</dl>
-
--->
-
-
-<h4 id="dp4-fixes">Fixes for issues reported by developers</h4>
-
-<p>
-  A number of issues reported by developers have been fixed, including:
-</p>
-
-<ul>
-  <li>The active network state ({@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} and {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}) might return incorrect values during some
-  restricted background scenarios
-  </li>
-
-  <li>Data Saver restricts the foreground MMS mobile network request
-    (<a href="https://code.google.com/p/android/issues/detail?id=208478">bug
-    208478</a>)
-  </li>
-
-  <li>Quick settings tiles and notifications sometimes unresponsive
-  </li>
-
-  <li>Unable to dismiss Clock notifications
-  </li>
-
-  <li>Duplication of bluetooth icon and other status icons
-  </li>
-
-  <li>Additional bluetooth connectivity fixes
-  </li>
-
-</ul>
-
-<p>For the full list of fixed issues, see <a href="https://goo.gl/6uCKtf">the
-issue tracker</a>.</p>
-
-<h3 id="dp4-upgrade-notes">Notes on publishing apps that target API 24</h3>
-
-<p>
-  Before publishing apps that target API 24 in Google Play, keep these points
-  in mind:
-</p>
-
-<ul>
-  <li>If your app’s current <code>targetSdkVersion</code> is 22 or lower and
-  you want to target API 24, you’ll need to support <a href=
-  "{@docRoot}about/versions/marshmallow/android-6.0-changes.html">behaviors
-  introduced with Android 6.0 (Marshmallow)</a>, such as <a href=
-  "{@docRoot}training/permissions/requesting.html">runtime permissions</a>, in
-  addition to Android N behaviors.
-  </li>
-
-  <li>Once you publish an app with <code>targetSdkVersion</code> set to 23 or
-  higher, you can't later publish a version of the app with a higher
-  <code>versionCode</code> that targets 22 or lower. This restriction applies
-  in alpha and beta channels as well as production channel.
-  </li>
-</ul>
-
-<!-- DP3 Release Notes Archive -->
-
-<h2 id="dp3">Developer Preview 3</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Date: May 2016<br>
-        Build: NPD35K<br>
-        Emulator support: x86 &amp; ARM (32/64-bit)<br>
-        Google Play services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp3-general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for <strong>app developers and other early
-  adopters</strong> and is available for daily use, development, or
-  compatibility testing. Please be aware of these general notes about the
-  release:
-</p>
-
-<ul>
-  <li>This release may have various <strong>stability issues</strong> on
-    supported devices. Users may encounter system instability, such as kernel
-    panics and crashes.
-  </li>
-
-  <li>Some apps <strong>may not function as expected</strong> on the new
-  platform version. This includes Google’s apps as well as other apps.
-  </li>
-
-  <li>Developer Preview 3 is <strong>Compatibility Test Suite (CTS)
-  approved</strong> on these devices: Nexus 5X, Nexus 6, Nexus 6P, and Pixel
-  C. Apps that depend on CTS approved builds should
-  work normally on these devices (Android Pay for example).
-  </li>
-
-  <li>Developer Preview 3 is <strong>available on all supported
-  devices:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel
-  C, General Mobile 4G (Android One), as well as Sony Xperia Z3 (D6603 and
-  D6653 models).
-
-  </li>
-</ul>
-
-
-<h3 id="dp3-new">New in DP3</h3>
-
-<h4>VR Mode for Android</h4>
-
-<p>
-  Android N adds platform support and optimizations for a new VR Mode to let
-  developers build high quality mobile VR experiences for users. There are a
-  number of performance enhancements, including access to an exclusive CPU core
-  for VR apps. Within your apps, you can take advantage of intelligent
-  head-tracking, and stereo notifications that work for VR. Most importantly,
-  Android N provides for very low latency graphics.
-</p>
-
-<p>
-  For more information, see the <a href=
-  "https://developers.google.com/vr/android/">Google VR SDK for Android</a>.
-</p>
-
-<h4>Sustained performance mode</h4>
-
-<p>
-  Android N includes optional support for <a href=
-  "{@docRoot}preview/api-overview.html#sustained_performance_api">sustained
-  performance mode</a>, enabling OEMs to provide hints on device performance
-  capabilities for long running applications. App developers can then use these
-  hints to tune applications for a predictable, consistent level of device
-  performance over long periods of time. App developers can try out this new
-  API in the developer preview on Nexus 6P devices only.
-</p>
-
-<h4>Multiprocess WebView</h4>
-
-<p>
-  Starting with version 51 in Android N, WebView will run web content in a
-  separate sandboxed process when the developer option "Multiprocess WebView"
-  is enabled. The WebView team is looking for feedback on compatibility and
-  runtime performance in N before enabling multiprocess WebView in a future
-  version of Android. In this version, regressions in startup time, total
-  memory usage and software rendering performance are expected.
-</p>
-
-<p>
-  If you find unexpected issues in multiprocess mode we’d like to hear about
-  them. Please get in touch with the WebView team by <a href=
-  "https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">
-  filing a bug</a>.
-</p>
-
-<h4>Keyboard Shortcuts helper</h4>
-
-<p>
-  Android N lets users press <code>Meta+/</code> to trigger a <strong>Keyboard
-  Shortcuts</strong> screen that displays all shortcuts available both from the
-  system and from the app in focus. Developers can add their own shortcuts or
-  trigger the Shortcuts screen from their apps. See <a href=
-  "{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Keyboard
-  Shortcuts helper</a> for details.
-</p>
-
-<h4>FrameMetrics API</h4>
-
-<p>
-  DP3 introduces a new <a href=
-  "{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>
-  that allows an app to monitor its UI rendering performance by exposing a
-  streaming pubsub API to transfer frame timing info for the application’s
-  current window. <code>FrameMetricsListener</code> can be used to measure
-  interaction-level UI performance in production with higher granularity and
-  without the need for a USB connection.
-</p>
-
-<h4 id="dp3-api-changes">Feature and API changes</h4>
-
-<dl>
-  <dt>
-    Launcher Shortcuts and the Launcher Shortcuts API
-  </dt>
-
-  <dd>
-    We’ve decided to defer this feature to a future release of Android. We plan
-    to remove the Launcher Shortcuts APIs (ShortcutManager and others) from the
-    public Android N API starting in the next developer preview.
-  </dd>
-
-  <dt>
-    WebView Javascript run before page load
-  </dt>
-
-  <dd>
-    Starting with apps targeting Android N, the Javascript context is reset
-    when a new page is loaded. Currently, the context is carried over for the
-    first page loaded in a new {@link android.webkit.WebView} instance.
-    Developers looking to inject Javascript into the {@link
-    android.webkit.WebView} should execute the script after the page has
-    started to load.
-  </dd>
-
-  <dt>
-    WebView Geolocation on insecure origins
-  </dt>
-
-  <dd>
-    Starting with apps targeting Android N, the geolocation API will only be
-    allowed on secure origins (over HTTPS.) This policy is designed to protect
-    users' private information when they're using an insecure connection.
-  </dd>
-
-  <dt>
-    Data Saver
-  </dt>
-
-  <dd>
-    Starting in Developer Preview 3, apps can use use an intent to display a
-    system dialog that lets the user directly add the app to the Data Saver
-    exemption whitelist. See the <a href=
-    "{@docRoot}preview/api-overview.html#data_saver">Data Saver
-    documentation</a> for details.
-  </dd>
-
-  <dt>
-    <a href=
-    "{@docRoot}preview/api-overview.html#number-blocking">Number-blocking</a>
-  </dt>
-
-  <dd>
-    If an unauthorized user attempts to block or unblock a number, the
-    operation now fails with {@link java.lang.SecurityException}. (Previously,
-    the operation threw {@link java.lang.UnsupportedOperationException}.)
-  </dd>
-
-  <dt>
-    <a href="{@docRoot}preview/api-overview.html#tile_api">Quick Settings Tile
-    API</a>
-  </dt>
-
-  <dd>
-    The system now uses the activity's metadata to decide on the tile mode.
-    (Previously, tile mode was determined by the return value of
-    <code>TileService.onTileAdded()</code>.) For more information, see
-    <code>TileService.META_DATA_ACTIVE_TILE</code> in the downloadable <a href=
-    "{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.
-  </dd>
-</dl>
-
-<h4 id="dp3-fixes">Fixes for issues reported by developers</h4>
-
-<p>
-  A number of issues reported by developers have been fixed, including:
-</p>
-
-<ul>
-  <li>Bluetooth Audio playback interrupted after 1 song (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
-  </li>
-
-  <li>Pixel C Consistently Crashes (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
-  </li>
-
-  <li>Clock and Toast notification issues (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
-  </li>
-
-  <li>Pixel C reboots when connected to MacBook Pro via USB C Cable (bug
-  <a href=
-  "https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
-  </li>
-
-  <li>Calandar offset by one day (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
-  </li>
-
-  <li>TelephonyManager.getAllCellInfo returning invalid data (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
-  </li>
-
-  <li>Nexus 6p, Bluetooth keeps disconnecting (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
-  </li>
-</ul>
-
-<p>For the full list of fixed issues, see <a href="https://goo.gl/6uCKtf">the
-issue tracker</a>.</p>
-
-<h3 id="dp3-ki">Known Issues</h3>
-
-<h4>Accessibility</h4>
-
-<ul>
-  <li>Unable to listen to TTS output when pitch is set near maximum level.
-  </li>
-
-  <li>Accessibility features and settings may be disrupted with the user adds a
-  Work profile, including magnification gesture and setting. Accessibility
-  state is restored when the user next touches the associated settings.
-  </li>
-</ul>
-
-<h4>Camera</h4>
-
-<ul>
-  <li>The Camera app has exhibited instability; it may crash in various
-    circumstances, such as when launched in multi-window mode.
-  </li>
-
-  <li>Pressing the shutter continuously in panorama mode may cause the Camera
-  app to crash.
-  </li>
-</ul>
-
-<h4>Audio</h4>
-<ul>
-  <li>A platform audio player issue prevents some apps from functioning
-  normally. For example, Skype and other apps are affected by this issue.
-  </li>
-</ul>
-
-<h4>Connectivity</h4>
-
-
-<ul>
-  <li>When a Bluetooth Low Energy (BLE) peripheral role device advertises a
-  service and a BLE central role device connects, the peripheral role device
-  disconnects very quickly.
-  </li>
-
-  <li>Wi-Fi connection may be dropped when the screen is off.
-  </li>
-
-  <li>RFCOMM connections are unstable and may result in data corruption and
-  dangling connections.
-  </li>
-
-  <li>The active network state ({@link android.net.NetworkInfo#getState
-  NetworkInfo.getState()} and {@link android.net.NetworkInfo#getDetailedState
-  NetworkInfo.getDetailedState()}) might return incorrect values during some
-  restricted background scenarios.
-  </li>
-</ul>
-
-
-<h4>
-  Launcher
-</h4>
-
-<ul>
-  <li>The default launcher’s All Apps tray may become unresponsive after
-  cycling screen off / screen on. Returning to the homescreen and relaunching
-  the All Apps tray may resolve this issue.
-  </li>
-</ul>
-
-<h4>
-  Keyboard
-</h4>
-
-<ul>
-  <li>When updating a device running Android 6.0 or earlier to the N Developer
-  Preview, Google Keyboard does not preserve preferences data such as recent
-  emoji and sound settings.
-  </li>
-
-  <li>Google Indic Managed Keyboard may be unstable.
-  </li>
-
-  <li>When entering text in a password field, the user can select Russian as
-  the input language but the keyboard remains in English. This prevents the
-  user from entering Russian-language passwords.
-  </li>
-</ul>
-
-<h4>
-  Locale and languages
-</h4>
-
-<ul>
-  <li>When using a right-to-left (RTL) locale, the system may unexpectedly
-  switch to left-to-right (LTR) presentation after restarting the device.
-  </li>
-</ul>
-
-<h4>Media</h4>
-
-<ul>
-  <li>Media playback be be unreliable on Nexus 9 and Nexus Player, including
-  issues playing HD video.
-  </li>
-</ul>
-
-<h4>
-  Multi-window mode
-</h4>
-
-<ul>
-  <li>Device may freeze when changing orientation in multi-window mode.
-  </li>
-
-  <li>Several apps currently have issues with multi-window mode:
-    <ul>
-      <li>The system UI may crash when docking Settings &gt; Display &gt;
-      Screen brightness to multi-window.
-      </li>
-
-      <li>The Camera app may crash when launched in multi-window mode.
-      </li>
-
-      <li>YouTube may crash when launched into multi-window mode. To fix the
-      issue, you can clear the YouTube app’s data at Storage &gt; Apps &gt;
-      YouTube.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>
-  Google Play services
-</h4>
-
-<ul>
-  <li>Apps using Google Cast through Google Play services may be unstable when
-  the user selects a system locale that uses letters and numbers outside of the
-  ASCII range.
-  </li>
-</ul>
-
-<h4>
-  Android for Work and Google Apps Device Policy
-</h4>
-
-<ul>
-  <li>The Device Policy app may crash when the user unlocks the device with the
-  "device policy status" screen pinned.
-  </li>
-
-  <li>After setting up a work profile with file-based encryption enabled and
-  then turning off Work, users must unlock primary profile screen lock to once
-  again access Work apps.
-  </li>
-
-  <li>Device reboots when removing the security pattern lock and opening work
-  app/personal app in the multi-window.
-  </li>
-
-  <li>Setting DISALLOW_VPN_CONFIG is causing the consent dialog to appear in
-  always-on-vpn set by Device Policy Client.
-  </li>
-
-  <li>Traffic is not locked down until VPN is connected in always-on-vpn mode.
-  </li>
-</ul>
-
-<h4>
-  External storage
-</h4>
-
-<ul>
-  <li>Apps may become unstable when the user moves them from internal storage
-  to adoptable external storage (this can include SD card or devices attached
-  over USB).
-  </li>
-</ul>
-
-<h4>
-  Screen zoom and multiple APKs in Google Play
-</h4>
-
-<ul>
-  <li>On devices running Android N, Google Play services 9.0.83 incorrectly reports
-  the current screen density rather than the stable screen density. When screen
-  zoom is enabled on these devices, this can cause Google Play to select a
-  version of a multi-APK app that’s designed for smaller screens. This issue is
-  fixed in the next version of Google Play services and will be included in a
-  later Developer Preview release.
-  </li>
-
-  <li>On devices running Android N, Google Play services 9.0.83 currently reports
-  Vulkan support but not Vulkan version. This can cause Google Play to select a
-  version of a multi-APK app that’s designed for lower Vulkan support on
-  devices with higher version support. Currently, the Google Play Store does
-  not accept uploads of Apps which use Vulkan version targeting. This support
-  will be added to the Google Play Store in the future and fixed in the next
-  version of Google Play services (to be included in a later Developer Preview
-  release) any N devices using the version of Google Play services 9.0.83 will
-  continue to receive versions of Apps targeting basic Vulkan support.
-  </li>
-</ul>
-
-<h4>Notifications</h4>
-
-<ul>
-  <li>MessagingStyle does not show notifications with "null" (self) sender.
-  </li>
-</ul>
-
-<h4>Developer Tools</h4>
-
-<ul>
-  <li>
-    <code>adb</code> may sometimes disconnect while using JDWP debugging.
-  </li>
-</ul>
-
-
-<!-- DP2 Release Notes Archive -->
-
-<h2 id="dp2">Developer Preview 2</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Date: April 2016<br>
-        Builds: NPC91K, NPC91O<br>
-        Emulator support: x86 &amp; ARM (32/64-bit)<br>
-        Google Play services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp2-new">New in DP2</h3>
-
-<ul>
-  <li>Platform support for Vulkan, a new 3D rendering API that provides
-  explicit, low-overhead GPU (Graphics Processor Unit) control and offers
-  improved performance for draw-call heavy applications. For details, see the
-  <a href="{@docRoot}ndk/guides/graphics/index.html">documentation</a>.
-  </li>
-
-  <li>New people emoji with support for skin tones, and new Unicode 9 glyphs.
-  Skin tone and new emoji will not show up until keyboards build support for
-  them in the palette. Apps should not need to take any action to take
-  advantage of these new emoji, unless the apps use a non-system font. IME
-  developers need to incorporate support for the new emoji.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/api-overview.html#launcher_shortcuts">Launcher
-    Shortcuts API</a>: Apps can use <code>ShortcutManager</code> to send
-    shortcuts to starting points within themselves to the launcher.
-  </li>
-
-  <li>
-    <a href="{@docRoot}preview/features/multi-window.html">Multi-Window</a>:
-    You can now specify a separate minimum height and minimum width for an
-    activity. In addition, several API names have been slightly changed.
-  </li>
-</ul>
-
-<h4 id="dp2-fixes">Fixes for issues reported by developers</h4>
-
-<p>
-  A number of issues reported by developers have been fixed, including:
-</p>
-
-<ul>
-  <li>Can’t connect to hidden SSID or non-broadcast Wi-Fi. (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=203116">203116</a>)
-  </li>
-
-  <li>Microphone mute state persists across activities. (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=205922">205922</a>)
-  </li>
-
-  <li>Changing multi-window focus pauses YouTube. (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=203424">203424</a>)
-  </li>
-
-  <li>Direct Reply may close open activity. (bug <a href=
-  "https://code.google.com/p/android/issues/detail?id=204411">204411</a>)
-  </li>
-
-  <li>Various stability fixes.
-  </li>
-</ul>
-
-<h3 id="dp2-general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for <strong>app developers only</strong>
-  and is designed for use in compatibility testing and early development only.
-  Please be aware of these general notes about the release:
-</p>
-
-<ul>
-
-  <li>The development tool components and support libraries have been updated
-  for the DP2 release. Make sure to update your preview development environment
-  before developing for DP2. For instructions on setting up your development
-  environment, see
-  <a href="{@docRoot}preview/setup-sdk.html">Set Up the Preview</a>.
-  </li>
-
-  <li>This release has various stability and performance issues on all devices
-  that make it <strong>not suitable for daily use on phone or tablet</strong>,
-  especially for non-developers.
-  </li>
-
-  <li>Battery life and performance have not yet been optimized with this
-  release:
-
-    <ul>
-      <li>System and app <strong>performance is known to be periodically slow /
-      janky</strong>, and devices may become occasionally unresponsive. These
-      problems may become more acute with prolonged use.
-      </li>
-
-      <li>Battery life may be regressed in this release for screen-on and
-      screen-off use cases.
-      </li>
-    </ul>
-  </li>
-
-  <li>Some <strong>apps may not function normally</strong> on Developer Preview
-  2. This includes Google’s apps as well as other apps.
-  </li>
-
-  <li>This early build is not <strong>Compatibility Test Suite (CTS)
-  approved</strong>. Apps that depend on CTS approved builds won’t work
-  (Android Pay for example).
-  </li>
-
-  <li>This preview release supports the following devices: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, and Pixel C, as well as General Mobile 4G
-  (Android One). Support for Nexus Player is coming soon.
-  </li>
-
-
-  <li><a href=
-  "https://github.com/googlesamples/android-testdpc/releases">TestDPC</a> has
-  been updated to handle API changes between DP1 and DP2.
-  </li>
-</ul>
-
-<h3 id="dp2-ki">Known Issues</h3>
-
-<h4>Performance and battery</h4>
-
-<ul>
-  <li>System and app performance is known to be <strong>periodically slow /
-  janky</strong>, and device may become occasionally unresponsive. These
-  problems may become more acute with prolonged use.
-  </li>
-</ul>
-
-<h4>Google accounts</h4>
-
-<ul>
-  <li>In some circumstances, there can be issues with
-  <code>AccountManagerService</code> that prevent logging in to Google accounts
-  </li>
-</ul>
-
-<h4>System update</h4>
-
-<ul>
-  <li>Device may restart immediately after updating to DP2.
-  </li>
-</ul>
-
-<h4>Accessibility</h4>
-
-<ul>
-  <li>Problem with listening to text-to-speech (TTS) output when pitch is set
-  near maximum level.
-  </li>
-</ul>
-
-<h4>Bluetooth</h4>
-
-<ul>
-  <li>Bluetooth Low Energy (LE) GATT characteristics are using the wrong write
-  type and will not be sent to a remote device. Thus, for example, some fitness
-  devices will not work.
-  </li>
-</ul>
-
-<h4>Setup wizard</h4>
-
-<ul>
-  <li>The option to restore data on a new device (or newly reset device) from
-  "Your Google Account" is not actionable in the setup wizard. You must restore
-  data from an existing device by selecting "another Android device" in the
-  setup wizard, or else set it up as a new device.
-  </li>
-</ul>
-
-<h4>OEM unlock</h4>
-
-<ul>
-  <li>On some devices, <strong>Enable OEM unlock</strong> is grayed out in
-  "Developer Options" while running DP2.<br>
-  <strong>Workaround:</strong> Opt in to
-  the Android Beta Program (if you are not already opted in) by visiting
-  <a href="https://www.google.com/android/beta" class=
-  "external-link">www.google.com/android/beta</a>. Then, opt out and accept the
-  downgrade OTA. Opting out causes the device to downgrade to Android 6.0. You
-  should now be able to choose <strong>Enable OEM unlock</strong> in
-  "Developer Options". Personal data is erased when you downgrade the
-  device; however, unlocking the bootloader would have erased this data anyway.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Work Security Challenge
-    <ul>
-      <li>After migration to N, or after the user creates work profiles, work
-      profiles can't create keys in the keystore until the user changes their
-      pattern, PIN, or password, or sets up a Work Challenge.
-      </li>
-
-      <li>In Direct boot mode, applying the passcode restrictions to the device
-      causes the work profile to be unlocked, even though the device is locked.
-      This makes the work profile accessible even though it should be protected
-      by the device lock screen.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>If Always On VPN mode is turned on, but VPN is not available, apps
-      connect over the ordinary network. Apps should be offline if they have no
-      VPN connection available.
-      </li>
-
-      <li>When Always On mode is on, a VPN connection is not established after
-      a device reboots into Direct boot mode, even after the user unlocks the
-      secure lock screen.
-      </li>
-    </ul>
-  </li>
-
-  <li>Suspend Packages
-    <ul>
-      <li>Device admins can suspend critical system packages, which may lead to
-      unexpected behavior, such as placing calls despite the "Telephone
-      disabled" dialog being displayed.
-      </li>
-    </ul>
-  </li>
-
-  <li>Other
-    <ul>
-      <li>The Settings app crashes on launch if {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} is set to true when
-      the user inserts physical media such as an SD card.
-      </li>
-
-      <li>The first check-in in a Work Profile takes several minutes to
-      complete.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4 id="vulkan">Vulkan</h4>
-
-<ul>
-   <li>Nexus 5X/6P</li>
-   <ul>
-      <li>Gaps between binding numbers and non-zero
-      as the first binding number causes {@code vkCreateGraphicsPipeline()} to fail.</li>
-      <li>Vulkan exhibits incorrect sampling behavior on projected texture coordinates.</li>
-      <li>in the multithreadCmdBuffer sample, {@code vkCmdClearColorImage()} crashes when
-      running with the N-DP2 driver.</li>
-      <li>Return values from {@code vkGetPhysicalDeviceFormatProperties()} do not set a value
-      for {@code VkFormatProperties::linearTilingFeatures}, which takes a value of 0 as
-      a result.</li>
-      <li>Vulkan floating point frame buffer attachments are not handled correctly.</li>
-    </ul>
-   <li>Nexus Player</li>
-   <ul>
-      <li>SPIR-V shaders may trigger driver asserts.</li>
-      <li>Some pipeline configurations may cause {@code vkCreateGraphicsPipeline()}
-      to crash.</li>
-  </ul>
-</ul>
-
-<h4>Device-specific issues</h4>
-
-<dl>
-  <dt>
-    <strong>Android One</strong>
-  </dt>
-
-  <dd>
-    Data connection fails when device is switched from slot 1 to slot 2 SIM.
-  </dd>
-
-  <dt>
-    <strong>Pixel C</strong>
-  </dt>
-
-  <dd>
-    Unable to toggle Voice Search "Always On" option.
-  </dd>
-
-  <dt>
-    <strong>Nexus 6</strong>
-  </dt>
-
-  <dd>
-    Camera pictures in portrait orientation are corrupted, except for HDR+
-    photos.
-  </dd>
-
-  <dt>
-    <strong>Nexus Player</strong>
-  </dt>
-
-  <dd>
-    Playback of Netflix HD content may fail on Nexus Player.
-  </dd>
-
-  <dd>
-    Any application that relies on dynamic video resolution changes may fail on
-    Nexus Player.
-  </dd>
-
-  <dd>
-    Any application that use the VP9 video codec may fail on Nexus Player.
-  </dd>
-</dl>
-
-<!-- DP 1 release notes archive -->
-
-<h2 id="dp1">Developer Preview 1</h2>
-
-<div class="wrap">
-  <div class="cols">
-    <div class="col-6of12">
-      <p>
-        <em>Date: March 2016<br>
-        Builds: NPC56P, NPC56R, updated: NPC56W, NPC56X<br>
-        Emulator support: x86 &amp; ARM (32/64-bit)<br>
-        Google Play services: 8.4</em>
-      </p>
-    </div>
-  </div>
-</div>
-
-<h3 id="dp1-general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for app developers only and is designed for
-  use in compatibility testing and early development only. Please be aware of
-  these general notes about the release:
-</p>
-<ul>
-  <li>This release has various stability and performance issues on all devices
-  that make it <em>not suitable for daily use on phone or tablet</em>,
-  especially for non-developers.
-  </li>
-
-  <li>System and app performance is known to be <strong>periodically slow /
-  janky</strong>, and device may become occasionally unresponsive. These
-  problems may become more acute with prolonged use.
-  </li>
-
-  <li>Battery life may be regressed in this release for screen-on and
-  screen-off use cases.
-  </li>
-
-  <li>Some apps may not function normally on Developer Preview 1. This includes
-  Google’s apps as well as other apps.
-  </li>
-
-  <li>This early build is not Compatibility Test Suite (CTS) approved. Apps
-  that depend on CTS approved builds (Android Pay for example) won’t work.
-  </li>
-
-  <li>This preview release supports the following devices: Nexus 5X, Nexus 6,
-  Nexus 6P, Nexus 9, Nexus Player, and Pixel C, as well as General Mobile 4G
-  (Android One).
-  </li>
-</ul>
-
-<h3 id="dp1-platform">Platform Issues</h3>
-
-<h4>Performance and battery</h4>
-
-<ul>
-  <li>System and app performance is known to be <strong>periodically slow /
-  janky</strong>, and device may become occasionally unresponsive. These
-  problems may become more acute with prolonged use.
-  </li>
-
-  <li>Battery life may be regressed in this release for screen-on and
-  screen-off use cases.
-  </li>
-</ul>
-<h4 id="dialer">Dialer</h4>
-
-<ul>
-  <li>Dialer app does not support Direct boot. This will be addressed later in
-  N Developer Preview.
-  </li>
-
-  <li>Voicemail playback does not work.
-  </li>
-</ul>
-
-<h4>Microphone</h4>
-
-<ul>
-   <li>The system may incorrect persists the microphone mute state across apps and reboots. If you mute the microphone in an app and the state is persisted, open any app that has microphone mute controls and unmute the microphone.</li>
-</ul>
-
-<h4 id="ui">System UI</h4>
-
-<ul>
-  <li>Some new or modified strings in the system UI are not translated to all
-  languages.
-  </li>
-
-  <li>Overview UI is still in development, and subject to change. For example,
-  we intend to remove the timer that appears when the user switches between
-  apps.
-  </li>
-
-  <li>Settings controls and toggles may be slow or appear to be unresponsive.
-  </li>
-
-  <li>Visual design of notifications is subject to change.
-  </li>
-
-  <li>In the Gmail app, direct archiving of emails included in a notification
-  bundle does not work properly.
-  </li>
-</ul>
-
-<h4>Android for Work</h4>
-
-<ul>
-  <li>Work Security Challenge
-    <ul>
-      <li>After migration to N, or after the user creates work profiles, work
-      profiles can't create keys in the keystore until the user changes their
-      pattern, PIN, or password, or sets up a Work Challenge.
-      </li>
-
-      <li>In Direct boot mode, applying the passcode restrictions to the device
-      causes the work profile to be unlocked, even though the device is locked.
-      This makes the work profile accessible even though it should be protected
-      by the device lock screen.
-      </li>
-
-      <li>When the user enters a wrong password and pin, the system does not
-      display any informational message; instead, it only clears the input
-      field. This issue does not affect pattern or fingerprint input.
-      </li>
-
-      <li>On a tablet, the background displayed with the work challenge is
-      disproportionately small.
-      </li>
-
-      <li>The version of <a href=
-      "https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
-        Google Apps Device Policy</a> that is bundled with N Developer Preview
-        does not yet support the Work Profile Security Challenge feature.
-        Developers should instead use <a href=
-        "https://github.com/googlesamples/android-testdpc/releases">TestDPC</a>
-        to test this feature.
-      </li>
-    </ul>
-  </li>
-
-  <li>Always On VPN
-    <ul>
-      <li>If Always On VPN mode is turned on, but VPN is not available, apps
-      not specified as exceptions to the Always On policy connect over the
-      ordinary network. Unless specified as exceptions to Always On VPN policy,
-      apps should be offline if they have no VPN connection available.
-        <ul>
-          <li>When Always On mode is on, a VPN connection is not established
-          after a device reboots into Direct boot mode, even after the user
-          unlocks the secure lock screen.
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-
-  <li>Improved Contacts
-    <ul>
-      <li>Bluetooth PBAP/MAP devices do not display Caller ID for work
-      contacts. The next release of Preview resolves this issue.
-      </li>
-    </ul>
-  </li>
-
-  <li>Work Mode
-    <ul>
-      <li>The Google Now Launcher does not display whether Work Mode is on or
-      off. The Launcher also does not show app suspension state.
-      </li>
-
-      <li>After the user turns Work Mode off and on, the system no longer shows
-      Work profile app widgets, such as Calendar.
-      </li>
-    </ul>
-  </li>
-
-  <li>Suspend Packages
-  </li>
-
-  <li>Device admins can suspend critical system packages, which may lead to
-  unexpected behavior, such as placing calls despite the Telephone disabled
-  dialog’s being displayed.
-  </li>
-
-  <li>Other
-    <ul>
-      <li>The Settings app crashes on launch if {@link
-      android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} is set to true when
-      the user inserts physical media such as an SD card.
-      </li>
-
-      <li>The {@code DPM.setPackagesSuspended} state does not persist when the
-      user uninstalls and then reinstalls an app. Either the app should remain
-      suspended after uninstall/reinstall, or suspended apps should not be
-      uninstallable
-      </li>
-
-      <li>The first check-in in a Work Profile takes several minutes to
-      complete. This may cause the device to take longer than normal to be
-      visible in the Play EMM API.
-      </li>
-
-      <li>Notifications from Work Profile apps are not visible to notification
-      listeners installed in the personal profile. As a result, the system does
-      not display Notifications as expected.
-      </li>
-
-    </ul>
-  </li>
-</ul>
-
-<h4 >Keyboard</h4>
-
-<ul>
-  <li>Bluetooth pairing between keyboards and Android devices may be unstable.
-  </li>
-</ul>
-
-<h4 >Video</h4>
-
-<ul>
-<li>Video playback may lag and show interruptions.</li>
-</ul>
-
-<h4>Wi-Fi</h4>
-
-<ul>
-  <li>Wi-Fi has undergone some refactoring which may change API corner case
-  behavior. Specifically, applications which attempt to connect to specific
-  networks, or attempt to reconnect to networks should retest.
-  </li>
-
-  <li>The legacy DHCP client has been removed from the platform. The only DHCP
-  client that the platform supports is the DHCP client introduced in M.
-  </li>
-</ul>
-
-<h4>Direct boot</h4>
-
-<ul>
-  <li>NFC doesn't function until first unlock.
-    <ul>
-      <li>When a phone with Bluetooth enabled is restarted, Bluetooth does not
-      turn on automatically. You must manually re-enable Bluetooth.
-      </li>
-
-      <li>Under some circumstances, the default ringtone may not sound for
-      phone calls and messages. This behavior is fixed in the next N Preview
-      release, with one exception (and workaround):
-      </li>
-
-      <li>On a device that is not freshly wiped--one that has been booted at
-      least once since being set to direct boot mode--the default notification
-      ringtone does not sound. The user can work around this issue by manually
-      selecting a ringtone from Settings.
-      </li>
-
-      <li>Direct boot is not enabled by default on devices running an N
-      Developer Preview build. To enable direct boot for testing and
-      development, go to Developer Options and tap Convert to File Encryption.
-      In this dev preview, this requires a factory reset to repartition and
-      reformat your device for File-based Encryption.
-      </li>
-    </ul>
-  </li>
-</ul>
-
-<h4>Picture-in-picture for Android TV</h4>
-
-<ul>
-  <li>The PIP integration in the Recents UI is not finalized, and is subject to
-  change.
-    <ul>
-      <li>The animation of the PIP window is not smooth. Future releases of the
-      Preview will improve this.
-      </li>
-    </ul>
-  </li>
-
-  <li style="list-style: none">Future releases of the Preview will improve upon
-  the visual design and layout alignment of PIP.
-  </li>
-</ul>
-
-<h4>Bug reports</h4>
-
-<ul>
-  <li>Bug reports do not always complete successfully (as a workaround,
-  sometimes they can still be accessed through the bug report document provider
-  in internal storage).
-  </li>
-</ul>
-
-<h4>Split-screen Multi-window</h4>
-
-<ul>
-  <li>Apps may experience crashes and unexpected UI behavior when put into
-  split-screen mode. These are app issues that must be fixed by the app
-  developer.
-  </li>
-
-  <li>When an app targets a version of the Android platform earlier than N, the
-  App may not work with split-screen toast may appear multiple times.
-  </li>
-
-  <li>Long-pressing the Overview button while using an app with a fixed
-  orientation may produce unexpected app behavior.
-  </li>
-
-  <li>Apps may flicker while resizing.
-  </li>
-
-  <li>Animations are not yet final.
-  </li>
-</ul>
-
-<h4>Input method</h4>
-
-<ul>
-  <li>Google Keyboard unexpectedly falls back to the generic Google keyboard
-  when <b>Use system language</b>, but Google Keyboard doesn’t support any of
-  the languages selected in the system-language preferences. It should fall
-  back to American English.
-    <p>
-      You can work around this problem by adding at least one language that
-      Google Keyboard supports.
-    </p>
-  </li>
-</ul>
-
-<h4>Accessibility</h4>
-
-<ul>
-  <li>TalkBack exhibits issues with features including Notifications, Quick
-  Settings Tiles and Multi-window display that may cause system crashing or
-  lack of spoken feedback from TalkBack. Future releases of the preview will
-  address these issues.
-  </li>
-</ul>
-
-<h3 id="dp1-device-sp">Device-Specific Notes and Issues</h3>
-
-<h4>Nexus Player</h4>
-<ul>
-  <li>Video playback, app compatibility and stability issues are expected on
-  Nexus Player in this release of the Preview.
-  </li>
-</ul>
-
-<h4>Pixel C</h4>
-<ul>
-<li>Multi-window resizing may cause crashing.</li>
-</ul>
-
-<h4>Nexus 9</h4>
-<ul>
-<li>Nexus 9 devices may not start after receiving an over-the-air (OTA) update
-  via the Android Beta Program. To recover from this issue, you can try
-  to manually install the OTA image. For more information, see
-  <a href="{@docRoot}preview/download-ota.html">Applying a Device OTA Image</a>.
-</li>
-</ul>
-
diff --git a/docs/html/topic/arc/_book.yaml b/docs/html/topic/arc/_book.yaml
new file mode 100644
index 0000000..42287a7
--- /dev/null
+++ b/docs/html/topic/arc/_book.yaml
@@ -0,0 +1,9 @@
+toc:
+- title: Optimizing Apps for Chromebooks
+  path: /topic/arc/index.html
+- title: App Manifest Compatibility for Chromebooks
+  path: /topic/arc/manifest.html
+- title: Loading Apps on Chromebooks
+  path: /topic/arc/sideload.html
+- title: Chrome OS Device Support for Apps
+  path: /topic/arc/device-support.html
diff --git a/docs/html/topic/arc/device-support.jd b/docs/html/topic/arc/device-support.jd
new file mode 100644
index 0000000..fc471ac
--- /dev/null
+++ b/docs/html/topic/arc/device-support.jd
@@ -0,0 +1,153 @@
+page.title=Chrome OS Device Support for Apps
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#overview">Overview</a></li>
+        <li><a href="#support">Supported Platforms</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>
+You can use the Google Play Store to install Android apps on several Google
+Chromebooks. This document describes the Chromebooks, Chromeboxes, and
+Chromebases that can install Android apps, both currently and in upcoming
+releases of Chrome OS.
+</p>
+
+<h2 id="overview">Overview</h2>
+
+<p>
+The same Android apps that run on phones and tablets can run on Chromebooks
+without compromising their speed, simplicity, or security. To develop the best
+experience for Android apps across Chromebooks, you should test your app on a
+suite of devices that consists of the following categories:
+</p>
+
+<ul>
+  <li>
+    ARM architecture.
+  </li>
+  <li>
+    Intel x86 architecture.
+  </li>
+  <li>
+    Touch.
+  </li>
+  <li>
+    Non-touch (uses fake-touch).
+  </li>
+  <li>
+    Convertible.
+  </li>
+</ul>
+
+<p>To learn more about Google Play Store support on Chromebooks, see the
+following <a class="external-link"
+href="https://chrome.googleblog.com/2016/05/the-google-play-store-coming-to.html">
+Google Chrome blog post</a>.
+</p>
+
+<p class="note"><strong>Note: </strong>You may elect to exclude your app from
+being available to certain Android devices, such as Chromebooks. For more
+information, visit <a class="external-link"
+href="https://support.google.com/googleplay/android-developer/answer/1286017">
+View &amp; restrict your app's compatible devices</a>.
+</p>
+
+<p>
+The following section lists the Chromebooks that work with Android apps and the
+categories that each device satisfies.
+</p>
+
+<h2 id="support">Supported Platforms</h2>
+
+<p>
+Android apps are not available on every Chromebook, but Google continues to
+evaluate more devices based on a range of factors, such as processor type, GPU,
+and drivers. The following table shows the platforms that currently support
+Android apps:
+</p>
+
+<p class="table-caption" id="Objects-and-interfaces">
+  <strong>Table 1.</strong> Chromebooks that currently support Android apps.</p>
+<table>
+  <tr>
+    <th scope="col">Manufacturer</th>
+    <th scope="col">Model</th>
+    <th scope="col">Architecture</th>
+    <th scope="col">Touchscreen support</th>
+    <th scope="col">Convertible</th>
+  </tr>
+  <tr>
+    <td>Acer</td>
+    <td>Chromebook R11 / C738T</td>
+    <td>Intel x86</td>
+    <td>Yes</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>Asus</td>
+    <td>Chromebook Flip</td>
+    <td>ARM</td>
+    <td>Yes</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>Google</td>
+    <td>Chromebook Pixel (2015)</td>
+    <td>Intel x86</td>
+    <td>Yes</td>
+    <td>No</td>
+  </tr>
+</table>
+
+<p>
+The following list shows the platforms that will support Android apps in an
+upcoming release of Chrome OS:
+</p>
+
+<ul>
+  <li><strong>Acer: </strong>Chromebook 11 C740, Chromebook 11 CB3-111 / C730 /
+  C730E / CB3-131, Chromebook 14 CB3-431, Chromebook 14 for Work, Chromebook
+  15 CB5-571 / C910, Chromebook 15 CB3-531, Chromebox CXI2, Chromebase 24
+  </li>
+  <li><strong>Asus: </strong>Chromebook C200, Chromebook C201,
+  Chromebook C202SA, Chromebook C300SA, Chromebook C300, Chromebox CN62,
+  Chromebit CS10</li>
+  <li><strong>AOpen: </strong>Chromebox Commercial,
+  Chromebase Commercial 22"</li>
+  <li><strong>Bobicus: </strong>Chromebook 11</li>
+  <li><strong>CDI: </strong>eduGear Chromebook K Series,
+  eduGear Chromebook M Series, eduGear Chromebook R Series</li>
+  <li><strong>CTL: </strong>Chromebook J2 / J4, N6 Education Chromebook,
+  J5 Convertible Chromebook</li>
+  <li><strong>Dell: </strong>Chromebook 11 3120, Chromebook 13 7310</li>
+  <li><strong>Edxis: </strong>Chromebook, Education Chromebook</li>
+  <li><strong>Haier: </strong>Chromebook 11, Chromebook 11e, Chromebook 11 G2
+  </li>
+  <li><strong>Hexa: </strong>Chromebook Pi</li>
+  <li><strong>HiSense: </strong>Chromebook 11</li>
+  <li><strong>Lava: </strong>Xolo Chromebook</li>
+  <li><strong>HP: </strong>Chromebook 11 G3 / G4 / G4 EE, Chromebook 14 G4,
+  Chromebook 13</li>
+  <li><strong>Lenovo: </strong>100S Chromebook, N20 / N20P Chromebook,
+  N21 Chromebook, ThinkCentre Chromebox, ThinkPad 11e Chromebook,
+  N22 Chromebook, Thinkpad 13 Chromebook, Thinkpad 11e Chromebook Gen 3</li>
+  <li><strong>Medion: </strong>Akoya S2013, Chromebook S2015</li>
+  <li><strong>M&amp;A: </strong>Chromebook</li>
+  <li><strong>NComputing: </strong>Chromebook CX100</li>
+  <li><strong>Nexian: </strong>Chromebook 11.6"</li>
+  <li><strong>PCMerge: </strong>Chromebook PCM-116E</li>
+  <li><strong>Poin2: </strong>Chromebook 11</li>
+  <li><strong>Samsung: </strong>Chromebook 2 11" - XE500C12, Chromebook 3</li>
+  <li><strong>Sector 5: </strong>E1 Rugged Chromebook</li>
+  <li><strong>Senkatel: </strong>C1101 Chromebook</li>
+  <li><strong>Toshiba: </strong>Chromebook 2, Chromebook 2 (2015)</li>
+  <li><strong>True IDC: </strong>Chromebook 11</li>
+  <li><strong>Viglen: </strong>Chromebook 11</li>
+</ul>
diff --git a/docs/html/topic/arc/index.jd b/docs/html/topic/arc/index.jd
new file mode 100644
index 0000000..d46fbc8
--- /dev/null
+++ b/docs/html/topic/arc/index.jd
@@ -0,0 +1,398 @@
+page.title=Optimizing Apps for Chromebooks
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#update-manifest">Update Your App's Manifest File</a></li>
+        <li><a href="#leverage">Leverage Support for Multi-Window Mode</li>
+        <li><a href="#keyboard">Support the Keyboard, Trackpad, and Mouse</a></li>
+        <li><a href="#backup">Use Backup and Restore Effectively</a></li>
+        <li><a href="#update-ndk">Update the NDK Libraries</a></li>
+        <li><a href="#support-new-features">Plan Support for New Android Features</a></li>
+        <li><a href="#testing">Test Your App</a></li>
+        <li><a href="#setup">Set Up ADB</a></li>
+        <li><a href="#learning-materials">Additional Learning Materials</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>
+Google Chromebooks now support the Google Play Store and Android apps. This
+document describes some ways that you can optimize your Android apps for
+Chromebooks.
+</p>
+
+<h2 id="update-manifest">Update Your App's Manifest File</h2>
+
+<p>
+To begin optimizing your Android app for Chromebooks, update your manifest file
+(<code>AndroidManifest.xml</code>) to account for some key hardware and software
+differences between Chromebooks and other devices running Android.
+</p>
+
+<p>
+As of Chrome OS version M53, all Android apps that don't explicitly require the
+<a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features"><code>android.hardware.touchscreen</code></a>
+feature will also work on Chrome OS devices that support the
+<code>android.hardware.faketouch</code> feature. However, if you want your app
+to work on all Chromebooks in the best possible way, go to your manifest file
+and adjust the settings so that the <code>android.hardware.touchscreen</code>
+feature is not required, as shown in the following example. You should also
+review your mouse and keyboard interactions.
+</p>
+
+<pre>
+&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          ... &gt;
+    &lt;!-- Some Chromebooks don't support touch. Although not essential,
+         it's a good idea to explicitly include this declaration. --&gt;
+    &lt;uses-feature android:name="android.hardware.touchscreen"
+                  required="false" /&gt;
+&lt;/manifest&gt;
+</pre>
+
+<p>
+Different devices often have different sensors available in them. See the <a
+href="https://developer.android.com/guide/topics/sensors/sensors_overview.html">Sensors
+Overview</a> document for an overview of all sensors that the Android platform
+supports. Although Android handheld devices may have GPS and accelerometers,
+sensors are not guaranteed to be available in every Chromebook. However, there
+are cases where the functionality of a sensor is provided in another way. For
+example, Chromebooks may not have GPS sensors, but they still provide location
+data based on Wi-Fi connections. If you want your app to run on Chromebooks,
+regardless of sensor support, you should update your manifest file so that none
+of the sensors are required.
+</p>
+
+<p class="note"><strong>Note</strong>: If you don't require a particular sensor
+for your app but still use measurements from the sensor when it's available,
+make sure you dynamically check for the sensor's availability before trying to
+gather information from it in your app.
+</p>
+
+<p>
+Some software features are unsupported on Chromebooks. For example, apps that
+provide custom IMEs, app widgets, live wallpapers, and app launchers aren't
+supported and won't be available for installation on Chromebooks. For a complete
+list of software features that aren't currently supported on Chromebooks, see <a
+href="{@docRoot}topic/arc/manifest.html#incompat-software-features">incompatible
+software features</a>.
+</p>
+
+<h2 id="leverage">Leverage Support for Multi-Window Mode</h2>
+
+<p>
+The implementation of Android apps on Chrome OS includes basic multi-window
+support. Instead of automatically drawing over the full screen, Android renders
+apps on Chrome OS into layouts that are appropriate for this form factor. Google
+provides support for the most common window layouts:
+
+<ul>
+  <li>
+    <strong>Portrait</strong> &ndash; Similar to Nexus 5.
+  </li>
+  <li>
+    <strong>Landscape</strong> &ndash; Similar to Nexus 7.
+  </li>
+  <li>
+    <strong>Maximized</strong> &ndash; Uses all available screen pixels.
+  </li>
+</ul>
+
+<p>
+In addition, end users are presented with window controls to toggle among all
+available layouts. By choosing the correct orientation option, you can ensure
+that the user has the correct layout upon launching the app. If an app is
+available in portrait and landscape, it defaults to landscape if possible. After
+this option is set, it is remembered on a per-app basis. Google recommends that
+you test your app to ensure that it handles changes in window size
+appropriately.
+</p>
+
+<h2 id="keyboard">Support the Keyboard, Trackpad, and Mouse</h2>
+
+<p>
+All Chromebooks have a physical keyboard and a trackpad, and some Chromebooks
+have a touchscreen as well. Some devices can even convert from a laptop to a
+tablet.
+</p>
+
+<p>
+Many existing apps already support mouse and trackpad interactions with no extra
+work required. However, it's always best to adjust your app's behavior
+appropriately when users interact with it using a trackpad instead of a
+touchscreen, and you should support and distinguish between both interfaces
+properly. Given the support for physical keyboards, you can now provide hotkeys
+to enable your app's users to be more productive. For example, if your app
+supports printing, you can use <strong>Ctrl+P</strong> to open a print dialog.
+</p>
+
+<h2 id="backup">Use Backup and Restore Effectively</h2>
+
+<p>
+One of the strongest features of Chromebooks is that users can easily migrate
+from one device to another. That is, if someone stops using one Chromebook and
+starts using another, they simply have to sign in, and all of their apps appear.
+</p>
+
+<p class="note"><strong>Tip: </strong> Although it's not mandatory, backing up
+your app's data to the cloud is a good idea.
+</p>
+
+<p>
+Chromebooks can also be shared among a large number of people, such as in
+schools. Since local storage is not infinite, entire accounts&mdash;together
+with their storage&mdash;can be removed from the device at any point. For
+educational settings, it's a good idea to keep this scenario in mind.
+</p>
+
+<h2 id="update-ndk">Update the NDK Libraries</h2>
+
+<p>
+If your app uses the Android NDK libraries, and its target SDK version is 23 or
+higher, ensure that text relocations are removed from both the ARM and x86
+versions of your NDK libraries, as they're not compatible in Android 6.0 (API
+level 23) and higher. By leaving text relocations in your NDK libraries, you may
+also cause incompatibility errors with Chromebooks, especially when running on
+a device that uses an x86 architecture.
+</p>
+
+<p class="note"><strong>Note: </strong>To view more details on updating NDK
+libraries properly, see the <a
+href="https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime">
+Runtime</a> section of the Android 6.0 Changes document.
+</p>
+
+<h2 id="support-new-features">Plan Support for New Android Features</h2>
+
+<p>
+Android apps on Chromebooks initially ship with APIs for Android 6.0 (API level
+23). By following the best practices outlined above, your app is likely to be
+compatible with the multi-window improvements introduced in Android 7.0 (API
+level 24). It's good to plan support for the APIs and behaviors available as of
+Android 7.0, which feature several improvements. For example, multi-window
+support is better integrated, and you're able to resize activities arbitrarily,
+making them feel more natural. You can also access APIs for drag-and-drop
+operations across apps and mouse cursor control.
+</p>
+
+<h2 id="testing">Test Your App</h2>
+
+<p>
+To <a href="{@docRoot}topic/arc/sideload.html">load</a> your app onto your
+Chromebook for testing, you must enter <em>Developer</em> mode on your Chrome OS
+device and enable <em>unknown sources</em>. See the <a class="external-link"
+href="https://www.chromium.org/chromium-os/poking-around-your-chrome-os-device#TOC-Putting-your-Chrome-OS-Device-into-Developer-Mode">
+Putting your Chrome OS Device into Developer Mode</a> document for detailed
+instructions about moving your device into Developer mode. After your device is
+in Developer mode, you can go to your Chrome settings and select <strong>Enable
+Unknown Sources</strong> under the <em>security in app</em> settings.
+</p>
+
+<p>
+After enabling Developer mode, you can load an Android app onto your Chrome OS
+device using one of several methods. For more details, see the <a
+href="{@docRoot}topic/arc/sideload.html#load-app">Load Your App</a> section of
+the Loading Apps on Chromebooks page.
+</p>
+
+<p class="note"><strong>Note: </strong>To ensure that your Android app works
+well on a variety of Chromebook devices and available form factors, Google
+recommends that you test your app on an ARM-based Chromebook, an x86-based
+Chromebook, a device with a touchscreen and one without one, and on a
+convertible device (one that can change between a laptop and a tablet). To view
+the full list of supported devices, see the <a
+href="{@docRoot}topic/arc/device-support.html">Chrome OS Device Support for
+Apps</a> page.</p>
+
+<h2 id="setup">Set Up ADB</h2>
+
+<p>
+Before attempting to set up an ADB connection, you must start your Chrome OS in
+<a class="external-link"
+href="https://www.chromium.org/chromium-os/poking-around-your-chrome-os-device">
+Developer Mode</a> so that you have the ability to install Android apps on the
+Chromebook.
+</p>
+
+<p class="caution"><strong>Caution: </strong>After switching your Chrome OS
+device to Developer mode, it restarts and clears all existing data on the
+device.
+</p>
+
+<p>
+To set up ADB, complete the following steps:
+</p>
+
+<ol>
+  <li>
+    Press <strong>Ctrl+D</strong> to start your device.
+  </li>
+  <li>
+    Finish the setup process.
+  </li>
+  <li>
+    Log into your test account.
+  </li>
+  <li>
+    Accept the Google Play Store terms and service conditions.
+  </li>
+</ol>
+
+<h3>Configure the firewall</h3>
+
+<p>
+To configure the Chrome OS firewall to allow incoming ADB connections, complete
+the following steps:
+</p>
+
+<ol>
+  <li>
+    Press <strong>Ctrl+Alt+T</strong> to start the Chrome OS terminal.
+  </li>
+  <li>
+    Type <strong>shell</strong> to get to the bash command shell:
+<pre class="no-pretty-print">
+crosh> shell
+chronos@localhost / $
+</pre>
+  </li>
+  <li>
+    Type the following commands to set up developer features and enable
+    disk-write access for the firewall settings changes:
+<pre class="no-pretty-print">
+chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification
+chronos@localhost / $ sudo reboot
+</pre>
+    The <em>sudo reboot</em> command restarts your Chromebook.
+<p class="note"><strong>Note</strong>: You can press the <strong>Tab</strong>
+key to enable autocompletion of file names.</p>
+  </li>
+  <li>
+    After your device restarts, log in to your test account and type the
+    following command to enable the <em>secure shell</em> and configure the
+    firewall properly:
+<pre class="no-pretty-print">
+chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_ssh
+</pre>
+    You can now exit out of the shell.
+  </li>
+</ol>
+
+<p class="note"><strong>Note</strong>: You must complete this procedure only
+once on your Chromebook.</p>
+
+<h3>Check the IP address of your Chromebook</h3>
+
+<p>
+To verify the IP address of your Chromebook, complete the following steps:
+</p>
+
+<ol>
+  <li>
+    Click the clock icon in the bottom-right area of the screen.
+  </li>
+  <li>
+    Click <strong>Settings</strong>.
+  </li>
+  <li>
+    The <em>Internet Connection</em> section in the Settings area lists all of
+    the available networks. Select the one that you want to use for ADB.
+  </li>
+  <li>
+    Take note of the IP address that appears.
+  </li>
+</ol>
+
+<h3>Enable ADB debugging</h3>
+
+<p>
+To enable ADB debugging, complete the following steps:
+</p>
+
+<ol>
+  <li>
+    Click the clock icon in the bottom-right area of the screen.
+  </li>
+  <li>
+    Click <strong>Settings</strong>.
+  </li>
+  <li>
+    In the <em>Android Apps</em> section, click the <strong>Settings</strong>
+    link in the line that reads <em>Manage your Android apps in Settings</em>.
+    This brings up the Android apps settings.
+  </li>
+  <li>
+    Click <strong>About device</strong>.
+  </li>
+  <li>
+    Click <strong>Build number</strong> seven times to move into Developer mode.
+  </li>
+  <li>
+    Click the arrow in the top-left area of the window to go back to the main
+    Settings screen.
+  </li>
+  <li>
+    Click the new <strong>Developer options</strong> item, activate <strong>ADB
+    debugging</strong>, and then click <strong>OK</strong> to allow ADB
+    debugging.
+  </li>
+  <li>
+    Return to your development machine and use ADB to connect to your
+    Chromebook's using its IP address and port 22.
+  </li>
+  <li>
+    On your Chromebook, click <strong>Allow</strong> when prompted whether you
+    want to allow the debugger. Your ADB session is established.
+  </li>
+</ol>
+
+<h4>Troubleshooting ADB debugging</h4>
+
+<p>
+Sometimes the ADB device shows that it's offline when everything is connected
+properly. In this case, complete the following steps to troubleshoot the issue:
+</p>
+
+<ol>
+  <li>
+    Deactivate <strong>ADB debugging</strong> in <em>Developer options</em>.
+  </li>
+  <li>
+    In a terminal window, run <code>adb kill-server</code>.
+  </li>
+  <li>
+    Re-activate the <strong>ADB debugging</strong> option.
+  </li>
+  <li>
+    In a terminal window, attempt to run <code>adb connect</code>.
+  </li>
+  <li>
+    Click <strong>Allow</strong> when prompted whether you want to allow
+    debugging. Your ADB session is established.
+  </li>
+</ol>
+
+<h2 id="learning-materials">Additional Learning Materials</h2>
+
+<p>
+To learn more about optimizing your Android apps for Chromebooks, consult the
+following resources:
+</p>
+
+<ul>
+  <li>
+    Review the
+    <a class="external-link" href="http://android-developers.blogspot.com/2016/05/bring-your-android-app-to-chromebooks.html">
+    Bring your Android App to Chromebooks</a> I/O session.
+  </li>
+  <li>
+    Post a question on the <a class="external-link"
+    href="https://plus.sandbox.google.com/+AndroidDevelopers">Android developer
+    community</a> with hashtag <em>#AndroidAppsOnChromeOS</em>.
+  </li>
+</ul>
diff --git a/docs/html/topic/arc/manifest.jd b/docs/html/topic/arc/manifest.jd
new file mode 100644
index 0000000..7d18665
--- /dev/null
+++ b/docs/html/topic/arc/manifest.jd
@@ -0,0 +1,341 @@
+page.title=App Manifest Compatibility for Chromebooks
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#incompat-entries">Incompatible Manifest Entries</a></li>
+        <li>
+          <a href="#implied-features">Permissions That Imply Feature
+          Requirements</a>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>
+As you prepare your Android app to run on Chromebooks, you should consider the
+device features that your app uses. Chromebooks don't support all of the
+hardware and software features that are available on other devices running
+Android. If your app requires specific features that aren't supported on
+Chromebooks, it won't be available for installation on Chromebooks.
+</p>
+
+<p>
+You declare your app's requirements for hardware features and certain software
+features in the <a
+href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a>.
+This document describes the app manifest feature declarations that aren't
+compatible with Chromebooks.
+</p>
+
+<h2 id="incompat-entries">Incompatible Manifest Entries</h2>
+
+<p>
+The manifest entries listed in this section aren't currently compatible with
+Chromebooks. If your app uses any of these entries, consider removing them or
+including the <code>required="false"</code> attribute value with them so that
+your app can be installed on Chromebooks. For more information about declaring
+feature use without requiring that the feature be available on the device, see
+the guide for the <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html#market-feature-filtering">
+<code>&lt;uses-feature&gt;</code></a> manifest element.
+</p>
+
+<p class="note"><strong>Note</strong>: See the <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html#features-reference">
+Features Reference</a> for a complete list of app manifest features and
+descriptions.
+</p>
+
+<h3 id="incompat-hardware-features">Hardware features</h3>
+
+<p>
+Support for hardware features varies on Chromebooks. Some features aren't
+supported on any Chromebooks while others are supported on some Chromebooks.
+</p>
+
+<h4>Unsupported hardware features</h4>
+
+<p>
+The following list includes the hardware features that aren't currently
+supported on Chromebooks:
+</p>
+
+<ul>
+  <li>
+    <code>android.hardware.camera</code> &ndash; Back-facing camera
+  </li>
+  <li>
+    <code>android.hardware.camera.autofocus</code> &ndash; Camera that uses
+    autofocus
+  </li>
+  <li>
+    <code>android.hardware.camera.capability.manual_post_processing</code>&nbsp;
+    &ndash; Camera that uses the <code>MANUAL_POST_PROCESSING</code> feature,
+    including functionality for overriding auto white balance
+  </li>
+  <li>
+    <code>android.hardware.camera.capability.manual_sensor</code> &ndash; Camera
+    that uses the <code>MANUAL_SENSOR</code> feature, including auto-exposure
+    locking support
+  </li>
+  <li>
+    <code>android.hardware.camera.capability.raw</code> &ndash; Camera that uses
+    the <code>RAW</code> feature, including the ability to save DNG (raw) files
+    and provide DNG-related metadata
+  </li>
+  <li>
+    <code>android.hardware.camera.flash</code> &ndash; Camera that uses flash
+  </li>
+  <li>
+    <code>android.hardware.camera.level.full</code> &ndash; Camera that uses
+    <code>FULL</code>-level image-capturing support
+  </li>
+  <li>
+    <code>android.hardware.consumerir</code> &ndash; Infrared (IR)
+  </li>
+  <li>
+    <code>android.hardware.location.gps</code> &ndash; GPS
+  </li>
+  <li>
+    <code>android.hardware.nfc</code> &ndash; Near-Field Communication (NFC)
+  </li>
+  <li>
+    <code>android.hardware.nfc.hce</code> &ndash; NFC card emulation
+    (<em>deprecated</em>)
+  </li>
+  <li>
+    <code>android.hardware.sensor.barometer</code> &ndash; Barometer (air
+    pressure)
+  </li>
+  <li>
+    <code>android.hardware.telephony</code> &ndash; Telephony, including radio
+    with data communication services
+  </li>
+  <li>
+    <code>android.hardware.telephony.cdma</code> &ndash; Telephony Code Division
+    Multiple Access (CDMA) network support
+  </li>
+  <li>
+    <code>android.hardware.telephony.gsm</code> &ndash; Telephony Global System
+    for Mobile Communications (GSM) network support
+  </li>
+  <li>
+    <code>android.hardware.type.automotive</code> &ndash; Android Auto user
+    interface
+  </li>
+  <li>
+    <code>android.hardware.type.television</code> &ndash; Television
+    (<em>deprecated</em>)
+  <li>
+    <code>android.hardware.usb.accessory</code> &ndash; USB accessory mode
+  </li>
+  <li>
+    <code>android.hardware.usb.host</code> &ndash; USB host mode
+  </li>
+</ul>
+
+<h4>Partially-supported hardware features</h4>
+
+<p>
+The following list includes the hardware features that may be available on some
+Chromebooks:
+</p>
+
+<ul>
+  <li>
+    <code>android.hardware.sensor.accelerometer</code> &ndash; Accelerometer
+    (device orientation)
+  </li>
+  <li>
+    <code>android.hardware.sensor.compass</code> &ndash; Compass
+  </li>
+  <li>
+    <code>android.hardware.sensor.gyroscope</code> &ndash; Gyroscope (device
+    rotation and twist)
+  </li>
+  <li>
+    <code>android.hardware.sensor.light</code> &ndash; Light
+  </li>
+  <li>
+    <code>android.hardware.sensor.proximity</code> &ndash; Proximity (to user)
+  </li>
+  <li>
+    <code>android.hardware.sensor.stepcounter</code> &ndash; Step counter
+  </li>
+  <li>
+    <code>android.hardware.sensor.stepdetector</code> &ndash; Step detector
+  </li>
+</ul>
+
+<h4>Touchscreen hardware support</h4>
+
+<p>
+As of Chrome OS version M53, all Android apps that don't explicitly require the
+<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
+<code>android.hardware.touchscreen</code></a> feature will also work on Chrome
+OS devices that support the <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
+<code>android.hardware.faketouch</code></a> feature. Devices that have fake
+touch interfaces provide a user input system that emulates basic touch events.
+For example, the user could interact with a mouse or remote control to move an
+on-screen cursor, scroll through a list, and drag elements from one part of the
+screen to another.
+</p>
+
+<p>
+If you don't want your app to be installed on devices that have fake touch
+interfaces but not touchscreens, you can complete one of the following actions:
+</p>
+
+<ul>
+  <li>Exclude specific devices in the <a class="external-link"
+  href="https://play.google.com/apps/publish">Google Play Developer Console.</a>
+  </li>
+  <li>Filter devices with no touchscreen hardware by explicitly declaring <a
+  href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
+  <code>android.hardware.touchscreen</code></a> as being required in order to
+  install your app.</li>
+</ul>
+
+<h3 id="incompat-software-features">Software features</h3>
+
+<p>
+The following list includes the software features that aren't currently
+supported on Chromebooks:
+</p>
+
+<ul>
+  <li>
+    <code>android.software.app_widgets</code> &ndash; App Widgets on the Home
+    screen
+  </li>
+  <li>
+    <code>android.software.device_admin</code> &ndash; Device policy
+    administration
+  </li>
+  <li>
+    <code>android.software.home_screen</code> &ndash; Replaces device's Home
+    screen
+  </li>
+  <li>
+    <code>android.software.input_methods</code> &ndash; Custom input methods
+    (instances of <a href="{@docRoot}reference/android/inputmethodservice/InputMethodService.html">
+    <code>InputMethodService</code></a>)
+  </li>
+  <li>
+    <code>android.software.leanback</code> &ndash; UI designed for large-screen
+    viewing
+  </li>
+  <li>
+    <code>android.software.live_wallpaper</code> &ndash; Animated wallpapers
+  </li>
+  <li>
+    <code>android.software.live_tv</code> &ndash; Streaming live TV programs
+  </li>
+  <li>
+    <code>android.software.managed_users</code> &ndash; Secondary users and
+    managed profiles
+  </li>
+  <li>
+    <code>android.software.midi</code> &ndash; Musical Instrument Digital
+    Interface (MIDI) protocol, which supports connecting to musical instruments
+    and providing sound
+  </li>
+  <li>
+    <code>android.software.sip</code> &ndash; Session Initiation Protocol (SIP)
+    service, which supports video conferencing and instant messaging
+  </li>
+  <li>
+    <code>android.software.sip.voip</code> &ndash; Voice Over Internet Protocol
+    (VoIP) service based on SIP, which supports two-way video conferencing
+  </li>
+</ul>
+
+<h2 id="implied-features">Permissions That Imply Feature Requirements</h2>
+
+<p>
+Some permissions that you request in your manifest files can create implied
+requests for hardware and software features. By requesting these permissions,
+you'll prevent your app from being installed on Chromebooks.
+</p>
+
+<p>
+For details about how to prevent permission requests from making your app
+unavailable on Chromebooks, see the <a href="#incompat-entries">Incompatible
+Manifest Entries</a> section of this page.
+</p>
+
+<p>
+The following table shows the permissions that imply certain feature
+requirements which make an app incompatible with Chromebooks:
+</p>
+
+<p class="table-caption">
+<strong>Table 1. </strong>Device permissions that imply hardware features which
+are incompatible with Chromebooks.
+</p>
+
+<table>
+  <tr>
+    <th scope="col">Category</th>
+    <th scope="col">This Permission...</th>
+    <th scope="col">...Implies This Feature Requirement</th>
+  </tr>
+  <tr>
+    <td>Camera</td>
+    <td><code>CAMERA</code></td>
+    <td>
+      <code>android.hardware.camera</code> and<br>
+      <code>android.hardware.camera.autofocus</code>
+    </td>
+  </tr>
+  <tr>
+    <td rowspan="11">Telephony</td>
+    <td><code>CALL_PHONE</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>CALL_PRIVILEGED</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>MODIFY_PHONE_STATE</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>PROCESS_OUTGOING_CALLS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>READ_SMSREAD_SMS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>RECEIVE_SMS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>RECEIVE_MMS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>RECEIVE_WAP_PUSH</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>SEND_SMS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>WRITE_APN_SETTINGS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+  <tr>
+    <td><code>WRITE_SMS</code></td>
+    <td><code>android.hardware.telephony</code></td>
+  </tr>
+</table>
diff --git a/docs/html/topic/arc/sideload.jd b/docs/html/topic/arc/sideload.jd
new file mode 100644
index 0000000..dca84ff
--- /dev/null
+++ b/docs/html/topic/arc/sideload.jd
@@ -0,0 +1,125 @@
+page.title=Loading Apps on Chromebooks
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#enter-dev">Enter Developer Mode</a></li>
+        <li><a href="#enable-unknown">Enable Unknown Sources</a></li>
+        <li><a href="#load-app">Load Your App</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>
+This document describes how to enter <em>Developer</em> mode and enable
+<em>unknown resources</em> so that you can load Android apps on your Google
+Chromebook.
+</p>
+
+<h2 id="enter-dev">Enter Developer Mode</h2>
+
+<p>
+To load Android apps, you must enable unknown sources. Enabling unknown sources
+is available only when your device is in Developer mode.
+</p>
+
+<p class="caution"><strong>Caution: </strong>Modifications that you make to the
+system are not supported by Google and may void your warranty. Additionally,
+modifications may cause hardware, software, or security issues.
+</p>
+
+<p class="note"><strong>Note: </strong>On most devices, both the
+<em>recovery</em> button and the <em>dev-switch</em> button are virtualized. If
+these instructions don't work for you, see the <a class="external-link"
+href="https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices">
+specific instructions for your device</a>.
+</p>
+
+<p>
+To enter Developer mode, complete these steps:
+</p>
+
+<ol>
+  <li>
+    Invoke <em>Recovery</em> mode by pressing and holding the
+    <strong>Esc</strong> and <strong>Refresh (F3)</strong> keys, then pressing
+    the <strong>Power</strong> button.
+  </li>
+  <li>
+    When the <em>Recovery</em> screen appears, press <strong>Ctrl+D</strong>.
+    There's no prompt for this action, so you must simply complete it.
+    Afterwards, you are prompted to confirm and reboot into Developer mode.
+  </li>
+</ol>
+
+<p>
+If you see one of the following screens when you turn on your device, you've
+successfully entered Developer mode:
+</p>
+
+<img src="{@docRoot}images/topic/arc/sideload_figure_1.jpg" />
+
+<p class="img-caption"><strong>Figure 1. </strong>Developer mode confirmation
+screens.</p>
+
+<p class="note"><strong>Note</strong>: To skip the OS loading screen, either
+wait 30 seconds or press <strong>Ctrl+D</strong>, and your Chromebook continues
+starting.
+</p>
+
+<h2 id="enable-unknown">Enable Unknown Sources</h2>
+
+<p>
+To enable unknown sources, navigate to <strong>Chrome Settings > App Settings >
+Security</strong>, then enable <strong>Unknown sources</strong> by moving the
+slider to the right.
+</p>
+
+<p class="note"><strong>Note:</strong>You can enable unknown sources only when
+your device is in <a
+href="{@docRoot}topic/arc/sideload.html#enter-dev">Developer mode</a>.
+</p>
+
+<h2 id="load-app">Load Your App</h2>
+
+<p>
+After enabling unknown sources, you can load apps by copying an app's APK file
+to the <em>Downloads</em> folder and opening it with Android's File Manager app.
+
+</p>
+
+<p>
+You can copy the APK file to your Chromebook using one of the following methods:
+</p>
+
+<ul>
+  <li>
+    <strong>Using a cloud app</strong> &ndash; Upload your APK file to Google
+    Drive or send it to yourself via email. Open it with the Android app
+    equivalent (Drive and Gmail, respectively).
+  </li>
+  <li>
+    <strong>Using an external storage device</strong> &ndash; Transfer the APK
+    file to the Downloads folder of your Chromebook using a thumb drive, SD
+    card, or an external hard drive. Afterwards, open the Android File Manager
+    app by navigating to  <strong>Chrome Settings > App Settings > Device &amp;
+    USB > Explore</strong>.
+  </li>
+  <li>
+    <strong>Using ADB</strong> &ndash; After <a
+    href="{@docRoot}topic/arc/index.html#setup"> setting up ADB</a> on your
+    Chromebook, enter the following command into a terminal window on your
+    development workstation:
+<pre class="no-pretty-print">
+adb install <var>app-name</var>.apk
+</pre>
+    <p>This command pushes the app to your connected Chromebook and installs the
+    app. For more information about copying and installing apps from a
+    development computer, see <a
+    href="{@docRoot}studio/command-line/adb.html#move">Installing an
+    Application</a>.</p>
+  </li>
+</ul>
diff --git a/docs/html/topic/libraries/data-binding/index.jd b/docs/html/topic/libraries/data-binding/index.jd
index ec6e58c..ddcc9f2 100644
--- a/docs/html/topic/libraries/data-binding/index.jd
+++ b/docs/html/topic/libraries/data-binding/index.jd
@@ -246,21 +246,21 @@
 </pre>
 <p>
   Expressions within the layout are written in the attribute properties using
-  the “<code>&amp;commat;{}</code>” syntax. Here, the TextView’s text is set to
+  the "<code>&commat;{}</code>" syntax. Here, the TextView's text is set to
   the firstName property of user:
 </p>
 
 <pre>
 &lt;TextView android:layout_width="wrap_content"
           android:layout_height="wrap_content"
-          android:text="&amp;commat;{user.firstName}"/&gt;
+          android:text="&commat;{user.firstName}"/&gt;
 </pre>
 <h3 id="data_object">
   Data Object
 </h3>
 
 <p>
-  Let’s assume for now that you have a plain-old Java object (POJO) for User:
+  Let's assume for now that you have a plain-old Java object (POJO) for User:
 </p>
 
 <pre>
@@ -296,8 +296,8 @@
 </pre>
 <p>
   From the perspective of data binding, these two classes are equivalent. The
-  expression <strong><code>&amp;commat;{user.firstName}</code></strong> used
-  for the TextView’s <strong><code>android:text</code></strong> attribute will
+  expression <strong><code>&commat;{user.firstName}</code></strong> used
+  for the TextView's <strong><code>android:text</code></strong> attribute will
   access the <strong><code>firstName</code></strong> field in the former class
   and the <code>getFirstName()</code> method in the latter class.
   Alternatively, it will also be resolved to <code>firstName()</code> if that
@@ -310,10 +310,10 @@
 
 <p>
   By default, a Binding class will be generated based on the name of the layout
-  file, converting it to Pascal case and suffixing “Binding” to it. The above
+  file, converting it to Pascal case and suffixing "Binding" to it. The above
   layout file was <code>main_activity.xml</code> so the generate class was
   <code>MainActivityBinding</code>. This class holds all the bindings from the
-  layout properties (e.g. the <code>user</code> variable) to the layout’s Views
+  layout properties (e.g. the <code>user</code> variable) to the layout's Views
   and knows how to assign values for the binding expressions.The easiest means
   for creating the bindings is to do it while inflating:
 </p>
@@ -328,7 +328,7 @@
 }
 </pre>
 <p>
-  You’re done! Run the application and you’ll see Test User in the UI.
+  You're done! Run the application and you'll see Test User in the UI.
   Alternatively, you can get the view via:
 </p>
 
@@ -434,15 +434,15 @@
 </pre>
   Then you can bind the click event to your class as follows:
 <pre>
-  &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
-  &lt;layout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;
+  &lt;?xml version="1.0" encoding="utf-8"?&gt;
+  &lt;layout xmlns:android="http://schemas.android.com/apk/res/android"&gt;
       &lt;data&gt;
-          &lt;variable name=&quot;task&quot; type=&quot;com.android.example.Task&quot; /&gt;
-          &lt;variable name=&quot;presenter&quot; type=&quot;com.android.example.Presenter&quot; /&gt;
+          &lt;variable name="task" type="com.android.example.Task" /&gt;
+          &lt;variable name="presenter" type="com.android.example.Presenter" /&gt;
       &lt;/data&gt;
-      &lt;LinearLayout android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;match_parent&quot;&gt;
-          &lt;Button android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot;
-          android:onClick=&quot;@{() -&gt; presenter.onSaveClick(task)}&quot; /&gt;
+      &lt;LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"&gt;
+          &lt;Button android:layout_width="wrap_content" android:layout_height="wrap_content"
+          android:onClick="@{() -&gt; presenter.onSaveClick(task)}" /&gt;
       &lt;/LinearLayout&gt;
   &lt;/layout&gt;
 </pre>
@@ -465,7 +465,7 @@
   above could be written as:
 </p>
 <pre>
-  android:onClick=&quot;@{(view) -&gt; presenter.onSaveClick(task)}&quot;
+  android:onClick="@{(view) -&gt; presenter.onSaveClick(task)}"
 </pre>
 Or if you wanted to use the parameter in the expression, it could work as follows:
 <pre>
@@ -474,7 +474,7 @@
 }
 </pre>
 <pre>
-  android:onClick=&quot;@{(theView) -&gt; presenter.onSaveClick(theView, task)}&quot;
+  android:onClick="@{(theView) -&gt; presenter.onSaveClick(theView, task)}"
 </pre>
 You can use a lambda expression with more than one parameter:
 <pre>
@@ -483,8 +483,8 @@
 }
 </pre>
 <pre>
-  &lt;CheckBox android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot;
-        android:onCheckedChanged=&quot;@{(cb, isChecked) -&gt; presenter.completeChanged(task, isChecked)}&quot; /&gt;
+  &lt;CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content"
+        android:onCheckedChanged="@{(cb, isChecked) -&gt; presenter.completeChanged(task, isChecked)}" /&gt;
 </pre>
 <p>
   If the event you are listening to returns a value whose type is not {@code
@@ -498,7 +498,7 @@
 }
 </pre>
 <pre>
-  android:onLongClick=&quot;@{(theView) -&gt; presenter.onLongClick(theView, task)}&quot;
+  android:onLongClick="@{(theView) -&gt; presenter.onLongClick(theView, task)}"
 </pre>
 <p>
 If the expression cannot be evaluated due to {@code null} objects, Data Binding returns
@@ -510,7 +510,7 @@
 {@code void} as a symbol.
 </p>
 <pre>
-  android:onClick=&quot;@{(v) -&gt; v.isVisible() ? doSomething() : void}&quot;
+  android:onClick="@{(v) -&gt; v.isVisible() ? doSomething() : void}"
 </pre>
 
 <h5>Avoid Complex Listeners</h5>
@@ -580,7 +580,7 @@
 </pre>
 <p>
   When there are class name conflicts, one of the classes may be renamed to an
-  “alias:”
+  "alias:"
 </p>
 
 <pre>
@@ -601,7 +601,7 @@
     &lt;import type="com.example.User"/&gt;
     &lt;import type="java.util.List"/&gt;
     &lt;variable name="user" type="User"/&gt;
-    &lt;variable name="userList" type="List&amp;lt;User&gt;"/&gt;
+    &lt;variable name="userList" type="List&amp;lt;User&amp;gt;"/&gt;
 &lt;/data&gt;
 </pre>
 <p class="caution">
@@ -695,7 +695,7 @@
 <p>
   By default, a Binding class is generated based on the name of the layout
   file, starting it with upper-case, removing underscores ( _ ) and
-  capitalizing the following letter and then suffixing “Binding”. This class
+  capitalizing the following letter and then suffixing "Binding". This class
   will be placed in a databinding package under the module package. For
   example, the layout file <code>contact_item.xml</code> will generate
   <code>ContactItemBinding</code>. If the module package is
@@ -718,7 +718,7 @@
   This generates the binding class as <code>ContactItem</code> in the
   databinding package in the module package. If the class should be generated
   in a different package within the module package, it may be prefixed with
-  “.”:
+  ".":
 </p>
 
 <pre>
@@ -741,7 +741,7 @@
 </h3>
 
 <p>
-  Variables may be passed into an included layout&apos;s binding from the
+  Variables may be passed into an included layout's binding from the
   containing layout by using the application namespace and the variable name in
   an attribute:
 </p>
@@ -855,8 +855,8 @@
 
 <pre>
 android:text="&commat;{String.valueOf(index + 1)}"
-android:visibility="&commat;{age &amp;lt; 13 ? View.GONE : View.VISIBLE}"
-android:transitionName=&apos;&commat;{"image_" + id}&apos;
+android:visibility="&commat;{age &lt; 13 ? View.GONE : View.VISIBLE}"
+android:transitionName='&commat;{"image_" + id}'
 </pre>
 <h4 id="missing_operations">
   Missing Operations
@@ -945,9 +945,9 @@
     &lt;import type="android.util.SparseArray"/&gt;
     &lt;import type="java.util.Map"/&gt;
     &lt;import type="java.util.List"/&gt;
-    &lt;variable name="list" type="List&amp;lt;String&gt;"/&gt;
-    &lt;variable name="sparse" type="SparseArray&amp;lt;String&gt;"/&gt;
-    &lt;variable name="map" type="Map&amp;lt;String, String&gt;"/&gt;
+    &lt;variable name="list" type="List&amp;lt;String&amp;gt;"/&gt;
+    &lt;variable name="sparse" type="SparseArray&amp;lt;String&amp;gt;"/&gt;
+    &lt;variable name="map" type="Map&amp;lt;String, String&amp;gt;"/&gt;
     &lt;variable name="index" type="int"/&gt;
     &lt;variable name="key" type="String"/&gt;
 &lt;/data&gt;
@@ -969,17 +969,17 @@
 </p>
 
 <pre>
-android:text=&apos;&commat;{map["firstName"]}&apos;
+android:text='&commat;{map["firstName"]}'
 </pre>
 <p>
   It is also possible to use double quotes to surround the attribute value.
-  When doing so, String literals should either use the &amp;quot; or back quote
+  When doing so, String literals should either use the ' or back quote
   (`).
 </p>
 
 <pre>
 android:text="&commat;{map[`firstName`}"
-android:text="&commat;{map[&amp;quot;firstName&amp;quot;]}"
+android:text="&commat;{map['firstName']}"
 </pre>
 <h4 id="resources">
   Resources
@@ -1216,7 +1216,7 @@
 }
 </pre>
 <p>
-  That&apos;s it! To access the value, use the set and get accessor methods:
+  That's it! To access the value, use the set and get accessor methods:
 </p>
 
 <pre>
@@ -1247,15 +1247,15 @@
 <pre>
 &lt;data&gt;
     &lt;import type="android.databinding.ObservableMap"/&gt;
-    &lt;variable name="user" type="ObservableMap&amp;lt;String, Object&gt;"/&gt;
+    &lt;variable name="user" type="ObservableMap&amp;lt;String, Object&amp;gt;"/&gt;
 &lt;/data&gt;
 …
 &lt;TextView
-   android:text=&apos;&commat;{user["lastName"]}&apos;
+   android:text='&commat;{user["lastName"]}'
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 &lt;TextView
-   android:text=&apos;&commat;{String.valueOf(1 + (Integer)user["age"])}&apos;
+   android:text='&commat;{String.valueOf(1 + (Integer)user["age"])}'
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 </pre>
@@ -1277,15 +1277,15 @@
 &lt;data&gt;
     &lt;import type="android.databinding.ObservableList"/&gt;
     &lt;import type="com.example.my.app.Fields"/&gt;
-    &lt;variable name="user" type="ObservableList&amp;lt;Object&gt;"/&gt;
+    &lt;variable name="user" type="ObservableList&amp;lt;Object&amp;gt;"/&gt;
 &lt;/data&gt;
 …
 &lt;TextView
-   android:text=&apos;&commat;{user[Fields.LAST_NAME]}&apos;
+   android:text='&commat;{user[Fields.LAST_NAME]}'
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 &lt;TextView
-   android:text=&apos;&commat;{String.valueOf(1 + (Integer)user[Fields.AGE])}&apos;
+   android:text='&commat;{String.valueOf(1 + (Integer)user[Fields.AGE])}'
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 </pre>
@@ -1428,7 +1428,7 @@
 
 <p>
   When inflating another layout, a binding must be established for the new
-  layout. Therefore, the <code>ViewStubProxy</code> must listen to the <code>ViewStub</code>&apos;s
+  layout. Therefore, the <code>ViewStubProxy</code> must listen to the <code>ViewStub</code>'s
   {@link android.view.ViewStub.OnInflateListener} and establish the binding at that time. Since
   only one can exist, the <code>ViewStubProxy</code> allows the developer to set an
   <code>OnInflateListener</code> on it that it will call after establishing the binding.
@@ -1443,9 +1443,9 @@
 </h4>
 
 <p>
-  At times, the specific binding class won&apos;t be known. For example, a
+  At times, the specific binding class won't be known. For example, a
   {@link android.support.v7.widget.RecyclerView.Adapter} operating against arbitrary layouts
-  won&apos;t know the specific binding class. It still must assign the binding value during the
+  won't know the specific binding class. It still must assign the binding value during the
   {@link android.support.v7.widget.RecyclerView.Adapter#onBindViewHolder}.
 </p>
 
@@ -1499,13 +1499,13 @@
 For an attribute, data binding tries to find the method setAttribute. The
 namespace for the attribute does not matter, only the attribute name itself.
 <p>
-  For example, an expression associated with TextView&apos;s attribute
+  For example, an expression associated with TextView's attribute
   <strong><code>android:text</code></strong> will look for a setText(String).
   If the expression returns an int, data binding will search for a setText(int)
   method. Be careful to have the expression return the correct type, casting if
   necessary. Note that data binding will work even if no attribute exists with
   the given name. You can then easily "create" attributes for any setter by
-  using data binding. For example, support DrawerLayout doesn&apos;t have any
+  using data binding. For example, support DrawerLayout doesn't have any
   attributes, but plenty of setters. You can use the automatic setters to use
   one of these.
 </p>
@@ -1522,7 +1522,7 @@
 </h3>
 
 <p>
-  Some attributes have setters that don&apos;t match by name. For these
+  Some attributes have setters that don't match by name. For these
   methods, an attribute may be associated with the setter through
   {@link android.databinding.BindingMethods} annotation. This must be associated with
   a class and contains {@link android.databinding.BindingMethod} annotations, one for
@@ -1591,8 +1591,8 @@
 }
 </pre>
 <pre>
-&lt;ImageView app:imageUrl=“&commat;{venue.imageUrl}”
-app:error=“&commat;{&commat;drawable/venueError}”/&gt;
+&lt;ImageView app:imageUrl="&commat;{venue.imageUrl}"
+app:error="&commat;{&commat;drawable/venueError}"/&gt;
 </pre>
 
 <p>
@@ -1747,7 +1747,7 @@
 
 <pre>
 &lt;TextView
-   android:text=&apos;&commat;{userMap["lastName"]}&apos;
+   android:text='&commat;{userMap["lastName"]}'
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 </pre>
diff --git a/docs/html/topic/libraries/support-library/features.jd b/docs/html/topic/libraries/support-library/features.jd
index d648384..614392e 100755
--- a/docs/html/topic/libraries/support-library/features.jd
+++ b/docs/html/topic/libraries/support-library/features.jd
@@ -7,7 +7,15 @@
 
     <h2>In this document</h2>
     <ol>
-      <li><a href="#v4">v4 Support Library</a></li>
+      <li><a href="#v4">v4 Support Libraries</a>
+        <ol>
+          <li><a href="#v4-compat">v4 compat library</a></li>
+          <li><a href="#v4-core-utils">v4 core-utils library</a></li>
+          <li><a href="#v4-core-ui">v4 core-ui library</a></li>
+          <li><a href="#v4-media-compat">v4 media-compat library</a></li>
+          <li><a href="#v4-fragment">v4 fragment library</a></li>
+        </ol>
+      </li>
       <li><a href="#multidex">Multidex Support Library</a></li>
       <li><a href="#v7">v7 Support Libraries</a>
         <ol>
@@ -63,100 +71,115 @@
   include the library in your application.</p>
 
 
-<h2 id="v4">v4 Support Library</h2>
-
-<p>This library is designed to be used with Android 1.6 (API level 4) and higher. It includes the
-  largest set of APIs compared to the other libraries, including support for application components,
-  user interface features, accessibility, data handling, network connectivity, and programming
-  utilities. Here are a few of the key classes included in the v4 library:</p>
-
-<ul>
-  <li>App Components
-    <ul>
-      <li>{@link android.support.v4.app.Fragment}
-        - Adds support for encapsulation of user interface and functionality
-        with Fragments, enabling
-        applications to provide layouts that adjust between small and
-        large-screen devices.
-       </li>
-
-      <li>{@link android.support.v4.app.NotificationCompat} - Adds support for rich notification
-        features.</li>
-      <li>{@link android.support.v4.content.LocalBroadcastManager} - Allows applications to easily
-        register for and receive intents within a single application without broadcasting them
-        globally.</li>
-    </ul>
-  </li>
-  <li>User Interface
-    <ul>
-      <li>{@link android.support.v4.view.ViewPager} - Adds a
-      {@link android.view.ViewGroup} that manages the layout for the
-      child views, which the user can swipe between.</li>
-      <li>{@link android.support.v4.view.PagerTitleStrip}
-        - Adds a non-interactive title strip, that can be added as a child of
-        {@link android.support.v4.view.ViewPager}.</li>
-      <li>{@link android.support.v4.view.PagerTabStrip} - Adds a
-        navigation widget for switching between paged views, that can also be used with
-        {@link android.support.v4.view.ViewPager}.</li>
-      <li>{@link android.support.v4.widget.DrawerLayout} - Adds
-      support for creating a <a href="{@docRoot}training/implementing-navigation/nav-drawer.html"
-      >Navigation Drawer</a> that can be pulled in from the edge of a window.</li>
-      <li>{@link android.support.v4.widget.SlidingPaneLayout}
-        - Adds widget for creating linked summary and detail views that
-        appropriately adapt to various screen sizes.</li>
-    </ul>
-  </li>
-  <li>Accessibility
-    <ul>
-      <li>{@link android.support.v4.widget.ExploreByTouchHelper}
-        - Adds a helper class for implementing accessibility support for custom views.</li>
-      <li>{@link android.support.v4.view.accessibility.AccessibilityEventCompat} - Adds support for
-      {@link android.view.accessibility.AccessibilityEvent}. For more information about implementing
-      accessibility, see <a href="{@docRoot}guide/topics/ui/accessibility/index.html"
-      >Accessibility</a>.</li>
-
-      <li>{@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} - Adds support
-      for {@link android.view.accessibility.AccessibilityNodeInfo}.</li>
-      <li>{@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat} - Adds
-      support for {@link android.view.accessibility.AccessibilityNodeProvider}.</li>
-      <li>{@link android.support.v4.view.AccessibilityDelegateCompat} - Adds support for
-      {@link android.view.View.AccessibilityDelegate}.</li>
-    </ul>
-  </li>
-  <li>Content
-    <ul>
-      <li>{@link android.support.v4.content.Loader} - Adds support for asynchronous loading of data.
-        The library also provides concrete implementations of this class, including
-        {@link android.support.v4.content.CursorLoader} and
-        {@link android.support.v4.content.AsyncTaskLoader}.</li>
-      <li>{@link android.support.v4.content.FileProvider} - Adds support for sharing of private
-        files between applications.</li>
-    </ul>
-  </li>
-</ul>
+<h2 id="v4">v4 Support Libraries</h2>
 
 <p>
-  There are many other APIs included in this library. For complete, detailed information about the
-  v4 Support Library APIs, see the {@link android.support.v4.app android.support.v4} package in the
-  API reference.
+  These libraries are designed to be used with Android 2.3 (API level 9) and
+  higher. They include the largest set of APIs compared to the other libraries,
+  including support for application components, user interface features,
+  accessibility, data handling, network connectivity, and programming
+  utilities.
 </p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v4/</code> directory. The library does not contain user
-interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-resources</a>.</p>
+<p>
+  For complete, detailed information about the classes and methods provided by
+  the v4 support libraries, see the {@link android.support.v4.app
+  android.support.v4} package in the API reference.
+</p>
 
-<p class="caution"><strong>Caution:</strong> Using dynamic dependencies, especially for higher version
-numbers, can cause unexpected version updates and regression incompatibilities.</p>
+
+<p class="note">
+  <strong>Note:</strong> Prior to Support Library revision 24.2.0, there was a
+  single v4 support library. That library was divided into multiple modules to
+  improve efficiency. For backwards compatibility, if you list
+  <code>support-v4</code> in your Gradle script, your APK will include all of
+  the v4 modules. However, to reduce APK size, we recommend that you just list
+  the specific modules your app needs.
+</p>
+
+<h3 id="v4-compat">v4 compat library</h3>
+
+<p>
+  Provides compatibility wrappers for a number of framework APIs, such as
+  <code>Context.obtainDrawable()</code> and
+  <code>View.performAccessibilityAction()</code>.
+</p>
 
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:support-v4:23.3.0
+com.android.support:support-compat:24.2.0
 </pre>
 
+<h3 id="v4-core-utils">v4 core-utils library</h3>
 
+<p>
+  Provides a number of utility classes, such as {@link
+  android.support.v4.content.AsyncTaskLoader} and {@link
+  android.support.v4.content.PermissionChecker}.
+</p>
+
+<p>
+  The Gradle build script dependency identifier for this library is as follows:
+</p>
+
+<pre>
+com.android.support:support-core-utils:24.2.0
+</pre>
+
+<h3 id="v4-core-ui">v4 core-ui library</h3>
+
+<p>
+  Implements a variety of UI-related components, such as {@link
+  android.support.v4.view.ViewPager}, {@link
+  android.support.v4.widget.NestedScrollView}, and {@link
+  android.support.v4.widget.ExploreByTouchHelper}.
+</p>
+
+<p>
+  The Gradle build script dependency identifier for this library is as follows:
+</p>
+
+<pre>
+com.android.support:support-core-ui:24.2.0
+</pre>
+
+<h3 id="v4-media-compat">v4 media-compat library</h3>
+
+<p>
+  Backports portions of the <a href=
+  "/reference/android/media/package-summary.html">media</a> framework,
+  including {@link android.media.browse.MediaBrowser} and {@link
+  android.media.session.MediaSession}.
+</p>
+
+<p>
+  The Gradle build script dependency identifier for this library is as follows:
+</p>
+
+<pre>
+com.android.support:support-media-compat:24.2.0
+</pre>
+
+<h3 id="v4-fragment">v4 fragment library</h3>
+
+<p>
+  Adds support for encapsulation of user interface and functionality with
+  <a href=
+  "/guide/components/fragments.html">fragments</a>,
+  enabling applications to provide layouts that adjust between small and
+  large-screen devices. This module has dependencies on <a href=
+  "#v4-compat">compat</a>, <a href="#v4-core-utils">core-utils</a>, <a href=
+  "#v4-core-ui">core-ui</a>, and <a href="#v4-media-compat">media-compat</a>.
+</p>
+
+<p>
+  The Gradle build script dependency identifier for this library is as follows:
+</p>
+
+<pre>
+com.android.support:support-fragment:24.2.0
+</pre>
 
 <h2 id="multidex">Multidex Support Library</h2>
 
@@ -168,15 +191,6 @@
 </p>
 
 <p>
-  After you download the Android Support Libraries, this library is located in the
-  <code>&lt;sdk&gt;/extras/android/support/multidex/</code> directory. The library does not contain
-  user interface resources. To include it in your application project, follow the instructions
-  for
-  <a href= "{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-  resources</a>.
-</p>
-
-<p>
   The Gradle build script dependency identifier for this library is as follows:
 </p>
 
@@ -188,7 +202,7 @@
 
 <h2 id="v7">v7 Support Libraries</h2>
 
-<p>There are several libraries designed to be used with Android 2.1 (API level 7) and higher.
+<p>There are several libraries designed to be used with Android 2.3 (API level 9) and higher.
   These libraries provide specific feature sets and can be included in your application
   independently from each other.</p>
 
@@ -228,16 +242,10 @@
   </li>
 </ul>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/appcompat/</code> directory. The library contains user
-interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries with
-resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:appcompat-v7:23.3.0
+com.android.support:appcompat-v7:24.2.0
 </pre>
 
 
@@ -249,16 +257,10 @@
 on any app. These cards are useful for material design
 implementations, and are used extensively in layouts for TV apps.</p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/cardview/</code> directory. The library contains user interface
-resources. To include it in your application project, follow the instructions
-for <a href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding
-libraries with resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:cardview-v7:23.3.0
+com.android.support:cardview-v7:24.2.0
 </pre>
 
 
@@ -271,16 +273,10 @@
 For detailed information about the v7 gridlayout library APIs, see the
 {@link android.support.v7.widget android.support.v7.widget} package in the API reference.</p>
 
-<p>This library is located in the <code>&lt;sdk&gt;/extras/android/support/v7/gridlayout/</code>
-  directory . The library contains user
-  interface resources. To include it in your application project, follow the instructions for
-  <a href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries with
-  resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:gridlayout-v7:23.3.0
+com.android.support:gridlayout-v7:24.2.0
 </pre>
 
 
@@ -300,21 +296,10 @@
 {@link android.support.v7.media android.support.v7.media} package in the API
 reference.</p>
 
-<p>The v7 mediarouter library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/mediarouter/</code> directory after
-you download the Android Support Library. It's provided as a library project
-with a dependency on the v7 appcompat library, so you'll need to include both
-libraries in your build path when setting up your project. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>.</p>
-
-<p>The Gradle builder script dependency identifier is as follows:
-<code>com.android.support:support-v7-mediarouter:&lt;revision&gt;</code>,
-where "&lt;revision&gt;" is the minimum revision at which the library is available. For example:</p>
+<p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:mediarouter-v7:23.3.0
+com.android.support:mediarouter-v7:24.2.0
 </pre>
 
 <p class="caution">The v7 mediarouter library APIs introduced in Support Library
@@ -331,16 +316,10 @@
 from an album cover, and use those colors to build a color-coordinated song
 title card.</p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/palette/</code> directory. The library does not contain
-user interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:palette-v7:23.3.0
+com.android.support:palette-v7:24.2.0
 </pre>
 
 
@@ -353,16 +332,10 @@
 widget, a view for efficiently displaying large data sets by providing a
 limited window of data items.</p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/recyclerview/</code> directory. The library contains
-user interface resources. To include it in your application project, follow the instructions
-for <a href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding
-libraries with resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:recyclerview-v7:23.3.0
+com.android.support:recyclerview-v7:24.2.0
 </pre>
 
 
@@ -382,34 +355,21 @@
 {@link android.support.v7.preference.ListPreference}.  </p>
 
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v7/preference</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:preference-v7:23.3.0
+com.android.support:preference-v7:24.2.0
 </pre>
 
-
-
-
-
-
-
-
 <h2 id="v8">v8 Support Library</h2>
 
-<p>This library is designed to be used with Android 2.2 (API level 8) and higher.
+<p>This library is designed to be used with Android 2.3 (API level 9) and higher.
   This library provides specific feature sets and can be included in your application
   independently from other libraries.</p>
 
 <h3 id="v8-renderscript">v8 renderscript library</h3>
 
-<p>This library is designed to be used with Android (API level 8) and higher. It adds support for
+<p>This library is designed to be used with Android 2.3 (API level 9) and higher. It adds support for
   the <a href="{@docRoot}guide/topics/renderscript/compute.html">RenderScript</a> computation
   framework. These APIs are included in the {@link android.support.v8.renderscript} package. You
   should be aware that the steps for including these APIs in your application is <em>very
@@ -446,16 +406,10 @@
   android.support.v13} package in the API reference.
 </p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v13/</code> directory. The library does not contain user
-interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:support-v13:23.3.0
+com.android.support:support-v13:24.2.0
 </pre>
 
 
@@ -478,16 +432,10 @@
   package in the API reference.
 </p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v14/</code> directory. The library does not contain user
-interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:preference-v14:23.3.0
+com.android.support:preference-v14:24.2.0
 </pre>
 
 
@@ -507,16 +455,10 @@
   package in the API reference.
 </p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v17/</code> directory. The library does not contain user
-interface resources. To include it in your application project, follow the instructions for
-<a href="{@docRoot}tools/support-library/setup.html#libs-without-res">Adding libraries without
-resources</a>.</p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:preference-leanback-v17:23.3.0
+com.android.support:preference-leanback-v17:24.2.0
 </pre>
 
 
@@ -549,16 +491,10 @@
     into a {@link android.support.v17.leanback.app.RowsFragment}.</li>
 </ul>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/v17/leanback</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:leanback-v17:23.3.0
+com.android.support:leanback-v17:24.2.0
 </pre>
 
 
@@ -570,16 +506,10 @@
 
 <p></p>
 
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/annotations</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:support-annotations:23.3.0
+com.android.support:support-annotations:24.2.0
 </pre>
 
 
@@ -594,17 +524,10 @@
 app developers to build upon, such as navigation drawers, floating action buttons (<i>FAB</i>),
 snackbars, and <a href="{@docRoot}design/building-blocks/tabs.html">tabs</a>.  </p>
 
-
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/design</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:design:23.3.0
+com.android.support:design:24.2.0
 </pre>
 
 
@@ -622,17 +545,10 @@
 <a href="{@docRoot}reference/android/support/customtabs/CustomTabsCallback.html">Custom Tabs
 Callback</a>.  </p>
 
-
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/customtabs</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:customtabs:23.3.0
+com.android.support:customtabs:24.2.0
 </pre>
 
 
@@ -653,17 +569,10 @@
 <a href="{@docRoot}reference/android/support/percent/PercentRelativeLayout.html">
 PercentRelativeLayout</a>.  </p>
 
-
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/percent</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:percent:23.3.0
+com.android.support:percent:24.2.0
 </pre>
 
 
@@ -683,15 +592,8 @@
 <a href="{@docRoot}reference/android/support/app/recommendation/RecommendationExtender.html">
 RecommendationExtender</a>.  </p>
 
-
-<p>After you download the Android Support Libraries, this library is located in the
-<code>&lt;sdk&gt;/extras/android/support/recommendation</code> directory. For more information
-on how to set up your project, follow the instructions in <a
-href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. </p>
-
 <p>The Gradle build script dependency identifier for this library is as follows:</p>
 
 <pre>
-com.android.support:recommendation:23.3.0
+com.android.support:recommendation:24.2.0
 </pre>
diff --git a/docs/html/topic/libraries/support-library/revisions.jd b/docs/html/topic/libraries/support-library/revisions.jd
index 3b25fb0..4e14c70 100644
--- a/docs/html/topic/libraries/support-library/revisions.jd
+++ b/docs/html/topic/libraries/support-library/revisions.jd
@@ -6,9 +6,324 @@
 <p>This page provides details about the Support Library package releases.</p>
 
 <div class="toggle-content opened">
-  <p id="rev24-1-1">
+  <p id="rev24-2-0">
     <a href="#" onclick="return toggleContent(this)"><img src=
     "{@docRoot}assets/images/styles/disclosure_up.png" class=
+    "toggle-content-img" alt="">Android Support Library, revision 24.2.0</a>
+    <em>(August 2016)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+<p>Release 24.2.0 contains the following changes:</p>
+
+<ul>
+  <li><a href="#24-2-0-v4-refactor">v4 Support Library split</a></li>
+  <li><a href="#24-2-0-api-updates">API updates</a></li>
+  <li><a href="#24-2-0-behavior">Behavior changes</a></li>
+  <li><a href="#24-2-0-deprecations">Deprecations</a></li>
+  <li><a href="#24-2-0-bugfixes">Bug fixes</a></li>
+</ul>
+
+<p class="note"><strong>Note:</strong> Release 24.2.0 removes support for
+  Android 2.2 (API level 8) and lower. Classes and methods that exist only to
+  serve those system versions are now marked as deprecated and should no longer
+  be used. These deprecated classes and methods may be removed in a future
+  release.
+</p>
+
+<h3 id="24-2-0-v4-refactor">v4 Support Library split</h3>
+
+<p>With this release, the <a href="features.html#v4">v4 Support Library</a> has
+  been split into several smaller modules:</p>
+
+<dl>
+  <dt>
+    <code>support-compat</code>
+  </dt>
+
+  <dd>
+    Provides compatibility wrappers for new framework APIs, such as
+    <code>Context.getDrawable()</code> and
+    <code>View.performAccessibilityAction()</code>.
+  </dd>
+
+  <dt>
+    <code>support-core-utils</code>
+  </dt>
+
+  <dd>
+    Provides a number of utility classes, such as {@link
+    android.support.v4.content.AsyncTaskLoader} and {@link
+    android.support.v4.content.PermissionChecker}.
+  </dd>
+
+  <dt>
+    <code>support-core-ui</code>
+  </dt>
+
+  <dd>
+    Implements a variety of UI-related components, such as {@link
+    android.support.v4.view.ViewPager}, {@link
+    android.support.v4.widget.NestedScrollView}, and {@link
+    android.support.v4.widget.ExploreByTouchHelper}.
+  </dd>
+
+  <dt>
+    <code>support-media-compat</code>
+  </dt>
+
+  <dd>
+    Backports portions of the <a href=
+    "/reference/android/media/package-summary.html">media</a> framework,
+    including {@link android.media.browse.MediaBrowser} and {@link
+    android.media.session.MediaSession}.
+  </dd>
+
+  <dt>
+    <code>support-fragment</code>
+  </dt>
+
+  <dd>
+    Backports the <a href=
+    "/guide/components/fragments.html">fragment</a>
+    framework. This module has dependencies on <code>support-compat</code>,
+    <code>support-core-utils</code>, <code>support-core-ui</code>, and
+    <code>support-media-compat</code>.
+  </dd>
+</dl>
+
+<p>For backwards compatibility, if you list <code>support-v4</code> in your
+Gradle script, your APK will include all of these modules. However, to reduce
+APK size, we recommend that you just list the specific modules your app needs.
+</p>
+
+<h3 id="24-2-0-api-updates">API updates</h3>
+
+<ul>
+  <li>Clients using <a href="features.html#custom-tabs">Custom Tabs</a> can
+  control whether Instant Apps should open. (Note that Instant Apps are not yet
+  generally available.) To enable or disable Instant Apps, call <a href=
+  "/reference/android/support/customtabs/CustomTabsIntent.Builder.html#setInstantAppsEnabled(boolean)">
+  <code>CustomTabsIntent.Builder.setInstantAppsEnabled()</code></a> or
+  specify <a href=
+  "/reference/android/support/customtabs/CustomTabsIntent.html#EXTRA_ENABLE_INSTANT_APPS">
+  <code>EXTRA_ENABLE_INSTANT_APPS</code></a>. By default, Custom Tabs will
+  default to enabling Instant Apps, when that feature becomes available.
+  </li>
+
+  <li>{@link android.support.design.widget.TextInputLayout} adds support for
+  the <a href=
+  "https://material.google.com/components/text-fields.html#text-fields-password-input">
+    password visibility toggle</a> from the material design specification.
+  </li>
+
+  <li>The new <a href=
+  "/reference/android/support/transition/package-summary.html"
+  ><code>android.support.transition</code></a>
+  package backports the <a href=
+  "/training/transitions/index.html">Transitions</a> framework to API levels 14
+  and higher. For more information, see the <a href=
+  "/reference/android/support/transition/package-summary.html"
+  ><code>android.support.transition</code></a> reference.
+  </li>
+
+  <li>The <a href="features.html#custom-tabs">Custom Tabs support library</a>
+  adds support for using {@link android.widget.RemoteViews} in the secondary
+  toolbar. The existing {@link
+  android.support.customtabs.CustomTabsSession#setToolbarItem setToolbarItem()}
+  method is now deprecated.
+  </li>
+
+  <li>{@link android.support.v7.content.res.AppCompatResources} adds the
+  ability to load a <code>&lt;vector&gt;</code> (on API level 9 and higher) or
+  <code>&lt;animated-vector&gt;</code> (on API level 11 and higher) from a
+  resource ID, by using the new <a href=
+  "/reference/android/support/v7/content/res/AppCompatResources.html#getDrawable(android.content.Context,%20int)"
+  ><code>getDrawable()</code></a> method.
+  </li>
+
+  <li>{@link android.support.design.widget.CoordinatorLayout} now supports
+  defining inset views, and specifying that other views should dodge the inset
+  views. This allows apps to replicate behavior patterns similar to the way
+  {@link android.support.design.widget.FloatingActionButton} moves out of the
+  way of a {@link android.support.design.widget.Snackbar}, but for any
+  arbitrary view children. For more information, see the <a href=
+  "/reference/android/support/design/widget/CoordinatorLayout.LayoutParams.html#insetEdge">
+  <code>LayoutParams.insetEdge</code></a> and <a href=
+  "/reference/android/support/design/widget/CoordinatorLayout.LayoutParams.html#dodgeInsetEdges">
+  <code>LayoutParams.dodgeInsetEdges</code></a> reference documentation.
+  </li>
+
+  <li>The new <a href="/reference/android/support/v7/util/DiffUtil.html"><code>
+    DiffUtil</code></a> class can calculate the difference between two
+    collections, and can dispatch a list of update operations that are suitable
+    to be consumed by a {@link android.support.v7.widget.RecyclerView.Adapter}.
+  </li>
+
+  <li>
+    <a href=
+    "/reference/android/support/v7/widget/RecyclerView.OnFlingListener.html"><code>
+    RecyclerView.OnFlingListener</code></a> has been added to support custom
+    behavior in response to flings. The <a href=
+    "/reference/android/support/v7/widget/SnapHelper.html"><code>SnapHelper</code></a>
+    class provides an implementation specifically for snapping child views, and
+    the <a href=
+    "/reference/android/support/v7/widget/LinearSnapHelper.html"><code>LinearSnapHelper</code></a>
+    class extends this implementation to provide center-aligned snapping
+    behavior similar to {@link android.support.v4.view.ViewPager}.
+  </li>
+
+</ul>
+
+<h3 id="24-2-0-behavior">Behavior changes</h3>
+
+<ul>
+  <li>If you use the appcompat library's day/night functionality, the system
+  now automatically recreates your activity whenever the day/night mode changes
+  (either because of the time of day, or because of a call to {@link
+  android.support.v7.app.AppCompatDelegate#setLocalNightMode
+  AppCompatDelegate.setLocalNightMode()}).
+  </li>
+
+  <li>{@link android.support.design.widget.Snackbar} now draws behind the
+  navigation bar if the status bar is translucent.
+  </li>
+</ul>
+
+<h3 id="24-2-0-deprecations">Deprecations</h3>
+
+<p>Deprecated classes and methods are subject to removal in a future release. You should migrate away from these APIs as soon as possible.</p>
+
+<ul>
+  <li>Several methods on the following classes were only required for API 8 and
+  lower, and should no longer be used. Instead, use the framework
+  implementations.
+    <ul>
+      <li>{@link android.support.v4.view.KeyEventCompat}: Replace with {@link
+      android.view.KeyEvent}
+      </li>
+
+      <li>{@link android.support.v4.view.MotionEventCompat}: Use {@link
+      android.view.MotionEvent}
+      </li>
+
+      <li>{@link android.support.v4.view.ViewCompat}: Use {@link
+      android.view.View}
+      </li>
+
+      <li>{@link android.support.v4.view.ViewConfigurationCompat}: Use {@link
+      android.view.ViewConfiguration}
+      </li>
+    </ul>
+  </li>
+
+  <li>
+    {@link android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat#getDescription
+    AccessibilityServiceInfoCompat.getDescription()}
+    has been deprecated in favor of
+    <a href="/reference/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.html#loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager)"><code>loadDescription()</code></a>
+    which returns a correctly localized description.
+  </li>
+
+  <li>You should not instantiate the <code>ActivityCompat</code> class
+  directly. The non-static <code>getReferrer(Activity)</code> method will be
+  made static in an upcoming release.
+  </li>
+
+  <li>{@link android.support.design.widget.CoordinatorLayout.Behavior#isDirty
+  CoordinatorLayout.Behavior.isDirty()} has been deprecated and is no longer
+  called by {@link android.support.design.widget.CoordinatorLayout}. Any
+  implementations, as well as any calls to this method, should be removed.
+  </li>
+
+  <li>{@link android.support.v4.media.session.MediaSessionCompat#obtain
+  MediaSessionCompat.obtain()} has been deprecated and replaced with the more
+  appropriately-named method
+  <a href="/reference/android/support/v4/media/session/MediaSessionCompat.html#fromMediaSession"><code>fromMediaSession()</code></a>.
+  </li>
+
+  <li>{@link
+  android.support.v4.media.session.MediaSessionCompat.QueueItem#obtain
+  MediaSessionCompat.QueueItem.obtain()} has been deprecated and replaced with
+  the more appropriately-named method
+  <a href="/reference/android/support/v4/media/session/MediaSessionCompat.QueueItem.html#fromQueueItem"><code>fromQueueItem()</code></a>.
+  </li>
+
+  <li>Several abstract classes have been deprecated and replaced with
+  interfaces that more closely reflect their framework equivalents.
+    <ul>
+      <li>{@link
+      android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat}
+      has been replaced by the <a href=
+      "/reference/android/support/v4/view/accessibility/AccessibilityManagerCompat.AccessibilityStateChangeListener.html">
+        <code>AccessibilityManagerCompat.AccessibilityStateChangeListener</code></a>
+        interface.
+      </li>
+
+      <li>{@link
+      android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat} has
+      been replaced by the <a
+      href="/reference/android/support/v4/widget/SearchViewCompat.OnCloseListener.html"
+      ><code>SearchViewCompat.OnCloseListener</code></a> interface.
+      </li>
+
+      <li>{@link
+      android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat }
+      has been replaced by the <a
+      href="/reference/android/support/v4/widget/SearchViewCompat.OnQueryTextListener.html"
+      ><code>SearchViewCompat.OnQueryTextListener</code></a>
+      interface.
+      </li>
+    </ul>
+  </li>
+
+  <li>{@link android.support.customtabs.CustomTabsSession#setToolbarItem
+  CustomTabsSession.setToolbarItem()} has been deprecated and replaced by the
+  RemoteViews-based <a href=
+  "/reference/android/support/customtabs/CustomTabsSession.html#setSecondaryToolbarViews">
+    <code>setSecondaryToolbarViews()</code></a>.
+  </li>
+</ul>
+
+<h3 id="24-2-0-bugfixes">Bug fixes</h3>
+
+<p>The following known issues have been fixed with release 24.2.0:</p>
+
+<ul>
+  <li>Ensure <code>SwipeRefreshLayout</code> indicator is shown when
+  <code>setRefreshing(true)</code> is called before the first measurement pass
+  (<a href="https://code.google.com/p/android/issues/detail?id=77712">AOSP
+  issue 77712</a>)
+  </li>
+
+  <li>Prevent <code>TabLayout</code> from flickering when changing pages
+  (<a href="https://code.google.com/p/android/issues/detail?id=180454">AOSP
+  issue 180454</a>)
+  </li>
+
+  <li>Avoid <code>ClassNotFoundException</code> when unmarshalling
+  <code>SavedState</code> on API level 11 and lower (<a href=
+  "https://code.google.com/p/android/issues/detail?id=196430">AOSP issue
+  196430</a>)
+  </li>
+</ul>
+
+<p>
+  A complete list of public bug fixes is available on the <a href=
+  "https://code.google.com/p/android/issues/list?can=1&q=Component%3DSupport-Libraries+Target%3DSupport-24.2.0">
+  AOSP Issue Tracker</a>.
+</p>
+
+  </div>
+</div>
+
+<!-- end of collapsible section: 24.2.0 -->
+
+<div class="toggle-content closed">
+  <p id="rev24-1-1">
+    <a href="#" onclick="return toggleContent(this)"><img src=
+    "{@docRoot}assets/images/styles/disclosure_down.png" class=
     "toggle-content-img" alt="">Android Support Library, revision 24.1.1</a>
     <em>(July 2016)</em>
   </p>
@@ -76,7 +391,7 @@
     <ul>
       <li>TabLayout.setCustomView(null) results in NullPointerException
         (<a href="https://code.google.com/p/android/issues/detail?id=214753">AOSP
-        issue</a>)
+        issue 214753</a>)
       </li>
 
       <li>TabLayout incorrectly highlights custom tabs (<a href=
diff --git a/docs/html/topic/libraries/support-library/setup.jd b/docs/html/topic/libraries/support-library/setup.jd
index 5e33851..adb263c 100755
--- a/docs/html/topic/libraries/support-library/setup.jd
+++ b/docs/html/topic/libraries/support-library/setup.jd
@@ -10,18 +10,12 @@
     <ol>
       <li><a href="#download">Downloading the Support Library</a></li>
       <li><a href="#choosing">Choosing Support Libraries</a></li>
-      <li><a href="#add-library">Adding Support Libraries</a>
-        <ol>
-          <li><a href="#libs-without-res">Adding libraries without resources</a></li>
-          <li><a href="#libs-with-res">Adding libraries with resources</a></li>
-        </ol>
-      </li>
+      <li><a href="#add-library">Adding Support Libraries</a></li>
       <li><a href="#using-apis">Using Support Library APIs</a>
         <ol>
           <li><a href="#manifest">Manifest Declaration Changes</a></li>
         </ol>
       </li>
-      <li><a href="#samples">Code Samples</a></li>
     </ol>
 
     <h2>See also</h2>
@@ -45,8 +39,8 @@
 
 <h2 id="download">Downloading the Support Libraries</h2>
 
-<p>The Android Support Library package is provided as a supplemental download to the Android SDK
-  and is available through the Android
+<p>The Android Support Repository package is provided as a supplemental download
+ to the Android SDK and is available through the Android
   <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>. Follow the
   instructions below to obtain the Support Library files.
 </p>
@@ -57,22 +51,18 @@
   <li>Start the Android <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>.</li>
   <li>In the SDK Manager window, scroll to the end of the <em>Packages</em> list,
     find the <em>Extras</em> folder and, if necessary, expand to show its contents.</li>
-  <li>Select the <strong>Android Support Library</strong> item.
-    <p class="note">
-      <strong>Note:</strong> If you're developing with Android Studio, select and install the
-      <strong>Android Support Repository</strong> item instead.
-    </p>
-  </li>
+  <li>Select the <strong>Android Support Repository</strong> item.</li>
   <li>Click the <strong>Install packages...</strong> button.</li>
 </ol>
 
 <img src="{@docRoot}images/tools/sdk-manager-support-libs.png" width="525" alt="" />
-<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager with the
-Android Support Library selected.</p>
+<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager with
+Android Support Repository selected.</p>
 
 <p>After downloading, the tool installs the Support Library files to your existing Android SDK
   directory. The library files are located in the following subdirectory of your SDK:
-  {@code <sdk>/extras/android/support/} directory.</p>
+  <code>&lt;sdk&gt;/extras/android/m2repository/com/android/support/</code>
+  directory.</p>
 
 
 <h2 id="choosing">Choosing Support Libraries</h2>
@@ -89,60 +79,29 @@
   classpath dependencies within your development environment. You must perform this procedure for
   each Support Library you want to use.</p>
 
-<p>Some Support Libraries contain resources beyond compiled code classes, such as images or XML
-  files. For example, the <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">v7
-  appcompat</a> and <a href="{@docRoot}tools/support-library/features.html#v7-gridlayout">v7
-  gridlayout</a> libraries include resources.</p>
-
-<p>If you are not sure if a library contains resources, check the
-  <a href="{@docRoot}tools/support-library/features.html">Support Library Features</a> page.
-  The following sections describe how to add a Support Library with or without resources to your
-  application project. </p>
-
-
-<h3 id="libs-without-res">Adding libraries without resources</h3>
-
-<p>To add a Support Library without resources to your application project:</p>
+<p>To add a Support Library to your application project:</p>
 
     <ol>
       <li>Make sure you have downloaded the <strong>Android Support Repository</strong>
         using the <a href="#download">SDK Manager</a>.</li>
       <li>Open the {@code build.gradle} file for your application.</li>
-      <li>Add the support library to the {@code dependencies} section. For example, to add the v4
-        support library, add the following lines:
+      <li>Add the support library to the {@code dependencies} section. For
+        example, to add the v4 core-utils library, add the following lines:
 <pre>
 dependencies {
     ...
-    <b>compile "com.android.support:support-v4:18.0.+"</b>
+    <b>compile "com.android.support:support-core-utils:24.2.0"</b>
 }
 </pre>
       </li>
     </ol>
 
-
-<h3 id="libs-with-res">Adding libraries with resources</h3>
-
-<p>To add a Support Library with resources (such as
-  <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">v7
-  appcompat</a> for action bar) to your application project:</p>
-
-    <ol>
-      <li>Make sure you have downloaded the <strong>Android Support Repository</strong>
-        using the <a href="#download">SDK Manager</a>.</li>
-      <li>Open the {@code build.gradle} file for your application.</li>
-      <li>Add the support library feature project identifier to the {@code dependencies} section.
-        For example, to include the {@code appcompat} project add
-        {@code compile "com.android.support:appcompat-v7:18.0.+"} to the dependencies section, as
-        shown in the following example:
-<pre>
-dependencies {
-    ...
-    <b>compile "com.android.support:appcompat-v7:18.0.+"</b>
-}
-</pre>
-      </li>
-    </ol>
-
+<p class="caution">
+  <strong>Caution:</strong> Using dynamic dependencies (for example,
+  <code>palette-v7:23.0.+</code>) can cause unexpected version updates and
+  regression incompatibilities. We recommend that you explicitly specify a
+  library version (for example, <code>palette-v7:24.2.0</code>).
+</p>
 
 <h2 id="using-apis">Using Support Library APIs</h2>
 
@@ -189,12 +148,12 @@
 
 <pre>
   &lt;uses-sdk
-      android:minSdkVersion="<b>7</b>"
-      android:targetSdkVersion="17" /&gt;
+      android:minSdkVersion="<b>14</b>"
+      android:targetSdkVersion="23" /&gt;
 </pre>
 
 <p>The manifest setting tells Google Play that your application can be installed on devices with Android
-  2.1 (API level 7) and higher.  </p>
+  4.0 (API level 14) and higher.  </p>
 
 <p>If you are using Gradle build files, the <code>minSdkVersion</code> setting in the build file
   overrides the manifest settings.  </p>
@@ -206,7 +165,7 @@
     ...
 
     defaultConfig {
-        minSdkVersion 8
+        minSdkVersion 16
         ...
     }
     ...
@@ -214,28 +173,15 @@
 </pre>
 
 <p>In this case, the build file setting tells Google Play that the default build variant of your
-  application can be installed on devices with Android 2.2 (API level 8) and higher. For more
+  application can be installed on devices with Android 4.1 (API level 16) and higher. For more
   information about build variants, see
   <a href="{@docRoot}studio/build/index.html">Build System Overview</a>. </p>
 
 <p class="note">
-  <strong>Note:</strong> If you are including the v4 support and v7 appcompat libraries in your
-  application, you should specify a minimum SDK version of <code>"7"</code> (and not
-  <code>"4"</code>). The highest support library level you include in your application determines
-  the lowest API version in which it can operate.
+  <strong>Note:</strong> If you are including several support libraries, the
+  minimum SDK version must be the <em>highest</em> version required by any of
+  the specified libraries. For example, if your app includes both the <a href=
+  "features.html#v14-preference">v14 Preference Support library</a> and the
+  <a href="features.html#v17-leanback">v17 Leanback library</a>, your minimum
+  SDK version must be 17 or higher.
 </p>
-
-
-<h2 id="samples">Code Samples</h2>
-
-<p>Each Support Library includes code samples to help you get started using the support
-APIs. The code is included in the download from the SDK Manager and is placed inside the Android
-SDK installation directory, as listed below:</p>
-
-<ul>
-  <li>4v Samples: {@code <sdk>/extras/android/support/samples/Support4Demos/}</li>
-  <li>7v Samples: {@code <sdk>/extras/android/support/samples/Support7Demos/}</li>
-  <li>13v Samples: {@code <sdk>/extras/android/support/samples/Support13Demos/}</li>
-  <li>App Navigation: {@code <sdk>/extras/android/support/samples/SupportAppNavigation/}</li>
-</ul>
-
diff --git a/docs/html/topic/performance/_book.yaml b/docs/html/topic/performance/_book.yaml
index 94cfc57..e053a2c 100644
--- a/docs/html/topic/performance/_book.yaml
+++ b/docs/html/topic/performance/_book.yaml
@@ -26,6 +26,8 @@
   path: /topic/performance/threads.html
 - title: Optimizing View Hierarchies
   path: /topic/performance/optimizing-view-hierarchies.html
+- title: Background Optimization
+  path: /topic/performance/background-optimization.html
 - title: Intelligent Job-Scheduling
   path: /topic/performance/scheduling.html
 - title: Reducing APK Size
diff --git a/docs/html/preview/features/background-optimization.jd b/docs/html/topic/performance/background-optimization.jd
similarity index 98%
rename from docs/html/preview/features/background-optimization.jd
rename to docs/html/topic/performance/background-optimization.jd
index 326513b..3e4c041 100644
--- a/docs/html/preview/features/background-optimization.jd
+++ b/docs/html/topic/performance/background-optimization.jd
@@ -379,7 +379,7 @@
 
   <li style="list-style: none; display: inline">
 <pre class="no-pretty-print">
-{@code $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND ignore}
+{@code $ adb shell cmd appops set &lt;package_name&gt; RUN_IN_BACKGROUND ignore}
 </pre>
   </li>
 
@@ -389,7 +389,7 @@
 
   <li style="list-style: none; display: inline">
 <pre class="no-pretty-print">
-{@code $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND allow}
+{@code $ adb shell cmd appops set &lt;package_name&gt; RUN_IN_BACKGROUND allow}
 </pre>
   </li>
 </ul>
diff --git a/docs/html/topic/performance/performance_toc.cs b/docs/html/topic/performance/performance_toc.cs
index 49191bc..8c39523 100644
--- a/docs/html/topic/performance/performance_toc.cs
+++ b/docs/html/topic/performance/performance_toc.cs
@@ -656,7 +656,7 @@
              description=
              "How to sync and back up app and user data to remote web services in the
               cloud and how to restore the data back to multiple devices."
-            >Syncing to the Cloud</a>
+            >Backing up App Data to the Cloud</a>
         </div>
         <ul>
           <li><a href="<?cs var:toroot ?>training/backup/autosyncapi.html">
diff --git a/docs/html/training/_book.yaml b/docs/html/training/_book.yaml
index 0e2083a..891574f 100644
--- a/docs/html/training/_book.yaml
+++ b/docs/html/training/_book.yaml
@@ -420,6 +420,8 @@
       path: /training/basics/network-ops/connecting.html
     - title: Managing Network Usage
       path: /training/basics/network-ops/managing.html
+    - title: Optimizing Network Data Usage
+      path: /training/basics/network-ops/data-saver.html
     - title: Parsing XML Data
       path: /training/basics/network-ops/xml.html
   - title: Transferring Data Without Draining the Battery
@@ -436,7 +438,7 @@
       path: /training/efficient-downloads/redundant_redundant.html
     - title: Modifying Patterns Based on the Connectivity Type
       path: /training/efficient-downloads/connectivity_patterns.html
-  - title: Syncing to the Cloud
+  - title: Backing up App Data to the Cloud
     path: /training/backup/index.html
     path_attributes:
     - name: description
@@ -695,6 +697,8 @@
       path: /training/tv/playback/guided-step.html
     - title: Enabling Background Playback
       path: /training/tv/playback/options.html
+    - title: Adding Picture-in-picture
+      path: /training/tv/playback/picture-in-picture.html
   - title: Helping Users Find Content on TV
     path: /training/tv/discovery/index.html
     path_attributes:
@@ -724,6 +728,8 @@
       path: /training/tv/tif/channel.html
     - title: Managing User Interaction
       path: /training/tv/tif/ui.html
+    - title: Supporting Content Recording
+      path: /training/tv/tif/content-recording.html
   - title: TV Apps Checklist
     path: /training/tv/publishing/checklist.html
     path_attributes:
@@ -1378,6 +1384,11 @@
     path_attributes:
     - name: description
       value: How to use the SafetyNet service to analyze a device where your app is running and get information about its compatibility with your app.
+  - title: Checking URLs with the Safe Browsing API
+    path: /training/safebrowsing/index.html
+    path_attributes:
+    - name: description
+      value: How to use the SafetyNet service to determine if a URL is designated as a known threat.
   - title: Verifying Hardware-backed Key Pairs with Key Attestation
     path: /training/articles/security-key-attestation.html
     path_attributes:
@@ -1388,6 +1399,16 @@
     path_attributes:
     - name: description
       value: How to create an application that enforces security policies on devices.
+  - title: Supporting Direct Boot
+    path: /training/articles/direct-boot.html
+    path_attributes:
+    - name: description
+      value: How use device encrypted storage during Direct Boot mode.
+  - title: Using Scoped Directory Access
+    path: /training/articles/scoped-directory-access.html
+    path_attributes:
+    - name: description
+      value: How to use scoped directory access to request access to external storage directories.
 
 - title: Best Practices for Permissions & Identifiers
   path: /training/best-permissions-ids.html
diff --git a/docs/html/training/articles/assistant.jd b/docs/html/training/articles/assistant.jd
index a1fbd6b..703b377 100644
--- a/docs/html/training/articles/assistant.jd
+++ b/docs/html/training/articles/assistant.jd
@@ -11,110 +11,92 @@
 <div id="tb">
     <h2>In this document</h2>
     <ol>
-      <li><a href="#assist_api">Using the Assist API</a>
+      <li><a href="#assist_api">Using the Assistant</a>
       <ol>
-        <li><a href="#assist_api_lifecycle">Assist API Lifecycle</a></li>
-        <li><a href="#source_app">Source App</a></li>
-        <li><a href="#destination_app">Destination App</a></li>
+        <li><a href="#source_app">Source app</a></li>
+        <li><a href="#destination_app">Destination app</a></li>
       </ol>
       </li>
-      <li><a href="#implementing_your_own_assistant">Implementing your
-      own assistant</a></li>
+      <li><a href="#implementing_your_own_assistant">Implementing Your
+      Own Assistant</a></li>
     </ol>
   </div>
 </div>
 
 <p>
   Android 6.0 Marshmallow introduces a new way for users to engage with apps
-  through the assistant.
+  through the assistant. The assistant is a top-level window that users can view to obtain
+  contextually relevant actions for the current activity. These actions might include deep links
+  to other apps on the device.</p>
+
+<p>
+  Users activate the assistant with a long press on the Home button or by saying a
+  <a href="{@docRoot}reference/android/service/voice/AlwaysOnHotwordDetector.html">keyphrase</a>.
+  In response, the system opens a top-level window that displays contextually
+  relevant actions.
 </p>
 
 <p>
-  Users summon the assistant with a long-press on the Home button or by saying
-  the {@link android.service.voice.AlwaysOnHotwordDetector keyphrase}. In
-  response to the long-press, the system opens a top-level window that displays
-  contextually relevant actions for the current activity. These potential
-  actions might include deep links to other apps on the device.
+  Google App implements the assistant overlay window through a feature called
+  Now on Tap, which works with the Android platform-level functionality. The system allows
+  the user to select an assistant app, which obtains contextual information from your app
+  using Android’s Assist API.
 </p>
+<p>
+  This guide explains how Android apps use Android's Assist API to improve the assistant
+  user experience.
+<p/>
+</p>
+
+
+<h2 id="assist_api">Using the Assistant</h2>
 
 <p>
-  This guide explains how Android apps use Android's Assist API to improve the
-  assistant user experience.
+  Figure 1 illustrates a typical user interaction with the assistant. When the user long-presses
+  the Home button, the Assist API callbacks are invoked
+  in the <em>source</em> app (step 1). The assistant renders the overlay window (steps 2 and 3),
+  and then the user selects the action to perform. The assistant executes the selected action,
+  such as firing an intent with a deep link to the (<em>destination</em>) restaurant app (step 4).
 </p>
 
-
-<h2 id="assist_api">Using the Assist API</h2>
-
-<p>
-  The example below shows how Google Now integrates with the Android assistant
-  using a feature called Now on Tap.
-</p>
-
-<p>
-  The assistant overlay window in our example (2, 3) is implemented by Google
-  Now through a feature called Now on Tap, which works in concert with the
-  Android platform-level functionality. The system allows the user to select
-  the assistant app (Figure 2) that obtains contextual information from the
-  <em>source</em> app using the Assist API which is a part of the platform.
-</p>
-
-
 <div>
   <img src="{@docRoot}images/training/assistant/image01.png">
   <p class="img-caption" style="text-align:center;">
     Figure 1. Assistant interaction example with the Now on Tap feature of
-    Google Now
+    the Google App
   </p>
 </div>
 
 <p>
-  An Android user first configures the assistant and can change system options
-  such as using text and view hierarchy as well as the screenshot of the
-  current screen (Figure 2).
+  Users can configure the assistant by selecting <strong>Settings > Apps > Default Apps >
+  Assist &amp; voice input</strong>. Users can change system options such as accessing
+  the screen contents as text and accessing a screenshot, as shown in Figure 2.
 </p>
 
-<p>
-  From there, the assistant receives the information only when the user
-  activates assistance, such as when they tap and hold the Home button ( shown
-  in Figure 1, step 1).
-</p>
-
-<div style="float:right;margin:1em;max-width:300px">
+<div id="assist-input-settings" style="float:right;margin:1em;max-width:300px">
   <img src="{@docRoot}images/training/assistant/image02.png">
   <p class="img-caption" style="text-align:center;">
-    Figure 2. Assist &amp; voice input settings (<em>Settings/Apps/Default
-    Apps/Assist &amp; voice input</em>)
+    Figure 2. Assist &amp; voice input settings
   </p>
 </div>
 
-<h3 id="assist_api_lifecycle">Assist API Lifecycle</h3>
+<h3 id="source_app">Source app</h3>
 
 <p>
-  Going back to our example from Figure 1, the Assist API callbacks are invoked
-  in the <em>source</em> app after step 1 (user long-presses the Home button)
-  and before step 2 (the assistant renders the overlay window). Once the user
-  selects the action to perform (step 3), the assistant executes it, for
-  example by firing an intent with a deep link to the (<em>destination</em>)
-  restaurant app (step 4).
-</p>
-
-<h3 id="source_app">Source App</h3>
-
-<p>
-  In most cases, your app does not need to do anything extra to integrate with
-  the assistant if you already follow <a href=
+  To ensure that your app works with the assistant as a source of information for the user,
+  you need only follow <a href=
   "{@docRoot}guide/topics/ui/accessibility/apps.html">accessibility best
   practices</a>. This section describes how to provide additional information
-  to help improve the assistant user experience, as well as scenarios, such as
-  custom Views, that need special handling.
+  to help improve the assistant user experience as well as scenarios
+  that need special handling, such as custom Views.
 </p>
-
-<h4 id="share_additional_information_with_the_assistant">Share Additional Information with the Assistant</h4>
+<h4 id="share_additional_information_with_the_assistant">Share additional information
+ with the assistant</h4>
 
 <p>
   In addition to the text and the screenshot, your app can share
-  <em>additional</em> information with the assistant. For example, your music
-  app can choose to pass current album information, so that the assistant can
+  other information with the assistant. For example, your music
+  app can choose to pass current album information so that the assistant can
   suggest smarter actions tailored to the current activity.
 </p>
 
@@ -122,13 +104,13 @@
   To provide additional information to the assistant, your app provides
   <em>global application context</em> by registering an app listener and
   supplies activity-specific information with activity callbacks as shown in
-  Figure 3.
+  Figure 3:
 </p>
 
 <div>
   <img src="{@docRoot}images/training/assistant/image03.png">
   <p class="img-caption" style="text-align:center;">
-    Figure 3. Assist API lifecycle sequence diagram.
+    Figure 3. Assist API lifecycle sequence diagram
   </p>
 </div>
 
@@ -136,43 +118,42 @@
   To provide global application context, the app creates an implementation of
   {@link android.app.Application.OnProvideAssistDataListener} and registers it
   using {@link
-  android.app.Application#registerOnProvideAssistDataListener(android.app.Application.OnProvideAssistDataListener)}.
-  In order to provide activity-specific contextual information, activity
-  overrides {@link android.app.Activity#onProvideAssistData(android.os.Bundle)}
+  android.app.Application#registerOnProvideAssistDataListener(android.app.Application.OnProvideAssistDataListener) registerOnProvideAssistDataListener()}.
+  To provide activity-specific contextual information, the activity
+  overrides {@link android.app.Activity#onProvideAssistData(android.os.Bundle) onProvideAssistData()}
   and {@link
-  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent)}.
+  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent) onProvideAssistContent()}.
   The two activity methods are called <em>after</em> the optional global
-  callback (registered with {@link
-  android.app.Application#registerOnProvideAssistDataListener(android.app.Application.OnProvideAssistDataListener)})
-  is invoked. Since the callbacks execute on the main thread, they should
+  callback is invoked. Because the callbacks execute on the main thread, they should
   complete <a href="{@docRoot}training/articles/perf-anr.html">promptly</a>.
   The callbacks are invoked only when the activity is <a href=
   "{@docRoot}reference/android/app/Activity.html#ActivityLifecycle">running</a>.
 </p>
 
-<h5 id="providing_context">Providing Context</h5>
+<h5 id="providing_context">Providing context</h5>
 
 <p>
-  {@link android.app.Activity#onProvideAssistData(android.os.Bundle)} is called
-  when the user is requesting the assistant to build a full {@link
+  When the user activates the assistant,
+  {@link android.app.Activity#onProvideAssistData(android.os.Bundle) onProvideAssistData()} is called to build a full
+  {@link
   android.content.Intent#ACTION_ASSIST} Intent with all of the context of the
   current application represented as an instance of the {@link
   android.app.assist.AssistStructure}. You can override this method to place
-  into the bundle anything you would like to appear in the
-  <code>EXTRA_ASSIST_CONTEXT</code> part of the assist Intent.
+  anything you like into the bundle to appear in the
+  {@link android.content.Intent#EXTRA_ASSIST_CONTEXT} part of the assist intent.
 </p>
 
-<h5 id="describing_content">Describing Content</h5>
+<h5 id="describing_content">Describing content</h5>
 
 <p>
   Your app can implement {@link
-  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent)}
-  to improve assistant user experience by providing references to content
+  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent) onProvideAssistContent()}
+  to improve the assistant user experience by providing content-related references
   related to the current activity. You can describe the app content using the
-  common vocabulary defined by <a href="https://schema.org">Schema.org</a>
+  common vocabulary defined by <a href="https://schema.org" class="external-link">Schema.org</a>
   through a JSON-LD object. In the example below, a music app provides
-  structured data to describe the music album the user is currently
-  looking at.
+  structured data to describe the music album that the user is currently
+  viewing:
 </p>
 
 <pre class="prettyprint">
@@ -191,127 +172,158 @@
 </pre>
 
 <p>
-  Custom implementations of {@link
-  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent)}
-  may also adjust the provided {@link
-  android.app.assist.AssistContent#setIntent(android.content.Intent) content
-  intent} to better reflect the top-level context of the activity, supply
-  {@link android.app.assist.AssistContent#setWebUri(android.net.Uri) the URI}
-  of the displayed content, and fill in its {@link
-  android.app.assist.AssistContent#setClipData(android.content.ClipData)} with
-  additional content of interest that the user is currently viewing.
+ You can also improve the user experience with custom implementations of
+ {@link
+ android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent) onProvideAssistContent()},
+ which can provide the following benefits:
+</p>
+<ul>
+  <li><a href="{@docRoot}reference/android/app/assist/AssistContent.html#setIntent(android.content.Intent)">
+  Adjusts the provided content
+  intent</a> to
+  better reflect the top-level context of the activity.</li>
+  <li><a href="{@docRoot}reference/android/app/assist/AssistContent.html#setWebUri(android.net.Uri)">
+  Supplies the URI</a>
+  of the displayed content.</li>
+  <li>Fills in {@link
+  android.app.assist.AssistContent#setClipData(android.content.ClipData) setClipData()} with additional
+  content of interest that the user is currently viewing.</li>
+</ul>
+<p class="note">
+  <strong>Note: </strong>Apps that use a custom text selection implementation likely need
+  to implement {@link
+  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent) onProvideAssistContent()}
+  and call {@link android.app.assist.AssistContent#setClipData(android.content.ClipData) setClipData()}.
 </p>
 
-<h4 id="default_implementation">Default Implementation</h4>
+<h4 id="default_implementation">Default implementation</h4>
 
 <p>
-  If neither {@link
-  android.app.Activity#onProvideAssistData(android.os.Bundle)} nor {@link
-  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent)}
-  callbacks are implemented, the system will still proceed and pass the
-  information collected automatically to the assistant unless the current
+  If neither the {@link
+  android.app.Activity#onProvideAssistData(android.os.Bundle) onProvideAssistData()} nor the {@link
+  android.app.Activity#onProvideAssistContent(android.app.assist.AssistContent) onProvideAssistContent()}
+  callback is implemented, the system still proceeds and passes the
+  automatically collected information to the assistant unless the current
   window is flagged as <a href="#excluding_views">secure</a>.
   As shown in Figure 3, the system uses the default implementations of {@link
-  android.view.View#onProvideStructure(android.view.ViewStructure)} and {@link
-  android.view.View#onProvideVirtualStructure(android.view.ViewStructure)} to
+  android.view.View#onProvideStructure(android.view.ViewStructure) onProvideStructure()} and {@link
+  android.view.View#onProvideVirtualStructure(android.view.ViewStructure) onProvideVirtualStructure()} to
   collect text and view hierarchy information. If your view implements custom
-  text drawing, you should override {@link
-  android.view.View#onProvideStructure(android.view.ViewStructure)} to provide
+  text drawing, override {@link
+  android.view.View#onProvideStructure(android.view.ViewStructure) onProvideStructure()} to provide
   the assistant with the text shown to the user by calling {@link
-  android.view.ViewStructure#setText(java.lang.CharSequence)}.
+  android.view.ViewStructure#setText(java.lang.CharSequence) setText(CharSequence)}.
 </p>
 
 <p>
-  <strong>In most cases, implementing accessibility support will enable the
-  assistant to obtain the information it needs.</strong> This includes
-  providing {@link android.R.attr#contentDescription
-  android:contentDescription} attributes, populating {@link
-  android.view.accessibility.AccessibilityNodeInfo} for custom views, making
-  sure custom {@link android.view.ViewGroup ViewGroups} correctly {@link
-  android.view.ViewGroup#getChildAt(int) expose} their children, and following
-  the best practices described in <a href=
-  "{@docRoot}guide/topics/ui/accessibility/apps.html">“Making Applications
-  Accessible”</a>.
-</p>
+  <em>In most cases, implementing accessibility support enables the
+  assistant to obtain the information it needs.</em> To implement accessibility support,
+  observe the best practices described in <a href=
+  "{@docRoot}guide/topics/ui/accessibility/apps.html">Making Applications
+  Accessible</a>, including the following:</p>
+
+<ul>
+  <li>Provide {@link android.R.attr#contentDescription
+  android:contentDescription} attributes.</li>
+  <li>Populate {@link
+  android.view.accessibility.AccessibilityNodeInfo} for custom views.</li>
+  <li>Make
+  sure that custom {@link android.view.ViewGroup ViewGroup} objects correctly
+  <a href="{@docRoot}reference/android/view/ViewGroup.html#getChildAt(int)">expose</a>
+  their children.</li>
+</ul>
 
 <h4 id="excluding_views">Excluding views from the assistant</h4>
 
 <p>
-  An activity can exclude the current view from the assistant. This is accomplished
+  To handle sensitive information, your app can exclude the current view from the assistant
   by setting the {@link android.view.WindowManager.LayoutParams#FLAG_SECURE
-  FLAG_SECURE} layout parameter of the WindowManager and must be done
-  explicitly for every window created by the activity, including Dialogs. Your
-  app can also use {@link android.view.SurfaceView#setSecure(boolean)
-  SurfaceView.setSecure} to exclude a surface from the assistant. There is no
+  FLAG_SECURE} layout parameter of the {@link android.view.WindowManager}. You must set {@link
+  android.view.WindowManager.LayoutParams#FLAG_SECURE
+  FLAG_SECURE} explicitly for
+  every window created by the activity, including dialogs. Your app can also use
+  {@link android.view.SurfaceView#setSecure(boolean) setSecure()} to exclude
+  a surface from the assistant. There is no
   global (app-level) mechanism to exclude all views from the assistant. Note
-  that <code>FLAG_SECURE</code> does not cause the Assist API callbacks to stop
-  firing. The activity which uses <code>FLAG_SECURE</code> can still explicitly
+  that {@link android.view.WindowManager.LayoutParams#FLAG_SECURE
+  FLAG_SECURE} does not cause the Assist API callbacks to stop
+  firing. The activity that uses {@link android.view.WindowManager.LayoutParams#FLAG_SECURE
+  FLAG_SECURE} can still explicitly
   provide information to the assistant using the callbacks described earlier
   this guide.
 </p>
 
-<h4 id="voice_interactions">Voice Interactions</h4>
+<p class="note"><strong>Note: </strong>For enterprise accounts (Android for Work),
+ the administrator can disable
+ the collection of assistant data for the work profile by using the {@link
+ android.app.admin.DevicePolicyManager#setScreenCaptureDisabled(android.content.ComponentName, boolean)
+ setScreenCaptureDisabled()} method of the {@link android.app.admin.DevicePolicyManager} API.</p>
+
+<h4 id="voice_interactions">Voice interactions</h4>
 
 <p>
-  Assist API callbacks are also invoked upon {@link
-  android.service.voice.AlwaysOnHotwordDetector keyphrase detection}. For more
-  information see the <a href="https://developers.google.com/voice-actions/">voice
-  actions</a> documentation.
+  Assist API callbacks are also invoked upon
+  <a href="{@docRoot}reference/android/service/voice/AlwaysOnHotwordDetector.html">keyphrase
+  detection</a>. For more information, see the
+  <a href="https://developers.google.com/voice-actions/" class="external-link">Voice
+  Actions</a> documentation.
 </p>
 
 <h4 id="z-order_considerations">Z-order considerations</h4>
 
 <p>
   The assistant uses a lightweight overlay window displayed on top of the
-  current activity. The assistant can be summoned by the user at any time.
-  Therefore, apps should not create permanent {@link
-  android.Manifest.permission#SYSTEM_ALERT_WINDOW system alert}
-  windows interfering with the overlay window shown in Figure 4.
+  current activity. Because the user can activate the assistant at any time,
+  don't create permanent <a
+  href="{@docRoot}reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW">
+  system alert</a> windows that interfere with the overlay window, as shown in
+  Figure 4.
 </p>
 
 <div style="">
   <img src="{@docRoot}images/training/assistant/image04.png">
   <p class="img-caption" style="text-align:center;">
-    Figure 4. Assist layer Z-order.
+    Figure 4. Assist layer Z-order
   </p>
 </div>
 
 <p>
-  If your app uses {@link
-  android.Manifest.permission#SYSTEM_ALERT_WINDOW system alert} windows, it
-  must promptly remove them as leaving them on the screen will degrade user
-  experience and annoy the users.
+  If your app uses <a
+  href="{@docRoot}reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW">
+  system alert</a> windows, remove them promptly because leaving them on the
+  screen degrades the user experience.
 </p>
 
-<h3 id="destination_app">Destination App</h3>
+<h3 id="destination_app">Destination app</h3>
 
 <p>
-  The matching between the current user context and potential actions displayed
-  in the overlay window (shown in step 3 in Figure 1) is specific to the
-  assistant’s implementation. However, consider adding <a href=
-  "{@docRoot}training/app-indexing/deep-linking.html">deep linking</a> support
-  to your app. The assistant will typically take advantage of deep linking. For
-  example, Google Now uses deep linking and <a href=
-  "https://developers.google.com/app-indexing/">App Indexing</a> in order to
+  The assistant typically takes advantage of deep linking to find destination apps. To make your
+  app a potential destination app, consider adding <a href=
+  "{@docRoot}training/app-indexing/deep-linking.html">deep linking</a> support. The matching
+  between the current user context and deep links or other potential actions displayed in the
+  overlay window (shown in step 3 in Figure 1) is specific to the assistant’s implementation.
+  For
+  example, the Google App uses deep linking and <a href=
+  "https://developers.google.com/app-indexing/" class="external-link">Firebase App Indexing</a> in order to
   drive traffic to destination apps.
 </p>
 
-<h2 id="implementing_your_own_assistant">Implementing your own assistant </h2>
+<h2 id="implementing_your_own_assistant">Implementing Your Own Assistant </h2>
 
 <p>
-  Some developers may wish to implement their own assistant. As shown in Figure
-  2, the active assistant app can be selected by the Android user. The
+  You may wish to implement your own assistant. As shown in <a href="#assist-input-settings">Figure
+  2</a>, the user can select the active assistant app. The
   assistant app must provide an implementation of {@link
   android.service.voice.VoiceInteractionSessionService} and {@link
   android.service.voice.VoiceInteractionSession} as shown in <a href=
-  "https://android.googlesource.com/platform/frameworks/base/+/android-5.0.1_r1/tests/VoiceInteraction?autodive=0%2F%2F%2F%2F%2F%2F">
-  this</a> example and it requires the {@link
-  android.Manifest.permission#BIND_VOICE_INTERACTION} permission. It can then
+  "https://android.googlesource.com/platform/frameworks/base/+/marshmallow-release/tests/VoiceInteraction/" class="external-link">
+  this <code>VoiceInteraction</code> example</a>. It also requires the {@link
+  android.Manifest.permission#BIND_VOICE_INTERACTION} permission. The assistant can then
   receive the text and view hierarchy represented as an instance of the {@link
   android.app.assist.AssistStructure} in {@link
   android.service.voice.VoiceInteractionSession#onHandleAssist(android.os.Bundle,
   android.app.assist.AssistStructure,android.app.assist.AssistContent) onHandleAssist()}.
-  The assistant receives the screenshot through {@link
+  It receives the screenshot through {@link
   android.service.voice.VoiceInteractionSession#onHandleScreenshot(android.graphics.Bitmap)
   onHandleScreenshot()}.
 </p>
diff --git a/docs/html/preview/features/direct-boot.jd b/docs/html/training/articles/direct-boot.jd
similarity index 86%
rename from docs/html/preview/features/direct-boot.jd
rename to docs/html/training/articles/direct-boot.jd
index 60f6141..ea2686e 100644
--- a/docs/html/preview/features/direct-boot.jd
+++ b/docs/html/training/articles/direct-boot.jd
@@ -1,12 +1,10 @@
-page.title=Direct Boot
-page.keywords=preview,sdk,direct boot
-page.tags=androidn
-page.image=images/cards/card-nyc_2x.jpg
+page.title=Supporting Direct Boot
+page.keywords=direct boot
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>In this document</h2>
   <ol>
     <li><a href="#run">Requesting Access to Run During Direct Boot</a></li>
@@ -19,7 +17,7 @@
 </div>
 </div>
 
-<p>Android N runs in a secure, <i>Direct Boot</i> mode
+<p>Android 7.0 runs in a secure, <i>Direct Boot</i> mode
 when the device has been powered on but the user has not unlocked the
 device. To support this, the system provides two storage locations for data:</p>
 
@@ -63,21 +61,23 @@
 <code>android:directBootAware</code> attribute to true in your manifest.<p>
 
 <p>Encryption aware components can register to receive a
-<code>LOCKED_BOOT_COMPLETED</code> broadcast message from the
+{@link android.content.Intent#ACTION_LOCKED_BOOT_COMPLETED
+ACTION_LOCKED_BOOT_COMPLETED} broadcast message from the
 system when the device has been restarted. At this point device encrypted
 storage is available, and your component can execute tasks that need to be
 run during Direct Boot mode, such as triggering a scheduled alarm.</p>
 
 <p>The following code snippet is an example of how to register a
 {@link android.content.BroadcastReceiver} as encryption aware, and add an
-intent filter for <code>LOCKED_BOOT_COMPLETED</code>, in the app manifest:</p>
+intent filter for {@link android.content.Intent#ACTION_LOCKED_BOOT_COMPLETED
+ACTION_LOCKED_BOOT_COMPLETED}, in the app manifest:</p>
 
 <pre>
 &lt;receiver
   android:directBootAware="true" &gt;
   ...
   &lt;intent-filter&gt;
-    &lt;action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /&gt;
+    &lt;action android:name="android.intent.action.ACTION_LOCKED_BOOT_COMPLETED" /&gt;
   &lt;/intent-filter&gt;
 &lt;/receiver&gt;
 </pre>
@@ -89,7 +89,8 @@
 
 <p>To access device encrypted storage, create a second
 {@link android.content.Context} instance by calling
-<code>Context.createDeviceProtectedStorageContext()</code>. All storage API
+{@link android.content.Context#createDeviceProtectedStorageContext
+Context.createDeviceProtectedStorageContext()}. All storage API
 calls made using this context access the device encrypted storage. The
 following example accesses the device encrypted storage and opens an existing
 app data file:</p>
@@ -120,7 +121,8 @@
 </p>
 <ul>
 <li>If your app has foreground processes that need immediate notification,
-listen for the {@code ACTION_USER_UNLOCKED} message.</li>
+listen for the {@link android.content.Intent#ACTION_USER_UNLOCKED
+ACTION_USER_UNLOCKED} message.</li>
 <li>If your app only uses background processes that can act on a delayed
 notification, listen for the
 {@link android.content.Intent#ACTION_BOOT_COMPLETED ACTION_BOOT_COMPLETED}
@@ -128,14 +130,17 @@
 </ul>
 
 <p>If the user has unlocked the device, you can find out by calling
-<code>UserManager.isUserUnlocked()</code>.</p>
+{@link android.os.UserManager#isUserUnlocked UserManager.isUserUnlocked()}.
+</p>
 
 <h2 id="migrating">Migrating Existing Data</h2>
 
 <p>If a user updates their device to use Direct Boot mode, you might have
 existing data that needs to get migrated to device encrypted storage. Use
-<code>Context.moveSharedPreferencesFrom()</code> and
-<code>Context.moveDatabaseFrom()</code> to migrate preference and database
+{@link android.content.Context#moveSharedPreferencesFrom
+Context.moveSharedPreferencesFrom()} and
+{@link android.content.Context#moveDatabaseFrom
+Context.moveDatabaseFrom()} to migrate preference and database
 data between credential encrypted storage and device encrypted storage.</p>
 
 <p>Use your best judgment when deciding what data to migrate from credential
@@ -146,13 +151,13 @@
 
 <h2 id="testing">Testing Your Encryption Aware App</h2>
 
-<p>Test your encryption aware app using the new Direct Boot mode. There are
+<p>Test your encryption aware app with Direct Boot mode enabled. There are
 two ways to enable Direct Boot.</p>
 
 <p class="caution"><strong>Caution:</strong> Enabling Direct Boot
 wipes all user data on the device.</p>
 
-<p>On supported devices with Android N installed, enable
+<p>On supported devices with Android 7.0 installed, enable
 Direct Boot by doing one of the following:</p>
 
 <ul>
@@ -194,14 +199,14 @@
 {@link android.app.admin.DevicePolicyManager#getStorageEncryptionStatus
 DevicePolicyManager.getStorageEncryptionStatus()} to check the current
 encryption status of the device. If your app is targeting an API level
-lower than Android N,
+lower than 24.0 (Android 7.0),
 {@link android.app.admin.DevicePolicyManager#getStorageEncryptionStatus
 getStorageEncryptionStatus()} will return
 {@link android.app.admin.DevicePolicyManager#ENCRYPTION_STATUS_ACTIVE
 ENCRYPTION_STATUS_ACTIVE} if the device is either using full-disk encryption,
 or file-based encryption with Direct Boot. In both of these cases, data is
 always stored encrypted at rest. If your app is targeting an API level of
-Android N or higher,
+24.0 or higher,
 {@link android.app.admin.DevicePolicyManager#getStorageEncryptionStatus
 getStorageEncryptionStatus()} will return
 {@link android.app.admin.DevicePolicyManager#ENCRYPTION_STATUS_ACTIVE
@@ -212,7 +217,7 @@
 with Direct Boot.</p>
 
 <p>If you build a device administration app
-that targets Android N, make sure to check for both
+that targets Android 7.0, make sure to check for both
 {@link android.app.admin.DevicePolicyManager#ENCRYPTION_STATUS_ACTIVE
 ENCRYPTION_STATUS_ACTIVE} and
 {@link android.app.admin.DevicePolicyManager#ENCRYPTION_STATUS_ACTIVE_PER_USER
diff --git a/docs/html/preview/features/scoped-folder-access.jd b/docs/html/training/articles/scoped-directory-access.jd
similarity index 60%
rename from docs/html/preview/features/scoped-folder-access.jd
rename to docs/html/training/articles/scoped-directory-access.jd
index 06dd665..1e0bf39 100644
--- a/docs/html/preview/features/scoped-folder-access.jd
+++ b/docs/html/training/articles/scoped-directory-access.jd
@@ -1,11 +1,10 @@
-page.title=Scoped Directory Access
-page.keywords=preview,sdk,scoped directory access
-page.tags=androidn
+page.title=Using Scoped Directory Access
+page.keywords=scoped directory access
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
   <h2>In this document</h2>
   <ol>
     <li><a href="#accessing">Accessing an External Storage Directory</a></li>
@@ -32,29 +31,37 @@
 external directory.</li>
 </ul>
 
-<p>Android N provides a new simplified API to access
-common external storage directories. </p>
+<p>Android 7.0 provides a simplified API to access common external storage
+directories.</p>
 
 <h2 id="accessing">Accessing an External Storage Directory</h2>
 
-<p>Use the <code>StorageManager</code> class to get the appropriate
-<code>StorageVolume</code> instance. Then, create an intent by calling the
-<code>StorageVolume.createAccessIntent()</code> method of that instance.
+<p>Use the {@link android.os.storage.StorageManager} class to get the
+appropriate {@link android.os.storage.StorageVolume} instance. Then, create
+an intent by calling the
+{@link android.os.storage.StorageVolume#createAccessIntent
+StorageVolume.createAccessIntent()} method of that instance.
 Use this intent to access external storage directories. To get a list of
-all available volumes, including removable media volumes, use
-<code>StorageManager.getVolumesList()</code>.</p>
+all available volumes, including removable media
+volumes, use {@link android.os.storage.StorageManager#getStorageVolumes
+StorageManager.getStorageVolumes()}.</p>
 
 <p>If you have information about a specific file, use
-<code>StorageManager.getStorageVolume(File)</code> to get the
-<code>StorageVolume</code> that contains the file. Call
-<code>createAccessIntent()</code> on this <code>StorageVolume</code> to access
+{@link android.os.storage.StorageManager#getStorageVolume
+StorageManager.getStorageVolume(File)} to get the
+{@link android.os.storage.StorageVolume} that contains the file. Call
+{@link android.os.storage.StorageVolume#createAccessIntent
+createAccessIntent()} on this
+{@link android.os.storage.StorageVolume} to access
 the external storage directory for the file.</p>
 
 <p>
 On secondary volumes, such as external SD cards, pass in null when calling
-<code>StorageVolume.createAccessIntent()</code> to request access to the entire
+{@link android.os.storage.StorageVolume#createAccessIntent
+createAccessIntent()} to request access to the entire
 volume, instead of a specific directory.
-<code>StorageVolume.createAccessIntent()</code> returns null if you pass in
+{@link android.os.storage.StorageVolume#createAccessIntent
+createAccessIntent()} returns null if you pass in
 null to the primary volume, or if you pass in an invalid directory name.
 </p>
 
@@ -63,7 +70,7 @@
 
 <pre>
 StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
-StorageVolume volume = sm.getPrimaryVolume();
+StorageVolume volume = sm.getPrimaryStorageVolume();
 Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
 startActivityForResult(intent, request_code);
 </pre>
@@ -71,25 +78,27 @@
 <p>The system attempts to grant access to the external directory, and if
 necessary confirms access with the user using a simplified UI:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-framed.png"
-srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
-{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-framed.png"
+srcset="{@docRoot}images/android-7.0/scoped-directory-access-framed.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-framed_2x.png 2x" />
 <p class="img-caption"><strong>Figure 1.</strong> An application requesting
 access to the Pictures directory.</p>
 
 <p>If the user grants access, the system calls your
-<code>onActivityResult()</code> override with a result code of
-<code>Activity.RESULT_OK</code>, and intent data that contains the URI. Use
+{@link android.app.Activity#onActivityResult onActivityResult()} override
+with a result code of {@link android.app.Activity#RESULT_OK
+RESULT_OK}, and intent data that contains the URI. Use
 the provided URI to access directory information, similar to using URIs
 returned by the
 <a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
 Access Framework</a>.</p>
 
 <p>If the user doesn't grant access, the system calls your
-<code>onActivityResult()</code> override with a result code of
-<code>Activity.RESULT_CANCELED</code>, and null intent data.</p>
+{@link android.app.Activity#onActivityResult onActivityResult()} override
+with a result code of {@link android.app.Activity#RESULT_CANCELED
+RESULT_CANCELED}, and null intent data.</p>
 
-<p class="note"><b>Note</b>: Getting access to a specific external directory
+<p>Getting access to a specific external directory
 also gains access to subdirectories within that directory.</p>
 
 <h2 id="removable">Accessing a Directory on Removable Media</h2>
@@ -112,9 +121,9 @@
 
 <p>When the user mounts removable media, like an SD card, the system sends a
 {@link android.os.Environment#MEDIA_MOUNTED} notification. This notification
-provides a <code>StorageVolume</code> object in the intent data that you can
-use to access directories on the removable media. The following example
-accesses the <code>Pictures</code> directory on removable media:</p>
+provides a {@link android.os.storage.StorageVolume} object in the intent data
+that you can use to access directories on the removable media. The following
+example accesses the <code>Pictures</code> directory on removable media:</p>
 
 <pre>
 // BroadcastReceiver has already cached the MEDIA_MOUNTED
@@ -129,19 +138,22 @@
 
 <p>Where possible, persist the external directory access URI so you don't have
 to repeatedly ask the user for access. Once the user has granted access, call
-<code>getContentResolver().takePersistableUriPermssion()</code> with the
-directory access URI. The system will persist the URI and subsequent access
-requests will return <code>RESULT_OK</code> and not show confirmation UI to the
-user.</p>
+{@link android.content.Context#getContentResolver getContentResolver()} and
+with the returned {@link android.content.ContentResolver} call
+{@link android.content.ContentResolver#takePersistableUriPermission
+takePersistableUriPermission()} with the directory access URI. The system will
+persist the URI and subsequent access requests will return
+{@link android.app.Activity#RESULT_OK RESULT_OK} and not show confirmation
+UI to the user.</p>
 
 <p>If the user denies access to an external directory, do not immediately
 request access again. Repeatedly insisting on access results in a poor user
 experience. If a request is denied by the user, and the app requests access
 again, the UI displays a <b>Don't ask again</b> checkbox:</p>
 
-<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png"
-srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
-{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
+<img src="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png"
+srcset="{@docRoot}images/android-7.0/scoped-directory-access-dont-ask.png 1x,
+{@docRoot}images/android-7.0/scoped-directory-access-dont-ask_2x.png 2x" />
 <p class="img-caption"><strong>Figure 1.</strong> An application making a
 second request for access to removable media.</p>
 
diff --git a/docs/html/training/backup/backupapi.jd b/docs/html/training/backup/backupapi.jd
index b115b8b..2f3e939 100644
--- a/docs/html/training/backup/backupapi.jd
+++ b/docs/html/training/backup/backupapi.jd
@@ -1,5 +1,5 @@
 page.title=Using the Backup API
-parent.title=Syncing to the Cloud
+parent.title=Backing up App Data to the Cloud
 parent.link=index.html
 
 trainingnavtop=true
diff --git a/docs/html/training/basics/activity-lifecycle/pausing.jd b/docs/html/training/basics/activity-lifecycle/pausing.jd
index 7ca97aa..64fa60b 100644
--- a/docs/html/training/basics/activity-lifecycle/pausing.jd
+++ b/docs/html/training/basics/activity-lifecycle/pausing.jd
@@ -32,25 +32,34 @@
   </div>
 </div>
 
-<p>During normal app use, the foreground activity is sometimes obstructed by other
-visual components that cause the activity to <em>pause</em>.  For example, when a semi-transparent
-activity opens (such as one in the style of a dialog), the previous activity pauses. As long as the
-activity is still partially visible but currently not the activity in focus, it remains paused.</p>
+<p>
+  During normal app use, the app sometimes loses focus, causing the activity to
+  <em>pause</em>. For example, when apps run in <a href=
+  "{@docRoot}guide/topics/ui/multi-window.html">multi-window mode</a>, only one
+  of the apps has the focus at any time; the system pauses all other apps. Similarly,
+  when a semi-transparent activity opens (such as one in the style of a
+  dialog), the previous activity pauses. As long as the activity is still
+  partially visible but currently not the activity in focus, it remains paused.
+</p>
 
 <p>However, once the activity is fully-obstructed and not visible, it <em>stops</em> (which is
 discussed in the next lesson).</p>
 
 <p>As your activity enters the paused state, the system calls the {@link
 android.app.Activity#onPause onPause()} method on your {@link android.app.Activity}, which allows
-you to stop ongoing actions that should not continue while paused (such as a video) or persist
+you to stop ongoing actions that should not continue while paused or persist
 any information that should be permanently saved in case the user continues to leave your app. If
 the user returns to your activity from the paused state, the system resumes it and calls the
 {@link android.app.Activity#onResume onResume()} method.</p>
 
-<p class="note"><strong>Note:</strong> When your activity receives a call to {@link
-android.app.Activity#onPause()}, it may be an indication that the activity will be paused for a
-moment and the user may return focus to your activity. However, it's usually the first indication
-that the user is leaving your activity.</p>
+<p class="note">
+  <strong>Note:</strong> When the system calls your activity's {@link
+  android.app.Activity#onPause()} method, the system may be signaling that the
+  activity will be paused for a moment and the user may return focus to your
+  activity, or that the app is running in multi-window mode. However, this
+  method call may also be the first indication that the user is leaving your
+  activity.
+</p>
 
 <img src="{@docRoot}images/training/basics/basic-lifecycle-paused.png" />
 <p class="img-caption"><strong>Figure 1.</strong> When a semi-transparent activity obscures
@@ -67,7 +76,11 @@
 the {@link android.app.Activity#onPause()} callback to:</p>
 
 <ul>
-  <li>Stop animations or other ongoing actions that could consume CPU.</li>
+  <li>Check if the activity is visible; if it is not, stop animations or other
+    ongoing actions that could consume CPU. Remember, beginning with Android
+    7.0, a paused app might be running in <a
+    href="{@docRoot}guide/topics/ui/multi-window.html">multi-window mode</a>.
+    In this case, you would not want to stop animations or video playback.</li>
   <li>Commit unsaved changes, but only if users expect such changes to be permanently saved when
 they leave (such as a draft email).</li>
   <li>Release system resources, such as broadcast receivers, handles to sensors (like
diff --git a/docs/html/preview/features/data-saver.jd b/docs/html/training/basics/network-ops/data-saver.jd
similarity index 87%
rename from docs/html/preview/features/data-saver.jd
rename to docs/html/training/basics/network-ops/data-saver.jd
index abc47ea..75b7264 100644
--- a/docs/html/preview/features/data-saver.jd
+++ b/docs/html/training/basics/network-ops/data-saver.jd
@@ -1,42 +1,39 @@
-page.title=Data Saver
-metaDescription=User-enabled data usage optimization.
-page.keywords="android N", "data usage", "metered network"
-page.image=images/cards/card-nyc_2x.jpg
+page.title=Optimizing Network Data Usage
+parent.title=Performing Network Operations
+parent.link=index.html
+
+trainingnavtop=true
+next.title=Parsing XML Data
+next.link=xml.html
+
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>
-      In this document
-    </h2>
+<div id="tb-wrapper">
+<div id="tb">
 
-    <ol>
-      <li>
-        <a href="#status">Checking Data Saver Preferences</a>
-        <ol>
-          <li>
-            <a href="#request-whitelist">Requesting whitelist permissions</a>
-          </li>
-        </ol>
-      </li>
 
-      <li>
-        <a href="#monitor-changes">Monitoring Changes to Data Saver
-        Preferences</a>
-      </li>
 
-      <li>
-        <a href="#testing">Testing with Android Debug Bridge Commands</a>
-      </li>
-    </ol>
-  </div>
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#status">Check Data-Saver Preferences</a>
+  <ul>
+     <li><a href="#request-whitelist">Request whitelist permissions</a></li>
+  </ul>
+  </li>
+  <li><a href="#monitor-changes">Monitor Changes to Data Saver Preferences</a></li>
+  <li><a href="#testing">Test with Android Debug Bridge Commands</a></li>
+</ol>
+
+</div>
 </div>
 
 <p>
   Over the life of a smartphone, the cost of a cellular data plan can easily
-  exceed the cost of the device itself. In the N Developer Preview, users can
-  enable Data Saver on a device-wide basis in order to use less data, whether
-  roaming, near the end of the billing cycle, or on a small prepaid data pack.
+  exceed the cost of the device itself. From Android 7.0 (API level 24),
+  users users can enable Data Saver on a device-wide basis in order
+  optimize their device's data usage, and use less data. This ability
+  is especially useful when roaming, near the end of the billing cycle,
+  or for a small prepaid data pack.
 </p>
 
 <p>
@@ -253,4 +250,4 @@
     Sets wifi with the specified SSID as metered, allowing you to simulate a
     metered network on an unmetered network.
   </dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html/training/basics/network-ops/managing.jd b/docs/html/training/basics/network-ops/managing.jd
index 2609db5..a29e874 100644
--- a/docs/html/training/basics/network-ops/managing.jd
+++ b/docs/html/training/basics/network-ops/managing.jd
@@ -6,8 +6,8 @@
 
 previous.title=Connecting to the Network
 previous.link=connecting.html
-next.title=Parsing XML Data
-next.link=xml.html
+next.title=Optimizing Network Data Usage
+next.link=data-saver.html
 
 @jd:body
 
diff --git a/docs/html/training/gestures/index.jd b/docs/html/training/gestures/index.jd
index fad1afa..1b8f4c1 100644
--- a/docs/html/training/gestures/index.jd
+++ b/docs/html/training/gestures/index.jd
@@ -48,7 +48,7 @@
 provide users with a consistent, intuitive experience, your app should follow
 the accepted Android conventions for touch gestures. The <a
 href="http://developer.android.com/design/patterns/gestures.html">Gestures
-design guide</a><a href="{@docRoot}design/patterns/notifications.html"></a>
+design guide</a><a href="https://material.google.com/patterns/notifications.html"></a>
 shows you how to use common gestures in Android apps. Also see the Design Guide
 for <a href="{@docRoot}design/style/touch-feedback.html">Touch Feedback</a>.  </p>
 
diff --git a/docs/html/training/implementing-navigation/nav-drawer.jd b/docs/html/training/implementing-navigation/nav-drawer.jd
index d359a47..abc79b6 100644
--- a/docs/html/training/implementing-navigation/nav-drawer.jd
+++ b/docs/html/training/implementing-navigation/nav-drawer.jd
@@ -173,7 +173,7 @@
 <pre>
 private class DrawerItemClickListener implements ListView.OnItemClickListener {
     &#64;Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+    public void onItemClick(AdapterView&lt;?> parent, View view, int position, long id) {
         selectItem(position);
     }
 }
diff --git a/docs/html/training/in-app-billing/preparing-iab-app.jd b/docs/html/training/in-app-billing/preparing-iab-app.jd
old mode 100755
new mode 100644
index 2c6e9a0..780f2f80
--- a/docs/html/training/in-app-billing/preparing-iab-app.jd
+++ b/docs/html/training/in-app-billing/preparing-iab-app.jd
@@ -31,23 +31,32 @@
 </div>
 
 <a class="notice-developers-video wide"
-href="https://www.youtube.com/watch?v=UvCl5Xx7Z5o">
+href="https://www.youtube.com/watch?v=UvCl5Xx7Z5o" class="external-link">
 <div>
     <h3>Video</h3>
     <p>Implementing Freemium</p>
   </div>
   </a>
 
-<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>
+<p>Before you can start using the In-app Billing service, you 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 need to
+ establish a connection between your application and  Google Play. You must 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>
-<p>To download the sample application:</p>
+<p>In this training class, you 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>
+<p>To download the sample application, follow these steps:</p>
 <ol>
 <li>Open Android Studio and then close any open projects until you are
 presented with the welcome screen.</li>
-<li>Choose <strong>Import an Android code sample</strong> from the
-  <strong>Quick Start</strong> list on the right side the window.</li>
+<li>From the <strong>Quick Start</strong> list on the right side of the window, choose
+ <strong>Import an Android code sample</strong>.</li>
 <li>Type {@code Trivial Drive} into the search bar and select the
   <strong>Trivial Drive</strong> sample.</li>
 <li>Follow the rest of the instructions in the <strong>Import Sample</strong>
@@ -56,66 +65,121 @@
 </ol>
 
 <p>Alternatively, you can use {@code git} to manually clone
- the repository from <a
+ the repository from the <a
  href="https://github.com/googlesamples/android-play-billing"
- class="external-link">https://github.com/googlesamples/android-play-billing</a></p>
+ class="external-link">Google Samples</a> GitHub site.</p>
 
 <h2 id="AddToDevConsole">Add Your Application to the Developer Console</h2>
-<p>The Google Play Developer Console is where you publish your In-app Billing application and  manage the various digital goods that are available for purchase from your application. When you create a new application entry in the Developer Console, it automatically generates a public license key for your application. You will need this key to establish a trusted connection from your application to the Google Play servers. You only need to generate this key once per application, and don’t need to repeat these steps when you update the APK file for your application.</p>
-<p>To add your application to the Developer Console:</p>
+<p>The Google Play Developer Console is where you publish your In-app Billing application
+ and  manage the various digital products that are available for purchase from your
+ application.
+ When you create a new application entry in the Developer Console, it automatically generates
+ a public license key for your application. You need this key to establish a trusted connection
+ from your application to the Google Play servers. You need to generate this key only once
+ per application, and you don’t need to repeat these steps when you update the APK file for
+ your application.</p>
+<p>To add your application to the Developer Console, follow these steps:</p>
 <ol>
-<li>Go to the <a href="http://play.google.com/apps/publish">Google Play Developer Console</a> site and log in. You will need to register for a new developer account, if you have not registered previously. To sell in-app items, you also need to have a <a href="http://www.google.com/wallet/merchants.html">Google payments</a> merchant account.</li>
-<li>Click on <strong>Try the new design</strong> to access the preview version of the Developer Console, if you are not already logged on to that version. </li>
-<li>In the <strong>All Applications</strong> tab, add a new application entry.
+<li>Go to the <a href="http://play.google.com/apps/publish" class="external-link">
+Google Play Developer Console</a>
+ site and log in. If you have not registered previously, you need to register for a new
+ developer account. To sell in-app products, you also need a
+ <a href="http://www.google.com/wallet/merchants.html" class="external-link">
+ Google payments</a> merchant account.</li>
+
+<li>In the <strong>All Applications</strong> tab, complete these steps to add a new
+ application entry:
 <ol type="a">
 <li>Click <strong>Add new application</strong>.</li>
 <li>Enter a name for your new In-app Billing application.</li>
 <li>Click <strong>Prepare Store Listing</strong>.</li>
 </ol>
 </li>
-<li>In the <strong>Services & APIs</strong> tab, find and make a note of the public license key that Google Play generated for your application. This is a Base64 string that you will need to include in your application code later.</li>
+<li>In the <strong>Services & APIs</strong> tab, find and make a note of the public license key
+ that Google Play generated for your application. This is a Base64 string that you need to
+ include in your application code later.</li>
 </ol>
 <p>Your application should now appear in the list of applications in Developer Console.</p>
 
 <h2 id="AddLibrary">Add the In-app Billing Library</h2>
-<p>To use the In-app Billing Version 3 features, you must add the {@code IInAppBillingService.aidl} file to your Android project. This Android Interface Definition Language (AIDL) file defines the interface to the Google Play service.</p>
-<p>You can find the {@code IInAppBillingService.aidl} file in the provided sample app. Depending on whether you are creating a new application or modifying an existing application, follow the instructions below to add the In-app Billing Library to your project.</p>
-<h3>New Project</h3>
-<p>To add the In-app Billing Version 3 library to your new In-app Billing project:</p>
+<p>To use the In-app Billing Version 3 features, you must add the
+ {@code IInAppBillingService.aidl}
+ file to your Android project. This Android Interface Definition Language
+ (AIDL) file defines the
+ interface to the Google Play service.</p>
+<p>You can find the {@code IInAppBillingService.aidl} file in the provided sample app.
+ To add the
+ In-app Billing library to your project, follow the instructions below for a new or
+ existing project.</p>
+<h3>Adding in-app billing to a new project</h3>
+<p>To add the In-app Billing Version 3 library to a new project, follow these steps:</p>
 <ol>
 <li>Copy the {@code TrivialDrive} sample files into your Android project.</li>
-<li>Modify the package name in the files you copied to use the package name for your project. In Android Studio, you can use this shortcut: right-click the package name, then  select <strong>Refactor</strong> > <strong>Rename</strong>.</li>
-<li>Open the {@code AndroidManifest.xml} file and update the package attribute value to use the package name for your project.</li>
-<li>Fix import statements as needed so that your project compiles correctly.  In Android Studio, you can use this shortcut: press <strong>Ctrl+Shift+O</strong> in each file showing errors.</li>
-<li>Modify the sample to create your own application. Remember to copy the Base64 public license key for your application from the Developer Console over to your {@code MainActivity.java}.</li>
+<li>Modify the package name in the files that you copied to use the package name
+ for your project.
+ In Android Studio, you can right-click the package name and then
+ select <strong>Refactor</strong> > <strong>Rename</strong>.</li>
+<li>Open the {@code AndroidManifest.xml} file and update the package attribute value to
+ use the package name for your project.</li>
+<li>Fix import statements as needed so that your project compiles correctly.
+ In Android Studio, you can press <strong>Ctrl+Shift+O</strong>
+ in each file showing errors.</li>
+<li>Modify the sample to create your own application. Remember to copy the Base64
+ public license key for your application from the Developer Console to
+ your {@code MainActivity.java}.</li>
 </ol>
 
-<h3>Existing Project</h3>
-<p>To add the In-app Billing Version 3 library to your existing In-app Billing project:</p>
+<h3>Adding in-app billing to an existing project</h3>
+<p>To add the In-app Billing Version 3 library to an existing project, follow these steps:</p>
 <ol>
 <li>Copy the {@code IInAppBillingService.aidl} file to your Android project.
   <ul>
-  <li>In Android Studio: Create a directory named {@code aidl} under {@code src/main}, add a new
-  package {@code com.android.vending.billing} in this directory, and import the
+  <li>In Android Studio: Create a directory named {@code aidl} under {@code src/main},
+  add a new
+  package {@code com.android.vending.billing} in this directory, and then import the
   {@code IInAppBillingService.aidl} file into this package.</li>
-  <li>In other dev environments: Create the following directory {@code /src/com/android/vending/billing} and copy the {@code IInAppBillingService.aidl} file into this directory.</li>
+  <li>In other dev environments: Create the following directory
+  {@code /src/com/android/vending/billing} and copy the {@code IInAppBillingService.aidl}
+  file into this directory.</li>
   </ul>
 </li>
-<li>Build your application. You should see a generated file named {@code IInAppBillingService.java} in the {@code /gen} directory of your project.</li>
-<li>Add the helper classes from the {@code /util} directory of the {@code TrivialDrive} sample to your project.  Remember to change the package name declarations in those files accordingly so that your project compiles correctly.</li>
+<li>Build your application. You should see a generated file named
+ {@code IInAppBillingService.java}
+ in the {@code /gen} directory of your project.</li>
+<li>Add the helper classes from the {@code /util} directory of the {@code TrivialDrive}
+ sample to
+ your project.  Remember to change the package name declarations in those files
+ accordingly so
+ that your project compiles correctly.</li>
 </ol>
 <p>Your project should now contain the In-app Billing Version 3 library.</p>
 
 <h2 id="SetPermission">Set the Billing Permission</h2>
-<p>Your app needs to have permission to communicate request and response messages to the Google Play’s billing service. To give your app the necessary permission, add this line in your {@code AndroidManifest.xml} manifest file:</p>
+<p>Your app needs to have permission to communicate request and response messages to
+ the Google Play billing service. To give your app the necessary permission, add the following
+ line in your {@code AndroidManifest.xml} manifest file:</p>
 <pre>
 &lt;uses-permission android:name="com.android.vending.BILLING" /&gt;
 </pre>
 
 <h2 id="Connect">Initiate a Connection with Google Play</h2>
-<p>You must bind your Activity to Google Play’s In-app Billing service to send In-app Billing requests to Google Play from your application. The convenience classes provided in the sample handles the binding to the In-app Billing service, so you don’t have to manage the network connection directly.</p>
-<p>To set up synchronous communication with Google Play, create an {@code IabHelper} instance in your activity's {@code onCreate} method. In the constructor, pass in the {@code Context} for the activity, along with a string containing the public license key that was generated earlier by the Google Play Developer Console. </p>
-<p class="note"><strong>Security Recommendation:</strong> It is highly recommended that you do not hard-code the exact public license key string value as provided by Google Play. Instead, you can construct the whole public license key string at runtime from substrings, or retrieve it from an encrypted store, before passing it to the constructor. This approach makes it more difficult for malicious third-parties to modify the public license key string in your APK file.</p>
+<p>To send In-app
+ Billing requests to Google Play from your application, you must bind your Activity
+ to the Google Play In-app Billing service. The sample includes convenience classes
+ that handle the binding to the In-app Billing service, so you don’t have to
+ manage the network connection directly.</p>
+<p>To set up synchronous communication with Google Play, create an {@code IabHelper}
+ instance in your activity's {@code onCreate} method, as shown in the following example.
+ In the constructor, pass in the {@code Context} for the activity along with a string
+ containing the public license key that was generated earlier by the Google Play
+ Developer Console.
+</p>
+<p class="caution"><strong>Security Recommendation:</strong> Google highly recommends that
+ you do not hard-code the exact public license key string value as provided by Google Play.
+ Instead, construct the whole public license key string at runtime from substrings
+ or retrieve it from an encrypted store before passing it to the constructor.
+ This approach makes it more difficult for malicious third parties to modify the public
+ license key string in your APK file.</p>
 
 <pre>
 IabHelper mHelper;
@@ -130,13 +194,20 @@
 }
 </pre>
 
-<p>Next, perform the service binding by calling the {@code startSetup} method on the {@code IabHelper} instance that you created.  Pass the method an {@code OnIabSetupFinishedListener} instance, which is called once the {@code IabHelper} completes the asynchronous setup operation. As part of the setup process, the {@code IabHelper} also checks if the In-app Billing Version 3 API is supported by Google Play. If the API version is not supported, or if an error occured while establishing the service binding, the listener is notified and passed an {@code IabResult} object with the error message.</p>
+<p>Next, perform the service binding by calling the {@code startSetup} method on the
+ {@code IabHelper} instance that you created, as shown in the following example.
+ Pass the method an {@code OnIabSetupFinishedListener} instance, which is called once
+ the {@code IabHelper} completes the asynchronous setup operation. As part of the
+ setup process, the {@code IabHelper} also checks if the In-app Billing Version 3 API
+ is supported by Google Play. If the API version is not supported, or if an error occurs
+ while establishing the service binding, the listener is notified and passed an
+ {@code IabResult} object with the error message.</p>
 
 <pre>
 mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {
       if (!result.isSuccess()) {
-         // Oh noes, there was a problem.
+         // Oh no, there was a problem.
          Log.d(TAG, "Problem setting up In-app Billing: " + result);
       }
          // Hooray, IAB is fully set up!
@@ -144,9 +215,18 @@
 });
 </pre>
 
-<p>If the setup completed successfully, you can now use the {@code mHelper} reference to communicate with the Google Play service. When your application is launched, it is a good practice to query Google Play to find out what in-app items are owned by a user. This is covered further in the <a href="{@docRoot}training/in-app-billing/purchase-iab-products.html#QueryPurchases">Query Purchased Items</a> section.</p>
+<p>If the setup completed successfully, you can now use the {@code mHelper} reference
+ to communicate with the Google Play service. When your application is launched, it is
+ a good practice to query Google Play to find out what in-app items are owned by a user.
+ This is covered further in the
+ <a href="{@docRoot}training/in-app-billing/purchase-iab-products.html#QueryPurchases">
+ Query Purchased Items</a> section.</p>
 
-<p class="note"><strong>Important:</strong> Remember to unbind from the In-app Billing service when you are done with your activity. If you don’t unbind, the open service connection could cause your device’s performance to degrade. To unbind and free your system resources, call the {@code IabHelper}'s {@code dispose} method when your {@code Activity} is destroyed.</p>
+<p class="caution"><strong>Important:</strong> Remember to unbind from the In-app Billing service
+ when you are done with your activity. If you don’t unbind, the open service connection could
+ degrade device performance. To unbind and free your system resources, call the
+ {@code IabHelper}'s {@code dispose} method when your {@code Activity} is destroyed,
+ as shown in the following example.</p>
 
 <pre>
 &#64;Override
@@ -156,8 +236,3 @@
    mHelper = null;
 }
 </pre>
-
-
-
-
-
diff --git a/docs/html/training/monitoring-device-state/doze-standby.jd b/docs/html/training/monitoring-device-state/doze-standby.jd
index 9250288..7caef402 100644
--- a/docs/html/training/monitoring-device-state/doze-standby.jd
+++ b/docs/html/training/monitoring-device-state/doze-standby.jd
@@ -306,25 +306,22 @@
 </p>
 
 <p>
-  An app that is whitelisted can use the network and hold
-
-  <a href="{@docRoot}reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK">
-  partial wake locks</a> during Doze and
-  App Standby. However, <strong>other restrictions still apply</strong> to the
-  whitelisted app, just as they do to other apps. For example, the whitelisted
-  app’s jobs and syncs are deferred, and its regular {@link android.app.AlarmManager} alarms do not
-  fire. An app can check whether it is currently on the exemption whitelist by
-  calling {@link
+  An app that is whitelisted can use the network and hold <a href=
+  "{@docRoot}reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK">partial
+  wake locks</a> during Doze and App Standby. However, <strong>other
+  restrictions still apply</strong> to the whitelisted app, just as they do to
+  other apps. For example, the whitelisted app’s jobs and syncs are deferred
+  (on API level 23 and below), and its regular {@link android.app.AlarmManager}
+  alarms do not fire. An app can check whether it is currently on the exemption
+  whitelist by calling {@link
   android.os.PowerManager#isIgnoringBatteryOptimizations(java.lang.String)
   isIgnoringBatteryOptimizations()}.
-  </li>
 </p>
 
 <p>
   Users can manually configure the whitelist in <strong>Settings &gt; Battery
   &gt; Battery Optimization.</strong> Alternatively, the system provides
   ways for apps to ask users to whitelist them.
-
 </p>
 
 <ul>
diff --git a/docs/html/training/notify-user/build-notification.jd b/docs/html/training/notify-user/build-notification.jd
index dcc8685..7df2787 100644
--- a/docs/html/training/notify-user/build-notification.jd
+++ b/docs/html/training/notify-user/build-notification.jd
@@ -31,7 +31,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
diff --git a/docs/html/training/notify-user/display-progress.jd b/docs/html/training/notify-user/display-progress.jd
index e2cf033..9018eb1 100644
--- a/docs/html/training/notify-user/display-progress.jd
+++ b/docs/html/training/notify-user/display-progress.jd
@@ -29,7 +29,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
diff --git a/docs/html/training/notify-user/expanded.jd b/docs/html/training/notify-user/expanded.jd
index 23d85d4..60853ca 100644
--- a/docs/html/training/notify-user/expanded.jd
+++ b/docs/html/training/notify-user/expanded.jd
@@ -29,7 +29,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
diff --git a/docs/html/training/notify-user/index.jd b/docs/html/training/notify-user/index.jd
index 57efd65..4d930e0 100644
--- a/docs/html/training/notify-user/index.jd
+++ b/docs/html/training/notify-user/index.jd
@@ -27,7 +27,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
@@ -50,7 +50,7 @@
 </p>
 
 <p>
-    The <a href="{@docRoot}design/patterns/notifications.html">Notifications design guide</a> shows
+    The <a href="https://material.google.com/patterns/notifications.html">Notifications design guide</a> shows
     you how to design effective notifications and when to use them. This class shows you how to
     implement the most common notification designs.
 </p>
diff --git a/docs/html/training/notify-user/managing.jd b/docs/html/training/notify-user/managing.jd
index fc12cfb..c68d6f9 100644
--- a/docs/html/training/notify-user/managing.jd
+++ b/docs/html/training/notify-user/managing.jd
@@ -29,7 +29,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
diff --git a/docs/html/training/notify-user/navigation.jd b/docs/html/training/notify-user/navigation.jd
index cdb7f3d..d0ec1cd 100644
--- a/docs/html/training/notify-user/navigation.jd
+++ b/docs/html/training/notify-user/navigation.jd
@@ -29,7 +29,7 @@
         </a>
     </li>
     <li>
-        <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+        <a href="https://material.google.com/patterns/notifications.html">Notifications</a> Design Guide
     </li>
 </ul>
 
@@ -205,7 +205,7 @@
 notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
         Intent.FLAG_ACTIVITY_CLEAR_TASK);
 // Creates the PendingIntent
-PendingIntent notifyIntent =
+PendingIntent pendingIntent =
         PendingIntent.getActivity(
         this,
         0,
@@ -214,7 +214,7 @@
 );
 
 // Puts the PendingIntent into the notification builder
-builder.setContentIntent(notifyIntent);
+builder.setContentIntent(pendingIntent);
 // Notifications are issued by sending them to the
 // NotificationManager system service.
 NotificationManager mNotificationManager =
diff --git a/docs/html/training/safebrowsing/index.jd b/docs/html/training/safebrowsing/index.jd
new file mode 100644
index 0000000..c6c72bf
--- /dev/null
+++ b/docs/html/training/safebrowsing/index.jd
@@ -0,0 +1,315 @@
+page.title=Checking URLs with the Safe Browsing API
+
+@jd:body
+
+
+<div id="tb-wrapper">
+  <div id="tb">
+    <h2>
+      In this document
+    </h2>
+
+    <ol>
+      <li>
+        <a href="#tos">Terms of Service</a>
+      </li>
+
+      <li>
+        <a href="#api-key">Requesting and Registering an Android API Key</a>
+        <ol>
+          <li>
+            <a href="#manifest">Adding the Android API to your
+            AndroidManifest.xml</a>
+          </li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="#connect-google-play">Connect to Google Play Services</a>
+      </li>
+
+      <li>
+        <a href="#url-check">Requesting a URL Check</a>
+        <ol>
+          <li>
+            <a href="#threat-types">Specifying threat types of interest</a>
+          </li>
+
+          <li>
+            <a href="#url-check-request">Send the URL check request</a>
+          </li>
+
+          <li>
+            <a href="#url-check-response">Read the URL check response</a>
+          </li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="#warning-lang">Suggested Warning Language</a>
+      </li>
+    </ol>
+  </div>
+</div>
+
+<p>
+  SafetyNet provides services for determining whether a URL has been marked as
+  a known threat by Google.
+</p>
+
+<p>
+  The service provides an API your app can use to determine whether a
+  particular URL has been classified by Google as a known threat. Internally,
+  SafetyNet implements a client for the Safe Browsing Network Protocol v4
+  developed by Google. Both the client code and the v4 network protocol were
+  designed to preserve users' privacy, as well as keep battery and bandwidth
+  consumption to a minimum. This API allows you to take full advantage of
+  Google's Safe Browsing service on Android in the most resource-optimized way,
+  and without having to implement its network protocol.
+</p>
+
+<p>
+  This document shows you how to use SafetyNet for checking a URL for threat
+  types of interest.
+</p>
+
+<h2 id="tos">
+  Terms of Service
+</h2>
+
+<p>
+  By using the Safe Browsing API, you consent to be bound by the <a href=
+  "https://developers.google.com/safe-browsing/terms">Terms of Service</a>.
+  Please read and understand all applicable terms and policies before accessing
+  the Safe Browsing API.
+</p>
+
+<h2 id="api-key">
+  Requesting and Registering an Android API Key
+</h2>
+
+<p>
+  To create an API key, complete the following steps:
+</p>
+
+<ol>
+  <li>Go to the <a href="https://console.developers.google.com/project"
+    class="external-link">Google Developers Console</a>.
+  </li>
+
+  <li>On the upper toolbar, choose <strong>Select a project &gt;
+  <em>your-project-name</em></strong>.
+  </li>
+
+  <li>In the search box, enter <em>Safe Browsing APIs</em>; when the Safe
+  Browsing API name appears in the table, select it.
+  </li>
+
+  <li>After the page redisplays, select <strong>Enable</strong> then select
+  <strong>Go to Credentials</strong>.
+  </li>
+
+  <li>When the <em>Add credentials to your project</em> window appears, choose
+  your parameters then select <strong>What credentials do I need?</strong>.
+  </li>
+
+  <li>Enter a name for your API key then select <strong>Create API
+  key</strong>.
+  </li>
+
+  <li>
+    <p>
+      Your new API key appears; copy and paste this key for future use.
+    </p>
+
+    <p class="note">
+      <strong>Note:</strong> Your API key allows you to perform a URL check
+      10,000 times each day. The key, in this instance, should just be a
+      hexadecimal string, not part of a URL.
+    </p>
+  </li>
+
+  <li>Select <strong>Done</strong> to complete the process.
+  </li>
+</ol>
+
+<p>
+  If you need more help, check out the <a href=
+  "https://developers.google.com/console/help/new/">Google Developers Console
+  Help Center</a>.
+</p>
+
+<h3 id="manifest">
+  Adding the Android API key to your AndroidManifest.xml
+</h3>
+
+<p>
+  Once your key has been whitelisted, you need to add the key to the
+  <code>AndroidManifest.xml</code> file for your app:
+</p>
+
+<pre>
+&lt;application&gt;
+
+    ...
+
+   &lt;!-- SafetyNet API metadata --&gt;
+   &lt;meta-data android:name="com.google.android.safetynet.API_KEY"
+   android:value="<var>your-API-key</var>" /&gt;
+
+    ...
+
+&lt;/application&gt;
+</pre>
+<h2 id="connect-google-play">
+  Connect to Google Play Services
+</h2>
+
+<p>
+  The SafetyNet API is part of Google Play services. To connect to the API, you
+  need to create an instance of the Google Play services API client. For
+  details about using the client in your app, see <a href=
+  "https://developers.google.com/android/guides/api-client#Starting">Accessing
+  Google APIs</a>. Once you have established a connection to Google Play
+  services, you can use the Google API client classes to connect to the
+  SafetyNet API.
+</p>
+
+<p>
+  To connect to the API, in your activity's <code><a href=
+  "{@docRoot}reference/android/app/Activity.html#onCreate(android.os.Bundle)">onCreate()</a></code>
+  method, create an instance of Google API Client using <code><a href=
+  "https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.Builder">
+  GoogleApiClient.Builder</a></code>. Use the builder to add the SafetyNet API,
+  as shown in the following code example:
+</p>
+
+<pre>
+protected synchronized void buildGoogleApiClient() {
+    mGoogleApiClient = new GoogleApiClient.Builder(this)
+            .addApi(SafetyNet.API)
+            .addConnectionCallbacks(myMainActivity.this)
+            .build();
+}
+</pre>
+<p class="note">
+  <strong>Note:</strong> You can only call these methods after your app has
+  established a connection to Google Play services by receiving the <code>
+  <a href="https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks#public-methods">
+  onConnected()</a></code> callback. For details about listening for a completed
+  client connection, see <a href=
+  "https://developers.google.com/android/guides/api-client#Starting">Accessing
+  Google APIs</a>.
+</p>
+
+<h2 id="url-check">
+  Requesting a URL Check
+</h2>
+
+<p>
+  A URL check allows your app to determine if a URL has been marked as a threat
+  of interest. Some threat types may not be of interest to your particular
+  app, and the API allows you to choose which threat types are important for
+  your needs. You can specify multiple threat types of interest.
+</p>
+
+<h3 id="threat-types">
+  Specifying threat types of interest
+</h3>
+
+<p>
+  The constants in the {@code SafeBrowsingThreat} class contain the
+  currently-supported threat types:
+</p>
+
+<pre>
+package com.google.android.gms.safetynet;
+
+public class SafeBrowsingThreat {
+
+  /**
+   * This threat type identifies URLs of pages that are flagged as containing potentially
+   * harmful applications.
+   */
+  public static final int TYPE_POTENTIALLY_HARMFUL_APPLICATION = 4;
+
+  /**
+   * This threat type identifies URLs of pages that are flagged as containing social
+   * engineering threats.
+   */
+  public static final int TYPE_SOCIAL_ENGINEERING = 5;
+}
+</pre>
+<p>
+  When using the API, you must use constants that are not marked as deprecated.
+  You add threat type constants as arguments to the API. You may add as many
+  threat type constants as is required for your app.
+</p>
+
+<h3 id="url-check-request">
+  Send the URL check request
+</h3>
+
+<p>
+  The API is agnostic to the scheme used, so you can pass the URL with or
+  without a scheme. For example, either
+</p>
+
+<pre>
+String url = "https://www.google.com";
+</pre>
+<p>
+  or
+</p>
+
+<pre>
+String url = "www.google.com";
+</pre>
+<p>
+  is valid.
+</p>
+
+<pre>
+SafetyNet.SafetyNetApi.lookupUri(mGoogleApiClient, url,
+       SafeBrowsingThreat.TYPE_POTENTIALLY_HARMFUL_APPLICATION,
+       SafeBrowsingThreat.TYPE_SOCIAL_ENGINEERING)
+               .setResultCallback(
+                       new ResultCallback&lt;SafetyNetApi.SafeBrowsingResult&gt;() {
+
+    &#64;Override
+    public void onResult(SafetyNetApi.SafeBrowsingResult result) {
+        Status status = result.getStatus();
+        if ((status != null) &amp;&amp; status.isSuccess()) {
+            // Indicates communication with the service was successful.
+            // Identify any detected threats.
+            if (result.getDetectedThreats().isEmpty()) {
+
+            }
+        } else {
+            // An error occurred. Let the user proceed without warning.
+        }
+    }
+});
+</pre>
+<h3 id="url-check-response">
+  Read the URL check response
+</h3>
+
+<p>
+  The result is provided as a list of {@code SafeBrowsingThreat} objects by
+  calling the {@code SafetyNetApi.SafeBrowsingResult.getDetectedThreats()}
+  method of the returned {@code SafetyNetApi.SafeBrowsingResult} object. If the
+  list is empty, no threats were detected; otherwise, calling {@code
+  SafeBrowsingThreat.getThreatType()} on each element in the list enumerates
+  the threats that were detected.
+</p>
+
+<h2 id="warning-lang">
+  Suggested Warning Language
+</h2>
+
+<p>
+  Please see the Safe Browsing API Developer's Guide for <a href=
+  "https://developers.google.com/safe-browsing/v4/usage-limits#suggested--warning-language">
+  suggested warning language</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/local-unit-tests.jd b/docs/html/training/testing/unit-testing/local-unit-tests.jd
index 8b109ee..d19de4f 100644
--- a/docs/html/training/testing/unit-testing/local-unit-tests.jd
+++ b/docs/html/training/testing/unit-testing/local-unit-tests.jd
@@ -112,12 +112,16 @@
 returned result against the expected result.</p>
 
 <h3 id="mocking-dependencies">Mock Android dependencies</h3>
-<p>
-By default, the <a href="{@docRoot}tools/building/plugin-for-gradle.html">
-Android Plug-in for Gradle</a> executes your local unit tests against a modified
-version of the {@code android.jar} library, which does not contain any actual code. Instead, method
-calls to Android classes from your unit test throw an exception.
-</p>
+
+<p>By default, the <a href=
+"{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for
+Gradle</a> executes your local unit tests against a modified version of the
+{@code android.jar} library, which does not contain any actual code. Instead,
+method calls to Android classes from your unit test throw an exception. This is
+to make sure you test only your code and do not depend on any
+particular behavior of the Android platform (that you have not explicitly
+mocked).</p>
+
 <p>
 You can use a mocking framework to stub out external dependencies in your code, to easily test that
 your component interacts with a dependency in an expected way. By substituting Android dependencies
@@ -195,6 +199,26 @@
 class="external-link">sample code</a>.
 </p>
 
+<p>If the exceptions thrown by Android APIs in the
+<code>android.jar</code> are problematic for your tests, you can change the behavior so that methods
+instead return either null or zero by adding the following configuration in your project's
+top-level <code>build.gradle</code> file:</p>
+
+<pre>
+android {
+  ...
+  testOptions {
+    unitTests.returnDefaultValues = true
+  }
+}
+</pre>
+
+<p class="caution"><strong>Caution:</strong>
+Setting the <code>returnDefaultValues</code> property to <code>true</code>
+should be done with care. The null/zero return values can introduce
+regressions in your tests, which are hard to debug and might allow failing tests
+to pass. Only use it as a last resort.</p>
+
 
 <h2 id="run">Run Local Unit Tests</h2>
 
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index e2aa5f4..d0dccba 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -656,7 +656,7 @@
              description=
              "How to sync and back up app and user data to remote web services in the
               cloud and how to restore the data back to multiple devices."
-            >Syncing to the Cloud</a>
+            >Backing up App Data to the Cloud</a>
         </div>
         <ul>
           <li><a href="<?cs var:toroot ?>training/backup/autosyncapi.html">
diff --git a/docs/html/training/transitions/index.jd b/docs/html/training/transitions/index.jd
index 53faa01..b8f99c8 100644
--- a/docs/html/training/transitions/index.jd
+++ b/docs/html/training/transitions/index.jd
@@ -48,11 +48,9 @@
 animations.</p>
 
 <p class="note"><strong>Note:</strong> For Android versions earlier than 4.4.2 (API level 19)
-but greater than or equal to Android 4.0 (API level 14), use the <code>animateLayoutChanges</code>
-attribute to animate layouts. To learn more, see
-<a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property Animation</a> and
-<a href="{@docRoot}training/animation/layout.html">Animating Layout Changes</a>.</p>
-
+but greater than or equal to Android 4.0 (API level 14), use the Android Support
+Library's <a href="/reference/android/support/transitions/package-summary.html"
+><code>android.support.transition</code></a> package.</p>
 
 <h2>Lessons</h2>
 
diff --git a/docs/html/preview/features/picture-in-picture.jd b/docs/html/training/tv/playback/picture-in-picture.jd
similarity index 87%
rename from docs/html/preview/features/picture-in-picture.jd
rename to docs/html/training/tv/playback/picture-in-picture.jd
index 03a1768..e48ae48 100644
--- a/docs/html/preview/features/picture-in-picture.jd
+++ b/docs/html/training/tv/playback/picture-in-picture.jd
@@ -1,11 +1,14 @@
-page.title=Picture-in-picture
+page.title=Adding Picture-in-picture
 page.keywords=preview,sdk,PIP,Picture-in-picture
 page.tags=androidn
+helpoutsWidget=true
+
+trainingnavtop=true
 
 @jd:body
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
 <h2>In this document</h2>
 <ol>
@@ -31,12 +34,12 @@
 </div>
 </div>
 
-<p>In Android N, Android TV users can now watch a video
-in a pinned window in a corner of the screen when navigating within
-apps. Picture-in-picture (PIP) mode lets apps run a video
+<p>In Android 7.0, Android TV users can now watch a video
+in a pinned window in a corner of the screen when navigating within or
+between apps. Picture-in-picture (PIP) mode lets apps run a video
 activity in the pinned window while another activity continues in the
-background. The PIP window lets users multitask while using your app, which
-helps users be more productive.</p>
+background. The PIP window lets users multitask while using Android TV,
+which helps users be more productive.</p>
 
 <p>Your app can decide when to trigger PIP mode. Here are some examples of
 when to enter PIP mode:</p>
@@ -57,14 +60,14 @@
 PIP menu that lets them toggle the PIP window to full-screen, or close the PIP
 window, by holding down the <b>Home</b> button on the remote. If another
 video starts playing on the main screen, the PIP window is automatically
-closed. Users can also close the PIP window through Recents.</p>
+closed.</p>
 
-<img src="{@docRoot}preview/images/pip-active.png" />
+<img src="{@docRoot}images/android-7.0/pip-active.png" />
 <p class="img-caption"><strong>Figure 1.</strong> A Picture-in-picture
 video visible in a corner of the screen while the user browses content
 on the main screen.</p>
 
-<p>PIP leverages the multi-window APIs available in Android N to
+<p>PIP leverages the multi-window APIs available in Android 7.0 to
 provide the pinned video overlay window. To add PIP to your app, you need to
 register your activities that support PIP, switch your activity to PIP mode as
 needed, and make sure UI elements are hidden and video playback continues when
@@ -99,7 +102,8 @@
 <h2 id="pip_button">Switching Your Activity to Picture-in-picture</h2>
 
 When you need to switch your activity into PIP mode, call
-<code>Activity.enterPictureInPictureMode()</code>. The following example
+{@link android.app.Activity#enterPictureInPictureMode
+enterPictureInPictureMode()}. The following example
 switches to PIP mode when the user selects a dedicated PIP button on a media
 control bar:</p>
 
@@ -116,12 +120,13 @@
 <p>Adding a PIP button to your media control bar lets your user easily switch
 to PIP mode while controlling video playback.</p>
 
-<img src="{@docRoot}preview/images/pip-button.png" />
+<img src="{@docRoot}images/android-7.0/pip-button.png" />
 <p class="img-caption"><strong>Figure 1.</strong> A Picture-in-picture
 button on a media control bar.</p>
 
-<p>Android N includes a new
-<code>PlaybackControlsRow.PictureInPictureAction</code> class which defines
+<p>Android 7.0 includes a
+{@link android.support.v17.leanback.widget.PlaybackControlsRow.PictureInPictureAction
+PlaybackControlsRow.PictureInPictureAction} class which defines
 control bar PIP actions and uses the PIP icon.</p>
 
 <h2 id="handling_ui">Handling UI During Picture-in-picture</h2>
@@ -129,8 +134,10 @@
 <p>When your activity enters PIP mode, your activity should only show video
 playback. Remove UI elements before your activity enters PIP,
 and restore these elements when your activity becomes full-screen again.
-Override <code>Activity.onPictureInPictureModeChanged()</code> or
-<code>Fragment.onPictureInPictureModeChanged()</code> and enable or
+Override {@link android.app.Activity#onPictureInPictureModeChanged
+Activity.onPictureInPictureModeChanged()} or
+{@link android.app.Fragment#onPictureInPictureModeChanged
+Fragment.onPictureInPictureModeChanged()} and enable or
 disable your UI elements as needed, for example:</p>
 
 <pre>
@@ -154,7 +161,7 @@
 onPause()} method. Video playback should not be paused and should continue
 playing if the activity is paused due to PIP mode.</p>
 
-<p>In Android N, you should pause and resume video playback when the system
+<p>In Android 7.0, you should pause and resume video playback when the system
 calls your activity's {@link android.app.Activity#onStop onStop()} and
 {@link android.app.Activity#onStart onStart()}. By doing this, you can avoid
 having to check if your app is in PIP mode in
@@ -204,7 +211,7 @@
 </pre>
 
 <p>In your activity, override {@link android.app.Activity#onNewIntent
-Activity.onNewIntent()} and handle the new video, stopping any existing video
+onNewIntent()} and handle the new video, stopping any existing video
 playback if needed.</p>
 
 <h2 id="best">Best Practices</h2>
diff --git a/docs/html/training/tv/tif/content-recording.jd b/docs/html/training/tv/tif/content-recording.jd
new file mode 100644
index 0000000..ffdd14c
--- /dev/null
+++ b/docs/html/training/tv/tif/content-recording.jd
@@ -0,0 +1,171 @@
+page.title=Supporting Content Recording
+page.keywords=tv,recording,channel,tif
+page.tags=tv, tif
+helpoutsWidget=true
+
+trainingnavtop=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>In this document</h2>
+  <ol>
+    <li><a href="#supporting">Indicating Support for Recording</a></li>
+    <li><a href="#recording">Recording a Session</a></li>
+    <li><a href="#errors">Handling Recording Errors</a></li>
+    <li><a href="#sessions">Managing Recorded Sessions</a></li>
+    <li><a href="#best">Best Practices</a></li>
+  </ol>
+</div>
+</div>
+
+<p>TV input services let the user pause and resume channel playback via
+time-shifting APIs. Android 7.0 expands on time-shifting
+by letting the user save multiple recorded sessions.</p>
+
+<p>Users can schedule recordings in advance, or start a recording as they watch
+a program. Once the system has saved a recording, the user can browse, manage,
+and play back the recording using the system TV app.</p>
+
+<p>If you want to provide recording functionality for your TV input service,
+you must indicate to the system that your app supports recording, implement
+the ability to record programs, handle and communicate any errors that occur
+during recording, and manage your recorded sessions.</p>
+
+<p class="note"><strong>Note:</strong> The Live Channels app does not yet
+provide a way for users to create or access recordings. Until changes are
+made to the Live Channels app, it may be difficult to fully test the recording
+experience for your TV input service.</p>
+
+<h2 id="supporting">Indicating Support for Recording</h2>
+
+<p>To tell the system that your TV input service supports recording, set
+the <code>android:canRecord</code> attribute in your service metadata XML file
+to <code>true</code>:
+</p>
+
+<pre>
+&lt;tv-input xmlns:android="http://schemas.android.com/apk/res/android"
+  <b>android:canRecord="true"</b>
+  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" /&gt;
+</pre>
+
+<p>For more information on the service metadata file, see
+<a href="{@docRoot}training/tv/tif/tvinput.html#manifest">Declare Your TV Input
+Service in the Manifest</a>.
+</p>
+
+<p>Alternatively, you can indicate recording support in your code using
+these steps:</p>
+
+<ol>
+<li>In your TV input service {@link android.app.Service#onCreate onCreate()}
+method, create a new {@link android.media.tv.TvInputInfo} object using the
+{@link android.media.tv.TvInputInfo.Builder TvInputInfo.Builder} class.</li>
+<li>When creating the new {@link android.media.tv.TvInputInfo} object, call
+{@link android.media.tv.TvInputInfo.Builder#setCanRecord
+setCanRecord(true)} before calling
+{@link android.media.tv.TvInputInfo.Builder#build build()} to indicate your
+service supports recording.</li>
+<li>Register your {@link android.media.tv.TvInputInfo} object with the
+system by calling
+{@link android.media.tv.TvInputManager#updateTvInputInfo
+TvInputManager.updateTvInputInfo()}.</li>
+</ol>
+
+<h2 id="recording">Recording a Session</h2>
+
+<p>After your TV input service registers that it supports recording
+functionality, the system calls your
+{@link android.media.tv.TvInputService#onCreateRecordingSession
+TvInputService.onCreateRecordingSession()} method when it needs to access
+your app's recording implementation. Implement your own
+{@link android.media.tv.TvInputService.RecordingSession
+TvInputService.RecordingSession} subclass and return it
+when the {@link android.media.tv.TvInputService#onCreateRecordingSession
+onCreateRecordingSession()} callback fires. This subclass is responsible
+for switching to the correct channel data, recording the requested data,
+and communicating recording status and errors to the system.</p>
+
+<p>When the system calls
+{@link android.media.tv.TvInputService.RecordingSession#onTune
+RecordingSession.onTune()}, passing in a channel URI, tune to the channel
+that the URI specifies. Notify the system that your app has tuned to the
+desired channel by calling
+{@link android.media.tv.TvInputService.RecordingSession#notifyTuned
+notifyTuned()} or, if your app could not tune to the proper channel, call
+{@link android.media.tv.TvInputService.RecordingSession#notifyError
+notifyError()}.</p>
+
+<p>The system next invokes the
+{@link android.media.tv.TvInputService.RecordingSession#onStartRecording
+RecordingSession.onStartRecording()} callback. Your app must start recording
+immediately. When the system invokes this callback, it may provide a URI
+that contains information about the program that is about to be recorded.
+When the recording is done, you'll copy this data to the
+{@link android.media.tv.TvContract.RecordedPrograms RecordedPrograms}
+data table.</p>
+
+<p>Finally, the system calls
+{@link android.media.tv.TvInputService.RecordingSession#onStopRecording
+RecordingSession.onStopRecording()}. At this point, your app must stop
+recording immediately. You also need to create an entry in the
+{@link android.media.tv.TvContract.RecordedPrograms RecordedPrograms}
+table. This entry should include the recorded session data URI in the
+{@link android.media.tv.TvContract.RecordedPrograms#COLUMN_RECORDING_DATA_URI
+RecordedPrograms.COLUMN_RECORDING_DATA_URI} column, and any program
+information that the system provided in the initial call to
+{@link android.media.tv.TvInputService.RecordingSession#onStartRecording
+onStartRecording()}.</p>
+
+<p>For more details on how to access the
+{@link android.media.tv.TvContract.RecordedPrograms RecordedPrograms} table
+see <a href="#sessions">Managing Recorded Sessions</a>.</p>
+
+<h2 id="errors">Handling Recording Errors</h2>
+
+<p>If an error occurs during recording, resulting in unusable recorded data,
+notify the system by calling
+{@link android.media.tv.TvInputService.RecordingSession#notifyError
+notifyError()}. Similarly, you can call
+{@link android.media.tv.TvInputService.RecordingSession#notifyError
+notifyError()} after a recording session is created to let the system know
+that your app can no longer record sessions.</p>
+
+<p>If an error occurs during recording, but you'd like to provide a
+partial recording to users for playback, call
+{@link android.media.tv.TvInputService.RecordingSession#notifyRecordingStopped
+notifyRecordingStopped()} to enable the system to
+use the partial session.</p>
+
+<h2 id="sessions">Managing Recorded Sessions</h2>
+
+<p>The system maintains information for all recorded sessions from all
+recording-capable channel apps in the
+{@link android.media.tv.TvContract.RecordedPrograms RecordedPrograms}
+content provider table. This information is accessible via the
+{@link android.media.tv.TvContract.RecordedPrograms RecordedPrograms}
+content recording URIs. Use content provider APIs to
+read, add, and delete entries from this table.</p>
+
+<p>For more information on working with content provider data see
+<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
+Content Provider Basics</a>.</p>
+
+<h2 id="best">Best Practices</h2>
+
+<p>TV devices may have limited storage, so use your best judgment when
+allocating storage to save recorded sessions. Use
+{@link android.media.tv.TvRecordingClient.RecordingCallback#onError
+RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE)} when
+there isn't enough space to save a recorded session.</p>
+
+<p>When the user initiates recording, you should start recording data as soon
+as possible. To facilitate this, complete any up-front time-consuming tasks,
+like accessing and allocating storage space, when the system invokes the
+{@link android.media.tv.TvInputService#onCreateRecordingSession
+onCreateRecordingSession()} callback. Doing so lets you start
+recording immediately when the
+{@link android.media.tv.TvInputService.RecordingSession#onStartRecording
+onStartRecording()} callback fires.</p>
diff --git a/docs/html/wear/preview/api-overview.jd b/docs/html/wear/preview/api-overview.jd
index 4233624..0b3ac6b 100644
--- a/docs/html/wear/preview/api-overview.jd
+++ b/docs/html/wear/preview/api-overview.jd
@@ -45,19 +45,19 @@
 <p>
   The Android Wear Preview API is still in active development, but you can try
   it now as part of the Wear 2.0 Developer Preview. The sections below
-  highlight some of the new features for Wear developers.
+  highlight some of the new features for Android Wear developers.
 </p>
 
 
 <h2 id="ui">User Interface Improvements</h2>
 
-<p>The preview introduces powerful additions to the user interface, opening up
-exciting possibilities to developers.
-A complication is any feature in a watch face that displays more than hours and
-minutes. With the Complications API,
- watch faces can display extra information and separate apps can expose complication
-  data.
-The navigation and action drawers provide users with new ways to interact with apps.
+<p>
+  The preview introduces powerful additions to the user interface, opening up
+  exciting possibilities to developers. A complication
+  is any feature in a watch face that displays more than hours and
+  minutes. With the Complications API, watch faces can display extra information
+  and separate apps can expose complication data. The navigation and action
+  drawers provide users with new ways to interact with apps.
 </p>
 
 
@@ -69,8 +69,8 @@
   A <a href=
   "https://en.wikipedia.org/wiki/Complication_(horology)">complication</a> is a
   feature of a watch face that displays more than hours and minutes, such as a
-  battery indicator or a step counter. The Complications API helps watch face
-  developers create these features visual features and data connections they
+  battery indicator or a step counter. The Complications API thus helps watch face
+  developers create visual features and the data connections they
   require.
 </p>
 
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 1fdc1f5..49721cf 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -1667,10 +1667,10 @@
      * and therefore is harmless.
      */
     public void prepareToDraw() {
-        // TODO: Consider having this start an async upload?
-        // With inPurgeable no-op'd there's currently no use for this
-        // method, but it could have interesting future uses.
         checkRecycled("Can't prepareToDraw on a recycled bitmap!");
+        // Kick off an update/upload of the bitmap outside of the normal
+        // draw path.
+        nativePrepareToDraw(mNativePtr);
     }
 
     /**
@@ -1741,4 +1741,5 @@
     private static native void nativeSetHasMipMap(long nativeBitmap, boolean hasMipMap);
     private static native boolean nativeSameAs(long nativeBitmap0, long nativeBitmap1);
     private static native long nativeRefPixelRef(long nativeBitmap);
+    private static native void nativePrepareToDraw(long nativeBitmap);
 }
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index cb6c92e..40b877d 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -788,7 +788,7 @@
      * @return     true if the resulting is non-empty
      */
     public boolean clipPath(@NonNull Path path, @NonNull Region.Op op) {
-        return native_clipPath(mNativeCanvasWrapper, path.ni(), op.nativeInt);
+        return native_clipPath(mNativeCanvasWrapper, path.readOnlyNI(), op.nativeInt);
     }
 
     /**
@@ -907,7 +907,7 @@
      *                    does not intersect with the canvas' clip
      */
     public boolean quickReject(@NonNull Path path, @NonNull EdgeType type) {
-        return native_quickReject(mNativeCanvasWrapper, path.ni());
+        return native_quickReject(mNativeCanvasWrapper, path.readOnlyNI());
     }
 
     /**
@@ -1259,7 +1259,7 @@
         if (path.isSimplePath && path.rects != null) {
             native_drawRegion(mNativeCanvasWrapper, path.rects.mNativeRegion, paint.getNativeInstance());
         } else {
-            native_drawPath(mNativeCanvasWrapper, path.ni(), paint.getNativeInstance());
+            native_drawPath(mNativeCanvasWrapper, path.readOnlyNI(), paint.getNativeInstance());
         }
     }
 
@@ -1895,7 +1895,7 @@
             throw new ArrayIndexOutOfBoundsException();
         }
         native_drawTextOnPath(mNativeCanvasWrapper, text, index, count,
-                path.ni(), hOffset, vOffset,
+                path.readOnlyNI(), hOffset, vOffset,
                 paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
     }
 
@@ -1915,7 +1915,7 @@
     public void drawTextOnPath(@NonNull String text, @NonNull Path path, float hOffset,
             float vOffset, @NonNull Paint paint) {
         if (text.length() > 0) {
-            native_drawTextOnPath(mNativeCanvasWrapper, text, path.ni(), hOffset, vOffset,
+            native_drawTextOnPath(mNativeCanvasWrapper, text, path.readOnlyNI(), hOffset, vOffset,
                     paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
         }
     }
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 054e29f..cfbe672 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -1021,7 +1021,7 @@
      *                 drawn with a hairline (width == 0)
      */
     public boolean getFillPath(Path src, Path dst) {
-        return nGetFillPath(mNativePaint, src.ni(), dst.ni());
+        return nGetFillPath(mNativePaint, src.readOnlyNI(), dst.mutateNI());
     }
 
     /**
@@ -2394,7 +2394,7 @@
             throw new ArrayIndexOutOfBoundsException();
         }
         nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, index, count, x, y,
-                path.ni());
+                path.mutateNI());
     }
 
     /**
@@ -2416,7 +2416,7 @@
             throw new IndexOutOfBoundsException();
         }
         nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, start, end, x, y,
-                path.ni());
+                path.mutateNI());
     }
 
     /**
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java
index de391af..be31bbe 100644
--- a/graphics/java/android/graphics/Path.java
+++ b/graphics/java/android/graphics/Path.java
@@ -775,7 +775,12 @@
         }
     }
 
-    final long ni() {
+    final long readOnlyNI() {
+        return mNativePath;
+    }
+
+    final long mutateNI() {
+        isSimplePath = false;
         return mNativePath;
     }
 
diff --git a/graphics/java/android/graphics/PathDashPathEffect.java b/graphics/java/android/graphics/PathDashPathEffect.java
index 4f43f68..2b6a6ed 100644
--- a/graphics/java/android/graphics/PathDashPathEffect.java
+++ b/graphics/java/android/graphics/PathDashPathEffect.java
@@ -41,7 +41,7 @@
      */
     public PathDashPathEffect(Path shape, float advance, float phase,
                               Style style) {
-        native_instance = nativeCreate(shape.ni(), advance, phase,
+        native_instance = nativeCreate(shape.readOnlyNI(), advance, phase,
                                        style.native_style);
     }
     
diff --git a/graphics/java/android/graphics/PathMeasure.java b/graphics/java/android/graphics/PathMeasure.java
index 2848949..78d892e 100644
--- a/graphics/java/android/graphics/PathMeasure.java
+++ b/graphics/java/android/graphics/PathMeasure.java
@@ -50,7 +50,7 @@
     public PathMeasure(Path path, boolean forceClosed) {
         // The native implementation does not copy the path, prevent it from being GC'd
         mPath = path;
-        native_instance = native_create(path != null ? path.ni() : 0,
+        native_instance = native_create(path != null ? path.readOnlyNI() : 0,
                                         forceClosed);
     }
 
@@ -60,7 +60,7 @@
     public void setPath(Path path, boolean forceClosed) {
         mPath = path;
         native_setPath(native_instance,
-                       path != null ? path.ni() : 0,
+                       path != null ? path.readOnlyNI() : 0,
                        forceClosed);
     }
 
@@ -134,8 +134,7 @@
             return false;
         }
 
-        dst.isSimplePath = false;
-        return native_getSegment(native_instance, startD, stopD, dst.ni(), startWithMoveTo);
+        return native_getSegment(native_instance, startD, stopD, dst.mutateNI(), startWithMoveTo);
     }
 
     /**
diff --git a/graphics/java/android/graphics/Region.java b/graphics/java/android/graphics/Region.java
index de89ad0..dca6d9e 100644
--- a/graphics/java/android/graphics/Region.java
+++ b/graphics/java/android/graphics/Region.java
@@ -110,7 +110,7 @@
      * (with no antialiasing).
      */
     public boolean setPath(Path path, Region clip) {
-        return nativeSetPath(mNativeRegion, path.ni(), clip.mNativeRegion);
+        return nativeSetPath(mNativeRegion, path.readOnlyNI(), clip.mNativeRegion);
     }
 
     /**
@@ -155,7 +155,7 @@
      */
     public Path getBoundaryPath() {
         Path path = new Path();
-        nativeGetBoundaryPath(mNativeRegion, path.ni());
+        nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
         return path;
     }
 
@@ -164,7 +164,7 @@
      * path will also be empty.
      */
     public boolean getBoundaryPath(Path path) {
-        return nativeGetBoundaryPath(mNativeRegion, path.ni());
+        return nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
     }
         
     /**
diff --git a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
index 0bdc76f..c836204 100644
--- a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java
@@ -210,7 +210,7 @@
 
     /**
      * In order to avoid breaking old apps, we only throw exception on invalid VectorDrawable
-     * animations * for apps targeting N and later. For older apps, we ignore (i.e. quietly skip)
+     * animations for apps targeting N and later. For older apps, we ignore (i.e. quietly skip)
      * these animations.
      *
      * @return whether invalid animations for vector drawable should be ignored.
@@ -244,10 +244,7 @@
             // to UI thread animation for AVD.
             if (!mAnimatorSet.isRunning() &&
                     ((VectorDrawableAnimatorRT) mAnimatorSet).mPendingAnimationActions.size() > 0) {
-                VectorDrawableAnimatorRT oldAnim = (VectorDrawableAnimatorRT) mAnimatorSet;
-                mAnimatorSet = new VectorDrawableAnimatorUI(this);
-                mAnimatorSet.init(mAnimatorSetFromXml);
-                oldAnim.transferPendingActions(mAnimatorSet);
+                fallbackOntoUI();
             }
         }
         mAnimatorSet.onDraw(canvas);
@@ -490,10 +487,22 @@
                 throw new UnsupportedOperationException("Cannot force Animated Vector Drawable to" +
                         " run on UI thread when the animation has started on RenderThread.");
             }
+            fallbackOntoUI();
+        }
+    }
+
+    private void fallbackOntoUI() {
+        if (mAnimatorSet instanceof VectorDrawableAnimatorRT) {
+            VectorDrawableAnimatorRT oldAnim = (VectorDrawableAnimatorRT) mAnimatorSet;
             mAnimatorSet = new VectorDrawableAnimatorUI(this);
             if (mAnimatorSetFromXml != null) {
                 mAnimatorSet.init(mAnimatorSetFromXml);
             }
+            // Transfer the listener from RT animator to UI animator
+            if (oldAnim.mListener != null) {
+                mAnimatorSet.setListener(oldAnim.mListener);
+            }
+            oldAnim.transferPendingActions(mAnimatorSet);
         }
     }
 
@@ -1358,7 +1367,7 @@
 
             mStartDelays.add(startDelay);
             nAddAnimator(mSetPtr, propertyPtr, nativeInterpolator, startDelay, duration,
-                    repeatCount);
+                    repeatCount, animator.getRepeatMode());
         }
 
         /**
@@ -1625,7 +1634,8 @@
     private static native long nCreateAnimatorSet();
     private static native void nSetVectorDrawableTarget(long animatorPtr, long vectorDrawablePtr);
     private static native void nAddAnimator(long setPtr, long propertyValuesHolder,
-             long nativeInterpolator, long startDelay, long duration, int repeatCount);
+            long nativeInterpolator, long startDelay, long duration, int repeatCount,
+            int repeatMode);
 
     private static native long nCreateGroupPropertyHolder(long nativePtr, int propertyId,
             float startValue, float endValue);
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index d5143da..cc7f5c7 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -851,8 +851,8 @@
 
         private Drawable prepareDrawable(Drawable child) {
             child.setLayoutDirection(mLayoutDirection);
-            child.setCallback(mOwner);
             child = child.mutate();
+            child.setCallback(mOwner);
             return child;
         }
 
diff --git a/keystore/java/android/security/keystore/KeyGenParameterSpec.java b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
index cbef540..ed40b77 100644
--- a/keystore/java/android/security/keystore/KeyGenParameterSpec.java
+++ b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
@@ -571,13 +571,12 @@
      *
      * <p>If this method returns {@code null}, and the spec is used to generate an asymmetric (RSA
      * or EC) key pair, the public key will have a self-signed certificate if it has purpose {@link
-     * KeyProperties#PURPOSE_SIGN} (see {@link #KeyGenParameterSpec(String, int)). If does not have
-     * purpose {@link KeyProperties#PURPOSE_SIGN}, it will have a fake certificate.
+     * KeyProperties#PURPOSE_SIGN}. If does not have purpose {@link KeyProperties#PURPOSE_SIGN}, it
+     * will have a fake certificate.
      *
      * <p>Symmetric keys, such as AES and HMAC keys, do not have public key certificates. If a
-     * {@link KeyGenParameterSpec} with {@link #hasAttestationCertificate()} returning
-     * non-{@code null} is used to generate a symmetric (AES or HMAC) key,
-     * {@link KeyGenerator#generateKey())} will throw
+     * KeyGenParameterSpec with getAttestationChallenge returning non-null is used to generate a
+     * symmetric (AES or HMAC) key, {@link javax.crypto.KeyGenerator#generateKey()} will throw
      * {@link java.security.InvalidAlgorithmParameterException}.
      *
      * @see Builder#setAttestationChallenge(byte[])
@@ -1050,11 +1049,6 @@
             return this;
         }
 
-        /*
-         * TODO(swillden): Update this documentation to describe the hardware and software root
-         * keys, including information about CRL/OCSP services for discovering revocations, and to
-         * link to documentation of the extension format and content.
-         */
         /**
          * Sets whether an attestation certificate will be generated for this key pair, and what
          * challenge value will be placed in the certificate.  The attestation certificate chain
@@ -1074,17 +1068,15 @@
          *
          * <p>If {@code attestationChallenge} is {@code null}, and this spec is used to generate an
          * asymmetric (RSA or EC) key pair, the public key certificate will be self-signed if the
-         * key has purpose {@link KeyProperties#PURPOSE_SIGN} (see
-         * {@link #KeyGenParameterSpec(String, int)). If the key does not have purpose
-         * {@link KeyProperties#PURPOSE_SIGN}, it is not possible to use the key to sign a
-         * certificate, so the public key certificate will contain a dummy signature.
+         * key has purpose {@link android.security.keystore.KeyProperties#PURPOSE_SIGN}. If the key
+         * does not have purpose {@link android.security.keystore.KeyProperties#PURPOSE_SIGN}, it is
+         * not possible to use the key to sign a certificate, so the public key certificate will
+         * contain a dummy signature.
          *
          * <p>Symmetric keys, such as AES and HMAC keys, do not have public key certificates. If a
-         * {@code getAttestationChallenge} returns non-{@code null} and the spec is used to
-         * generate a symmetric (AES or HMAC) key, {@link KeyGenerator#generateKey()} will throw
+         * {@link #getAttestationChallenge()} returns non-null and the spec is used to generate a
+         * symmetric (AES or HMAC) key, {@link javax.crypto.KeyGenerator#generateKey()} will throw
          * {@link java.security.InvalidAlgorithmParameterException}.
-         *
-         * @see Builder#setAttestationChallenge(String attestationChallenge)
          */
         @NonNull
         public Builder setAttestationChallenge(byte[] attestationChallenge) {
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index c9d4af6..366ef71 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -113,6 +113,10 @@
     -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
     -Wall -Wno-unused-parameter -Wunreachable-code -Werror
 
+ifeq ($(TARGET_USES_HWC2),true)
+    hwui_cflags += -DUSE_HWC2
+endif
+
 # GCC false-positives on this warning, and since we -Werror that's
 # a problem
 hwui_cflags += -Wno-free-nonheap-object
diff --git a/libs/hwui/AnimationContext.h b/libs/hwui/AnimationContext.h
index 801fd87..11d305c 100644
--- a/libs/hwui/AnimationContext.h
+++ b/libs/hwui/AnimationContext.h
@@ -100,7 +100,7 @@
 
     ANDROID_API virtual void destroy();
 
-    ANDROID_API virtual void detachAnimators() {}
+    ANDROID_API virtual void pauseAnimators() {}
 
 private:
     friend class AnimationHandle;
diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp
index dc18018..74aa303 100644
--- a/libs/hwui/Animator.cpp
+++ b/libs/hwui/Animator.cpp
@@ -123,22 +123,27 @@
         mPlayTime = (mPlayState == PlayState::Running || mPlayState == PlayState::Reversing) ?
                         mPlayTime : 0;
         mPlayState = PlayState::Running;
+        mPendingActionUponFinish = Action::None;
         break;
     case Request::Reverse:
         mPlayTime = (mPlayState == PlayState::Running || mPlayState == PlayState::Reversing) ?
                         mPlayTime : mDuration;
         mPlayState = PlayState::Reversing;
+        mPendingActionUponFinish = Action::None;
         break;
     case Request::Reset:
         mPlayTime = 0;
         mPlayState = PlayState::Finished;
+        mPendingActionUponFinish = Action::Reset;
         break;
     case Request::Cancel:
         mPlayState = PlayState::Finished;
+        mPendingActionUponFinish = Action::None;
         break;
     case Request::End:
         mPlayTime = mPlayState == PlayState::Reversing ? 0 : mDuration;
         mPlayState = PlayState::Finished;
+        mPendingActionUponFinish = Action::End;
         break;
     default:
         LOG_ALWAYS_FATAL("Invalid staging request: %d", static_cast<int>(request));
@@ -176,8 +181,6 @@
         mStagingRequests.clear();
 
         if (mStagingPlayState == PlayState::Finished) {
-            // Set the staging play time and end the animation
-            updatePlayTime(mPlayTime);
             callOnFinishedListener(context);
         } else if (mStagingPlayState == PlayState::Running
                 || mStagingPlayState == PlayState::Reversing) {
@@ -236,6 +239,15 @@
         return false;
     }
     if (mPlayState == PlayState::Finished) {
+        if (mPendingActionUponFinish == Action::Reset) {
+            // Skip to start.
+            updatePlayTime(0);
+        } else if (mPendingActionUponFinish == Action::End) {
+            // Skip to end.
+            updatePlayTime(mDuration);
+        }
+        // Reset pending action.
+        mPendingActionUponFinish = Action ::None;
         return true;
     }
 
diff --git a/libs/hwui/Animator.h b/libs/hwui/Animator.h
index 9476750..72bac6c 100644
--- a/libs/hwui/Animator.h
+++ b/libs/hwui/Animator.h
@@ -44,6 +44,12 @@
     ANDROID_API virtual ~AnimationListener() {}
 };
 
+enum class RepeatMode {
+    // These are the same values as the RESTART and REVERSE in ValueAnimator.java.
+    Restart = 1,
+    Reverse = 2
+};
+
 class BaseRenderNodeAnimator : public VirtualLightRefBase {
     PREVENT_COPY_AND_ASSIGN(BaseRenderNodeAnimator);
 public:
@@ -159,6 +165,17 @@
         Cancel,
         End
     };
+
+    // Defines different actions upon finish.
+    enum class Action {
+        // For animations that got canceled or finished normally. no more action needs to be done.
+        None,
+        // For animations that get reset, the reset will happen in the next animation pulse.
+        Reset,
+        // For animations being ended, in the next animation pulse the animation will skip to end.
+        End
+    };
+
     inline void checkMutable();
     virtual void transitionToRunning(AnimationContext& context);
     void doSetStartValue(float value);
@@ -166,7 +183,7 @@
     void resolveStagingRequest(Request request);
 
     std::vector<Request> mStagingRequests;
-
+    Action mPendingActionUponFinish = Action::None;
 };
 
 class RenderPropertyAnimator : public BaseRenderNodeAnimator {
diff --git a/libs/hwui/FrameInfo.cpp b/libs/hwui/FrameInfo.cpp
index 41e2233..826f0bb 100644
--- a/libs/hwui/FrameInfo.cpp
+++ b/libs/hwui/FrameInfo.cpp
@@ -35,8 +35,17 @@
     "IssueDrawCommandsStart",
     "SwapBuffers",
     "FrameCompleted",
+    "DequeueBufferDuration",
+    "QueueBufferDuration",
 };
 
+static_assert((sizeof(FrameInfoNames)/sizeof(FrameInfoNames[0]))
+        == static_cast<int>(FrameInfoIndex::NumIndexes),
+        "size mismatch: FrameInfoNames doesn't match the enum!");
+
+static_assert(static_cast<int>(FrameInfoIndex::NumIndexes) == 16,
+        "Must update value in FrameMetrics.java#FRAME_STATS_COUNT (and here)");
+
 void FrameInfo::importUiThreadInfo(int64_t* info) {
     memcpy(mFrameInfo, info, UI_THREAD_FRAME_INFO_SIZE * sizeof(int64_t));
 }
diff --git a/libs/hwui/FrameInfo.h b/libs/hwui/FrameInfo.h
index 0baca39..45b57de 100644
--- a/libs/hwui/FrameInfo.h
+++ b/libs/hwui/FrameInfo.h
@@ -48,7 +48,11 @@
     SwapBuffers,
     FrameCompleted,
 
+    DequeueBufferDuration,
+    QueueBufferDuration,
+
     // Must be the last value!
+    // Also must be kept in sync with FrameMetrics.java#FRAME_STATS_COUNT
     NumIndexes
 };
 
diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp
index ebe9c42..ed6b211 100644
--- a/libs/hwui/JankTracker.cpp
+++ b/libs/hwui/JankTracker.cpp
@@ -16,6 +16,7 @@
 #include "JankTracker.h"
 
 #include "Properties.h"
+#include "utils/TimeUtils.h"
 
 #include <algorithm>
 #include <cutils/ashmem.h>
@@ -119,11 +120,27 @@
     return index;
 }
 
-JankTracker::JankTracker(nsecs_t frameIntervalNanos) {
+JankTracker::JankTracker(const DisplayInfo& displayInfo) {
     // By default this will use malloc memory. It may be moved later to ashmem
     // if there is shared space for it and a request comes in to do that.
     mData = new ProfileData;
     reset();
+    nsecs_t frameIntervalNanos = static_cast<nsecs_t>(1_s / displayInfo.fps);
+#if USE_HWC2
+    nsecs_t sfOffset = frameIntervalNanos - (displayInfo.presentationDeadline - 1_ms);
+    nsecs_t offsetDelta = sfOffset - displayInfo.appVsyncOffset;
+    // There are two different offset cases. If the offsetDelta is positive
+    // and small, then the intention is to give apps extra time by leveraging
+    // pipelining between the UI & RT threads. If the offsetDelta is large or
+    // negative, the intention is to subtract time from the total duration
+    // in which case we can't afford to wait for dequeueBuffer blockage.
+    if (offsetDelta <= 4_ms && offsetDelta >= 0) {
+        // SF will begin composition at VSYNC-app + offsetDelta. If we are triple
+        // buffered, this is the expected time at which dequeueBuffer will
+        // return due to the staggering of VSYNC-app & VSYNC-sf.
+        mDequeueTimeForgiveness = offsetDelta + 4_ms;
+    }
+#endif
     setFrameInterval(frameIntervalNanos);
 }
 
@@ -213,6 +230,19 @@
     mData->totalFrameCount++;
     // Fast-path for jank-free frames
     int64_t totalDuration = frame.duration(sFrameStart, FrameInfoIndex::FrameCompleted);
+    if (mDequeueTimeForgiveness
+            && frame[FrameInfoIndex::DequeueBufferDuration] > 500_us) {
+        nsecs_t expectedDequeueDuration =
+                mDequeueTimeForgiveness + frame[FrameInfoIndex::Vsync]
+                - frame[FrameInfoIndex::IssueDrawCommandsStart];
+        if (expectedDequeueDuration > 0) {
+            // Forgive only up to the expected amount, but not more than
+            // the actual time spent blocked.
+            nsecs_t forgiveAmount = std::min(expectedDequeueDuration,
+                    frame[FrameInfoIndex::DequeueBufferDuration]);
+            totalDuration -= forgiveAmount;
+        }
+    }
     uint32_t framebucket = frameCountIndexForFrameTime(totalDuration);
     // Keep the fast path as fast as possible.
     if (CC_LIKELY(totalDuration < mFrameInterval)) {
diff --git a/libs/hwui/JankTracker.h b/libs/hwui/JankTracker.h
index 84b8c3f..126025c 100644
--- a/libs/hwui/JankTracker.h
+++ b/libs/hwui/JankTracker.h
@@ -21,6 +21,7 @@
 #include "utils/RingBuffer.h"
 
 #include <cutils/compiler.h>
+#include <ui/DisplayInfo.h>
 
 #include <array>
 #include <memory>
@@ -56,7 +57,7 @@
 // TODO: Replace DrawProfiler with this
 class JankTracker {
 public:
-    JankTracker(nsecs_t frameIntervalNanos);
+    JankTracker(const DisplayInfo& displayInfo);
     ~JankTracker();
 
     void addFrame(const FrameInfo& frame);
@@ -79,6 +80,14 @@
 
     std::array<int64_t, NUM_BUCKETS> mThresholds;
     int64_t mFrameInterval;
+    // The amount of time we will erase from the total duration to account
+    // for SF vsync offsets with HWC2 blocking dequeueBuffers.
+    // (Vsync + mDequeueBlockTolerance) is the point at which we expect
+    // SF to have released the buffer normally, so we will forgive up to that
+    // point in time by comparing to (IssueDrawCommandsStart + DequeueDuration)
+    // This is only used if we are in pipelined mode and are using HWC2,
+    // otherwise it's 0.
+    nsecs_t mDequeueTimeForgiveness = 0;
     ProfileData* mData;
     bool mIsMapped = false;
 };
diff --git a/libs/hwui/PropertyValuesAnimatorSet.cpp b/libs/hwui/PropertyValuesAnimatorSet.cpp
index 796c73b..38fb70a 100644
--- a/libs/hwui/PropertyValuesAnimatorSet.cpp
+++ b/libs/hwui/PropertyValuesAnimatorSet.cpp
@@ -23,11 +23,11 @@
 namespace uirenderer {
 
 void PropertyValuesAnimatorSet::addPropertyAnimator(PropertyValuesHolder* propertyValuesHolder,
-            Interpolator* interpolator, nsecs_t startDelay,
-            nsecs_t duration, int repeatCount) {
+        Interpolator* interpolator, nsecs_t startDelay, nsecs_t duration, int repeatCount,
+        RepeatMode repeatMode) {
 
     PropertyAnimator* animator = new PropertyAnimator(propertyValuesHolder,
-            interpolator, startDelay, duration, repeatCount);
+            interpolator, startDelay, duration, repeatCount, repeatMode);
     mAnimators.emplace_back(animator);
 
     // Check whether any child animator is infinite after adding it them to the set.
@@ -66,14 +66,9 @@
             // Note that this set may containing animators modifying the same property, so when we
             // reset the animators, we need to make sure the animators that end the first will
             // have the final say on what the property value should be.
-            (*it)->setFraction(0);
+            (*it)->setFraction(0, 0);
         }
-    } else if (playTime >= mDuration) {
-        // Skip all the animators to end
-        for (auto& anim : mAnimators) {
-            anim->setFraction(1);
-        }
-    } else {
+    } else  {
         for (auto& anim : mAnimators) {
             anim->setCurrentPlayTime(playTime);
         }
@@ -124,7 +119,8 @@
 }
 
 PropertyAnimator::PropertyAnimator(PropertyValuesHolder* holder, Interpolator* interpolator,
-        nsecs_t startDelay, nsecs_t duration, int repeatCount)
+        nsecs_t startDelay, nsecs_t duration, int repeatCount,
+        RepeatMode repeatMode)
         : mPropertyValuesHolder(holder), mInterpolator(interpolator), mStartDelay(startDelay),
           mDuration(duration) {
     if (repeatCount < 0) {
@@ -132,24 +128,44 @@
     } else {
         mRepeatCount = repeatCount;
     }
+    mRepeatMode = repeatMode;
     mTotalDuration = ((nsecs_t) mRepeatCount + 1) * mDuration + mStartDelay;
 }
 
 void PropertyAnimator::setCurrentPlayTime(nsecs_t playTime) {
-    if (playTime >= mStartDelay && playTime < mTotalDuration) {
-         nsecs_t currentIterationPlayTime = (playTime - mStartDelay) % mDuration;
-         float fraction = currentIterationPlayTime / (float) mDuration;
-         setFraction(fraction);
-    } else if (mLatestFraction < 1.0f && playTime >= mTotalDuration) {
-        // This makes sure we only set the fraction = 1 once. It is needed because there might
-        // be another animator modifying the same property after this animator finishes, we need
-        // to make sure we don't set conflicting values on the same property within one frame.
-        setFraction(1.0f);
+    if (playTime < mStartDelay) {
+        return;
     }
+
+    float currentIterationFraction;
+    long iteration;
+    if (playTime >= mTotalDuration) {
+        // Reached the end of the animation.
+        iteration = mRepeatCount;
+        currentIterationFraction = 1.0f;
+    } else {
+        // play time here is in range [mStartDelay, mTotalDuration)
+        iteration = (playTime - mStartDelay) / mDuration;
+        currentIterationFraction = ((playTime - mStartDelay) % mDuration) / (float) mDuration;
+    }
+    setFraction(currentIterationFraction, iteration);
 }
 
-void PropertyAnimator::setFraction(float fraction) {
-    mLatestFraction = fraction;
+void PropertyAnimator::setFraction(float fraction, long iteration) {
+    double totalFraction = fraction + iteration;
+    // This makes sure we only set the fraction = repeatCount + 1 once. It is needed because there
+    // might be another animator modifying the same property after this animator finishes, we need
+    // to make sure we don't set conflicting values on the same property within one frame.
+    if ((mLatestFraction == mRepeatCount + 1.0) && (totalFraction >= mRepeatCount + 1.0)) {
+        return;
+    }
+
+    mLatestFraction = totalFraction;
+    // Check the play direction (i.e. reverse or restart) every other iteration, and calculate the
+    // fraction based on the play direction.
+    if (iteration % 2 && mRepeatMode == RepeatMode::Reverse) {
+        fraction = 1.0f - fraction;
+    }
     float interpolatedFraction = mInterpolator->interpolate(fraction);
     mPropertyValuesHolder->setFraction(interpolatedFraction);
 }
diff --git a/libs/hwui/PropertyValuesAnimatorSet.h b/libs/hwui/PropertyValuesAnimatorSet.h
index f9274e1..e208b08 100644
--- a/libs/hwui/PropertyValuesAnimatorSet.h
+++ b/libs/hwui/PropertyValuesAnimatorSet.h
@@ -26,12 +26,13 @@
 class PropertyAnimator {
 public:
     PropertyAnimator(PropertyValuesHolder* holder, Interpolator* interpolator, nsecs_t startDelay,
-            nsecs_t duration, int repeatCount);
+            nsecs_t duration, int repeatCount, RepeatMode repeatMode);
     void setCurrentPlayTime(nsecs_t playTime);
     nsecs_t getTotalDuration() {
         return mTotalDuration;
     }
-    void setFraction(float fraction);
+    // fraction range: [0, 1], iteration range [0, repeatCount]
+    void setFraction(float fraction, long iteration);
 
 private:
     std::unique_ptr<PropertyValuesHolder> mPropertyValuesHolder;
@@ -40,7 +41,8 @@
     nsecs_t mDuration;
     uint32_t mRepeatCount;
     nsecs_t mTotalDuration;
-    float mLatestFraction = 0.0f;
+    RepeatMode mRepeatMode;
+    double mLatestFraction = 0;
 };
 
 // TODO: This class should really be named VectorDrawableAnimator
@@ -56,7 +58,7 @@
 
     void addPropertyAnimator(PropertyValuesHolder* propertyValuesHolder,
             Interpolator* interpolators, int64_t startDelays,
-            nsecs_t durations, int repeatCount);
+            nsecs_t durations, int repeatCount, RepeatMode repeatMode);
     virtual uint32_t dirtyMask();
     bool isInfinite() { return mIsInfinite; }
     void setVectorDrawable(VectorDrawableRoot* vd) { mVectorDrawable = vd; }
diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp
index cbefccb..0c552ba 100644
--- a/libs/hwui/RecordingCanvas.cpp
+++ b/libs/hwui/RecordingCanvas.cpp
@@ -149,50 +149,53 @@
 
     // Map visible bounds back to layer space, and intersect with parameter bounds
     Rect layerBounds = visibleBounds;
-    Matrix4 inverse;
-    inverse.loadInverse(*previous.transform);
-    inverse.mapRect(layerBounds);
-    layerBounds.doIntersect(unmappedBounds);
+    if (CC_LIKELY(!layerBounds.isEmpty())) {
+        // if non-empty, can safely map by the inverse transform
+        Matrix4 inverse;
+        inverse.loadInverse(*previous.transform);
+        inverse.mapRect(layerBounds);
+        layerBounds.doIntersect(unmappedBounds);
+    }
 
     int saveValue = mState.save((int) flags);
     Snapshot& snapshot = *mState.writableSnapshot();
 
     // layerBounds is in original bounds space, but clipped by current recording clip
-    if (layerBounds.isEmpty() || unmappedBounds.isEmpty()) {
-        // Don't bother recording layer, since it's been rejected
+    if (!layerBounds.isEmpty() && !unmappedBounds.isEmpty()) {
         if (CC_LIKELY(clippedLayer)) {
-            snapshot.resetClip(0, 0, 0, 0);
+            auto previousClip = getRecordedClip(); // capture before new snapshot clip has changed
+            if (addOp(alloc().create_trivial<BeginLayerOp>(
+                    unmappedBounds,
+                    *previous.transform, // transform to *draw* with
+                    previousClip, // clip to *draw* with
+                    refPaint(paint))) >= 0) {
+                snapshot.flags |= Snapshot::kFlagIsLayer | Snapshot::kFlagIsFboLayer;
+                snapshot.initializeViewport(unmappedBounds.getWidth(), unmappedBounds.getHeight());
+                snapshot.transform->loadTranslate(-unmappedBounds.left, -unmappedBounds.top, 0.0f);
+
+                Rect clip = layerBounds;
+                clip.translate(-unmappedBounds.left, -unmappedBounds.top);
+                snapshot.resetClip(clip.left, clip.top, clip.right, clip.bottom);
+                snapshot.roundRectClipState = nullptr;
+                return saveValue;
+            }
+        } else {
+            if (addOp(alloc().create_trivial<BeginUnclippedLayerOp>(
+                    unmappedBounds,
+                    *mState.currentSnapshot()->transform,
+                    getRecordedClip(),
+                    refPaint(paint))) >= 0) {
+                snapshot.flags |= Snapshot::kFlagIsLayer;
+                return saveValue;
+            }
         }
-        return saveValue;
     }
 
+    // Layer not needed, so skip recording it...
     if (CC_LIKELY(clippedLayer)) {
-        auto previousClip = getRecordedClip(); // note: done before new snapshot's clip has changed
-
-        snapshot.flags |= Snapshot::kFlagIsLayer | Snapshot::kFlagIsFboLayer;
-        snapshot.initializeViewport(unmappedBounds.getWidth(), unmappedBounds.getHeight());
-        snapshot.transform->loadTranslate(-unmappedBounds.left, -unmappedBounds.top, 0.0f);
-
-        Rect clip = layerBounds;
-        clip.translate(-unmappedBounds.left, -unmappedBounds.top);
-        snapshot.resetClip(clip.left, clip.top, clip.right, clip.bottom);
-        snapshot.roundRectClipState = nullptr;
-
-        addOp(alloc().create_trivial<BeginLayerOp>(
-                unmappedBounds,
-                *previous.transform, // transform to *draw* with
-                previousClip, // clip to *draw* with
-                refPaint(paint)));
-    } else {
-        snapshot.flags |= Snapshot::kFlagIsLayer;
-
-        addOp(alloc().create_trivial<BeginUnclippedLayerOp>(
-                unmappedBounds,
-                *mState.currentSnapshot()->transform,
-                getRecordedClip(),
-                refPaint(paint)));
+        // ... and set empty clip to reject inner content, if possible
+        snapshot.resetClip(0, 0, 0, 0);
     }
-
     return saveValue;
 }
 
@@ -268,7 +271,7 @@
 
 // Geometry
 void RecordingCanvas::drawPoints(const float* points, int floatCount, const SkPaint& paint) {
-    if (floatCount < 2) return;
+    if (CC_UNLIKELY(floatCount < 2 || PaintUtils::paintWillNotDraw(paint))) return;
     floatCount &= ~0x1; // round down to nearest two
 
     addOp(alloc().create_trivial<PointsOp>(
@@ -279,7 +282,7 @@
 }
 
 void RecordingCanvas::drawLines(const float* points, int floatCount, const SkPaint& paint) {
-    if (floatCount < 4) return;
+    if (CC_UNLIKELY(floatCount < 4 || PaintUtils::paintWillNotDraw(paint))) return;
     floatCount &= ~0x3; // round down to nearest four
 
     addOp(alloc().create_trivial<LinesOp>(
@@ -290,6 +293,8 @@
 }
 
 void RecordingCanvas::drawRect(float left, float top, float right, float bottom, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     addOp(alloc().create_trivial<RectOp>(
             Rect(left, top, right, bottom),
             *(mState.currentSnapshot()->transform),
@@ -331,6 +336,8 @@
 }
 
 void RecordingCanvas::drawRegion(const SkRegion& region, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     if (paint.getStyle() == SkPaint::kFill_Style
             && (!paint.isAntiAlias() || mState.currentTransform()->isSimple())) {
         int count = 0;
@@ -355,8 +362,11 @@
         }
     }
 }
+
 void RecordingCanvas::drawRoundRect(float left, float top, float right, float bottom,
             float rx, float ry, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     if (CC_LIKELY(MathUtils::isPositive(rx) || MathUtils::isPositive(ry))) {
         addOp(alloc().create_trivial<RoundRectOp>(
                 Rect(left, top, right, bottom),
@@ -391,7 +401,8 @@
 
 void RecordingCanvas::drawCircle(float x, float y, float radius, const SkPaint& paint) {
     // TODO: move to Canvas.h
-    if (radius <= 0) return;
+    if (CC_UNLIKELY(radius <= 0 || PaintUtils::paintWillNotDraw(paint))) return;
+
     drawOval(x - radius, y - radius, x + radius, y + radius, paint);
 }
 
@@ -411,6 +422,8 @@
 }
 
 void RecordingCanvas::drawOval(float left, float top, float right, float bottom, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     addOp(alloc().create_trivial<OvalOp>(
             Rect(left, top, right, bottom),
             *(mState.currentSnapshot()->transform),
@@ -420,6 +433,8 @@
 
 void RecordingCanvas::drawArc(float left, float top, float right, float bottom,
         float startAngle, float sweepAngle, bool useCenter, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     if (fabs(sweepAngle) >= 360.0f) {
         drawOval(left, top, right, bottom, paint);
     } else {
@@ -433,6 +448,8 @@
 }
 
 void RecordingCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
+    if (CC_UNLIKELY(PaintUtils::paintWillNotDraw(paint))) return;
+
     addOp(alloc().create_trivial<PathOp>(
             Rect(path.getBounds()),
             *(mState.currentSnapshot()->transform),
@@ -605,7 +622,7 @@
             functor));
 }
 
-size_t RecordingCanvas::addOp(RecordedOp* op) {
+int RecordingCanvas::addOp(RecordedOp* op) {
     // skip op with empty clip
     if (op->localClip && op->localClip->rect.isEmpty()) {
         // NOTE: this rejection happens after op construction/content ref-ing, so content ref'd
diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h
index 372be24..337e97b 100644
--- a/libs/hwui/RecordingCanvas.h
+++ b/libs/hwui/RecordingCanvas.h
@@ -208,7 +208,7 @@
     void drawSimpleRects(const float* rects, int vertexCount, const SkPaint* paint);
 
 
-    size_t addOp(RecordedOp* op);
+    int addOp(RecordedOp* op);
 // ----------------------------------------------------------------------------
 // lazy object copy
 // ----------------------------------------------------------------------------
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 6facf20..bdcad79 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -422,7 +422,6 @@
         pushStagingDisplayListChanges(info);
     }
     prepareSubTree(info, childFunctorsNeedLayer, mDisplayList);
-    pushLayerUpdate(info);
 
     if (mDisplayList) {
         for (auto& vectorDrawable : mDisplayList->getVectorDrawables()) {
@@ -433,6 +432,7 @@
             vectorDrawable->setPropertyChangeWillBeConsumed(true);
         }
     }
+    pushLayerUpdate(info);
 
     info.damageAccumulator->popTransform();
 }
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index ade8600..523924a 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -167,6 +167,10 @@
     return texture;
 }
 
+bool TextureCache::prefetch(const SkBitmap* bitmap) {
+    return getCachedTexture(bitmap, AtlasUsageType::Use);
+}
+
 Texture* TextureCache::get(const SkBitmap* bitmap, AtlasUsageType atlasUsageType) {
     Texture* texture = getCachedTexture(bitmap, atlasUsageType);
 
diff --git a/libs/hwui/TextureCache.h b/libs/hwui/TextureCache.h
index a4317ce..0a61b6b 100644
--- a/libs/hwui/TextureCache.h
+++ b/libs/hwui/TextureCache.h
@@ -78,6 +78,13 @@
     bool prefetchAndMarkInUse(void* ownerToken, const SkBitmap* bitmap);
 
     /**
+     * Attempts to precache the SkBitmap. Returns true if a Texture was successfully
+     * acquired for the bitmap, false otherwise. Does not mark the Texture
+     * as in use and won't update currently in-use Textures.
+     */
+    bool prefetch(const SkBitmap* bitmap);
+
+    /**
      * Returns the texture associated with the specified bitmap from either within the cache, or
      * the AssetAtlas. If the texture cannot be found in the cache, a new texture is generated.
      */
diff --git a/libs/hwui/VectorDrawable.h b/libs/hwui/VectorDrawable.h
index e67dfdd..a0c3d9d 100644
--- a/libs/hwui/VectorDrawable.h
+++ b/libs/hwui/VectorDrawable.h
@@ -678,6 +678,7 @@
     TreeProperties* mutateProperties() { return &mProperties; }
 
     // This should always be called from RT.
+    void markDirty() { mCache.dirty = true; }
     bool isDirty() const { return mCache.dirty; }
     bool getPropertyChangeWillBeConsumed() const { return mWillBeConsumed; }
     void setPropertyChangeWillBeConsumed(bool willBeConsumed) { mWillBeConsumed = willBeConsumed; }
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 4b9d7d5..dcaec42 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -67,7 +67,7 @@
         , mEglManager(thread.eglManager())
         , mOpaque(!translucent)
         , mAnimationContext(contextFactory->createAnimationContext(mRenderThread.timeLord()))
-        , mJankTracker(thread.timeLord().frameIntervalNanos())
+        , mJankTracker(thread.mainDisplayInfo())
         , mProfiler(mFrames)
         , mContentDrawBounds(0, 0, 0, 0) {
     mRenderNodes.emplace_back(rootRenderNode);
@@ -199,6 +199,8 @@
 }
 
 bool CanvasContext::isSwapChainStuffed() {
+    static const auto SLOW_THRESHOLD = 6_ms;
+
     if (mSwapHistory.size() != mSwapHistory.capacity()) {
         // We want at least 3 frames of history before attempting to
         // guess if the queue is stuffed
@@ -209,8 +211,8 @@
 
     // Was there a happy queue & dequeue time? If so, don't
     // consider it stuffed
-    if (swapA.dequeueDuration < 3_ms
-            && swapA.queueDuration < 3_ms) {
+    if (swapA.dequeueDuration < SLOW_THRESHOLD
+            && swapA.queueDuration < SLOW_THRESHOLD) {
         return false;
     }
 
@@ -225,8 +227,8 @@
 
         // Was there a happy queue & dequeue time? If so, don't
         // consider it stuffed
-        if (swapB.dequeueDuration < 3_ms
-                && swapB.queueDuration < 3_ms) {
+        if (swapB.dequeueDuration < SLOW_THRESHOLD
+                && swapB.queueDuration < SLOW_THRESHOLD) {
             return false;
         }
 
@@ -284,11 +286,6 @@
     if (CC_LIKELY(mSwapHistory.size())) {
         nsecs_t latestVsync = mRenderThread.timeLord().latestVsync();
         SwapHistory& lastSwap = mSwapHistory.back();
-        int durationUs;
-        mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
-        lastSwap.dequeueDuration = us2ns(durationUs);
-        mNativeSurface->query(NATIVE_WINDOW_LAST_QUEUE_DURATION, &durationUs);
-        lastSwap.queueDuration = us2ns(durationUs);
         nsecs_t vsyncDelta = std::abs(lastSwap.vsyncTime - latestVsync);
         // The slight fudge-factor is to deal with cases where
         // the vsync was estimated due to being slow handling the signal.
@@ -329,7 +326,7 @@
 
 void CanvasContext::stopDrawing() {
     mRenderThread.removeFrameCallback(this);
-    mAnimationContext->detachAnimators();
+    mAnimationContext->pauseAnimators();
 }
 
 void CanvasContext::notifyFramePending() {
@@ -565,8 +562,25 @@
         swap.damage = screenDirty;
         swap.swapCompletedTime = systemTime(CLOCK_MONOTONIC);
         swap.vsyncTime = mRenderThread.timeLord().latestVsync();
+        if (mNativeSurface.get()) {
+            int durationUs;
+            mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
+            swap.dequeueDuration = us2ns(durationUs);
+            mNativeSurface->query(NATIVE_WINDOW_LAST_QUEUE_DURATION, &durationUs);
+            swap.queueDuration = us2ns(durationUs);
+        } else {
+            swap.dequeueDuration = 0;
+            swap.queueDuration = 0;
+        }
+        mCurrentFrameInfo->set(FrameInfoIndex::DequeueBufferDuration)
+                = swap.dequeueDuration;
+        mCurrentFrameInfo->set(FrameInfoIndex::QueueBufferDuration)
+                = swap.queueDuration;
         mHaveNewSurface = false;
         mFrameNumber = -1;
+    } else {
+        mCurrentFrameInfo->set(FrameInfoIndex::DequeueBufferDuration) = 0;
+        mCurrentFrameInfo->set(FrameInfoIndex::QueueBufferDuration) = 0;
     }
 
     // TODO: Use a fence for real completion?
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 06a24b2..a734401 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -22,9 +22,11 @@
 #include "Readback.h"
 #include "Rect.h"
 #include "renderthread/CanvasContext.h"
+#include "renderthread/EglManager.h"
 #include "renderthread/RenderTask.h"
 #include "renderthread/RenderThread.h"
 #include "utils/Macros.h"
+#include "utils/TimeUtils.h"
 
 namespace android {
 namespace uirenderer {
@@ -44,6 +46,8 @@
     typedef struct { \
         a1; a2; a3; a4; a5; a6; a7; a8; \
     } ARGS(name); \
+    static_assert(std::is_trivially_destructible<ARGS(name)>::value, \
+            "Error, ARGS must be trivially destructible!"); \
     static void* Bridge_ ## name(ARGS(name)* args)
 
 #define SETUP_TASK(method) \
@@ -154,7 +158,7 @@
     SETUP_TASK(updateSurface);
     args->context = mContext;
     args->surface = surface.get();
-    postAndWait(task);
+    post(task);
 }
 
 CREATE_BRIDGE2(pauseSurface, CanvasContext* context, Surface* surface) {
@@ -636,6 +640,41 @@
             reinterpret_cast<intptr_t>( staticPostAndWait(task) ));
 }
 
+CREATE_BRIDGE2(prepareToDraw, RenderThread* thread, SkBitmap* bitmap) {
+    if (Caches::hasInstance() && args->thread->eglManager().hasEglContext()) {
+        ATRACE_NAME("Bitmap#prepareToDraw task");
+        Caches::getInstance().textureCache.prefetch(args->bitmap);
+    }
+    delete args->bitmap;
+    args->bitmap = nullptr;
+    return nullptr;
+}
+
+void RenderProxy::prepareToDraw(const SkBitmap& bitmap) {
+    // If we haven't spun up a hardware accelerated window yet, there's no
+    // point in precaching these bitmaps as it can't impact jank.
+    // We also don't know if we even will spin up a hardware-accelerated
+    // window or not.
+    if (!RenderThread::hasInstance()) return;
+    RenderThread* renderThread = &RenderThread::getInstance();
+    SETUP_TASK(prepareToDraw);
+    args->thread = renderThread;
+    args->bitmap = new SkBitmap(bitmap);
+    nsecs_t lastVsync = renderThread->timeLord().latestVsync();
+    nsecs_t estimatedNextVsync = lastVsync + renderThread->timeLord().frameIntervalNanos();
+    nsecs_t timeToNextVsync = estimatedNextVsync - systemTime(CLOCK_MONOTONIC);
+    // We expect the UI thread to take 4ms and for RT to be active from VSYNC+4ms to
+    // VSYNC+12ms or so, so aim for the gap during which RT is expected to
+    // be idle
+    // TODO: Make this concept a first-class supported thing? RT could use
+    // knowledge of pending draws to better schedule this task
+    if (timeToNextVsync > -6_ms && timeToNextVsync < 1_ms) {
+        renderThread->queueAt(task, estimatedNextVsync + 8_ms);
+    } else {
+        renderThread->queue(task);
+    }
+}
+
 void RenderProxy::post(RenderTask* task) {
     mRenderThread.queue(task);
 }
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index e31062c8..bb111bd 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -129,6 +129,7 @@
     ANDROID_API long getDroppedFrameReportCount();
 
     ANDROID_API static int copySurfaceInto(sp<Surface>& surface, SkBitmap* bitmap);
+    ANDROID_API static void prepareToDraw(const SkBitmap& bitmap);
 
 private:
     RenderThread& mRenderThread;
diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp
index 9fb30c9..f4b4416 100644
--- a/libs/hwui/renderthread/RenderThread.cpp
+++ b/libs/hwui/renderthread/RenderThread.cpp
@@ -190,7 +190,7 @@
     initializeDisplayEventReceiver();
     mEglManager = new EglManager(*this);
     mRenderState = new RenderState(*this);
-    mJankTracker = new JankTracker(frameIntervalNanos);
+    mJankTracker = new JankTracker(mDisplayInfo);
 }
 
 int RenderThread::displayEventReceiverCallback(int fd, int events, void* data) {
diff --git a/libs/hwui/tests/unit/FrameBuilderTests.cpp b/libs/hwui/tests/unit/FrameBuilderTests.cpp
index af54e07..53dbede 100644
--- a/libs/hwui/tests/unit/FrameBuilderTests.cpp
+++ b/libs/hwui/tests/unit/FrameBuilderTests.cpp
@@ -1459,7 +1459,8 @@
 
 static void drawOrderedRect(RecordingCanvas* canvas, uint8_t expectedDrawOrder) {
     SkPaint paint;
-    paint.setColor(SkColorSetARGB(256, 0, 0, expectedDrawOrder)); // order put in blue channel
+    // order put in blue channel, transparent so overlapped content doesn't get rejected
+    paint.setColor(SkColorSetARGB(1, 0, 0, expectedDrawOrder));
     canvas->drawRect(0, 0, 100, 100, paint);
 }
 static void drawOrderedNode(RecordingCanvas* canvas, uint8_t expectedDrawOrder, float z) {
diff --git a/libs/hwui/tests/unit/RecordingCanvasTests.cpp b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
index 9cd504e..c072d0b 100644
--- a/libs/hwui/tests/unit/RecordingCanvasTests.cpp
+++ b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
@@ -81,6 +81,27 @@
     ASSERT_EQ(0u, dl->getOps().size()) << "Must be zero ops. Rect should be rejected.";
 }
 
+TEST(RecordingCanvas, emptyPaintRejection) {
+    auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
+        SkPaint emptyPaint;
+        emptyPaint.setColor(Color::Transparent);
+
+        float points[] = {0, 0, 200, 200};
+        canvas.drawPoints(points, 4, emptyPaint);
+        canvas.drawLines(points, 4, emptyPaint);
+        canvas.drawRect(0, 0, 200, 200, emptyPaint);
+        canvas.drawRegion(SkRegion(SkIRect::MakeWH(200, 200)), emptyPaint);
+        canvas.drawRoundRect(0, 0, 200, 200, 10, 10, emptyPaint);
+        canvas.drawCircle(100, 100, 100, emptyPaint);
+        canvas.drawOval(0, 0, 200, 200, emptyPaint);
+        canvas.drawArc(0, 0, 200, 200, 0, 360, true, emptyPaint);
+        SkPath path;
+        path.addRect(0, 0, 200, 200);
+        canvas.drawPath(path, emptyPaint);
+    });
+    EXPECT_EQ(0u, dl->getOps().size()) << "Op should be rejected";
+}
+
 TEST(RecordingCanvas, drawArc) {
     auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
         canvas.drawArc(0, 0, 200, 200, 0, 180, true, SkPaint());
@@ -524,6 +545,21 @@
     EXPECT_EQ(3, count);
 }
 
+TEST(RecordingCanvas, saveLayer_rejectBegin) {
+    auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
+        canvas.save(SaveFlags::MatrixClip);
+        canvas.translate(0, -20); // avoid identity case
+        // empty clip rect should force layer + contents to be rejected
+        canvas.clipRect(0, -20, 200, -20, SkRegion::kIntersect_Op);
+        canvas.saveLayerAlpha(0, 0, 200, 200, 128, SaveFlags::ClipToLayer);
+        canvas.drawRect(0, 0, 200, 200, SkPaint());
+        canvas.restore();
+        canvas.restore();
+    });
+
+    ASSERT_EQ(0u, dl->getOps().size()) << "Begin/Rect/End should all be rejected.";
+}
+
 TEST(RecordingCanvas, drawRenderNode_rejection) {
     auto child = TestUtils::createNode(50, 50, 150, 150,
             [](RenderProperties& props, RecordingCanvas& canvas) {
diff --git a/libs/hwui/utils/TimeUtils.h b/libs/hwui/utils/TimeUtils.h
index 8d42d7e..ce181b7 100644
--- a/libs/hwui/utils/TimeUtils.h
+++ b/libs/hwui/utils/TimeUtils.h
@@ -21,10 +21,18 @@
 namespace android {
 namespace uirenderer {
 
+constexpr nsecs_t operator"" _s (unsigned long long s) {
+    return seconds_to_nanoseconds(s);
+}
+
 constexpr nsecs_t operator"" _ms (unsigned long long ms) {
     return milliseconds_to_nanoseconds(ms);
 }
 
+constexpr nsecs_t operator"" _us (unsigned long long us) {
+    return microseconds_to_nanoseconds(us);
+}
+
 } /* namespace uirenderer */
 } /* namespace android */
 
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index f19a262..33c1c3f 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -3289,7 +3289,10 @@
 
     /**
      * Used as a key for {@link #getProperty} to request the native or optimal output sample rate
-     * for this device's primary output stream, in decimal Hz.
+     * for this device's low latency output stream, in decimal Hz.  Latency-sensitive apps
+     * should use this value as a default, and offer the user the option to override it.
+     * The low latency output stream is typically either the device's primary output stream,
+     * or another output stream with smaller buffers.
      */
     // FIXME Deprecate
     public static final String PROPERTY_OUTPUT_SAMPLE_RATE =
@@ -3297,7 +3300,10 @@
 
     /**
      * Used as a key for {@link #getProperty} to request the native or optimal output buffer size
-     * for this device's primary output stream, in decimal PCM frames.
+     * for this device's low latency output stream, in decimal PCM frames.  Latency-sensitive apps
+     * should use this value as a minimum, and offer the user the option to override it.
+     * The low latency output stream is typically either the device's primary output stream,
+     * or another output stream with smaller buffers.
      */
     // FIXME Deprecate
     public static final String PROPERTY_OUTPUT_FRAMES_PER_BUFFER =
diff --git a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
index 20173b0..24cbfbd 100644
--- a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
+++ b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
@@ -4,7 +4,7 @@
     <string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string>
     <string name="action_use_network" msgid="6076184727448466030">"যেভাবে আছে সেভাবেই এই নেটওয়ার্ক ব্যবহার করুন"</string>
     <string name="action_do_not_use_network" msgid="4577366536956516683">"এই নেটওয়ার্ক ব্যবহার করবেন না"</string>
-    <string name="action_bar_label" msgid="917235635415966620">"নেটওয়ার্কে প্রবেশ করুন করুন"</string>
+    <string name="action_bar_label" msgid="917235635415966620">"নেটওয়ার্কে প্রবেশ করুন"</string>
     <string name="ssl_error_warning" msgid="6653188881418638872">"আপনি যে নেটওয়ার্কে যোগ দেওয়ার চেষ্টা করছেন তাতে নিরাপত্তার সমস্যা আছে।"</string>
     <string name="ssl_error_example" msgid="647898534624078900">"উদাহরণস্বরূপ, লগইন পৃষ্ঠাটি প্রদর্শিত প্রতিষ্ঠানের অন্তর্গত নাও হতে পারে৷"</string>
     <string name="ssl_error_continue" msgid="6492718244923937110">"যাই হোক না কেন ব্রাউজারের মাধ্যমে অবিরত রাখুন"</string>
diff --git a/packages/DocumentsUI/res/values-ja/strings.xml b/packages/DocumentsUI/res/values-ja/strings.xml
index 121a896..e1b2c50 100644
--- a/packages/DocumentsUI/res/values-ja/strings.xml
+++ b/packages/DocumentsUI/res/values-ja/strings.xml
@@ -110,9 +110,9 @@
     <string name="menu_rename" msgid="7678802479104285353">"名前を変更"</string>
     <string name="rename_error" msgid="4203041674883412606">"ドキュメントの名前を変更できませんでした"</string>
     <string name="notification_copy_files_converted_title" msgid="3153573223054275181">"一部のファイルが変換されました"</string>
-    <string name="open_external_dialog_request" msgid="5789329484285817629">"「<xliff:g id="STORAGE"><i>^3</i></xliff:g>」の「<xliff:g id="DIRECTORY"><i>^2</i></xliff:g>」ディレクトリに「<xliff:g id="APPNAME"><b>^1</b></xliff:g>」へのアクセスを許可しますか？"</string>
-    <string name="open_external_dialog_request_primary_volume" msgid="6635562535713428688">"「<xliff:g id="APPNAME"><b>^1</b></xliff:g>」アプリに「<xliff:g id="DIRECTORY"><i>^2</i></xliff:g>」ディレクトリへのアクセスを許可しますか？"</string>
-    <string name="open_external_dialog_root_request" msgid="8899108702926347720">"<xliff:g id="STORAGE"><i>^2</i></xliff:g>の写真や動画などのデータへのアクセスを「<xliff:g id="APPNAME"><b>^1</b></xliff:g>」に許可しますか？"</string>
+    <string name="open_external_dialog_request" msgid="5789329484285817629">"<xliff:g id="STORAGE"><i>^3</i></xliff:g> の <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> ディレクトリに <xliff:g id="APPNAME"><b>^1</b></xliff:g> へのアクセスを許可しますか？"</string>
+    <string name="open_external_dialog_request_primary_volume" msgid="6635562535713428688">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> アプリに <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> ディレクトリへのアクセスを許可しますか？"</string>
+    <string name="open_external_dialog_root_request" msgid="8899108702926347720">"<xliff:g id="STORAGE"><i>^2</i></xliff:g>の写真や動画などのデータへのアクセスを <xliff:g id="APPNAME"><b>^1</b></xliff:g> に許可しますか？"</string>
     <string name="never_ask_again" msgid="4295278542972859268">"今後表示しない"</string>
     <string name="allow" msgid="7225948811296386551">"許可"</string>
     <string name="deny" msgid="2081879885755434506">"拒否"</string>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java
index b7c0a9c..8aa7f6e 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -53,10 +53,13 @@
 import android.support.annotation.Nullable;
 import android.support.design.widget.Snackbar;
 import android.support.v13.view.DragStartHelper;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat;
 import android.support.v7.widget.GridLayoutManager;
 import android.support.v7.widget.GridLayoutManager.SpanSizeLookup;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.RecyclerView.OnItemTouchListener;
+import android.support.v7.widget.RecyclerView.Recycler;
 import android.support.v7.widget.RecyclerView.RecyclerListener;
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.text.BidiFormatter;
@@ -243,7 +246,40 @@
 
         mRecView.setAdapter(mAdapter);
 
-        mLayout = new GridLayoutManager(getContext(), mColumnCount);
+        // Switch Access Accessibility API needs an {@link AccessibilityDelegate} to know the proper
+        // route when user selects an UI element. It usually guesses this if the element has an
+        // {@link OnClickListener}, but since we do not have one for itemView, we will need to
+        // manually route it to the right behavior. RecyclerView has its own AccessibilityDelegate,
+        // and routes it to its LayoutManager; so we must override the LayoutManager's accessibility
+        // methods to route clicks correctly.
+        mLayout = new GridLayoutManager(getContext(), mColumnCount) {
+            @Override
+            public void onInitializeAccessibilityNodeInfoForItem(
+                    RecyclerView.Recycler recycler, RecyclerView.State state,
+                    View host, AccessibilityNodeInfoCompat info) {
+                super.onInitializeAccessibilityNodeInfoForItem(recycler, state, host, info);
+                info.addAction(AccessibilityActionCompat.ACTION_CLICK);
+            }
+
+            @Override
+            public boolean performAccessibilityActionForItem(
+                    RecyclerView.Recycler recycler, RecyclerView.State state, View view,
+                    int action, Bundle args) {
+                // We are only handling click events; route all other to default implementation
+                if (action == AccessibilityNodeInfoCompat.ACTION_CLICK) {
+                    RecyclerView.ViewHolder vh = mRecView.getChildViewHolder(view);
+                    if (vh instanceof DocumentHolder) {
+                        DocumentHolder dh = (DocumentHolder) vh;
+                        if (dh.mEventListener != null) {
+                            dh.mEventListener.onActivate(dh);
+                            return true;
+                        }
+                    }
+                }
+                return super.performAccessibilityActionForItem(recycler, state, view, action,
+                        args);
+            }
+        };
         SpanSizeLookup lookup = mAdapter.createSpanSizeLookup();
         if (lookup != null) {
             mLayout.setSpanSizeLookup(lookup);
diff --git a/packages/Keyguard/res/layout/keyguard_password_view.xml b/packages/Keyguard/res/layout/keyguard_password_view.xml
index 7d45017..29c93d5 100644
--- a/packages/Keyguard/res/layout/keyguard_password_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_password_view.xml
@@ -26,7 +26,6 @@
     androidprv:layout_maxWidth="@dimen/keyguard_security_width"
     androidprv:layout_maxHeight="@dimen/keyguard_security_height"
     android:gravity="bottom"
-    android:contentDescription="@string/keyguard_accessibility_password_unlock"
     >
 
     <Space
diff --git a/packages/Keyguard/res/layout/keyguard_pin_view.xml b/packages/Keyguard/res/layout/keyguard_pin_view.xml
index d3fb982..e75f3c15 100644
--- a/packages/Keyguard/res/layout/keyguard_pin_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_pin_view.xml
@@ -26,7 +26,6 @@
         androidprv:layout_maxWidth="@dimen/keyguard_security_width"
         androidprv:layout_maxHeight="@dimen/keyguard_security_max_height"
         android:orientation="vertical"
-        android:contentDescription="@string/keyguard_accessibility_pin_unlock"
         >
     <include layout="@layout/keyguard_message_area"
              android:layout_width="match_parent"
diff --git a/packages/Keyguard/res/values-af/strings.xml b/packages/Keyguard/res/values-af/strings.xml
index 568d82a..a338165 100644
--- a/packages/Keyguard/res/values-af/strings.xml
+++ b/packages/Keyguard/res/values-af/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kaart is gesluit."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kaart is PUK-geslote."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ontsluit tans SIM-kaart…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Patroon ontsluit."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN ontsluit."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Wagwoord ontsluit."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Patroonarea."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Sleep-area."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-area"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-PIN-area"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-PUK-area"</string>
diff --git a/packages/Keyguard/res/values-am/strings.xml b/packages/Keyguard/res/values-am/strings.xml
index 68e9ff3..67fdc32 100644
--- a/packages/Keyguard/res/values-am/strings.xml
+++ b/packages/Keyguard/res/values-am/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ሲም ካርድ ተዘግቷል።"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ሲም ካርድ በፒዩኬ ተዘግቷል።"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ሲም ካርዱን በመክፈት ላይ…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"በስርዓተ-ጥለት መክፈት።"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"በፒን መክፈት።"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"በይለፍ ቃል መክፈት።"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"የስርዓተ-ጥለት አካባቢ።"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"የማንሸራተቻ አካባቢ።"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"የፒን አካባቢ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"የሲም ፒን አካባቢ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"የሲም PUK አካባቢ"</string>
diff --git a/packages/Keyguard/res/values-ar/strings.xml b/packages/Keyguard/res/values-ar/strings.xml
index 09b78e4..8438699 100644
--- a/packages/Keyguard/res/values-ar/strings.xml
+++ b/packages/Keyguard/res/values-ar/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏شريحة SIM مؤمّنة."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏شريحة SIM مؤمّنة بكود PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏جارٍ إلغاء تأمين شريحة SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"إلغاء القفل باستخدام النقش."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"‏إلغاء القفل باستخدام رمز PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"إلغاء القفل باستخدام كلمة المرور."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"منطقة النقش."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"منطقة التمرير."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"منطقة رقم التعريف الشخصي"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏منطقة رقم التعريف الشخصي لبطاقة SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏منطقة PUK لبطاقة SIM"</string>
diff --git a/packages/Keyguard/res/values-az-rAZ/strings.xml b/packages/Keyguard/res/values-az-rAZ/strings.xml
index a8a1155..c7a8091 100644
--- a/packages/Keyguard/res/values-az-rAZ/strings.xml
+++ b/packages/Keyguard/res/values-az-rAZ/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kart kilidlənib."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SİM kart PUK ilə kilidlənib."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SİM kartın kilidi açılır..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Kild açma modeli."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin kilid açması."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Şifrə kilidi."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Model sahəsi."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Sürüşdürmə sahəsi."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN sahəsi"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN sahəsi"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK sahəsi"</string>
diff --git a/packages/Keyguard/res/values-b+sr+Latn/strings.xml b/packages/Keyguard/res/values-b+sr+Latn/strings.xml
index 22dc059..570f4bc 100644
--- a/packages/Keyguard/res/values-b+sr+Latn/strings.xml
+++ b/packages/Keyguard/res/values-b+sr+Latn/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica je zaključana PUK kodom."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Otključavanje šablonom."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Otključavanje PIN-om."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Otključavanje lozinkom."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Oblast šablona."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Oblast prevlačenja."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblast za PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblast za PIN za SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblast za PUK za SIM"</string>
diff --git a/packages/Keyguard/res/values-be-rBY/strings.xml b/packages/Keyguard/res/values-be-rBY/strings.xml
index ca6a476..f357961 100644
--- a/packages/Keyguard/res/values-be-rBY/strings.xml
+++ b/packages/Keyguard/res/values-be-rBY/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта заблакiраваная."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карта заблакiравана PUK-кодам."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Разблакiраванне SIM-карты..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Узор разблакiроўкі."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN-код разблакiроўкі."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Пароль разблакiроўкі."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Вобласць узора."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Вобласць слайда."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Поле для PIN-кода"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Поле для PIN-кода SIM-карты"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Поле для PUK-кода SIM-карты"</string>
diff --git a/packages/Keyguard/res/values-bg/strings.xml b/packages/Keyguard/res/values-bg/strings.xml
index 7eb2dbd..988e97f 100644
--- a/packages/Keyguard/res/values-bg/strings.xml
+++ b/packages/Keyguard/res/values-bg/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картата е заключена."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картата е заключена с PUK код."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картата се отключва…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Отключване с фигура."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Отключване с ПИН код."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Отключване с парола."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Област на фигурата."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Област на плъзгане."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Област за ПИН кода"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Област за ПИН кода на SIM картата"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Област за PUK кода на SIM картата"</string>
diff --git a/packages/Keyguard/res/values-bn-rBD/strings.xml b/packages/Keyguard/res/values-bn-rBD/strings.xml
index 7a33e21..1a2a8dd 100644
--- a/packages/Keyguard/res/values-bn-rBD/strings.xml
+++ b/packages/Keyguard/res/values-bn-rBD/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"সিম কার্ড লক করা আছে৷"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"সিম কার্ডটি PUK কোড দিয়ে লক করা আছে৷"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"সিম কার্ড আনলক করা হচ্ছে…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"প্যাটার্ন দিয়ে আনলক৷"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"পিন দিয়ে আনলক৷"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"পাসওয়ার্ড দিয়ে আনলক৷"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"প্যাটার্ন এলাকা৷"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"স্লাইড করার এলাকা৷"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"পিন অঞ্চল"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM পিন অঞ্চল"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK অঞ্চল"</string>
diff --git a/packages/Keyguard/res/values-bs-rBA/strings.xml b/packages/Keyguard/res/values-bs-rBA/strings.xml
index be73580..b8ff2a9 100644
--- a/packages/Keyguard/res/values-bs-rBA/strings.xml
+++ b/packages/Keyguard/res/values-bs-rBA/strings.xml
@@ -46,15 +46,10 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica je zaključana PUK kodom."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Otključavanje uzorkom."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Otključavanje pinom."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Otključavanje lozinkom."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Uzorak oblasti."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Oblast za pomjeranje klizača."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Prostor za PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Prostor za SIM PIN"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Prostor za SIM PUK"</string>
-    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Naredni alarm je podešen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
+    <string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sljedeći alarm je podešen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
     <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Izbriši"</string>
     <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Potvrdi"</string>
     <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste uzorak?"</string>
diff --git a/packages/Keyguard/res/values-ca/strings.xml b/packages/Keyguard/res/values-ca/strings.xml
index b542866..9207e0e 100644
--- a/packages/Keyguard/res/values-ca/strings.xml
+++ b/packages/Keyguard/res/values-ca/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La targeta SIM està bloquejada."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La targeta SIM està bloquejada pel PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"S\'està desbloquejant la targeta SIM..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueig mitjançant patró"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueig mitjançant PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueig mitjançant contrasenya"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Àrea de patró"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Àrea per lliscar el dit"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona del PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona del PIN de la SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona del PUK de la SIM"</string>
diff --git a/packages/Keyguard/res/values-cs/strings.xml b/packages/Keyguard/res/values-cs/strings.xml
index b310323..aa7115d 100644
--- a/packages/Keyguard/res/values-cs/strings.xml
+++ b/packages/Keyguard/res/values-cs/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta je zablokována."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta je zablokována pomocí kódu PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odblokování SIM karty…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Odemknutí gestem."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Odemknutí kódem PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Odemknutí heslem."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Oblast pro zadání bezpečnostního gesta."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Oblast pro přejetí prstem."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblast kódu PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblast kódu PIN SIM karty"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblast kódu PUK SIM karty"</string>
diff --git a/packages/Keyguard/res/values-da/strings.xml b/packages/Keyguard/res/values-da/strings.xml
index b46b536..ebea6ee 100644
--- a/packages/Keyguard/res/values-da/strings.xml
+++ b/packages/Keyguard/res/values-da/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet er låst."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kort er låst med PUK-koden."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kortet låses op…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Lås op med mønster."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Lås op med pinkode."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Lås op med adgangskode."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Mønsterområde."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Strygeområde."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Område for pinkoden"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Område for pinkoden til simkortet"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Område for PUK-koden til simkortet"</string>
diff --git a/packages/Keyguard/res/values-de/strings.xml b/packages/Keyguard/res/values-de/strings.xml
index ae731c3..a519ce8 100644
--- a/packages/Keyguard/res/values-de/strings.xml
+++ b/packages/Keyguard/res/values-de/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-Karte ist gesperrt."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-Karte ist gesperrt. PUK-Eingabe erforderlich."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-Karte wird entsperrt…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Entsperrung mit Muster"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Entsperrung mit PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Entsperrung mit Passwort"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Bereich für Muster"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Bereich für Fingerbewegung"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-Bereich"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-PIN-Bereich"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-PUK-Bereich"</string>
diff --git a/packages/Keyguard/res/values-el/strings.xml b/packages/Keyguard/res/values-el/strings.xml
index c54a7fc..d969266 100644
--- a/packages/Keyguard/res/values-el/strings.xml
+++ b/packages/Keyguard/res/values-el/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Η κάρτα SIM είναι κλειδωμένη."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Η κάρτα SIM είναι κλειδωμένη με κωδικό PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ξεκλείδωμα κάρτας SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Ξεκλείδωμα μοτίβου."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Ξεκλείδωμα κωδικού ασφαλείας"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Ξεκλείδωμα κωδικού πρόσβασης."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Περιοχή μοτίβου."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Περιοχή ολίσθησης"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Περιοχή PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Περιοχή PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Περιοχή PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-en-rAU/strings.xml b/packages/Keyguard/res/values-en-rAU/strings.xml
index e885166..9ecd979 100644
--- a/packages/Keyguard/res/values-en-rAU/strings.xml
+++ b/packages/Keyguard/res/values-en-rAU/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Pattern unlock."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin unlock."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Password unlock."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Pattern area."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Slide area."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
diff --git a/packages/Keyguard/res/values-en-rGB/strings.xml b/packages/Keyguard/res/values-en-rGB/strings.xml
index e885166..9ecd979 100644
--- a/packages/Keyguard/res/values-en-rGB/strings.xml
+++ b/packages/Keyguard/res/values-en-rGB/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Pattern unlock."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin unlock."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Password unlock."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Pattern area."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Slide area."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
diff --git a/packages/Keyguard/res/values-en-rIN/strings.xml b/packages/Keyguard/res/values-en-rIN/strings.xml
index e885166..9ecd979 100644
--- a/packages/Keyguard/res/values-en-rIN/strings.xml
+++ b/packages/Keyguard/res/values-en-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM card is locked."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM card is PUK-locked."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Unlocking SIM card…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Pattern unlock."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin unlock."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Password unlock."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Pattern area."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Slide area."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN area"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN area"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK area"</string>
diff --git a/packages/Keyguard/res/values-es-rUS/strings.xml b/packages/Keyguard/res/values-es-rUS/strings.xml
index df0db2d..61f5c0d 100644
--- a/packages/Keyguard/res/values-es-rUS/strings.xml
+++ b/packages/Keyguard/res/values-es-rUS/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La tarjeta SIM está bloqueada."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La tarjeta SIM está bloqueada por código PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarjeta SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueo por patrón"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueo por PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueo por contraseña"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Área de patrón"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Área de deslizamiento"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área de PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área de PIN de SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área de PUK de SIM"</string>
diff --git a/packages/Keyguard/res/values-es/strings.xml b/packages/Keyguard/res/values-es/strings.xml
index 6061b78..3ef737c 100644
--- a/packages/Keyguard/res/values-es/strings.xml
+++ b/packages/Keyguard/res/values-es/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La tarjeta SIM está bloqueada."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La tarjeta SIM está bloqueada con el código PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarjeta SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueo por patrón"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueo por PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueo por contraseña"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Área de patrón"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Área para deslizar"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área de PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área de PIN de SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área de PUK de SIM"</string>
diff --git a/packages/Keyguard/res/values-et-rEE/strings.xml b/packages/Keyguard/res/values-et-rEE/strings.xml
index 78ae3ca..47b6332 100644
--- a/packages/Keyguard/res/values-et-rEE/strings.xml
+++ b/packages/Keyguard/res/values-et-rEE/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kaart on lukus."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kaart on PUK-lukus."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kaardi avamine ..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Mustriga avamine."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN-koodiga avamine."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Parooliga avamine."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Mustri ala."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Lohistamisala."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-koodi ala"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-kaardi PIN-koodi ala"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-kaardi PUK-koodi ala"</string>
diff --git a/packages/Keyguard/res/values-eu-rES/strings.xml b/packages/Keyguard/res/values-eu-rES/strings.xml
index 7855b16..5f4abce 100644
--- a/packages/Keyguard/res/values-eu-rES/strings.xml
+++ b/packages/Keyguard/res/values-eu-rES/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM txartela blokeatuta dago."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM txartela PUK bidez blokeatuta dago."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM txartela desblokeatzen…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Ereduaren bidez desblokeatzea."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN kodearen bidez desblokeatzea."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Pasahitzaren bidez desblokeatzea."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Eredua marrazteko eremua."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Hatza lerratzeko eremua."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN kodearen eremua"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM txartelaren PIN kodearen eremua"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM txartelaren PUK kodearen eremua"</string>
diff --git a/packages/Keyguard/res/values-fa/strings.xml b/packages/Keyguard/res/values-fa/strings.xml
index 39fd460..40952e2 100644
--- a/packages/Keyguard/res/values-fa/strings.xml
+++ b/packages/Keyguard/res/values-fa/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"سیم کارت قفل شد."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏سیم کارت با PUK قفل شده است."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"درحال بازگشایی قفل سیم کارت..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"باز کردن قفل با الگو."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"باز کردن قفل با پین."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"باز کردن قفل با گذرواژه."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ناحیه الگو."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ناحیه کشیدن انگشت روی صفحه."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"قسمت پین"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"قسمت پین سیم‌کارت"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏قسمت PUK سیم‌کارت"</string>
diff --git a/packages/Keyguard/res/values-fi/strings.xml b/packages/Keyguard/res/values-fi/strings.xml
index 7a0c00f..a1b96ca 100644
--- a/packages/Keyguard/res/values-fi/strings.xml
+++ b/packages/Keyguard/res/values-fi/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortti on lukittu."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortti on PUK-lukittu."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-kortin lukitusta poistetaan…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Lukituksen poisto salasanalla."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Lukituksen poisto PIN-koodilla."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Lukituksen poisto salasanalla."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Kuvioalue."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Liu\'utusalue."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-koodin alue"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-kortin PIN-koodin alue"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-kortin PUK-koodin alue"</string>
diff --git a/packages/Keyguard/res/values-fr-rCA/strings.xml b/packages/Keyguard/res/values-fr-rCA/strings.xml
index 9bc2456..d920415 100644
--- a/packages/Keyguard/res/values-fr-rCA/strings.xml
+++ b/packages/Keyguard/res/values-fr-rCA/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La carte SIM est verrouillée."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La carte SIM est verrouillée par clé PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Déverrouillage de la carte SIM en cours…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Déverrouillage par schéma"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Déverrouillage par NIP"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Déverrouillage par mot de passe"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Zone du schéma"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Zone où faire glisser votre doigt sur l\'écran"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zone du NIP"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zone du NIP de la carte SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zone du code PUK de la carte SIM"</string>
diff --git a/packages/Keyguard/res/values-fr/strings.xml b/packages/Keyguard/res/values-fr/strings.xml
index ecb2575..8615b99 100644
--- a/packages/Keyguard/res/values-fr/strings.xml
+++ b/packages/Keyguard/res/values-fr/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La carte SIM est verrouillée."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La carte SIM est verrouillée par clé PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Déverrouillage de la carte SIM en cours…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Déverrouillage par schéma"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Déverrouillage par code PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Déverrouillage par mot de passe"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Zone du schéma"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Zone où faire glisser votre doigt sur l\'écran"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Champ du code PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Champ du code PIN de la carte SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Champ du code PUK de la carte SIM"</string>
diff --git a/packages/Keyguard/res/values-gl-rES/strings.xml b/packages/Keyguard/res/values-gl-rES/strings.xml
index 382dd7b..a894fc5 100644
--- a/packages/Keyguard/res/values-gl-rES/strings.xml
+++ b/packages/Keyguard/res/values-gl-rES/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"A tarxeta SIM está bloqueada."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"A tarxeta SIM está bloqueada mediante un PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando tarxeta SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueo mediante padrón"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueo mediante PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueo mediante contrasinal"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Zona do padrón"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Zona para pasar o dedo"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN da tarxeta SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK da tarxeta SIM"</string>
diff --git a/packages/Keyguard/res/values-gu-rIN/strings.xml b/packages/Keyguard/res/values-gu-rIN/strings.xml
index eddd1a1..d288b3f 100644
--- a/packages/Keyguard/res/values-gu-rIN/strings.xml
+++ b/packages/Keyguard/res/values-gu-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM કાર્ડ લૉક કરેલ છે."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM કાર્ડ, PUK-લૉક કરેલ છે."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM કાર્ડ અનલૉક કરી રહ્યાં છે…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"પેટર્ન અનલૉક."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"પિન અનલૉક."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"પાસવર્ડ અનલૉક કરો."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"પેટર્ન ક્ષેત્ર."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"સ્લાઇડ ક્ષેત્ર."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ક્ષેત્ર"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ક્ષેત્ર"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ક્ષેત્ર"</string>
diff --git a/packages/Keyguard/res/values-hi/strings.xml b/packages/Keyguard/res/values-hi/strings.xml
index 8069c5e..bf36312 100644
--- a/packages/Keyguard/res/values-hi/strings.xml
+++ b/packages/Keyguard/res/values-hi/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"सिम कार्ड लॉक है."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"सिम कार्ड PUK द्वारा लॉक किया हुआ है."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"सिम कार्ड अनलॉक हो रहा है…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"आकार अनलॉक."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"पिन अनलॉक."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"पासवर्ड अनलॉक."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"आकार क्षेत्र."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"स्लाइड क्षेत्र."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पिन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"सिम पिन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"सिम पिइउके क्षेत्र"</string>
diff --git a/packages/Keyguard/res/values-hr/strings.xml b/packages/Keyguard/res/values-hr/strings.xml
index 044786d..169bc57 100644
--- a/packages/Keyguard/res/values-hr/strings.xml
+++ b/packages/Keyguard/res/values-hr/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kartica je zaključana."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kartica zaključana je PUK-om."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Otključavanje SIM kartice…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Uzorak za otključavanje."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Otključavanje PIN-om."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Otključavanje zaporkom."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Područje uzorka."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Područje klizanja."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Područje PIN-a"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Područje PIN-a za SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Područje PUK-a za SIM"</string>
diff --git a/packages/Keyguard/res/values-hu/strings.xml b/packages/Keyguard/res/values-hu/strings.xml
index e54a89f..bc3bf4e 100644
--- a/packages/Keyguard/res/values-hu/strings.xml
+++ b/packages/Keyguard/res/values-hu/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"A SIM kártya le van zárva."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"A SIM kártya le van zárva a PUK kóddal."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM kártya feloldása..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Feloldás mintával"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Feloldás PIN kóddal"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Feloldás jelszóval"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Mintaterület"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Csúsztatási terület"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-kód területe"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN-kód területe"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK kód területe"</string>
diff --git a/packages/Keyguard/res/values-hy-rAM/strings.xml b/packages/Keyguard/res/values-hy-rAM/strings.xml
index 6758a2e..4aacf8f 100644
--- a/packages/Keyguard/res/values-hy-rAM/strings.xml
+++ b/packages/Keyguard/res/values-hy-rAM/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM քարտը կողպված է:"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM քարտը PUK-ով կողպված է:"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM քարտը ապակողպվում է..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Սխեմայով ապակողպում:"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin-ն ապակողպված է:"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Գաղտնաբառի ապակողպում:"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Սխեմայի տարածք:"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Սահեցման տարածք:"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN կոդի տարածք"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM քարտի PIN կոդի տարածք"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM քարտի PUK կոդի տարածք"</string>
diff --git a/packages/Keyguard/res/values-in/strings.xml b/packages/Keyguard/res/values-in/strings.xml
index 6f8e7f1..dda63a8 100644
--- a/packages/Keyguard/res/values-in/strings.xml
+++ b/packages/Keyguard/res/values-in/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kartu SIM terkunci."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kartu SIM terkunci PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Membuka kartu SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Buka kunci dengan pola."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Buka kunci dengan PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Buka kunci dengan sandi."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Area pola."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Area geser."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Bidang PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Bidang PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Bidang PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-is-rIS/strings.xml b/packages/Keyguard/res/values-is-rIS/strings.xml
index 279ffcf..278e031 100644
--- a/packages/Keyguard/res/values-is-rIS/strings.xml
+++ b/packages/Keyguard/res/values-is-rIS/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortið er læst."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortið er PUK-læst."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Tekur SIM-kort úr lás…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Opnun með mynstri."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Opnun með PIN-númeri."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Opnun með aðgangsorði."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Svæði mynsturs."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Stroksvæði."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-svæði"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-svæði SIM-korts"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-svæði SIM-korts"</string>
diff --git a/packages/Keyguard/res/values-it/strings.xml b/packages/Keyguard/res/values-it/strings.xml
index 728974d..98bcae4 100644
--- a/packages/Keyguard/res/values-it/strings.xml
+++ b/packages/Keyguard/res/values-it/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"La SIM è bloccata."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"La SIM è bloccata tramite PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Sblocco scheda SIM..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Sblocco con sequenza."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Sblocco con PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Sblocco con password."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Area sequenza."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Area di scorrimento."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Area PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Area PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Area PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-iw/strings.xml b/packages/Keyguard/res/values-iw/strings.xml
index 47d0728..8d1ada3 100644
--- a/packages/Keyguard/res/values-iw/strings.xml
+++ b/packages/Keyguard/res/values-iw/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏כרטיס ה-SIM נעול."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏כרטיס SIM נעול באמצעות PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏מבטל נעילה של כרטיס SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ביטול נעילה באמצעות ציור קו."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"‏ביטול נעילה באמצעות מספר PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ביטול נעילה באמצעות סיסמה."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"אזור ציור קו."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"אזור הסטה."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"‏אזור עבור קוד PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏אזור עבור קוד PIN של SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏אזור עבור קוד PUK של SIM"</string>
diff --git a/packages/Keyguard/res/values-ja/strings.xml b/packages/Keyguard/res/values-ja/strings.xml
index d30355f..c4b4c98 100644
--- a/packages/Keyguard/res/values-ja/strings.xml
+++ b/packages/Keyguard/res/values-ja/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIMカードはロックされています。"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIMカードはPUKでロックされています。"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIMカードをロック解除しています…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"パターンロックを解除します。"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PINロックを解除します。"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"パスワードロックを解除します。"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"パターンエリアです。"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"スライドエリアです。"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PINエリア"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PINエリア"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUKエリア"</string>
diff --git a/packages/Keyguard/res/values-ka-rGE/strings.xml b/packages/Keyguard/res/values-ka-rGE/strings.xml
index a398e00..658194ff 100644
--- a/packages/Keyguard/res/values-ka-rGE/strings.xml
+++ b/packages/Keyguard/res/values-ka-rGE/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM ბარათი დაბლოკილია."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM ბარათი დაბლოკილია PUK კოდით."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"მიმდინარეობს SIM ბარათის განბლოკვა…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"განბლოკვა ნიმუშით."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"განბლოკვა Pin-ით."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"პაროლის განბლოკვა"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ნიმუშების სივრცე."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"გადასრიალების სივრცე."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-ის არე"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM-ის PIN-ის არე"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM-ის PUK-ის არე"</string>
diff --git a/packages/Keyguard/res/values-kk-rKZ/strings.xml b/packages/Keyguard/res/values-kk-rKZ/strings.xml
index be261fb..2eb3948 100644
--- a/packages/Keyguard/res/values-kk-rKZ/strings.xml
+++ b/packages/Keyguard/res/values-kk-rKZ/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картасы бекітулі."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картасының PUK коды бекітілген."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картасының бекітпесін ашуда…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Кескін арқылы ашу."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin арқылы ашу."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Құпия сөз арқылы ашу."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Кескін арқылы ашу аймағы."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Сырғыту аймағы."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN аумағы"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN аумағы"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK аумағы"</string>
diff --git a/packages/Keyguard/res/values-km-rKH/strings.xml b/packages/Keyguard/res/values-km-rKH/strings.xml
index 4d3f6e8..fce46c7 100644
--- a/packages/Keyguard/res/values-km-rKH/strings.xml
+++ b/packages/Keyguard/res/values-km-rKH/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ស៊ីម​កាត​​ជាប់​សោ។"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ស៊ីម​កាត​ជាប់​កូដ​​ PUK ។"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"កំពុង​ដោះ​សោ​ស៊ីម​កាត..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"លំនាំ​ដោះ​សោ​។"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"កូដ PIN ដោះ​សោ។"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ពាក្យ​សម្ងាត់​ដោះ​សោ​។"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ផ្ទៃ​លំនាំ។"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ផ្ទៃ​រុញ។"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ប្រអប់លេខសម្ងាត់"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ប្រអប់លេខសម្ងាត់ស៊ីម"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ប្រអប់ PUK ស៊ីម"</string>
diff --git a/packages/Keyguard/res/values-kn-rIN/strings.xml b/packages/Keyguard/res/values-kn-rIN/strings.xml
index 5691a63..7bac9c6 100644
--- a/packages/Keyguard/res/values-kn-rIN/strings.xml
+++ b/packages/Keyguard/res/values-kn-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್ನು PUK-ಲಾಕ್ ಮಾಡಲಾಗಿದೆ."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ಪ್ಯಾಟರ್ನ್ ಅನ್‌ಲಾಕ್."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"ಪಿನ್ ಅನ್‌ಲಾಕ್."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ಪಾಸ್‌ವರ್ಡ್ ಅನ್‌ಲಾಕ್."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ಪ್ಯಾಟರ್ನ್ ಪ್ರದೇಶ."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ಸ್ಲೈಡ್ ಪ್ರದೇಶ."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ಪಿನ್ ಪ್ರದೇಶ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ಸಿಮ್ ಪಿನ್ ಪ್ರದೇಶ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ಸಿಮ್ PUK ಪ್ರದೇಶ"</string>
diff --git a/packages/Keyguard/res/values-ko/strings.xml b/packages/Keyguard/res/values-ko/strings.xml
index 2eeef2b..5d40d4d 100644
--- a/packages/Keyguard/res/values-ko/strings.xml
+++ b/packages/Keyguard/res/values-ko/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 카드가 잠겨 있습니다."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 카드가 PUK 잠김 상태입니다."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM 카드 잠금해제 중..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"패턴을 사용하여 잠금해제합니다."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"핀을 사용하여 잠금해제합니다."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"비밀번호를 사용하여 잠금해제합니다."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"패턴을 그리는 부분입니다."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"슬라이드하는 부분입니다."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 영역"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN 영역"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK 영역"</string>
diff --git a/packages/Keyguard/res/values-ky-rKG/strings.xml b/packages/Keyguard/res/values-ky-rKG/strings.xml
index d42b1fa..a485528 100644
--- a/packages/Keyguard/res/values-ky-rKG/strings.xml
+++ b/packages/Keyguard/res/values-ky-rKG/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта бөгөттөлгөн."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карта PUK-бөгөттө."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM-карта бөгөттөн чыгарылууда…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Үлгү менен ачуу."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Пин код менен ачуу."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Сырсөз менен ачуу."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Үлгү аймагы."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Жылмыштыруу аймагы."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN аймагы"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN аймагы"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK аймагы"</string>
diff --git a/packages/Keyguard/res/values-lo-rLA/strings.xml b/packages/Keyguard/res/values-lo-rLA/strings.xml
index 8e7c813..29a1b56 100644
--- a/packages/Keyguard/res/values-lo-rLA/strings.xml
+++ b/packages/Keyguard/res/values-lo-rLA/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ຊິມກາດຖືກລັອກ."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ຊິມກາດຖືກລັອກດ້ວຍລະຫັດ PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ກຳລັງປົດລັອກຊິມກາດ..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ປົດລັອກດ້ວຍຮູບແບບ."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"ປົດລັອກດ້ວຍ PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ການປົດລັອກດ້ວຍລະຫັດຜ່ານ."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ພື້ນທີ່ຮູບແບບ."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ເລື່ອນພື້ນທີ່."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"ພື້ນ​ທີ່ PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"ພື້ນ​ທີ່ PIN ຂອງ SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"ພື້ນ​ທີ່ PUK ຂອງ SIM"</string>
diff --git a/packages/Keyguard/res/values-lt/strings.xml b/packages/Keyguard/res/values-lt/strings.xml
index 653c089..fd41efc 100644
--- a/packages/Keyguard/res/values-lt/strings.xml
+++ b/packages/Keyguard/res/values-lt/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kortelė užrakinta."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kortelė užrakinta PUK kodu."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Atrakinama SIM kortelė…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Atrakinimas pagal piešinį."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Atrakinimas įvedus PIN kodą."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Atrakinimas įvedus slaptažodį."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Atrakinimo pagal piešinį sritis."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Slydimo sritis."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN kodo sritis"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM kortelės PIN kodo sritis"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM kortelės PUK kodo sritis"</string>
diff --git a/packages/Keyguard/res/values-lv/strings.xml b/packages/Keyguard/res/values-lv/strings.xml
index 449659e..f801d64 100644
--- a/packages/Keyguard/res/values-lv/strings.xml
+++ b/packages/Keyguard/res/values-lv/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karte ir bloķēta."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karte ir bloķēta ar PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Notiek SIM kartes atbloķēšana..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Autorizācija ar kombināciju."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Autorizācija ar PIN kodu."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Autorizācija ar paroli."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Kombinācijas ievades apgabals."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Apgabals, kur vilkt ar pirkstu."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN apgabals"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN apgabals"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK apgabals"</string>
diff --git a/packages/Keyguard/res/values-mk-rMK/strings.xml b/packages/Keyguard/res/values-mk-rMK/strings.xml
index a6ee921..9d833f0 100644
--- a/packages/Keyguard/res/values-mk-rMK/strings.xml
+++ b/packages/Keyguard/res/values-mk-rMK/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"СИМ картичката е заклучена."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"СИМ картичката е заклучена со ПУК."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"СИМ картичката се отклучува..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Отклучување со шема."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Отклучување со пин."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Отклучување со лозинка."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Област за шема."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Област за лизгање."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Поле за PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Поле за PIN на СИМ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Поле за ПУК на СИМ"</string>
diff --git a/packages/Keyguard/res/values-ml-rIN/strings.xml b/packages/Keyguard/res/values-ml-rIN/strings.xml
index fa39ae1..5d93cf0 100644
--- a/packages/Keyguard/res/values-ml-rIN/strings.xml
+++ b/packages/Keyguard/res/values-ml-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"സിം കാർഡ് ലോക്കുചെയ്‌തു."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"സിം കാർഡ് PUK-ലോക്ക് ചെയ്‌തതാണ്."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"സിം കാർഡ് അൺലോക്കുചെയ്യുന്നു…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"പാറ്റേൺ അൺലോക്ക്."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"പിൻ അൺലോക്ക്."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"പാസ്‌വേഡ് അൺലോക്ക്."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"പാറ്റേൺ ഏരിയ."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"സ്ലൈഡ് ഏരിയ."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ഏരിയ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ഏരിയ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ഏരിയ"</string>
diff --git a/packages/Keyguard/res/values-mn-rMN/strings.xml b/packages/Keyguard/res/values-mn-rMN/strings.xml
index fae0328..8641e31 100644
--- a/packages/Keyguard/res/values-mn-rMN/strings.xml
+++ b/packages/Keyguard/res/values-mn-rMN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM карт түгжигдсэн."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картны PUK-түгжигдсэн."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM картны түгжээг гаргаж байна…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Тайлах хээ."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Тайлах пин."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Тайлах нууц үг."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Хээний хэсэг."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Гулсуулах хэсэг."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN талбар"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN талбар"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK талбар"</string>
diff --git a/packages/Keyguard/res/values-mr-rIN/strings.xml b/packages/Keyguard/res/values-mr-rIN/strings.xml
index 57a95be..8bcaad6 100644
--- a/packages/Keyguard/res/values-mr-rIN/strings.xml
+++ b/packages/Keyguard/res/values-mr-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"सिम कार्ड लॉक झाले आहे."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"सिम कार्ड PUK-लॉक केलेले आहे."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"सिम कार्ड अनलॉक करत आहे…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"नमुना अनलॉक."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"पिन अनलॉक."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"संकेतशब्द अनलॉक."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"नमुना क्षेत्र."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"स्लाइड क्षेत्र."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पिन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"सिम पिन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"सिम PUK क्षेत्र"</string>
diff --git a/packages/Keyguard/res/values-ms-rMY/strings.xml b/packages/Keyguard/res/values-ms-rMY/strings.xml
index 803d40a..b7b093f 100644
--- a/packages/Keyguard/res/values-ms-rMY/strings.xml
+++ b/packages/Keyguard/res/values-ms-rMY/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kad SIM dikunci."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kad SIM dikunci dengan PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Membuka kunci kad SIM..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Buka kunci corak."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Buka kunci pin."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Buka kunci kata laluan."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Kawasan corak."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Kawasan luncur."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Kawasan PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Kawasan PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Kawasan PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-my-rMM/strings.xml b/packages/Keyguard/res/values-my-rMM/strings.xml
index fd800e4..7a7664e 100644
--- a/packages/Keyguard/res/values-my-rMM/strings.xml
+++ b/packages/Keyguard/res/values-my-rMM/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ဆင်းမ်ကဒ် သော့ကျနေပါသည်"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ဆင်းမ်ကဒ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"ဆင်းမ်ကဒ် ကို သော့ဖွင့်နေပါသည်"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ပုံစံဖြင့် သော့ဖွင့်ခြင်း"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"ပင်နံပါတ်ဖြင့် သော့ဖွင့်ခြင်း"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"စကားဝှက်ဖြင့် သော့ဖွင့်ခြင်း"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ပုံစံနေရာ"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ဘေးတိုက်ပွတ်ဆွဲရန် နေရာ"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN နေရာ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN နေရာ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK နေရာ"</string>
diff --git a/packages/Keyguard/res/values-nb/strings.xml b/packages/Keyguard/res/values-nb/strings.xml
index 1bdf444..e0035da 100644
--- a/packages/Keyguard/res/values-nb/strings.xml
+++ b/packages/Keyguard/res/values-nb/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet er låst."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortet er PUK-låst."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Låser opp SIM-kortet ..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Mønsteropplåsning."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN-opplåsning."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Passordopplåsning."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Mønsterområde."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Dra-felt."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-området"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-området for SIM-kortet"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-området for SIM-kortet"</string>
diff --git a/packages/Keyguard/res/values-ne-rNP/strings.xml b/packages/Keyguard/res/values-ne-rNP/strings.xml
index 2cf863d..47f5432 100644
--- a/packages/Keyguard/res/values-ne-rNP/strings.xml
+++ b/packages/Keyguard/res/values-ne-rNP/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM कार्ड लक गरियो।"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM कार्ड PUK-लक छ।"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM कार्ड अनलक हुँदै…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ढाँचा अनलक।"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin अनलक"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"पासवर्ड अनलक।"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ढाँचा क्षेत्र।"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"स्लाइड क्षेत्र।"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"पीन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM पिन क्षेत्र"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM पुक क्षेत्र"</string>
diff --git a/packages/Keyguard/res/values-nl/strings.xml b/packages/Keyguard/res/values-nl/strings.xml
index a33165d..c44381e 100644
--- a/packages/Keyguard/res/values-nl/strings.xml
+++ b/packages/Keyguard/res/values-nl/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Simkaart is vergrendeld."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Simkaart is vergrendeld met PUK-code."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Simkaart ontgrendelen…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Ontgrendeling via patroon."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Ontgrendeling via pincode."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Ontgrendeling via wachtwoord."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Tekengebied voor patroon."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Schuifgebied."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Gebied voor pincode"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Gebied voor sim-pincode"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Gebied voor sim-pukcode"</string>
diff --git a/packages/Keyguard/res/values-pa-rIN/strings.xml b/packages/Keyguard/res/values-pa-rIN/strings.xml
index 8cf86a0..16ca29c 100644
--- a/packages/Keyguard/res/values-pa-rIN/strings.xml
+++ b/packages/Keyguard/res/values-pa-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM ਕਾਰਡ ਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM ਕਾਰਡ PUK-ਲੌਕਡ ਹੈ।"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM ਕਾਰਡ ਅਨਲੌਕ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ਪੈਟਰਨ ਅਨਲੌਕ।"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin ਅਨਲੌਕ।"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ਪਾਸਵਰਡ ਅਨਲੌਕ।"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ਪੈਟਰਨ ਖੇਤਰ।"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ਖੇਤਰ ਸਲਾਈਡ ਕਰੋ।"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ਖੇਤਰ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ਖੇਤਰ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ਖੇਤਰ"</string>
diff --git a/packages/Keyguard/res/values-pl/strings.xml b/packages/Keyguard/res/values-pl/strings.xml
index ee20850..f0980da 100644
--- a/packages/Keyguard/res/values-pl/strings.xml
+++ b/packages/Keyguard/res/values-pl/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Karta SIM jest zablokowana."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Karta SIM jest zablokowana za pomocą kodu PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odblokowuję kartę SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Odblokowanie wzorem."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Odblokowanie kodem PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Odblokowanie hasłem."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Obszar wzoru."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Obszar przesuwania."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Miejsce na PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Miejsce na PIN do karty SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Miejsce na PUK do karty SIM"</string>
diff --git a/packages/Keyguard/res/values-pt-rBR/strings.xml b/packages/Keyguard/res/values-pt-rBR/strings.xml
index d7215c1..2663337 100644
--- a/packages/Keyguard/res/values-pt-rBR/strings.xml
+++ b/packages/Keyguard/res/values-pt-rBR/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado pelo PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando o cartão SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueio com padrão."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueio com PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueio com senha."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Área do padrão."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Área de deslize."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-pt-rPT/strings.xml b/packages/Keyguard/res/values-pt-rPT/strings.xml
index f0b2bbc..e417e07 100644
--- a/packages/Keyguard/res/values-pt-rPT/strings.xml
+++ b/packages/Keyguard/res/values-pt-rPT/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado por PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"A desbloquear o cartão SIM..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueio através de sequência."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueio através de PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueio através de palavra-passe."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Área da sequência."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Área de deslize."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN do SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK do SIM"</string>
diff --git a/packages/Keyguard/res/values-pt/strings.xml b/packages/Keyguard/res/values-pt/strings.xml
index d7215c1..2663337 100644
--- a/packages/Keyguard/res/values-pt/strings.xml
+++ b/packages/Keyguard/res/values-pt/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"O cartão SIM está bloqueado."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"O cartão SIM está bloqueado pelo PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Desbloqueando o cartão SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desbloqueio com padrão."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Desbloqueio com PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Desbloqueio com senha."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Área do padrão."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Área de deslize."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Área do PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Área do PIN SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Área do PUK SIM"</string>
diff --git a/packages/Keyguard/res/values-ro/strings.xml b/packages/Keyguard/res/values-ro/strings.xml
index ea5380c..09a066a 100644
--- a/packages/Keyguard/res/values-ro/strings.xml
+++ b/packages/Keyguard/res/values-ro/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Cardul SIM este blocat."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Cardul SIM este blocat cu codul PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Se deblochează cardul SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Deblocare cu model."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Deblocare cu PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Deblocare cu parolă."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Zonă model."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Zonă glisare."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona codului PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona codului PIN al cardului SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona codului PUK al cardului SIM"</string>
@@ -61,7 +56,7 @@
     <string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greșit"</string>
     <string name="kg_wrong_password" msgid="2333281762128113157">"Parolă greșită"</string>
     <string name="kg_wrong_pin" msgid="1131306510833563801">"Cod PIN greșit"</string>
-    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Încercați din nou peste <xliff:g id="NUMBER">%d</xliff:g> (de) secunde."</string>
+    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Încercați din nou peste <xliff:g id="NUMBER">%d</xliff:g>   secunde."</string>
     <string name="kg_pattern_instructions" msgid="398978611683075868">"Desenați modelul"</string>
     <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Introduceți codul PIN al cardului SIM"</string>
     <string name="kg_sim_pin_instructions_multi" msgid="7818515973197201434">"Introduceți codul PIN al cardului SIM pentru „<xliff:g id="CARRIER">%1$s</xliff:g>”"</string>
@@ -77,9 +72,9 @@
     <string name="kg_invalid_puk" msgid="3638289409676051243">"Reintroduceți codul PUK corect. Încercările repetate vor dezactiva definitiv cardul SIM."</string>
     <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Codurile PIN nu coincid"</string>
     <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Prea multe încercări de desenare a modelului"</string>
-    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
-    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g> (de) secunde."</string>
+    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Ați introdus incorect codul PIN de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori.\n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Ați introdus incorect parola de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
+    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. \n\nÎncercați din nou peste <xliff:g id="NUMBER_1">%2$d</xliff:g>   secunde."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="8774056606869646621">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a tabletei. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, această tabletă va fi resetată, iar toate datele acesteia vor fi șterse."</string>
     <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="1843331751334128428">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, acest telefon va fi resetat, iar toate datele acestuia vor fi șterse."</string>
     <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="258925501999698032">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Această tabletă va fi resetată, iar toate datele acesteia vor fi șterse."</string>
@@ -92,8 +87,8 @@
     <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="6853071165802933545">"Ați efectuat <xliff:g id="NUMBER_0">%1$d</xliff:g> încercări incorecte de deblocare a telefonului. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
     <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4686386497449912146">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a tabletei. Profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
     <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4951507352869831265">"Ați efectuat <xliff:g id="NUMBER">%d</xliff:g> încercări incorecte de deblocare a telefonului. Profilul de serviciu va fi eliminat, iar toate datele profilului vor fi șterse."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
-    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> (de) secunde."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g>   secunde."</string>
     <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"Codul PIN pentru cardul SIM este incorect. Contactați operatorul pentru a vă debloca dispozitivul."</string>
     <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="6721575017538162249">
       <item quantity="few">Codul PIN pentru cardul SIM este incorect. V-au mai rămas <xliff:g id="NUMBER_1">%d</xliff:g> încercări.</item>
diff --git a/packages/Keyguard/res/values-ru/strings.xml b/packages/Keyguard/res/values-ru/strings.xml
index 264e42c..7466c66 100644
--- a/packages/Keyguard/res/values-ru/strings.xml
+++ b/packages/Keyguard/res/values-ru/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карта заблокирована"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Для разблокировки SIM-карты требуется PUK-код."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Разблокировка SIM-карты…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Графический ключ"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN-код"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Пароль"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Область ввода графического ключа"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Область слайдера"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-код"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-код SIM-карты"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-код SIM-карты"</string>
diff --git a/packages/Keyguard/res/values-si-rLK/strings.xml b/packages/Keyguard/res/values-si-rLK/strings.xml
index 607e8ac..5f96e8c 100644
--- a/packages/Keyguard/res/values-si-rLK/strings.xml
+++ b/packages/Keyguard/res/values-si-rLK/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM පත අගුළු දමා ඇත."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM පත PUK අගුළු ලා ඇත."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM පත අගුළු හරිමින්..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"රටා අගුළු ඇරීම."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN අගුළු ඇරීම."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"මුරපද අගුළු ඇරීම."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"රටා ප්‍රදේශය."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"සර්පණ ප්‍රදේශය."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN කොටස"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN කොටස"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK කොටස"</string>
diff --git a/packages/Keyguard/res/values-sk/strings.xml b/packages/Keyguard/res/values-sk/strings.xml
index 4cbfd51..82a4f1d4 100644
--- a/packages/Keyguard/res/values-sk/strings.xml
+++ b/packages/Keyguard/res/values-sk/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta je uzamknutá."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta je uzamknutá pomocou kódu PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Prebieha odomykanie SIM karty..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Odomknutie vzorom."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Odomknutie kódom PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Odomknutie heslom."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Oblasť na zadanie bezpečnostného vzoru."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Oblasť na prejdenie prstom."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Oblasť kódu PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Oblasť kódu PIN SIM karty"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Oblasť kódu PUK SIM karty"</string>
diff --git a/packages/Keyguard/res/values-sl/strings.xml b/packages/Keyguard/res/values-sl/strings.xml
index 91083f5..9100bd3 100644
--- a/packages/Keyguard/res/values-sl/strings.xml
+++ b/packages/Keyguard/res/values-sl/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Kartica SIM je zaklenjena."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Kartica SIM je zaklenjena s kodo PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Odklepanje kartice SIM …"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Odklepanje z vzorcem."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Odklepanje s kodo PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Odklepanje z geslom."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Območje vzorca."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Območje podrsanja."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Območje za kodo PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Območje za kodo PIN za SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Območje za kodo PUK za SIM"</string>
diff --git a/packages/Keyguard/res/values-sq-rAL/strings.xml b/packages/Keyguard/res/values-sq-rAL/strings.xml
index 7f4becb..31d31b7 100644
--- a/packages/Keyguard/res/values-sq-rAL/strings.xml
+++ b/packages/Keyguard/res/values-sq-rAL/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Karta SIM është e kyçur."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Karta SIM është e kyçur me PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Po shkyç kartën SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Shkyçje me motiv."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Shkyçje me PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Shkyçja e fjalëkalimit."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Zona e motivit."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Zonën e rrëshqitjes."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Zona PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Zona PIN e kartës SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Zona e PUK-ut të kartës SIM"</string>
diff --git a/packages/Keyguard/res/values-sr/strings.xml b/packages/Keyguard/res/values-sr/strings.xml
index 62614a6..840cae7 100644
--- a/packages/Keyguard/res/values-sr/strings.xml
+++ b/packages/Keyguard/res/values-sr/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM картица је закључана."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM картица је закључана PUK кодом."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Откључавање SIM картице…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Откључавање шаблоном."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Откључавање PIN-ом."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Откључавање лозинком."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Област шаблона."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Област превлачења."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Област за PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Област за PIN за SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Област за PUK за SIM"</string>
diff --git a/packages/Keyguard/res/values-sv/strings.xml b/packages/Keyguard/res/values-sv/strings.xml
index 378f047..527c8e6 100644
--- a/packages/Keyguard/res/values-sv/strings.xml
+++ b/packages/Keyguard/res/values-sv/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-kortet är låst."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-kortet är PUK-låst."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Låser upp SIM-kort …"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Lås upp med grafiskt lösenord."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Lås upp med PIN-kod."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Lås upp med lösenord."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Fält för grafiskt lösenord."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Fält med dragreglage."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Pinkodsområde"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Pinkodsområde för SIM-kort"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-kodsområde för SIM-kort"</string>
diff --git a/packages/Keyguard/res/values-sw/strings.xml b/packages/Keyguard/res/values-sw/strings.xml
index b570e9f..c2e7ac9 100644
--- a/packages/Keyguard/res/values-sw/strings.xml
+++ b/packages/Keyguard/res/values-sw/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kadi imefungwa."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kadi imefungwa na PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Inafungua SIM kadi..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Kufungua kwa ruwaza."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Kufungua kwa PIN."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Kufungua kwa nenosiri."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Eneo la ruwaza."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Eneo la slaidi."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Eneo la PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Eneo la PIN ya SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Eneo la PUK ya SIM"</string>
diff --git a/packages/Keyguard/res/values-ta-rIN/strings.xml b/packages/Keyguard/res/values-ta-rIN/strings.xml
index 2e3f588..c80ddce 100644
--- a/packages/Keyguard/res/values-ta-rIN/strings.xml
+++ b/packages/Keyguard/res/values-ta-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"சிம் கார்டு பூட்டப்பட்டுள்ளது."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"சிம் கார்டு PUK ஆல் பூட்டப்பட்டது."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"சிம் கார்டின் தடையைநீக்குகிறது..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"வடிவம் மூலம் திறத்தல்."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin மூலம் திறத்தல்."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"கடவுச்சொல் மூலம் திறத்தல்."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"வடிவப் பகுதி."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ஸ்லைடு பகுதி."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN பகுதி"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"சிம் PIN பகுதி"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"சிம் PUK பகுதி"</string>
diff --git a/packages/Keyguard/res/values-te-rIN/strings.xml b/packages/Keyguard/res/values-te-rIN/strings.xml
index 6c521aa..a72a85b 100644
--- a/packages/Keyguard/res/values-te-rIN/strings.xml
+++ b/packages/Keyguard/res/values-te-rIN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"సిమ్ కార్డు లాక్ చేయబడింది."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"సిమ్ కార్డు PUK లాక్ చేయబడింది."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"సిమ్ కార్డును అన్‌లాక్ చేస్తోంది…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"నమూనా అన్‌లాక్."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"పిన్ అన్‌లాక్."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"పాస్‌వర్డ్ అన్‌లాక్."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"నమూనా ప్రాంతం."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"స్లయిడ్ ప్రాంతం."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN ప్రాంతం"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN ప్రాంతం"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK ప్రాంతం"</string>
diff --git a/packages/Keyguard/res/values-th/strings.xml b/packages/Keyguard/res/values-th/strings.xml
index 1799fe8..e094d35 100644
--- a/packages/Keyguard/res/values-th/strings.xml
+++ b/packages/Keyguard/res/values-th/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"ซิมการ์ดถูกล็อก"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"ซิมการ์ดถูกล็อกด้วย PUK"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"กำลังปลดล็อกซิมการ์ด…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"การปลดล็อกด้วยรูปแบบ"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"การปลดล็อกด้วย PIN"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"การปลดล็อกด้วยรหัสผ่าน"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"พื้นที่สำหรับรูปแบบ"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"พื้นที่สำหรับการเลื่อน"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"พื้นที่ PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"พื้นที่ PIN ของซิม"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"พื้นที่ PUK ของซิม"</string>
diff --git a/packages/Keyguard/res/values-tl/strings.xml b/packages/Keyguard/res/values-tl/strings.xml
index 39cad72..73492e2 100644
--- a/packages/Keyguard/res/values-tl/strings.xml
+++ b/packages/Keyguard/res/values-tl/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Naka-lock ang SIM card."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Naka-lock ang SIM card gamit ang PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ina-unlock ang SIM card…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Pag-unlock ng pattern."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pag-unlock ng pin."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Pag-unlock ng password."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Bahagi ng pattern."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Bahagi ng slide."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Lugar ng PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Lugar ng PIN ng SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Lugar ng PUK ng SIM"</string>
diff --git a/packages/Keyguard/res/values-tr/strings.xml b/packages/Keyguard/res/values-tr/strings.xml
index ffcbd12..3ef0705 100644
--- a/packages/Keyguard/res/values-tr/strings.xml
+++ b/packages/Keyguard/res/values-tr/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM kart kilitli."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM kart PUK kilidi devrede."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM kart kilidi açılıyor…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Desenle kilit açma."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin koduyla kilit açma."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Şifreyle kilit açma."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Desen alanı."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Kaydırma alanı."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN alanı"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN alanı"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK alanı"</string>
diff --git a/packages/Keyguard/res/values-uk/strings.xml b/packages/Keyguard/res/values-uk/strings.xml
index be19281..a508689 100644
--- a/packages/Keyguard/res/values-uk/strings.xml
+++ b/packages/Keyguard/res/values-uk/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM-карту заблоковано."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM-карту заблоковано PUK-кодом."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Розблокування SIM-карти…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Розблокування ключем."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Розблокування PIN-кодом."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Розблокування паролем."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Область ключа."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Область повзунка."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-код"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"PIN-код SIM-карти"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"PUK-код SIM-карти"</string>
diff --git a/packages/Keyguard/res/values-ur-rPK/strings.xml b/packages/Keyguard/res/values-ur-rPK/strings.xml
index 63f4e85..1070d58 100644
--- a/packages/Keyguard/res/values-ur-rPK/strings.xml
+++ b/packages/Keyguard/res/values-ur-rPK/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"‏SIM کارڈ مقفل ہے۔"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"‏SIM کارڈ PUK-مقفل ہے۔"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"‏SIM کارڈ غیر مقفل کیا جا رہا ہے…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"پیٹرن کے ذریعے غیر مقفل کریں۔"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"پن کے ذریعے غیر مقفل کریں۔"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"پاس ورڈ کے ذریعہ غیر مقفل کریں۔"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"پیٹرن کا علاقہ۔"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"سلائیڈ کرنے کا علاقہ۔"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"‏PIN کا علاقہ"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"‏SIM PIN کا علاقہ"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"‏SIM PUK کا علاقہ"</string>
diff --git a/packages/Keyguard/res/values-uz-rUZ/strings.xml b/packages/Keyguard/res/values-uz-rUZ/strings.xml
index ad71a56..a9df331 100644
--- a/packages/Keyguard/res/values-uz-rUZ/strings.xml
+++ b/packages/Keyguard/res/values-uz-rUZ/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM karta qulflangan."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM karta PUK kod bilan qulflangan."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"SIM karta qulfi ochilmoqda…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Grafik kalit bilan ochish."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin qulfini ochish."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Parolli qulfni ochish."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Grafik kalit chiziladigan hudud."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Maydonni silang"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN-kod maydoni"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM karta PIN kodi maydoni"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM karta PUK kodi maydoni"</string>
diff --git a/packages/Keyguard/res/values-vi/strings.xml b/packages/Keyguard/res/values-vi/strings.xml
index ad3da9f..c6d2bd8 100644
--- a/packages/Keyguard/res/values-vi/strings.xml
+++ b/packages/Keyguard/res/values-vi/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Thẻ SIM đã bị khóa."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Thẻ SIM đã bị khóa PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Đang mở khóa thẻ SIM…"</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Mở khóa bằng hình."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Mở khóa bằng mã pin."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Mở khóa bằng mật khẩu."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Khu vực hình."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Khu vực trượt."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Khu vực mã PIN"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Khu vực mã PIN của SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Khu vực PUK của SIM"</string>
diff --git a/packages/Keyguard/res/values-zh-rCN/strings.xml b/packages/Keyguard/res/values-zh-rCN/strings.xml
index 274d9e6..0723ab1 100644
--- a/packages/Keyguard/res/values-zh-rCN/strings.xml
+++ b/packages/Keyguard/res/values-zh-rCN/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM卡已被锁定。"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM卡已被PUK码锁定。"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解锁SIM卡..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"图案解锁。"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN码解锁。"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"密码解锁。"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"图案区域。"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"滑动区域。"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 码区域"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM 卡 PIN 码区域"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM 卡 PUK 码区域"</string>
diff --git a/packages/Keyguard/res/values-zh-rHK/strings.xml b/packages/Keyguard/res/values-zh-rHK/strings.xml
index 7d51154..5b1903b 100644
--- a/packages/Keyguard/res/values-zh-rHK/strings.xml
+++ b/packages/Keyguard/res/values-zh-rHK/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 卡處於鎖定狀態。"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 卡處於 PUK 鎖定狀態。"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解開上鎖的 SIM 卡..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"圖案解鎖。"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN 解鎖。"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"密碼解鎖。"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"圖案區域。"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"滑動區域。"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 區域"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM PIN 區域"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM PUK 區域"</string>
diff --git a/packages/Keyguard/res/values-zh-rTW/strings.xml b/packages/Keyguard/res/values-zh-rTW/strings.xml
index 50895f3..388f8e1 100644
--- a/packages/Keyguard/res/values-zh-rTW/strings.xml
+++ b/packages/Keyguard/res/values-zh-rTW/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"SIM 卡處於鎖定狀態。"</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"SIM 卡處於 PUK 鎖定狀態"</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"正在解除 SIM 卡鎖定..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"圖案解鎖。"</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN 解鎖。"</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"密碼解鎖。"</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"圖案區域。"</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"滑動區域。"</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"PIN 區"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"SIM 卡 PIN 區"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"SIM 卡 PUK 區"</string>
diff --git a/packages/Keyguard/res/values-zu/strings.xml b/packages/Keyguard/res/values-zu/strings.xml
index c5f2a85..a9b6263 100644
--- a/packages/Keyguard/res/values-zu/strings.xml
+++ b/packages/Keyguard/res/values-zu/strings.xml
@@ -46,11 +46,6 @@
     <string name="keyguard_sim_locked_message" msgid="6875773413306380902">"Ikhadi le-SIM likhiyiwe."</string>
     <string name="keyguard_sim_puk_locked_message" msgid="3747232467471801633">"Ikhadi le-SIM likhiywe nge-PUK."</string>
     <string name="keyguard_sim_unlock_progress_dialog_message" msgid="7975221805033614426">"Ivula ikhadi le-SIM..."</string>
-    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Ukuvula ngephethini."</string>
-    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Ukuvula ngephinikhodi."</string>
-    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Ukuvula ngephasiwedi."</string>
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Indawo yephethini."</string>
-    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Indawo yokushelelisa."</string>
     <string name="keyguard_accessibility_pin_area" msgid="7903959476607833485">"Indawo yephinikhodi"</string>
     <string name="keyguard_accessibility_sim_pin_area" msgid="3887780775111719336">"Indawo yephinikhodi ye-SIM"</string>
     <string name="keyguard_accessibility_sim_puk_area" msgid="1880823406954996207">"Indawo ye-SIM PUK"</string>
diff --git a/packages/Keyguard/res/values/strings.xml b/packages/Keyguard/res/values/strings.xml
index 09fec81..ff689aa 100644
--- a/packages/Keyguard/res/values/strings.xml
+++ b/packages/Keyguard/res/values/strings.xml
@@ -103,15 +103,6 @@
     <!-- Time format strings for fall-back clock widget -->
     <string name="keyguard_widget_24_hours_format" translatable="false">kk\uee01mm</string>
 
-    <string name="keyguard_accessibility_pattern_unlock">Pattern unlock.</string>
-    <!-- Accessibility description of the pin lock. [CHAR_LIMIT=none] -->
-    <string name="keyguard_accessibility_pin_unlock">Pin unlock.</string>
-    <!-- Accessibility description of the password lock. [CHAR_LIMIT=none] -->
-    <string name="keyguard_accessibility_password_unlock">Password unlock.</string>
-    <!-- Accessibility description of the unlock pattern area. [CHAR_LIMIT=none] -->
-    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">Pattern area.</string>
-    <!-- Accessibility description of the unlock slide area. [CHAR_LIMIT=none] -->
-    <string name="keyguard_accessibility_slide_area">Slide area.</string>
     <!-- Accessibility description of the PIN password view. [CHAR_LIMIT=none] -->
     <string name="keyguard_accessibility_pin_area">PIN area</string>
     <!-- Accessibility description of the SIM PIN password view. [CHAR_LIMIT=none] -->
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
index b75f529..ddccc14 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
@@ -42,16 +42,21 @@
  * Displays an alphanumeric (latin-1) key entry for the user to enter
  * an unlock password
  */
-
 public class KeyguardPasswordView extends KeyguardAbsKeyInputView
         implements KeyguardSecurityView, OnEditorActionListener, TextWatcher {
 
     private final boolean mShowImeAtScreenOn;
     private final int mDisappearYTranslation;
 
+    // A delay constant to be used in a workaround for the situation where InputMethodManagerService
+    // is not switched to the new user yet.
+    // TODO: Remove this by ensuring such a race condition never happens.
+    private static final int DELAY_MILLIS_TO_REEVALUATE_IME_SWITCH_ICON = 500;  // 500ms
+
     InputMethodManager mImm;
     private TextView mPasswordEntry;
     private TextViewInputDisabler mPasswordEntryDisabler;
+    private View mSwitchImeButton;
 
     private Interpolator mLinearOutSlowInInterpolator;
     private Interpolator mFastOutLinearInInterpolator;
@@ -141,12 +146,31 @@
         mPasswordEntry.requestFocus();
     }
 
+    private void updateSwitchImeButton() {
+        // If there's more than one IME, enable the IME switcher button
+        final boolean wasVisible = mSwitchImeButton.getVisibility() == View.VISIBLE;
+        final boolean shouldBeVisible = hasMultipleEnabledIMEsOrSubtypes(mImm, false);
+        if (wasVisible != shouldBeVisible) {
+            mSwitchImeButton.setVisibility(shouldBeVisible ? View.VISIBLE : View.GONE);
+        }
+
+        // TODO: Check if we still need this hack.
+        // If no icon is visible, reset the start margin on the password field so the text is
+        // still centered.
+        if (mSwitchImeButton.getVisibility() != View.VISIBLE) {
+            android.view.ViewGroup.LayoutParams params = mPasswordEntry.getLayoutParams();
+            if (params instanceof MarginLayoutParams) {
+                final MarginLayoutParams mlp = (MarginLayoutParams) params;
+                mlp.setMarginStart(0);
+                mPasswordEntry.setLayoutParams(params);
+            }
+        }
+    }
+
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
 
-        boolean imeOrDeleteButtonVisible = false;
-
         mImm = (InputMethodManager) getContext().getSystemService(
                 Context.INPUT_METHOD_SERVICE);
 
@@ -171,31 +195,29 @@
 
         mPasswordEntry.requestFocus();
 
-        // If there's more than one IME, enable the IME switcher button
-        View switchImeButton = findViewById(R.id.switch_ime_button);
-        if (switchImeButton != null && hasMultipleEnabledIMEsOrSubtypes(mImm, false)) {
-            switchImeButton.setVisibility(View.VISIBLE);
-            imeOrDeleteButtonVisible = true;
-            switchImeButton.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    mCallback.userActivity(); // Leave the screen on a bit longer
-                    // Do not show auxiliary subtypes in password lock screen.
-                    mImm.showInputMethodPicker(false /* showAuxiliarySubtypes */);
-                }
-            });
-        }
-
-        // If no icon is visible, reset the start margin on the password field so the text is
-        // still centered.
-        if (!imeOrDeleteButtonVisible) {
-            android.view.ViewGroup.LayoutParams params = mPasswordEntry.getLayoutParams();
-            if (params instanceof MarginLayoutParams) {
-                final MarginLayoutParams mlp = (MarginLayoutParams) params;
-                mlp.setMarginStart(0);
-                mPasswordEntry.setLayoutParams(params);
+        mSwitchImeButton = findViewById(R.id.switch_ime_button);
+        mSwitchImeButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mCallback.userActivity(); // Leave the screen on a bit longer
+                // Do not show auxiliary subtypes in password lock screen.
+                mImm.showInputMethodPicker(false /* showAuxiliarySubtypes */);
             }
-        }
+        });
+
+        // If there's more than one IME, enable the IME switcher button
+        updateSwitchImeButton();
+
+        // When we the current user is switching, InputMethodManagerService sometimes has not
+        // switched internal state yet here. As a quick workaround, we check the keyboard state
+        // again.
+        // TODO: Remove this workaround by ensuring such a race condition never happens.
+        postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                updateSwitchImeButton();
+            }
+        }, DELAY_MILLIS_TO_REEVALUATE_IME_SWITCH_ICON);
     }
 
     @Override
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
index 8d6e07e..108b466 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
@@ -20,13 +20,14 @@
 import android.graphics.Rect;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.view.View;
 
 /**
  * A Pin based Keyguard input view
  */
 public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView
-        implements View.OnKeyListener {
+        implements View.OnKeyListener, View.OnTouchListener {
 
     protected PasswordTextView mPasswordEntry;
     private View mOkButton;
@@ -185,10 +186,10 @@
 
         mOkButton = findViewById(R.id.key_enter);
         if (mOkButton != null) {
+            mOkButton.setOnTouchListener(this);
             mOkButton.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    doHapticKeyClick();
                     if (mPasswordEntry.isEnabled()) {
                         verifyPasswordAndUnlock();
                     }
@@ -199,6 +200,7 @@
 
         mDeleteButton = findViewById(R.id.delete_button);
         mDeleteButton.setVisibility(View.VISIBLE);
+        mDeleteButton.setOnTouchListener(this);
         mDeleteButton.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -206,7 +208,6 @@
                 if (mPasswordEntry.isEnabled()) {
                     mPasswordEntry.deleteLastChar();
                 }
-                doHapticKeyClick();
             }
         });
         mDeleteButton.setOnLongClickListener(new View.OnLongClickListener() {
@@ -237,6 +238,14 @@
     }
 
     @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
+            doHapticKeyClick();
+        }
+        return false;
+    }
+
+    @Override
     public boolean onKey(View v, int keyCode, KeyEvent event) {
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
             return onKeyDown(keyCode, event);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
index aa74940..8290842 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
@@ -49,11 +49,6 @@
     int PROMPT_REASON_AFTER_LOCKOUT = 5;
 
     /**
-     * Some auth is required because a single wrong credential has been tried.
-     */
-    int PROMPT_REASON_WRONG_CREDENTIAL = 6;
-
-    /**
      * Interface back to keyguard to tell it when security
      * @param callback
      */
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index dec1fd2..56f3741 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -50,6 +50,7 @@
 import android.os.Message;
 import android.os.RemoteException;
 import android.os.SystemClock;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -177,6 +178,7 @@
     private boolean mBouncer;
     private boolean mBootCompleted;
     private boolean mUserUnlocked;
+    private boolean mHasLockscreenWallpaper;
 
     // Device provisioning state
     private boolean mDeviceProvisioned;
@@ -259,10 +261,14 @@
                     handleFinishedGoingToSleep(msg.arg1);
                     break;
                 case MSG_STARTED_WAKING_UP:
+                    Trace.beginSection("KeyguardUpdateMonitor#handler MSG_STARTED_WAKING_UP");
                     handleStartedWakingUp();
+                    Trace.endSection();
                     break;
                 case MSG_FACE_UNLOCK_STATE_CHANGED:
+                    Trace.beginSection("KeyguardUpdateMonitor#handler MSG_FACE_UNLOCK_STATE_CHANGED");
                     handleFaceUnlockStateChanged(msg.arg1 != 0, msg.arg2);
+                    Trace.endSection();
                     break;
                 case MSG_SIM_SUBSCRIPTION_INFO_CHANGED:
                     handleSimSubscriptionInfoChanged();
@@ -277,7 +283,9 @@
                     handleScreenTurnedOn();
                     break;
                 case MSG_SCREEN_TURNED_OFF:
+                    Trace.beginSection("KeyguardUpdateMonitor#handler MSG_SCREEN_TURNED_ON");
                     handleScreenTurnedOff();
+                    Trace.endSection();
                     break;
             }
         }
@@ -399,6 +407,7 @@
     }
 
     private void onFingerprintAuthenticated(int userId) {
+        Trace.beginSection("KeyGuardUpdateMonitor#onFingerPrintAuthenticated");
         mUserFingerprintAuthenticated.put(userId, true);
 
         // If fingerprint unlocking is allowed, this event will lead to a Keyguard dismiss or to a
@@ -411,6 +420,7 @@
                 cb.onFingerprintAuthenticated(userId);
             }
         }
+        Trace.endSection();
     }
 
     private void handleFingerprintAuthFailed() {
@@ -435,7 +445,8 @@
         }
     }
 
-    private void handleFingerprintAuthenticated() {
+    private void handleFingerprintAuthenticated(int authUserId) {
+        Trace.beginSection("KeyGuardUpdateMonitor#handlerFingerPrintAuthenticated");
         try {
             final int userId;
             try {
@@ -444,6 +455,10 @@
                 Log.e(TAG, "Failed to get current user id: ", e);
                 return;
             }
+            if (userId != authUserId) {
+                Log.d(TAG, "Fingerprint authenticated for wrong user: " + authUserId);
+                return;
+            }
             if (isFingerprintDisabled(userId)) {
                 Log.d(TAG, "Fingerprint disabled by DPM for userId: " + userId);
                 return;
@@ -452,6 +467,7 @@
         } finally {
             setFingerprintRunningState(FINGERPRINT_STATE_STOPPED);
         }
+        Trace.endSection();
     }
 
     private void handleFingerprintHelp(int msgId, String helpString) {
@@ -690,8 +706,10 @@
                 mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_INFO_CHANGED,
                         intent.getIntExtra(Intent.EXTRA_USER_HANDLE, getSendingUserId()), 0));
             } else if (ACTION_FACE_UNLOCK_STARTED.equals(action)) {
+                Trace.beginSection("KeyguardUpdateMonitor.mBroadcastAllReceiver#onReceive ACTION_FACE_UNLOCK_STARTED");
                 mHandler.sendMessage(mHandler.obtainMessage(MSG_FACE_UNLOCK_STATE_CHANGED, 1,
                         getSendingUserId()));
+                Trace.endSection();
             } else if (ACTION_FACE_UNLOCK_STOPPED.equals(action)) {
                 mHandler.sendMessage(mHandler.obtainMessage(MSG_FACE_UNLOCK_STATE_CHANGED, 0,
                         getSendingUserId()));
@@ -731,7 +749,9 @@
 
         @Override
         public void onAuthenticationSucceeded(AuthenticationResult result) {
-            handleFingerprintAuthenticated();
+            Trace.beginSection("KeyguardUpdateMonitor#onAuthenticationSucceeded");
+            handleFingerprintAuthenticated(result.getUserId());
+            Trace.endSection();
         }
 
         @Override
@@ -906,6 +926,7 @@
     }
 
     protected void handleStartedWakingUp() {
+        Trace.beginSection("KeyguardUpdateMonitor#handleStartedWakingUp");
         updateFingerprintListeningState();
         final int count = mCallbacks.size();
         for (int i = 0; i < count; i++) {
@@ -914,6 +935,7 @@
                 cb.onStartedWakingUp();
             }
         }
+        Trace.endSection();
     }
 
     protected void handleStartedGoingToSleep(int arg1) {
@@ -1152,6 +1174,30 @@
     }
 
     /**
+     * Update the state whether Keyguard currently has a lockscreen wallpaper.
+     *
+     * @param hasLockscreenWallpaper Whether Keyguard has a lockscreen wallpaper.
+     */
+    public void setHasLockscreenWallpaper(boolean hasLockscreenWallpaper) {
+        if (hasLockscreenWallpaper != mHasLockscreenWallpaper) {
+            mHasLockscreenWallpaper = hasLockscreenWallpaper;
+            for (int i = mCallbacks.size() - 1; i >= 0; i--) {
+                KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+                if (cb != null) {
+                    cb.onHasLockscreenWallpaperChanged(hasLockscreenWallpaper);
+                }
+            }
+        }
+    }
+
+    /**
+     * @return Whether Keyguard has a lockscreen wallpaper.
+     */
+    public boolean hasLockscreenWallpaper() {
+        return mHasLockscreenWallpaper;
+    }
+
+    /**
      * Handle {@link #MSG_DPM_STATE_CHANGED}
      */
     protected void handleDevicePolicyManagerStateChanged() {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index bd6c51c..4a2d356 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -240,4 +240,9 @@
      * has changed.
      */
     public void onStrongAuthStateChanged(int userId) { }
+
+    /**
+     * Called when the state whether we have a lockscreen wallpaper has changed.
+     */
+    public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { }
 }
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/AddPrinterActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/AddPrinterActivity.java
index 2f58de5..c06e849 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/AddPrinterActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/AddPrinterActivity.java
@@ -737,9 +737,11 @@
         public void updateInstalledServices(List<PrintServiceInfo> services) {
             mInstalledServices.clear();
 
-            final int numServices = services.size();
-            for (int i = 0; i < numServices; i++) {
-                mInstalledServices.add(services.get(i).getComponentName().getPackageName());
+            if (services != null) {
+                final int numServices = services.size();
+                for (int i = 0; i < numServices; i++) {
+                    mInstalledServices.add(services.get(i).getComponentName().getPackageName());
+                }
             }
 
             filterRecommendations();
diff --git a/packages/SettingsLib/res/layout/usage_view.xml b/packages/SettingsLib/res/layout/usage_view.xml
index aa1a046..1d56668 100644
--- a/packages/SettingsLib/res/layout/usage_view.xml
+++ b/packages/SettingsLib/res/layout/usage_view.xml
@@ -71,9 +71,11 @@
         android:id="@+id/bottom_label_group"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingStart="@dimen/usage_graph_labels_width"
         android:orientation="horizontal">
-
+        <Space
+            android:id="@+id/bottom_label_space"
+            android:layout_width="@dimen/usage_graph_labels_width"
+            android:layout_height="wrap_content"/>
         <include android:id="@+id/label_start"
             layout="@layout/usage_side_label" />
 
diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml
index 299a5b7..d9473fa 100755
--- a/packages/SettingsLib/res/values/config.xml
+++ b/packages/SettingsLib/res/values/config.xml
@@ -19,4 +19,7 @@
 <resources>
     <!-- Configuration for automotive -->
     <bool name="enable_pbap_pce_profile">false</bool>
+
+    <!-- Default data warning level in mb -->
+    <integer name="default_data_warning_level_mb">2048</integer>
 </resources>
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
index 16bfc56..a22a051 100644
--- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
+++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
@@ -749,6 +749,7 @@
         static final int MSG_LOAD_ICONS = 3;
         static final int MSG_LOAD_SIZES = 4;
         static final int MSG_LOAD_LAUNCHER = 5;
+        static final int MSG_LOAD_HOME_APP = 6;
 
         boolean mRunning;
 
@@ -817,13 +818,33 @@
                         if (!mMainHandler.hasMessages(MainHandler.MSG_LOAD_ENTRIES_COMPLETE)) {
                             mMainHandler.sendEmptyMessage(MainHandler.MSG_LOAD_ENTRIES_COMPLETE);
                         }
-                        sendEmptyMessage(MSG_LOAD_LAUNCHER);
+                        sendEmptyMessage(MSG_LOAD_HOME_APP);
                     }
                 } break;
+                case MSG_LOAD_HOME_APP: {
+                    final List<ResolveInfo> homeActivities = new ArrayList<>();
+                    mPm.getHomeActivities(homeActivities);
+                    synchronized (mEntriesMap) {
+                        final int entryCount = mEntriesMap.size();
+                        for (int i = 0; i < entryCount; i++) {
+                            if (DEBUG_LOCKING) Log.v(TAG, "MSG_LOAD_HOME_APP acquired lock");
+                            final HashMap<String, AppEntry> userEntries = mEntriesMap.valueAt(i);
+                            for (ResolveInfo activity : homeActivities) {
+                                String packageName = activity.activityInfo.packageName;
+                                AppEntry entry = userEntries.get(packageName);
+                                if (entry != null) {
+                                    entry.isHomeApp = true;
+                                }
+                            }
+                            if (DEBUG_LOCKING) Log.v(TAG, "MSG_LOAD_HOME_APP releasing lock");
+                        }
+                    }
+                    sendEmptyMessage(MSG_LOAD_LAUNCHER);
+                }
+                break;
                 case MSG_LOAD_LAUNCHER: {
                     Intent launchIntent = new Intent(Intent.ACTION_MAIN, null)
                             .addCategory(Intent.CATEGORY_LAUNCHER);
-
                     for (int i = 0; i < mEntriesMap.size(); i++) {
                         int userId = mEntriesMap.keyAt(i);
                         // If we do not specify MATCH_DIRECT_BOOT_AWARE or
@@ -1119,6 +1140,11 @@
          */
         public boolean hasLauncherEntry;
 
+        /**
+         * Whether or not it's a Home app.
+         */
+        public boolean isHomeApp;
+
         public String getNormalizedLabel() {
             if (normalizedLabel != null) {
                 return normalizedLabel;
@@ -1310,6 +1336,8 @@
                 return true;
             } else if (entry.hasLauncherEntry) {
                 return true;
+            } else if ((entry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0 && entry.isHomeApp) {
+                return true;
             }
             return false;
         }
diff --git a/packages/SettingsLib/src/com/android/settingslib/graph/UsageView.java b/packages/SettingsLib/src/com/android/settingslib/graph/UsageView.java
index ee1821d..c6a45bc 100644
--- a/packages/SettingsLib/src/com/android/settingslib/graph/UsageView.java
+++ b/packages/SettingsLib/src/com/android/settingslib/graph/UsageView.java
@@ -71,10 +71,11 @@
                 layout.addView(labels);
                 // Set gravity.
                 labels.setGravity(Gravity.END);
-                // Swap the bottom label padding
+                // Swap the bottom space order.
                 LinearLayout bottomLabels = (LinearLayout) findViewById(R.id.bottom_label_group);
-                bottomLabels.setPadding(bottomLabels.getPaddingRight(), bottomLabels.getPaddingTop(),
-                        bottomLabels.getPaddingLeft(), bottomLabels.getPaddingBottom());
+                View bottomSpace = bottomLabels.findViewById(R.id.bottom_label_space);
+                bottomLabels.removeView(bottomSpace);
+                bottomLabels.addView(bottomSpace);
             } else if (gravity != Gravity.START) {
                 throw new IllegalArgumentException("Unsupported gravity " + gravity);
             }
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
index e53dd2f..994ea88 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
@@ -32,6 +32,8 @@
 import android.text.format.Time;
 import android.util.Log;
 
+import com.android.settingslib.R;
+
 import java.util.Date;
 import java.util.Locale;
 
@@ -41,12 +43,12 @@
 import static android.telephony.TelephonyManager.SIM_STATE_READY;
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
+import static android.net.TrafficStats.MB_IN_BYTES;
 
 public class DataUsageController {
+
     private static final String TAG = "DataUsageController";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
-    public static final long DEFAULT_WARNING_LEVEL = 2L * 1024 * 1024 * 1024;
     private static final int FIELDS = FIELD_RX_BYTES | FIELD_TX_BYTES;
     private static final StringBuilder PERIOD_BUILDER = new StringBuilder(50);
     private static final java.util.Formatter PERIOD_FORMATTER = new java.util.Formatter(
@@ -75,6 +77,14 @@
         mNetworkController = networkController;
     }
 
+    /**
+     * Returns the default warning level in bytes.
+     */
+    public long getDefaultWarningLevel() {
+        return MB_IN_BYTES
+                * mContext.getResources().getInteger(R.integer.default_data_warning_level_mb);
+    }
+
     private INetworkStatsSession getSession() {
         if (mSession == null) {
             try {
@@ -169,7 +179,7 @@
                 usage.limitLevel = policy.limitBytes > 0 ? policy.limitBytes : 0;
                 usage.warningLevel = policy.warningBytes > 0 ? policy.warningBytes : 0;
             } else {
-                usage.warningLevel = DEFAULT_WARNING_LEVEL;
+                usage.warningLevel = getDefaultWarningLevel();
             }
             if (usage != null && mNetworkController != null) {
                 usage.carrier = mNetworkController.getMobileDataNetworkName();
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index f7e9541..fad102f 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -155,6 +155,9 @@
     <!-- Default for Settings.Secure.LONG_PRESS_TIMEOUT_MILLIS -->
     <integer name="def_long_press_timeout_millis">400</integer>
 
+    <!-- Default for Settings.Secure.MULTI_PRESS_TIMEOUT -->
+    <integer name="def_multi_press_timeout_millis">300</integer>
+
     <!-- Default for Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD -->
     <bool name="def_show_ime_with_hard_keyboard">false</bool>
 
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/EventLogTags.logtags b/packages/SettingsProvider/src/com/android/providers/settings/EventLogTags.logtags
index 298d776..7eff16b 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/EventLogTags.logtags
+++ b/packages/SettingsProvider/src/com/android/providers/settings/EventLogTags.logtags
@@ -1,5 +1,6 @@
-# See system/core/logcat/e for a description of the format of this file.
+# See system/core/logcat/event.logtags for a description of the format of this file.
 
 option java_package com.android.providers.settings;
 
 52100 unsupported_settings_query (uri|3),(selection|3),(whereArgs|3)
+52101 persist_setting_error (message|3)
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index d27f1f8..0f3a7fb 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -544,7 +544,7 @@
                 final int userCount = users.size();
                 for (int i = 0; i < userCount; i++) {
                     UserInfo user = users.get(i);
-                    dumpForUser(user.id, pw);
+                    dumpForUserLocked(user.id, pw);
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -552,12 +552,16 @@
         }
     }
 
-    private void dumpForUser(int userId, PrintWriter pw) {
+    private void dumpForUserLocked(int userId, PrintWriter pw) {
         if (userId == UserHandle.USER_SYSTEM) {
             pw.println("GLOBAL SETTINGS (user " + userId + ")");
             Cursor globalCursor = getAllGlobalSettings(ALL_COLUMNS);
             dumpSettings(globalCursor, pw);
             pw.println();
+
+            SettingsState globalSettings = mSettingsRegistry.getSettingsLocked(
+                    SETTINGS_TYPE_GLOBAL, UserHandle.USER_SYSTEM);
+            globalSettings.dumpHistoricalOperations(pw);
         }
 
         pw.println("SECURE SETTINGS (user " + userId + ")");
@@ -565,10 +569,18 @@
         dumpSettings(secureCursor, pw);
         pw.println();
 
+        SettingsState secureSettings = mSettingsRegistry.getSettingsLocked(
+                SETTINGS_TYPE_SECURE, userId);
+        secureSettings.dumpHistoricalOperations(pw);
+
         pw.println("SYSTEM SETTINGS (user " + userId + ")");
         Cursor systemCursor = getAllSystemSettings(userId, ALL_COLUMNS);
         dumpSettings(systemCursor, pw);
         pw.println();
+
+        SettingsState systemSettings = mSettingsRegistry.getSettingsLocked(
+                SETTINGS_TYPE_SYSTEM, userId);
+        systemSettings.dumpHistoricalOperations(pw);
     }
 
     private void dumpSettings(Cursor cursor, PrintWriter pw) {
@@ -2090,7 +2102,7 @@
         }
 
         private final class UpgradeController {
-            private static final int SETTINGS_VERSION = 130;
+            private static final int SETTINGS_VERSION = 131;
 
             private final int mUserId;
 
@@ -2398,6 +2410,22 @@
                     currentVersion = 130;
                 }
 
+                if (currentVersion == 130) {
+                    // Initialize new multi-press timeout to default value
+                    final SettingsState systemSecureSettings = getSecureSettingsLocked(userId);
+                    final String oldValue = systemSecureSettings.getSettingLocked(
+                            Settings.Secure.MULTI_PRESS_TIMEOUT).getValue();
+                    if (TextUtils.equals(null, oldValue)) {
+                        systemSecureSettings.insertSettingLocked(
+                                Settings.Secure.MULTI_PRESS_TIMEOUT,
+                                String.valueOf(getContext().getResources().getInteger(
+                                        R.integer.def_multi_press_timeout_millis)),
+                                SettingsState.SYSTEM_PACKAGE_NAME);
+                    }
+
+                    currentVersion = 131;
+                }
+
                 if (currentVersion != newVersion) {
                     Slog.w("SettingsProvider", "warning: upgrading settings database to version "
                             + newVersion + " left it at "
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
index 4710d5a..bc91545 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
@@ -16,6 +16,7 @@
 
 package com.android.providers.settings;
 
+import android.os.Build;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
@@ -26,6 +27,7 @@
 import android.util.AtomicFile;
 import android.util.Base64;
 import android.util.Slog;
+import android.util.TimeUtils;
 import android.util.Xml;
 import com.android.internal.annotations.GuardedBy;
 import libcore.io.IoUtils;
@@ -39,6 +41,7 @@
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -60,7 +63,7 @@
 
     private static final String LOG_TAG = "SettingsState";
 
-    static final int SETTINGS_VERSOIN_NEW_ENCODING = 121;
+    static final int SETTINGS_VERSION_NEW_ENCODING = 121;
 
     private static final long WRITE_SETTINGS_DELAY_MILLIS = 200;
     private static final long MAX_WRITE_SETTINGS_DELAY_MILLIS = 2000;
@@ -93,6 +96,12 @@
     // This was used in version 120 and before.
     private static final String NULL_VALUE_OLD_STYLE = "null";
 
+    private static final int HISTORICAL_OPERATION_COUNT = 20;
+    private static final String HISTORICAL_OPERATION_UPDATE = "update";
+    private static final String HISTORICAL_OPERATION_DELETE = "delete";
+    private static final String HISTORICAL_OPERATION_PERSIST = "persist";
+    private static final String HISTORICAL_OPERATION_INITIALIZE = "initialize";
+
     private final Object mLock;
 
     private final Handler mHandler;
@@ -117,6 +126,9 @@
     };
 
     @GuardedBy("mLock")
+    private final List<HistoricalOperation> mHistoricalOperations;
+
+    @GuardedBy("mLock")
     public final int mKey;
 
     @GuardedBy("mLock")
@@ -134,6 +146,9 @@
     @GuardedBy("mLock")
     private long mNextId;
 
+    @GuardedBy("mLock")
+    private int mNextHistoricalOpIdx;
+
     public SettingsState(Object lock, File file, int key, int maxBytesPerAppPackage,
             Looper looper) {
         // It is important that we use the same lock as the settings provider
@@ -150,6 +165,10 @@
             mMaxBytesPerAppPackage = maxBytesPerAppPackage;
             mPackageToMemoryUsage = null;
         }
+
+        mHistoricalOperations = Build.IS_DEBUGGABLE
+                ? new ArrayList<>(HISTORICAL_OPERATION_COUNT) : null;
+
         synchronized (mLock) {
             readStateSyncLocked();
         }
@@ -238,16 +257,20 @@
 
         Setting oldState = mSettings.get(name);
         String oldValue = (oldState != null) ? oldState.value : null;
+        Setting newState;
 
         if (oldState != null) {
             if (!oldState.update(value, packageName)) {
                 return false;
             }
+            newState = oldState;
         } else {
-            Setting state = new Setting(name, value, packageName);
-            mSettings.put(name, state);
+            newState = new Setting(name, value, packageName);
+            mSettings.put(name, newState);
         }
 
+        addHistoricalOperationLocked(HISTORICAL_OPERATION_UPDATE, newState);
+
         updateMemoryUsagePerPackageLocked(packageName, oldValue, value);
 
         scheduleWriteIfNeededLocked();
@@ -271,6 +294,8 @@
 
         updateMemoryUsagePerPackageLocked(oldState.packageName, oldState.value, null);
 
+        addHistoricalOperationLocked(HISTORICAL_OPERATION_DELETE, oldState);
+
         scheduleWriteIfNeededLocked();
 
         return true;
@@ -290,6 +315,51 @@
         }
     }
 
+    private void addHistoricalOperationLocked(String type, Setting setting) {
+        if (mHistoricalOperations == null) {
+            return;
+        }
+        HistoricalOperation operation = new HistoricalOperation(
+                SystemClock.elapsedRealtime(), type,
+                setting != null ? new Setting(setting) : null);
+        if (mNextHistoricalOpIdx >= mHistoricalOperations.size()) {
+            mHistoricalOperations.add(operation);
+        } else {
+            mHistoricalOperations.set(mNextHistoricalOpIdx, operation);
+        }
+        mNextHistoricalOpIdx++;
+        if (mNextHistoricalOpIdx >= HISTORICAL_OPERATION_COUNT) {
+            mNextHistoricalOpIdx = 0;
+        }
+    }
+
+    public void dumpHistoricalOperations(PrintWriter pw) {
+        synchronized (mLock) {
+            if (mHistoricalOperations == null) {
+                return;
+            }
+            pw.println("Historical operations");
+            final int operationCount = mHistoricalOperations.size();
+            for (int i = 0; i < operationCount; i++) {
+                int index = mNextHistoricalOpIdx - 1 - i;
+                if (index < 0) {
+                    index = operationCount + index;
+                }
+                HistoricalOperation operation = mHistoricalOperations.get(index);
+                pw.print(TimeUtils.formatForLogging(operation.mTimestamp));
+                pw.print(" ");
+                pw.print(operation.mOperation);
+                if (operation.mSetting != null) {
+                    pw.print("  ");
+                    pw.print(operation.mSetting);
+                }
+                pw.println();
+            }
+            pw.println();
+            pw.println();
+        }
+    }
+
     private void updateMemoryUsagePerPackageLocked(String packageName, String oldValue,
             String newValue) {
         if (mMaxBytesPerAppPackage == MAX_BYTES_PER_APP_PACKAGE_UNLIMITED) {
@@ -407,6 +477,10 @@
             serializer.endDocument();
             destination.finishWrite(out);
 
+            synchronized (mLock) {
+                addHistoricalOperationLocked(HISTORICAL_OPERATION_PERSIST, null);
+            }
+
             if (DEBUG_PERSISTENCE) {
                 Slog.i(LOG_TAG, "[PERSIST END]");
             }
@@ -435,7 +509,7 @@
 
     static void setValueAttribute(int version, XmlSerializer serializer, String value)
             throws IOException {
-        if (version >= SETTINGS_VERSOIN_NEW_ENCODING) {
+        if (version >= SETTINGS_VERSION_NEW_ENCODING) {
             if (value == null) {
                 // Null value -> No ATTR_VALUE nor ATTR_VALUE_BASE64.
             } else if (isBinary(value)) {
@@ -454,7 +528,7 @@
     }
 
     private String getValueAttribute(XmlPullParser parser) {
-        if (mVersion >= SETTINGS_VERSOIN_NEW_ENCODING) {
+        if (mVersion >= SETTINGS_VERSION_NEW_ENCODING) {
             final String value = parser.getAttributeValue(null, ATTR_VALUE);
             if (value != null) {
                 return value;
@@ -479,22 +553,26 @@
     private void readStateSyncLocked() {
         FileInputStream in;
         if (!mStatePersistFile.exists()) {
+            Slog.i(LOG_TAG, "No settings state " + mStatePersistFile);
+            addHistoricalOperationLocked(HISTORICAL_OPERATION_INITIALIZE, null);
             return;
         }
         try {
             in = new AtomicFile(mStatePersistFile).openRead();
         } catch (FileNotFoundException fnfe) {
-            Slog.i(LOG_TAG, "No settings state");
+            String message = "No settings state " + mStatePersistFile;
+            Slog.wtf(LOG_TAG, message);
+            Slog.i(LOG_TAG, message);
             return;
         }
         try {
             XmlPullParser parser = Xml.newPullParser();
             parser.setInput(in, StandardCharsets.UTF_8.name());
             parseStateLocked(parser);
-
         } catch (XmlPullParserException | IOException e) {
-            throw new IllegalStateException("Failed parsing settings file: "
-                    + mStatePersistFile , e);
+            String message = "Failed parsing settings file: " + mStatePersistFile;
+            Slog.wtf(LOG_TAG, message);
+            throw new IllegalStateException(message , e);
         } finally {
             IoUtils.closeQuietly(in);
         }
@@ -567,6 +645,19 @@
         }
     }
 
+    private class HistoricalOperation {
+        final long mTimestamp;
+        final String mOperation;
+        final Setting mSetting;
+
+        public HistoricalOperation(long timestamp,
+                String operation, Setting setting) {
+            mTimestamp = timestamp;
+            mOperation = operation;
+            mSetting = setting;
+        }
+    }
+
     class Setting {
         private String name;
         private String value;
@@ -629,6 +720,10 @@
             this.id = String.valueOf(mNextId++);
             return true;
         }
+
+        public String toString() {
+            return "Setting{name=" + value + " from " + packageName + "}";
+        }
     }
 
     /**
diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
index b5bd8ad..9964467 100644
--- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
+++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
@@ -15,7 +15,6 @@
  */
 package com.android.providers.settings;
 
-import android.os.Handler;
 import android.os.Looper;
 import android.test.AndroidTestCase;
 import android.util.Xml;
@@ -99,10 +98,10 @@
         checkWriteSingleSetting(serializer, null, null);
         checkWriteSingleSetting(serializer, CRAZY_STRING, null);
         SettingsState.writeSingleSetting(
-                SettingsState.SETTINGS_VERSOIN_NEW_ENCODING,
+                SettingsState.SETTINGS_VERSION_NEW_ENCODING,
                 serializer, null, "k", "v", "package");
         SettingsState.writeSingleSetting(
-                SettingsState.SETTINGS_VERSOIN_NEW_ENCODING,
+                SettingsState.SETTINGS_VERSION_NEW_ENCODING,
                 serializer, "1", "k", "v", null);
     }
 
@@ -115,7 +114,7 @@
             String key, String value) throws Exception {
         // Make sure the XML serializer won't crash.
         SettingsState.writeSingleSetting(
-                SettingsState.SETTINGS_VERSOIN_NEW_ENCODING,
+                SettingsState.SETTINGS_VERSION_NEW_ENCODING,
                 serializer, "1", key, value, "package");
     }
 
@@ -129,7 +128,7 @@
 
         final SettingsState ssWriter = new SettingsState(lock, file, 1,
                 SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED, Looper.getMainLooper());
-        ssWriter.setVersionLocked(SettingsState.SETTINGS_VERSOIN_NEW_ENCODING);
+        ssWriter.setVersionLocked(SettingsState.SETTINGS_VERSION_NEW_ENCODING);
 
         ssWriter.insertSettingLocked("k1", "\u0000", "package");
         ssWriter.insertSettingLocked("k2", "abc", "p2");
diff --git a/packages/Shell/res/values-pl/strings.xml b/packages/Shell/res/values-pl/strings.xml
index 73cd181..9734b2e 100644
--- a/packages/Shell/res/values-pl/strings.xml
+++ b/packages/Shell/res/values-pl/strings.xml
@@ -21,7 +21,7 @@
     <string name="bugreport_finished_title" msgid="4429132808670114081">"Raport o błędzie <xliff:g id="ID">#%d</xliff:g> został zapisany"</string>
     <string name="bugreport_updating_title" msgid="4423539949559634214">"Dodaję szczegóły do raportu o błędzie"</string>
     <string name="bugreport_updating_wait" msgid="3322151947853929470">"Czekaj..."</string>
-    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie będzie się pojawiał na telefonie przez chwilę"</string>
+    <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie będzie pojawiał się na telefonie przez chwilę"</string>
     <string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"Kliknij, by udostępnić raport o błędzie"</string>
     <string name="bugreport_finished_pending_screenshot_text" product="watch" msgid="1474435374470177193">"Kliknij, by udostępnić raport o błędzie bez zrzutu ekranu, lub poczekaj, aż zostanie on wygenerowany"</string>
     <string name="bugreport_finished_pending_screenshot_text" product="default" msgid="1474435374470177193">"Kliknij, by udostępnić raport o błędzie bez zrzutu ekranu, lub poczekaj, aż zostanie on wygenerowany"</string>
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index f04df4b..5a75f40 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -60,6 +60,8 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Configuration;
+import android.graphics.Bitmap;
+import android.hardware.display.DisplayManagerGlobal;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
@@ -78,6 +80,8 @@
 import android.util.Log;
 import android.util.Patterns;
 import android.util.SparseArray;
+import android.view.Display;
+import android.view.KeyEvent;
 import android.view.View;
 import android.view.WindowManager;
 import android.view.View.OnFocusChangeListener;
@@ -771,7 +775,6 @@
             }
             msg = mContext.getString(R.string.bugreport_screenshot_taken);
         } else {
-            // TODO: try again using Framework APIs instead of relying on screencap.
             msg = mContext.getString(R.string.bugreport_screenshot_failed);
             Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
         }
@@ -1350,22 +1353,24 @@
     /**
      * Takes a screenshot and save it to the given location.
      */
-    private static boolean takeScreenshot(Context context, String screenshotFile) {
-        final ProcessBuilder screencap = new ProcessBuilder()
-                .command("/system/bin/screencap", "-p", screenshotFile);
-        Log.d(TAG, "Taking screenshot using " + screencap.command());
-        try {
-            final int exitValue = screencap.start().waitFor();
-            if (exitValue == 0) {
+    private static boolean takeScreenshot(Context context, String path) {
+        final Bitmap bitmap = Screenshooter.takeScreenshot();
+        if (bitmap == null) {
+            return false;
+        }
+        boolean status;
+        try (final FileOutputStream fos = new FileOutputStream(path)) {
+            if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)) {
                 ((Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE)).vibrate(150);
                 return true;
+            } else {
+                Log.e(TAG, "Failed to save screenshot on " + path);
             }
-            Log.e(TAG, "screencap (" + screencap.command() + ") failed: " + exitValue);
-        } catch (IOException e) {
-            Log.e(TAG, "screencap (" + screencap.command() + ") failed", e);
-        } catch (InterruptedException e) {
-            Log.w(TAG, "Thread interrupted while screencap still running");
-            Thread.currentThread().interrupt();
+        } catch (IOException e ) {
+            Log.e(TAG, "Failed to save screenshot on " + path, e);
+            return false;
+        } finally {
+            bitmap.recycle();
         }
         return false;
     }
diff --git a/packages/Shell/src/com/android/shell/Screenshooter.java b/packages/Shell/src/com/android/shell/Screenshooter.java
new file mode 100644
index 0000000..ce0fbbc
--- /dev/null
+++ b/packages/Shell/src/com/android/shell/Screenshooter.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2016 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.shell;
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Point;
+import android.hardware.display.DisplayManagerGlobal;
+import android.os.Binder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.view.Display;
+import android.view.Surface;
+import android.view.SurfaceControl;
+
+/**
+ * Helper class used to take screenshots.
+ *
+ * TODO: logic below was copied and pasted from UiAutomation; it should be refactored into a common
+ * component that could be used by both (Shell and UiAutomation).
+ */
+final class Screenshooter {
+
+    private static final String TAG = "Screenshooter";
+
+    /** Rotation constant: Freeze rotation to 0 degrees (natural orientation) */
+    public static final int ROTATION_FREEZE_0 = Surface.ROTATION_0;
+
+    /** Rotation constant: Freeze rotation to 90 degrees . */
+    public static final int ROTATION_FREEZE_90 = Surface.ROTATION_90;
+
+    /** Rotation constant: Freeze rotation to 180 degrees . */
+    public static final int ROTATION_FREEZE_180 = Surface.ROTATION_180;
+
+    /** Rotation constant: Freeze rotation to 270 degrees . */
+    public static final int ROTATION_FREEZE_270 = Surface.ROTATION_270;
+
+    /**
+     * Takes a screenshot.
+     *
+     * @return The screenshot bitmap on success, null otherwise.
+     */
+    static Bitmap takeScreenshot() {
+        Display display = DisplayManagerGlobal.getInstance()
+                .getRealDisplay(Display.DEFAULT_DISPLAY);
+        Point displaySize = new Point();
+        display.getRealSize(displaySize);
+        final int displayWidth = displaySize.x;
+        final int displayHeight = displaySize.y;
+
+        final float screenshotWidth;
+        final float screenshotHeight;
+
+        final int rotation = display.getRotation();
+        switch (rotation) {
+            case ROTATION_FREEZE_0: {
+                screenshotWidth = displayWidth;
+                screenshotHeight = displayHeight;
+            } break;
+            case ROTATION_FREEZE_90: {
+                screenshotWidth = displayHeight;
+                screenshotHeight = displayWidth;
+            } break;
+            case ROTATION_FREEZE_180: {
+                screenshotWidth = displayWidth;
+                screenshotHeight = displayHeight;
+            } break;
+            case ROTATION_FREEZE_270: {
+                screenshotWidth = displayHeight;
+                screenshotHeight = displayWidth;
+            } break;
+            default: {
+                throw new IllegalArgumentException("Invalid rotation: "
+                        + rotation);
+            }
+        }
+
+        Log.d(TAG, "Taking screenshot of dimensions " + displayWidth + " x " + displayHeight);
+        // Take the screenshot
+        Bitmap screenShot =
+                SurfaceControl.screenshot((int) screenshotWidth, (int) screenshotHeight);
+        if (screenShot == null) {
+            Log.e(TAG, "Failed to take screenshot of dimensions " + screenshotWidth + " x "
+                    + screenshotHeight);
+            return null;
+        }
+
+        // Rotate the screenshot to the current orientation
+        if (rotation != ROTATION_FREEZE_0) {
+            Bitmap unrotatedScreenShot = Bitmap.createBitmap(displayWidth, displayHeight,
+                    Bitmap.Config.ARGB_8888);
+            Canvas canvas = new Canvas(unrotatedScreenShot);
+            canvas.translate(unrotatedScreenShot.getWidth() / 2,
+                    unrotatedScreenShot.getHeight() / 2);
+            canvas.rotate(getDegreesForRotation(rotation));
+            canvas.translate(- screenshotWidth / 2, - screenshotHeight / 2);
+            canvas.drawBitmap(screenShot, 0, 0, null);
+            canvas.setBitmap(null);
+            screenShot.recycle();
+            screenShot = unrotatedScreenShot;
+        }
+
+        // Optimization
+        screenShot.setHasAlpha(false);
+
+        return screenShot;
+    }
+
+    private static float getDegreesForRotation(int value) {
+        switch (value) {
+            case Surface.ROTATION_90: {
+                return 360f - 90f;
+            }
+            case Surface.ROTATION_180: {
+                return 360f - 180f;
+            }
+            case Surface.ROTATION_270: {
+                return 360f - 270f;
+            } default: {
+                return 0;
+            }
+        }
+    }
+
+}
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_carmode.png
index 6242084..95e5778 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_carmode.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_carmode.png
index 1b37a47..6421146 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_carmode.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_carmode.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_carmode.png
index 9e05758..151d5fe 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_carmode.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_carmode.png
index 2fcfdde..b954aa7 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_carmode.png
index 48708a5..61d5db6 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_carmode.png
index 3d73184..7b98c1f 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_carmode.png
index 786935d..aad1320 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_carmode.png
index e4bd4bc..754b2d9 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_carmode.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_carmode.png
index 94ccf79..873ed7f 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_carmode.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_carmode.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_carmode.png
index 980bbbc..7696d87 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_carmode.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_carmode.png
index 201be3b..c98f55e 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_carmode.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_carmode.png
index 2770d62..187a566 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_carmode.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_carmode.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_carmode.png
index 8ac6493..c66f8be 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_carmode.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_carmode.png
index 8e3678b..3a3a119 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_carmode.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_carmode.png
index 6c7cb05..7198c82 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_carmode.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_carmode.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_carmode.png
index ea2b108..b1fc02e 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_carmode.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_carmode.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_carmode.png
index 3e11023..c06bfda 100644
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_carmode.png
+++ b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_carmode.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_carmode.png
index fe8213d..a8c76bf 100644
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_carmode.png
+++ b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_carmode.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_carmode.png
index c117efd..b798e3d 100644
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_carmode.png
+++ b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_carmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml b/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
index 67e6a01..e207cb3 100644
--- a/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
+++ b/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
@@ -98,11 +98,11 @@
             <path
                 android:name="path_2"
                 android:pathData="M 1.35900878906,6.76104736328 c 0.0,0.0 -2.69998168945,0.0 -2.69998168945,0.0 c 0.0,0.0 0.0,-2.69995117188 0.0,-2.69995117188 c 0.0,0.0 2.69998168945,0.0 2.69998168945,0.0 c 0.0,0.0 0.0,2.69995117188 0.0,2.69995117188 Z"
-                android:fillColor="#FFF2501D" />
+                android:fillColor="@*android:color/system_error" />
             <path
                 android:name="path_1"
                 android:pathData="M 1.35363769531,1.36633300781 c 0.0,0.0 -2.69998168945,0.0 -2.69998168945,0.0 c 0.0,0.0 0.0,-8.09997558594 0.0,-8.09997558594 c 0.0,0.0 2.69998168945,0.0 2.69998168945,0.0 c 0.0,0.0 0.0,8.09997558594 0.0,8.09997558594 Z"
-                android:fillColor="#FFF2501D" />
+                android:fillColor="@*android:color/system_error" />
         </group>
     </group>
     <group
@@ -117,7 +117,7 @@
             <path
                 android:name="path_3"
                 android:pathData="M 0.0101470947266,10.8087768555 c -5.96701049805,0.0 -10.8000183105,-4.8330078125 -10.8000183105,-10.8000488281 c 0.0,-5.96691894531 4.8330078125,-10.7999267578 10.8000183105,-10.7999267578 c 5.96697998047,0.0 10.799987793,4.8330078125 10.799987793,10.7999267578 c 0.0,5.96704101562 -4.8330078125,10.8000488281 -10.799987793,10.8000488281 Z"
-                android:strokeColor="#FFF2501D"
+                android:strokeColor="@*android:color/system_error"
                 android:strokeWidth="2"
                 android:trimPathStart="0"
                 android:trimPathEnd="1" />
diff --git a/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml b/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
index bbadec1..2b4babc 100644
--- a/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
+++ b/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
@@ -96,7 +96,7 @@
                 <path
                     android:name="ridge_5_path_0"
                     android:pathData="M -25.3591003418,-24.4138946533 c -0.569000244141,0.106399536133 -1.12660217285,0.140594482422 -1.45460510254,0.140594482422 c -1.29689025879,0.0 -2.53239440918,-0.343307495117 -3.62019348145,-1.12400817871 c -1.67700195312,-1.20349121094 -2.76950073242,-3.17008972168 -2.76950073242,-5.39189147949"
-                    android:strokeColor="#FFF2501D"
+                    android:strokeColor="@*android:color/system_error"
                     android:strokeWidth="1.45"
                     android:strokeLineCap="round"
                     android:trimPathEnd="0" />
@@ -106,7 +106,7 @@
                 <path
                     android:name="ridge_7_path_0"
                     android:pathData="M -36.1409912109,-21.7843475342 c -1.00540161133,-1.19300842285 -1.57499694824,-1.9181060791 -2.36520385742,-3.50170898438 c -0.827560424805,-1.65869140625 -1.31352233887,-3.49159240723 -1.31352233887,-5.48489379883 c 0.0,-3.66279602051 2.96932983398,-6.63220214844 6.63221740723,-6.63220214844 c 3.6628112793,0.0 6.63220214844,2.96940612793 6.63220214844,6.63220214844"
-                    android:strokeColor="#FFF2501D"
+                    android:strokeColor="@*android:color/system_error"
                     android:strokeWidth="1.45"
                     android:strokeLineCap="round"
                     android:trimPathEnd="0" />
@@ -116,7 +116,7 @@
                 <path
                     android:name="ridge_6_path_0"
                     android:pathData="M -42.1907958984,-25.6756896973 c -0.758117675781,-2.14370727539 -0.896545410156,-3.86891174316 -0.896545410156,-5.12921142578 c 0.0,-1.46069335938 0.249176025391,-2.84799194336 0.814682006836,-4.09748840332 c 1.56153869629,-3.45030212402 5.03434753418,-5.85076904297 9.0679473877,-5.85076904297 c 5.49430847168,0.0 9.94830322266,4.4539642334 9.94830322266,9.94825744629 c 0.0,1.83151245117 -1.48460388184,3.31610107422 -3.31610107422,3.31610107422 c -1.83149719238,0.0 -3.31610107422,-1.48469543457 -3.31610107422,-3.31610107422 c 0.0,-1.83139038086 -1.48458862305,-3.31610107422 -3.31610107422,-3.31610107422 c -1.83149719238,0.0 -3.31610107422,1.48471069336 -3.31610107422,3.31610107422 c 0.0,2.57020568848 0.989517211914,4.88710021973 2.60510253906,6.5865020752 c 1.22210693359,1.28550720215 2.43139648438,2.09950256348 4.47590637207,2.69030761719"
-                    android:strokeColor="#FFF2501D"
+                    android:strokeColor="@*android:color/system_error"
                     android:strokeWidth="1.45"
                     android:strokeLineCap="round"
                     android:trimPathEnd="0" />
@@ -126,7 +126,7 @@
                 <path
                     android:name="ridge_2_path_0"
                     android:pathData="M -44.0646514893,-38.1672973633 c 1.19026184082,-1.77430725098 2.67503356934,-3.24531555176 4.55902099609,-4.27278137207 c 1.88395690918,-1.0274810791 4.04466247559,-1.61137390137 6.34175109863,-1.61137390137 c 2.28761291504,0.0 4.43991088867,0.579071044922 6.31831359863,1.59861755371 c 1.8784942627,1.01954650879 3.36059570312,2.4796295166 4.55279541016,4.24153137207"
-                    android:strokeColor="#FFF2501D"
+                    android:strokeColor="@*android:color/system_error"
                     android:strokeWidth="1.45"
                     android:strokeLineCap="round"
                     android:trimPathStart="1" />
@@ -138,7 +138,7 @@
                 <path
                     android:name="ridge_1_path_0"
                     android:pathData="M 71.7812347412,97.0507202148 c -2.27149963379,-1.31344604492 -4.71360778809,-2.07006835938 -7.56221008301,-2.07006835938 c -2.84869384766,0.0 -5.23320007324,0.779556274414 -7.34411621094,2.07006835938"
-                    android:strokeColor="#FFF2501D"
+                    android:strokeColor="@*android:color/system_error"
                     android:strokeWidth="1.45"
                     android:strokeLineCap="round"
                     android:trimPathEnd="0" />
@@ -157,11 +157,11 @@
             <path
                 android:name="path_2"
                 android:pathData="M -1.3705291748,4.06730651855 c 0.0,0.0 0.036376953125,-0.0102386474609 0.036376953125,-0.0102386474609 c 0.0,0.0 -0.00682067871094,0.0040283203125 -0.00682067871093,0.0040283203125 c 0.0,0.0 -0.0161437988281,0.00479125976562 -0.0161437988281,0.00479125976563 c 0.0,0.0 -0.0134124755859,0.00141906738281 -0.0134124755859,0.00141906738281 Z"
-                android:fillColor="#FFF2501D" />
+                android:fillColor="@*android:color/system_error" />
             <path
                 android:name="path_1"
                 android:pathData="M -1.3737487793,-6.77532958984 c 0.0,0.0 0.00604248046875,0.0166625976562 0.00604248046876,0.0166625976562 c 0.0,0.0 0.0213623046875,0.0250244140625 0.0213623046875,0.0250244140625 c 0.0,0.0 -0.00604248046875,-0.0166625976562 -0.00604248046876,-0.0166625976562 c 0.0,0.0 -0.0213623046875,-0.0250244140625 -0.0213623046875,-0.0250244140625 Z"
-                android:fillColor="#FFF2501D" />
+                android:fillColor="@*android:color/system_error" />
         </group>
     </group>
     <group
@@ -176,7 +176,7 @@
             <path
                 android:name="path_3"
                 android:pathData="M 0.0101470947266,10.8087768555 c -5.96701049805,0.0 -10.8000183105,-4.8330078125 -10.8000183105,-10.8000488281 c 0.0,-5.96691894531 4.8330078125,-10.7999267578 10.8000183105,-10.7999267578 c 5.96697998047,0.0 10.799987793,4.8330078125 10.799987793,10.7999267578 c 0.0,5.96704101562 -4.8330078125,10.8000488281 -10.799987793,10.8000488281 Z"
-                android:strokeColor="#FFF2501D"
+                android:strokeColor="@*android:color/system_error"
                 android:strokeWidth="2"
                 android:trimPathStart="1" />
         </group>
diff --git a/packages/SystemUI/res/layout/remote_input.xml b/packages/SystemUI/res/layout/remote_input.xml
index 0c8cc9b..f0c4e59 100644
--- a/packages/SystemUI/res/layout/remote_input.xml
+++ b/packages/SystemUI/res/layout/remote_input.xml
@@ -42,7 +42,6 @@
             android:singleLine="true"
             android:ellipsize="start"
             android:inputType="textShortMessage|textAutoCorrect|textCapSentences"
-            android:textIsSelectable="true"
             android:imeOptions="actionNone|flagNoExtractUi" />
 
     <FrameLayout
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 2c8a559..3d70969 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -65,6 +65,14 @@
             layout="@layout/keyguard_status_bar"
             android:visibility="invisible" />
 
+        <Button
+            android:id="@+id/report_rejected_touch"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/status_bar_header_height_keyguard"
+            android:text="@string/report_rejected_touch"
+            android:visibility="gone" />
+
     </com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer>
 
     <include
diff --git a/packages/SystemUI/res/layout/tv_pip_controls.xml b/packages/SystemUI/res/layout/tv_pip_controls.xml
index 0a2f320..49119fb 100644
--- a/packages/SystemUI/res/layout/tv_pip_controls.xml
+++ b/packages/SystemUI/res/layout/tv_pip_controls.xml
@@ -41,5 +41,6 @@
         android:layout_height="wrap_content"
         android:layout_marginStart="-50dp"
         android:src="@drawable/ic_pause_white_24dp"
-        android:text="@string/pip_pause" />
+        android:text="@string/pip_pause"
+        android:visibility="gone" />
 </merge>
diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml
index 4cd635e..b3ff5d6 100644
--- a/packages/SystemUI/res/layout/volume_dialog.xml
+++ b/packages/SystemUI/res/layout/volume_dialog.xml
@@ -26,11 +26,21 @@
         android:id="@+id/volume_dialog_content"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingTop="@dimen/volume_dialog_collapsed_padding_top"
-        android:animateLayoutChanges="true" >
+        android:orientation="vertical" >
 
-        <!-- volume rows added and removed here! :-) -->
+        <LinearLayout
+                android:id="@+id/volume_dialog_rows"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingEnd="@dimen/volume_button_size"
+                android:paddingTop="@dimen/volume_dialog_collapsed_padding_top"
+                android:orientation="vertical" >
+            <View android:id="@+id/spacer"
+                  android:layout_width="match_parent"
+                  android:layout_height="@dimen/volume_dialog_expanded_spacer"
+                  android:visibility="gone"/>
+            <!-- volume rows added and removed here! :-) -->
+        </LinearLayout>
 
         <include layout="@layout/volume_zen_footer" />
 
diff --git a/packages/SystemUI/res/layout/volume_dialog_row.xml b/packages/SystemUI/res/layout/volume_dialog_row.xml
index 95019b8..7328d05 100644
--- a/packages/SystemUI/res/layout/volume_dialog_row.xml
+++ b/packages/SystemUI/res/layout/volume_dialog_row.xml
@@ -19,11 +19,8 @@
     android:layout_height="@dimen/volume_row_height"
     android:clipChildren="false"
     android:clipToPadding="false"
-    android:id="@+id/volume_dialog_row"
-    android:paddingEnd="@dimen/volume_dialog_padding_end"
     android:orientation="vertical"
-    android:paddingBottom="@dimen/volume_row_padding_bottom"
-    android:animateLayoutChanges="true">
+    android:paddingBottom="@dimen/volume_row_padding_bottom" >
 
     <TextView
         android:id="@+id/volume_row_header"
diff --git a/packages/SystemUI/res/layout/volume_zen_footer.xml b/packages/SystemUI/res/layout/volume_zen_footer.xml
index ea26bba..775b157 100644
--- a/packages/SystemUI/res/layout/volume_zen_footer.xml
+++ b/packages/SystemUI/res/layout/volume_zen_footer.xml
@@ -18,7 +18,8 @@
     android:id="@+id/volume_zen_footer"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical" > <!-- extends LinearLayout -->
+    android:orientation="vertical"
+    android:paddingBottom="8dp" > <!-- extends LinearLayout -->
 
     <View
         android:id="@+id/zen_embedded_divider"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 847bdb1..546698c 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Verdeel horisontaal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Verdeel vertikaal"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Verdeel gepasmaak"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Gelaai"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Laai tans"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> tot vol"</string>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 1d7b223..bd4afe1 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"አግድም ክፈል"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ቁልቁል ክፈል"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"በብጁ ክፈል"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ባትሪ ሞልቷል"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ኃይል በመሙላት ላይ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> እስኪሞላ ድረስ"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 3090efe..eca668e 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -343,6 +343,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"تقسيم أفقي"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"تقسيم رأسي"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"تقسيم مخصص"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"تم الشحن"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"جارٍ الشحن"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> حتى الاكتمال"</string>
diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml
index f54af11..3d9cc4a 100644
--- a/packages/SystemUI/res/values-az-rAZ/strings.xml
+++ b/packages/SystemUI/res/values-az-rAZ/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Üfüqi Böl"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Şaquli Böl"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Fərdi Böl"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Dolub"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Enerji doldurulur"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> dolana kimi"</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index dbe4d51..f95045c 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podeli horizontalno"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podeli vertikalno"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Prilagođeno deljenje"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Napunjena je"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Punjenje"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> dok se ne napuni"</string>
diff --git a/packages/SystemUI/res/values-be-rBY/strings.xml b/packages/SystemUI/res/values-be-rBY/strings.xml
index 8ed3d8d..325d706 100644
--- a/packages/SystemUI/res/values-be-rBY/strings.xml
+++ b/packages/SystemUI/res/values-be-rBY/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Падзяліць гарызантальна"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Падзяліць вертыкальна"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Падзяліць іншым чынам"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Зараджаны"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Зарадка"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> да поўнай зарадкі"</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 0e97138..c5817ee 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Хоризонтално разделяне"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Вертикално разделяне"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Персонализирано разделяне"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Заредена"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Зарежда се"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> до пълно зареждане"</string>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index 000119a..40076e6 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"অনুভূমিক স্প্লিট"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"উল্লম্ব স্প্লিট"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"কাস্টম স্প্লিট করুন"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"চার্জ হয়েছে"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"চার্জ হচ্ছে"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"পূর্ণ হতে <xliff:g id="CHARGING_TIME">%s</xliff:g> সময় লাগবে"</string>
diff --git a/packages/SystemUI/res/values-bs-rBA/strings.xml b/packages/SystemUI/res/values-bs-rBA/strings.xml
index fd8fad6..dcba67b 100644
--- a/packages/SystemUI/res/values-bs-rBA/strings.xml
+++ b/packages/SystemUI/res/values-bs-rBA/strings.xml
@@ -61,11 +61,11 @@
     <string name="label_view" msgid="6304565553218192990">"Prikaži"</string>
     <string name="always_use_device" msgid="1450287437017315906">"Koristiti kao zadanu opciju za ovaj USB uređaj"</string>
     <string name="always_use_accessory" msgid="1210954576979621596">"Koristiti kao zadanu opciju za ovaj USB uređaj"</string>
-    <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti otklanjanje grešaka preko USB-a?"</string>
+    <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti otklanjanje grešaka putem uređaja spojenog na USB?"</string>
     <string name="usb_debugging_message" msgid="2220143855912376496">"RSA otisak prsta za otključavanje računara je: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
     <string name="usb_debugging_always" msgid="303335496705863070">"Uvijek dozvoli sa ovog računara"</string>
-    <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Uklanjanje pogreški putem USB-a nije dozvoljeno"</string>
-    <string name="usb_debugging_secondary_user_message" msgid="8572228137833020196">"Korisnik koji je trenutno prijavljen na uređaju ne može uključiti opciju za otklanjanje grešaka koristeći USB. Da biste koristili ovu funkciju prebacite se na korisnika administratora."</string>
+    <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Otklanjanje grešaka putem uređaja spojenog na USB nije dozvoljeno"</string>
+    <string name="usb_debugging_secondary_user_message" msgid="8572228137833020196">"Korisnik koji je trenutno prijavljen na uređaju ne može uključiti opciju za otklanjanje grešaka putem uređaja spojenog na USB. Da biste koristili ovu funkciju prebacite se na korisnika administratora."</string>
     <string name="compat_mode_on" msgid="6623839244840638213">"Uvećaj prikaz na ekran"</string>
     <string name="compat_mode_off" msgid="4434467572461327898">"Razvuci prikaz na ekran"</string>
     <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Spašavanje snimka ekrana..."</string>
@@ -259,7 +259,7 @@
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran je zaključan u vodoravnom prikazu."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran je zaključan u uspravnom prikazu."</string>
     <string name="accessibility_rotation_lock_off_changed" msgid="8134601071026305153">"Ekran će se sada automatski rotirati."</string>
-    <string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"Ekran je sada zaključan u vodoravnom položaju."</string>
+    <string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"Ekran je sada zaključan u vodoravnom prikazu."</string>
     <string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"Ekran je sada zaključan u uspravnom položaju."</string>
     <string name="dessert_case" msgid="1295161776223959221">"Slika sa desertima"</string>
     <string name="start_dreams" msgid="5640361424498338327">"Čuvar ekrana"</string>
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podjela po horizontali"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podjela po vertikali"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Prilagođena podjela"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Napunjeno"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Punjenje"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Do kraja punjenja preostalo <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
@@ -543,7 +545,7 @@
     <string name="keyboard_key_backspace" msgid="1559580097512385854">"Tipka za brisanje"</string>
     <string name="keyboard_key_media_play_pause" msgid="3861975717393887428">"Pokreni/pauziraj"</string>
     <string name="keyboard_key_media_stop" msgid="2859963958595908962">"Zaustavi"</string>
-    <string name="keyboard_key_media_next" msgid="1894394911630345607">"Sljedeće"</string>
+    <string name="keyboard_key_media_next" msgid="1894394911630345607">"Naprijed"</string>
     <string name="keyboard_key_media_previous" msgid="4256072387192967261">"Prethodno"</string>
     <string name="keyboard_key_media_rewind" msgid="2654808213360820186">"Premotaj"</string>
     <string name="keyboard_key_media_fast_forward" msgid="3849417047738200605">"Ubrzaj"</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 66d37358..3354f92 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisió horitzontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisió vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisió personalitzada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carregada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"S\'està carregant"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> per completar la càrrega"</string>
@@ -602,7 +604,7 @@
     <string name="select_keycode" msgid="7413765103381924584">"Selecciona un botó de teclat"</string>
     <string name="preview" msgid="9077832302472282938">"Previsualització"</string>
     <string name="drag_to_add_tiles" msgid="7058945779098711293">"Arrossega per afegir funcions"</string>
-    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Arrossega\'ls aquí per suprimir-los"</string>
+    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Arrossega aquí per suprimir una funció"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Edita"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Hora"</string>
   <string-array name="clock_options">
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index f905f14..d64e5d9 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Vodorovné rozdělení"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikální rozdělení"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Vlastní rozdělení"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Nabito"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Nabíjení"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> do plného nabití"</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 399dd49..da8daa4 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Opdel vandret"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Opdel lodret"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Opdel brugerdefineret"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Opladet"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Oplader"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> indtil fuld opladet"</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index be919a6..46078d9 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Geteilte Schaltfläche – horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Geteilte Schaltfläche – vertikal"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Geteilte Schaltfläche – benutzerdefiniert"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Aufgeladen"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Wird aufgeladen"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Voll in <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 81c56c2..0a327ab 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Οριζόντιος διαχωρισμός"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Κάθετος διαχωρισμός"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Προσαρμοσμένος διαχωρισμός"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Φορτίστηκε"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Φόρτιση"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> για πλήρη φόρτιση"</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index a89afb6..9443ad9 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Customised"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Charged"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Charging"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> until full"</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index a89afb6..9443ad9 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Customised"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Charged"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Charging"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> until full"</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index a89afb6..9443ad9 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Customised"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Charged"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Charging"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> until full"</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 85f2cbd..602d6b2 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"División horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"División vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"División personalizada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Cargada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Cargando"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> para completarse"</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 2016d25..ba11d6f 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"División horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"División vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"División personalizada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Cargada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Cargando"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> para completarse"</string>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 6041673..bfc55e9 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horisontaalne poolitamine"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikaalne poolitamine"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Kohandatud poolitamine"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Laetud"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Laadimine"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Täislaadimiseks kulub <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml
index 509fd43..a340b3d 100644
--- a/packages/SystemUI/res/values-eu-rES/strings.xml
+++ b/packages/SystemUI/res/values-eu-rES/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Zatitze horizontala"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Zatitze bertikala"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Zatitze pertsonalizatua"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Kargatuta"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Kargatzen"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> falta zaizkio guztiz kargatzeko"</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 7ce3fce..58a5d93 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"تقسیم افقی"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"تقسیم عمودی"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"سفارشی کردن تقسیم"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"شارژ کامل شد"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"در حال شارژ شدن"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> مانده تا شارژ کامل شود"</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index e588a26..5ff50be 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Vaakasuuntainen jako"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Pystysuuntainen jako"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Muokattu jako"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Ladattu"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Ladataan"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> kunnes täynnä"</string>
@@ -601,7 +603,7 @@
     <string name="keycode_description" msgid="1403795192716828949">"Näppäinkoodi-painikkeet sallivat näppäimistön näppäimien lisäämisen navigointipalkkiin. Kun painiketta painetaan, se jäljittelee valittua näppäintä. Valitse ensin painikkeen kohteena oleva näppäin, sitten painikkeessa näkyvä kuva."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Valitse näppäimistön näppäin"</string>
     <string name="preview" msgid="9077832302472282938">"Esikatselu"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Lisää osioita vetämällä."</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Lisää osioita vetämällä"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Poista vetämällä tähän."</string>
     <string name="qs_edit" msgid="2232596095725105230">"Muokkaa"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Aika"</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index c20c2b6..7d50fee 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Séparation horizontale"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Séparation verticale"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Séparation personnalisée"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Chargée"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Charge en cours..."</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Chargée dans <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index cedc1ed..447255b 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -314,7 +314,7 @@
     <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notifications"</string>
     <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Lampe de poche"</string>
     <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Données mobiles"</string>
-    <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Consommation des données"</string>
+    <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Conso des données"</string>
     <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Données restantes"</string>
     <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"Limite dépassée"</string>
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilisés"</string>
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Séparation horizontale"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Séparation verticale"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Séparation personnalisée"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Chargé"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"En charge"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Chargé dans <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml
index 4d90e91..6d0e366 100644
--- a/packages/SystemUI/res/values-gl-rES/strings.xml
+++ b/packages/SystemUI/res/values-gl-rES/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Dividir en horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dividir en vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Dividir de xeito personalizado"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Cargada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Cargando"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> para completar a carga"</string>
diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml
index d425f3a..0663b41 100644
--- a/packages/SystemUI/res/values-gu-rIN/strings.xml
+++ b/packages/SystemUI/res/values-gu-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"આડું વિભક્ત કરો"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ઊભું વિભક્ત કરો"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"કસ્ટમ વિભક્ત કરો"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ચાર્જ થઈ ગયું"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ચાર્જ થઈ રહ્યું છે"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"પૂર્ણ થવામાં <xliff:g id="CHARGING_TIME">%s</xliff:g> બાકી"</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index c74da95..2924556 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"क्षैतिज रूप से विभाजित करें"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"लम्बवत रूप से विभाजित करें"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"कस्‍टम रूप से विभाजित करें"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"चार्ज हो गई है"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"चार्ज हो रही है"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"पूर्ण होने में <xliff:g id="CHARGING_TIME">%s</xliff:g> शेष"</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index de3b3a6..02466d6 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podijeli vodoravno"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podijeli okomito"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Podijeli prilagođeno"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Napunjeno"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Punjenje"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> do napunjenosti"</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 0394324..b89b106 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Osztott vízszintes"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Osztott függőleges"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Osztott egyéni"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Feltöltve"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Töltés"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> a teljes töltöttségig"</string>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index f37858c..d0d6c50 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Հորիզոնական տրոհում"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Ուղղահայաց տրոհում"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Հատուկ տրոհում"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Լիցքավորված է"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Լիցքավորվում է"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Լրիվ լիցքավորմանը մնաց <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 5b80343..ad24d6a 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Pisahkan Horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Pisahkan Vertikal"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Pisahkan Khusus"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Terisi"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Mengisi daya"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> sampai penuh"</string>
diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml
index 5d9989c..a95e28b 100644
--- a/packages/SystemUI/res/values-is-rIS/strings.xml
+++ b/packages/SystemUI/res/values-is-rIS/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Lárétt skipting"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Lóðrétt skipting"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Sérsniðin skipting"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Fullhlaðin"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Í hleðslu"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> þar til fullri hleðslu er náð"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 209f3ef..d370b65 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisione in orizzontale"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisione in verticale"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisione personalizzata"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carica"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"In carica"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> al termine della carica"</string>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 4afad7f..4cf48c2 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -339,6 +339,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"פיצול אופקי"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"פיצול אנכי"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"פיצול מותאם אישית"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"טעון"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"טוען"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> עד למילוי"</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index f9940f1..c42e346 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"横に分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"縦に分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"分割（カスタム）"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"充電が完了しました"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"充電しています"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"充電完了まで<xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 1715d7b..6ddcde8 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ჰორიზონტალური გაყოფა"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ვერტიკალური გაყოფა"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ინდივიდუალური გაყობა"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"დატენილია"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"მიმდინარეობს დატენვა"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> სრულად დატენვამდე"</string>
diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml
index 6715fef..2c444e4 100644
--- a/packages/SystemUI/res/values-kk-rKZ/strings.xml
+++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Бөлінген көлденең"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Бөлінген тік"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Бөлінген теңшелетін"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Зарядталды"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Зарядталуда"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Толғанға дейін <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index f9d36aa..0db7abc 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"បំបែកផ្តេក"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"បំបែកបញ្ឈរ"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"បំបែកផ្ទាល់ខ្លួន"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"បាន​បញ្ចូល​ថ្ម​​"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"កំពុង​បញ្ចូល​ថ្ម"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> រហូត​ដល់ពេញ"</string>
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index 548adbe..c62a8db 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ಅಡ್ಡಲಾಗಿ ವಿಭಜಿಸಿದ"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ಲಂಬವಾಗಿ ವಿಭಜಿಸಿದ"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ಕಸ್ಟಮ್ ವಿಭಜಿಸಿದ"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ಚಾರ್ಜ್ ಆಗಿದೆ"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ"</string>
@@ -603,7 +605,7 @@
     <string name="preview" msgid="9077832302472282938">"ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
     <string name="drag_to_add_tiles" msgid="7058945779098711293">"ಟೈಲ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"ತೆಗೆದುಹಾಕಲು ಇಲ್ಲಿ ಡ್ರ್ಯಾಗ್‌ ಮಾಡಿ"</string>
-    <string name="qs_edit" msgid="2232596095725105230">"ಸಂಪಾದಿಸು"</string>
+    <string name="qs_edit" msgid="2232596095725105230">"ಎಡಿಟ್"</string>
     <string name="tuner_time" msgid="6572217313285536011">"ಸಮಯ"</string>
   <string-array name="clock_options">
     <item msgid="5965318737560463480">"ಗಂಟೆಗಳು, ನಿಮಿಷಗಳು, ಸೆಕೆಂಡುಗಳನ್ನು ತೋರಿಸು"</item>
@@ -627,7 +629,7 @@
     <string name="accessibility_action_divider_top_50" msgid="6385859741925078668">"50% ಮೇಲಕ್ಕೆ"</string>
     <string name="accessibility_action_divider_top_30" msgid="6201455163864841205">"30% ಮೇಲಕ್ಕೆ"</string>
     <string name="accessibility_action_divider_bottom_full" msgid="301433196679548001">"ಕೆಳಗಿನ ಪೂರ್ಣ ಪರದೆ"</string>
-    <string name="accessibility_qs_edit_tile_label" msgid="8374924053307764245">"ಸ್ಥಾನ <xliff:g id="POSITION">%1$d</xliff:g>, <xliff:g id="TILE_NAME">%2$s</xliff:g>. ಸಂಪಾದಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="accessibility_qs_edit_tile_label" msgid="8374924053307764245">"ಸ್ಥಾನ <xliff:g id="POSITION">%1$d</xliff:g>, <xliff:g id="TILE_NAME">%2$s</xliff:g>. ಎಡಿಟ್ ಮಾಡಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="accessibility_qs_edit_add_tile_label" msgid="8133209638023882667">"<xliff:g id="TILE_NAME">%1$s</xliff:g>. ಸೇರಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="accessibility_qs_edit_position_label" msgid="5055306305919289819">"ಸ್ಥಾನ <xliff:g id="POSITION">%1$d</xliff:g>. ಆಯ್ಕೆಮಾಡಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="accessibility_qs_edit_move_tile" msgid="2461819993780159542">"<xliff:g id="TILE_NAME">%1$s</xliff:g> ಸರಿಸಿ"</string>
@@ -635,7 +637,7 @@
     <string name="accessibility_qs_edit_tile_added" msgid="8050200862063548309">"<xliff:g id="POSITION">%2$d</xliff:g> ಸ್ಥಾನಕ್ಕೆ <xliff:g id="TILE_NAME">%1$s</xliff:g> ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="accessibility_qs_edit_tile_removed" msgid="8584304916627913440">"<xliff:g id="TILE_NAME">%1$s</xliff:g> ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
     <string name="accessibility_qs_edit_tile_moved" msgid="4343693412689365038">"<xliff:g id="POSITION">%2$d</xliff:g> ಸ್ಥಾನಕ್ಕೆ <xliff:g id="TILE_NAME">%1$s</xliff:g> ಸೇರಿಸಲಾಗಿದೆ"</string>
-    <string name="accessibility_desc_quick_settings_edit" msgid="8073587401747016103">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‍ಗಳ ಸಂಪಾದಕ."</string>
+    <string name="accessibility_desc_quick_settings_edit" msgid="8073587401747016103">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‍ಗಳ ಎಡಿಟರ್."</string>
     <string name="accessibility_desc_notification_icon" msgid="8352414185263916335">"<xliff:g id="ID_1">%1$s</xliff:g> ಅಧಿಸೂಚನೆ: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="dock_forced_resizable" msgid="5914261505436217520">"ವಿಭಜಿಸಿದ ಪರದೆಯಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಕೆಲಸ ಮಾಡದೇ ಇರಬಹುದು."</string>
     <string name="dock_non_resizeble_failed_to_dock_text" msgid="3871617304250207291">"ಅಪ್ಲಿಕೇಶನ್ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
@@ -647,6 +649,6 @@
     <string name="accessibility_quick_settings_no_internet" msgid="31890692343084075">"ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ."</string>
     <string name="accessibility_quick_settings_open_details" msgid="4230931801728005194">"ವಿವರಗಳನ್ನು ತೆರೆಯಿರಿ."</string>
     <string name="accessibility_quick_settings_open_settings" msgid="7806613775728380737">"<xliff:g id="ID_1">%s</xliff:g> ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ."</string>
-    <string name="accessibility_quick_settings_edit" msgid="7839992848995240393">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕ್ರಮವನ್ನು ಸಂಪಾದಿಸು."</string>
+    <string name="accessibility_quick_settings_edit" msgid="7839992848995240393">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕ್ರಮವನ್ನು ಎಡಿಟ್ ಮಾಡಿ."</string>
     <string name="accessibility_quick_settings_page" msgid="5032979051755200721">"<xliff:g id="ID_2">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="ID_1">%1$d</xliff:g> ಪುಟ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 241f803..3c08e92 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"수평 분할"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"수직 분할"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"맞춤 분할"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"충전됨"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"충전 중"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"완충까지 <xliff:g id="CHARGING_TIME">%s</xliff:g> 남음"</string>
diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml
index e392b97..7645b93 100644
--- a/packages/SystemUI/res/values-ky-rKG/strings.xml
+++ b/packages/SystemUI/res/values-ky-rKG/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Туурасынан бөлүү"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Тигинен бөлүү"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Ыңгайлаштырылган бөлүү"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Кубатталды"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Кубатталууда"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> толгонго чейин"</string>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index 66fb010..6b1fca8 100644
--- a/packages/SystemUI/res/values-lo-rLA/strings.xml
+++ b/packages/SystemUI/res/values-lo-rLA/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ການ​ແຍກ​ລວງ​ຂວາງ"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ການ​ແຍກ​ລວງ​ຕັ້ງ"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ການ​ແຍກ​ກຳ​ນົດ​ເອງ"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ສາກເຕັມແລ້ວ."</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ກຳລັງສາກໄຟ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ຈຶ່ງ​ຈະ​ເຕັມ"</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index c120a7e..46e50fb 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -339,6 +339,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontalus skaidymas"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikalus skaidymas"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tinkintas skaidymas"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Įkrautas"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Kraunamas"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> iki visiško įkrovimo"</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 3dcd7a2..9efad2e 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontāls dalījums"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikāls dalījums"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Pielāgots dalījums"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Akumulators uzlādēts"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Notiek uzlāde"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> līdz pilnam akumulatoram"</string>
diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml
index 14940e6..549543d 100644
--- a/packages/SystemUI/res/values-mk-rMK/strings.xml
+++ b/packages/SystemUI/res/values-mk-rMK/strings.xml
@@ -85,7 +85,7 @@
     <string name="accessibility_menu" msgid="316839303324695949">"Мени"</string>
     <string name="accessibility_recent" msgid="5208608566793607626">"Краток преглед"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пребарај"</string>
-    <string name="accessibility_camera_button" msgid="8064671582820358152">"Фотоапарат"</string>
+    <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
     <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Гласовна помош"</string>
     <string name="accessibility_unlock_button" msgid="128158454631118828">"Отклучување"</string>
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Раздели хоризонтално"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Раздели вертикално"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Раздели прилагодено"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Наполнета"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Се полни"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> додека не се наполни"</string>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index c3e231b..9f596b8 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"തിരശ്ചീനമായി വേർതിരിക്കുക"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ലംബമായി വേർതിരിക്കുക"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ഇഷ്‌ടാനുസൃതമായി വേർതിരിക്കുക"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ചാർജായി"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ചാർജ്ജുചെയ്യുന്നു"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"പൂർണ്ണമായും ചാർജ്ജാകുന്നതിന്, <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index 859ad57..f3a2f08 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -333,6 +333,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Хэвтээ чиглэлд хуваах"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Босоо чиглэлд хуваах"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Хүссэн хэлбэрээр хуваах"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Цэнэглэгдсэн"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Цэнэглэж байна"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"дүүргэхэд <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml
index a088bd4..e5c6410 100644
--- a/packages/SystemUI/res/values-mr-rIN/strings.xml
+++ b/packages/SystemUI/res/values-mr-rIN/strings.xml
@@ -297,7 +297,7 @@
     <string name="quick_settings_cast_title" msgid="7709016546426454729">"कास्‍ट करा"</string>
     <string name="quick_settings_casting" msgid="6601710681033353316">"कास्ट करत आहे"</string>
     <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"निनावी डिव्हाइस"</string>
-    <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"कास्ट करण्यास सज्ज"</string>
+    <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"कास्ट करण्यास तयार"</string>
     <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"कोणतेही डिव्हाइसेस उपलब्ध नाहीत"</string>
     <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"चमक"</string>
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वयंचलित"</string>
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"क्षैतिज विभाजित करा"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"अनुलंब विभाजित करा"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"सानुकूल विभाजित करा"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"चार्ज झाली"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"चार्ज होत आहे"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> पूर्ण होईपर्यंत"</string>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index a9a1ad0..7c543a6 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Mendatar Terpisah"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Menegak Terpisah"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tersuai Terpisah"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Sudah dicas"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Mengecas"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Lagi <xliff:g id="CHARGING_TIME">%s</xliff:g> untuk penuh"</string>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 0577b51..56a7249 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ရေပြင်ညီ ပိုင်းမည်"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ဒေါင်လိုက်ပိုင်းမည်"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"စိတ်ကြိုက် ပိုင်းမည်"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"အားသွင်းပြီး"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"အားသွင်းနေ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ပြည်သည့် အထိ"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index ff1cd2c..3efdd3e 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Del horisontalt"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Del vertikalt"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Del tilpasset"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Oppladet"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Lader"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Fulladet om <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index 76908d9..07d0795 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"तेर्सो रूपमा विभाजन गर्नुहोस्"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ठाडो रूपमा विभाजन गर्नुहोस्"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"अनुकूलन विभाजन गर्नुहोस्"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"चार्ज भयो"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"चार्ज हुँदै"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> पूर्ण नभएसम्म"</string>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index c26b6a5..9509229 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Horizontaal splitsen"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Verticaal splitsen"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Aangepast splitsen"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Opgeladen"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Opladen"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> tot volledig opgeladen"</string>
diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml
index fdd5ae0..17c1261 100644
--- a/packages/SystemUI/res/values-pa-rIN/strings.xml
+++ b/packages/SystemUI/res/values-pa-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ਹੌਰੀਜ਼ੌਂਟਲ ਸਪਲਿਟ"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ਵਰਟੀਕਲ ਸਪਲਿਟ"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ਕਸਟਮ ਸਪਲਿਟ"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ਚਾਰਜ ਹੋਇਆ"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ਚਾਰਜ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ਪੂਰਾ ਹੋਣ ਤੱਕ"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 9892e79..c86d26c 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -339,6 +339,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Podziel poziomo"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Podziel pionowo"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Podziel niestandardowo"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Naładowana"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Ładowanie"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> do pełnego naładowania"</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 153f8af..199dbad 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carregada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Carregando"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> até concluir"</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index e515c6e..d3d7f24 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carregada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"A carregar"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> até ficar completa"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 153f8af..199dbad 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carregada"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Carregando"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> até concluir"</string>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index e8157a4..f59721a 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -339,6 +339,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divizare pe orizontală"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divizare pe verticală"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divizare personalizată"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Încărcată"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Se încarcă"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> până la încărcare completă"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 89c11a3..bee7eed 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Разделить по горизонтали"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Разделить по вертикали"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Разделить по-другому"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Батарея заряжена"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Зарядка батареи"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> до полной зарядки"</string>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index 256803f..0811f5e 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"තිරස්ව වෙන් කරන්න"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"සිරස්ව වෙන් කරන්න"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"අභිමත ලෙස වෙන් කරන්න"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"අරෝපිතයි"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ආරෝපණය වෙමින්"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> සම්පූර්ණ වන තෙක්"</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 5ef132d..304c9a0 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Rozdeliť vodorovné"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Rozdeliť zvislé"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Rozdeliť vlastné"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Nabitá"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Nabíja sa"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Úplné nabitie o <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 4f87432..a8bc3d1 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Razdeli vodoravno"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Razdeli navpično"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Razdeli po meri"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Akumulator napolnjen"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Polnjenje"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> do napolnjenosti"</string>
diff --git a/packages/SystemUI/res/values-sq-rAL/strings.xml b/packages/SystemUI/res/values-sq-rAL/strings.xml
index bf620ec..4bc29aa 100644
--- a/packages/SystemUI/res/values-sq-rAL/strings.xml
+++ b/packages/SystemUI/res/values-sq-rAL/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Ndaje horizontalisht"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Ndaj vertikalisht"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Ndaj të personalizuarën"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"I ngarkuar"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Po ngarkohet"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> deri sa të mbushet"</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 2f77811..16ae7e2 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Подели хоризонтално"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Подели вертикално"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Прилагођено дељење"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Напуњена је"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Пуњење"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> док се не напуни"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index dfa02a4..e6988d7 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Dela horisontellt"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dela vertikalt"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Dela anpassad"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Laddat"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Laddar"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> tills batteriet är fulladdat"</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 2df87678..50c6685 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Gawanya Mlalo"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Gawanya Wima"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Maalum Iliyogawanywa"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Betri imejaa"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Inachaji"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Imebakisha <xliff:g id="CHARGING_TIME">%s</xliff:g> ijae"</string>
diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml
index a9660a3..f0cb530 100644
--- a/packages/SystemUI/res/values-ta-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ta-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"கிடைமட்டமாகப் பிரி"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"செங்குத்தாகப் பிரி"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"தனிவிருப்பத்தில் பிரி"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"சார்ஜ் செய்யப்பட்டது"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"சார்ஜாகிறது"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"முழுவதும் சார்ஜாக <xliff:g id="CHARGING_TIME">%s</xliff:g> ஆகும்"</string>
diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml
index 4c069e1..e50d47a 100644
--- a/packages/SystemUI/res/values-te-rIN/strings.xml
+++ b/packages/SystemUI/res/values-te-rIN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"సమతలంగా విభజించు"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"లంబంగా విభజించు"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"అనుకూలంగా విభజించు"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ఛార్జ్ చేయబడింది"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ఛార్జ్ అవుతోంది"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"పూర్తిగా నిండటానికి <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index c9631ca..7eb227e 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"แยกในแนวนอน"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"แยกในแนวตั้ง"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"แยกแบบกำหนดเอง"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"ชาร์จแล้ว"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"กำลังชาร์จ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"อีก <xliff:g id="CHARGING_TIME">%s</xliff:g> จึงจะเต็ม"</string>
@@ -343,7 +345,7 @@
     <string name="description_target_search" msgid="3091587249776033139">"ค้นหา"</string>
     <string name="description_direction_up" msgid="7169032478259485180">"เลื่อนขึ้นเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
     <string name="description_direction_left" msgid="7207478719805562165">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
-    <string name="zen_priority_introduction" msgid="3070506961866919502">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นการปลุก การเตือนความจำ กิจกรรม และผู้โทรที่คุณระบุ"</string>
+    <string name="zen_priority_introduction" msgid="3070506961866919502">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นการปลุก การช่วยเตือน กิจกรรม และผู้โทรที่คุณระบุ"</string>
     <string name="zen_priority_customize_button" msgid="7948043278226955063">"กำหนดค่า"</string>
     <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"การใช้โหมดนี้จะบล็อกเสียงและการสั่นทั้งหมด ซึ่งรวมถึงเสียงปลุก เพลง วิดีโอ และเกม คุณจะยังโทรออกได้อยู่"</string>
     <string name="zen_silence_introduction" msgid="3137882381093271568">"การใช้โหมดนี้จะบล็อกเสียงและการสั่นทั้งหมด ซึ่งรวมถึงเสียงปลุก เพลง วิดีโอ และเกม"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 66d1d44..ed6830e 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Split Horizontal"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Split Vertical"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Split Custom"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Nasingil na"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Nagcha-charge"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> hanggang mapuno"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 13fd288..8fae7975 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Yatay Ayırma"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Dikey Ayırma"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Özel Ayırma"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Ödeme alındı"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Şarj oluyor"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Tam şarj olmasına <xliff:g id="CHARGING_TIME">%s</xliff:g> kaldı"</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index fc32763..7eaf0db 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -341,6 +341,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Розділити горизонтально"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Розділити вертикально"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Розділити (власний варіант)"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Заряджено"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Заряджається"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"До повного зарядження <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml
index abe67753..5c0ed18 100644
--- a/packages/SystemUI/res/values-ur-rPK/strings.xml
+++ b/packages/SystemUI/res/values-ur-rPK/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"بلحاظ افقی الگ کریں"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"بلحاظ عمودی الگ کریں"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"بلحاظ حسب ضرورت الگ کریں"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"چارج ہوگئی"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"چارج ہو رہی ہے"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> مکمل ہونے تک"</string>
diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml
index 50fa1ee..ac6194f 100644
--- a/packages/SystemUI/res/values-uz-rUZ/strings.xml
+++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Gorizontal yo‘nalishda bo‘lish"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Vertikal yo‘nalishda bo‘lish"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Boshqa usulda bo‘lish"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Batareya quvvati to‘ldi"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Quvvat olmoqda"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g>da to‘ladi"</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 2dfc7bb..930eebe 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -310,7 +310,7 @@
     <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Đang dùng làm điểm truy cập Internet"</string>
     <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Điểm phát sóng"</string>
     <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Thông báo"</string>
-    <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Đèn nháy"</string>
+    <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Đèn pin"</string>
     <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Dữ liệu di động"</string>
     <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Sử dụng dữ liệu"</string>
     <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Dữ liệu còn lại"</string>
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Phân tách ngang"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Phân tách dọc"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tùy chỉnh phân tách"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Đã sạc đầy"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Đang sạc"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> cho đến khi đầy"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 07e8264..2548c4b 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自定义分割"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"已充满"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"正在充电"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"还需<xliff:g id="CHARGING_TIME">%s</xliff:g>充满"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 08f723f..c0172b1 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -337,6 +337,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自訂分割"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"已完成充電"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"充電中"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g>後完成充電"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 9cb846e..66c1264 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自訂分割"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"已充飽"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"充電中"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g>後充飽"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 4892c1d..49bf0bd 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -335,6 +335,8 @@
     <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Hlukanisa okuvundlile"</string>
     <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Hlukanisa okumile"</string>
     <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Hlukanisa kwezifiso"</string>
+  <string-array name="recents_blacklist_array">
+  </string-array>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Kushajiwe"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"Iyashaja"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ize igcwale"</string>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index fa30f49..c2897cd 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -126,6 +126,9 @@
     <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
     <bool name="config_show4GForLTE">true</bool>
 
+    <!-- Should "LTE"/"4G" be shown instead of "LTE+"/"4G+" when on NETWORK_TYPE_LTE_CA? -->
+    <bool name="config_hideLtePlus">false</bool>
+
     <!-- milliseconds before the heads up notification auto-dismisses. -->
     <integer name="heads_up_notification_decay">5000</integer>
 
@@ -247,7 +250,7 @@
     <integer name="doze_pulse_duration_in">900</integer>
 
     <!-- Doze: pulse parameter - how long does it take to fade in after a pickup? -->
-    <integer name="doze_pulse_duration_in_pickup">300</integer>
+    <integer name="doze_pulse_duration_in_pickup">130</integer>
 
     <!-- Doze: pulse parameter - once faded in, how long does it stay visible? -->
     <integer name="doze_pulse_duration_visible">3000</integer>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index ae4f3cf..fe67808 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -57,6 +57,9 @@
     <!-- The amount to scale each of the status bar icons by. A value of 1 means no scaling. -->
     <item name="status_bar_icon_scale_factor" format="float" type="dimen">1.0</item>
 
+    <!-- max height of a notification such that the content can still fade out when closing -->
+    <dimen name="max_notification_fadeout_height">100dp</dimen>
+
     <!-- Height of a small notification in the status bar-->
     <dimen name="notification_min_height">92dp</dimen>
 
@@ -539,7 +542,7 @@
     <!-- Volume dialog root view bottom margin, at rest -->
     <dimen name="volume_dialog_margin_bottom">4dp</dimen>
     <dimen name="volume_dialog_collapsed_padding_top">8dp</dimen>
-    <dimen name="volume_dialog_expanded_padding_top">22dp</dimen>
+    <dimen name="volume_dialog_expanded_spacer">14dp</dimen>
     <dimen name="volume_dialog_padding_end">40dp</dimen>
 
     <dimen name="volume_row_padding_bottom">9.4dp</dimen>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index a0cb61a..6c48b25 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -790,6 +790,10 @@
     <!-- Recents: MultiStack add stack split custom radio button. [CHAR LIMIT=NONE] -->
     <string name="recents_multistack_add_stack_dialog_split_custom">Split Custom</string>
 
+    <!-- Fully qualified activity class names to be blacklisted in Recents, add package names into overlay as needed -->
+    <string-array name="recents_blacklist_array">
+    </string-array>
+
     <!-- Expanded Status Bar Header: Battery Charged [CHAR LIMIT=40] -->
     <string name="expanded_header_battery_charged">Charged</string>
 
@@ -1625,6 +1629,9 @@
     <!-- Accessibility label for the notification icons in the collapsed status bar. Not shown on screen [CHAR LIMIT=NONE] -->
     <string name="accessibility_desc_notification_icon"><xliff:g name="app_name" example="Gmail">%1$s</xliff:g> notification: <xliff:g name="notification_text" example="5 new messages">%2$s</xliff:g></string>
 
+    <!-- Label for button that reports a touch that was wrongly rejected by the lockscreen. For debugging only. [CHAR LIMIT=NONE] -->
+    <string name="report_rejected_touch" translatable="false">Report rejected touch</string>
+
     <!-- Multi-Window strings -->
     <!-- Text that gets shown on top of current activity to inform the user that the system force-resized the current activity and that things might crash/not work properly [CHAR LIMIT=NONE] -->
     <string name="dock_forced_resizable">App may not work with split-screen.</string>
diff --git a/packages/SystemUI/src/com/android/systemui/analytics/DataCollector.java b/packages/SystemUI/src/com/android/systemui/analytics/DataCollector.java
index 91f6520..b1f454e 100644
--- a/packages/SystemUI/src/com/android/systemui/analytics/DataCollector.java
+++ b/packages/SystemUI/src/com/android/systemui/analytics/DataCollector.java
@@ -21,6 +21,7 @@
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
@@ -28,6 +29,7 @@
 import android.provider.Settings;
 import android.util.Log;
 import android.view.MotionEvent;
+import android.widget.Toast;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -48,6 +50,8 @@
     private static final String TAG = "DataCollector";
     private static final String COLLECTOR_ENABLE = "data_collector_enable";
     private static final String COLLECT_BAD_TOUCHES = "data_collector_collect_bad_touches";
+    private static final String ALLOW_REJECTED_TOUCH_REPORTS =
+            "data_collector_allow_rejected_touch_reports";
 
     private static final long TIMEOUT_MILLIS = 11000; // 11 seconds.
     public static final boolean DEBUG = false;
@@ -64,6 +68,7 @@
     private boolean mCollectBadTouches = false;
     private boolean mCornerSwiping = false;
     private boolean mTrackingStarted = false;
+    private boolean mAllowReportRejectedTouch = false;
 
     private static DataCollector sInstance = null;
 
@@ -87,6 +92,11 @@
                 mSettingsObserver,
                 UserHandle.USER_ALL);
 
+        mContext.getContentResolver().registerContentObserver(
+                Settings.Secure.getUriFor(ALLOW_REJECTED_TOUCH_REPORTS), false,
+                mSettingsObserver,
+                UserHandle.USER_ALL);
+
         updateConfiguration();
     }
 
@@ -104,10 +114,13 @@
         mCollectBadTouches = mEnableCollector && 0 != Settings.Secure.getInt(
                 mContext.getContentResolver(),
                 COLLECT_BAD_TOUCHES, 0);
+        mAllowReportRejectedTouch = Build.IS_DEBUGGABLE && 0 != Settings.Secure.getInt(
+                mContext.getContentResolver(),
+                ALLOW_REJECTED_TOUCH_REPORTS, 0);
     }
 
     private boolean sessionEntrypoint() {
-        if (mEnableCollector && mCurrentSession == null) {
+        if (isEnabled() && mCurrentSession == null) {
             onSessionStart();
             return true;
         }
@@ -115,7 +128,7 @@
     }
 
     private void sessionExitpoint(int result) {
-        if (mEnableCollector && mCurrentSession != null) {
+        if (mCurrentSession != null) {
             onSessionEnd(result);
         }
     }
@@ -130,8 +143,36 @@
         SensorLoggerSession session = mCurrentSession;
         mCurrentSession = null;
 
-        session.end(System.currentTimeMillis(), result);
-        queueSession(session);
+        if (mEnableCollector) {
+            session.end(System.currentTimeMillis(), result);
+            queueSession(session);
+        }
+    }
+
+    public Uri reportRejectedTouch() {
+        if (mCurrentSession == null) {
+            Toast.makeText(mContext, "Generating rejected touch report failed: session timed out.",
+                    Toast.LENGTH_LONG).show();
+            return null;
+        }
+        SensorLoggerSession currentSession = mCurrentSession;
+
+        currentSession.setType(Session.REJECTED_TOUCH_REPORT);
+        currentSession.end(System.currentTimeMillis(), Session.SUCCESS);
+        Session proto = currentSession.toProto();
+
+        byte[] b = Session.toByteArray(proto);
+        File dir = new File(mContext.getExternalCacheDir(), "rejected_touch_reports");
+        dir.mkdir();
+        File touch = new File(dir, "rejected_touch_report_" + System.currentTimeMillis());
+
+        try {
+            new FileOutputStream(touch).write(b);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return Uri.fromFile(touch);
     }
 
     private void queueSession(final SensorLoggerSession currentSession) {
@@ -164,7 +205,7 @@
 
     @Override
     public synchronized void onSensorChanged(SensorEvent event) {
-        if (mEnableCollector && mCurrentSession != null) {
+        if (isEnabled() && mCurrentSession != null) {
             mCurrentSession.addSensorEvent(event, System.nanoTime());
             enforceTimeout();
         }
@@ -186,7 +227,19 @@
     public void onAccuracyChanged(Sensor sensor, int accuracy) {
     }
 
+    /**
+     * @return true if data is being collected - either for data gathering or creating a
+     *         rejected touch report.
+     */
     public boolean isEnabled() {
+        return mEnableCollector || mAllowReportRejectedTouch;
+    }
+
+    /**
+     * @return true if the full data set for data gathering should be collected - including
+     *         extensive sensor data, which is is not normally included with rejected touch reports.
+     */
+    public boolean isEnabledFull() {
         return mEnableCollector;
     }
 
@@ -401,8 +454,12 @@
     }
 
     private void addEvent(int eventType) {
-        if (mEnableCollector && mCurrentSession != null) {
+        if (isEnabled() && mCurrentSession != null) {
             mCurrentSession.addPhoneEvent(eventType, System.nanoTime());
         }
     }
+
+    public boolean isReportingEnabled() {
+        return mAllowReportRejectedTouch;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/analytics/SensorLoggerSession.java b/packages/SystemUI/src/com/android/systemui/analytics/SensorLoggerSession.java
index faaad2b..b39803a 100644
--- a/packages/SystemUI/src/com/android/systemui/analytics/SensorLoggerSession.java
+++ b/packages/SystemUI/src/com/android/systemui/analytics/SensorLoggerSession.java
@@ -53,6 +53,10 @@
         mType = Session.REAL;
     }
 
+    public void setType(int type) {
+        mType = type;
+    }
+
     public void end(long endTimestampMillis, int result) {
         mResult = result;
         mEndTimestampMillis = endTimestampMillis;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java
index 1ac5992..664e886 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManager.java
@@ -22,6 +22,7 @@
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
+import android.net.Uri;
 import android.os.Handler;
 import android.os.PowerManager;
 import android.os.UserHandle;
@@ -142,7 +143,7 @@
         if (mHumanInteractionClassifier.isEnabled()) {
             registerSensors(CLASSIFIER_SENSORS);
         }
-        if (mDataCollector.isEnabled()) {
+        if (mDataCollector.isEnabledFull()) {
             registerSensors(COLLECTOR_SENSORS);
         }
     }
@@ -400,4 +401,15 @@
         pw.print("mScreenOn="); pw.println(mScreenOn ? 1 : 0);
         pw.println();
     }
+
+    public Uri reportRejectedTouch() {
+        if (mDataCollector.isEnabled()) {
+            return mDataCollector.reportRejectedTouch();
+        }
+        return null;
+    }
+
+    public boolean isReportingEnabled() {
+        return mDataCollector.isReportingEnabled();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java b/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java
index 85a9bee..4c64711 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.classifier;
 
+import android.os.SystemClock;
+
 import java.util.ArrayList;
 
 /**
@@ -31,7 +33,7 @@
     private long mLastUpdate;
 
     public HistoryEvaluator() {
-        mLastUpdate = System.currentTimeMillis();
+        mLastUpdate = SystemClock.elapsedRealtime();
     }
 
     public void addStroke(float evaluation) {
@@ -69,15 +71,18 @@
     }
 
     private void decayValue() {
-        long currentTimeMillis = System.currentTimeMillis();
+        long time = SystemClock.elapsedRealtime();
+
+        if (time <= mLastUpdate) {
+            return;
+        }
 
         // All weights are multiplied by HISTORY_FACTOR after each INTERVAL milliseconds.
-        float factor = (float) Math.pow(HISTORY_FACTOR,
-                (float) (currentTimeMillis - mLastUpdate) / INTERVAL);
+        float factor = (float) Math.pow(HISTORY_FACTOR, (time - mLastUpdate) / INTERVAL);
 
         decayValue(mStrokes, factor);
         decayValue(mGestureWeights, factor);
-        mLastUpdate = currentTimeMillis;
+        mLastUpdate = time;
     }
 
     private void decayValue(ArrayList<Data> list, float factor) {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 9eb768c..7c8d0f6 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -57,8 +57,9 @@
     private static SummaryStats sEmergencyCallStats;
     private static SummaryStats[][] sProxStats; // [reason][near/far]
 
-    public static void tracePickupPulse(boolean withinVibrationThreshold) {
+    public static void tracePickupPulse(Context context, boolean withinVibrationThreshold) {
         if (!ENABLED) return;
+        init(context);
         log("pickupPulse withinVibrationThreshold=" + withinVibrationThreshold);
         (withinVibrationThreshold ? sPickupPulseNearVibrationStats
                 : sPickupPulseNotNearVibrationStats).append();
@@ -76,8 +77,9 @@
         log("pulseFinish");
     }
 
-    public static void traceNotificationPulse(long instance) {
+    public static void traceNotificationPulse(Context context, long instance) {
         if (!ENABLED) return;
+        init(context);
         log("notificationPulse instance=" + instance);
         sNotificationPulseStats.append();
     }
@@ -153,9 +155,9 @@
     public static void traceProximityResult(Context context, boolean near, long millis,
             int pulseReason) {
         if (!ENABLED) return;
+        init(context);
         log("proximityResult reason=" + pulseReasonToString(pulseReason) + " near=" + near
                 + " millis=" + millis);
-        init(context);
         sProxStats[pulseReason][near ? 0 : 1].append();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
index 661b347..fc0d8bb 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java
@@ -373,7 +373,7 @@
         if (DEBUG) Log.d(mTag, "mScheduleResetsRemaining = " + mScheduleResetsRemaining);
         mNotificationPulseTime = notificationTimeMs;
         if (pulseImmediately) {
-            DozeLog.traceNotificationPulse(0);
+            DozeLog.traceNotificationPulse(mContext, 0);
             requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
         }
         // schedule the rest of the pulses
@@ -442,7 +442,7 @@
             if (NOTIFICATION_PULSE_ACTION.equals(intent.getAction())) {
                 final long instance = intent.getLongExtra(EXTRA_INSTANCE, -1);
                 if (DEBUG) Log.d(mTag, "Received notification pulse intent instance=" + instance);
-                DozeLog.traceNotificationPulse(instance);
+                DozeLog.traceNotificationPulse(mContext, instance);
                 requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
                 rescheduleNotificationPulse(mNotificationLightOn);
             }
@@ -576,7 +576,7 @@
                     resetNotificationResets();
                 }
                 if (mSensor.getType() == Sensor.TYPE_PICK_UP_GESTURE) {
-                    DozeLog.tracePickupPulse(withinVibrationThreshold);
+                    DozeLog.tracePickupPulse(mContext, withinVibrationThreshold);
                 }
             } finally {
                 mWakeLock.release();
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
index 84d3599..84901ee 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
@@ -23,6 +23,7 @@
 import android.os.Debug;
 import android.os.IBinder;
 import android.os.Process;
+import android.os.Trace;
 import android.util.Log;
 
 import com.android.internal.policy.IKeyguardDrawnCallback;
@@ -73,27 +74,33 @@
 
         @Override // Binder interface
         public void verifyUnlock(IKeyguardExitCallback callback) {
+            Trace.beginSection("KeyguardService.mBinder#verifyUnlock");
             checkPermission();
             mKeyguardViewMediator.verifyUnlock(callback);
+            Trace.endSection();
         }
 
         @Override // Binder interface
         public void keyguardDone(boolean authenticated, boolean wakeup) {
+            Trace.beginSection("KeyguardService.mBinder#keyguardDone");
             checkPermission();
             // TODO: Remove wakeup
             mKeyguardViewMediator.keyguardDone(authenticated);
+            Trace.endSection();
         }
 
         @Override // Binder interface
         public void setOccluded(boolean isOccluded) {
+            Trace.beginSection("KeyguardService.mBinder#setOccluded");
             checkPermission();
             mKeyguardViewMediator.setOccluded(isOccluded);
+            Trace.endSection();
         }
 
         @Override // Binder interface
-        public void dismiss() {
+        public void dismiss(boolean allowWhileOccluded) {
             checkPermission();
-            mKeyguardViewMediator.dismiss();
+            mKeyguardViewMediator.dismiss(allowWhileOccluded);
         }
 
         @Override // Binder interface
@@ -122,20 +129,26 @@
 
         @Override // Binder interface
         public void onStartedWakingUp() {
+            Trace.beginSection("KeyguardService.mBinder#onStartedWakingUp");
             checkPermission();
             mKeyguardViewMediator.onStartedWakingUp();
+            Trace.endSection();
         }
 
         @Override // Binder interface
         public void onScreenTurningOn(IKeyguardDrawnCallback callback) {
+            Trace.beginSection("KeyguardService.mBinder#onScreenTurningOn");
             checkPermission();
             mKeyguardViewMediator.onScreenTurningOn(callback);
+            Trace.endSection();
         }
 
         @Override // Binder interface
         public void onScreenTurnedOn() {
+            Trace.beginSection("KeyguardService.mBinder#onScreenTurningOn");
             checkPermission();
             mKeyguardViewMediator.onScreenTurnedOn();
+            Trace.endSection();
         }
 
         @Override // Binder interface
@@ -152,8 +165,10 @@
 
         @Override // Binder interface
         public void onSystemReady() {
+            Trace.beginSection("KeyguardService.mBinder#onSystemReady");
             checkPermission();
             mKeyguardViewMediator.onSystemReady();
+            Trace.endSection();
         }
 
         @Override // Binder interface
@@ -176,8 +191,10 @@
 
         @Override
         public void startKeyguardExitAnimation(long startTime, long fadeoutDuration) {
+            Trace.beginSection("KeyguardService.mBinder#startKeyguardExitAnimation");
             checkPermission();
             mKeyguardViewMediator.startKeyguardExitAnimation(startTime, fadeoutDuration);
+            Trace.endSection();
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 42a9ed5..de0c77b 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -16,7 +16,11 @@
 
 package com.android.systemui.keyguard;
 
-import android.annotation.UserIdInt;
+import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
+import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW;
+import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT;
+
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
@@ -42,6 +46,7 @@
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.os.SystemProperties;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.storage.StorageManager;
@@ -81,13 +86,6 @@
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.List;
-
-import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST;
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL;
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW;
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT;
 
 /**
  * Mediates requests related to the keyguard.  This includes queries about the
@@ -362,7 +360,7 @@
                 UserInfo info = UserManager.get(mContext).getUserInfo(userId);
                 if (info != null && (info.isGuest() || info.isDemo())) {
                     // If we just switched to a guest, try to dismiss keyguard.
-                    dismiss();
+                    dismiss(false /* allowWhileOccluded */);
                 }
             }
         }
@@ -499,6 +497,22 @@
                         userId);
             }
         }
+
+        @Override
+        public void onTrustChanged(int userId) {
+            if (userId == KeyguardUpdateMonitor.getCurrentUser()) {
+                synchronized (KeyguardViewMediator.this) {
+                    notifyTrustedChangedLocked(mUpdateMonitor.getUserHasTrust(userId));
+                }
+            }
+        }
+
+        @Override
+        public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) {
+            synchronized (KeyguardViewMediator.this) {
+                notifyHasLockscreenWallpaperChanged(hasLockscreenWallpaper);
+            }
+        }
     };
 
     ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() {
@@ -520,7 +534,9 @@
 
         @Override
         public void keyguardDoneDrawing() {
+            Trace.beginSection("KeyguardViewMediator.mViewMediatorCallback#keyguardDoneDrawing");
             mHandler.sendEmptyMessage(KEYGUARD_DONE_DRAWING);
+            Trace.endSection();
         }
 
         @Override
@@ -530,6 +546,7 @@
 
         @Override
         public void keyguardDonePending(boolean strongAuth) {
+            Trace.beginSection("KeyguardViewMediator.mViewMediatorCallback#keyguardDonePending");
             mKeyguardDonePending = true;
             mHideAnimationRun = true;
             mStatusBarKeyguardViewManager.startPreHideAnimation(null /* finishRunnable */);
@@ -538,20 +555,25 @@
             if (strongAuth) {
                 mUpdateMonitor.reportSuccessfulStrongAuthUnlockAttempt();
             }
+            Trace.endSection();
         }
 
         @Override
         public void keyguardGone() {
+            Trace.beginSection("KeyguardViewMediator.mViewMediatorCallback#keyguardGone");
             mKeyguardDisplayManager.hide();
+            Trace.endSection();
         }
 
         @Override
         public void readyForKeyguardDone() {
+            Trace.beginSection("KeyguardViewMediator.mViewMediatorCallback#readyForKeyguardDone");
             if (mKeyguardDonePending) {
                 // Somebody has called keyguardDonePending before, which means that we are
                 // authenticated
                 KeyguardViewMediator.this.keyguardDone(true /* authenticated */);
             }
+            Trace.endSection();
         }
 
         @Override
@@ -594,10 +616,7 @@
                 return KeyguardSecurityView.PROMPT_REASON_USER_REQUEST;
             } else if (any && (strongAuth & STRONG_AUTH_REQUIRED_AFTER_LOCKOUT) != 0) {
                 return KeyguardSecurityView.PROMPT_REASON_AFTER_LOCKOUT;
-            } else if (trust && (strongAuth & SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL) != 0) {
-                return KeyguardSecurityView.PROMPT_REASON_WRONG_CREDENTIAL;
             }
-
             return KeyguardSecurityView.PROMPT_REASON_NONE;
         }
     };
@@ -892,6 +911,7 @@
      * Let's us know when the device is waking up.
      */
     public void onStartedWakingUp() {
+        Trace.beginSection("KeyguardViewMediator#onStartedWakingUp");
 
         // TODO: Rename all screen off/on references to interactive/sleeping
         synchronized (this) {
@@ -903,15 +923,20 @@
         }
         KeyguardUpdateMonitor.getInstance(mContext).dispatchStartedWakingUp();
         maybeSendUserPresentBroadcast();
+        Trace.endSection();
     }
 
     public void onScreenTurningOn(IKeyguardDrawnCallback callback) {
+        Trace.beginSection("KeyguardViewMediator#onScreenTurningOn");
         notifyScreenOn(callback);
+        Trace.endSection();
     }
 
     public void onScreenTurnedOn() {
+        Trace.beginSection("KeyguardViewMediator#onScreenTurnedOn");
         notifyScreenTurnedOn();
         mUpdateMonitor.dispatchScreenTurnedOn();
+        Trace.endSection();
     }
 
     public void onScreenTurnedOff() {
@@ -1025,6 +1050,7 @@
      * @see android.app.KeyguardManager#exitKeyguardSecurely
      */
     public void verifyUnlock(IKeyguardExitCallback callback) {
+        Trace.beginSection("KeyguardViewMediator#verifyUnlock");
         synchronized (this) {
             if (DEBUG) Log.d(TAG, "verifyUnlock");
             if (shouldWaitForProvisioning()) {
@@ -1075,6 +1101,7 @@
                 }
             }
         }
+        Trace.endSection();
     }
 
     /**
@@ -1088,16 +1115,19 @@
      * Notify us when the keyguard is occluded by another window
      */
     public void setOccluded(boolean isOccluded) {
+        Trace.beginSection("KeyguardViewMediator#setOccluded");
         if (DEBUG) Log.d(TAG, "setOccluded " + isOccluded);
         mHandler.removeMessages(SET_OCCLUDED);
         Message msg = mHandler.obtainMessage(SET_OCCLUDED, (isOccluded ? 1 : 0), 0);
         mHandler.sendMessage(msg);
+        Trace.endSection();
     }
 
     /**
      * Handles SET_OCCLUDED message sent by setOccluded()
      */
     private void handleSetOccluded(boolean isOccluded) {
+        Trace.beginSection("KeyguardViewMediator#handleSetOccluded");
         synchronized (KeyguardViewMediator.this) {
             if (mHiding && isOccluded) {
                 // We're in the process of going away but WindowManager wants to show a
@@ -1112,6 +1142,7 @@
                 adjustStatusBarLocked();
             }
         }
+        Trace.endSection();
     }
 
     /**
@@ -1232,15 +1263,16 @@
 
     /**
      * Dismiss the keyguard through the security layers.
+     * @param allowWhileOccluded if true, dismiss the keyguard even if it's currently occluded.
      */
-    public void handleDismiss() {
-        if (mShowing && !mOccluded) {
+    public void handleDismiss(boolean allowWhileOccluded) {
+        if (mShowing && (allowWhileOccluded || !mOccluded)) {
             mStatusBarKeyguardViewManager.dismiss();
         }
     }
 
-    public void dismiss() {
-        mHandler.sendEmptyMessage(DISMISS);
+    public void dismiss(boolean allowWhileOccluded) {
+        mHandler.obtainMessage(DISMISS, allowWhileOccluded ? 1 : 0, 0).sendToTarget();
     }
 
     /**
@@ -1300,11 +1332,13 @@
      * @see #handleShow
      */
     private void showLocked(Bundle options) {
+        Trace.beginSection("KeyguardViewMediator#showLocked aqcuiring mShowKeyguardWakeLock");
         if (DEBUG) Log.d(TAG, "showLocked");
         // ensure we stay awake until we are finished displaying the keyguard
         mShowKeyguardWakeLock.acquire();
         Message msg = mHandler.obtainMessage(SHOW, options);
         mHandler.sendMessage(msg);
+        Trace.endSection();
     }
 
     /**
@@ -1312,9 +1346,11 @@
      * @see #handleHide()
      */
     private void hideLocked() {
+        Trace.beginSection("KeyguardViewMediator#hideLocked");
         if (DEBUG) Log.d(TAG, "hideLocked");
         Message msg = mHandler.obtainMessage(HIDE);
         mHandler.sendMessage(msg);
+        Trace.endSection();
     }
 
     public boolean isSecure() {
@@ -1330,6 +1366,9 @@
      */
     public void setCurrentUser(int newUserId) {
         KeyguardUpdateMonitor.setCurrentUser(newUserId);
+        synchronized (this) {
+            notifyTrustedChangedLocked(mUpdateMonitor.getUserHasTrust(newUserId));
+        }
     }
 
     private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@@ -1359,10 +1398,13 @@
     };
 
     public void keyguardDone(boolean authenticated) {
+        Trace.beginSection("KeyguardViewMediator#keyguardDone");
         if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated +")");
+        userActivity();
         EventLog.writeEvent(70000, 2);
         Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0);
         mHandler.sendMessage(msg);
+        Trace.endSection();
     }
 
     /**
@@ -1386,7 +1428,9 @@
                     handleReset();
                     break;
                 case VERIFY_UNLOCK:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage VERIFY_UNLOCK");
                     handleVerifyUnlock();
+                    Trace.endSection();
                     break;
                 case NOTIFY_STARTED_GOING_TO_SLEEP:
                     handleNotifyStartedGoingToSleep();
@@ -1395,25 +1439,37 @@
                     handleNotifyFinishedGoingToSleep();
                     break;
                 case NOTIFY_SCREEN_TURNING_ON:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage NOTIFY_SCREEN_TURNING_ON");
                     handleNotifyScreenTurningOn((IKeyguardDrawnCallback) msg.obj);
+                    Trace.endSection();
                     break;
                 case NOTIFY_SCREEN_TURNED_ON:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage NOTIFY_SCREEN_TURNED_ON");
                     handleNotifyScreenTurnedOn();
+                    Trace.endSection();
                     break;
                 case NOTIFY_SCREEN_TURNED_OFF:
                     handleNotifyScreenTurnedOff();
                     break;
                 case NOTIFY_STARTED_WAKING_UP:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage NOTIFY_STARTED_WAKING_UP");
                     handleNotifyStartedWakingUp();
+                    Trace.endSection();
                     break;
                 case KEYGUARD_DONE:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage KEYGUARD_DONE");
                     handleKeyguardDone(msg.arg1 != 0);
+                    Trace.endSection();
                     break;
                 case KEYGUARD_DONE_DRAWING:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage KEYGUARD_DONE_DRAWING");
                     handleKeyguardDoneDrawing();
+                    Trace.endSection();
                     break;
                 case SET_OCCLUDED:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage SET_OCCLUDED");
                     handleSetOccluded(msg.arg1 != 0);
+                    Trace.endSection();
                     break;
                 case KEYGUARD_TIMEOUT:
                     synchronized (KeyguardViewMediator.this) {
@@ -1421,15 +1477,19 @@
                     }
                     break;
                 case DISMISS:
-                    handleDismiss();
+                    handleDismiss(msg.arg1 == 1 ? true : false /* allowWhileOccluded */);
                     break;
                 case START_KEYGUARD_EXIT_ANIM:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage START_KEYGUARD_EXIT_ANIM");
                     StartKeyguardExitAnimParams params = (StartKeyguardExitAnimParams) msg.obj;
                     handleStartKeyguardExitAnimation(params.startTime, params.fadeoutDuration);
                     FalsingManager.getInstance(mContext).onSucccessfulUnlock();
+                    Trace.endSection();
                     break;
                 case KEYGUARD_DONE_PENDING_TIMEOUT:
+                    Trace.beginSection("KeyguardViewMediator#handleMessage KEYGUARD_DONE_PENDING_TIMEOUT");
                     Log.w(TAG, "Timeout while waiting for activity drawn!");
+                    Trace.endSection();
                     // Fall through.
                 case ON_ACTIVITY_DRAWN:
                     handleOnActivityDrawn();
@@ -1443,6 +1503,7 @@
      * @see #KEYGUARD_DONE
      */
     private void handleKeyguardDone(boolean authenticated) {
+        Trace.beginSection("KeyguardViewMediator#handleKeyguardDone");
         final int currentUser = KeyguardUpdateMonitor.getCurrentUser();
         if (mLockPatternUtils.isSecure(currentUser)) {
             mLockPatternUtils.getDevicePolicyManager().reportKeyguardDismissed(currentUser);
@@ -1480,6 +1541,7 @@
         }
 
         handleHide();
+        Trace.endSection();
     }
 
     private void sendUserPresentBroadcast() {
@@ -1504,6 +1566,7 @@
      * @see #KEYGUARD_DONE_DRAWING
      */
     private void handleKeyguardDoneDrawing() {
+        Trace.beginSection("KeyguardViewMediator#handleKeyguardDoneDrawing");
         synchronized(this) {
             if (DEBUG) Log.d(TAG, "handleKeyguardDoneDrawing");
             if (mWaitingUntilKeyguardVisible) {
@@ -1517,6 +1580,7 @@
                 mHandler.removeMessages(KEYGUARD_DONE_DRAWING);
             }
         }
+        Trace.endSection();
     }
 
     private void playSounds(boolean locked) {
@@ -1548,10 +1612,12 @@
     }
 
     private void updateActivityLockScreenState() {
+        Trace.beginSection("KeyguardViewMediator#updateActivityLockScreenState");
         try {
             ActivityManagerNative.getDefault().setLockScreenShown(mShowing, mOccluded);
         } catch (RemoteException e) {
         }
+        Trace.endSection();
     }
 
     /**
@@ -1559,6 +1625,7 @@
      * @see #SHOW
      */
     private void handleShow(Bundle options) {
+        Trace.beginSection("KeyguardViewMediator#handleShow");
         final int currentUser = KeyguardUpdateMonitor.getCurrentUser();
         if (mLockPatternUtils.isSecure(currentUser)) {
             mLockPatternUtils.getDevicePolicyManager().reportKeyguardSecured(currentUser);
@@ -1584,11 +1651,14 @@
             mShowKeyguardWakeLock.release();
         }
         mKeyguardDisplayManager.show();
+        Trace.endSection();
     }
 
     private final Runnable mKeyguardGoingAwayRunnable = new Runnable() {
         @Override
         public void run() {
+            Trace.beginSection("KeyguardViewMediator.mKeyGuardGoingAwayRunnable");
+            if (DEBUG) Log.d(TAG, "keyguardGoingAway");
             try {
                 mStatusBarKeyguardViewManager.keyguardGoingAway();
 
@@ -1611,6 +1681,7 @@
             } catch (RemoteException e) {
                 Log.e(TAG, "Error while calling WindowManager", e);
             }
+            Trace.endSection();
         }
     };
 
@@ -1619,6 +1690,7 @@
      * @see #HIDE
      */
     private void handleHide() {
+        Trace.beginSection("KeyguardViewMediator#handleHide");
         synchronized (KeyguardViewMediator.this) {
             if (DEBUG) Log.d(TAG, "handleHide");
 
@@ -1646,6 +1718,7 @@
                         mHideAnimation.getDuration());
             }
         }
+        Trace.endSection();
     }
 
     private void handleOnActivityDrawn() {
@@ -1656,6 +1729,9 @@
     }
 
     private void handleStartKeyguardExitAnimation(long startTime, long fadeoutDuration) {
+        Trace.beginSection("KeyguardViewMediator#handleStartKeyguardExitAnimation");
+        if (DEBUG) Log.d(TAG, "handleStartKeyguardExitAnimation startTime=" + startTime
+                + " fadeoutDuration=" + fadeoutDuration);
         synchronized (KeyguardViewMediator.this) {
 
             if (!mHiding) {
@@ -1670,6 +1746,7 @@
                 // this to our ViewRootImpl.
                 mStatusBarKeyguardViewManager.getViewRootImpl().setReportNextDraw();
                 notifyDrawn(mDrawnCallback);
+                mDrawnCallback = null;
             }
 
             // only play "unlock" noises if not on a call (since the incall UI
@@ -1678,6 +1755,7 @@
                 playSounds(false);
             }
 
+            mWakeAndUnlocking = false;
             setShowingLocked(false);
             mStatusBarKeyguardViewManager.hide(startTime, fadeoutDuration);
             resetKeyguardDonePendingLocked();
@@ -1686,6 +1764,7 @@
             adjustStatusBarLocked();
             sendUserPresentBroadcast();
         }
+        Trace.endSection();
     }
 
     private void adjustStatusBarLocked() {
@@ -1737,12 +1816,14 @@
      * @see #VERIFY_UNLOCK
      */
     private void handleVerifyUnlock() {
+        Trace.beginSection("KeyguardViewMediator#handleVerifyUnlock");
         synchronized (KeyguardViewMediator.this) {
             if (DEBUG) Log.d(TAG, "handleVerifyUnlock");
             setShowingLocked(true);
             mStatusBarKeyguardViewManager.verifyUnlock();
             updateActivityLockScreenState();
         }
+        Trace.endSection();
     }
 
     private void handleNotifyStartedGoingToSleep() {
@@ -1764,13 +1845,16 @@
     }
 
     private void handleNotifyStartedWakingUp() {
+        Trace.beginSection("KeyguardViewMediator#handleMotifyStartedWakingUp");
         synchronized (KeyguardViewMediator.this) {
             if (DEBUG) Log.d(TAG, "handleNotifyWakingUp");
             mStatusBarKeyguardViewManager.onStartedWakingUp();
         }
+        Trace.endSection();
     }
 
     private void handleNotifyScreenTurningOn(IKeyguardDrawnCallback callback) {
+        Trace.beginSection("KeyguardViewMediator#handleNotifyScreenTurningOn");
         synchronized (KeyguardViewMediator.this) {
             if (DEBUG) Log.d(TAG, "handleNotifyScreenTurningOn");
             mStatusBarKeyguardViewManager.onScreenTurningOn();
@@ -1782,29 +1866,35 @@
                 }
             }
         }
+        Trace.endSection();
     }
 
     private void handleNotifyScreenTurnedOn() {
+        Trace.beginSection("KeyguardViewMediator#handleNotifyScreenTurnedOn");
         synchronized (this) {
             if (DEBUG) Log.d(TAG, "handleNotifyScreenTurnedOn");
             mStatusBarKeyguardViewManager.onScreenTurnedOn();
         }
+        Trace.endSection();
     }
 
     private void handleNotifyScreenTurnedOff() {
         synchronized (this) {
             if (DEBUG) Log.d(TAG, "handleNotifyScreenTurnedOff");
             mStatusBarKeyguardViewManager.onScreenTurnedOff();
+            mDrawnCallback = null;
             mWakeAndUnlocking = false;
         }
     }
 
     private void notifyDrawn(final IKeyguardDrawnCallback callback) {
+        Trace.beginSection("KeyguardViewMediator#notifyDrawn");
         try {
             callback.onDrawn();
         } catch (RemoteException e) {
             Slog.w(TAG, "Exception calling onDrawn():", e);
         }
+        Trace.endSection();
     }
 
     private void resetKeyguardDonePendingLocked() {
@@ -1824,8 +1914,10 @@
     }
 
     public void onWakeAndUnlocking() {
+        Trace.beginSection("KeyguardViewMediator#onWakeAndUnlocking");
         mWakeAndUnlocking = true;
         keyguardDone(true /* authenticated */);
+        Trace.endSection();
     }
 
     public StatusBarKeyguardViewManager registerStatusBar(PhoneStatusBar phoneStatusBar,
@@ -1838,9 +1930,11 @@
     }
 
     public void startKeyguardExitAnimation(long startTime, long fadeoutDuration) {
+        Trace.beginSection("KeyguardViewMediator#startKeyguardExitAnimation");
         Message msg = mHandler.obtainMessage(START_KEYGUARD_EXIT_ANIM,
                 new StartKeyguardExitAnimParams(startTime, fadeoutDuration));
         mHandler.sendMessage(msg);
+        Trace.endSection();
     }
 
     public void onActivityDrawn() {
@@ -1909,6 +2003,35 @@
         }
     }
 
+    private void notifyTrustedChangedLocked(boolean trusted) {
+        int size = mKeyguardStateCallbacks.size();
+        for (int i = size - 1; i >= 0; i--) {
+            try {
+                mKeyguardStateCallbacks.get(i).onTrustedChanged(trusted);
+            } catch (RemoteException e) {
+                Slog.w(TAG, "Failed to call notifyTrustedChangedLocked", e);
+                if (e instanceof DeadObjectException) {
+                    mKeyguardStateCallbacks.remove(i);
+                }
+            }
+        }
+    }
+
+    private void notifyHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) {
+        int size = mKeyguardStateCallbacks.size();
+        for (int i = size - 1; i >= 0; i--) {
+            try {
+                mKeyguardStateCallbacks.get(i).onHasLockscreenWallpaperChanged(
+                        hasLockscreenWallpaper);
+            } catch (RemoteException e) {
+                Slog.w(TAG, "Failed to call onHasLockscreenWallpaperChanged", e);
+                if (e instanceof DeadObjectException) {
+                    mKeyguardStateCallbacks.remove(i);
+                }
+            }
+        }
+    }
+
     public void addStateMonitorCallback(IKeyguardStateCallback callback) {
         synchronized (this) {
             mKeyguardStateCallbacks.add(callback);
@@ -1916,8 +2039,11 @@
                 callback.onSimSecureStateChanged(mUpdateMonitor.isSimPinSecure());
                 callback.onShowingStateChanged(mShowing);
                 callback.onInputRestrictedStateChanged(mInputRestricted);
+                callback.onTrustedChanged(mUpdateMonitor.getUserHasTrust(
+                        KeyguardUpdateMonitor.getCurrentUser()));
+                callback.onHasLockscreenWallpaperChanged(mUpdateMonitor.hasLockscreenWallpaper());
             } catch (RemoteException e) {
-                Slog.w(TAG, "Failed to call onShowingStateChanged or onSimSecureStateChanged or onInputRestrictedStateChanged", e);
+                Slog.w(TAG, "Failed to call to IKeyguardStateCallback", e);
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
index 63444d2..a21408d 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
@@ -233,10 +233,14 @@
                     .addFloat(mQsPanel.getTileLayout(), "alpha", 0, 1)
                     .addFloat(mQsPanel.getFooter().getView(), "alpha", 0, 1).build();
             mAllViews.add(mQsPanel.getFooter().getView());
-            Path path = new Path();
-            path.moveTo(0, 0);
-            path.cubicTo(0, 0, 0, 1, 1, 1);
-            PathInterpolatorBuilder interpolatorBuilder = new PathInterpolatorBuilder(0, 0, 0, 1);
+            float px = 0;
+            float py = 1;
+            if (tiles.size() <= 3) {
+                px = 1;
+            } else if (tiles.size() <= 6) {
+                px = .4f;
+            }
+            PathInterpolatorBuilder interpolatorBuilder = new PathInterpolatorBuilder(0, 0, px, py);
             translationXBuilder.setInterpolator(interpolatorBuilder.getXInterpolator());
             translationYBuilder.setInterpolator(interpolatorBuilder.getYInterpolator());
             mTranslationXAnimator = translationXBuilder.build();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java
index d5fb8f2..19a5d52 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java
@@ -146,7 +146,9 @@
             return getHeight();
         }
         if (mQSDetail.isClosingDetail()) {
-            return mQSPanel.getGridHeight() + mHeader.getCollapsedHeight() + getPaddingBottom();
+            int panelHeight = ((LayoutParams) mQSPanel.getLayoutParams()).topMargin
+                    + mQSPanel.getMeasuredHeight();
+            return panelHeight + getPaddingBottom();
         } else {
             return getMeasuredHeight();
         }
@@ -235,6 +237,10 @@
         mQSPanel.setListening(mListening && mQsExpanded);
     }
 
+    public void setHeaderListening(boolean listening) {
+        mHeader.setListening(listening);
+    }
+
     public void setQsExpansion(float expansion, float headerTranslation) {
         if (DEBUG) Log.d(TAG, "setQSExpansion " + expansion + " " + headerTranslation);
         mQsExpansion = expansion;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java
index 65d6805..15ae4ad 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java
@@ -126,8 +126,8 @@
                 ? R.drawable.ic_qs_branded_vpn
                 : R.drawable.ic_qs_vpn);
             if (mFooterIconId != footerIconId) {
-                mFooterIcon.setImageResource(footerIconId);
                 mFooterIconId = footerIconId;
+                mMainHandler.post(mUpdateIcon);
             }
             mIsVisible = mIsIconVisible;
         }
@@ -207,6 +207,13 @@
         }
     }
 
+    private final Runnable mUpdateIcon = new Runnable() {
+        @Override
+        public void run() {
+            mFooterIcon.setImageResource(mFooterIconId);
+        }
+    };
+
     private final Runnable mUpdateDisplayState = new Runnable() {
         @Override
         public void run() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index ad5c9c0..fef8930 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -182,6 +182,7 @@
         if (mCustomizePanel != null) {
             mCustomizePanel.setHost(mHost);
         }
+        mBrightnessController.setBackgroundLooper(host.getLooper());
     }
 
     public QSTileHost getHost() {
@@ -245,10 +246,12 @@
         if (mListening) {
             refreshAllTiles();
         }
-        if (listening) {
-            mBrightnessController.registerCallbacks();
-        } else {
-            mBrightnessController.unregisterCallbacks();
+        if (mBrightnessView.getVisibility() == View.VISIBLE) {
+            if (listening) {
+                mBrightnessController.registerCallbacks();
+            } else {
+                mBrightnessController.unregisterCallbacks();
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
index 3a693cf..8d7f6ee 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
@@ -297,6 +297,9 @@
         mAccessibilityMoving = false;
         mTiles.remove(mEditIndex--);
         notifyItemRemoved(mEditIndex - 1);
+        // Don't remove items when the last position is selected.
+        if (position == mEditIndex) position--;
+
         move(mAccessibilityFromIndex, position, v);
         notifyDataSetChanged();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
index 2d1f753..9415b27 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.qs.tiles;
 
+import android.app.ActivityManager;
 import android.content.Intent;
 import android.provider.Settings;
 import android.widget.Switch;
@@ -29,11 +30,12 @@
 public class NightDisplayTile extends QSTile<QSTile.BooleanState>
         implements NightDisplayController.Callback {
 
-    private final NightDisplayController mController;
+    private NightDisplayController mController;
+    private boolean mIsListening;
 
     public NightDisplayTile(Host host) {
         super(host);
-        mController = new NightDisplayController(mContext);
+        mController = new NightDisplayController(mContext, ActivityManager.getCurrentUser());
     }
 
     @Override
@@ -54,6 +56,22 @@
     }
 
     @Override
+    protected void handleUserSwitch(int newUserId) {
+        // Stop listening to the old controller.
+        if (mIsListening) {
+            mController.setListener(null);
+        }
+
+        // Make a new controller for the new user.
+        mController = new NightDisplayController(mContext, newUserId);
+        if (mIsListening) {
+            mController.setListener(this);
+        }
+
+        super.handleUserSwitch(newUserId);
+    }
+
+    @Override
     protected void handleUpdateState(BooleanState state, Object arg) {
         final boolean isActivated = mController.isActivated();
         state.value = isActivated;
@@ -79,6 +97,7 @@
 
     @Override
     protected void setListening(boolean listening) {
+        mIsListening = listening;
         if (listening) {
             mController.setListener(this);
             refreshState();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
index 7161053..914035b 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
@@ -29,6 +29,7 @@
 
     public boolean launchedWithAltTab;
     public boolean launchedFromApp;
+    public boolean launchedFromBlacklistedApp;
     public boolean launchedFromHome;
     public boolean launchedViaDragGesture;
     public boolean launchedViaDockGesture;
@@ -39,6 +40,7 @@
     public void reset() {
         launchedFromHome = false;
         launchedFromApp = false;
+        launchedFromBlacklistedApp = false;
         launchedToTaskId = -1;
         launchedWithAltTab = false;
         launchedViaDragGesture = false;
@@ -53,8 +55,14 @@
         RecentsActivityLaunchState launchState = Recents.getConfiguration().getLaunchState();
         if (launchedFromApp) {
             if (!launchState.launchedWithAltTab && debugFlags.isFastToggleRecentsEnabled()) {
-                // If fast toggling, focus the front most task so that the next tap will focus the
-                // N-1 task
+                // If fast toggling, focus the front most task so that the next tap will launch the
+                // task
+                return numTasks - 1;
+            }
+
+            if (launchState.launchedFromBlacklistedApp) {
+                // If we are launching from a blacklisted app, focus the front most task so that the
+                // next tap will launch the task
                 return numTasks - 1;
             }
 
@@ -67,7 +75,7 @@
                 return -1;
             }
 
-            // If coming from home, focus the first task
+            // If coming from home, focus the front most task
             return numTasks - 1;
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
index f9e59e7..2757fc4 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
@@ -807,15 +807,19 @@
             boolean isHomeStackVisible, boolean animate, int growTarget) {
         RecentsTaskLoader loader = Recents.getTaskLoader();
         RecentsActivityLaunchState launchState = Recents.getConfiguration().getLaunchState();
+        SystemServicesProxy ssp = Recents.getSystemServices();
+        boolean isBlacklisted = (runningTask != null)
+                ? ssp.isBlackListedActivity(runningTask.baseActivity.getClassName())
+                : false;
 
-        int runningTaskId = !mLaunchedWhileDocking && (runningTask != null)
+        int runningTaskId = !mLaunchedWhileDocking && !isBlacklisted && (runningTask != null)
                 ? runningTask.id
                 : -1;
 
         // In the case where alt-tab is triggered, we never get a preloadRecents() call, so we
         // should always preload the tasks now. If we are dragging in recents, reload them as
         // the stacks might have changed.
-        if (mLaunchedWhileDocking || mTriggeredFromAltTab ||sInstanceLoadPlan == null) {
+        if (mLaunchedWhileDocking || mTriggeredFromAltTab || sInstanceLoadPlan == null) {
             // Create a new load plan if preloadRecents() was never triggered
             sInstanceLoadPlan = loader.createLoadPlan(mContext);
         }
@@ -825,11 +829,13 @@
 
         TaskStack stack = sInstanceLoadPlan.getTaskStack();
         boolean hasRecentTasks = stack.getTaskCount() > 0;
-        boolean useThumbnailTransition = (runningTask != null) && !isHomeStackVisible && hasRecentTasks;
+        boolean useThumbnailTransition = (runningTask != null) && !isHomeStackVisible &&
+                hasRecentTasks;
 
         // Update the launch state that we need in updateHeaderBarLayout()
         launchState.launchedFromHome = !useThumbnailTransition && !mLaunchedWhileDocking;
         launchState.launchedFromApp = useThumbnailTransition || mLaunchedWhileDocking;
+        launchState.launchedFromBlacklistedApp = launchState.launchedFromApp && isBlacklisted;
         launchState.launchedViaDockGesture = mLaunchedWhileDocking;
         launchState.launchedViaDragGesture = mDraggingInRecents;
         launchState.launchedToTaskId = runningTaskId;
@@ -857,7 +863,9 @@
         }
 
         ActivityOptions opts;
-        if (useThumbnailTransition) {
+        if (isBlacklisted) {
+            opts = getUnknownTransitionActivityOptions();
+        } else if (useThumbnailTransition) {
             // Try starting with a thumbnail transition
             opts = getThumbnailTransitionActivityOptions(runningTask, mDummyStackView,
                     windowOverrideRect);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index 37a4948..b896f8a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -243,6 +243,9 @@
         if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
             Collections.addAll(sRecentsBlacklist,
                     res.getStringArray(R.array.recents_tv_blacklist_array));
+        } else {
+            Collections.addAll(sRecentsBlacklist,
+                    res.getStringArray(R.array.recents_blacklist_array));
         }
     }
 
@@ -261,6 +264,13 @@
     }
 
     /**
+     * @return whether the provided {@param className} is blacklisted
+     */
+    public boolean isBlackListedActivity(String className) {
+        return sRecentsBlacklist.contains(className);
+    }
+
+    /**
      * Returns a list of the recents tasks.
      *
      * @param includeFrontMostExcludedTask if set, will ensure that the front most excluded task
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
index ca59831..ba31e3e 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -200,6 +200,10 @@
 
                             if (cachedThumbnailData.thumbnail == null) {
                                 cachedThumbnailData.thumbnail = mDefaultThumbnail;
+                            } else {
+                                // Kick off an early upload of the bitmap to GL so
+                                // that this won't jank the first frame it's drawn in.
+                                cachedThumbnailData.thumbnail.prepareToDraw();
                             }
 
                             // When svelte, we trim the memory to just the visible thumbnails when
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
index b5753ba..745f5a5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
@@ -275,10 +275,16 @@
                 new RectF(0, 0.5f, 1, 1));
 
         @Override
-        public boolean acceptsDrop(int x, int y, int width, int height, boolean isCurrentTarget) {
-            return isCurrentTarget
-                    ? areaContainsPoint(expandedTouchDockArea, width, height, x, y)
-                    : areaContainsPoint(touchArea, width, height, x, y);
+        public boolean acceptsDrop(int x, int y, int width, int height, Rect insets,
+                boolean isCurrentTarget) {
+            if (isCurrentTarget) {
+                getMappedRect(expandedTouchDockArea, width, height, mTmpRect);
+                return mTmpRect.contains(x, y);
+            } else {
+                getMappedRect(touchArea, width, height, mTmpRect);
+                updateBoundsWithSystemInsets(mTmpRect, insets);
+                return mTmpRect.contains(x, y);
+            }
         }
 
         // Represents the view state of this dock state
@@ -423,6 +429,7 @@
         private final RectF touchArea;
         private final RectF dockArea;
         private final RectF expandedTouchDockArea;
+        private static final Rect mTmpRect = new Rect();
 
         /**
          * @param createMode used to pass to ActivityManager to dock the task
@@ -452,23 +459,11 @@
         }
 
         /**
-         * Returns whether {@param x} and {@param y} are contained in the area scaled to the
-         * given {@param width} and {@param height}.
-         */
-        public boolean areaContainsPoint(RectF area, int width, int height, float x, float y) {
-            int left = (int) (area.left * width);
-            int top = (int) (area.top * height);
-            int right = (int) (area.right * width);
-            int bottom = (int) (area.bottom * height);
-            return x >= left && y >= top && x <= right && y <= bottom;
-        }
-
-        /**
          * Returns the docked task bounds with the given {@param width} and {@param height}.
          */
-        public Rect getPreDockedBounds(int width, int height) {
-            return new Rect((int) (dockArea.left * width), (int) (dockArea.top * height),
-                    (int) (dockArea.right * width), (int) (dockArea.bottom * height));
+        public Rect getPreDockedBounds(int width, int height, Rect insets) {
+            getMappedRect(dockArea, width, height, mTmpRect);
+            return updateBoundsWithSystemInsets(mTmpRect, insets);
         }
 
         /**
@@ -511,10 +506,34 @@
             int top = dockArea.bottom < 1f
                     ? 0
                     : insets.top;
-            layoutAlgorithm.getTaskStackBounds(displayRect, windowRectOut, top, insets.left,
-                    insets.right, taskStackBounds);
+            // For now, ignore the left insets since we always dock on the left and show Recents
+            // on the right
+            layoutAlgorithm.getTaskStackBounds(displayRect, windowRectOut, top, 0, insets.right,
+                    taskStackBounds);
             return taskStackBounds;
         }
+
+        /**
+         * Returns the expanded bounds in certain dock sides such that the bounds account for the
+         * system insets (namely the vertical nav bar).  This call modifies and returns the given
+         * {@param bounds}.
+         */
+        private Rect updateBoundsWithSystemInsets(Rect bounds, Rect insets) {
+            if (dockSide == DOCKED_LEFT) {
+                bounds.right += insets.left;
+            } else if (dockSide == DOCKED_RIGHT) {
+                bounds.left -= insets.right;
+            }
+            return bounds;
+        }
+
+        /**
+         * Returns the mapped rect to the given dimensions.
+         */
+        private void getMappedRect(RectF bounds, int width, int height, Rect out) {
+            out.set((int) (bounds.left * width), (int) (bounds.top * height),
+                    (int) (bounds.right * width), (int) (bounds.bottom * height));
+        }
     }
 
     // A comparator that sorts tasks by their freeform state
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/DropTarget.java b/packages/SystemUI/src/com/android/systemui/recents/views/DropTarget.java
index 3ad368c..f2a6310 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/DropTarget.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/DropTarget.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.recents.views;
 
+import android.graphics.Rect;
+
 /**
  * Represents a drop target for a drag gesture.
  */
@@ -25,5 +27,5 @@
      * Returns whether this target can accept this drop.  The x,y are relative to the top level
      * RecentsView, and the width/height are of the RecentsView.
      */
-    boolean acceptsDrop(int x, int y, int width, int height, boolean isCurrentTarget);
+    boolean acceptsDrop(int x, int y, int width, int height, Rect insets, boolean isCurrentTarget);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index 43d0cf6..24ef433 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -104,7 +104,7 @@
     private boolean mLastTaskLaunchedWasFreeform;
 
     @ViewDebug.ExportedProperty(category="recents")
-    private Rect mSystemInsets = new Rect();
+    Rect mSystemInsets = new Rect();
     private int mDividerSize;
 
     private Drawable mBackgroundScrim = new ColorDrawable(
@@ -739,9 +739,10 @@
                         ? overrideHintAlpha
                         : viewState.hintTextAlpha;
                 Rect bounds = isDefaultDockState
-                        ? dockState.getPreDockedBounds(getMeasuredWidth(), getMeasuredHeight())
+                        ? dockState.getPreDockedBounds(getMeasuredWidth(), getMeasuredHeight(),
+                                mSystemInsets)
                         : dockState.getDockedBounds(getMeasuredWidth(), getMeasuredHeight(),
-                        mDividerSize, mSystemInsets, getResources());
+                                mDividerSize, mSystemInsets, getResources());
                 if (viewState.dockAreaOverlay.getCallback() != this) {
                     viewState.dockAreaOverlay.setCallback(this);
                     viewState.dockAreaOverlay.setBounds(bounds);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsViewTouchHandler.java
index c692a16..636d4d6 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsViewTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsViewTouchHandler.java
@@ -46,7 +46,7 @@
  */
 class DockRegion {
     public static TaskStack.DockState[] PHONE_LANDSCAPE = {
-            // We only allow docking to the left for now on small devices
+            // We only allow docking to the left in landscape for now on small devices
             TaskStack.DockState.LEFT
     };
     public static TaskStack.DockState[] PHONE_PORTRAIT = {
@@ -113,10 +113,11 @@
         boolean isLandscape = mRv.getResources().getConfiguration().orientation ==
                 Configuration.ORIENTATION_LANDSCAPE;
         RecentsConfiguration config = Recents.getConfiguration();
-        TaskStack.DockState[] dockStates = isLandscape ?
-                (config.isLargeScreen ? DockRegion.TABLET_LANDSCAPE : DockRegion.PHONE_LANDSCAPE) :
-                (config.isLargeScreen ? DockRegion.TABLET_PORTRAIT : DockRegion.PHONE_PORTRAIT);
-        return dockStates;
+        if (config.isLargeScreen) {
+            return isLandscape ? DockRegion.TABLET_LANDSCAPE : DockRegion.TABLET_PORTRAIT;
+        } else {
+            return isLandscape ? DockRegion.PHONE_LANDSCAPE : DockRegion.PHONE_PORTRAIT;
+        }
     }
 
     /**
@@ -226,7 +227,7 @@
                         // Give priority to the current drop target to retain the touch handling
                         if (mLastDropTarget != null) {
                             if (mLastDropTarget.acceptsDrop((int) evX, (int) evY, width, height,
-                                    true /* isCurrentTarget */)) {
+                                    mRv.mSystemInsets, true /* isCurrentTarget */)) {
                                 currentDropTarget = mLastDropTarget;
                             }
                         }
@@ -235,7 +236,7 @@
                         if (currentDropTarget == null) {
                             for (DropTarget target : mDropTargets) {
                                 if (target.acceptsDrop((int) evX, (int) evY, width, height,
-                                        false /* isCurrentTarget */)) {
+                                        mRv.mSystemInsets, false /* isCurrentTarget */)) {
                                     currentDropTarget = target;
                                     break;
                                 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java
index 89789bce..702b076 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java
@@ -556,7 +556,9 @@
                     Math.max(0, mUnfocusedRange.getAbsoluteX(maxBottomNormX)));
             boolean scrollToFront = launchState.launchedFromHome ||
                     launchState.launchedViaDockGesture;
-            if (launchState.launchedWithAltTab) {
+            if (launchState.launchedFromBlacklistedApp) {
+                mInitialScrollP = mMaxScrollP;
+            } else if (launchState.launchedWithAltTab) {
                 mInitialScrollP = Utilities.clamp(launchTaskIndex, mMinScrollP, mMaxScrollP);
             } else if (scrollToFront) {
                 mInitialScrollP = Utilities.clamp(launchTaskIndex, mMinScrollP, mMaxScrollP);
@@ -579,6 +581,7 @@
         mTaskIndexOverrideMap.clear();
 
         boolean scrollToFront = launchState.launchedFromHome ||
+                launchState.launchedFromBlacklistedApp ||
                 launchState.launchedViaDockGesture;
         if (getInitialFocusState() == STATE_UNFOCUSED && mNumStackTasks > 1) {
             if (ignoreScrollToFront || (!launchState.launchedWithAltTab && !scrollToFront)) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
index 21780a6..24e75ac 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -218,7 +218,8 @@
     // The drop targets for a task drag
     private DropTarget mFreeformWorkspaceDropTarget = new DropTarget() {
         @Override
-        public boolean acceptsDrop(int x, int y, int width, int height, boolean isCurrentTarget) {
+        public boolean acceptsDrop(int x, int y, int width, int height, Rect insets,
+                boolean isCurrentTarget) {
             // This drop target has a fixed bounds and should be checked last, so just fall through
             // if it is the current target
             if (!isCurrentTarget) {
@@ -230,7 +231,8 @@
 
     private DropTarget mStackDropTarget = new DropTarget() {
         @Override
-        public boolean acceptsDrop(int x, int y, int width, int height, boolean isCurrentTarget) {
+        public boolean acceptsDrop(int x, int y, int width, int height, Rect insets,
+                boolean isCurrentTarget) {
             // This drop target has a fixed bounds and should be checked last, so just fall through
             // if it is the current target
             if (!isCurrentTarget) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
index 3193759..c46adf1 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
@@ -164,6 +164,7 @@
     /** Sets the thumbnail to a given bitmap. */
     void setThumbnail(Bitmap bm, ActivityManager.TaskThumbnailInfo thumbnailInfo) {
         if (bm != null) {
+            bm.prepareToDraw();
             mBitmapShader = new BitmapShader(bm, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
             mDrawPaint.setShader(mBitmapShader);
             mThumbnailRect.set(0, 0, bm.getWidth(), bm.getHeight());
diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
index d5131be..1c6fffb 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
@@ -23,6 +23,8 @@
 import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.IPowerManager;
+import android.os.Looper;
+import android.os.Message;
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -45,6 +47,12 @@
      */
     private static final float BRIGHTNESS_ADJ_RESOLUTION = 2048;
 
+    private static final int MSG_UPDATE_ICON = 0;
+    private static final int MSG_UPDATE_SLIDER = 1;
+    private static final int MSG_SET_CHECKED = 2;
+    private static final int MSG_ATTACH_LISTENER = 3;
+    private static final int MSG_DETACH_LISTENER = 4;
+
     private final int mMinimumBacklight;
     private final int mMaximumBacklight;
 
@@ -54,13 +62,14 @@
     private final boolean mAutomaticAvailable;
     private final IPowerManager mPower;
     private final CurrentUserTracker mUserTracker;
-    private final Handler mHandler;
+
+    private Handler mBackgroundHandler;
     private final BrightnessObserver mBrightnessObserver;
 
     private ArrayList<BrightnessStateChangeCallback> mChangeCallbacks =
             new ArrayList<BrightnessStateChangeCallback>();
 
-    private boolean mAutomatic;
+    private volatile boolean mAutomatic;
     private boolean mListening;
     private boolean mExternalChange;
 
@@ -90,24 +99,20 @@
         @Override
         public void onChange(boolean selfChange, Uri uri) {
             if (selfChange) return;
-            try {
-                mExternalChange = true;
-                if (BRIGHTNESS_MODE_URI.equals(uri)) {
-                    updateMode();
-                    updateSlider();
-                } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
-                    updateSlider();
-                } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
-                    updateSlider();
-                } else {
-                    updateMode();
-                    updateSlider();
-                }
-                for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
-                    cb.onBrightnessLevelChanged();
-                }
-            } finally {
-                mExternalChange = false;
+
+            if (BRIGHTNESS_MODE_URI.equals(uri)) {
+                mBackgroundHandler.post(mUpdateModeRunnable);
+                mBackgroundHandler.post(mUpdateSliderRunnable);
+            } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
+                mBackgroundHandler.post(mUpdateSliderRunnable);
+            } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
+                mBackgroundHandler.post(mUpdateSliderRunnable);
+            } else {
+                mBackgroundHandler.post(mUpdateModeRunnable);
+                mBackgroundHandler.post(mUpdateSliderRunnable);
+            }
+            for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
+                cb.onBrightnessLevelChanged();
             }
         }
 
@@ -132,16 +137,117 @@
 
     }
 
+    private final Runnable mStartListeningRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mBrightnessObserver.startObserving();
+            mUserTracker.startTracking();
+
+            // Update the slider and mode before attaching the listener so we don't
+            // receive the onChanged notifications for the initial values.
+            mUpdateModeRunnable.run();
+            mUpdateSliderRunnable.run();
+
+            mHandler.sendEmptyMessage(MSG_ATTACH_LISTENER);
+        }
+    };
+
+    private final Runnable mStopListeningRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mBrightnessObserver.stopObserving();
+            mUserTracker.stopTracking();
+
+            mHandler.sendEmptyMessage(MSG_DETACH_LISTENER);
+        }
+    };
+
+    /**
+     * Fetch the brightness mode from the system settings and update the icon. Should be called from
+     * background thread.
+     */
+    private final Runnable mUpdateModeRunnable = new Runnable() {
+        @Override
+        public void run() {
+            if (mAutomaticAvailable) {
+                int automatic;
+                automatic = Settings.System.getIntForUser(mContext.getContentResolver(),
+                        Settings.System.SCREEN_BRIGHTNESS_MODE,
+                        Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL,
+                        UserHandle.USER_CURRENT);
+                mAutomatic = automatic != Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
+                mHandler.obtainMessage(MSG_UPDATE_ICON, mAutomatic ? 1 : 0).sendToTarget();
+            } else {
+                mHandler.obtainMessage(MSG_SET_CHECKED, 0).sendToTarget();
+                mHandler.obtainMessage(MSG_UPDATE_ICON, 0 /* automatic */).sendToTarget();
+            }
+        }
+    };
+
+    /**
+     * Fetch the brightness from the system settings and update the slider. Should be called from
+     * background thread.
+     */
+    private final Runnable mUpdateSliderRunnable = new Runnable() {
+        @Override
+        public void run() {
+            if (mAutomatic) {
+                float value = Settings.System.getFloatForUser(mContext.getContentResolver(),
+                        Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0,
+                        UserHandle.USER_CURRENT);
+                mHandler.obtainMessage(MSG_UPDATE_SLIDER, (int) BRIGHTNESS_ADJ_RESOLUTION,
+                        (int) ((value + 1) * BRIGHTNESS_ADJ_RESOLUTION / 2f)).sendToTarget();
+            } else {
+                int value;
+                value = Settings.System.getIntForUser(mContext.getContentResolver(),
+                        Settings.System.SCREEN_BRIGHTNESS, mMaximumBacklight,
+                        UserHandle.USER_CURRENT);
+                mHandler.obtainMessage(MSG_UPDATE_SLIDER, mMaximumBacklight - mMinimumBacklight,
+                        value - mMinimumBacklight).sendToTarget();
+            }
+        }
+    };
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            mExternalChange = true;
+            try {
+                switch (msg.what) {
+                    case MSG_UPDATE_ICON:
+                        updateIcon(msg.arg1 != 0);
+                        break;
+                    case MSG_UPDATE_SLIDER:
+                        mControl.setMax(msg.arg1);
+                        mControl.setValue(msg.arg2);
+                        break;
+                    case MSG_SET_CHECKED:
+                        mControl.setChecked(msg.arg1 != 0);
+                        break;
+                    case MSG_ATTACH_LISTENER:
+                        mControl.setOnChangedListener(BrightnessController.this);
+                        break;
+                    case MSG_DETACH_LISTENER:
+                        mControl.setOnChangedListener(null);
+                    default:
+                        super.handleMessage(msg);
+                }
+            } finally {
+                mExternalChange = false;
+            }
+        }
+    };
+
     public BrightnessController(Context context, ImageView icon, ToggleSlider control) {
         mContext = context;
         mIcon = icon;
         mControl = control;
-        mHandler = new Handler();
+        mBackgroundHandler = new Handler(Looper.getMainLooper());
         mUserTracker = new CurrentUserTracker(mContext) {
             @Override
             public void onUserSwitched(int newUserId) {
-                updateMode();
-                updateSlider();
+                mBackgroundHandler.post(mUpdateModeRunnable);
+                mBackgroundHandler.post(mUpdateSliderRunnable);
             }
         };
         mBrightnessObserver = new BrightnessObserver(mHandler);
@@ -155,6 +261,10 @@
         mPower = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
     }
 
+    public void setBackgroundLooper(Looper backgroundLooper) {
+        mBackgroundHandler = new Handler(backgroundLooper);
+    }
+
     public void addStateChangedCallback(BrightnessStateChangeCallback cb) {
         mChangeCallbacks.add(cb);
     }
@@ -173,15 +283,7 @@
             return;
         }
 
-        mBrightnessObserver.startObserving();
-        mUserTracker.startTracking();
-
-        // Update the slider and mode before attaching the listener so we don't
-        // receive the onChanged notifications for the initial values.
-        updateMode();
-        updateSlider();
-
-        mControl.setOnChangedListener(this);
+        mBackgroundHandler.post(mStartListeningRunnable);
         mListening = true;
     }
 
@@ -191,9 +293,7 @@
             return;
         }
 
-        mBrightnessObserver.stopObserving();
-        mUserTracker.stopTracking();
-        mControl.setOnChangedListener(null);
+        mBackgroundHandler.post(mStopListeningRunnable);
         mListening = false;
     }
 
@@ -267,39 +367,4 @@
                     com.android.systemui.R.drawable.ic_qs_brightness_auto_off);
         }
     }
-
-    /** Fetch the brightness mode from the system settings and update the icon */
-    private void updateMode() {
-        if (mAutomaticAvailable) {
-            int automatic;
-            automatic = Settings.System.getIntForUser(mContext.getContentResolver(),
-                    Settings.System.SCREEN_BRIGHTNESS_MODE,
-                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL,
-                    UserHandle.USER_CURRENT);
-            mAutomatic = automatic != Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
-            updateIcon(mAutomatic);
-        } else {
-            mControl.setChecked(false);
-            updateIcon(false /*automatic*/);
-        }
-    }
-
-    /** Fetch the brightness from the system settings and update the slider */
-    private void updateSlider() {
-        if (mAutomatic) {
-            float value = Settings.System.getFloatForUser(mContext.getContentResolver(),
-                    Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0,
-                    UserHandle.USER_CURRENT);
-            mControl.setMax((int) BRIGHTNESS_ADJ_RESOLUTION);
-            mControl.setValue((int) ((value + 1) * BRIGHTNESS_ADJ_RESOLUTION / 2f));
-        } else {
-            int value;
-            value = Settings.System.getIntForUser(mContext.getContentResolver(),
-                    Settings.System.SCREEN_BRIGHTNESS, mMaximumBacklight,
-                    UserHandle.USER_CURRENT);
-            mControl.setMax(mMaximumBacklight - mMinimumBacklight);
-            mControl.setValue(value - mMinimumBacklight);
-        }
-    }
-
 }
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
index 998f50f..cb77d7b 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
@@ -31,6 +31,7 @@
 import android.hardware.display.DisplayManager;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Message;
 import android.util.AttributeSet;
 import android.view.Display;
 import android.view.DisplayInfo;
@@ -106,6 +107,11 @@
     private static final Interpolator IME_ADJUST_INTERPOLATOR =
             new PathInterpolator(0.2f, 0f, 0.1f, 1f);
 
+    private static final long ONE_MS_IN_NS = 1000000;
+    private static final long ONE_S_IN_NS = ONE_MS_IN_NS * 1000;
+
+    private static final int MSG_RESIZE_STACK = 0;
+
     private DividerHandleView mHandle;
     private View mBackground;
     private MinimizedDockShadow mMinimizedShadow;
@@ -150,7 +156,25 @@
     private boolean mDockedStackMinimized;
     private boolean mAdjustedForIme;
     private DividerState mState;
-    private final Handler mHandler = new Handler();
+
+    /**
+     * The offset between vsync-app and vsync-surfaceflinger. See
+     * {@link #calculateAppSurfaceFlingerVsyncOffsetMs} why this is necessary.
+     */
+    private long mSurfaceFlingerOffsetMs;
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_RESIZE_STACK:
+                    resizeStack(msg.arg1, msg.arg2, (SnapTarget) msg.obj);
+                    break;
+                default:
+                    super.handleMessage(msg);
+            }
+        }
+    };
 
     private final AccessibilityDelegate mHandleDelegate = new AccessibilityDelegate() {
         @Override
@@ -290,6 +314,7 @@
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
         EventBus.getDefault().register(this);
+        mSurfaceFlingerOffsetMs = calculateAppSurfaceFlingerVsyncOffsetMs();
     }
 
     @Override
@@ -298,6 +323,25 @@
         EventBus.getDefault().unregister(this);
     }
 
+    /**
+     * This method calculates the offset between vsync-surfaceflinger and vsync-app. If vsync-app
+     * is a couple of milliseconds before vsync-sf, a touch or animation event that causes the
+     * stacks to be resized are sometimes processed before the vsync-sf tick, and sometimes after,
+     * which leads to jank. Figure out this difference here and then post all the touch/animation
+     * events to start being processed at vsync-sf.
+     *
+     * @return The offset between vsync-app and vsync-sf, or 0 if vsync app happens after vsync-sf.
+     */
+    private long calculateAppSurfaceFlingerVsyncOffsetMs() {
+        Display display = getDisplay();
+
+        // Calculate vsync offset from SurfaceFlinger.
+        // See frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp:getDisplayConfigs
+        long vsyncPeriod = (long) (ONE_S_IN_NS / display.getRefreshRate());
+        long sfVsyncOffset = vsyncPeriod - (display.getPresentationDeadlineNanos() - ONE_MS_IN_NS);
+        return Math.max(0, (sfVsyncOffset - display.getAppVsyncOffsetNanos()) / ONE_MS_IN_NS);
+    }
+
     @Override
     public WindowInsets onApplyWindowInsets(WindowInsets insets) {
         if (mStableInsets.left != insets.getStableInsetLeft()
@@ -453,7 +497,7 @@
                 if (mMoving && mDockSide != WindowManager.DOCKED_INVALID) {
                     SnapTarget snapTarget = mSnapAlgorithm.calculateSnapTarget(
                             mStartPosition, 0 /* velocity */, false /* hardDismiss */);
-                    resizeStack(calculatePosition(x, y), mStartPosition, snapTarget);
+                    resizeStackDelayed(calculatePosition(x, y), mStartPosition, snapTarget);
                 }
                 break;
             case MotionEvent.ACTION_UP:
@@ -532,10 +576,11 @@
             final long endDelay) {
         final boolean taskPositionSameAtEnd = snapTarget.flag == SnapTarget.FLAG_NONE;
         ValueAnimator anim = ValueAnimator.ofInt(position, snapTarget.position);
-        anim.addUpdateListener(animation -> resizeStack((Integer) animation.getAnimatedValue(),
+        anim.addUpdateListener(animation -> resizeStackDelayed((int) animation.getAnimatedValue(),
                 taskPositionSameAtEnd && animation.getAnimatedFraction() == 1f
                         ? TASK_POSITION_SAME
-                        : snapTarget.taskPosition, snapTarget));
+                        : snapTarget.taskPosition,
+                snapTarget));
         Runnable endAction = () -> {
             commitSnapFlags(snapTarget);
             mWindowManagerProxy.setResizing(false);
@@ -551,15 +596,24 @@
 
             @Override
             public void onAnimationCancel(Animator animation) {
+                mHandler.removeMessages(MSG_RESIZE_STACK);
                 mCancelled = true;
             }
 
             @Override
             public void onAnimationEnd(Animator animation) {
-                if (endDelay == 0 || mCancelled) {
+                long delay = 0;
+                if (endDelay != 0) {
+                    delay = endDelay;
+                } else if (mCancelled) {
+                    delay = 0;
+                } else if (mSurfaceFlingerOffsetMs != 0) {
+                    delay = mSurfaceFlingerOffsetMs;
+                }
+                if (delay == 0) {
                     endAction.run();
                 } else {
-                    mHandler.postDelayed(endAction, endDelay);
+                    mHandler.postDelayed(endAction, delay);
                 }
             }
         });
@@ -793,6 +847,17 @@
                 mDisplayHeight, mDividerSize);
     }
 
+    public void resizeStackDelayed(int position, int taskPosition, SnapTarget taskSnapTarget) {
+        if (mSurfaceFlingerOffsetMs != 0) {
+            Message message = mHandler.obtainMessage(MSG_RESIZE_STACK, position, taskPosition,
+                    taskSnapTarget);
+            message.setAsynchronous(true);
+            mHandler.sendMessageDelayed(message, mSurfaceFlingerOffsetMs);
+        } else {
+            resizeStack(position, taskPosition, taskSnapTarget);
+        }
+    }
+
     public void resizeStack(int position, int taskPosition, SnapTarget taskSnapTarget) {
         calculateBoundsForPosition(position, mDockSide, mDockedRect);
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
index 9afb384..e35ef44 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
@@ -744,6 +744,7 @@
                 }
                 if (!mWasCancelled) {
                     enableAppearDrawing(false);
+                    onAppearAnimationFinished(isAppearing);
                 }
             }
 
@@ -760,6 +761,9 @@
         mAppearAnimator.start();
     }
 
+    protected void onAppearAnimationFinished(boolean wasAppearing) {
+    }
+
     private void cancelAppearAnimation() {
         if (mAppearAnimator != null) {
             mAppearAnimator.cancel();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 628cfd5..a1854fa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -961,7 +961,6 @@
                 mNotificationGutsExposed = entry.row.getGuts();
                 bindGuts(entry.row);
             }
-            entry.cacheContentViews(mContext, null /* updatedNotification */);
             inflateViews(entry, mStackScroller);
         }
     }
@@ -1585,7 +1584,12 @@
                 entry.notification.getUser().getIdentifier());
 
         final StatusBarNotification sbn = entry.notification;
-        entry.cacheContentViews(mContext, null);
+        try {
+            entry.cacheContentViews(mContext, null);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Unable to get notification remote views", e);
+            return false;
+        }
 
         final RemoteViews contentView = entry.cachedContentView;
         final RemoteViews bigContentView = entry.cachedBigContentView;
@@ -2354,7 +2358,13 @@
         Notification n = notification.getNotification();
         mNotificationData.updateRanking(ranking);
 
-        boolean applyInPlace = entry.cacheContentViews(mContext, notification.getNotification());
+        boolean applyInPlace;
+        try {
+            applyInPlace = entry.cacheContentViews(mContext, notification.getNotification());
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Unable to get notification remote views", e);
+            applyInPlace = false;
+        }
         boolean shouldPeek = shouldPeek(entry, notification);
         boolean alertAgain = alertAgain(entry, n);
         if (DEBUG) {
@@ -2406,7 +2416,10 @@
                     StatusBarIconView.contentDescForNotification(mContext, n));
             entry.icon.setNotification(n);
             entry.icon.set(ic);
-            inflateViews(entry, mStackScroller);
+            if (!inflateViews(entry, mStackScroller)) {
+                handleNotificationError(notification, "Couldn't update remote views for: "
+                        + notification);
+            }
         }
         updateHeadsUp(key, entry, shouldPeek, alertAgain);
         updateNotifications();
@@ -2504,8 +2517,7 @@
 
         boolean inUse = mPowerManager.isScreenOn()
                 && (!mStatusBarKeyguardViewManager.isShowing()
-                || mStatusBarKeyguardViewManager.isOccluded())
-                && !mStatusBarKeyguardViewManager.isInputRestricted();
+                || mStatusBarKeyguardViewManager.isOccluded());
         try {
             inUse = inUse && !mDreamManager.isDreaming();
         } catch (RemoteException e) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index 58d402b..02fdd3f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -598,7 +598,7 @@
     }
 
     private NotificationHeaderView getVisibleNotificationHeader() {
-        if (mIsSummaryWithChildren) {
+        if (mIsSummaryWithChildren && !mShowingPublic) {
             return mChildrenContainer.getHeaderView();
         }
         return getShowingLayout().getVisibleNotificationHeader();
@@ -1442,13 +1442,30 @@
 
     @Override
     protected View getContentView() {
-        if (mIsSummaryWithChildren) {
+        if (mIsSummaryWithChildren && !mShowingPublic) {
             return mChildrenContainer;
         }
         return getShowingLayout();
     }
 
     @Override
+    protected void onAppearAnimationFinished(boolean wasAppearing) {
+        super.onAppearAnimationFinished(wasAppearing);
+        if (wasAppearing) {
+            // During the animation the visible view might have changed, so let's make sure all
+            // alphas are reset
+            if (mChildrenContainer != null) {
+                mChildrenContainer.setAlpha(1.0f);
+                mChildrenContainer.setLayerType(LAYER_TYPE_NONE, null);
+            }
+            mPrivateLayout.setAlpha(1.0f);
+            mPrivateLayout.setLayerType(LAYER_TYPE_NONE, null);
+            mPublicLayout.setAlpha(1.0f);
+            mPublicLayout.setLayerType(LAYER_TYPE_NONE, null);
+        }
+    }
+
+    @Override
     public int getExtraBottomPadding() {
         if (mIsSummaryWithChildren && isGroupExpanded()) {
             return mIncreasedPaddingBetweenElements;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
index 0b1984d..88f37a3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
@@ -147,7 +147,7 @@
 
     @Override
     protected void onDraw(Canvas canvas) {
-        mSupportHardware = false;//canvas.isHardwareAccelerated();
+        mSupportHardware = canvas.isHardwareAccelerated();
         drawBackgroundCircle(canvas);
         canvas.save();
         canvas.scale(mImageScale, mImageScale, getWidth() / 2, getHeight() / 2);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index bd485dd..6d73ccb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.statusbar;
 
+import android.app.ActivityManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -30,6 +31,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.text.TextUtils;
 import android.text.format.Formatter;
 import android.util.Log;
@@ -57,6 +59,7 @@
 
     private final Context mContext;
     private final KeyguardIndicationTextView mTextView;
+    private final UserManager mUserManager;
     private final IBatteryStats mBatteryInfo;
 
     private final int mSlowThreshold;
@@ -85,9 +88,10 @@
         mSlowThreshold = res.getInteger(R.integer.config_chargingSlowlyThreshold);
         mFastThreshold = res.getInteger(R.integer.config_chargingFastThreshold);
 
-
+        mUserManager = context.getSystemService(UserManager.class);
         mBatteryInfo = IBatteryStats.Stub.asInterface(
                 ServiceManager.getService(BatteryStats.SERVICE_NAME));
+
         KeyguardUpdateMonitor.getInstance(context).registerCallback(mUpdateMonitor);
         context.registerReceiverAsUser(mReceiver, UserHandle.SYSTEM,
                 new IntentFilter(Intent.ACTION_TIME_TICK), null, null);
@@ -155,30 +159,29 @@
 
     private void updateIndication() {
         if (mVisible) {
-            mTextView.switchIndication(computeIndication());
-            mTextView.setTextColor(computeColor());
-        }
-    }
+            // Walk down a precedence-ordered list of what should indication
+            // should be shown based on user or device state
+            if (!mUserManager.isUserUnlocked(ActivityManager.getCurrentUser())) {
+                mTextView.switchIndication(com.android.internal.R.string.lockscreen_storage_locked);
+                mTextView.setTextColor(Color.WHITE);
 
-    private int computeColor() {
-        if (!TextUtils.isEmpty(mTransientIndication)) {
-            return mTransientTextColor;
-        }
-        return Color.WHITE;
-    }
+            } else if (!TextUtils.isEmpty(mTransientIndication)) {
+                mTextView.switchIndication(mTransientIndication);
+                mTextView.setTextColor(mTransientTextColor);
 
-    private String computeIndication() {
-        if (!TextUtils.isEmpty(mTransientIndication)) {
-            return mTransientIndication;
-        }
-        if (mPowerPluggedIn) {
-            String indication = computePowerIndication();
-            if (DEBUG_CHARGING_SPEED) {
-                indication += ",  " + (mChargingWattage / 1000) + " mW";
+            } else if (mPowerPluggedIn) {
+                String indication = computePowerIndication();
+                if (DEBUG_CHARGING_SPEED) {
+                    indication += ",  " + (mChargingWattage / 1000) + " mW";
+                }
+                mTextView.switchIndication(indication);
+                mTextView.setTextColor(Color.WHITE);
+
+            } else {
+                mTextView.switchIndication(mRestingIndication);
+                mTextView.setTextColor(Color.WHITE);
             }
-            return indication;
         }
-        return mRestingIndication;
     }
 
     private String computePowerIndication() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
index 6570221..05a9fc7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
@@ -34,7 +34,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -343,7 +342,6 @@
                         entry.notification.setOverrideGroupKey(overrideGroupKey);
                         mGroupManager.onEntryUpdated(entry, oldSbn);
                     }
-                    //mGroupManager.onEntryBundlingUpdated(entry, getOverrideGroupKey(entry.key));
                 }
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
index 63f726b..95cb672 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
@@ -176,8 +176,18 @@
         mCurrentView = currentView.findViewById(mId);
     }
 
+    public void setCarMode(boolean carMode) {
+        final int N = mViews.size();
+        for (int i = 0; i < N; i++) {
+            final View view = mViews.get(i);
+            if (view instanceof ButtonInterface) {
+                ((ButtonInterface) view).setCarMode(carMode);
+            }
+        }
+    }
+
     /**
-     * Interface for ImageView button actions.
+     * Interface for button actions.
      */
     public interface ButtonInterface {
         void setImageResource(@DrawableRes int resId);
@@ -187,5 +197,7 @@
         void abortCurrentGesture();
 
         void setLandscape(boolean landscape);
+
+        void setCarMode(boolean carMode);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
index 1c9d937..2c3e805 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java
@@ -20,6 +20,7 @@
 import android.os.Handler;
 import android.os.PowerManager;
 import android.os.SystemClock;
+import android.os.Trace;
 import android.util.Log;
 
 import com.android.keyguard.KeyguardConstants;
@@ -140,11 +141,14 @@
 
     @Override
     public void onFingerprintAcquired() {
+        Trace.beginSection("FingerprintUnlockController#onFingerprintAcquired");
         releaseFingerprintWakeLock();
         if (!mUpdateMonitor.isDeviceInteractive()) {
             mWakeLock = mPowerManager.newWakeLock(
                     PowerManager.PARTIAL_WAKE_LOCK, FINGERPRINT_WAKE_LOCK_NAME);
+            Trace.beginSection("acquiring wake-and-unlock");
             mWakeLock.acquire();
+            Trace.endSection();
             if (DEBUG_FP_WAKELOCK) {
                 Log.i(TAG, "fingerprint acquired, grabbing fp wakelock");
             }
@@ -159,12 +163,15 @@
                 mStatusBarWindowManager.setForceDozeBrightness(true);
             }
         }
+        Trace.endSection();
     }
 
     @Override
     public void onFingerprintAuthenticated(int userId) {
+        Trace.beginSection("FingerprintUnlockController#onFingerprintAuthenticated");
         if (mUpdateMonitor.isGoingToSleep()) {
             mPendingAuthenticatedUserId = userId;
+            Trace.endSection();
             return;
         }
         boolean wasDeviceInteractive = mUpdateMonitor.isDeviceInteractive();
@@ -175,25 +182,34 @@
             }
             mPowerManager.wakeUp(SystemClock.uptimeMillis(), "android.policy:FINGERPRINT");
         }
+        Trace.beginSection("release wake-and-unlock");
         releaseFingerprintWakeLock();
+        Trace.endSection();
         switch (mMode) {
             case MODE_DISMISS_BOUNCER:
+                Trace.beginSection("MODE_DISMISS");
                 mStatusBarKeyguardViewManager.notifyKeyguardAuthenticated(
                         false /* strongAuth */);
+                Trace.endSection();
                 break;
             case MODE_UNLOCK:
             case MODE_SHOW_BOUNCER:
+                Trace.beginSection("MODE_UNLOCK or MODE_SHOW_BOUNCER");
                 if (!wasDeviceInteractive) {
                     mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested();
                 }
                 mStatusBarKeyguardViewManager.animateCollapsePanels(
                         FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR);
+                Trace.endSection();
                 break;
             case MODE_WAKE_AND_UNLOCK_PULSING:
+                Trace.beginSection("MODE_WAKE_AND_UNLOCK_PULSING");
                 mPhoneStatusBar.updateMediaMetaData(false /* metaDataChanged */, 
                         true /* allowEnterAnimation */);
                 // Fall through.
+                Trace.endSection();
             case MODE_WAKE_AND_UNLOCK:
+                Trace.beginSection("MODE_WAKE_AND_UNLOCK");
                 mStatusBarWindowManager.setStatusBarFocusable(false);
                 mDozeScrimController.abortPulsing();
                 mKeyguardViewMediator.onWakeAndUnlocking();
@@ -201,6 +217,7 @@
                 if (mPhoneStatusBar.getNavigationBarView() != null) {
                     mPhoneStatusBar.getNavigationBarView().setWakeAndUnlocking(true);
                 }
+                Trace.endSection();
                 break;
             case MODE_ONLY_WAKE:
             case MODE_NONE:
@@ -210,6 +227,7 @@
             mStatusBarWindowManager.setForceDozeBrightness(false);
         }
         mPhoneStatusBar.notifyFpAuthModeChanged();
+        Trace.endSection();
     }
 
     @Override
@@ -219,6 +237,7 @@
 
     @Override
     public void onFinishedGoingToSleep(int why) {
+        Trace.beginSection("FingerprintUnlockController#onFinishedGoingToSleep");
         if (mPendingAuthenticatedUserId != -1) {
 
             // Post this to make sure it's executed after the device is fully locked.
@@ -230,6 +249,7 @@
             });
         }
         mPendingAuthenticatedUserId = -1;
+        Trace.endSection();
     }
 
     public int getMode() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index a98601a..8cabfb9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -16,6 +16,9 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
+import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
+
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
 import android.app.ActivityOptions;
@@ -65,9 +68,6 @@
 import com.android.systemui.statusbar.policy.FlashlightController;
 import com.android.systemui.statusbar.policy.PreviewInflater;
 
-import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
-import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
-
 /**
  * Implementation for the bottom area of the Keyguard, including camera/phone affordance and status
  * text.
@@ -403,7 +403,7 @@
     public void bindCameraPrewarmService() {
         Intent intent = getCameraIntent();
         ActivityInfo targetInfo = PreviewInflater.getTargetActivityInfo(mContext, intent,
-                KeyguardUpdateMonitor.getCurrentUser());
+                KeyguardUpdateMonitor.getCurrentUser(), true /* onlyDirectBootAware */);
         if (targetInfo != null && targetInfo.metaData != null) {
             String clazz = targetInfo.metaData.getString(
                     MediaStore.META_DATA_STILL_IMAGE_CAMERA_PREWARM_SERVICE);
@@ -461,7 +461,7 @@
                     // happens to occur during the launch.
                     ActivityOptions o = ActivityOptions.makeBasic();
                     o.setRotationAnimationHint(
-                            WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE);
+                            WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
                     try {
                         result = ActivityManagerNative.getDefault().startActivityAsUser(
                                 null, getContext().getBasePackageName(),
@@ -590,10 +590,16 @@
     }
 
     private void inflateCameraPreview() {
+        View previewBefore = mCameraPreview;
+        boolean visibleBefore = false;
+        if (previewBefore != null) {
+            mPreviewContainer.removeView(previewBefore);
+            visibleBefore = previewBefore.getVisibility() == View.VISIBLE;
+        }
         mCameraPreview = mPreviewInflater.inflatePreview(getCameraIntent());
         if (mCameraPreview != null) {
             mPreviewContainer.addView(mCameraPreview);
-            mCameraPreview.setVisibility(View.INVISIBLE);
+            mCameraPreview.setVisibility(visibleBefore ? View.VISIBLE : View.INVISIBLE);
         }
     }
 
@@ -712,4 +718,9 @@
         updateLeftAffordanceIcon();
         updateLeftPreview();
     }
+
+    public void onKeyguardShowingChanged() {
+        updateLeftAffordance();
+        inflateCameraPreview();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
index ef19d95..2be47e4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
@@ -26,6 +26,7 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Rect;
+import android.graphics.Xfermode;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.DrawableWrapper;
@@ -37,6 +38,8 @@
 import android.os.UserHandle;
 import android.util.Log;
 
+import com.android.keyguard.KeyguardUpdateMonitor;
+
 import libcore.io.IoUtils;
 
 import java.util.Objects;
@@ -51,6 +54,7 @@
     private final PhoneStatusBar mBar;
     private final WallpaperManager mWallpaperManager;
     private final Handler mH;
+    private final KeyguardUpdateMonitor mUpdateMonitor;
 
     private boolean mCached;
     private Bitmap mCache;
@@ -65,6 +69,7 @@
         mH = h;
         mWallpaperManager = (WallpaperManager) ctx.getSystemService(Context.WALLPAPER_SERVICE);
         mCurrentUserId = ActivityManager.getCurrentUser();
+        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(ctx);
 
         IWallpaperManager service = IWallpaperManager.Stub.asInterface(
                 ServiceManager.getService(Context.WALLPAPER_SERVICE));
@@ -88,6 +93,7 @@
         LoaderResult result = loadBitmap(mCurrentUserId, mSelectedUser);
         if (result.success) {
             mCached = true;
+            mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
             mCache = result.bitmap;
         }
         return mCache;
@@ -180,6 +186,7 @@
                 if (result.success) {
                     mCached = true;
                     mCache = result.bitmap;
+                    mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
                     mBar.updateMediaMetaData(
                             true /* metaDataChanged */, true /* allowEnterAnimation */);
                 }
@@ -224,6 +231,12 @@
         }
 
         @Override
+        public void setXfermode(@Nullable Xfermode mode) {
+            // DrawableWrapper does not call this for us.
+            getDrawable().setXfermode(mode);
+        }
+
+        @Override
         public int getIntrinsicWidth() {
             return -1;
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 23aeae8..45d51b0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -54,7 +54,7 @@
 
 public class NavigationBarView extends LinearLayout {
     final static boolean DEBUG = false;
-    final static String TAG = "PhoneStatusBar/NavigationBarView";
+    final static String TAG = "StatusBar/NavBarView";
 
     // slippery nav bar when everything is disabled, e.g. during setup
     final static boolean SLIPPERY_WHEN_DISABLED = true;
@@ -65,6 +65,7 @@
 
     boolean mVertical;
     boolean mScreenOn;
+    private int mCurrentRotation = -1;
 
     boolean mShowMenu;
     int mDisabledFlags = 0;
@@ -526,6 +527,10 @@
         updateCurrentView();
     }
 
+    public boolean needsReorient(int rotation) {
+        return mCurrentRotation != rotation;
+    }
+
     private void updateCurrentView() {
         final int rot = mDisplay.getRotation();
         for (int i=0; i<4; i++) {
@@ -538,6 +543,7 @@
             mButtonDisatchers.valueAt(i).setCurrentView(mCurrentView);
         }
         updateLayoutTransitionsEnabled();
+        mCurrentRotation = rot;
     }
 
     private void updateRecentsIcon() {
@@ -561,7 +567,7 @@
         setMenuVisibility(mShowMenu, true /* force */);
 
         if (DEBUG) {
-            Log.d(TAG, "reorient(): rot=" + mDisplay.getRotation());
+            Log.d(TAG, "reorient(): rot=" + mCurrentRotation);
         }
 
         updateTaskSwitchHelper();
@@ -620,9 +626,11 @@
             if (mCarMode && uiMode != Configuration.UI_MODE_TYPE_CAR) {
                 mCarMode = false;
                 uiCarModeChanged = true;
+                getHomeButton().setCarMode(mCarMode);
             } else if (uiMode == Configuration.UI_MODE_TYPE_CAR) {
                 mCarMode = true;
                 uiCarModeChanged = true;
+                getHomeButton().setCarMode(mCarMode);
             }
         }
         return uiCarModeChanged;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
index 204ab7e..2c8339a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -31,7 +31,6 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Objects;
 
 /**
  * A class to handle notifications and their corresponding groups.
@@ -43,6 +42,7 @@
     private int mBarState = -1;
     private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
     private HeadsUpManager mHeadsUpManager;
+    private boolean mIsUpdatingUnchangedGroup;
 
     public void setOnGroupChangeListener(OnGroupChangeListener listener) {
         mListener = listener;
@@ -140,15 +140,6 @@
         }
     }
 
-    public void onEntryBundlingUpdated(final NotificationData.Entry updated,
-            final String overrideGroupKey) {
-        final StatusBarNotification oldSbn = updated.notification.clone();
-        if (!Objects.equals(oldSbn.getOverrideGroupKey(), overrideGroupKey)) {
-            updated.notification.setOverrideGroupKey(overrideGroupKey);
-            onEntryUpdated(updated, oldSbn);
-        }
-    }
-
     private void updateSuppression(NotificationGroup group) {
         if (group == null) {
             return;
@@ -163,7 +154,9 @@
             if (group.suppressed) {
                 handleSuppressedSummaryHeadsUpped(group.summary);
             }
-            mListener.onGroupsChanged();
+            if (!mIsUpdatingUnchangedGroup) {
+                mListener.onGroupsChanged();
+            }
         }
     }
 
@@ -192,19 +185,24 @@
 
     public void onEntryUpdated(NotificationData.Entry entry,
             StatusBarNotification oldNotification) {
+        String oldKey = oldNotification.getGroupKey();
+        String newKey = entry.notification.getGroupKey();
+        boolean groupKeysChanged = !oldKey.equals(newKey);
+        boolean wasGroupChild = isGroupChild(oldNotification);
+        boolean isGroupChild = isGroupChild(entry.notification);
+        mIsUpdatingUnchangedGroup = !groupKeysChanged && wasGroupChild == isGroupChild;
         if (mGroupMap.get(getGroupKey(oldNotification)) != null) {
             onEntryRemovedInternal(entry, oldNotification);
         }
         onEntryAdded(entry);
+        mIsUpdatingUnchangedGroup = false;
         if (isIsolated(entry.notification)) {
             mIsolatedEntries.put(entry.key, entry.notification);
-            String oldKey = oldNotification.getGroupKey();
-            String newKey = entry.notification.getGroupKey();
-            if (!oldKey.equals(newKey)) {
+            if (groupKeysChanged) {
                 updateSuppression(mGroupMap.get(oldKey));
                 updateSuppression(mGroupMap.get(newKey));
             }
-        } else if (!isGroupChild(oldNotification) && isGroupChild(entry.notification)) {
+        } else if (!wasGroupChild && isGroupChild) {
             onEntryBecomingChild(entry);
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 64f205d..f4b41bb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -81,8 +81,8 @@
 
     private static final float LOCK_ICON_ACTIVE_SCALE = 1.2f;
 
-    private static final String COUNTER_PANEL_OPEN = "panel_open";
-    private static final String COUNTER_PANEL_OPEN_QS = "panel_open_qs";
+    static final String COUNTER_PANEL_OPEN = "panel_open";
+    static final String COUNTER_PANEL_OPEN_QS = "panel_open_qs";
     private static final String COUNTER_PANEL_OPEN_PEEK = "panel_open_peek";
 
     private static final Rect mDummyDirtyRect = new Rect(0, 0, 1, 1);
@@ -189,6 +189,7 @@
     private boolean mExpandingFromHeadsUp;
     private boolean mCollapsedOnDown;
     private int mPositionMinSideMargin;
+    private int mMaxFadeoutHeight;
     private int mLastOrientation = -1;
     private boolean mClosingWithAlphaFadeOut;
     private boolean mHeadsUpAnimatingAway;
@@ -278,6 +279,8 @@
                 R.dimen.qs_falsing_threshold);
         mPositionMinSideMargin = getResources().getDimensionPixelSize(
                 R.dimen.notification_panel_min_side_margin);
+        mMaxFadeoutHeight = getResources().getDimensionPixelSize(
+                R.dimen.max_notification_fadeout_height);
     }
 
     public void updateResources() {
@@ -552,7 +555,9 @@
     protected void flingToHeight(float vel, boolean expand, float target,
             float collapseSpeedUpFactor, boolean expandBecauseOfFalsing) {
         mHeadsUpTouchHelper.notifyFling(!expand);
-        setClosingWithAlphaFadeout(!expand && getFadeoutAlpha() == 1.0f);
+        setClosingWithAlphaFadeout(!expand
+                && mNotificationStackScroller.getFirstChildIntrinsicHeight() <= mMaxFadeoutHeight
+                && getFadeoutAlpha() == 1.0f);
         super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing);
     }
 
@@ -1013,7 +1018,7 @@
             mKeyguardStatusBar.setAlpha(1f);
             mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE);
             if (keyguardShowing && oldState != mStatusBarState) {
-                mKeyguardBottomArea.updateLeftAffordance();
+                mKeyguardBottomArea.onKeyguardShowingChanged();
                 mAfforanceHelper.updatePreviews();
             }
         }
@@ -1612,6 +1617,9 @@
         if (mQsExpanded) {
             onQsExpansionStarted();
         }
+        // Since there are QS tiles in the header now, we need to make sure we start listening
+        // immediately so they can be up to date.
+        mQsContainer.setHeaderListening(true);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 34ce6d5..64c082b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -65,7 +65,6 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
-import android.hardware.display.DisplayManager;
 import android.inputmethodservice.InputMethodService;
 import android.media.AudioAttributes;
 import android.media.MediaMetadata;
@@ -73,6 +72,7 @@
 import android.media.session.MediaSession;
 import android.media.session.MediaSessionManager;
 import android.media.session.PlaybackState;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
@@ -84,6 +84,8 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemClock;
+import android.os.Trace;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.Vibrator;
@@ -97,6 +99,7 @@
 import android.util.EventLog;
 import android.util.Log;
 import android.view.Display;
+import android.view.IRotationWatcher;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -194,6 +197,7 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -203,7 +207,7 @@
 
 public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
         DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener,
-        HeadsUpManager.OnHeadsUpChangedListener, DisplayManager.DisplayListener {
+        HeadsUpManager.OnHeadsUpChangedListener {
     static final String TAG = "PhoneStatusBar";
     public static final boolean DEBUG = BaseStatusBar.DEBUG;
     public static final boolean SPEW = false;
@@ -364,6 +368,8 @@
     private View mPendingRemoteInputView;
     private View mPendingWorkRemoteInputView;
 
+    private View mReportRejectedTouch;
+
     int mMaxAllowedKeyguardNotifications;
 
     boolean mExpandedVisible;
@@ -687,8 +693,6 @@
         mUnlockMethodCache.addListener(this);
         startKeyguard();
 
-        mContext.getSystemService(DisplayManager.class).registerDisplayListener(this, null);
-
         mDozeServiceHost = new DozeServiceHost();
         KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mDozeServiceHost);
         putComponent(DozeHost.class, mDozeServiceHost);
@@ -928,6 +932,36 @@
                 mBatteryController);
         mKeyguardStatusBar.setBatteryController(mBatteryController);
 
+        mReportRejectedTouch = mStatusBarWindow.findViewById(R.id.report_rejected_touch);
+        if (mReportRejectedTouch != null) {
+            updateReportRejectedTouchVisibility();
+            mReportRejectedTouch.setOnClickListener(v -> {
+                Uri session = mFalsingManager.reportRejectedTouch();
+                if (session == null) { return; }
+
+                StringWriter message = new StringWriter();
+                message.write("Build info: ");
+                message.write(SystemProperties.get("ro.build.description"));
+                message.write("\nSerial number: ");
+                message.write(SystemProperties.get("ro.serialno"));
+                message.write("\n");
+
+                PrintWriter falsingPw = new PrintWriter(message);
+                FalsingLog.dump(falsingPw);
+                falsingPw.flush();
+
+                startActivityDismissingKeyguard(Intent.createChooser(new Intent(Intent.ACTION_SEND)
+                                .setType("*/*")
+                                .putExtra(Intent.EXTRA_SUBJECT, "Rejected touch report")
+                                .putExtra(Intent.EXTRA_STREAM, session)
+                                .putExtra(Intent.EXTRA_TEXT, message.toString()),
+                        "Share rejected touch report")
+                                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
+                        true /* onlyProvisioned */, true /* dismissShade */);
+            });
+        }
+
+
         PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
         mBroadcastReceiver.onReceive(mContext,
                 new Intent(pm.isScreenOn() ? Intent.ACTION_SCREEN_ON : Intent.ACTION_SCREEN_OFF));
@@ -1182,6 +1216,7 @@
     }
 
     protected void startKeyguard() {
+        Trace.beginSection("PhoneStatusBar#startKeyguard");
         KeyguardViewMediator keyguardViewMediator = getComponent(KeyguardViewMediator.class);
         mFingerprintUnlockController = new FingerprintUnlockController(mContext,
                 mStatusBarWindowManager, mDozeScrimController, keyguardViewMediator,
@@ -1216,6 +1251,7 @@
 
         mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback();
         mLightStatusBarController.setFingerprintUnlockController(mFingerprintUnlockController);
+        Trace.endSection();
     }
 
     @Override
@@ -1373,6 +1409,27 @@
         if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + mNavigationBarView);
         if (mNavigationBarView == null) return;
 
+        try {
+            WindowManagerGlobal.getWindowManagerService()
+                    .watchRotation(new IRotationWatcher.Stub() {
+                @Override
+                public void onRotationChanged(int rotation) throws RemoteException {
+                    // We need this to be scheduled as early as possible to beat the redrawing of
+                    // window in response to the orientation change.
+                    Message msg = Message.obtain(mHandler, () -> {
+                        if (mNavigationBarView != null
+                                && mNavigationBarView.needsReorient(rotation)) {
+                            repositionNavigationBar();
+                        }
+                    });
+                    msg.setAsynchronous(true);
+                    mHandler.sendMessageAtFrontOfQueue(msg);
+                }
+            });
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+
         prepareNavigationBarView();
 
         mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
@@ -1572,7 +1629,7 @@
                     && !mNotificationPanel.isTracking() && !mNotificationPanel.isQsExpanded()) {
                 if (mState == StatusBarState.SHADE) {
                     animateCollapsePanels();
-                } else if (mState == StatusBarState.SHADE_LOCKED) {
+                } else if (mState == StatusBarState.SHADE_LOCKED && !isCollapsing()) {
                     goToKeyguard();
                 }
             }
@@ -2088,12 +2145,20 @@
      * Refresh or remove lockscreen artwork from media metadata or the lockscreen wallpaper.
      */
     public void updateMediaMetaData(boolean metaDataChanged, boolean allowEnterAnimation) {
-        if (!SHOW_LOCKSCREEN_MEDIA_ARTWORK) return;
+        Trace.beginSection("PhoneStatusBar#updateMediaMetaData");
+        if (!SHOW_LOCKSCREEN_MEDIA_ARTWORK) {
+            Trace.endSection();
+            return;
+        }
 
-        if (mBackdrop == null) return; // called too early
+        if (mBackdrop == null) {
+            Trace.endSection();
+            return; // called too early
+        }
 
         if (mLaunchTransitionFadingAway) {
             mBackdrop.setVisibility(View.INVISIBLE);
+            Trace.endSection();
             return;
         }
 
@@ -2246,6 +2311,15 @@
                 }
             }
         }
+        Trace.endSection();
+    }
+
+    private void updateReportRejectedTouchVisibility() {
+        if (mReportRejectedTouch == null) {
+            return;
+        }
+        mReportRejectedTouch.setVisibility(mState == StatusBarState.KEYGUARD
+                && mFalsingManager.isReportingEnabled() ? View.VISIBLE : View.INVISIBLE);
     }
 
     protected int adjustDisableFlags(int state) {
@@ -2608,7 +2682,8 @@
     @Override
     public void handleSystemNavigationKey(int key) {
         if (SPEW) Log.d(TAG, "handleSystemNavigationKey: " + key);
-        if (!panelsEnabled() || !mKeyguardMonitor.isDeviceInteractive()) {
+        if (!panelsEnabled() || !mKeyguardMonitor.isDeviceInteractive()
+                || mKeyguardMonitor.isShowing()) {
             return;
         }
 
@@ -2616,12 +2691,16 @@
         if (!mUserSetup) return;
 
         if (KeyEvent.KEYCODE_SYSTEM_NAVIGATION_UP == key) {
+            MetricsLogger.action(mContext, MetricsEvent.ACTION_SYSTEM_NAVIGATION_KEY_UP);
             mNotificationPanel.collapse(false /* delayed */, 1.0f /* speedUpFactor */);
         } else if (KeyEvent.KEYCODE_SYSTEM_NAVIGATION_DOWN == key) {
+            MetricsLogger.action(mContext, MetricsEvent.ACTION_SYSTEM_NAVIGATION_KEY_DOWN);
             if (mNotificationPanel.isFullyCollapsed()) {
                 mNotificationPanel.expand(true /* animate */);
+                MetricsLogger.count(mContext, NotificationPanelView.COUNTER_PANEL_OPEN, 1);
             } else if (!mNotificationPanel.isInSettings() && !mNotificationPanel.isExpanding()){
                 mNotificationPanel.flingSettings(0 /* velocity */, true /* expand */);
+                MetricsLogger.count(mContext, NotificationPanelView.COUNTER_PANEL_OPEN_QS, 1);
             }
         }
 
@@ -3359,7 +3438,7 @@
                     // force the crossfade animation if an orientation change
                     // happens to occur during the launch.
                     options.setRotationAnimationHint(
-                            WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE);
+                            WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
                 }
                 try {
                     result = ActivityManagerNative.getDefault().startActivityAsUser(
@@ -3527,21 +3606,6 @@
     }
 
     @Override
-    public void onDisplayAdded(int displayId) {
-    }
-
-    @Override
-    public void onDisplayRemoved(int displayId) {
-    }
-
-    @Override
-    public void onDisplayChanged(int displayId) {
-        if (displayId == Display.DEFAULT_DISPLAY) {
-            repositionNavigationBar();
-        }
-    }
-
-    @Override
     public void userSwitched(int newUserId) {
         super.userSwitched(newUserId);
         if (MULTIUSER_DEBUG) mNotificationPanelDebugText.setText("USER " + newUserId);
@@ -4085,6 +4149,7 @@
      * @return true if we would like to stay in the shade, false if it should go away entirely
      */
     public boolean hideKeyguard() {
+        Trace.beginSection("PhoneStatusBar#hideKeyguard");
         boolean staying = mLeaveOpenOnKeyguardHide;
         setBarState(StatusBarState.SHADE);
         View viewToClick = null;
@@ -4129,6 +4194,7 @@
         mNotificationPanel.onAffordanceLaunchEnded();
         mNotificationPanel.animate().cancel();
         mNotificationPanel.setAlpha(1f);
+        Trace.endSection();
         return staying;
     }
 
@@ -4203,6 +4269,7 @@
     }
 
     protected void updateKeyguardState(boolean goingToFullShade, boolean fromShadeLocked) {
+        Trace.beginSection("PhoneStatusBar#updateKeyguardState");
         if (mState == StatusBarState.KEYGUARD) {
             mKeyguardIndicationController.setVisible(true);
             mNotificationPanel.resetViews();
@@ -4234,9 +4301,11 @@
         updateMediaMetaData(false, mState != StatusBarState.KEYGUARD);
         mKeyguardMonitor.notifyKeyguardState(mStatusBarKeyguardViewManager.isShowing(),
                 mStatusBarKeyguardViewManager.isSecure());
+        Trace.endSection();
     }
 
     private void updateDozingState() {
+        Trace.beginSection("PhoneStatusBar#updateDozingState");
         boolean animate = !mDozing && mDozeScrimController.isPulsing();
         mNotificationPanel.setDozing(mDozing, animate);
         mStackScroller.setDark(mDozing, animate, mWakeUpTouchLocation);
@@ -4247,6 +4316,7 @@
         mDozeScrimController.setDozing(mDozing &&
                 mFingerprintUnlockController.getMode()
                         != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING, animate);
+        Trace.endSection();
     }
 
     public void updateStackScrollerState(boolean goingToFullShade, boolean fromShadeLocked) {
@@ -4370,6 +4440,7 @@
         mGroupManager.setStatusBarState(state);
         mFalsingManager.setStatusBarState(state);
         mStatusBarWindowManager.setStatusBarState(state);
+        updateReportRejectedTouchVisibility();
         updateDozing();
     }
 
@@ -4848,11 +4919,13 @@
     }
 
     private void updateDozing() {
+        Trace.beginSection("PhoneStatusBar#updateDozing");
         // When in wake-and-unlock while pulsing, keep dozing state until fully unlocked.
         mDozing = mDozingRequested && mState == StatusBarState.KEYGUARD
                 || mFingerprintUnlockController.getMode()
                         == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING;
         updateDozingState();
+        Trace.endSection();
     }
 
     private final class ShadeUpdates {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
index 405ccd6..10facea 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
@@ -334,6 +334,9 @@
                     || ((CustomTile) tile).getUser() == currentUser)) {
                 if (DEBUG) Log.d(TAG, "Adding " + tile);
                 tile.removeCallbacks();
+                if (!(tile instanceof CustomTile) && mCurrentUser != currentUser) {
+                    tile.userSwitch(currentUser);
+                }
                 newTiles.put(tileSpec, tile);
             } else {
                 if (DEBUG) Log.d(TAG, "Creating tile: " + tileSpec);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
index a9c4783..7a2ae22 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
@@ -197,6 +197,7 @@
 
     @Override
     public void setExpanded(boolean expanded) {
+        if (mExpanded == expanded) return;
         mExpanded = expanded;
         mHeaderQsPanel.setExpanded(expanded);
         updateEverything();
@@ -255,8 +256,10 @@
 
     @Override
     public void updateEverything() {
-        updateVisibilities();
-        setClickable(false);
+        post(() -> {
+            updateVisibilities();
+            setClickable(false);
+        });
     }
 
     protected void updateVisibilities() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 3691a42..c72f994 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -185,13 +185,17 @@
     }
 
     public void onStartedWakingUp() {
+        Trace.beginSection("StatusBarKeyguardViewManager#onStartedWakingUp");
         mDeviceInteractive = true;
         mDeviceWillWakeUp = false;
         mPhoneStatusBar.onStartedWakingUp();
+        Trace.endSection();
     }
 
     public void onScreenTurningOn() {
+        Trace.beginSection("StatusBarKeyguardViewManager#onScreenTurningOn");
         mPhoneStatusBar.onScreenTurningOn();
+        Trace.endSection();
     }
 
     public boolean isScreenTurnedOn() {
@@ -199,6 +203,7 @@
     }
 
     public void onScreenTurnedOn() {
+        Trace.beginSection("StatusBarKeyguardViewManager#onScreenTurnedOn");
         mScreenTurnedOn = true;
         if (mDeferScrimFadeOut) {
             mDeferScrimFadeOut = false;
@@ -207,6 +212,7 @@
             updateStates();
         }
         mPhoneStatusBar.onScreenTurnedOn();
+        Trace.endSection();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
index 5271481..a7a792b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
@@ -168,7 +168,11 @@
     }
 
     private void applyFitsSystemWindows(State state) {
-        mStatusBarView.setFitsSystemWindows(!state.isKeyguardShowingAndNotOccluded());
+        boolean fitsSystemWindows = !state.isKeyguardShowingAndNotOccluded();
+        if (mStatusBarView.getFitsSystemWindows() != fitsSystemWindows) {
+            mStatusBarView.setFitsSystemWindows(fitsSystemWindows);
+            mStatusBarView.requestApplyInsets();
+        }
     }
 
     private void applyUserActivityTimeout(State state) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java
index a91cd51..7e92edf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.phone;
 
 import android.content.Context;
+import android.os.Trace;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.keyguard.KeyguardUpdateMonitor;
@@ -85,6 +86,7 @@
     }
 
     private void update(boolean updateAlways) {
+        Trace.beginSection("UnlockMethodCache#update");
         int user = KeyguardUpdateMonitor.getCurrentUser();
         boolean secure = mLockPatternUtils.isSecure(user);
         boolean canSkipBouncer = !secure ||  mKeyguardUpdateMonitor.getUserCanSkipBouncer(user);
@@ -102,6 +104,7 @@
             mFaceUnlockRunning = faceUnlockRunning;
             notifyListeners();
         }
+        Trace.endSection();
     }
 
     private void notifyListeners() {
@@ -133,10 +136,13 @@
 
         @Override
         public void onFingerprintAuthenticated(int userId) {
+            Trace.beginSection("KeyguardUpdateMonitorCallback#onFingerprintAuthenticated");
             if (!mKeyguardUpdateMonitor.isUnlockingWithFingerprintAllowed()) {
+                Trace.endSection();
                 return;
             }
             update(false /* updateAlways */);
+            Trace.endSection();
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/touch_analytics.proto b/packages/SystemUI/src/com/android/systemui/statusbar/phone/touch_analytics.proto
index afc8f77..50fd52a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/touch_analytics.proto
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/touch_analytics.proto
@@ -120,6 +120,7 @@
         RESERVED_2 = 1;
         RANDOM_WAKEUP = 2;
         REAL = 3;
+        REJECTED_TOUCH_REPORT = 4;
     }
 
     optional uint64 startTimestampMillis = 1;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
index 3df7590..61bac2d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
@@ -270,6 +270,11 @@
     public void setLandscape(boolean landscape) {
         //no op
     }
+
+    @Override
+    public void setCarMode(boolean carMode) {
+        // no op
+    }
 }
 
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index 8178bda..83463e2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -197,11 +197,22 @@
 
         if (mConfig.show4gForLte) {
             mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.FOUR_G);
-            mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
-                TelephonyIcons.FOUR_G_PLUS);
+            if (mConfig.hideLtePlus) {
+                mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
+                        TelephonyIcons.FOUR_G);
+            } else {
+                mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
+                        TelephonyIcons.FOUR_G_PLUS);
+            }
         } else {
             mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE, TelephonyIcons.LTE);
-            mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA, TelephonyIcons.LTE_PLUS);
+            if (mConfig.hideLtePlus) {
+                mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
+                        TelephonyIcons.LTE);
+            } else {
+                mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_LTE_CA,
+                        TelephonyIcons.LTE_PLUS);
+            }
         }
         mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_IWLAN, TelephonyIcons.WFC);
     }
@@ -460,6 +471,10 @@
             }
             mServiceState = state;
             mDataNetType = state.getDataNetworkType();
+            if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null &&
+                    mServiceState.isUsingCarrierAggregation()) {
+                mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA;
+            }
             updateTelephony();
         }
 
@@ -471,6 +486,10 @@
             }
             mDataState = state;
             mDataNetType = networkType;
+            if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null &&
+                    mServiceState.isUsingCarrierAggregation()) {
+                mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA;
+            }
             updateTelephony();
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
index a31bc04..7893a1a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -852,6 +852,7 @@
         boolean showAtLeast3G = false;
         boolean alwaysShowCdmaRssi = false;
         boolean show4gForLte = false;
+        boolean hideLtePlus = false;
         boolean hspaDataDistinguishable;
 
         static Config readConfig(Context context) {
@@ -864,6 +865,7 @@
             config.show4gForLte = res.getBoolean(R.bool.config_show4GForLTE);
             config.hspaDataDistinguishable =
                     res.getBoolean(R.bool.config_hspa_data_distinguishable);
+            config.hideLtePlus = res.getBoolean(R.bool.config_hideLtePlus);
             return config;
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java
index 93d0ec3..687b83a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PreviewInflater.java
@@ -119,13 +119,16 @@
 
     private WidgetInfo getWidgetInfo(Intent intent) {
         PackageManager packageManager = mContext.getPackageManager();
+        int flags = PackageManager.MATCH_DEFAULT_ONLY
+                | PackageManager.MATCH_DIRECT_BOOT_AWARE
+                | PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
         final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser(
-                intent, PackageManager.MATCH_DEFAULT_ONLY, KeyguardUpdateMonitor.getCurrentUser());
+                intent, flags, KeyguardUpdateMonitor.getCurrentUser());
         if (appList.size() == 0) {
             return null;
         }
         ResolveInfo resolved = packageManager.resolveActivityAsUser(intent,
-                PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA,
+                flags | PackageManager.GET_META_DATA,
                 KeyguardUpdateMonitor.getCurrentUser());
         if (wouldLaunchResolverActivity(resolved, appList)) {
             return null;
@@ -139,23 +142,32 @@
 
     public static boolean wouldLaunchResolverActivity(Context ctx, Intent intent,
             int currentUserId) {
-        return getTargetActivityInfo(ctx, intent, currentUserId) == null;
+        return getTargetActivityInfo(ctx, intent, currentUserId, false /* onlyDirectBootAware */)
+                == null;
     }
 
     /**
+     * @param onlyDirectBootAware a boolean indicating whether the matched activity packages must
+     *                            be direct boot aware when in direct boot mode if false, all
+     *                            packages are considered a match even if they are not aware.
      * @return the target activity info of the intent it resolves to a specific package or
      *         {@code null} if it resolved to the resolver activity
      */
     public static ActivityInfo getTargetActivityInfo(Context ctx, Intent intent,
-            int currentUserId) {
+            int currentUserId, boolean onlyDirectBootAware) {
         PackageManager packageManager = ctx.getPackageManager();
+        int flags = PackageManager.MATCH_DEFAULT_ONLY;
+        if (!onlyDirectBootAware) {
+            flags |=  PackageManager.MATCH_DIRECT_BOOT_AWARE
+                    | PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
+        }
         final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser(
-                intent, PackageManager.MATCH_DEFAULT_ONLY, currentUserId);
+                intent, flags, currentUserId);
         if (appList.size() == 0) {
             return null;
         }
         ResolveInfo resolved = packageManager.resolveActivityAsUser(intent,
-                PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA, currentUserId);
+                flags | PackageManager.GET_META_DATA, currentUserId);
         if (resolved == null || wouldLaunchResolverActivity(resolved, appList)) {
             return null;
         } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index 20ec0de..c8c4310 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -412,7 +412,10 @@
 
     @Override
     protected void onDraw(Canvas canvas) {
-        canvas.drawRect(0, mCurrentBounds.top, getWidth(), mCurrentBounds.bottom, mBackgroundPaint);
+        if (mCurrentBounds.top < mCurrentBounds.bottom) {
+            canvas.drawRect(0, mCurrentBounds.top, getWidth(), mCurrentBounds.bottom,
+                    mBackgroundPaint);
+        }
         if (DEBUG) {
             int y = mTopPadding;
             canvas.drawLine(0, y, getWidth(), y, mDebugPaint);
@@ -701,7 +704,7 @@
      */
     private float getExpandTranslationStart() {
         int startPosition = mTrackingHeadsUp || mHeadsUpManager.hasPinnedHeadsUp()
-                ? 0 : -getFirstChildMinHeight();
+                ? 0 : -getFirstChildIntrinsicHeight();
         return startPosition - mTopPadding;
     }
 
@@ -2009,15 +2012,16 @@
                 bottom = Math.min(bottom, getHeight());
             }
         } else {
-            top = (int) (mTopPadding + mStackTranslation);
+            top = mTopPadding;
             bottom = top;
         }
         if (mPhoneStatusBar.getBarState() != StatusBarState.KEYGUARD) {
-            mBackgroundBounds.top = (int) Math.max(mTopPadding + mStackTranslation, top);
+            top = (int) Math.max(mTopPadding + mStackTranslation, top);
         } else {
             // otherwise the animation from the shade to the keyguard will jump as it's maxed
-            mBackgroundBounds.top = Math.max(0, top);
+            top = Math.max(0, top);
         }
+        mBackgroundBounds.top = top;
         mBackgroundBounds.bottom = Math.min(getHeight(), Math.max(bottom, top));
     }
 
@@ -2140,17 +2144,17 @@
     }
 
     public int getLayoutMinHeight() {
-        int firstChildMinHeight = getFirstChildMinHeight();
+        int firstChildMinHeight = getFirstChildIntrinsicHeight();
         return Math.min(firstChildMinHeight + mBottomStackPeekSize + mBottomStackSlowDownHeight,
                 mMaxLayoutHeight - mTopPadding);
     }
 
-    private int getFirstChildMinHeight() {
+    public int getFirstChildIntrinsicHeight() {
         final ExpandableView firstChild = getFirstChildNotGone();
         int firstChildMinHeight = firstChild != null
                 ? firstChild.getIntrinsicHeight()
                 : mEmptyShadeView != null
-                        ? mEmptyShadeView.getMinHeight()
+                        ? mEmptyShadeView.getIntrinsicHeight()
                         : mCollapsedSize;
         if (mOwnScrollY > 0) {
             firstChildMinHeight = Math.max(firstChildMinHeight - mOwnScrollY, mCollapsedSize);
@@ -3451,7 +3455,7 @@
                         notifyHeightChangeListener(mEmptyShadeView);
                     }
                 };
-                if (mAnimationsEnabled) {
+                if (mAnimationsEnabled && mIsExpanded) {
                     mEmptyShadeView.setWillBeGone(true);
                     mEmptyShadeView.performVisibilityAnimation(false, onFinishedRunnable);
                 } else {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
index af6fec2..4aa14e2 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java
@@ -17,9 +17,7 @@
 package com.android.systemui.volume;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
-import android.animation.LayoutTransition;
 import android.animation.ObjectAnimator;
-import android.animation.ValueAnimator;
 import android.annotation.NonNull;
 import android.annotation.SuppressLint;
 import android.app.Dialog;
@@ -43,9 +41,11 @@
 import android.os.Message;
 import android.os.SystemClock;
 import android.provider.Settings.Global;
+import android.transition.AutoTransition;
+import android.transition.Transition;
+import android.transition.TransitionManager;
 import android.util.DisplayMetrics;
 import android.util.Log;
-import android.util.Slog;
 import android.util.SparseBooleanArray;
 import android.view.Gravity;
 import android.view.MotionEvent;
@@ -63,12 +63,12 @@
 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
 import android.view.animation.DecelerateInterpolator;
 import android.widget.ImageButton;
-import android.widget.LinearLayout;
 import android.widget.SeekBar;
 import android.widget.SeekBar.OnSeekBarChangeListener;
 import android.widget.TextView;
 
 import com.android.settingslib.Utils;
+import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.policy.ZenModeController;
 import com.android.systemui.tuner.TunerService;
@@ -102,8 +102,10 @@
     private final H mHandler = new H();
     private final VolumeDialogController mController;
 
+    private Window mWindow;
     private CustomDialog mDialog;
     private ViewGroup mDialogView;
+    private ViewGroup mDialogRowsView;
     private ViewGroup mDialogContentView;
     private ImageButton mExpandButton;
     private final List<VolumeRow> mRows = new ArrayList<>();
@@ -114,7 +116,6 @@
     private final AccessibilityManager mAccessibilityMgr;
     private int mExpandButtonAnimationDuration;
     private ZenFooter mZenFooter;
-    private LayoutTransition mLayoutTransition;
     private final Object mSafetyWarningLock = new Object();
     private final Accessibility mAccessibility = new Accessibility();
     private final ColorStateList mActiveSliderTint;
@@ -152,7 +153,8 @@
         mZenModeController = zenModeController;
         mKeyguard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-        mAccessibilityMgr = (AccessibilityManager) mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
+        mAccessibilityMgr =
+                (AccessibilityManager) mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
         mActiveSliderTint = ColorStateList.valueOf(Utils.getColorAccent(mContext));
         mInactiveSliderTint = loadColorStateList(R.color.volume_slider_inactive);
 
@@ -172,15 +174,13 @@
         mDialog = new CustomDialog(mContext);
 
         mSpTexts = new SpTexts(mContext);
-        mLayoutTransition = new LayoutTransition();
-        mLayoutTransition.setDuration(new ValueAnimator().getDuration() / 2);
         mHovering = false;
         mShowing = false;
-        final Window window = mDialog.getWindow();
-        window.requestFeature(Window.FEATURE_NO_TITLE);
-        window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-        window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
-        window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+        mWindow = mDialog.getWindow();
+        mWindow.requestFeature(Window.FEATURE_NO_TITLE);
+        mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+        mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+        mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                 | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                 | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                 | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
@@ -188,7 +188,7 @@
                 | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
         mDialog.setCanceledOnTouchOutside(true);
         final Resources res = mContext.getResources();
-        final WindowManager.LayoutParams lp = window.getAttributes();
+        final WindowManager.LayoutParams lp = mWindow.getAttributes();
         lp.type = mWindowType;
         lp.format = PixelFormat.TRANSLUCENT;
         lp.setTitle(VolumeDialog.class.getSimpleName());
@@ -196,9 +196,8 @@
         lp.y = res.getDimensionPixelSize(R.dimen.volume_offset_top);
         lp.gravity = Gravity.TOP;
         lp.windowAnimations = -1;
-        window.setAttributes(lp);
-        window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
-
+        mWindow.setAttributes(lp);
+        mWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
 
         mDialog.setContentView(R.layout.volume_dialog);
         mDialogView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog);
@@ -213,13 +212,13 @@
             }
         });
         mDialogContentView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog_content);
+        mDialogRowsView = (ViewGroup) mDialogContentView.findViewById(R.id.volume_dialog_rows);
         mExpanded = false;
         mExpandButton = (ImageButton) mDialogView.findViewById(R.id.volume_expand_button);
         mExpandButton.setOnClickListener(mClickExpand);
         updateWindowWidthH();
         updateExpandButtonH();
 
-        mDialogContentView.setLayoutTransition(mLayoutTransition);
         mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, mExpandButton,
                 new VolumeDialogMotion.Callback() {
                     @Override
@@ -310,10 +309,7 @@
     private void addRow(int stream, int iconRes, int iconMuteRes, boolean important) {
         VolumeRow row = new VolumeRow();
         initRow(row, stream, iconRes, iconMuteRes, important);
-        if (!mRows.isEmpty()) {
-            addSpacer(row);
-        }
-        mDialogContentView.addView(row.view, mDialogContentView.getChildCount() - 2);
+        mDialogRowsView.addView(row.view);
         mRows.add(row);
     }
 
@@ -322,23 +318,10 @@
         for (int i = 0; i < N; i++) {
             final VolumeRow row = mRows.get(i);
             initRow(row, row.stream, row.iconRes, row.iconMuteRes, row.important);
-            if (i > 0) {
-                addSpacer(row);
-            }
-            mDialogContentView.addView(row.view, mDialogContentView.getChildCount() - 2);
+            mDialogRowsView.addView(row.view);
         }
     }
 
-    private void addSpacer(VolumeRow row) {
-        final View v = new View(mContext);
-        v.setId(android.R.id.background);
-        final int h = mContext.getResources()
-                .getDimensionPixelSize(R.dimen.volume_slider_interspacing);
-        final LinearLayout.LayoutParams lp =
-                new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, h);
-        mDialogContentView.addView(v, mDialogContentView.getChildCount() - 2, lp);
-        row.space = v;
-    }
 
     private boolean isAttached() {
         return mDialogContentView != null && mDialogContentView.isAttachedToWindow();
@@ -392,12 +375,15 @@
         row.iconMuteRes = iconMuteRes;
         row.important = important;
         row.view = mDialog.getLayoutInflater().inflate(R.layout.volume_dialog_row, null);
+        row.view.setId(row.stream);
         row.view.setTag(row);
         row.header = (TextView) row.view.findViewById(R.id.volume_row_header);
+        row.header.setId(20 * row.stream);
         mSpTexts.add(row.header);
         row.slider = (SeekBar) row.view.findViewById(R.id.volume_row_slider);
         row.slider.setOnSeekBarChangeListener(new VolumeSeekBarChangeListener(row));
         row.anim = null;
+        row.cachedShowHeaders = VolumePrefs.DEFAULT_SHOW_HEADERS;
 
         // forward events above the slider into the slider
         row.view.setOnTouchListener(new OnTouchListener() {
@@ -509,7 +495,7 @@
         mMotion.startDismiss(new Runnable() {
             @Override
             public void run() {
-                setExpandedH(false);
+                updateExpandedH(false /* expanding */, true /* dismissing */);
             }
         });
         if (mAccessibilityMgr.isEnabled()) {
@@ -555,23 +541,67 @@
         mHandler.sendEmptyMessageDelayed(H.UPDATE_BOTTOM_MARGIN, getConservativeCollapseDuration());
     }
 
-    private void setExpandedH(boolean expanded) {
+    private void updateExpandedH(final boolean expanded, final boolean dismissing) {
         if (mExpanded == expanded) return;
         mExpanded = expanded;
         mExpandButtonAnimationRunning = isAttached();
-        if (D.BUG) Log.d(TAG, "setExpandedH " + expanded);
-        if (!mExpanded && mExpandButtonAnimationRunning) {
-            prepareForCollapse();
+        if (D.BUG) Log.d(TAG, "updateExpandedH " + expanded);
+        updateExpandButtonH();
+        updateFooterH();
+        TransitionManager.endTransitions(mDialogView);
+        final VolumeRow activeRow = getActiveRow();
+        if (!dismissing) {
+            mWindow.setLayout(mWindow.getAttributes().width, ViewGroup.LayoutParams.MATCH_PARENT);
+            AutoTransition transition = new AutoTransition();
+            transition.setDuration(mExpandButtonAnimationDuration);
+            transition.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN);
+            transition.addListener(new Transition.TransitionListener() {
+                @Override
+                public void onTransitionStart(Transition transition) {
+                }
+
+                @Override
+                public void onTransitionEnd(Transition transition) {
+                    mWindow.setLayout(
+                            mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT);
+                }
+
+                @Override
+                public void onTransitionCancel(Transition transition) {
+                }
+
+                @Override
+                public void onTransitionPause(Transition transition) {
+                    mWindow.setLayout(
+                            mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT);
+                }
+
+                @Override
+                public void onTransitionResume(Transition transition) {
+                }
+            });
+            TransitionManager.beginDelayedTransition(mDialogView, transition);
         }
-        final Resources res = mContext.getResources();
-        int paddingTop = mExpanded
-                ? res.getDimensionPixelSize(R.dimen.volume_dialog_expanded_padding_top)
-                : res.getDimensionPixelSize(R.dimen.volume_dialog_collapsed_padding_top);
-        mDialogContentView.setPaddingRelative(mDialogContentView.getPaddingStart(),
-                paddingTop,
-                mDialogContentView.getPaddingEnd(),
-                mDialogContentView.getPaddingBottom());
-        updateRowsH();
+        updateRowsH(activeRow);
+        rescheduleTimeoutH();
+    }
+
+    private void updateExpandButtonH() {
+        if (D.BUG) Log.d(TAG, "updateExpandButtonH");
+        mExpandButton.setClickable(!mExpandButtonAnimationRunning);
+        if (!(mExpandButtonAnimationRunning && isAttached())) {
+            final int res = mExpanded ? R.drawable.ic_volume_collapse_animation
+                    : R.drawable.ic_volume_expand_animation;
+            if (hasTouchFeature()) {
+                mExpandButton.setImageResource(res);
+            } else {
+                // if there is no touch feature, show the volume ringer instead
+                mExpandButton.setImageResource(R.drawable.ic_volume_ringer);
+                mExpandButton.setBackgroundResource(0);  // remove gray background emphasis
+            }
+            mExpandButton.setContentDescription(mContext.getString(mExpanded ?
+                    R.string.accessibility_volume_collapse : R.string.accessibility_volume_expand));
+        }
         if (mExpandButtonAnimationRunning) {
             final Drawable d = mExpandButton.getDrawable();
             if (d instanceof AnimatedVectorDrawable) {
@@ -590,60 +620,41 @@
                 }, mExpandButtonAnimationDuration);
             }
         }
-        rescheduleTimeoutH();
     }
 
-    private void updateExpandButtonH() {
-        if (D.BUG) Log.d(TAG, "updateExpandButtonH");
-        mExpandButton.setClickable(!mExpandButtonAnimationRunning);
-        if (mExpandButtonAnimationRunning && isAttached()) return;
-        final int res = mExpanded ? R.drawable.ic_volume_collapse_animation
-                : R.drawable.ic_volume_expand_animation;
-        if (hasTouchFeature()) {
-            mExpandButton.setImageResource(res);
-        } else {
-            // if there is no touch feature, show the volume ringer instead
-            mExpandButton.setImageResource(R.drawable.ic_volume_ringer);
-            mExpandButton.setBackgroundResource(0);  // remove gray background emphasis
-        }
-        mExpandButton.setContentDescription(mContext.getString(mExpanded ?
-                R.string.accessibility_volume_collapse : R.string.accessibility_volume_expand));
-    }
-
-    private boolean isVisibleH(VolumeRow row, boolean isActive) {
+    private boolean shouldBeVisibleH(VolumeRow row, boolean isActive) {
         return mExpanded && row.view.getVisibility() == View.VISIBLE
                 || (mExpanded && (row.important || isActive))
                 || !mExpanded && isActive;
     }
 
-    private void updateRowsH() {
+    private void updateRowsH(final VolumeRow activeRow) {
         if (D.BUG) Log.d(TAG, "updateRowsH");
-        final VolumeRow activeRow = getActiveRow();
-        updateFooterH();
-        updateExpandButtonH();
         if (!mShowing) {
             trimObsoleteH();
         }
+        Util.setVisOrGone(mDialogRowsView.findViewById(R.id.spacer), mExpanded);
         // apply changes to all rows
-        for (VolumeRow row : mRows) {
+        for (final VolumeRow row : mRows) {
             final boolean isActive = row == activeRow;
-            final boolean visible = isVisibleH(row, isActive);
-            Util.setVisOrGone(row.view, visible);
-            Util.setVisOrGone(row.space, visible && mExpanded);
-            updateVolumeRowHeaderVisibleH(row);
-            updateVolumeRowSliderTintH(row, isActive);
+            final boolean shouldBeVisible = shouldBeVisibleH(row, isActive);
+            Util.setVisOrGone(row.view, shouldBeVisible);
+            if (row.view.isShown()) {
+                updateVolumeRowHeaderVisibleH(row);
+                updateVolumeRowSliderTintH(row, isActive);
+            }
         }
+
     }
 
     private void trimObsoleteH() {
         if (D.BUG) Log.d(TAG, "trimObsoleteH");
-        for (int i = mRows.size() -1; i >= 0; i--) {
+        for (int i = mRows.size() - 1; i >= 0; i--) {
             final VolumeRow row = mRows.get(i);
             if (row.ss == null || !row.ss.dynamic) continue;
             if (!mDynamic.get(row.stream)) {
                 mRows.remove(i);
-                mDialogContentView.removeView(row.view);
-                mDialogContentView.removeView(row.space);
+                mDialogRowsView.removeView(row.view);
             }
         }
     }
@@ -670,7 +681,7 @@
 
         if (mActiveStream != state.activeStream) {
             mActiveStream = state.activeStream;
-            updateRowsH();
+            updateRowsH(getActiveRow());
             rescheduleTimeoutH();
         }
         for (VolumeRow row : mRows) {
@@ -731,9 +742,6 @@
                 && mState.ringerModeInternal == AudioManager.RINGER_MODE_SILENT;
         final boolean isZenAlarms = mState.zenMode == Global.ZEN_MODE_ALARMS;
         final boolean isZenNone = mState.zenMode == Global.ZEN_MODE_NO_INTERRUPTIONS;
-        final boolean isZenPriority = mState.zenMode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
-        final boolean isRingZenNone = (isRingStream || isSystemStream) && isZenNone;
-        final boolean isRingLimited = isRingStream && isZenPriority;
         final boolean zenMuted = isZenAlarms ? (isRingStream || isSystemStream)
                 : isZenNone ? (isRingStream || isSystemStream || isAlarmStream || isMusicStream)
                 : false;
@@ -973,6 +981,7 @@
                 mDialog.dismiss();
                 mZenFooter.cleanup();
                 initDialog();
+                mDensity = density;
             }
             updateWindowWidthH();
             mSpTexts.update();
@@ -1022,7 +1031,7 @@
             if (mExpandButtonAnimationRunning) return;
             final boolean newExpand = !mExpanded;
             Events.writeEvent(mContext, Events.EVENT_EXPAND, newExpand);
-            setExpandedH(newExpand);
+            updateExpandedH(newExpand, false /* dismissing */);
         }
     };
 
@@ -1219,7 +1228,6 @@
 
     private static class VolumeRow {
         private View view;
-        private View space;
         private TextView header;
         private ImageButton icon;
         private SeekBar slider;
diff --git a/packages/WallpaperBackup/AndroidManifest.xml b/packages/WallpaperBackup/AndroidManifest.xml
index b8cea20..c548101 100644
--- a/packages/WallpaperBackup/AndroidManifest.xml
+++ b/packages/WallpaperBackup/AndroidManifest.xml
@@ -24,6 +24,7 @@
                  android:process="system"
                  android:killAfterRestore="false"
                  android:allowBackup="true"
+                 android:backupInForeground="true"
                  android:backupAgent=".WallpaperBackupAgent"
                  android:fullBackupOnly="true" >
     </application>
diff --git a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
index 402d9ad..242eca8 100644
--- a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
+++ b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
@@ -34,6 +34,8 @@
 import android.util.Slog;
 import android.util.Xml;
 
+import libcore.io.IoUtils;
+
 import org.xmlpull.v1.XmlPullParser;
 
 import java.io.File;
@@ -112,56 +114,58 @@
             touch.close();
             fullBackupFile(empty, data);
 
-            // only back up the wallpaper if we've been told it's allowed
-            if (mWm.isWallpaperBackupEligible()) {
-                if (DEBUG) {
-                    Slog.v(TAG, "Wallpaper is backup-eligible");
-                }
+            SharedPreferences prefs = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
+            final int lastSysGeneration = prefs.getInt(SYSTEM_GENERATION, -1);
+            final int lastLockGeneration = prefs.getInt(LOCK_GENERATION, -1);
 
-                SharedPreferences prefs = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
-                final int lastSysGeneration = prefs.getInt(SYSTEM_GENERATION, -1);
-                final int lastLockGeneration = prefs.getInt(LOCK_GENERATION, -1);
+            final int sysGeneration =
+                    mWm.getWallpaperIdForUser(FLAG_SYSTEM, UserHandle.USER_SYSTEM);
+            final int lockGeneration =
+                    mWm.getWallpaperIdForUser(FLAG_LOCK, UserHandle.USER_SYSTEM);
+            final boolean sysChanged = (sysGeneration != lastSysGeneration);
+            final boolean lockChanged = (lockGeneration != lastLockGeneration);
 
-                final int sysGeneration =
-                        mWm.getWallpaperIdForUser(FLAG_SYSTEM, UserHandle.USER_SYSTEM);
-                final int lockGeneration =
-                        mWm.getWallpaperIdForUser(FLAG_LOCK, UserHandle.USER_SYSTEM);
-                final boolean sysChanged = (sysGeneration != lastSysGeneration);
-                final boolean lockChanged = (lockGeneration != lastLockGeneration);
+            final boolean sysEligible = mWm.isWallpaperBackupEligible(FLAG_SYSTEM);
+            final boolean lockEligible = mWm.isWallpaperBackupEligible(FLAG_LOCK);
 
-                if (DEBUG) {
-                    Slog.v(TAG, "sysGen=" + sysGeneration + " : sysChanged=" + sysChanged);
-                    Slog.v(TAG, "lockGen=" + lockGeneration + " : lockChanged=" + lockChanged);
-                }
-                if (mWallpaperInfo.exists()) {
-                    if (sysChanged || lockChanged || !infoStage.exists()) {
-                        if (DEBUG) Slog.v(TAG, "New wallpaper configuration; copying");
-                        FileUtils.copyFileOrThrow(mWallpaperInfo, infoStage);
-                    }
-                    fullBackupFile(infoStage, data);
-                }
-                if (mWallpaperFile.exists()) {
-                    if (sysChanged || !imageStage.exists()) {
-                        if (DEBUG) Slog.v(TAG, "New system wallpaper; copying");
-                        FileUtils.copyFileOrThrow(mWallpaperFile, imageStage);
-                    }
-                    fullBackupFile(imageStage, data);
-                    prefs.edit().putInt(SYSTEM_GENERATION, sysGeneration).apply();
-                }
+                // There might be a latent lock wallpaper file present but unused: don't
+                // include it in the backup if that's the case.
+                ParcelFileDescriptor lockFd = mWm.getWallpaperFile(FLAG_LOCK, UserHandle.USER_SYSTEM);
+                final boolean hasLockWallpaper = (lockFd != null);
+                IoUtils.closeQuietly(lockFd);
 
-                // Don't try to store the lock image if we overran our quota last time
-                if (mLockWallpaperFile.exists() && !mQuotaExceeded) {
-                    if (lockChanged || !lockImageStage.exists()) {
-                        if (DEBUG) Slog.v(TAG, "New lock wallpaper; copying");
-                        FileUtils.copyFileOrThrow(mLockWallpaperFile, lockImageStage);
-                    }
-                    fullBackupFile(lockImageStage, data);
-                    prefs.edit().putInt(LOCK_GENERATION, lockGeneration).apply();
+            if (DEBUG) {
+                Slog.v(TAG, "sysGen=" + sysGeneration + " : sysChanged=" + sysChanged);
+                Slog.v(TAG, "lockGen=" + lockGeneration + " : lockChanged=" + lockChanged);
+                Slog.v(TAG, "sysEligble=" + sysEligible);
+                Slog.v(TAG, "lockEligible=" + lockEligible);
+            }
+
+            // only back up the wallpapers if we've been told they're eligible
+            if ((sysEligible || lockEligible) && mWallpaperInfo.exists()) {
+                if (sysChanged || lockChanged || !infoStage.exists()) {
+                    if (DEBUG) Slog.v(TAG, "New wallpaper configuration; copying");
+                    FileUtils.copyFileOrThrow(mWallpaperInfo, infoStage);
                 }
-            } else {
-                if (DEBUG) {
-                    Slog.v(TAG, "Wallpaper not backup-eligible; writing no data");
+                fullBackupFile(infoStage, data);
+            }
+            if (sysEligible && mWallpaperFile.exists()) {
+                if (sysChanged || !imageStage.exists()) {
+                    if (DEBUG) Slog.v(TAG, "New system wallpaper; copying");
+                    FileUtils.copyFileOrThrow(mWallpaperFile, imageStage);
                 }
+                fullBackupFile(imageStage, data);
+                prefs.edit().putInt(SYSTEM_GENERATION, sysGeneration).apply();
+            }
+
+            // Don't try to store the lock image if we overran our quota last time
+            if (lockEligible && hasLockWallpaper && mLockWallpaperFile.exists() && !mQuotaExceeded) {
+                if (lockChanged || !lockImageStage.exists()) {
+                    if (DEBUG) Slog.v(TAG, "New lock wallpaper; copying");
+                    FileUtils.copyFileOrThrow(mLockWallpaperFile, lockImageStage);
+                }
+                fullBackupFile(lockImageStage, data);
+                prefs.edit().putInt(LOCK_GENERATION, lockGeneration).apply();
             }
         } catch (Exception e) {
             Slog.e(TAG, "Unable to back up wallpaper", e);
@@ -199,15 +203,20 @@
         final File imageStage = new File (filesDir, IMAGE_STAGE);
         final File lockImageStage = new File (filesDir, LOCK_IMAGE_STAGE);
 
+        // If we restored separate lock imagery, the system wallpaper should be
+        // applied as system-only; but if there's no separate lock image, make
+        // sure to apply the restored system wallpaper as both.
+        final int sysWhich = FLAG_SYSTEM | (lockImageStage.exists() ? 0 : FLAG_LOCK);
+
         try {
             // First off, revert to the factory state
-            mWm.clear(WallpaperManager.FLAG_SYSTEM | WallpaperManager.FLAG_LOCK);
+            mWm.clear(FLAG_SYSTEM | FLAG_LOCK);
 
             // It is valid for the imagery to be absent; it means that we were not permitted
             // to back up the original image on the source device, or there was no user-supplied
             // wallpaper image present.
-            restoreFromStage(imageStage, infoStage, "wp", WallpaperManager.FLAG_SYSTEM);
-            restoreFromStage(lockImageStage, infoStage, "kwp", WallpaperManager.FLAG_LOCK);
+            restoreFromStage(imageStage, infoStage, "wp", sysWhich);
+            restoreFromStage(lockImageStage, infoStage, "kwp", FLAG_LOCK);
         } catch (Exception e) {
             Slog.e(TAG, "Unable to restore wallpaper: " + e.getMessage());
         } finally {
@@ -238,7 +247,7 @@
                     Slog.v(TAG, "Restored crop hint " + cropHint);
                 }
                 try (FileInputStream in = new FileInputStream(stage)) {
-                    mWm.setStream(in, cropHint, true, which);
+                    mWm.setStream(in, cropHint.isEmpty() ? null : cropHint, true, which);
                 } finally {} // auto-closes 'in'
             }
         }
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 0106f7f0..5099db7 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -2197,6 +2197,16 @@
     // Night Light on
     SETTINGS_CONDITION_NIGHT_DISPLAY = 492;
 
+    // System navigation key up.
+    ACTION_SYSTEM_NAVIGATION_KEY_UP = 493;
+
+    // System navigation key down.
+    ACTION_SYSTEM_NAVIGATION_KEY_DOWN = 494;
+
+    // OPEN: Settings > Display -> Ambient Display
+    // CATEGORY: SETTINGS
+    ACTION_AMBIENT_DISPLAY = 495;
+
     // ---- End N-MR1 Constants, all N-MR1 constants go above this line ----
     // Add new aosp constants above this line.
     // END OF AOSP CONSTANTS
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 2a7d945..fd93865 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -77,6 +77,9 @@
      */
     static final int FLAG_FEATURE_INJECT_MOTION_EVENTS = 0x00000010;
 
+    static final int FEATURES_AFFECTING_MOTION_EVENTS = FLAG_FEATURE_INJECT_MOTION_EVENTS
+            | FLAG_FEATURE_AUTOCLICK | FLAG_FEATURE_TOUCH_EXPLORATION
+            | FLAG_FEATURE_SCREEN_MAGNIFIER;
     /**
      * Flag for enabling the feature to control the screen magnifier. If
      * {@link #FLAG_FEATURE_SCREEN_MAGNIFIER} is set this flag is ignored
@@ -203,8 +206,13 @@
         }
 
         if (event instanceof MotionEvent) {
-            MotionEvent motionEvent = (MotionEvent) event;
-            processMotionEvent(state, motionEvent, policyFlags);
+            if ((mEnabledFeatures & FEATURES_AFFECTING_MOTION_EVENTS) != 0) {
+                MotionEvent motionEvent = (MotionEvent) event;
+                processMotionEvent(state, motionEvent, policyFlags);
+                return;
+            } else {
+                super.onInputEvent(event, policyFlags);
+            }
         } else if (event instanceof KeyEvent) {
             KeyEvent keyEvent = (KeyEvent) event;
             processKeyEvent(state, keyEvent, policyFlags);
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 7ebc150..695ea60 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -21,6 +21,7 @@
 import android.Manifest;
 import android.accessibilityservice.AccessibilityService;
 import android.accessibilityservice.AccessibilityServiceInfo;
+import android.accessibilityservice.GestureDescription;
 import android.accessibilityservice.IAccessibilityServiceClient;
 import android.accessibilityservice.IAccessibilityServiceConnection;
 import android.annotation.NonNull;
@@ -278,6 +279,31 @@
             }
 
             @Override
+            public void onPackageUpdateFinished(String packageName, int uid) {
+                // Unbind all services from this package, and then update the user state to
+                // re-bind new versions of them.
+                synchronized (mLock) {
+                    final int userId = getChangingUserId();
+                    if (userId != mCurrentUserId) {
+                        return;
+                    }
+                    UserState userState = getUserStateLocked(userId);
+                    boolean unboundAService = false;
+                    for (int i = userState.mBoundServices.size() - 1; i >= 0; i--) {
+                        Service boundService = userState.mBoundServices.get(i);
+                        String servicePkg = boundService.mComponentName.getPackageName();
+                        if (servicePkg.equals(packageName)) {
+                            boundService.unbindLocked();
+                            unboundAService = true;
+                        }
+                    }
+                    if (unboundAService) {
+                        onUserStateChangedLocked(userState);
+                    }
+                }
+            }
+
+            @Override
             public void onPackageRemoved(String packageName, int uid) {
                 synchronized (mLock) {
                     final int userId = getChangingUserId();
@@ -1111,9 +1137,11 @@
 
     private void addServiceLocked(Service service, UserState userState) {
         try {
-            service.onAdded();
-            userState.mBoundServices.add(service);
-            userState.mComponentNameToServiceMap.put(service.mComponentName, service);
+            if (!userState.mBoundServices.contains(service)) {
+                service.onAdded();
+                userState.mBoundServices.add(service);
+                userState.mComponentNameToServiceMap.put(service.mComponentName, service);
+            }
         } catch (RemoteException re) {
             /* do nothing */
         }
@@ -1126,8 +1154,14 @@
      */
     private void removeServiceLocked(Service service, UserState userState) {
         userState.mBoundServices.remove(service);
-        userState.mComponentNameToServiceMap.remove(service.mComponentName);
         service.onRemoved();
+        // It may be possible to bind a service twice, which confuses the map. Rebuild the map
+        // to make sure we can still reach a service
+        userState.mComponentNameToServiceMap.clear();
+        for (int i = 0; i < userState.mBoundServices.size(); i++) {
+            Service boundService = userState.mBoundServices.get(i);
+            userState.mComponentNameToServiceMap.put(boundService.mComponentName, boundService);
+        }
     }
 
     /**
@@ -2324,15 +2358,12 @@
         }
 
         /**
-         * Unbinds form the accessibility service and removes it from the data
+         * Unbinds from the accessibility service and removes it from the data
          * structures for service management.
          *
          * @return True if unbinding is successful.
          */
         public boolean unbindLocked() {
-            if (mService == null) {
-                return false;
-            }
             UserState userState = getUserStateLocked(mUserId);
             getKeyEventDispatcher().flush(this);
             if (!mIsAutomation) {
@@ -2747,7 +2778,7 @@
         }
 
         @Override
-        public void sendMotionEvents(int sequence, ParceledListSlice events) {
+        public void sendGesture(int sequence, ParceledListSlice gestureSteps) {
             synchronized (mLock) {
                 if (mSecurityPolicy.canPerformGestures(this)) {
                     final long endMillis =
@@ -2761,9 +2792,16 @@
                         }
                     }
                     if (mMotionEventInjector != null) {
-                        mMotionEventInjector.injectEvents((List<MotionEvent>) events.getList(),
-                                mServiceInterface, sequence);
-                        return;
+                        List<GestureDescription.GestureStep> steps = gestureSteps.getList();
+                        List<MotionEvent> events = GestureDescription.MotionEventGenerator
+                                .getMotionEventsFromGestureSteps(steps);
+                        // Confirm that the motion events end with an UP event.
+                        if (events.get(events.size() - 1).getAction() == MotionEvent.ACTION_UP) {
+                            mMotionEventInjector.injectEvents(events, mServiceInterface, sequence);
+                            return;
+                        } else {
+                            Slog.e(LOG_TAG, "Gesture is not well-formed");
+                        }
                     } else {
                         Slog.e(LOG_TAG, "MotionEventInjector installation timed out");
                     }
@@ -3033,7 +3071,7 @@
 
         @Override
         public void onServiceDisconnected(ComponentName componentName) {
-            /* do nothing - #binderDied takes care */
+            binderDied();
         }
 
         public void onAdded() throws RemoteException {
@@ -3062,14 +3100,18 @@
         }
 
         public void unlinkToOwnDeathLocked() {
-            mService.unlinkToDeath(this, 0);
+            if (mService != null) {
+                mService.unlinkToDeath(this, 0);
+            }
         }
 
         public void resetLocked() {
             try {
                 // Clear the proxy in the other process so this
                 // IAccessibilityServiceConnection can be garbage collected.
-                mServiceInterface.init(null, mId, null);
+                if (mServiceInterface != null) {
+                    mServiceInterface.init(null, mId, null);
+                }
             } catch (RemoteException re) {
                 /* ignore */
             }
@@ -3093,10 +3135,10 @@
                 mWasConnectedAndDied = true;
                 getKeyEventDispatcher().flush(this);
                 UserState userState = getUserStateLocked(mUserId);
-                // The death recipient is unregistered in removeServiceLocked
-                removeServiceLocked(this, userState);
                 resetLocked();
                 if (mIsAutomation) {
+                    // This is typically done when unbinding, but UiAutomation isn't bound.
+                    removeServiceLocked(this, userState);
                     // We no longer have an automation service, so restore
                     // the state based on values in the settings database.
                     userState.mInstalledServices.remove(mAccessibilityServiceInfo);
@@ -3551,6 +3593,7 @@
                 case WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL:
                 case WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL:
                 case WindowManager.LayoutParams.TYPE_BASE_APPLICATION:
+                case WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION:
                 case WindowManager.LayoutParams.TYPE_PHONE:
                 case WindowManager.LayoutParams.TYPE_PRIORITY_PHONE:
                 case WindowManager.LayoutParams.TYPE_TOAST:
diff --git a/services/accessibility/java/com/android/server/accessibility/KeyEventDispatcher.java b/services/accessibility/java/com/android/server/accessibility/KeyEventDispatcher.java
index e03c16e..e8f93b8 100644
--- a/services/accessibility/java/com/android/server/accessibility/KeyEventDispatcher.java
+++ b/services/accessibility/java/com/android/server/accessibility/KeyEventDispatcher.java
@@ -121,7 +121,7 @@
             Service service = boundServices.get(i);
             // Key events are handled only by services that declared
             // this capability and requested to filter key events.
-            if (!service.mRequestFilterKeyEvents) {
+            if (!service.mRequestFilterKeyEvents || (service.mServiceInterface == null)) {
                 continue;
             }
             int filterKeyEventBit = service.mAccessibilityServiceInfo.getCapabilities()
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 4dd88b2..20cca16 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -1732,9 +1732,10 @@
                 Alarm a = alarms.get(j);
                 if (a.alarmClock != null) {
                     final int userId = UserHandle.getUserId(a.uid);
+                    AlarmManager.AlarmClockInfo current = mNextAlarmClockForUser.get(userId);
 
                     if (DEBUG_ALARM_CLOCK) {
-                        Log.v(TAG, "Found AlarmClockInfo at " +
+                        Log.v(TAG, "Found AlarmClockInfo " + a.alarmClock + " at " +
                                 formatNextAlarm(getContext(), a.alarmClock, userId) +
                                 " for user " + userId);
                     }
@@ -1742,6 +1743,10 @@
                     // Alarms and batches are sorted by time, no need to compare times here.
                     if (nextForUser.get(userId) == null) {
                         nextForUser.put(userId, a.alarmClock);
+                    } else if (a.alarmClock.equals(current)
+                            && current.getTriggerTime() <= nextForUser.get(userId).getTriggerTime()) {
+                        // same/earlier time and it's the one we cited before, so stick with it
+                        nextForUser.put(userId, current);
                     }
                 }
             }
@@ -2467,8 +2472,10 @@
                             Slog.v(TAG, "Time changed notification from kernel; rebatching");
                         }
                         removeImpl(mTimeTickSender);
+                        removeImpl(mDateChangeSender);
                         rebatchAllAlarms();
                         mClockReceiver.scheduleTimeTickEvent();
+                        mClockReceiver.scheduleDateChangedEvent();
                         synchronized (mLock) {
                             mNumTimeChanged++;
                             mLastTimeChangeClockTime = nowRTC;
@@ -2692,7 +2699,7 @@
         public void scheduleDateChangedEvent() {
             Calendar calendar = Calendar.getInstance();
             calendar.setTimeInMillis(System.currentTimeMillis());
-            calendar.set(Calendar.HOUR, 0);
+            calendar.set(Calendar.HOUR_OF_DAY, 0);
             calendar.set(Calendar.MINUTE, 0);
             calendar.set(Calendar.SECOND, 0);
             calendar.set(Calendar.MILLISECOND, 0);
diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java
index b5b0cd8..4caeba8 100644
--- a/services/core/java/com/android/server/AppOpsService.java
+++ b/services/core/java/com/android/server/AppOpsService.java
@@ -875,7 +875,7 @@
             return AppOpsManager.MODE_IGNORED;
         }
         synchronized (this) {
-            if (isOpRestricted(uid, code, resolvedPackageName)) {
+            if (isOpRestrictedLocked(uid, code, resolvedPackageName)) {
                 return AppOpsManager.MODE_IGNORED;
             }
             code = AppOpsManager.opToSwitch(code);
@@ -1024,7 +1024,7 @@
                 return AppOpsManager.MODE_ERRORED;
             }
             Op op = getOpLocked(ops, code, true);
-            if (isOpRestricted(uid, code, packageName)) {
+            if (isOpRestrictedLocked(uid, code, packageName)) {
                 return AppOpsManager.MODE_IGNORED;
             }
             if (op.duration == -1) {
@@ -1082,7 +1082,7 @@
                 return AppOpsManager.MODE_ERRORED;
             }
             Op op = getOpLocked(ops, code, true);
-            if (isOpRestricted(uid, code, resolvedPackageName)) {
+            if (isOpRestrictedLocked(uid, code, resolvedPackageName)) {
                 return AppOpsManager.MODE_IGNORED;
             }
             final int switchCode = AppOpsManager.opToSwitch(code);
@@ -1308,7 +1308,7 @@
         return op;
     }
 
-    private boolean isOpRestricted(int uid, int code, String packageName) {
+    private boolean isOpRestrictedLocked(int uid, int code, String packageName) {
         int userHandle = UserHandle.getUserId(uid);
         final int restrictionSetCount = mOpUserRestrictions.size();
 
@@ -2210,25 +2210,33 @@
 
     private void setUserRestrictionNoCheck(int code, boolean restricted, IBinder token,
             int userHandle, String[] exceptionPackages) {
-        ClientRestrictionState restrictionState = mOpUserRestrictions.get(token);
+        boolean notifyChange = false;
 
-        if (restrictionState == null) {
-            try {
-                restrictionState = new ClientRestrictionState(token);
-            } catch (RemoteException e) {
-                return;
+        synchronized (AppOpsService.this) {
+            ClientRestrictionState restrictionState = mOpUserRestrictions.get(token);
+
+            if (restrictionState == null) {
+                try {
+                    restrictionState = new ClientRestrictionState(token);
+                } catch (RemoteException e) {
+                    return;
+                }
+                mOpUserRestrictions.put(token, restrictionState);
             }
-            mOpUserRestrictions.put(token, restrictionState);
+
+            if (restrictionState.setRestriction(code, restricted, exceptionPackages, userHandle)) {
+                notifyChange = true;
+            }
+
+            if (restrictionState.isDefault()) {
+                mOpUserRestrictions.remove(token);
+                restrictionState.destroy();
+            }
         }
 
-        if (restrictionState.setRestriction(code, restricted, exceptionPackages, userHandle)) {
+        if (notifyChange) {
             notifyWatchersOfChange(code);
         }
-
-        if (restrictionState.isDefault()) {
-            mOpUserRestrictions.remove(token);
-            restrictionState.destroy();
-        }
     }
 
     private void notifyWatchersOfChange(int code) {
@@ -2263,10 +2271,12 @@
     @Override
     public void removeUser(int userHandle) throws RemoteException {
         checkSystemUid("removeUser");
-        final int tokenCount = mOpUserRestrictions.size();
-        for (int i = tokenCount - 1; i >= 0; i--) {
-            ClientRestrictionState opRestrictions = mOpUserRestrictions.valueAt(i);
-            opRestrictions.removeUser(userHandle);
+        synchronized (AppOpsService.this) {
+            final int tokenCount = mOpUserRestrictions.size();
+            for (int i = tokenCount - 1; i >= 0; i--) {
+                ClientRestrictionState opRestrictions = mOpUserRestrictions.valueAt(i);
+                opRestrictions.removeUser(userHandle);
+            }
         }
     }
 
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 1106262..b7461ee 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -479,7 +479,7 @@
         }
     }
 
-    private final IpConnectivityLog mMetricsLog = new IpConnectivityLog();
+    private final IpConnectivityLog mMetricsLog;
 
     /**
      * Implements support for the legacy "one network per network type" model.
@@ -677,8 +677,16 @@
 
     public ConnectivityService(Context context, INetworkManagementService netManager,
             INetworkStatsService statsService, INetworkPolicyManager policyManager) {
+        this(context, netManager, statsService, policyManager, new IpConnectivityLog());
+    }
+
+    @VisibleForTesting
+    protected ConnectivityService(Context context, INetworkManagementService netManager,
+            INetworkStatsService statsService, INetworkPolicyManager policyManager,
+            IpConnectivityLog logger) {
         if (DBG) log("ConnectivityService starting up");
 
+        mMetricsLog = logger;
         mDefaultRequest = createInternetRequestForTransport(-1);
         NetworkRequestInfo defaultNRI = new NetworkRequestInfo(null, mDefaultRequest, new Binder());
         mNetworkRequests.put(mDefaultRequest, defaultNRI);
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 36ec2eb..64ca2e3 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -150,7 +150,7 @@
     // used internally for synchronization
     private final Object mLock = new Object();
 
-    // --- fields below are final after systemReady() ---
+    // --- fields below are final after systemRunning() ---
     private LocationFudger mLocationFudger;
     private GeofenceManager mGeofenceManager;
     private PackageManager mPackageManager;
@@ -168,6 +168,7 @@
 
     // --- fields below are protected by mLock ---
     // Set of providers that are explicitly enabled
+    // Only used by passive, fused & test.  Network & GPS are controlled separately, and not listed.
     private final Set<String> mEnabledProviders = new HashSet<String>();
 
     // Set of providers that are explicitly disabled
@@ -236,12 +237,12 @@
 
         if (D) Log.d(TAG, "Constructed");
 
-        // most startup is deferred until systemReady()
+        // most startup is deferred until systemRunning()
     }
 
     public void systemRunning() {
         synchronized (mLock) {
-            if (D) Log.d(TAG, "systemReady()");
+            if (D) Log.d(TAG, "systemRunning()");
 
             // fetch package manager
             mPackageManager = mContext.getPackageManager();
@@ -321,7 +322,11 @@
                         || Intent.ACTION_MANAGED_PROFILE_REMOVED.equals(action)) {
                     updateUserProfiles(mCurrentUserId);
                 } else if (Intent.ACTION_SHUTDOWN.equals(action)) {
-                    shutdownComponents();
+                    // shutdown only if UserId indicates whole system, not just one user
+                    if(D) Log.d(TAG, "Shutdown received with UserId: " + getSendingUserId());
+                    if (getSendingUserId() == UserHandle.USER_ALL) {
+                        shutdownComponents();
+                    }
                 }
             }
         }, UserHandle.ALL, intentFilter, null, mLocationHandler);
diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java
index 33c2ea2..a91e205 100644
--- a/services/core/java/com/android/server/LockSettingsService.java
+++ b/services/core/java/com/android/server/LockSettingsService.java
@@ -304,7 +304,9 @@
             final boolean isSecure = mStorage.hasPassword(user.id) || mStorage.hasPattern(user.id);
             if (isSecure && !mUserManager.isUserUnlockingOrUnlocked(userHandle)) {
                 if (!user.isManagedProfile()) {
-                    showEncryptionNotification(userHandle);
+                    // When the user is locked, we communicate it loud-and-clear
+                    // on the lockscreen; we only show a notification below for
+                    // locked managed profiles.
                 } else {
                     UserInfo parent = mUserManager.getProfileParent(user.id);
                     if (parent != null &&
@@ -340,21 +342,6 @@
         showEncryptionNotification(user, title, message, detail, intent);
     }
 
-    private void showEncryptionNotification(UserHandle user) {
-        Resources r = mContext.getResources();
-        CharSequence title = r.getText(
-                com.android.internal.R.string.user_encrypted_title);
-        CharSequence message = r.getText(
-                com.android.internal.R.string.user_encrypted_message);
-        CharSequence detail = r.getText(
-                com.android.internal.R.string.user_encrypted_detail);
-
-        PendingIntent intent = PendingIntent.getActivity(mContext, 0, ACTION_NULL,
-                PendingIntent.FLAG_UPDATE_CURRENT);
-
-        showEncryptionNotification(user, title, message, detail, intent);
-    }
-
     private void showEncryptionNotification(UserHandle user, CharSequence title, CharSequence message,
             CharSequence detail, PendingIntent intent) {
         if (DEBUG) Slog.v(TAG, "showing encryption notification, user: " + user.getIdentifier());
@@ -1235,6 +1222,9 @@
             long challenge, int userId, ICheckCredentialProgressCallback progressCallback)
             throws RemoteException {
        checkPasswordReadPermission(userId);
+       if (TextUtils.isEmpty(pattern)) {
+           throw new IllegalArgumentException("Pattern can't be null or empty");
+       }
        CredentialHash storedHash = mStorage.readPatternHash(userId);
        return doVerifyPattern(pattern, storedHash, hasChallenge, challenge, userId,
                progressCallback);
@@ -1336,6 +1326,9 @@
             long challenge, int userId, ICheckCredentialProgressCallback progressCallback)
             throws RemoteException {
        checkPasswordReadPermission(userId);
+       if (TextUtils.isEmpty(password)) {
+           throw new IllegalArgumentException("Password can't be null or empty");
+       }
        CredentialHash storedHash = mStorage.readPasswordHash(userId);
        return doVerifyPassword(password, storedHash, hasChallenge, challenge, userId,
                progressCallback);
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index ec53c16..bdbd066 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -1310,8 +1310,9 @@
             mConnector.execute("tether", "interface", "remove", iface);
         } catch (NativeDaemonConnectorException e) {
             throw e.rethrowAsParcelableException();
+        } finally {
+            removeInterfaceFromLocalNetwork(iface);
         }
-        removeInterfaceFromLocalNetwork(iface);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java
index 7ea8f1f..356ccb3 100644
--- a/services/core/java/com/android/server/PinnerService.java
+++ b/services/core/java/com/android/server/PinnerService.java
@@ -17,26 +17,23 @@
 package com.android.server;
 
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.res.Resources;
-import android.content.Intent;
-import android.util.EventLog;
-import android.util.Slog;
 import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.os.Process;
+import android.os.UserHandle;
 import android.provider.MediaStore;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
 import android.system.StructStat;
+import android.util.Slog;
 
 import com.android.internal.app.ResolverActivity;
 import com.android.internal.os.BackgroundThread;
@@ -44,12 +41,10 @@
 import dalvik.system.DexFile;
 import dalvik.system.VMRuntime;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.io.FileDescriptor;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.ArrayList;
 
 /**
  * <p>PinnerService pins important files for key processes in memory.</p>
@@ -89,20 +84,10 @@
         }
         mBinderService = new BinderService();
         publishBinderService("pinner", mBinderService);
-        mPinnerHandler.sendMessage(
-                mPinnerHandler.obtainMessage(PinnerHandler.PIN_ONSTART_MSG));
-    }
 
-    /**
-     * Pin camera on unlock.
-     * We have to wait for unlock because the user's
-     * preference for camera is not available from PackageManager until after
-     * unlock
-     */
-    @Override
-    public void onUnlockUser(int userHandle) {
-        mPinnerHandler.sendMessage(
-                mPinnerHandler.obtainMessage(PinnerHandler.PIN_CAMERA_MSG, userHandle, 0));
+        mPinnerHandler.obtainMessage(PinnerHandler.PIN_ONSTART_MSG).sendToTarget();
+        mPinnerHandler.obtainMessage(PinnerHandler.PIN_CAMERA_MSG, UserHandle.USER_SYSTEM, 0)
+                .sendToTarget();
     }
 
     /**
@@ -113,8 +98,7 @@
      */
     @Override
     public void onSwitchUser(int userHandle) {
-        mPinnerHandler.sendMessage(
-                mPinnerHandler.obtainMessage(PinnerHandler.PIN_CAMERA_MSG, userHandle, 0));
+        mPinnerHandler.obtainMessage(PinnerHandler.PIN_CAMERA_MSG, userHandle, 0).sendToTarget();
     }
 
     /**
@@ -194,8 +178,10 @@
         //  device without a fbe enabled, the _SECURE intent will never get set.
         Intent cameraIntent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
         PackageManager pm = mContext.getPackageManager();
-        ResolveInfo cameraResolveInfo = pm.resolveActivityAsUser(
-                cameraIntent, PackageManager.MATCH_DEFAULT_ONLY, userHandle);
+        ResolveInfo cameraResolveInfo = pm.resolveActivityAsUser(cameraIntent,
+                PackageManager.MATCH_DEFAULT_ONLY | PackageManager.MATCH_DIRECT_BOOT_AWARE
+                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
+                userHandle);
         if (cameraResolveInfo == null ) {
             //this is not necessarily an error
             if (DEBUG) {
diff --git a/services/core/java/com/android/server/TwilightCalculator.java b/services/core/java/com/android/server/TwilightCalculator.java
deleted file mode 100644
index 5839b16..0000000
--- a/services/core/java/com/android/server/TwilightCalculator.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2010 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.text.format.DateUtils;
-
-/** @hide */
-public class TwilightCalculator {
-
-    /** Value of {@link #mState} if it is currently day */
-    public static final int DAY = 0;
-
-    /** Value of {@link #mState} if it is currently night */
-    public static final int NIGHT = 1;
-
-    private static final float DEGREES_TO_RADIANS = (float) (Math.PI / 180.0f);
-
-    // element for calculating solar transit.
-    private static final float J0 = 0.0009f;
-
-    // correction for civil twilight
-    private static final float ALTIDUTE_CORRECTION_CIVIL_TWILIGHT = -0.104719755f;
-
-    // coefficients for calculating Equation of Center.
-    private static final float C1 = 0.0334196f;
-    private static final float C2 = 0.000349066f;
-    private static final float C3 = 0.000005236f;
-
-    private static final float OBLIQUITY = 0.40927971f;
-
-    // Java time on Jan 1, 2000 12:00 UTC.
-    private static final long UTC_2000 = 946728000000L;
-
-    /**
-     * Time of sunset (civil twilight) in milliseconds or -1 in the case the day
-     * or night never ends.
-     */
-    public long mSunset;
-
-    /**
-     * Time of sunrise (civil twilight) in milliseconds or -1 in the case the
-     * day or night never ends.
-     */
-    public long mSunrise;
-
-    /** Current state */
-    public int mState;
-
-    /**
-     * calculates the civil twilight bases on time and geo-coordinates.
-     *
-     * @param time time in milliseconds.
-     * @param latiude latitude in degrees.
-     * @param longitude latitude in degrees.
-     */
-    public void calculateTwilight(long time, double latiude, double longitude) {
-        final float daysSince2000 = (float) (time - UTC_2000) / DateUtils.DAY_IN_MILLIS;
-
-        // mean anomaly
-        final float meanAnomaly = 6.240059968f + daysSince2000 * 0.01720197f;
-
-        // true anomaly
-        final double trueAnomaly = meanAnomaly + C1 * Math.sin(meanAnomaly) + C2
-                * Math.sin(2 * meanAnomaly) + C3 * Math.sin(3 * meanAnomaly);
-
-        // ecliptic longitude
-        final double solarLng = trueAnomaly + 1.796593063d + Math.PI;
-
-        // solar transit in days since 2000
-        final double arcLongitude = -longitude / 360;
-        float n = Math.round(daysSince2000 - J0 - arcLongitude);
-        double solarTransitJ2000 = n + J0 + arcLongitude + 0.0053d * Math.sin(meanAnomaly)
-                + -0.0069d * Math.sin(2 * solarLng);
-
-        // declination of sun
-        double solarDec = Math.asin(Math.sin(solarLng) * Math.sin(OBLIQUITY));
-
-        final double latRad = latiude * DEGREES_TO_RADIANS;
-
-        double cosHourAngle = (Math.sin(ALTIDUTE_CORRECTION_CIVIL_TWILIGHT) - Math.sin(latRad)
-                * Math.sin(solarDec)) / (Math.cos(latRad) * Math.cos(solarDec));
-        // The day or night never ends for the given date and location, if this value is out of
-        // range.
-        if (cosHourAngle >= 1) {
-            mState = NIGHT;
-            mSunset = -1;
-            mSunrise = -1;
-            return;
-        } else if (cosHourAngle <= -1) {
-            mState = DAY;
-            mSunset = -1;
-            mSunrise = -1;
-            return;
-        }
-
-        float hourAngle = (float) (Math.acos(cosHourAngle) / (2 * Math.PI));
-
-        mSunset = Math.round((solarTransitJ2000 + hourAngle) * DateUtils.DAY_IN_MILLIS) + UTC_2000;
-        mSunrise = Math.round((solarTransitJ2000 - hourAngle) * DateUtils.DAY_IN_MILLIS) + UTC_2000;
-
-        if (mSunrise < time && mSunset > time) {
-            mState = DAY;
-        } else {
-            mState = NIGHT;
-        }
-    }
-
-}
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 6f713cd..bb5f62b 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -16,6 +16,7 @@
 
 package com.android.server;
 
+import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
@@ -155,8 +156,13 @@
 
     private final TwilightListener mTwilightListener = new TwilightListener() {
         @Override
-        public void onTwilightStateChanged() {
-            updateTwilight();
+        public void onTwilightStateChanged(@Nullable TwilightState state) {
+            synchronized (mLock) {
+                if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
+                    updateComputedNightModeLocked();
+                    updateLocked(0, 0);
+                }
+            }
         }
     };
 
@@ -344,8 +350,8 @@
                     pw.print(" mSystemReady="); pw.println(mSystemReady);
             if (mTwilightManager != null) {
                 // We may not have a TwilightManager.
-                pw.print("  mTwilightService.getCurrentState()=");
-                pw.println(mTwilightManager.getCurrentState());
+                pw.print("  mTwilightService.getLastTwilightState()=");
+                pw.println(mTwilightManager.getLastTwilightState());
             }
         }
     }
@@ -355,9 +361,6 @@
         if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
             synchronized (mLock) {
                 mTwilightManager = getLocalService(TwilightManager.class);
-                if (mTwilightManager != null) {
-                    mTwilightManager.registerListener(mTwilightListener, mHandler);
-                }
                 mSystemReady = true;
                 mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
                 updateComputedNightModeLocked();
@@ -411,10 +414,16 @@
         }
 
         if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
+            if (mTwilightManager != null) {
+                mTwilightManager.registerListener(mTwilightListener, mHandler);
+            }
             updateComputedNightModeLocked();
             uiMode |= mComputedNightMode ? Configuration.UI_MODE_NIGHT_YES
                     : Configuration.UI_MODE_NIGHT_NO;
         } else {
+            if (mTwilightManager != null) {
+                mTwilightManager.unregisterListener(mTwilightListener);
+            }
             uiMode |= mNightMode << 4;
         }
 
@@ -668,18 +677,9 @@
         }
     }
 
-    void updateTwilight() {
-        synchronized (mLock) {
-            if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
-                updateComputedNightModeLocked();
-                updateLocked(0, 0);
-            }
-        }
-    }
-
     private void updateComputedNightModeLocked() {
         if (mTwilightManager != null) {
-            TwilightState state = mTwilightManager.getCurrentState();
+            TwilightState state = mTwilightManager.getLastTwilightState();
             if (state != null) {
                 mComputedNightMode = state.isNight();
             }
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index ee2fa51..1bcff1a 100755
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -699,7 +699,7 @@
                         throw new IllegalArgumentException("null notification");
                     }
                     if (r.foregroundId != id) {
-                        r.cancelNotification();
+                        cancelForegroudNotificationLocked(r);
                         r.foregroundId = id;
                     }
                     notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
@@ -721,7 +721,7 @@
                         }
                     }
                     if ((flags & Service.STOP_FOREGROUND_REMOVE) != 0) {
-                        r.cancelNotification();
+                        cancelForegroudNotificationLocked(r);
                         r.foregroundId = 0;
                         r.foregroundNoti = null;
                     } else if (r.appInfo.targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP) {
@@ -738,6 +738,27 @@
         }
     }
 
+    private void cancelForegroudNotificationLocked(ServiceRecord r) {
+        if (r.foregroundId != 0) {
+            // First check to see if this app has any other active foreground services
+            // with the same notification ID.  If so, we shouldn't actually cancel it,
+            // because that would wipe away the notification that still needs to be shown
+            // due the other service.
+            ServiceMap sm = getServiceMap(r.userId);
+            if (sm != null) {
+                for (int i = sm.mServicesByName.size()-1; i >= 0; i--) {
+                    ServiceRecord other = sm.mServicesByName.valueAt(i);
+                    if (other != r && other.foregroundId == r.foregroundId
+                            && other.packageName.equals(r.packageName)) {
+                        // Found one!  Abort the cancel.
+                        return;
+                    }
+                }
+            }
+            r.cancelNotification();
+        }
+    }
+
     private void updateServiceForegroundLocked(ProcessRecord proc, boolean oomAdj) {
         boolean anyForeground = false;
         for (int i=proc.services.size()-1; i>=0; i--) {
@@ -1560,7 +1581,7 @@
             r.makeRestarting(mAm.mProcessStats.getMemFactorLocked(), now);
         }
 
-        r.cancelNotification();
+        cancelForegroudNotificationLocked(r);
 
         mAm.mHandler.removeCallbacks(r.restarter);
         mAm.mHandler.postAtTime(r.restarter, r.nextRestartTime);
@@ -2022,7 +2043,7 @@
             }
         }
 
-        r.cancelNotification();
+        cancelForegroudNotificationLocked(r);
         r.isForeground = false;
         r.foregroundId = 0;
         r.foregroundNoti = null;
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 3aa2125..ff3f159 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1158,6 +1158,7 @@
      * For example, references to the commonly used services.
      */
     HashMap<String, IBinder> mAppBindArgs;
+    HashMap<String, IBinder> mIsolatedAppBindArgs;
 
     /**
      * Temporary to avoid allocations.  Protected by main lock.
@@ -2328,12 +2329,17 @@
                             ProcessRecord proc = r.app;
                             if (proc.vrThreadTid > 0) {
                                 if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP) {
-                                    if (mInVrMode == true) {
-                                        Process.setThreadScheduler(proc.vrThreadTid,
-                                            Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
-                                    } else {
-                                        Process.setThreadScheduler(proc.vrThreadTid,
-                                            Process.SCHED_OTHER, 0);
+                                    try {
+                                        if (mInVrMode == true) {
+                                            Process.setThreadScheduler(proc.vrThreadTid,
+                                                Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                                        } else {
+                                            Process.setThreadScheduler(proc.vrThreadTid,
+                                                Process.SCHED_OTHER, 0);
+                                        }
+                                    } catch (IllegalArgumentException e) {
+                                        Slog.w(TAG, "Failed to set scheduling policy, thread does"
+                                                + " not exist:\n" + e);
                                     }
                                 }
                             }
@@ -2930,18 +2936,24 @@
      * lazily setup to make sure the services are running when they're asked for.
      */
     private HashMap<String, IBinder> getCommonServicesLocked(boolean isolated) {
+        // Isolated processes won't get this optimization, so that we don't
+        // violate the rules about which services they have access to.
+        if (isolated) {
+            if (mIsolatedAppBindArgs == null) {
+                mIsolatedAppBindArgs = new HashMap<>();
+                mIsolatedAppBindArgs.put("package", ServiceManager.getService("package"));
+            }
+            return mIsolatedAppBindArgs;
+        }
+
         if (mAppBindArgs == null) {
             mAppBindArgs = new HashMap<>();
 
-            // Isolated processes won't get this optimization, so that we don't
-            // violate the rules about which services they have access to.
-            if (!isolated) {
-                // Setup the application init args
-                mAppBindArgs.put("package", ServiceManager.getService("package"));
-                mAppBindArgs.put("window", ServiceManager.getService("window"));
-                mAppBindArgs.put(Context.ALARM_SERVICE,
-                        ServiceManager.getService(Context.ALARM_SERVICE));
-            }
+            // Setup the application init args
+            mAppBindArgs.put("package", ServiceManager.getService("package"));
+            mAppBindArgs.put("window", ServiceManager.getService("window"));
+            mAppBindArgs.put(Context.ALARM_SERVICE,
+                    ServiceManager.getService(Context.ALARM_SERVICE));
         }
         return mAppBindArgs;
     }
@@ -3780,9 +3792,6 @@
             checkTime(startTime, "startProcess: returned from zygote!");
             Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
-            if (app.isolated) {
-                mBatteryStatsService.addIsolatedUid(app.uid, app.info.uid);
-            }
             mBatteryStatsService.noteProcessStart(app.processName, app.info.uid);
             checkTime(startTime, "startProcess: done updating battery stats");
 
@@ -3830,6 +3839,15 @@
             app.killedByAm = false;
             checkTime(startTime, "startProcess: starting to update pids map");
             synchronized (mPidsSelfLocked) {
+                ProcessRecord oldApp;
+                // If there is already an app occupying that pid that hasn't been cleaned up
+                if ((oldApp = mPidsSelfLocked.get(startResult.pid)) != null && !app.isolated) {
+                    // Clean up anything relating to this pid first
+                    Slog.w(TAG, "Reusing pid " + startResult.pid
+                            + " while app is still mapped to it");
+                    cleanUpApplicationRecordLocked(oldApp, false, false, -1,
+                            true /*replacingPid*/);
+                }
                 this.mPidsSelfLocked.put(startResult.pid, app);
                 if (isActivityProcess) {
                     Message msg = mHandler.obtainMessage(PROC_START_TIMEOUT_MSG);
@@ -5045,7 +5063,8 @@
     private final void handleAppDiedLocked(ProcessRecord app,
             boolean restarting, boolean allowRestart) {
         int pid = app.pid;
-        boolean kept = cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1);
+        boolean kept = cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1,
+                false /*replacingPid*/);
         if (!kept && !restarting) {
             removeLruProcessLocked(app);
             if (pid > 0) {
@@ -11457,6 +11476,14 @@
                 // the uid of the isolated process is specified by the caller.
                 uid = isolatedUid;
             }
+
+            // Register the isolated UID with this application so BatteryStats knows to
+            // attribute resource usage to the application.
+            //
+            // NOTE: This is done here before addProcessNameLocked, which will tell BatteryStats
+            // about the process state of the isolated UID *before* it is registered with the
+            // owning application.
+            mBatteryStatsService.addIsolatedUid(uid, info.uid);
         }
         final ProcessRecord r = new ProcessRecord(stats, info, proc, uid);
         if (!mBooted && !mBooting
@@ -12556,23 +12583,38 @@
             synchronized (mPidsSelfLocked) {
                 final int pid = Binder.getCallingPid();
                 proc = mPidsSelfLocked.get(pid);
+
                 if (proc != null && mInVrMode && tid >= 0) {
                     // ensure the tid belongs to the process
                     if (!Process.isThreadInProcess(pid, tid)) {
                         throw new IllegalArgumentException("VR thread does not belong to process");
                     }
-                    // reset existing VR thread to CFS
-                    if (proc.vrThreadTid != 0) {
-                        Process.setThreadScheduler(proc.vrThreadTid, Process.SCHED_OTHER, 0);
+
+                    // reset existing VR thread to CFS if this thread still exists and belongs to
+                    // the calling process
+                    if (proc.vrThreadTid != 0
+                            && Process.isThreadInProcess(pid, proc.vrThreadTid)) {
+                        try {
+                            Process.setThreadScheduler(proc.vrThreadTid, Process.SCHED_OTHER, 0);
+                        } catch (IllegalArgumentException e) {
+                            // Ignore this.  Only occurs in race condition where previous VR thread
+                            // was destroyed during this method call.
+                        }
                     }
-                    // add check to guarantee that tid belongs to pid?
+
                     proc.vrThreadTid = tid;
+
                     // promote to FIFO now if the tid is non-zero
-                    if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP && proc.vrThreadTid > 0) {
-                        Process.setThreadScheduler(proc.vrThreadTid, Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                    try {
+                        if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP &&
+                            proc.vrThreadTid > 0) {
+                            Process.setThreadScheduler(proc.vrThreadTid,
+                                Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                        }
+                    } catch (IllegalArgumentException e) {
+                        Slog.e(TAG, "Failed to set scheduling policy, thread does"
+                               + " not exist:\n" + e);
                     }
-                } else {
-                    //Slog.e("VR_FIFO", "Didn't set thread from setVrThread?");
                 }
             }
         }
@@ -12585,7 +12627,7 @@
             synchronized (mPidsSelfLocked) {
                 int pid = Binder.getCallingPid();
                 proc = mPidsSelfLocked.get(pid);
-                if (mUseFifoUiScheduling && proc != null && proc.renderThreadTid == 0 && tid > 0) {
+                if (proc != null && proc.renderThreadTid == 0 && tid > 0) {
                     // ensure the tid belongs to the process
                     if (!Process.isThreadInProcess(pid, tid)) {
                         throw new IllegalArgumentException(
@@ -12598,8 +12640,12 @@
                     // promote to FIFO now
                     if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP) {
                         if (DEBUG_OOM_ADJ) Slog.d("UI_FIFO", "Promoting " + tid + "out of band");
-                        Process.setThreadScheduler(proc.renderThreadTid,
-                            Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                        if (mUseFifoUiScheduling) {
+                            Process.setThreadScheduler(proc.renderThreadTid,
+                                Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                        } else {
+                            Process.setThreadPriority(proc.renderThreadTid, -10);
+                        }
                     }
                 } else {
                     if (DEBUG_OOM_ADJ) {
@@ -12700,6 +12746,7 @@
                         return;
                     }
                     if (pr.hasTopUi != hasTopUi) {
+                        Slog.i(TAG, "Setting hasTopUi=" + hasTopUi + " for pid=" + pid);
                         pr.hasTopUi = hasTopUi;
                         changed = true;
                     }
@@ -16792,7 +16839,8 @@
      * app that was passed in must remain on the process lists.
      */
     private final boolean cleanUpApplicationRecordLocked(ProcessRecord app,
-            boolean restarting, boolean allowRestart, int index) {
+            boolean restarting, boolean allowRestart, int index, boolean replacingPid) {
+        Slog.d(TAG, "cleanUpApplicationRecord -- " + app.pid);
         if (index >= 0) {
             removeLruProcessLocked(app);
             ProcessList.remove(app.pid);
@@ -16923,7 +16971,9 @@
         if (!app.persistent || app.isolated) {
             if (DEBUG_PROCESSES || DEBUG_CLEANUP) Slog.v(TAG_CLEANUP,
                     "Removing non-persistent process during cleanup: " + app);
-            removeProcessNameLocked(app.processName, app.uid);
+            if (!replacingPid) {
+                removeProcessNameLocked(app.processName, app.uid);
+            }
             if (mHeavyWeightProcess == app) {
                 mHandler.sendMessage(mHandler.obtainMessage(CANCEL_HEAVY_NOTIFICATION_MSG,
                         mHeavyWeightProcess.userId, 0));
@@ -17718,6 +17768,70 @@
         return INTENT_REMOTE_BUGREPORT_FINISHED.equals(intent.getAction());
     }
 
+    private void checkBroadcastFromSystem(Intent intent, ProcessRecord callerApp,
+            String callerPackage, int callingUid, boolean isProtectedBroadcast, List receivers) {
+        final String action = intent.getAction();
+        if (isProtectedBroadcast
+                || Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)
+                || Intent.ACTION_DISMISS_KEYBOARD_SHORTCUTS.equals(action)
+                || Intent.ACTION_MEDIA_BUTTON.equals(action)
+                || Intent.ACTION_MEDIA_SCANNER_SCAN_FILE.equals(action)
+                || Intent.ACTION_SHOW_KEYBOARD_SHORTCUTS.equals(action)
+                || AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action)
+                || AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)
+                || LocationManager.HIGH_POWER_REQUEST_CHANGE_ACTION.equals(action)
+                || TelephonyIntents.ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE.equals(action)
+                || SuggestionSpan.ACTION_SUGGESTION_PICKED.equals(action)) {
+            // Broadcast is either protected, or it's a public action that
+            // we've relaxed, so it's fine for system internals to send.
+            return;
+        }
+
+        // This broadcast may be a problem...  but there are often system components that
+        // want to send an internal broadcast to themselves, which is annoying to have to
+        // explicitly list each action as a protected broadcast, so we will check for that
+        // one safe case and allow it: an explicit broadcast, only being received by something
+        // that has protected itself.
+        if (receivers != null && receivers.size() > 0
+                && (intent.getPackage() != null || intent.getComponent() != null)) {
+            boolean allProtected = true;
+            for (int i = receivers.size()-1; i >= 0; i--) {
+                Object target = receivers.get(i);
+                if (target instanceof ResolveInfo) {
+                    ResolveInfo ri = (ResolveInfo)target;
+                    if (ri.activityInfo.exported && ri.activityInfo.permission == null) {
+                        allProtected = false;
+                        break;
+                    }
+                } else {
+                    BroadcastFilter bf = (BroadcastFilter)target;
+                    if (bf.requiredPermission == null) {
+                        allProtected = false;
+                        break;
+                    }
+                }
+            }
+            if (allProtected) {
+                // All safe!
+                return;
+            }
+        }
+
+        // The vast majority of broadcasts sent from system internals
+        // should be protected to avoid security holes, so yell loudly
+        // to ensure we examine these cases.
+        if (callerApp != null) {
+            Log.wtf(TAG, "Sending non-protected broadcast " + action
+                            + " from system " + callerApp.toShortString() + " pkg " + callerPackage,
+                    new Throwable());
+        } else {
+            Log.wtf(TAG, "Sending non-protected broadcast " + action
+                            + " from system uid " + UserHandle.formatUid(callingUid)
+                            + " pkg " + callerPackage,
+                    new Throwable());
+        }
+    }
+
     final int broadcastIntentLocked(ProcessRecord callerApp,
             String callerPackage, Intent intent, String resolvedType,
             IIntentReceiver resultTo, int resultCode, String resultData,
@@ -17804,37 +17918,9 @@
                 break;
         }
 
-        if (isCallerSystem) {
-            if (isProtectedBroadcast
-                    || Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)
-                    || Intent.ACTION_DISMISS_KEYBOARD_SHORTCUTS.equals(action)
-                    || Intent.ACTION_MEDIA_BUTTON.equals(action)
-                    || Intent.ACTION_MEDIA_SCANNER_SCAN_FILE.equals(action)
-                    || Intent.ACTION_SHOW_KEYBOARD_SHORTCUTS.equals(action)
-                    || AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action)
-                    || AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)
-                    || LocationManager.HIGH_POWER_REQUEST_CHANGE_ACTION.equals(action)
-                    || TelephonyIntents.ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE.equals(action)
-                    || SuggestionSpan.ACTION_SUGGESTION_PICKED.equals(action)) {
-                // Broadcast is either protected, or it's a public action that
-                // we've relaxed, so it's fine for system internals to send.
-            } else {
-                // The vast majority of broadcasts sent from system internals
-                // should be protected to avoid security holes, so yell loudly
-                // to ensure we examine these cases.
-                if (callerApp != null) {
-                    Log.wtf(TAG, "Sending non-protected broadcast " + action
-                            + " from system " + callerApp.toShortString() + " pkg " + callerPackage,
-                            new Throwable());
-                } else {
-                    Log.wtf(TAG, "Sending non-protected broadcast " + action
-                            + " from system uid " + UserHandle.formatUid(callingUid)
-                            + " pkg " + callerPackage,
-                            new Throwable());
-                }
-            }
-
-        } else {
+        // First line security check before anything else: stop non-system apps from
+        // sending protected broadcasts.
+        if (!isCallerSystem) {
             if (isProtectedBroadcast) {
                 String msg = "Permission Denial: not allowed to send broadcast "
                         + action + " from pid="
@@ -18217,6 +18303,10 @@
             // If we are not serializing this broadcast, then send the
             // registered receivers separately so they don't wait for the
             // components to be launched.
+            if (isCallerSystem) {
+                checkBroadcastFromSystem(intent, callerApp, callerPackage, callingUid,
+                        isProtectedBroadcast, registeredReceivers);
+            }
             final BroadcastQueue queue = broadcastQueueForIntent(intent);
             BroadcastRecord r = new BroadcastRecord(queue, intent, callerApp,
                     callerPackage, callingPid, callingUid, resolvedType, requiredPermissions,
@@ -18304,6 +18394,11 @@
             ir++;
         }
 
+        if (isCallerSystem) {
+            checkBroadcastFromSystem(intent, callerApp, callerPackage, callingUid,
+                    isProtectedBroadcast, receivers);
+        }
+
         if ((receivers != null && receivers.size() > 0)
                 || resultTo != null) {
             BroadcastQueue queue = broadcastQueueForIntent(intent);
@@ -19194,10 +19289,14 @@
             // facilitate this, here we need to determine whether or not it
             // is currently showing UI.
             app.systemNoUi = true;
-            if (app == TOP_APP || app.hasTopUi) {
+            if (app == TOP_APP) {
                 app.systemNoUi = false;
                 app.curSchedGroup = ProcessList.SCHED_GROUP_TOP_APP;
                 app.adjType = "pers-top-activity";
+            } else if (app.hasTopUi) {
+                app.systemNoUi = false;
+                app.curSchedGroup = ProcessList.SCHED_GROUP_TOP_APP;
+                app.adjType = "pers-top-ui";
             } else if (activitiesSize > 0) {
                 for (int j = 0; j < activitiesSize; j++) {
                     final ActivityRecord r = app.activities.get(j);
@@ -19223,7 +19322,7 @@
         int procState;
         boolean foregroundActivities = false;
         BroadcastQueue queue;
-        if (app == TOP_APP || app.hasTopUi) {
+        if (app == TOP_APP) {
             // The last app on the list is the foreground app.
             adj = ProcessList.FOREGROUND_APP_ADJ;
             schedGroup = ProcessList.SCHED_GROUP_TOP_APP;
@@ -20279,17 +20378,29 @@
                         if (oldSchedGroup != ProcessList.SCHED_GROUP_TOP_APP) {
                             // Switch VR thread for app to SCHED_FIFO
                             if (mInVrMode && app.vrThreadTid != 0) {
-                                Process.setThreadScheduler(app.vrThreadTid,
-                                    Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                                try {
+                                    Process.setThreadScheduler(app.vrThreadTid,
+                                        Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                                } catch (IllegalArgumentException e) {
+                                    // thread died, ignore
+                                }
                             }
                             if (mUseFifoUiScheduling) {
                                 // Switch UI pipeline for app to SCHED_FIFO
                                 app.savedPriority = Process.getThreadPriority(app.pid);
-                                Process.setThreadScheduler(app.pid,
-                                    Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
-                                if (app.renderThreadTid != 0) {
-                                    Process.setThreadScheduler(app.renderThreadTid,
+                                try {
+                                    Process.setThreadScheduler(app.pid,
                                         Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                                } catch (IllegalArgumentException e) {
+                                    // thread died, ignore
+                                }
+                                if (app.renderThreadTid != 0) {
+                                    try {
+                                        Process.setThreadScheduler(app.renderThreadTid,
+                                            Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+                                    } catch (IllegalArgumentException e) {
+                                        // thread died, ignore
+                                    }
                                     if (DEBUG_OOM_ADJ) {
                                         Slog.d("UI_FIFO", "Set RenderThread (TID " +
                                             app.renderThreadTid + ") to FIFO");
@@ -20299,6 +20410,16 @@
                                         Slog.d("UI_FIFO", "Not setting RenderThread TID");
                                     }
                                 }
+                            } else {
+                                // Boost priority for top app UI and render threads
+                                Process.setThreadPriority(app.pid, -10);
+                                if (app.renderThreadTid != 0) {
+                                    try {
+                                        Process.setThreadPriority(app.renderThreadTid, -10);
+                                    } catch (IllegalArgumentException e) {
+                                        // thread died, ignore
+                                    }
+                                }
                             }
                         }
                     } else if (oldSchedGroup == ProcessList.SCHED_GROUP_TOP_APP &&
@@ -20317,6 +20438,12 @@
                                     Process.SCHED_OTHER, 0);
                                 Process.setThreadPriority(app.renderThreadTid, -4);
                             }
+                        } else {
+                            // Reset priority for top app UI and render threads
+                            Process.setThreadPriority(app.pid, 0);
+                            if (app.renderThreadTid != 0) {
+                                Process.setThreadPriority(app.renderThreadTid, 0);
+                            }
                         }
                     }
                 } catch (Exception e) {
@@ -21175,7 +21302,7 @@
                             // Ignore exceptions.
                         }
                     }
-                    cleanUpApplicationRecordLocked(app, false, true, -1);
+                    cleanUpApplicationRecordLocked(app, false, true, -1, false /*replacingPid*/);
                     mRemovedProcesses.remove(i);
 
                     if (app.persistent) {
@@ -21527,8 +21654,9 @@
 
     @Override
     public boolean isUserRunning(int userId, int flags) {
-        if (userId != UserHandle.getCallingUserId() && checkCallingPermission(
-                INTERACT_ACROSS_USERS) != PackageManager.PERMISSION_GRANTED) {
+        if (!mUserController.isSameProfileGroup(userId, UserHandle.getCallingUserId())
+                && checkCallingPermission(INTERACT_ACROSS_USERS)
+                    != PackageManager.PERMISSION_GRANTED) {
             String msg = "Permission Denial: isUserRunning() from pid="
                     + Binder.getCallingPid()
                     + ", uid=" + Binder.getCallingUid()
@@ -21870,6 +21998,11 @@
                         /*resultTo*/ null, bOptions, userId);
             }
         }
+
+        @Override
+        public int getUidProcessState(int uid) {
+            return getUidState(uid);
+        }
     }
 
     private final class SleepTokenImpl extends SleepToken {
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index 6e40cff..00fda43 100755
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -221,7 +221,12 @@
     boolean pendingVoiceInteractionStart;   // Waiting for activity-invoked voice session
     IVoiceInteractionSession voiceSession;  // Voice interaction session for this activity
 
-    int mRotationAnimationHint;
+    // A hint to override the window specified rotation animation, or -1
+    // to use the window specified value. We use this so that
+    // we can select the right animation in the cases of starting
+    // windows, where the app hasn't had time to set a value
+    // on the window.
+    int mRotationAnimationHint = -1;
 
     private static String startingWindowStateToString(int state) {
         switch (state) {
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 752dbd9..a27adf7 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -988,7 +988,7 @@
             if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep needs to pause " + mResumedActivity);
             if (DEBUG_USER_LEAVING) Slog.v(TAG_USER_LEAVING,
                     "Sleep => pause with userLeaving=false");
-            startPausingLocked(false, true, false, false);
+            startPausingLocked(false, true, null, false);
             return true;
         }
         if (mPausingActivity != null) {
@@ -1066,15 +1066,16 @@
      * @param userLeaving True if this should result in an onUserLeaving to the current activity.
      * @param uiSleeping True if this is happening with the user interface going to sleep (the
      * screen turning off).
-     * @param resuming True if this is being called as part of resuming the top activity, so
-     * we shouldn't try to instigate a resume here.
+     * @param resuming The activity we are currently trying to resume or null if this is not being
+     *                 called as part of resuming the top activity, so we shouldn't try to instigate
+     *                 a resume here if not null.
      * @param dontWait True if the caller does not want to wait for the pause to complete.  If
      * set to true, we will immediately complete the pause here before returning.
      * @return Returns true if an activity now is in the PAUSING state, and we are waiting for
      * it to tell us when it is done.
      */
-    final boolean startPausingLocked(boolean userLeaving, boolean uiSleeping, boolean resuming,
-            boolean dontWait) {
+    final boolean startPausingLocked(boolean userLeaving, boolean uiSleeping,
+            ActivityRecord resuming, boolean dontWait) {
         if (mPausingActivity != null) {
             Slog.wtf(TAG, "Going to pause when pause is already pending for " + mPausingActivity
                     + " state=" + mPausingActivity.state);
@@ -1082,12 +1083,12 @@
                 // Avoid recursion among check for sleep and complete pause during sleeping.
                 // Because activity will be paused immediately after resume, just let pause
                 // be completed by the order of activity paused from clients.
-                completePauseLocked(false);
+                completePauseLocked(false, resuming);
             }
         }
         ActivityRecord prev = mResumedActivity;
         if (prev == null) {
-            if (!resuming) {
+            if (resuming == null) {
                 Slog.wtf(TAG, "Trying to pause when nothing is resumed");
                 mStackSupervisor.resumeFocusedStackTopActivityLocked();
             }
@@ -1160,7 +1161,7 @@
             if (dontWait) {
                 // If the caller said they don't want to wait for the pause, then complete
                 // the pause now.
-                completePauseLocked(false);
+                completePauseLocked(false, resuming);
                 return false;
 
             } else {
@@ -1179,7 +1180,7 @@
             // This activity failed to schedule the
             // pause, so just treat it as being paused now.
             if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Activity not running, resuming next.");
-            if (!resuming) {
+            if (resuming == null) {
                 mStackSupervisor.resumeFocusedStackTopActivityLocked();
             }
             return false;
@@ -1196,7 +1197,7 @@
             if (mPausingActivity == r) {
                 if (DEBUG_STATES) Slog.v(TAG_STATES, "Moving to PAUSED: " + r
                         + (timeout ? " (due to timeout)" : " (pause complete)"));
-                completePauseLocked(true);
+                completePauseLocked(true, null);
                 return;
             } else {
                 EventLog.writeEvent(EventLogTags.AM_FAILED_TO_PAUSE,
@@ -1267,7 +1268,7 @@
         }
     }
 
-    private void completePauseLocked(boolean resumeNext) {
+    private void completePauseLocked(boolean resumeNext, ActivityRecord resuming) {
         ActivityRecord prev = mPausingActivity;
         if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Complete pause: " + prev);
 
@@ -1359,7 +1360,7 @@
             mStackSupervisor.mAppVisibilitiesChangedSinceLastPause = false;
         }
 
-        mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+        mStackSupervisor.ensureActivitiesVisibleLocked(resuming, 0, !PRESERVE_WINDOWS);
     }
 
     private void addToStopping(ActivityRecord r, boolean immediate) {
@@ -2256,11 +2257,11 @@
 
         // We need to start pausing the current activity so the top one can be resumed...
         final boolean dontWaitForPause = (next.info.flags & FLAG_RESUME_WHILE_PAUSING) != 0;
-        boolean pausing = mStackSupervisor.pauseBackStacks(userLeaving, true, dontWaitForPause);
+        boolean pausing = mStackSupervisor.pauseBackStacks(userLeaving, next, dontWaitForPause);
         if (mResumedActivity != null) {
             if (DEBUG_STATES) Slog.d(TAG_STATES,
                     "resumeTopActivityLocked: Pausing " + mResumedActivity);
-            pausing |= startPausingLocked(userLeaving, false, true, dontWaitForPause);
+            pausing |= startPausingLocked(userLeaving, false, next, dontWaitForPause);
         }
         if (pausing) {
             if (DEBUG_SWITCH || DEBUG_STATES) Slog.v(TAG_STATES,
@@ -3497,7 +3498,7 @@
                 if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Finish needs to pause: " + r);
                 if (DEBUG_USER_LEAVING) Slog.v(TAG_USER_LEAVING,
                         "finish() => pause with userLeaving=false");
-                startPausingLocked(false, false, false, false);
+                startPausingLocked(false, false, null, false);
             }
 
             if (endTask) {
@@ -3559,14 +3560,24 @@
         final ActivityState prevState = r.state;
         if (DEBUG_STATES) Slog.v(TAG_STATES, "Moving to FINISHING: " + r);
         r.state = ActivityState.FINISHING;
+        final boolean finishingActivityInNonFocusedStack
+                = r.task.stack != mStackSupervisor.getFocusedStack()
+                && prevState == ActivityState.PAUSED && mode == FINISH_AFTER_VISIBLE;
 
         if (mode == FINISH_IMMEDIATELY
                 || (prevState == ActivityState.PAUSED
                     && (mode == FINISH_AFTER_PAUSE || mStackId == PINNED_STACK_ID))
+                || finishingActivityInNonFocusedStack
                 || prevState == ActivityState.STOPPED
                 || prevState == ActivityState.INITIALIZING) {
             r.makeFinishingLocked();
             boolean activityRemoved = destroyActivityLocked(r, true, "finish-imm");
+
+            if (finishingActivityInNonFocusedStack) {
+                // Finishing activity that was in paused state and it was in not currently focused
+                // stack, need to make something visible in its place.
+                mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+            }
             if (activityRemoved) {
                 mStackSupervisor.resumeFocusedStackTopActivityLocked();
             }
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index c16fc62..1cb83d2 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -781,20 +781,25 @@
         }
     }
 
+    static int nextTaskIdForUser(int taskId, int userId) {
+        int nextTaskId = taskId + 1;
+        if (nextTaskId == (userId + 1) * MAX_TASK_IDS_PER_USER) {
+            // Wrap around as there will be smaller task ids that are available now.
+            nextTaskId -= MAX_TASK_IDS_PER_USER;
+        }
+        return nextTaskId;
+    }
+
     int getNextTaskIdForUserLocked(int userId) {
         final int currentTaskId = mCurTaskIdForUser.get(userId, userId * MAX_TASK_IDS_PER_USER);
         // for a userId u, a taskId can only be in the range
         // [u*MAX_TASK_IDS_PER_USER, (u+1)*MAX_TASK_IDS_PER_USER-1], so if MAX_TASK_IDS_PER_USER
         // was 10, user 0 could only have taskIds 0 to 9, user 1: 10 to 19, user 2: 20 to 29, so on.
-        int candidateTaskId = currentTaskId;
+        int candidateTaskId = nextTaskIdForUser(currentTaskId, userId);
         while (mRecentTasks.taskIdTakenForUserLocked(candidateTaskId, userId)
                 || anyTaskForIdLocked(candidateTaskId, !RESTORE_FROM_RECENTS,
                         INVALID_STACK_ID) != null) {
-            candidateTaskId++;
-            if (candidateTaskId == (userId + 1) * MAX_TASK_IDS_PER_USER) {
-                // Wrap around as there will be smaller task ids that are available now.
-                candidateTaskId -= MAX_TASK_IDS_PER_USER;
-            }
+            candidateTaskId = nextTaskIdForUser(candidateTaskId, userId);
             if (candidateTaskId == currentTaskId) {
                 // Something wrong!
                 // All MAX_TASK_IDS_PER_USER task ids are taken up by running tasks for this user
@@ -918,9 +923,12 @@
     /**
      * Pause all activities in either all of the stacks or just the back stacks.
      * @param userLeaving Passed to pauseActivity() to indicate whether to call onUserLeaving().
+     * @param resuming The resuming activity.
+     * @param dontWait The resuming activity isn't going to wait for all activities to be paused
+     *                 before resuming.
      * @return true if any activity was paused as a result of this call.
      */
-    boolean pauseBackStacks(boolean userLeaving, boolean resuming, boolean dontWait) {
+    boolean pauseBackStacks(boolean userLeaving, ActivityRecord resuming, boolean dontWait) {
         boolean someActivityPaused = false;
         for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
             ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
@@ -959,7 +967,7 @@
     }
 
     void pauseChildStacks(ActivityRecord parent, boolean userLeaving, boolean uiSleeping,
-            boolean resuming, boolean dontWait) {
+            ActivityRecord resuming, boolean dontWait) {
         // 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;
@@ -1051,7 +1059,7 @@
             return r;
         }
 
-        // Return to the home stack.
+        // Look in other non-focused and non-home stacks.
         final ArrayList<ActivityStack> stacks = mHomeStack.mStacks;
         for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
             final ActivityStack stack = stacks.get(stackNdx);
@@ -4195,7 +4203,7 @@
                 mContainerState = CONTAINER_STATE_NO_SURFACE;
                 ((VirtualActivityDisplay) mActivityDisplay).setSurface(null);
                 if (mStack.mPausingActivity == null && mStack.mResumedActivity != null) {
-                    mStack.startPausingLocked(false, true, false, false);
+                    mStack.startPausingLocked(false, true, null, false);
                 }
             }
 
diff --git a/services/core/java/com/android/server/am/AppErrorDialog.java b/services/core/java/com/android/server/am/AppErrorDialog.java
index e37feb2..646f6ce 100644
--- a/services/core/java/com/android/server/am/AppErrorDialog.java
+++ b/services/core/java/com/android/server/am/AppErrorDialog.java
@@ -16,29 +16,22 @@
 
 package com.android.server.am;
 
-import android.app.ActivityManagerInternal;
-import android.app.ActivityOptions;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.IPackageDataObserver;
-import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.provider.Settings;
 import android.text.BidiFormatter;
-import android.util.Slog;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.FrameLayout;
 import android.widget.TextView;
 
-import java.util.List;
-
 import static com.android.server.am.ActivityManagerService.IS_USER_BUILD;
 
 final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListener {
@@ -47,7 +40,7 @@
     private final AppErrorResult mResult;
     private final ProcessRecord mProc;
     private final boolean mRepeating;
-    private final boolean mForeground;
+    private final boolean mIsRestartable;
 
     private CharSequence mName;
 
@@ -74,7 +67,7 @@
         mProc = data.proc;
         mResult = data.result;
         mRepeating = data.repeating;
-        mForeground = data.task != null;
+        mIsRestartable = data.task != null || data.isRestartableForService;
         BidiFormatter bidi = BidiFormatter.getInstance();
 
         if ((mProc.pkgList.size() == 1) &&
@@ -118,7 +111,7 @@
         LayoutInflater.from(context).inflate(
                 com.android.internal.R.layout.app_error_dialog, frame, true);
 
-        boolean hasRestart = !mRepeating && mForeground;
+        boolean hasRestart = !mRepeating && mIsRestartable;
         final boolean hasReceiver = mProc.errorReportReceiver != null;
 
         final TextView restart = (TextView) findViewById(com.android.internal.R.id.aerr_restart);
@@ -214,5 +207,6 @@
         TaskRecord task;
         boolean repeating;
         ProcessRecord proc;
+        boolean isRestartableForService;
     }
 }
diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java
index 5807502..7eff773 100644
--- a/services/core/java/com/android/server/am/AppErrors.java
+++ b/services/core/java/com/android/server/am/AppErrors.java
@@ -627,12 +627,21 @@
             }
         }
 
+        boolean procIsBoundForeground =
+                (app.curProcState == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE);
         // Bump up the crash count of any services currently running in the proc.
         for (int i=app.services.size()-1; i>=0; i--) {
             // Any services running in the application need to be placed
             // back in the pending list.
             ServiceRecord sr = app.services.valueAt(i);
             sr.crashCount++;
+
+            // Allow restarting for started or bound foreground services that are crashing the
+            // first time. This includes wallpapers.
+            if ((data != null) && (sr.crashCount <= 1)
+                    && (sr.isForeground || procIsBoundForeground)) {
+                data.isRestartableForService = true;
+            }
         }
 
         // If the crashing process is what we consider to be the "home process" and it has been
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index a279290..d3826ac 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -226,11 +226,12 @@
     }
 
     public final boolean replaceParallelBroadcastLocked(BroadcastRecord r) {
+        final Intent intent = r.intent;
         for (int i = mParallelBroadcasts.size() - 1; i >= 0; i--) {
-            if (r.intent.filterEquals(mParallelBroadcasts.get(i).intent)) {
+            if (intent.filterEquals(mParallelBroadcasts.get(i).intent)) {
                 if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST,
                         "***** DROPPING PARALLEL ["
-                + mQueueName + "]: " + r.intent);
+                + mQueueName + "]: " + intent);
                 mParallelBroadcasts.set(i, r);
                 return true;
             }
@@ -239,11 +240,12 @@
     }
 
     public final boolean replaceOrderedBroadcastLocked(BroadcastRecord r) {
+        final Intent intent = r.intent;
         for (int i = mOrderedBroadcasts.size() - 1; i > 0; i--) {
-            if (r.intent.filterEquals(mOrderedBroadcasts.get(i).intent)) {
+            if (intent.filterEquals(mOrderedBroadcasts.get(i).intent)) {
                 if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST,
                         "***** DROPPING ORDERED ["
-                        + mQueueName + "]: " + r.intent);
+                        + mQueueName + "]: " + intent);
                 mOrderedBroadcasts.set(i, r);
                 return true;
             }
@@ -302,6 +304,11 @@
         boolean didSomething = false;
         final BroadcastRecord br = mPendingBroadcast;
         if (br != null && br.curApp.pid == app.pid) {
+            if (br.curApp != app) {
+                Slog.e(TAG, "App mismatch when sending pending broadcast to "
+                        + app.processName + ", intended target is " + br.curApp.processName);
+                return false;
+            }
             try {
                 mPendingBroadcast = null;
                 processCurBroadcastLocked(br, app);
diff --git a/services/core/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java
index 9dd07a9..73a17c6 100644
--- a/services/core/java/com/android/server/am/CoreSettingsObserver.java
+++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java
@@ -42,6 +42,7 @@
             String, Class<?>>();
     static {
         sSecureSettingToTypeMap.put(Settings.Secure.LONG_PRESS_TIMEOUT, int.class);
+        sSecureSettingToTypeMap.put(Settings.Secure.MULTI_PRESS_TIMEOUT, int.class);
         // add other secure settings here...
 
         sSystemSettingToTypeMap.put(Settings.System.TIME_12_24, String.class);
diff --git a/services/core/java/com/android/server/am/PreBootBroadcaster.java b/services/core/java/com/android/server/am/PreBootBroadcaster.java
index b24edb9..f4f6b66 100644
--- a/services/core/java/com/android/server/am/PreBootBroadcaster.java
+++ b/services/core/java/com/android/server/am/PreBootBroadcaster.java
@@ -130,7 +130,7 @@
             switch (msg.what) {
                 case MSG_SHOW:
                     final CharSequence title = context
-                            .getText(R.string.android_upgrading_title);
+                            .getText(R.string.android_upgrading_notification_title);
 
                     final Intent intent = new Intent();
                     intent.setClassName("com.android.settings",
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index e74b3a3..3fffefb 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -436,6 +436,9 @@
                 pw.print(prefix); pw.print("  - "); pw.println(receivers.valueAt(i));
             }
         }
+        if (hasTopUi) {
+            pw.print(prefix); pw.print("hasTopUi="); pw.print(hasTopUi);
+        }
     }
 
     ProcessRecord(BatteryStatsImpl _batteryStats, ApplicationInfo _info,
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java
index 5c05ab6..beb863b 100644
--- a/services/core/java/com/android/server/am/RecentTasks.java
+++ b/services/core/java/com/android/server/am/RecentTasks.java
@@ -653,12 +653,17 @@
                             && task.realActivity.equals(tr.realActivity);
                     // If the document is open in another app or is not the same
                     // document, we don't need to trim it.
-                    if (!sameActivity || !sameIntentFilter || multiTasksAllowed) {
+                    if (!sameActivity) {
                         continue;
                     // Otherwise only trim if we are over our max recents for this task
-                    } else if (maxRecents > 0 && !doTrim) {
+                    } else if (maxRecents > 0) {
                         --maxRecents;
-                        continue;
+                        if (!doTrim || !sameIntentFilter || multiTasksAllowed) {
+                            // We don't want to trim if we are not over the max allowed entries and
+                            // the caller doesn't want us to trim, the tasks are not of the same
+                            // intent filter, or multiple entries fot the task is allowed.
+                            continue;
+                        }
                     }
                     // Hit the maximum number of documents for this task. Fall through
                     // and remove this document from recents.
diff --git a/services/core/java/com/android/server/am/ServiceRecord.java b/services/core/java/com/android/server/am/ServiceRecord.java
index 2bfc402..71c7fd3 100644
--- a/services/core/java/com/android/server/am/ServiceRecord.java
+++ b/services/core/java/com/android/server/am/ServiceRecord.java
@@ -543,27 +543,25 @@
     }
     
     public void cancelNotification() {
-        if (foregroundId != 0) {
-            // Do asynchronous communication with notification manager to
-            // avoid deadlocks.
-            final String localPackageName = packageName;
-            final int localForegroundId = foregroundId;
-            ams.mHandler.post(new Runnable() {
-                public void run() {
-                    INotificationManager inm = NotificationManager.getService();
-                    if (inm == null) {
-                        return;
-                    }
-                    try {
-                        inm.cancelNotificationWithTag(localPackageName, null,
-                                localForegroundId, userId);
-                    } catch (RuntimeException e) {
-                        Slog.w(TAG, "Error canceling notification for service", e);
-                    } catch (RemoteException e) {
-                    }
+        // Do asynchronous communication with notification manager to
+        // avoid deadlocks.
+        final String localPackageName = packageName;
+        final int localForegroundId = foregroundId;
+        ams.mHandler.post(new Runnable() {
+            public void run() {
+                INotificationManager inm = NotificationManager.getService();
+                if (inm == null) {
+                    return;
                 }
-            });
-        }
+                try {
+                    inm.cancelNotificationWithTag(localPackageName, null,
+                            localForegroundId, userId);
+                } catch (RuntimeException e) {
+                    Slog.w(TAG, "Error canceling notification for service", e);
+                } catch (RemoteException e) {
+                }
+            }
+        });
     }
 
     public void stripForegroundServiceFlagFromNotification() {
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index 9c22be7..4bc148b 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -279,6 +279,7 @@
      */
     private void finishUserUnlocking(final UserState uss) {
         final int userId = uss.mHandle.getIdentifier();
+        boolean proceedWithUnlock = false;
         synchronized (mService) {
             // Bail if we ended up with a stale user
             if (mStartedUsers.get(uss.mHandle.getIdentifier()) != uss) return;
@@ -288,20 +289,24 @@
 
             if (uss.setState(STATE_RUNNING_LOCKED, STATE_RUNNING_UNLOCKING)) {
                 getUserManagerInternal().setUserState(userId, uss.state);
-                uss.mUnlockProgress.start();
-
-                // Prepare app storage before we go any further
-                uss.mUnlockProgress.setProgress(5,
-                        mService.mContext.getString(R.string.android_start_title));
-                mUserManager.onBeforeUnlockUser(userId);
-                uss.mUnlockProgress.setProgress(20);
-
-                // Dispatch unlocked to system services; when fully dispatched,
-                // that calls through to the next "unlocked" phase
-                mHandler.obtainMessage(SYSTEM_USER_UNLOCK_MSG, userId, 0, uss)
-                        .sendToTarget();
+                proceedWithUnlock = true;
             }
         }
+
+        if (proceedWithUnlock) {
+            uss.mUnlockProgress.start();
+
+            // Prepare app storage before we go any further
+            uss.mUnlockProgress.setProgress(5,
+                    mService.mContext.getString(R.string.android_start_title));
+            mUserManager.onBeforeUnlockUser(userId);
+            uss.mUnlockProgress.setProgress(20);
+
+            // Dispatch unlocked to system services; when fully dispatched,
+            // that calls through to the next "unlocked" phase
+            mHandler.obtainMessage(SYSTEM_USER_UNLOCK_MSG, userId, 0, uss)
+                    .sendToTarget();
+        }
     }
 
     /**
@@ -962,6 +967,7 @@
 
     boolean unlockUserCleared(final int userId, byte[] token, byte[] secret,
             IProgressListener listener) {
+        UserState uss;
         synchronized (mService) {
             // TODO Move this block outside of synchronized if it causes lock contention
             if (!StorageManager.isUserKeyUnlocked(userId)) {
@@ -976,7 +982,7 @@
             }
             // Bail if user isn't actually running, otherwise register the given
             // listener to watch for unlock progress
-            final UserState uss = mStartedUsers.get(userId);
+            uss = mStartedUsers.get(userId);
             if (uss == null) {
                 notifyFinished(userId, listener);
                 return false;
@@ -984,8 +990,12 @@
                 uss.mUnlockProgress.addListener(listener);
                 uss.tokenProvided = (token != null);
             }
+        }
 
-            finishUserUnlocking(uss);
+        finishUserUnlocking(uss);
+
+        final ArraySet<Integer> childProfilesToUnlock = new ArraySet<>();
+        synchronized (mService) {
 
             // We just unlocked a user, so let's now attempt to unlock any
             // managed profiles under that user.
@@ -995,11 +1005,16 @@
                 if (parent != null && parent.id == userId && testUserId != userId) {
                     Slog.d(TAG, "User " + testUserId + " (parent " + parent.id
                             + "): attempting unlock because parent was just unlocked");
-                    maybeUnlockUser(testUserId);
+                    childProfilesToUnlock.add(testUserId);
                 }
             }
         }
 
+        final int size = childProfilesToUnlock.size();
+        for (int i = 0; i < size; i++) {
+            maybeUnlockUser(childProfilesToUnlock.valueAt(i));
+        }
+
         return true;
     }
 
@@ -1478,6 +1493,9 @@
     }
 
     boolean isSameProfileGroup(int callingUserId, int targetUserId) {
+        if (callingUserId == targetUserId) {
+            return true;
+        }
         synchronized (mUserProfileGroupIdsSelfLocked) {
             int callingProfile = mUserProfileGroupIdsSelfLocked.get(callingUserId,
                     UserInfo.NO_PROFILE_GROUP_ID);
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index 92c4577..42d80fc 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -200,7 +200,7 @@
     private final WifiManager mWifiManager;
     private final AlarmManager mAlarmManager;
     private final NetworkRequest mDefaultRequest;
-    private final IpConnectivityLog mMetricsLog = new IpConnectivityLog();
+    private final IpConnectivityLog mMetricsLog;
 
     private boolean mIsCaptivePortalCheckEnabled;
     private boolean mUseHttps;
@@ -226,10 +226,17 @@
 
     public NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo,
             NetworkRequest defaultRequest) {
+        this(context, handler, networkAgentInfo, defaultRequest, new IpConnectivityLog());
+    }
+
+    @VisibleForTesting
+    protected NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo,
+            NetworkRequest defaultRequest, IpConnectivityLog logger) {
         // Add suffix indicating which NetworkMonitor we're talking about.
         super(TAG + networkAgentInfo.name());
 
         mContext = context;
+        mMetricsLog = logger;
         mConnectivityServiceHandler = handler;
         mNetworkAgentInfo = networkAgentInfo;
         mNetId = mNetworkAgentInfo.network.netId;
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java
index b6c8d5d..927f8f9 100644
--- a/services/core/java/com/android/server/connectivity/Tethering.java
+++ b/services/core/java/com/android/server/connectivity/Tethering.java
@@ -1392,6 +1392,8 @@
 
                     for (Integer netType : mUpstreamIfaceTypes) {
                         NetworkInfo info = cm.getNetworkInfo(netType.intValue());
+                        // TODO: if the network is suspended we should consider
+                        // that to be the same as connected here.
                         if ((info != null) && info.isConnected()) {
                             upType = netType.intValue();
                             break;
@@ -1465,6 +1467,10 @@
                     // it immediately, because there likely will be no second
                     // EVENT_ON_AVAILABLE (it was already received).
                     handleNewUpstreamNetworkState(ns);
+                } else if (mCurrentUpstreamIface == null) {
+                    // There are no available upstream networks, or none that
+                    // have an IPv4 default route (current metric for success).
+                    handleNewUpstreamNetworkState(null);
                 }
             }
 
@@ -1610,6 +1616,7 @@
                         if (VDBG) Log.d(TAG, "Tether Mode requested by " + who);
                         if (mNotifyList.indexOf(who) < 0) {
                             mNotifyList.add(who);
+                            mIPv6TetheringCoordinator.addActiveDownstream(who);
                         }
                         transitionTo(mTetherModeAliveState);
                         break;
@@ -1617,6 +1624,7 @@
                         who = (TetherInterfaceStateMachine)message.obj;
                         if (VDBG) Log.d(TAG, "Tether Mode unrequested by " + who);
                         mNotifyList.remove(who);
+                        mIPv6TetheringCoordinator.removeActiveDownstream(who);
                         break;
                     default:
                         retValue = false;
@@ -1639,6 +1647,7 @@
                 chooseUpstreamType(mTryCell);
                 mTryCell = !mTryCell;
             }
+
             @Override
             public void exit() {
                 // TODO: examine if we should check the return value.
@@ -1646,23 +1655,27 @@
                 mUpstreamNetworkMonitor.stop();
                 stopListeningForSimChanges();
                 notifyTetheredOfNewUpstreamIface(null);
+                handleNewUpstreamNetworkState(null);
             }
+
             @Override
             public boolean processMessage(Message message) {
                 maybeLogMessage(this, message.what);
                 boolean retValue = true;
                 switch (message.what) {
-                    case CMD_TETHER_MODE_REQUESTED:
+                    case CMD_TETHER_MODE_REQUESTED: {
                         TetherInterfaceStateMachine who = (TetherInterfaceStateMachine)message.obj;
                         if (VDBG) Log.d(TAG, "Tether Mode requested by " + who);
                         if (mNotifyList.indexOf(who) < 0) {
                             mNotifyList.add(who);
+                            mIPv6TetheringCoordinator.addActiveDownstream(who);
                         }
                         who.sendMessage(TetherInterfaceStateMachine.CMD_TETHER_CONNECTION_CHANGED,
                                 mCurrentUpstreamIface);
                         break;
-                    case CMD_TETHER_MODE_UNREQUESTED:
-                        who = (TetherInterfaceStateMachine)message.obj;
+                    }
+                    case CMD_TETHER_MODE_UNREQUESTED: {
+                        TetherInterfaceStateMachine who = (TetherInterfaceStateMachine)message.obj;
                         if (VDBG) Log.d(TAG, "Tether Mode unrequested by " + who);
                         if (mNotifyList.remove(who)) {
                             if (DBG) Log.d(TAG, "TetherModeAlive removing notifyee " + who);
@@ -1680,7 +1693,9 @@
                         } else {
                            Log.e(TAG, "TetherModeAliveState UNREQUESTED has unknown who: " + who);
                         }
+                        mIPv6TetheringCoordinator.removeActiveDownstream(who);
                         break;
+                    }
                     case CMD_UPSTREAM_CHANGED:
                         // need to try DUN immediately if Wifi goes down
                         mTryCell = true;
@@ -1734,6 +1749,7 @@
                                 // reevaluation is triggered via received CONNECTIVITY_ACTION
                                 // broadcasts that result in being passed a
                                 // TetherMasterSM.CMD_UPSTREAM_CHANGED.
+                                handleNewUpstreamNetworkState(null);
                                 break;
                             default:
                                 break;
diff --git a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java b/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
index 8254397..9173feb 100644
--- a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
+++ b/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
@@ -29,6 +29,7 @@
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.util.ArrayList;
+import java.util.LinkedList;
 
 
 /**
@@ -45,17 +46,35 @@
     private static final boolean VDBG = false;
 
     private final ArrayList<TetherInterfaceStateMachine> mNotifyList;
+    private final LinkedList<TetherInterfaceStateMachine> mActiveDownstreams;
     private NetworkState mUpstreamNetworkState;
 
     public IPv6TetheringCoordinator(ArrayList<TetherInterfaceStateMachine> notifyList) {
         mNotifyList = notifyList;
+        mActiveDownstreams = new LinkedList<>();
+    }
+
+    public void addActiveDownstream(TetherInterfaceStateMachine downstream) {
+        if (mActiveDownstreams.indexOf(downstream) == -1) {
+            // Adding a new downstream appends it to the list. Adding a
+            // downstream a second time without first removing it has no effect.
+            mActiveDownstreams.offer(downstream);
+            updateIPv6TetheringInterfaces();
+        }
+    }
+
+    public void removeActiveDownstream(TetherInterfaceStateMachine downstream) {
+        stopIPv6TetheringOn(downstream);
+        if (mActiveDownstreams.remove(downstream)) {
+            updateIPv6TetheringInterfaces();
+        }
     }
 
     public void updateUpstreamNetworkState(NetworkState ns) {
         if (VDBG) {
             Log.d(TAG, "updateUpstreamNetworkState: " + toDebugString(ns));
         }
-        if (ns == null || ns.network == null) {
+        if (!canTetherIPv6(ns)) {
             stopIPv6TetheringOnAllInterfaces();
             setUpstreamNetworkState(null);
             return;
@@ -65,21 +84,22 @@
             !ns.network.equals(mUpstreamNetworkState.network)) {
             stopIPv6TetheringOnAllInterfaces();
         }
+
         setUpstreamNetworkState(ns);
-        maybeUpdateIPv6TetheringInterfaces();
+        updateIPv6TetheringInterfaces();
     }
 
     private void stopIPv6TetheringOnAllInterfaces() {
         for (TetherInterfaceStateMachine sm : mNotifyList) {
-            sm.sendMessage(TetherInterfaceStateMachine.CMD_IPV6_TETHER_UPDATE,
-                    0, 0, null);
+            stopIPv6TetheringOn(sm);
         }
     }
 
     private void setUpstreamNetworkState(NetworkState ns) {
-        if (!canTetherIPv6(ns)) {
+        if (ns == null) {
             mUpstreamNetworkState = null;
         } else {
+            // Make a deep copy of the parts we need.
             mUpstreamNetworkState = new NetworkState(
                     null,
                     new LinkProperties(ns.linkProperties),
@@ -94,32 +114,34 @@
         }
     }
 
-    private void maybeUpdateIPv6TetheringInterfaces() {
-        if (mUpstreamNetworkState == null) return;
-
+    private void updateIPv6TetheringInterfaces() {
         for (TetherInterfaceStateMachine sm : mNotifyList) {
-            final LinkProperties lp = getInterfaceIPv6LinkProperties(sm.interfaceType());
-            if (lp != null) {
-                sm.sendMessage(TetherInterfaceStateMachine.CMD_IPV6_TETHER_UPDATE, 0, 0, lp);
-            }
+            final LinkProperties lp = getInterfaceIPv6LinkProperties(sm);
+            sm.sendMessage(TetherInterfaceStateMachine.CMD_IPV6_TETHER_UPDATE, 0, 0, lp);
             break;
         }
     }
 
-    private LinkProperties getInterfaceIPv6LinkProperties(int interfaceType) {
+    private LinkProperties getInterfaceIPv6LinkProperties(TetherInterfaceStateMachine sm) {
+        if (mUpstreamNetworkState == null) return null;
+
+        if (sm.interfaceType() == ConnectivityManager.TETHERING_BLUETOOTH) {
+            // TODO: Figure out IPv6 support on PAN interfaces.
+            return null;
+        }
+
         // NOTE: Here, in future, we would have policies to decide how to divvy
         // up the available dedicated prefixes among downstream interfaces.
         // At this time we have no such mechanism--we only support tethering
-        // IPv6 toward Wi-Fi interfaces.
+        // IPv6 toward the oldest (first requested) active downstream.
 
-        switch (interfaceType) {
-            case ConnectivityManager.TETHERING_WIFI:
-                final LinkProperties lp = getIPv6OnlyLinkProperties(
-                        mUpstreamNetworkState.linkProperties);
-                if (lp.hasIPv6DefaultRoute() && lp.hasGlobalIPv6Address()) {
-                    return lp;
-                }
-                break;
+        final TetherInterfaceStateMachine currentActive = mActiveDownstreams.peek();
+        if (currentActive != null && currentActive == sm) {
+            final LinkProperties lp = getIPv6OnlyLinkProperties(
+                    mUpstreamNetworkState.linkProperties);
+            if (lp.hasIPv6DefaultRoute() && lp.hasGlobalIPv6Address()) {
+                return lp;
+            }
         }
 
         return null;
@@ -250,4 +272,8 @@
                 ns.networkCapabilities,
                 ns.linkProperties);
     }
+
+    private static void stopIPv6TetheringOn(TetherInterfaceStateMachine sm) {
+        sm.sendMessage(TetherInterfaceStateMachine.CMD_IPV6_TETHER_UPDATE, 0, 0, null);
+    }
 }
diff --git a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java b/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java
index a58d243..7525f30 100644
--- a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java
+++ b/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java
@@ -16,6 +16,7 @@
 
 package com.android.server.connectivity.tethering;
 
+import android.net.INetd;
 import android.net.IpPrefix;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
@@ -25,15 +26,19 @@
 import android.net.ip.RouterAdvertisementDaemon;
 import android.net.ip.RouterAdvertisementDaemon.RaParams;
 import android.os.INetworkManagementService;
+import android.os.ServiceSpecificException;
 import android.os.RemoteException;
 import android.util.Log;
+import android.util.Slog;
 
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Objects;
 
 
 /**
@@ -41,13 +46,15 @@
  */
 class IPv6TetheringInterfaceServices {
     private static final String TAG = IPv6TetheringInterfaceServices.class.getSimpleName();
+    private static final IpPrefix LINK_LOCAL_PREFIX = new IpPrefix("fe80::/64");
+    private static final int RFC7421_IP_PREFIX_LENGTH = 64;
 
     private final String mIfName;
     private final INetworkManagementService mNMService;
 
     private NetworkInterface mNetworkInterface;
     private byte[] mHwAddr;
-    private ArrayList<RouteInfo> mLastLocalRoutes;
+    private LinkProperties mLastIPv6LinkProperties;
     private RouterAdvertisementDaemon mRaDaemon;
     private RaParams mLastRaParams;
 
@@ -86,8 +93,7 @@
     public void stop() {
         mNetworkInterface = null;
         mHwAddr = null;
-        updateLocalRoutes(null);
-        updateRaParams(null);
+        setRaParams(null);
 
         if (mRaDaemon != null) {
             mRaDaemon.stop();
@@ -104,83 +110,182 @@
     public void updateUpstreamIPv6LinkProperties(LinkProperties v6only) {
         if (mRaDaemon == null) return;
 
-        if (v6only == null) {
-            updateLocalRoutes(null);
-            updateRaParams(null);
+        // Avoid unnecessary work on spurious updates.
+        if (Objects.equals(mLastIPv6LinkProperties, v6only)) {
             return;
         }
 
-        RaParams params = new RaParams();
-        params.mtu = v6only.getMtu();
-        params.hasDefaultRoute = v6only.hasIPv6DefaultRoute();
+        RaParams params = null;
 
-        ArrayList<RouteInfo> localRoutes = new ArrayList<RouteInfo>();
-        for (LinkAddress linkAddr : v6only.getLinkAddresses()) {
-            final IpPrefix prefix = new IpPrefix(linkAddr.getAddress(),
-                                                 linkAddr.getPrefixLength());
+        if (v6only != null) {
+            params = new RaParams();
+            params.mtu = v6only.getMtu();
+            params.hasDefaultRoute = v6only.hasIPv6DefaultRoute();
 
-            // Accumulate routes representing "prefixes to be assigned to the
-            // local interface", for subsequent addition to the local network
-            // in the routing rules.
-            localRoutes.add(new RouteInfo(prefix, null, mIfName));
+            for (LinkAddress linkAddr : v6only.getLinkAddresses()) {
+                if (linkAddr.getPrefixLength() != RFC7421_IP_PREFIX_LENGTH) continue;
 
-            params.prefixes.add(prefix);
+                final IpPrefix prefix = new IpPrefix(
+                        linkAddr.getAddress(), linkAddr.getPrefixLength());
+                params.prefixes.add(prefix);
+
+                final Inet6Address dnsServer = getLocalDnsIpFor(prefix);
+                if (dnsServer != null) {
+                    params.dnses.add(dnsServer);
+                }
+            }
         }
+        // If v6only is null, we pass in null to setRaParams(), which handles
+        // deprecation of any existing RA data.
 
-        // We need to be able to send unicast RAs, and clients might like to
-        // ping the default router's link-local address, so add that as well.
-        localRoutes.add(new RouteInfo(new IpPrefix("fe80::/64"), null, mIfName));
+        setRaParams(params);
+        mLastIPv6LinkProperties = v6only;
+    }
 
-        // TODO: Add a local interface address, update dnsmasq to listen on the
-        // new address, and use only that address as a DNS server.
-        for (InetAddress dnsServer : v6only.getDnsServers()) {
-            if (dnsServer instanceof Inet6Address) {
-                params.dnses.add((Inet6Address) dnsServer);
+
+    private void configureLocalRoutes(
+            HashSet<IpPrefix> deprecatedPrefixes, HashSet<IpPrefix> newPrefixes) {
+        // [1] Remove the routes that are deprecated.
+        if (!deprecatedPrefixes.isEmpty()) {
+            final ArrayList<RouteInfo> toBeRemoved = getLocalRoutesFor(deprecatedPrefixes);
+            try {
+                final int removalFailures = mNMService.removeRoutesFromLocalNetwork(toBeRemoved);
+                if (removalFailures > 0) {
+                    Log.e(TAG, String.format("Failed to remove %d IPv6 routes from local table.",
+                            removalFailures));
+                }
+            } catch (RemoteException e) {
+                Log.e(TAG, "Failed to remove IPv6 routes from local table: ", e);
             }
         }
 
-        updateLocalRoutes(localRoutes);
-        updateRaParams(params);
-    }
+        // [2] Add only the routes that have not previously been added.
+        if (newPrefixes != null && !newPrefixes.isEmpty()) {
+            HashSet<IpPrefix> addedPrefixes = (HashSet) newPrefixes.clone();
+            if (mLastRaParams != null) {
+                addedPrefixes.removeAll(mLastRaParams.prefixes);
+            }
 
-    private void updateLocalRoutes(ArrayList<RouteInfo> localRoutes) {
-        if (localRoutes != null) {
-            // TODO: Compare with mLastLocalRoutes and take appropriate
-            // appropriate action on the difference between the two.
+            if (mLastRaParams == null || mLastRaParams.prefixes.isEmpty()) {
+                // We need to be able to send unicast RAs, and clients might
+                // like to ping the default router's link-local address.  Note
+                // that we never remove the link-local route from the network
+                // until Tethering disables tethering on the interface. We
+                // only need to add the link-local prefix once, but in the
+                // event we add it more than once netd silently ignores EEXIST.
+                addedPrefixes.add(LINK_LOCAL_PREFIX);
+            }
 
-            if (!localRoutes.isEmpty()) {
+            if (!addedPrefixes.isEmpty()) {
+                final ArrayList<RouteInfo> toBeAdded = getLocalRoutesFor(addedPrefixes);
                 try {
-                    mNMService.addInterfaceToLocalNetwork(mIfName, localRoutes);
+                    // It's safe to call addInterfaceToLocalNetwork() even if
+                    // the interface is already in the local_network. Note also
+                    // that adding routes that already exist does not cause an
+                    // error (EEXIST is silently ignored).
+                    mNMService.addInterfaceToLocalNetwork(mIfName, toBeAdded);
                 } catch (RemoteException e) {
                     Log.e(TAG, "Failed to add IPv6 routes to local table: ", e);
                 }
             }
-        } else {
-            if (mLastLocalRoutes != null && !mLastLocalRoutes.isEmpty()) {
+        }
+    }
+
+    private void configureLocalDns(
+            HashSet<Inet6Address> deprecatedDnses, HashSet<Inet6Address> newDnses) {
+        INetd netd = getNetdServiceOrNull();
+        if (netd == null) {
+            if (newDnses != null) newDnses.clear();
+            Log.e(TAG, "No netd service instance available; not setting local IPv6 addresses");
+            return;
+        }
+
+        // [1] Remove deprecated local DNS IP addresses.
+        if (!deprecatedDnses.isEmpty()) {
+            for (Inet6Address dns : deprecatedDnses) {
+                final String dnsString = dns.getHostAddress();
                 try {
-                    final int removalFailures =
-                            mNMService.removeRoutesFromLocalNetwork(mLastLocalRoutes);
-                    if (removalFailures > 0) {
-                        Log.e(TAG,
-                                String.format("Failed to remove %d IPv6 routes from local table.",
-                                removalFailures));
-                    }
-                } catch (RemoteException e) {
-                    Log.e(TAG, "Failed to remove IPv6 routes from local table: ", e);
+                    netd.interfaceDelAddress(mIfName, dnsString, RFC7421_IP_PREFIX_LENGTH);
+                } catch (ServiceSpecificException | RemoteException e) {
+                    Log.e(TAG, "Failed to remove local dns IP: " + dnsString, e);
                 }
             }
         }
 
-        mLastLocalRoutes = localRoutes;
-    }
+        // [2] Add only the local DNS IP addresses that have not previously been added.
+        if (newDnses != null && !newDnses.isEmpty()) {
+            final HashSet<Inet6Address> addedDnses = (HashSet) newDnses.clone();
+            if (mLastRaParams != null) {
+                addedDnses.removeAll(mLastRaParams.dnses);
+            }
 
-    private void updateRaParams(RaParams params) {
-        if (mRaDaemon != null) {
-            // Currently, we send spurious RAs (5) whenever there's any update.
-            // TODO: Compare params with mLastParams to avoid spurious updates.
-            mRaDaemon.buildNewRa(params);
+            for (Inet6Address dns : addedDnses) {
+                final String dnsString = dns.getHostAddress();
+                try {
+                    netd.interfaceAddAddress(mIfName, dnsString, RFC7421_IP_PREFIX_LENGTH);
+                } catch (ServiceSpecificException | RemoteException e) {
+                    Log.e(TAG, "Failed to add local dns IP: " + dnsString, e);
+                    newDnses.remove(dns);
+                }
+            }
         }
 
-        mLastRaParams = params;
+        try {
+            netd.tetherApplyDnsInterfaces();
+        } catch (ServiceSpecificException | RemoteException e) {
+            Log.e(TAG, "Failed to update local DNS caching server");
+            if (newDnses != null) newDnses.clear();
+        }
+    }
+
+    private void setRaParams(RaParams newParams) {
+        if (mRaDaemon != null) {
+            final RaParams deprecatedParams =
+                    RaParams.getDeprecatedRaParams(mLastRaParams, newParams);
+
+            configureLocalRoutes(deprecatedParams.prefixes,
+                    (newParams != null) ? newParams.prefixes : null);
+
+            configureLocalDns(deprecatedParams.dnses,
+                    (newParams != null) ? newParams.dnses : null);
+
+            mRaDaemon.buildNewRa(deprecatedParams, newParams);
+        }
+
+        mLastRaParams = newParams;
+    }
+
+    // Accumulate routes representing "prefixes to be assigned to the local
+    // interface", for subsequent modification of local_network routing.
+    private ArrayList<RouteInfo> getLocalRoutesFor(HashSet<IpPrefix> prefixes) {
+        final ArrayList<RouteInfo> localRoutes = new ArrayList<RouteInfo>();
+        for (IpPrefix ipp : prefixes) {
+            localRoutes.add(new RouteInfo(ipp, null, mIfName));
+        }
+        return localRoutes;
+    }
+
+    private INetd getNetdServiceOrNull() {
+        if (mNMService != null) {
+            try {
+                return mNMService.getNetdService();
+            } catch (RemoteException ignored) {
+                // This blocks until netd can be reached, but it can return
+                // null during a netd crash.
+            }
+        }
+        return null;
+    }
+
+    // Given a prefix like 2001:db8::/64 return 2001:db8::1.
+    private static Inet6Address getLocalDnsIpFor(IpPrefix localPrefix) {
+        final byte[] dnsBytes = localPrefix.getRawAddress();
+        dnsBytes[dnsBytes.length - 1] = 0x1;
+        try {
+            return Inet6Address.getByAddress(null, dnsBytes, 0);
+        } catch (UnknownHostException e) {
+            Slog.wtf(TAG, "Failed to construct Inet6Address from: " + localPrefix);
+            return null;
+        }
     }
 }
diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
index c16dac2..15ae846 100644
--- a/services/core/java/com/android/server/display/AutomaticBrightnessController.java
+++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -22,6 +22,7 @@
 import com.android.server.twilight.TwilightManager;
 import com.android.server.twilight.TwilightState;
 
+import android.annotation.Nullable;
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
@@ -268,7 +269,7 @@
         pw.println();
         pw.println("Automatic Brightness Controller State:");
         pw.println("  mLightSensor=" + mLightSensor);
-        pw.println("  mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
+        pw.println("  mTwilight.getLastTwilightState()=" + mTwilight.getLastTwilightState());
         pw.println("  mLightSensorEnabled=" + mLightSensorEnabled);
         pw.println("  mLightSensorEnableTime=" + TimeUtils.formatUptime(mLightSensorEnableTime));
         pw.println("  mAmbientLux=" + mAmbientLux);
@@ -495,12 +496,14 @@
         }
 
         if (mUseTwilight) {
-            TwilightState state = mTwilight.getCurrentState();
+            TwilightState state = mTwilight.getLastTwilightState();
             if (state != null && state.isNight()) {
-                final long now = System.currentTimeMillis();
-                gamma *= 1 + state.getAmount() * TWILIGHT_ADJUSTMENT_MAX_GAMMA;
+                final long duration = state.sunriseTimeMillis() - state.sunsetTimeMillis();
+                final long progress = System.currentTimeMillis() - state.sunsetTimeMillis();
+                final float amount = (float) Math.pow(2.0 * progress / duration - 1.0, 2.0);
+                gamma *= 1 + amount * TWILIGHT_ADJUSTMENT_MAX_GAMMA;
                 if (DEBUG) {
-                    Slog.d(TAG, "updateAutoBrightness: twilight amount=" + state.getAmount());
+                    Slog.d(TAG, "updateAutoBrightness: twilight amount=" + amount);
                 }
             }
         }
@@ -621,7 +624,7 @@
 
     private final TwilightListener mTwilightListener = new TwilightListener() {
         @Override
-        public void onTwilightStateChanged() {
+        public void onTwilightStateChanged(@Nullable TwilightState state) {
             updateAutoBrightness(true /*sendUpdate*/);
         }
     };
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 61af8ed..d6cc9fc 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -102,9 +102,6 @@
     // Trigger proximity if distance is less than 5 cm.
     private static final float TYPICAL_PROXIMITY_THRESHOLD = 5.0f;
 
-    // Brightness animation ramp rate in brightness units per second.
-    private static final int BRIGHTNESS_RAMP_RATE_SLOW = 40;
-
     private static final int REPORTED_TO_POLICY_SCREEN_OFF = 0;
     private static final int REPORTED_TO_POLICY_SCREEN_TURNING_ON = 1;
     private static final int REPORTED_TO_POLICY_SCREEN_ON = 2;
@@ -243,8 +240,9 @@
     private boolean mAppliedDimming;
     private boolean mAppliedLowPower;
 
-    // Brightness ramp rate fast.
+    // Brightness animation ramp rates in brightness units per second
     private final int mBrightnessRampRateFast;
+    private final int mBrightnessRampRateSlow;
 
     // The controller for the automatic brightness level.
     private AutomaticBrightnessController mAutomaticBrightnessController;
@@ -307,6 +305,8 @@
 
         mBrightnessRampRateFast = resources.getInteger(
                 com.android.internal.R.integer.config_brightness_ramp_rate_fast);
+        mBrightnessRampRateSlow = resources.getInteger(
+                com.android.internal.R.integer.config_brightness_ramp_rate_slow);
 
         int lightSensorRate = resources.getInteger(
                 com.android.internal.R.integer.config_autoBrightnessLightSensorRate);
@@ -703,7 +703,7 @@
         if (!mPendingScreenOff) {
             if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
                 animateScreenBrightness(brightness,
-                        slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : mBrightnessRampRateFast);
+                        slowChange ? mBrightnessRampRateSlow : mBrightnessRampRateFast);
             } else {
                 animateScreenBrightness(brightness, 0);
             }
diff --git a/services/core/java/com/android/server/display/NightDisplayService.java b/services/core/java/com/android/server/display/NightDisplayService.java
index 39498a6..07fa2ce 100644
--- a/services/core/java/com/android/server/display/NightDisplayService.java
+++ b/services/core/java/com/android/server/display/NightDisplayService.java
@@ -20,6 +20,8 @@
 import android.animation.AnimatorListenerAdapter;
 import android.animation.TypeEvaluator;
 import android.animation.ValueAnimator;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.app.AlarmManager;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -217,12 +219,12 @@
         if (mIsActivated == null || mIsActivated != activated) {
             Slog.i(TAG, activated ? "Turning on night display" : "Turning off night display");
 
-            mIsActivated = activated;
-
             if (mAutoMode != null) {
                 mAutoMode.onActivated(activated);
             }
 
+            mIsActivated = activated;
+
             // Cancel the old animator if still running.
             if (mColorMatrixAnimator != null) {
                 mColorMatrixAnimator.cancel();
@@ -360,13 +362,12 @@
             if (setActivated) {
                 mController.setActivated(activated);
             }
-            updateNextAlarm();
+            updateNextAlarm(mIsActivated, now);
         }
 
-        private void updateNextAlarm() {
-            if (mIsActivated != null) {
-                final Calendar now = Calendar.getInstance();
-                final Calendar next = mIsActivated ? mEndTime.getDateTimeAfter(now)
+        private void updateNextAlarm(@Nullable Boolean activated, @NonNull Calendar now) {
+            if (activated != null) {
+                final Calendar next = activated ? mEndTime.getDateTimeAfter(now)
                         : mStartTime.getDateTimeAfter(now);
                 mAlarmManager.setExact(AlarmManager.RTC, next.getTimeInMillis(), TAG, this, null);
             }
@@ -395,8 +396,11 @@
 
         @Override
         public void onActivated(boolean activated) {
-            mLastActivatedTime = Calendar.getInstance();
-            updateNextAlarm();
+            final Calendar now = Calendar.getInstance();
+            if (mIsActivated != null) {
+                mLastActivatedTime = now;
+            }
+            updateNextAlarm(activated, now);
         }
 
         @Override
@@ -424,22 +428,30 @@
 
         private final TwilightManager mTwilightManager;
 
-        private boolean mIsNight;
+        private Calendar mLastActivatedTime;
 
         public TwilightAutoMode() {
             mTwilightManager = getLocalService(TwilightManager.class);
         }
 
-        private void updateActivated() {
-            final TwilightState state = mTwilightManager.getCurrentState();
+        private void updateActivated(TwilightState state) {
             final boolean isNight = state != null && state.isNight();
-            if (mIsNight != isNight) {
-                mIsNight = isNight;
-
-                if (mIsActivated == null || mIsActivated != isNight) {
-                    mController.setActivated(isNight);
+            boolean setActivated = mIsActivated == null || mIsActivated != isNight;
+            if (setActivated && state != null && mLastActivatedTime != null) {
+                final Calendar sunrise = state.sunrise();
+                final Calendar sunset = state.sunset();
+                if (sunrise.before(sunset)) {
+                    setActivated = mLastActivatedTime.before(sunrise)
+                            || mLastActivatedTime.after(sunset);
+                } else {
+                    setActivated = mLastActivatedTime.before(sunset)
+                            || mLastActivatedTime.after(sunrise);
                 }
             }
+
+            if (setActivated) {
+                mController.setActivated(isNight);
+            }
         }
 
         @Override
@@ -447,18 +459,26 @@
             mTwilightManager.registerListener(this, mHandler);
 
             // Force an update to initialize state.
-            updateActivated();
+            updateActivated(mTwilightManager.getLastTwilightState());
         }
 
         @Override
         public void onStop() {
             mTwilightManager.unregisterListener(this);
+            mLastActivatedTime = null;
         }
 
         @Override
-        public void onTwilightStateChanged() {
+        public void onActivated(boolean activated) {
+            if (mIsActivated != null) {
+                mLastActivatedTime = Calendar.getInstance();
+            }
+        }
+
+        @Override
+        public void onTwilightStateChanged(@Nullable TwilightState state) {
             if (DEBUG) Slog.d(TAG, "onTwilightStateChanged");
-            updateActivated();
+            updateActivated(state);
         }
     }
 
diff --git a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
index c04b9a1..87da866 100644
--- a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
+++ b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
@@ -39,9 +39,9 @@
     public abstract void resetFailedAttempts();
 
     public AuthenticationClient(Context context, long halDeviceId, IBinder token,
-            IFingerprintServiceReceiver receiver, int callingUserId, int groupId, long opId,
+            IFingerprintServiceReceiver receiver, int targetUserId, int groupId, long opId,
             boolean restricted, String owner) {
-        super(context, halDeviceId, token, receiver, callingUserId, groupId, restricted, owner);
+        super(context, halDeviceId, token, receiver, targetUserId, groupId, restricted, owner);
         mOpId = opId;
     }
 
@@ -65,7 +65,7 @@
                     Fingerprint fp = !getIsRestricted()
                             ? new Fingerprint("" /* TODO */, groupId, fingerId, getHalDeviceId())
                             : null;
-                    receiver.onAuthenticationSucceeded(getHalDeviceId(), fp);
+                    receiver.onAuthenticationSucceeded(getHalDeviceId(), fp, getTargetUserId());
                 }
             } catch (RemoteException e) {
                 Slog.w(TAG, "Failed to notify Authenticated:", e);
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index 1066434..73c8469 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -470,10 +470,10 @@
 
     /**
      * @param opPackageName name of package for caller
-     * @param foregroundOnly only allow this call while app is in the foreground
+     * @param requireForeground only allow this call while app is in the foreground
      * @return true if caller can use fingerprint API
      */
-    private boolean canUseFingerprint(String opPackageName, boolean foregroundOnly, int uid,
+    private boolean canUseFingerprint(String opPackageName, boolean requireForeground, int uid,
             int pid) {
         checkPermission(USE_FINGERPRINT);
         if (isKeyguard(opPackageName)) {
@@ -488,7 +488,7 @@
             Slog.w(TAG, "Rejecting " + opPackageName + " ; permission denied");
             return false;
         }
-        if (foregroundOnly && !isForegroundActivity(uid, pid)) {
+        if (requireForeground && !(isForegroundActivity(uid, pid) || currentClient(opPackageName))){
             Slog.w(TAG, "Rejecting " + opPackageName + " ; not in foreground");
             return false;
         }
@@ -496,6 +496,14 @@
     }
 
     /**
+     * @param opPackageName package of the caller
+     * @return true if this is the same client currently using fingerprint
+     */
+    private boolean currentClient(String opPackageName) {
+        return mCurrentClient != null && mCurrentClient.getOwnerString().equals(opPackageName);
+    }
+
+    /**
      * @param clientPackage
      * @return true if this is keyguard package
      */
@@ -528,7 +536,7 @@
         if (DEBUG) Slog.v(TAG, "startAuthentication(" + opPackageName + ")");
 
         AuthenticationClient client = new AuthenticationClient(getContext(), mHalDeviceId, token,
-                receiver, callingUserId, groupId, opId, restricted, opPackageName) {
+                receiver, mCurrentUserId, groupId, opId, restricted, opPackageName) {
             @Override
             public boolean handleFailedAttempt() {
                 mFailedAttempts++;
diff --git a/services/core/java/com/android/server/job/controllers/ContentObserverController.java b/services/core/java/com/android/server/job/controllers/ContentObserverController.java
index a42d0cd..5d209fc 100644
--- a/services/core/java/com/android/server/job/controllers/ContentObserverController.java
+++ b/services/core/java/com/android/server/job/controllers/ContentObserverController.java
@@ -16,6 +16,7 @@
 
 package com.android.server.job.controllers;
 
+import android.annotation.UserIdInt;
 import android.app.job.JobInfo;
 import android.content.Context;
 import android.database.ContentObserver;
@@ -23,6 +24,7 @@
 import android.os.Handler;
 import android.os.UserHandle;
 import android.util.Slog;
+import android.util.SparseArray;
 import android.util.TimeUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -35,6 +37,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Controller for monitoring changes to content URIs through a ContentObserver.
@@ -59,7 +62,11 @@
     private static volatile ContentObserverController sController;
 
     final private List<JobStatus> mTrackedTasks = new ArrayList<JobStatus>();
-    ArrayMap<JobInfo.TriggerContentUri, ObserverInstance> mObservers = new ArrayMap<>();
+    /**
+     * Per-userid {@link JobInfo.TriggerContentUri} keyed ContentObserver cache.
+     */
+    SparseArray<ArrayMap<JobInfo.TriggerContentUri, ObserverInstance>> mObservers =
+            new SparseArray<>();
     final Handler mHandler;
 
     public static ContentObserverController get(JobSchedulerService taskManagerService) {
@@ -203,18 +210,21 @@
 
     final class ObserverInstance extends ContentObserver {
         final JobInfo.TriggerContentUri mUri;
+        final @UserIdInt int mUserId;
         final ArraySet<JobInstance> mJobs = new ArraySet<>();
 
-        public ObserverInstance(Handler handler, JobInfo.TriggerContentUri uri) {
+        public ObserverInstance(Handler handler, JobInfo.TriggerContentUri uri,
+                @UserIdInt int userId) {
             super(handler);
             mUri = uri;
+            mUserId = userId;
         }
 
         @Override
         public void onChange(boolean selfChange, Uri uri) {
             if (DEBUG) {
                 Slog.i(TAG, "onChange(self=" + selfChange + ") for " + uri
-                        + " when mUri=" + mUri);
+                        + " when mUri=" + mUri + " mUserId=" + mUserId);
             }
             synchronized (mLock) {
                 final int N = mJobs.size();
@@ -258,27 +268,38 @@
 
         boolean mTriggerPending;
 
+        // This constructor must be called with the master job scheduler lock held.
         JobInstance(JobStatus jobStatus) {
             mJobStatus = jobStatus;
             mExecuteRunner = new TriggerRunnable(this);
             mTimeoutRunner = new TriggerRunnable(this);
             final JobInfo.TriggerContentUri[] uris = jobStatus.getJob().getTriggerContentUris();
+            final int sourceUserId = jobStatus.getSourceUserId();
+            ArrayMap<JobInfo.TriggerContentUri, ObserverInstance> observersOfUser =
+                    mObservers.get(sourceUserId);
+            if (observersOfUser == null) {
+                observersOfUser = new ArrayMap<>();
+                mObservers.put(sourceUserId, observersOfUser);
+            }
             if (uris != null) {
                 for (JobInfo.TriggerContentUri uri : uris) {
-                    ObserverInstance obs = mObservers.get(uri);
+                    ObserverInstance obs = observersOfUser.get(uri);
                     if (obs == null) {
-                        obs = new ObserverInstance(mHandler, uri);
-                        mObservers.put(uri, obs);
+                        obs = new ObserverInstance(mHandler, uri, jobStatus.getSourceUserId());
+                        observersOfUser.put(uri, obs);
                         final boolean andDescendants = (uri.getFlags() &
                                 JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS) != 0;
                         if (DEBUG) {
                             Slog.v(TAG, "New observer " + obs + " for " + uri.getUri()
-                                    + " andDescendants=" + andDescendants);
+                                    + " andDescendants=" + andDescendants
+                                    + " sourceUserId=" + sourceUserId);
                         }
                         mContext.getContentResolver().registerContentObserver(
                                 uri.getUri(),
                                 andDescendants,
-                                obs);
+                                obs,
+                                sourceUserId
+                        );
                     } else {
                         if (DEBUG) {
                             final boolean andDescendants = (uri.getFlags() &
@@ -342,7 +363,11 @@
                         Slog.i(TAG, "Unregistering observer " + obs + " for " + obs.mUri.getUri());
                     }
                     mContext.getContentResolver().unregisterContentObserver(obs);
-                    mObservers.remove(obs.mUri);
+                    ArrayMap<JobInfo.TriggerContentUri, ObserverInstance> observerOfUser =
+                            mObservers.get(obs.mUserId);
+                    if (observerOfUser !=  null) {
+                        observerOfUser.remove(obs.mUri);
+                    }
                 }
             }
         }
@@ -366,60 +391,66 @@
         int N = mObservers.size();
         if (N > 0) {
             pw.println("  Observers:");
-            for (int i = 0; i < N; i++) {
-                ObserverInstance obs = mObservers.valueAt(i);
-                int M = obs.mJobs.size();
-                boolean shouldDump = false;
-                for (int j=0; j<M; j++) {
-                    JobInstance inst = obs.mJobs.valueAt(j);
-                    if (inst.mJobStatus.shouldDump(filterUid)) {
-                        shouldDump = true;
-                        break;
+            for (int userIdx = 0; userIdx < N; userIdx++) {
+                final int userId = mObservers.keyAt(userIdx);
+                ArrayMap<JobInfo.TriggerContentUri, ObserverInstance> observersOfUser =
+                        mObservers.get(userId);
+                int numbOfObserversPerUser = observersOfUser.size();
+                for (int observerIdx = 0 ; observerIdx < numbOfObserversPerUser; observerIdx++) {
+                    ObserverInstance obs = observersOfUser.valueAt(observerIdx);
+                    int M = obs.mJobs.size();
+                    boolean shouldDump = false;
+                    for (int j = 0; j < M; j++) {
+                        JobInstance inst = obs.mJobs.valueAt(j);
+                        if (inst.mJobStatus.shouldDump(filterUid)) {
+                            shouldDump = true;
+                            break;
+                        }
                     }
-                }
-                if (!shouldDump) {
-                    continue;
-                }
-                pw.print("    ");
-                JobInfo.TriggerContentUri trigger = mObservers.keyAt(i);
-                pw.print(trigger.getUri());
-                pw.print(" 0x");
-                pw.print(Integer.toHexString(trigger.getFlags()));
-                pw.print(" (");
-                pw.print(System.identityHashCode(obs));
-                pw.println("):");
-                pw.println("      Jobs:");
-                for (int j=0; j<M; j++) {
-                    JobInstance inst = obs.mJobs.valueAt(j);
-                    pw.print("        #");
-                    inst.mJobStatus.printUniqueId(pw);
-                    pw.print(" from ");
-                    UserHandle.formatUid(pw, inst.mJobStatus.getSourceUid());
-                    if (inst.mChangedAuthorities != null) {
-                        pw.println(":");
-                        if (inst.mTriggerPending) {
-                            pw.print("          Trigger pending: update=");
-                            TimeUtils.formatDuration(
-                                    inst.mJobStatus.getTriggerContentUpdateDelay(), pw);
-                            pw.print(", max=");
-                            TimeUtils.formatDuration(
-                                    inst.mJobStatus.getTriggerContentMaxDelay(), pw);
+                    if (!shouldDump) {
+                        continue;
+                    }
+                    pw.print("    ");
+                    JobInfo.TriggerContentUri trigger = observersOfUser.keyAt(observerIdx);
+                    pw.print(trigger.getUri());
+                    pw.print(" 0x");
+                    pw.print(Integer.toHexString(trigger.getFlags()));
+                    pw.print(" (");
+                    pw.print(System.identityHashCode(obs));
+                    pw.println("):");
+                    pw.println("      Jobs:");
+                    for (int j = 0; j < M; j++) {
+                        JobInstance inst = obs.mJobs.valueAt(j);
+                        pw.print("        #");
+                        inst.mJobStatus.printUniqueId(pw);
+                        pw.print(" from ");
+                        UserHandle.formatUid(pw, inst.mJobStatus.getSourceUid());
+                        if (inst.mChangedAuthorities != null) {
+                            pw.println(":");
+                            if (inst.mTriggerPending) {
+                                pw.print("          Trigger pending: update=");
+                                TimeUtils.formatDuration(
+                                        inst.mJobStatus.getTriggerContentUpdateDelay(), pw);
+                                pw.print(", max=");
+                                TimeUtils.formatDuration(
+                                        inst.mJobStatus.getTriggerContentMaxDelay(), pw);
+                                pw.println();
+                            }
+                            pw.println("          Changed Authorities:");
+                            for (int k = 0; k < inst.mChangedAuthorities.size(); k++) {
+                                pw.print("          ");
+                                pw.println(inst.mChangedAuthorities.valueAt(k));
+                            }
+                            if (inst.mChangedUris != null) {
+                                pw.println("          Changed URIs:");
+                                for (int k = 0; k < inst.mChangedUris.size(); k++) {
+                                    pw.print("          ");
+                                    pw.println(inst.mChangedUris.valueAt(k));
+                                }
+                            }
+                        } else {
                             pw.println();
                         }
-                        pw.println("          Changed Authorities:");
-                        for (int k=0; k<inst.mChangedAuthorities.size(); k++) {
-                            pw.print("          ");
-                            pw.println(inst.mChangedAuthorities.valueAt(k));
-                        }
-                        if (inst.mChangedUris != null) {
-                            pw.println("          Changed URIs:");
-                            for (int k = 0; k<inst.mChangedUris.size(); k++) {
-                                pw.print("          ");
-                                pw.println(inst.mChangedUris.valueAt(k));
-                            }
-                        }
-                    } else {
-                        pw.println();
                     }
                 }
             }
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index a3f09c0..777eee8 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -239,7 +239,8 @@
         synchronized (mLock) {
             UserManager manager = (UserManager) getContext().getSystemService(Context.USER_SERVICE);
             int currentUser = ActivityManager.getCurrentUser();
-            int[] userIds = manager.getEnabledProfileIds(currentUser);
+            // Include all profiles even though they aren't yet enabled to handle work profile case.
+            int[] userIds = manager.getProfileIdsWithDisabled(currentUser);
             mCurrentUserIdList.clear();
             if (userIds != null && userIds.length > 0) {
                 for (int userId : userIds) {
@@ -440,6 +441,12 @@
     private MediaSessionRecord createSessionLocked(int callerPid, int callerUid, int userId,
             String callerPackageName, ISessionCallback cb, String tag) {
 
+        UserRecord user = mUserRecords.get(userId);
+        if (user == null) {
+            Log.wtf(TAG, "Request from invalid user: " +  userId);
+            throw new RuntimeException("Session request from invalid user.");
+        }
+
         final MediaSessionRecord session = new MediaSessionRecord(callerPid, callerUid, userId,
                 callerPackageName, cb, tag, this, mHandler);
         try {
@@ -450,8 +457,6 @@
 
         mAllSessions.add(session);
         mPriorityStack.addSession(session, mCurrentUserIdList.contains(userId));
-
-        UserRecord user = mUserRecords.get(userId);
         user.addSessionLocked(session);
 
         mHandler.post(MessageHandler.MSG_SESSIONS_CHANGED, userId, 0);
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index b22a084..817efdf 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1035,7 +1035,7 @@
      */
     private void notifyOverLimitNL(NetworkTemplate template) {
         if (!mOverLimitNotified.contains(template)) {
-            mContext.startActivity(buildNetworkOverLimitIntent(template));
+            mContext.startActivity(buildNetworkOverLimitIntent(mContext.getResources(), template));
             mOverLimitNotified.add(template);
         }
     }
@@ -1074,12 +1074,14 @@
                 builder.setTicker(title);
                 builder.setContentTitle(title);
                 builder.setContentText(body);
+                builder.setDefaults(Notification.DEFAULT_ALL);
+                builder.setPriority(Notification.PRIORITY_HIGH);
 
                 final Intent snoozeIntent = buildSnoozeWarningIntent(policy.template);
                 builder.setDeleteIntent(PendingIntent.getBroadcast(
                         mContext, 0, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT));
 
-                final Intent viewIntent = buildViewDataUsageIntent(policy.template);
+                final Intent viewIntent = buildViewDataUsageIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, viewIntent, PendingIntent.FLAG_UPDATE_CURRENT));
 
@@ -1115,7 +1117,7 @@
                 builder.setContentTitle(title);
                 builder.setContentText(body);
 
-                final Intent intent = buildNetworkOverLimitIntent(policy.template);
+                final Intent intent = buildNetworkOverLimitIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
                 break;
@@ -1150,7 +1152,7 @@
                 builder.setContentTitle(title);
                 builder.setContentText(body);
 
-                final Intent intent = buildViewDataUsageIntent(policy.template);
+                final Intent intent = buildViewDataUsageIntent(res, policy.template);
                 builder.setContentIntent(PendingIntent.getActivity(
                         mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
                 break;
@@ -2818,7 +2820,6 @@
             for (int j = mPowerSaveTempWhitelistAppIds.size() - 1; j >= 0; j--) {
                 int appId = mPowerSaveTempWhitelistAppIds.keyAt(j);
                 int uid = UserHandle.getUid(user.id, appId);
-                updateRulesForRestrictPowerUL();
                 // Update external firewall rules.
                 updateRuleForAppIdleUL(uid);
                 updateRuleForDeviceIdleUL(uid);
@@ -3519,19 +3520,19 @@
         return intent;
     }
 
-    private static Intent buildNetworkOverLimitIntent(NetworkTemplate template) {
+    private static Intent buildNetworkOverLimitIntent(Resources res, NetworkTemplate template) {
         final Intent intent = new Intent();
-        intent.setComponent(new ComponentName(
-                "com.android.systemui", "com.android.systemui.net.NetworkOverLimitActivity"));
+        intent.setComponent(ComponentName.unflattenFromString(
+                res.getString(R.string.config_networkOverLimitComponent)));
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
         return intent;
     }
 
-    private static Intent buildViewDataUsageIntent(NetworkTemplate template) {
+    private static Intent buildViewDataUsageIntent(Resources res, NetworkTemplate template) {
         final Intent intent = new Intent();
-        intent.setComponent(new ComponentName(
-                "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity"));
+        intent.setComponent(ComponentName.unflattenFromString(
+                res.getString(R.string.config_dataUsageSummaryComponent)));
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.putExtra(EXTRA_NETWORK_TEMPLATE, template);
         return intent;
diff --git a/services/core/java/com/android/server/notification/ConditionProviders.java b/services/core/java/com/android/server/notification/ConditionProviders.java
index 62fe70c..2fab288 100644
--- a/services/core/java/com/android/server/notification/ConditionProviders.java
+++ b/services/core/java/com/android/server/notification/ConditionProviders.java
@@ -17,6 +17,8 @@
 package com.android.server.notification;
 
 import android.annotation.NonNull;
+import android.app.INotificationManager;
+import android.app.NotificationManager;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -161,6 +163,25 @@
         }
     }
 
+    @Override
+    public void onPackagesChanged(boolean removingPackage, String[] pkgList) {
+        if (removingPackage) {
+            INotificationManager inm = NotificationManager.getService();
+
+            if (pkgList != null && (pkgList.length > 0)) {
+                for (String pkgName : pkgList) {
+                    try {
+                        inm.removeAutomaticZenRules(pkgName);
+                        inm.setNotificationPolicyAccessGranted(pkgName, false);
+                    } catch (Exception e) {
+                        Slog.e(TAG, "Failed to clean up rules for " + pkgName, e);
+                    }
+                }
+            }
+        }
+        super.onPackagesChanged(removingPackage, pkgList);
+    }
+
     public ManagedServiceInfo checkServiceToken(IConditionProvider provider) {
         synchronized(mMutex) {
             return checkServiceTokenLocked(provider);
diff --git a/services/core/java/com/android/server/notification/ManagedServices.java b/services/core/java/com/android/server/notification/ManagedServices.java
index dc85dd7..14e2ba3 100644
--- a/services/core/java/com/android/server/notification/ManagedServices.java
+++ b/services/core/java/com/android/server/notification/ManagedServices.java
@@ -217,8 +217,8 @@
         return mEnabledServicesPackageNames.contains(pkg);
     }
 
-    public void onPackagesChanged(boolean queryReplace, String[] pkgList) {
-        if (DEBUG) Slog.d(TAG, "onPackagesChanged queryReplace=" + queryReplace
+    public void onPackagesChanged(boolean removingPackage, String[] pkgList) {
+        if (DEBUG) Slog.d(TAG, "onPackagesChanged removingPackage=" + removingPackage
                 + " pkgList=" + (pkgList == null ? null : Arrays.asList(pkgList))
                 + " mEnabledServicesPackageNames=" + mEnabledServicesPackageNames);
         boolean anyServicesInvolved = false;
@@ -234,7 +234,7 @@
 
         if (anyServicesInvolved) {
             // if we're not replacing a package, clean up orphaned bits
-            if (!queryReplace) {
+            if (removingPackage) {
                 updateSettingsAccordingToInstalledServices();
                 rebuildRestoredPackages();
             }
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 8b5942c..bb55240 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -180,7 +180,7 @@
             = SystemProperties.getBoolean("debug.child_notifs", true);
 
     static final int MAX_PACKAGE_NOTIFICATIONS = 50;
-    static final float DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE = 50f;
+    static final float DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE = 10f;
 
     // message codes
     static final int MESSAGE_TIMEOUT = 2;
@@ -696,9 +696,9 @@
                 int changeUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
                         UserHandle.USER_ALL);
                 String pkgList[] = null;
-                boolean queryReplace = queryRemove &&
-                        intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
-                if (DBG) Slog.i(TAG, "action=" + action + " queryReplace=" + queryReplace);
+                boolean removingPackage = queryRemove &&
+                        !intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
+                if (DBG) Slog.i(TAG, "action=" + action + " removing=" + removingPackage);
                 if (action.equals(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE)) {
                     pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
                 } else if (action.equals(Intent.ACTION_PACKAGES_SUSPENDED)) {
@@ -747,10 +747,10 @@
                         }
                     }
                 }
-                mListeners.onPackagesChanged(queryReplace, pkgList);
-                mRankerServices.onPackagesChanged(queryReplace, pkgList);
-                mConditionProviders.onPackagesChanged(queryReplace, pkgList);
-                mRankingHelper.onPackagesChanged(queryReplace, pkgList);
+                mListeners.onPackagesChanged(removingPackage, pkgList);
+                mRankerServices.onPackagesChanged(removingPackage, pkgList);
+                mConditionProviders.onPackagesChanged(removingPackage, pkgList);
+                mRankingHelper.onPackagesChanged(removingPackage, pkgList);
             }
         }
     };
@@ -2538,20 +2538,32 @@
 
         mUsageStats.registerEnqueuedByApp(pkg);
 
+
+        if (pkg == null || notification == null) {
+            throw new IllegalArgumentException("null not allowed: pkg=" + pkg
+                    + " id=" + id + " notification=" + notification);
+        }
+        final StatusBarNotification n = new StatusBarNotification(
+                pkg, opPkg, id, tag, callingUid, callingPid, 0, notification,
+                user);
+
         // Limit the number of notifications that any given package except the android
         // package or a registered listener can enqueue.  Prevents DOS attacks and deals with leaks.
         if (!isSystemNotification && !isNotificationFromListener) {
             synchronized (mNotificationList) {
-                final float appEnqueueRate = mUsageStats.getAppEnqueueRate(pkg);
-                if (appEnqueueRate > mMaxPackageEnqueueRate) {
-                    mUsageStats.registerOverRateQuota(pkg);
-                    final long now = SystemClock.elapsedRealtime();
-                    if ((now - mLastOverRateLogTime) > MIN_PACKAGE_OVERRATE_LOG_INTERVAL) {
-                        Slog.e(TAG, "Package enqueue rate is " + appEnqueueRate
-                                + ". Shedding events. package=" + pkg);
-                        mLastOverRateLogTime = now;
+                if(mNotificationsByKey.get(n.getKey()) != null) {
+                    // this is an update, rate limit updates only
+                    final float appEnqueueRate = mUsageStats.getAppEnqueueRate(pkg);
+                    if (appEnqueueRate > mMaxPackageEnqueueRate) {
+                        mUsageStats.registerOverRateQuota(pkg);
+                        final long now = SystemClock.elapsedRealtime();
+                        if ((now - mLastOverRateLogTime) > MIN_PACKAGE_OVERRATE_LOG_INTERVAL) {
+                            Slog.e(TAG, "Package enqueue rate is " + appEnqueueRate
+                                    + ". Shedding events. package=" + pkg);
+                            mLastOverRateLogTime = now;
+                        }
+                        return;
                     }
-                    return;
                 }
 
                 int count = 0;
@@ -2574,11 +2586,6 @@
             }
         }
 
-        if (pkg == null || notification == null) {
-            throw new IllegalArgumentException("null not allowed: pkg=" + pkg
-                    + " id=" + id + " notification=" + notification);
-        }
-
         // Whitelist pending intents.
         if (notification.allPendingIntents != null) {
             final int intentCount = notification.allPendingIntents.size();
@@ -2601,9 +2608,6 @@
                 Notification.PRIORITY_MAX);
 
         // setup local book-keeping
-        final StatusBarNotification n = new StatusBarNotification(
-                pkg, opPkg, id, tag, callingUid, callingPid, 0, notification,
-                user);
         final NotificationRecord r = new NotificationRecord(getContext(), n);
         mHandler.post(new EnqueueNotificationRunnable(userId, r));
 
@@ -3890,14 +3894,14 @@
         }
 
         @Override
-        public void onPackagesChanged(boolean queryReplace, String[] pkgList) {
-            if (DEBUG) Slog.d(TAG, "onPackagesChanged queryReplace=" + queryReplace
+        public void onPackagesChanged(boolean removingPackage, String[] pkgList) {
+            if (DEBUG) Slog.d(TAG, "onPackagesChanged removingPackage=" + removingPackage
                     + " pkgList=" + (pkgList == null ? null : Arrays.asList(pkgList)));
             if (mRankerServicePackageName == null) {
                 return;
             }
 
-            if (pkgList != null && (pkgList.length > 0)) {
+            if (pkgList != null && (pkgList.length > 0) && !removingPackage) {
                 for (String pkgName : pkgList) {
                     if (mRankerServicePackageName.equals(pkgName)) {
                         registerRanker();
diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java
index 78b3f41..9048402 100644
--- a/services/core/java/com/android/server/notification/RankingHelper.java
+++ b/services/core/java/com/android/server/notification/RankingHelper.java
@@ -504,8 +504,8 @@
         return packageBans;
     }
 
-    public void onPackagesChanged(boolean queryReplace, String[] pkgList) {
-        if (queryReplace || pkgList == null || pkgList.length == 0
+    public void onPackagesChanged(boolean removingPackage, String[] pkgList) {
+        if (!removingPackage || pkgList == null || pkgList.length == 0
                 || mRestoredWithoutUids.isEmpty()) {
             return; // nothing to do
         }
diff --git a/services/core/java/com/android/server/notification/ZenModeConditions.java b/services/core/java/com/android/server/notification/ZenModeConditions.java
index 86ca97d..1c12a96 100644
--- a/services/core/java/com/android/server/notification/ZenModeConditions.java
+++ b/services/core/java/com/android/server/notification/ZenModeConditions.java
@@ -147,6 +147,7 @@
             if (mConditionProviders.subscribeIfNecessary(rule.component, rule.conditionId)) {
                 mSubscriptions.put(rule.conditionId, rule.component);
             } else {
+                rule.condition = null;
                 if (DEBUG) Log.d(TAG, "zmc failed to subscribe");
             }
         }
diff --git a/services/core/java/com/android/server/os/SchedulingPolicyService.java b/services/core/java/com/android/server/os/SchedulingPolicyService.java
index f98012b..62c9f4c 100644
--- a/services/core/java/com/android/server/os/SchedulingPolicyService.java
+++ b/services/core/java/com/android/server/os/SchedulingPolicyService.java
@@ -55,7 +55,8 @@
             Process.setThreadGroup(tid, Binder.getCallingPid() == pid ?
                     Process.THREAD_GROUP_AUDIO_SYS : Process.THREAD_GROUP_AUDIO_APP);
             // must be in this order or it fails the schedulability constraint
-            Process.setThreadScheduler(tid, Process.SCHED_FIFO, prio);
+            Process.setThreadScheduler(tid, Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK,
+                prio);
         } catch (RuntimeException e) {
             return PackageManager.PERMISSION_DENIED;
         }
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index 87f0581..cec1058 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -28,10 +28,13 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.BatteryManager;
+import android.os.Environment;
 import android.os.ServiceManager;
+import android.os.storage.StorageManager;
 import android.util.ArraySet;
 import android.util.Log;
 
+import java.io.File;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.TimeUnit;
 
@@ -66,6 +69,8 @@
      */
     final AtomicBoolean mExitPostBootUpdate = new AtomicBoolean(false);
 
+    private final File dataDir = Environment.getDataDirectory();
+
     public static void schedule(Context context) {
         JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
 
@@ -113,6 +118,16 @@
         return (100 * level / scale);
     }
 
+    private long getLowStorageThreshold() {
+        @SuppressWarnings("deprecation")
+        final long lowThreshold = StorageManager.from(this).getStorageLowBytes(dataDir);
+        if (lowThreshold == 0) {
+            Log.e(TAG, "Invalid low storage threshold");
+        }
+
+        return lowThreshold;
+    }
+
     private boolean runPostBootUpdate(final JobParameters jobParams,
             final PackageManagerService pm, final ArraySet<String> pkgs) {
         if (mExitPostBootUpdate.get()) {
@@ -124,6 +139,8 @@
         final int lowBatteryThreshold = getResources().getInteger(
                 com.android.internal.R.integer.config_lowBatteryWarningLevel);
 
+        final long lowThreshold = getLowStorageThreshold();
+
         mAbortPostBootUpdate.set(false);
         new Thread("BackgroundDexOptService_PostBootUpdate") {
             @Override
@@ -141,6 +158,14 @@
                         // Rather bail than completely drain the battery.
                         break;
                     }
+                    long usableSpace = dataDir.getUsableSpace();
+                    if (usableSpace < lowThreshold) {
+                        // Rather bail than completely fill up the disk.
+                        Log.w(TAG, "Aborting background dex opt job due to low storage: " +
+                                usableSpace);
+                        break;
+                    }
+
                     if (DEBUG_DEXOPT) {
                         Log.i(TAG, "Updating package " + pkg);
                     }
@@ -171,6 +196,9 @@
         mExitPostBootUpdate.set(true);
 
         mAbortIdleOptimization.set(false);
+
+        final long lowThreshold = getLowStorageThreshold();
+
         new Thread("BackgroundDexOptService_IdleOptimization") {
             @Override
             public void run() {
@@ -183,6 +211,15 @@
                         // Skip previously failing package
                         continue;
                     }
+
+                    long usableSpace = dataDir.getUsableSpace();
+                    if (usableSpace < lowThreshold) {
+                        // Rather bail than completely fill up the disk.
+                        Log.w(TAG, "Aborting background dex opt job due to low storage: " +
+                                usableSpace);
+                        break;
+                    }
+
                     // Conservatively add package to the list of failing ones in case performDexOpt
                     // never returns.
                     synchronized (sFailedPackageNames) {
@@ -213,6 +250,9 @@
             Log.i(TAG, "onStartJob");
         }
 
+        // NOTE: PackageManagerService.isStorageLow uses a different set of criteria from
+        // the checks above. This check is not "live" - the value is determined by a background
+        // restart with a period of ~1 minute.
         PackageManagerService pm = (PackageManagerService)ServiceManager.getService("package");
         if (pm.isStorageLow()) {
             if (DEBUG_DEXOPT) {
diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
index 1cff926..d1dbdd8 100644
--- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
@@ -17,6 +17,7 @@
 package com.android.server.pm;
 
 import android.Manifest;
+import android.annotation.NonNull;
 import android.app.DownloadManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
@@ -30,6 +31,9 @@
 import android.content.pm.ResolveInfo;
 import android.net.Uri;
 import android.os.Build;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Message;
 import android.os.UserHandle;
 import android.os.storage.StorageManager;
 import android.print.PrintManager;
@@ -39,12 +43,23 @@
 import android.provider.Telephony.Sms.Intents;
 import android.telephony.TelephonyManager;
 import android.security.Credentials;
+import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.Log;
+import android.util.Slog;
+import android.util.Xml;
+import com.android.internal.util.XmlUtils;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
 
+import java.io.BufferedInputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import static android.os.Process.FIRST_APPLICATION_UID;
@@ -65,6 +80,13 @@
 
     private static final String AUDIO_MIME_TYPE = "audio/mpeg";
 
+    private static final String TAG_EXCEPTIONS = "exceptions";
+    private static final String TAG_EXCEPTION = "exception";
+    private static final String TAG_PERMISSION = "permission";
+    private static final String ATTR_PACKAGE = "package";
+    private static final String ATTR_NAME = "name";
+    private static final String ATTR_FIXED = "fixed";
+
     private static final Set<String> PHONE_PERMISSIONS = new ArraySet<>();
     static {
         PHONE_PERMISSIONS.add(Manifest.permission.READ_PHONE_STATE);
@@ -126,7 +148,10 @@
         STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
     }
 
+    private static final int MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS = 1;
+
     private final PackageManagerService mService;
+    private final Handler mHandler;
 
     private PackagesProvider mLocationPackagesProvider;
     private PackagesProvider mVoiceInteractionPackagesProvider;
@@ -135,8 +160,22 @@
     private PackagesProvider mSimCallManagerPackagesProvider;
     private SyncAdapterPackagesProvider mSyncAdapterPackagesProvider;
 
+    private ArrayMap<String, List<DefaultPermissionGrant>> mGrantExceptions;
+
     public DefaultPermissionGrantPolicy(PackageManagerService service) {
         mService = service;
+        mHandler = new Handler(mService.mHandlerThread.getLooper()) {
+            @Override
+            public void handleMessage(Message msg) {
+                if (msg.what == MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS) {
+                    synchronized (mService.mPackages) {
+                        if (mGrantExceptions == null) {
+                            mGrantExceptions = readDefaultPermissionExceptionsLPw();
+                        }
+                    }
+                }
+            }
+        };
     }
 
     public void setLocationPackagesProviderLPw(PackagesProvider provider) {
@@ -166,6 +205,11 @@
     public void grantDefaultPermissions(int userId) {
         grantPermissionsToSysComponentsAndPrivApps(userId);
         grantDefaultSystemHandlerPermissions(userId);
+        grantDefaultPermissionExceptions(userId);
+    }
+
+    public void scheduleReadDefaultPermissionExceptions() {
+        mHandler.sendEmptyMessage(MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS);
     }
 
     private void grantPermissionsToSysComponentsAndPrivApps(int userId) {
@@ -474,6 +518,7 @@
             if (emailPackage != null
                     && doesPackageSupportRuntimePermissions(emailPackage)) {
                 grantRuntimePermissionsLPw(emailPackage, CONTACTS_PERMISSIONS, userId);
+                grantRuntimePermissionsLPw(emailPackage, CALENDAR_PERMISSIONS, userId);
             }
 
             // Browser
@@ -915,7 +960,175 @@
                 pkg.mSignatures) == PackageManager.SIGNATURE_MATCH;
     }
 
+    private void grantDefaultPermissionExceptions(int userId) {
+        synchronized (mService.mPackages) {
+            mHandler.removeMessages(MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS);
+
+            if (mGrantExceptions == null) {
+                mGrantExceptions = readDefaultPermissionExceptionsLPw();
+            }
+
+            // mGrantExceptions is null only before the first read and then
+            // it serves as a cache of the default grants that should be
+            // performed for every user. If there is an entry then the app
+            // is on the system image and supports runtime permissions.
+            Set<String> permissions = null;
+            final int exceptionCount = mGrantExceptions.size();
+            for (int i = 0; i < exceptionCount; i++) {
+                String packageName = mGrantExceptions.keyAt(i);
+                PackageParser.Package pkg = getSystemPackageLPr(packageName);
+                List<DefaultPermissionGrant> permissionGrants = mGrantExceptions.valueAt(i);
+                final int permissionGrantCount = permissionGrants.size();
+                for (int j = 0; j < permissionGrantCount; j++) {
+                    DefaultPermissionGrant permissionGrant = permissionGrants.get(j);
+                    if (permissions == null) {
+                        permissions = new ArraySet<>();
+                    } else {
+                        permissions.clear();
+                    }
+                    permissions.add(permissionGrant.name);
+                    grantRuntimePermissionsLPw(pkg, permissions, false,
+                            permissionGrant.fixed, userId);
+                }
+            }
+        }
+    }
+
+    private @NonNull ArrayMap<String, List<DefaultPermissionGrant>>
+            readDefaultPermissionExceptionsLPw() {
+        File dir = new File(Environment.getRootDirectory(), "etc/default-permissions");
+        if (!dir.exists() || !dir.isDirectory() || !dir.canRead()) {
+            return new ArrayMap<>(0);
+        }
+
+        File[] files = dir.listFiles();
+        if (files == null) {
+            return new ArrayMap<>(0);
+        }
+
+        ArrayMap<String, List<DefaultPermissionGrant>> grantExceptions = new ArrayMap<>();
+
+        // Iterate over the files in the directory and scan .xml files
+        for (File file : files) {
+            if (!file.getPath().endsWith(".xml")) {
+                Slog.i(TAG, "Non-xml file " + file + " in " + dir + " directory, ignoring");
+                continue;
+            }
+            if (!file.canRead()) {
+                Slog.w(TAG, "Default permissions file " + file + " cannot be read");
+                continue;
+            }
+            try (
+                InputStream str = new BufferedInputStream(new FileInputStream(file))
+            ) {
+                XmlPullParser parser = Xml.newPullParser();
+                parser.setInput(str, null);
+                parse(parser, grantExceptions);
+            } catch (XmlPullParserException | IOException e) {
+                Slog.w(TAG, "Error reading default permissions file " + file, e);
+            }
+        }
+
+        return grantExceptions;
+    }
+
+    private void parse(XmlPullParser parser, Map<String, List<DefaultPermissionGrant>>
+            outGrantExceptions) throws IOException, XmlPullParserException {
+        final int outerDepth = parser.getDepth();
+        int type;
+        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                continue;
+            }
+            if (TAG_EXCEPTIONS.equals(parser.getName())) {
+                parseExceptions(parser, outGrantExceptions);
+            } else {
+                Log.e(TAG, "Unknown tag " + parser.getName());
+            }
+        }
+    }
+
+    private void parseExceptions(XmlPullParser parser, Map<String, List<DefaultPermissionGrant>>
+            outGrantExceptions) throws IOException, XmlPullParserException {
+        final int outerDepth = parser.getDepth();
+        int type;
+        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                continue;
+            }
+            if (TAG_EXCEPTION.equals(parser.getName())) {
+                String packageName = parser.getAttributeValue(null, ATTR_PACKAGE);
+
+                List<DefaultPermissionGrant> packageExceptions =
+                        outGrantExceptions.get(packageName);
+                if (packageExceptions == null) {
+                    // The package must be on the system image
+                    PackageParser.Package pkg = getSystemPackageLPr(packageName);
+                    if (pkg == null) {
+                        Log.w(TAG, "Unknown package:" + packageName);
+                        XmlUtils.skipCurrentTag(parser);
+                        return;
+                    }
+
+                    // The package must support runtime permissions
+                    if (!doesPackageSupportRuntimePermissions(pkg)) {
+                        Log.w(TAG, "Skipping non supporting runtime permissions package:"
+                                + packageName);
+                        XmlUtils.skipCurrentTag(parser);
+                        return;
+                    }
+                    packageExceptions = new ArrayList<>();
+                    outGrantExceptions.put(packageName, packageExceptions);
+                }
+
+                parsePermission(parser, packageExceptions);
+            } else {
+                Log.e(TAG, "Unknown tag " + parser.getName() + "under <exceptions>");
+            }
+        }
+    }
+
+    private void parsePermission(XmlPullParser parser, List<DefaultPermissionGrant>
+            outPackageExceptions) throws IOException, XmlPullParserException {
+        final int outerDepth = parser.getDepth();
+        int type;
+        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                continue;
+            }
+
+            if (TAG_PERMISSION.contains(parser.getName())) {
+                String name = parser.getAttributeValue(null, ATTR_NAME);
+                if (name == null) {
+                    Log.w(TAG, "Mandatory name attribute missing for permission tag");
+                    XmlUtils.skipCurrentTag(parser);
+                    continue;
+                }
+
+                final boolean fixed = XmlUtils.readBooleanAttribute(parser, ATTR_FIXED);
+
+                DefaultPermissionGrant exception = new DefaultPermissionGrant(name, fixed);
+                outPackageExceptions.add(exception);
+            } else {
+                Log.e(TAG, "Unknown tag " + parser.getName() + "under <exception>");
+            }
+        }
+    }
+
     private static boolean doesPackageSupportRuntimePermissions(PackageParser.Package pkg) {
         return pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1;
     }
+
+    private static final class DefaultPermissionGrant {
+        final String name;
+        final boolean fixed;
+
+        public DefaultPermissionGrant(String name, boolean fixed) {
+            this.name = name;
+            this.fixed = fixed;
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java
index b25ef17..8d926f5 100644
--- a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java
+++ b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java
@@ -16,6 +16,8 @@
 
 package com.android.server.pm;
 
+import android.app.EphemeralResolverService;
+import android.app.IEphemeralResolver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -30,9 +32,6 @@
 import android.os.UserHandle;
 import android.util.TimedRemoteCaller;
 
-import com.android.internal.app.EphemeralResolverService;
-import com.android.internal.app.IEphemeralResolver;
-
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index cd5bcd4..53e328c 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -768,41 +768,46 @@
 
             private void onShortcutChangedInner(@NonNull String packageName,
                     @UserIdInt int userId) {
-                final UserHandle user = UserHandle.of(userId);
+                try {
+                    final UserHandle user = UserHandle.of(userId);
 
-                final int n = mListeners.beginBroadcast();
-                for (int i = 0; i < n; i++) {
-                    IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
-                    BroadcastCookie cookie = (BroadcastCookie) mListeners.getBroadcastCookie(i);
-                    if (!isEnabledProfileOf(user, cookie.user, "onShortcutChanged")) continue;
+                    final int n = mListeners.beginBroadcast();
+                    for (int i = 0; i < n; i++) {
+                        IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
+                        BroadcastCookie cookie = (BroadcastCookie) mListeners.getBroadcastCookie(i);
+                        if (!isEnabledProfileOf(user, cookie.user, "onShortcutChanged")) continue;
 
-                    final int launcherUserId = cookie.user.getIdentifier();
+                        final int launcherUserId = cookie.user.getIdentifier();
 
-                    // Make sure the caller has the permission.
-                    if (!mShortcutServiceInternal.hasShortcutHostPermission(
-                            launcherUserId, cookie.packageName)) {
-                        continue;
+                        // Make sure the caller has the permission.
+                        if (!mShortcutServiceInternal.hasShortcutHostPermission(
+                                launcherUserId, cookie.packageName)) {
+                            continue;
+                        }
+                        // Each launcher has a different set of pinned shortcuts, so we need to do a
+                        // query in here.
+                        // (As of now, only one launcher has the permission at a time, so it's bit
+                        // moot, but we may change the permission model eventually.)
+                        final List<ShortcutInfo> list =
+                                mShortcutServiceInternal.getShortcuts(launcherUserId,
+                                        cookie.packageName,
+                                        /* changedSince= */ 0, packageName, /* shortcutIds=*/ null,
+                                        /* component= */ null,
+                                        ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY
+                                        | ShortcutQuery.FLAG_GET_ALL_KINDS
+                                        , userId);
+                        try {
+                            listener.onShortcutChanged(user, packageName,
+                                    new ParceledListSlice<>(list));
+                        } catch (RemoteException re) {
+                            Slog.d(TAG, "Callback failed ", re);
+                        }
                     }
-                    // Each launcher has a different set of pinned shortcuts, so we need to do a
-                    // query in here.
-                    // (As of now, only one launcher has the permission at a time, so it's bit
-                    // moot, but we may change the permission model eventually.)
-                    final List<ShortcutInfo> list =
-                            mShortcutServiceInternal.getShortcuts(launcherUserId,
-                                    cookie.packageName,
-                                    /* changedSince= */ 0, packageName, /* shortcutIds=*/ null,
-                                    /* component= */ null,
-                                    ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY
-                                    | ShortcutQuery.FLAG_GET_ALL_KINDS
-                                    , userId);
-                    try {
-                        listener.onShortcutChanged(user, packageName,
-                                new ParceledListSlice<>(list));
-                    } catch (RemoteException re) {
-                        Slog.d(TAG, "Callback failed ", re);
-                    }
+                    mListeners.finishBroadcast();
+                } catch (RuntimeException e) {
+                    // When the user is locked we get IllegalState, so just catch all.
+                    Log.w(TAG, e.getMessage(), e);
                 }
-                mListeners.finishBroadcast();
             }
         }
 
diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java
index 77c69c9..bff6d2d 100644
--- a/services/core/java/com/android/server/pm/OtaDexoptService.java
+++ b/services/core/java/com/android/server/pm/OtaDexoptService.java
@@ -50,22 +50,18 @@
     private final static String TAG = "OTADexopt";
     private final static boolean DEBUG_DEXOPT = true;
 
+    // The synthetic library dependencies denoting "no checks."
+    private final static String[] NO_LIBRARIES = new String[] { "&" };
+
     private final Context mContext;
     private final PackageManagerService mPackageManagerService;
 
     // TODO: Evaluate the need for WeakReferences here.
 
     /**
-     * The list of packages to dexopt.
+     * The list of dexopt invocations for all work.
      */
-    private List<PackageParser.Package> mDexoptPackages;
-
-    /**
-     * The list of dexopt invocations for the current package (which will no longer be in
-     * mDexoptPackages). This can be more than one as a package may have multiple code paths,
-     * e.g., in the split-APK case.
-     */
-    private List<String> mCommandsForCurrentPackage;
+    private List<String> mDexoptCommands;
 
     private int completeSize;
 
@@ -94,15 +90,44 @@
 
     @Override
     public synchronized void prepare() throws RemoteException {
-        if (mDexoptPackages != null) {
+        if (mDexoptCommands != null) {
             throw new IllegalStateException("already called prepare()");
         }
+        final List<PackageParser.Package> important;
+        final List<PackageParser.Package> others;
         synchronized (mPackageManagerService.mPackages) {
-            mDexoptPackages = PackageManagerServiceUtils.getPackagesForDexopt(
+            // Important: the packages we need to run with ab-ota compiler-reason.
+            important = PackageManagerServiceUtils.getPackagesForDexopt(
                     mPackageManagerService.mPackages.values(), mPackageManagerService);
+            // Others: we should optimize this with the (first-)boot compiler-reason.
+            others = new ArrayList<>(mPackageManagerService.mPackages.values());
+            others.removeAll(important);
+
+            // Pre-size the array list by over-allocating by a factor of 1.5.
+            mDexoptCommands = new ArrayList<>(3 * mPackageManagerService.mPackages.size() / 2);
         }
-        completeSize = mDexoptPackages.size();
-        mCommandsForCurrentPackage = null;
+
+        for (PackageParser.Package p : important) {
+            // Make sure that core apps are optimized according to their own "reason".
+            // If the core apps are not preopted in the B OTA, and REASON_AB_OTA is not speed
+            // (by default is speed-profile) they will be interepreted/JITed. This in itself is
+            // not a problem as we will end up doing profile guided compilation. However, some
+            // core apps may be loaded by system server which doesn't JIT and we need to make
+            // sure we don't interpret-only
+            int compilationReason = p.coreApp
+                    ? PackageManagerService.REASON_CORE_APP
+                    : PackageManagerService.REASON_AB_OTA;
+            mDexoptCommands.addAll(generatePackageDexopts(p, compilationReason));
+        }
+        for (PackageParser.Package p : others) {
+            // We assume here that there are no core apps left.
+            if (p.coreApp) {
+                throw new IllegalStateException("Found a core app that's not important");
+            }
+            mDexoptCommands.addAll(
+                    generatePackageDexopts(p, PackageManagerService.REASON_FIRST_BOOT));
+        }
+        completeSize = mDexoptCommands.size();
     }
 
     @Override
@@ -110,87 +135,52 @@
         if (DEBUG_DEXOPT) {
             Log.i(TAG, "Cleaning up OTA Dexopt state.");
         }
-        mDexoptPackages = null;
-        mCommandsForCurrentPackage = null;
+        mDexoptCommands = null;
     }
 
     @Override
     public synchronized boolean isDone() throws RemoteException {
-        if (mDexoptPackages == null) {
+        if (mDexoptCommands == null) {
             throw new IllegalStateException("done() called before prepare()");
         }
 
-        return mDexoptPackages.isEmpty() && (mCommandsForCurrentPackage == null);
+        return mDexoptCommands.isEmpty();
     }
 
     @Override
     public synchronized float getProgress() throws RemoteException {
-        // We approximate by number of packages here. We could track all compiles, if we
-        // generated them ahead of time. Right now we're trying to conserve memory.
+        // Approximate the progress by the amount of already completed commands.
         if (completeSize == 0) {
             return 1f;
         }
-        int packagesLeft = mDexoptPackages.size() + (mCommandsForCurrentPackage != null ? 1 : 0);
-        return (completeSize - packagesLeft) / ((float)completeSize);
-    }
-
-    /**
-     * Return the next dexopt command for the current package. Enforces the invariant
-     */
-    private String getNextPackageDexopt() {
-        if (mCommandsForCurrentPackage != null) {
-            String next = mCommandsForCurrentPackage.remove(0);
-            if (mCommandsForCurrentPackage.isEmpty()) {
-                mCommandsForCurrentPackage = null;
-            }
-            return next;
-        }
-        return null;
+        int commandsLeft = mDexoptCommands.size();
+        return (completeSize - commandsLeft) / ((float)completeSize);
     }
 
     @Override
     public synchronized String nextDexoptCommand() throws RemoteException {
-        if (mDexoptPackages == null) {
+        if (mDexoptCommands == null) {
             throw new IllegalStateException("dexoptNextPackage() called before prepare()");
         }
 
-        // Get the next command.
-        for (;;) {
-            // Check whether there's one for the current package.
-            String next = getNextPackageDexopt();
-            if (next != null) {
-                return next;
-            }
+        if (mDexoptCommands.isEmpty()) {
+            return "(all done)";
+        }
 
-            // Move to the next package, if possible.
-            if (mDexoptPackages.isEmpty()) {
-                return "Nothing to do";
-            }
+        String next = mDexoptCommands.remove(0);
 
-            PackageParser.Package nextPackage = mDexoptPackages.remove(0);
-
-            if (DEBUG_DEXOPT) {
-                Log.i(TAG, "Processing " + nextPackage.packageName + " for OTA dexopt.");
-            }
-
-            // Generate the next mPackageDexopts state. Ignore errors, this loop is strongly
-            // monotonically increasing, anyways.
-            generatePackageDexopts(nextPackage);
-
-            // Invariant check: mPackageDexopts is null or not empty.
-            if (mCommandsForCurrentPackage != null && mCommandsForCurrentPackage.isEmpty()) {
-                cleanup();
-                throw new IllegalStateException("mPackageDexopts empty for " + nextPackage);
-            }
+        if (IsFreeSpaceAvailable()) {
+            return next;
+        } else {
+            mDexoptCommands.clear();
+            return "(no free space)";
         }
     }
 
     /**
-     * Generate all dexopt commands for the given package and place them into mPackageDexopts.
-     * Returns true on success, false in an error situation like low disk space.
+     * Check for low space. Returns true if there's space left.
      */
-    private synchronized boolean generatePackageDexopts(PackageParser.Package nextPackage) {
-        // Check for low space.
+    private boolean IsFreeSpaceAvailable() {
         // TODO: If apps are not installed in the internal /data partition, we should compare
         //       against that storage's free capacity.
         File dataDir = Environment.getDataDirectory();
@@ -200,12 +190,14 @@
             throw new IllegalStateException("Invalid low memory threshold");
         }
         long usableSpace = dataDir.getUsableSpace();
-        if (usableSpace < lowThreshold) {
-            Log.w(TAG, "Not running dexopt on " + nextPackage.packageName + " due to low memory: " +
-                    usableSpace);
-            return false;
-        }
+        return (usableSpace >= lowThreshold);
+    }
 
+    /**
+     * Generate all dexopt commands for the given package.
+     */
+    private synchronized List<String> generatePackageDexopts(PackageParser.Package pkg,
+            int compilationReason) {
         // Use our custom connection that just collects the commands.
         RecordingInstallerConnection collectingConnection = new RecordingInstallerConnection();
         Installer collectingInstaller = new Installer(mContext, collectingConnection);
@@ -213,71 +205,28 @@
         // Use the package manager install and install lock here for the OTA dex optimizer.
         PackageDexOptimizer optimizer = new OTADexoptPackageDexOptimizer(
                 collectingInstaller, mPackageManagerService.mInstallLock, mContext);
-        // Make sure that core apps are optimized according to their own "reason".
-        // If the core apps are not preopted in the B OTA, and REASON_AB_OTA is not speed
-        // (by default is speed-profile) they will be interepreted/JITed. This in itself is not a
-        // problem as we will end up doing profile guided compilation. However, some core apps may
-        // be loaded by system server which doesn't JIT and we need to make sure we don't
-        // interpret-only
-        int compilationReason = nextPackage.coreApp
-                ? PackageManagerService.REASON_CORE_APP
-                : PackageManagerService.REASON_AB_OTA;
 
-        optimizer.performDexOpt(nextPackage, nextPackage.usesLibraryFiles,
+        String[] libraryDependencies = pkg.usesLibraryFiles;
+        if (pkg.isSystemApp()) {
+            // For system apps, we want to avoid classpaths checks.
+            libraryDependencies = NO_LIBRARIES;
+        }
+
+        optimizer.performDexOpt(pkg, libraryDependencies,
                 null /* ISAs */, false /* checkProfiles */,
                 getCompilerFilterForReason(compilationReason),
                 null /* CompilerStats.PackageStats */);
 
-        mCommandsForCurrentPackage = collectingConnection.commands;
-        if (mCommandsForCurrentPackage.isEmpty()) {
-            mCommandsForCurrentPackage = null;
-        }
-
-        return true;
+        return collectingConnection.commands;
     }
 
     @Override
     public synchronized void dexoptNextPackage() throws RemoteException {
-        if (mDexoptPackages == null) {
-            throw new IllegalStateException("dexoptNextPackage() called before prepare()");
-        }
-        if (mDexoptPackages.isEmpty()) {
-            // Tolerate repeated calls.
-            return;
-        }
-
-        PackageParser.Package nextPackage = mDexoptPackages.remove(0);
-
-        if (DEBUG_DEXOPT) {
-            Log.i(TAG, "Processing " + nextPackage.packageName + " for OTA dexopt.");
-        }
-
-        // Check for low space.
-        // TODO: If apps are not installed in the internal /data partition, we should compare
-        //       against that storage's free capacity.
-        File dataDir = Environment.getDataDirectory();
-        @SuppressWarnings("deprecation")
-        long lowThreshold = StorageManager.from(mContext).getStorageLowBytes(dataDir);
-        if (lowThreshold == 0) {
-            throw new IllegalStateException("Invalid low memory threshold");
-        }
-        long usableSpace = dataDir.getUsableSpace();
-        if (usableSpace < lowThreshold) {
-            Log.w(TAG, "Not running dexopt on " + nextPackage.packageName + " due to low memory: " +
-                    usableSpace);
-            return;
-        }
-
-        PackageDexOptimizer optimizer = new OTADexoptPackageDexOptimizer(
-                mPackageManagerService.mInstaller, mPackageManagerService.mInstallLock, mContext);
-        optimizer.performDexOpt(nextPackage, nextPackage.usesLibraryFiles, null /* ISAs */,
-                false /* checkProfiles */,
-                getCompilerFilterForReason(PackageManagerService.REASON_AB_OTA),
-                mPackageManagerService.getOrCreateCompilerPackageStats(nextPackage));
+        throw new UnsupportedOperationException();
     }
 
     private void moveAbArtifacts(Installer installer) {
-        if (mDexoptPackages != null) {
+        if (mDexoptCommands != null) {
             throw new IllegalStateException("Should not be ota-dexopting when trying to move.");
         }
 
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 54c36e1..f326555 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -35,7 +35,6 @@
 import static android.content.pm.PackageManager.INSTALL_EXTERNAL;
 import static android.content.pm.PackageManager.INSTALL_FAILED_ALREADY_EXISTS;
 import static android.content.pm.PackageManager.INSTALL_FAILED_CONFLICTING_PROVIDER;
-import static android.content.pm.PackageManager.INSTALL_FAILED_DEXOPT;
 import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PACKAGE;
 import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION;
 import static android.content.pm.PackageManager.INSTALL_FAILED_EPHEMERAL_INVALID;
@@ -101,7 +100,6 @@
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
 import android.app.IActivityManager;
@@ -737,8 +735,7 @@
     final SparseArray<IntentFilterVerificationState> mIntentFilterVerificationStates
             = new SparseArray<IntentFilterVerificationState>();
 
-    final DefaultPermissionGrantPolicy mDefaultPermissionPolicy =
-            new DefaultPermissionGrantPolicy(this);
+    final DefaultPermissionGrantPolicy mDefaultPermissionPolicy;
 
     // List of packages names to keep cached, even if they are uninstalled for all users
     private List<String> mKeepUninstalledPackages;
@@ -1963,10 +1960,6 @@
         PackageManagerService m = new PackageManagerService(context, installer,
                 factoryTest, onlyCore);
         m.enableSystemUserPackages();
-        // Disable any carrier apps. We do this very early in boot to prevent the apps from being
-        // disabled after already being started.
-        CarrierAppUtils.disableCarrierAppsUntilPrivileged(context.getOpPackageName(), m,
-                UserHandle.USER_SYSTEM);
         ServiceManager.addService("package", m);
         return m;
     }
@@ -2119,6 +2112,8 @@
             mProcessLoggingHandler = new ProcessLoggingHandler();
             Watchdog.getInstance().addThread(mHandler, WATCHDOG_TIMEOUT);
 
+            mDefaultPermissionPolicy = new DefaultPermissionGrantPolicy(this);
+
             File dataDir = Environment.getDataDirectory();
             mAppInstallDir = new File(dataDir, "app");
             mAppLib32InstallDir = new File(dataDir, "app-lib");
@@ -15828,6 +15823,12 @@
                     + e.getMessage());
             return false;
         }
+        try {
+            // update shared libraries for the newly re-installed system package
+            updateSharedLibrariesLPw(newPkg, null);
+        } catch (PackageManagerException e) {
+            Slog.e(TAG, "updateAllSharedLibrariesLPw failed: " + e.getMessage());
+        }
 
         prepareAppDataAfterInstallLIF(newPkg);
 
@@ -17875,6 +17876,11 @@
     public void systemReady() {
         mSystemReady = true;
 
+        // Disable any carrier apps. We do this very early in boot to prevent the apps from being
+        // disabled after already being started.
+        CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this,
+                mContext.getContentResolver(), UserHandle.USER_SYSTEM);
+
         // Read the compatibilty setting when the system is ready.
         boolean compatibilityModeEnabled = android.provider.Settings.Global.getInt(
                 mContext.getContentResolver(),
@@ -17930,6 +17936,13 @@
             mDefaultPermissionPolicy.grantDefaultPermissions(userId);
         }
 
+        // If we did not grant default permissions, we preload from this the
+        // default permission exceptions lazily to ensure we don't hit the
+        // disk on a new user creation.
+        if (grantPermissionsUserIds == EMPTY_INT_ARRAY) {
+            mDefaultPermissionPolicy.scheduleReadDefaultPermissionExceptions();
+        }
+
         // Kick off any messages waiting for system ready
         if (mPostSystemReadyMessages != null) {
             for (Message msg : mPostSystemReadyMessages) {
diff --git a/services/core/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java
index a6350fe..8970556 100644
--- a/services/core/java/com/android/server/pm/SELinuxMMAC.java
+++ b/services/core/java/com/android/server/pm/SELinuxMMAC.java
@@ -19,6 +19,7 @@
 import android.content.pm.PackageParser;
 import android.content.pm.Signature;
 import android.os.Environment;
+import android.os.SystemProperties;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
@@ -64,6 +65,8 @@
     // to synchronize access during policy load and access attempts.
     private static List<Policy> sPolicies = new ArrayList<>();
 
+    private static final String PROP_FORCE_RESTORECON = "sys.force_restorecon";
+
     /** Path to version on rootfs */
     private static final File VERSION_FILE = new File("/selinux_version");
 
@@ -322,6 +325,11 @@
      * @return Returns true if the restorecon should occur or false otherwise.
      */
     public static boolean isRestoreconNeeded(File file) {
+        // To investigate boot timing, allow a property to always force restorecon
+        if (SystemProperties.getBoolean(PROP_FORCE_RESTORECON, false)) {
+            return true;
+        }
+
         try {
             final byte[] buf = new byte[20];
             final int len = Os.getxattr(file.getAbsolutePath(), XATTR_SEAPP_HASH, buf);
diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java
index 51c9619..827b88a 100644
--- a/services/core/java/com/android/server/pm/ShortcutPackage.java
+++ b/services/core/java/com/android/server/pm/ShortcutPackage.java
@@ -667,8 +667,8 @@
                 // - version code hasn't change
                 // - lastUpdateTime hasn't change
                 // - all target activities are still enabled.
-                if ((getPackageInfo().getVersionCode() >= pi.versionCode)
-                        && (getPackageInfo().getLastUpdateTime() >= pi.lastUpdateTime)
+                if ((getPackageInfo().getVersionCode() == pi.versionCode)
+                        && (getPackageInfo().getLastUpdateTime() == pi.lastUpdateTime)
                         && areAllActivitiesStillEnabled()) {
                     return false;
                 }
diff --git a/services/core/java/com/android/server/pm/ShortcutParser.java b/services/core/java/com/android/server/pm/ShortcutParser.java
index 2a2a4b2..3cf4200 100644
--- a/services/core/java/com/android/server/pm/ShortcutParser.java
+++ b/services/core/java/com/android/server/pm/ShortcutParser.java
@@ -259,7 +259,7 @@
                     continue;
                 }
 
-                ShortcutService.warnForInvalidTag(depth, tag);
+                Log.w(TAG, String.format("Invalid tag '%s' found at depth %d", tag, depth));
             }
         } finally {
             if (parser != null) {
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index 93693ce..c1fc7f1 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -20,6 +20,7 @@
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
+import android.app.ActivityManagerInternal;
 import android.app.ActivityManagerNative;
 import android.app.AppGlobals;
 import android.app.IUidObserver;
@@ -77,6 +78,7 @@
 import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.util.SparseBooleanArray;
 import android.util.SparseIntArray;
 import android.util.SparseLongArray;
 import android.util.TypedValue;
@@ -85,7 +87,6 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.content.PackageMonitor;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.FastXmlSerializer;
 import com.android.internal.util.Preconditions;
@@ -284,6 +285,7 @@
     private final PackageManagerInternal mPackageManagerInternal;
     private final UserManager mUserManager;
     private final UsageStatsManagerInternal mUsageStatsManagerInternal;
+    private final ActivityManagerInternal mActivityManagerInternal;
 
     @GuardedBy("mLock")
     final SparseIntArray mUidState = new SparseIntArray();
@@ -301,6 +303,9 @@
                     | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
                     | PackageManager.MATCH_UNINSTALLED_PACKAGES;
 
+    @GuardedBy("mLock")
+    final SparseBooleanArray mUnlockedUsers = new SparseBooleanArray();
+
     // Stats
     @VisibleForTesting
     interface Stats {
@@ -369,6 +374,8 @@
         mUserManager = Preconditions.checkNotNull(context.getSystemService(UserManager.class));
         mUsageStatsManagerInternal = Preconditions.checkNotNull(
                 LocalServices.getService(UsageStatsManagerInternal.class));
+        mActivityManagerInternal = Preconditions.checkNotNull(
+                LocalServices.getService(ActivityManagerInternal.class));
 
         if (onlyForPackageManagerApis) {
             return; // Don't do anything further.  For unit tests only.
@@ -453,7 +460,8 @@
     }
 
     private boolean isProcessStateForeground(int processState) {
-        return processState <= PROCESS_STATE_FOREGROUND_THRESHOLD;
+        return (processState != ActivityManager.PROCESS_STATE_NONEXISTENT)
+                && (processState <= PROCESS_STATE_FOREGROUND_THRESHOLD);
     }
 
     boolean isUidForegroundLocked(int uid) {
@@ -462,7 +470,13 @@
             // so it's foreground anyway.
             return true;
         }
-        return isProcessStateForeground(mUidState.get(uid, ActivityManager.MAX_PROCESS_STATE));
+        // First, check with the local cache.
+        if (isProcessStateForeground(mUidState.get(uid, ActivityManager.MAX_PROCESS_STATE))) {
+            return true;
+        }
+        // If the cache says background, reach out to AM.  Since it'll internally need to hold
+        // the AM lock, we use it as a last resort.
+        return isProcessStateForeground(mActivityManagerInternal.getUidProcessState(uid));
     }
 
     long getUidLastForegroundElapsedTimeLocked(int uid) {
@@ -522,6 +536,8 @@
             Slog.d(TAG, "handleUnlockUser: user=" + userId);
         }
         synchronized (mLock) {
+            mUnlockedUsers.put(userId, true);
+
             // Preload the user's shortcuts.
             // Also see if the locale has changed.
             // Note as of nyc, the locale is per-user, so the locale shouldn't change
@@ -534,8 +550,13 @@
 
     /** lifecycle event */
     void handleCleanupUser(int userId) {
+        if (DEBUG) {
+            Slog.d(TAG, "handleCleanupUser: user=" + userId);
+        }
         synchronized (mLock) {
             unloadUserLocked(userId);
+
+            mUnlockedUsers.put(userId, false);
         }
     }
 
@@ -857,6 +878,9 @@
             saveUserInternalLocked(userId, os, /* forBackup= */ false);
 
             file.finishWrite(os);
+
+            // Remove all dangling bitmap files.
+            cleanupDanglingBitmapDirectoriesLocked(userId);
         } catch (XmlPullParserException | IOException e) {
             Slog.e(TAG, "Failed to write to file " + file.getBaseFile(), e);
             file.failWrite(os);
@@ -908,7 +932,6 @@
         }
         try {
             final ShortcutUser ret = loadUserInternal(userId, in, /* forBackup= */ false);
-            cleanupDanglingBitmapDirectoriesLocked(userId, ret);
             return ret;
         } catch (IOException | XmlPullParserException e) {
             Slog.e(TAG, "Failed to read file " + file.getBaseFile(), e);
@@ -978,16 +1001,20 @@
         if (DEBUG) {
             Slog.d(TAG, "saveDirtyInfo");
         }
-        synchronized (mLock) {
-            for (int i = mDirtyUserIds.size() - 1; i >= 0; i--) {
-                final int userId = mDirtyUserIds.get(i);
-                if (userId == UserHandle.USER_NULL) { // USER_NULL for base state.
-                    saveBaseStateLocked();
-                } else {
-                    saveUserLocked(userId);
+        try {
+            synchronized (mLock) {
+                for (int i = mDirtyUserIds.size() - 1; i >= 0; i--) {
+                    final int userId = mDirtyUserIds.get(i);
+                    if (userId == UserHandle.USER_NULL) { // USER_NULL for base state.
+                        saveBaseStateLocked();
+                    } else {
+                        saveUserLocked(userId);
+                    }
                 }
+                mDirtyUserIds.clear();
             }
-            mDirtyUserIds.clear();
+        } catch (Exception e) {
+            wtf("Exception in saveDirtyInfo", e);
         }
     }
 
@@ -1037,6 +1064,31 @@
         }
     }
 
+    // Requires mLock held, but "Locked" prefix would look weired so we just say "L".
+    protected boolean isUserUnlockedL(@UserIdInt int userId) {
+        // First, check the local copy.
+        if (mUnlockedUsers.get(userId)) {
+            return true;
+        }
+        // If the local copy says the user is locked, check with AM for the actual state, since
+        // the user might just have been unlocked.
+        // Note we just don't use isUserUnlockingOrUnlocked() here, because it'll return false
+        // when the user is STOPPING, which we still want to consider as "unlocked".
+        final long token = injectClearCallingIdentity();
+        try {
+            return mUserManager.isUserUnlockingOrUnlocked(userId);
+        } finally {
+            injectRestoreCallingIdentity(token);
+        }
+    }
+
+    // Requires mLock held, but "Locked" prefix would look weired so we jsut say "L".
+    void throwIfUserLockedL(@UserIdInt int userId) {
+        if (!isUserUnlockedL(userId)) {
+            throw new IllegalStateException("User " + userId + " is locked or not running");
+        }
+    }
+
     @GuardedBy("mLock")
     @NonNull
     private boolean isUserLoadedLocked(@UserIdInt int userId) {
@@ -1047,6 +1099,10 @@
     @GuardedBy("mLock")
     @NonNull
     ShortcutUser getUserShortcutsLocked(@UserIdInt int userId) {
+        if (!isUserUnlockedL(userId)) {
+            wtf("User still locked");
+        }
+
         ShortcutUser userPackages = mUsers.get(userId);
         if (userPackages == null) {
             userPackages = loadUserLocked(userId);
@@ -1084,14 +1140,8 @@
     // === Caller validation ===
 
     void removeIcon(@UserIdInt int userId, ShortcutInfo shortcut) {
-        if (shortcut.getBitmapPath() != null) {
-            if (DEBUG) {
-                Slog.d(TAG, "Removing " + shortcut.getBitmapPath());
-            }
-            new File(shortcut.getBitmapPath()).delete();
-
-            shortcut.setBitmapPath(null);
-        }
+        // Do not remove the actual bitmap file yet, because if the device crashes before saving
+        // he XML we'd lose the icon.  We just remove all dangling files after saving the XML.
         shortcut.setIconResourceId(0);
         shortcut.setIconResName(null);
         shortcut.clearFlags(ShortcutInfo.FLAG_HAS_ICON_FILE | ShortcutInfo.FLAG_HAS_ICON_RES);
@@ -1107,13 +1157,14 @@
         }
     }
 
-    private void cleanupDanglingBitmapDirectoriesLocked(
-            @UserIdInt int userId, @NonNull ShortcutUser user) {
+    private void cleanupDanglingBitmapDirectoriesLocked(@UserIdInt int userId) {
         if (DEBUG) {
             Slog.d(TAG, "cleanupDanglingBitmaps: userId=" + userId);
         }
         final long start = injectElapsedRealtime();
 
+        final ShortcutUser user = getUserShortcutsLocked(userId);
+
         final File bitmapDir = getUserBitmapFilePath(userId);
         final File[] children = bitmapDir.listFiles();
         if (children == null) {
@@ -1448,22 +1499,21 @@
     }
 
     private void notifyListeners(@NonNull String packageName, @UserIdInt int userId) {
-        final long token = injectClearCallingIdentity();
-        try {
-            if (!mUserManager.isUserRunning(userId)) {
-                return;
-            }
-        } finally {
-            injectRestoreCallingIdentity(token);
-        }
         injectPostToHandler(() -> {
-            final ArrayList<ShortcutChangeListener> copy;
-            synchronized (mLock) {
-                copy = new ArrayList<>(mListeners);
-            }
-            // Note onShortcutChanged() needs to be called with the system service permissions.
-            for (int i = copy.size() - 1; i >= 0; i--) {
-                copy.get(i).onShortcutChanged(packageName, userId);
+            try {
+                final ArrayList<ShortcutChangeListener> copy;
+                synchronized (mLock) {
+                    if (!isUserUnlockedL(userId)) {
+                        return;
+                    }
+
+                    copy = new ArrayList<>(mListeners);
+                }
+                // Note onShortcutChanged() needs to be called with the system service permissions.
+                for (int i = copy.size() - 1; i >= 0; i--) {
+                    copy.get(i).onShortcutChanged(packageName, userId);
+                }
+            } catch (Exception ignore) {
             }
         });
     }
@@ -1540,6 +1590,8 @@
         final int size = newShortcuts.size();
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1590,6 +1642,8 @@
         final int size = newShortcuts.size();
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1669,6 +1723,8 @@
         final int size = newShortcuts.size();
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1717,6 +1773,8 @@
         Preconditions.checkNotNull(shortcutIds, "shortcutIds must be provided");
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1745,6 +1803,8 @@
         Preconditions.checkNotNull(shortcutIds, "shortcutIds must be provided");
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1766,6 +1826,8 @@
         Preconditions.checkNotNull(shortcutIds, "shortcutIds must be provided");
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1789,6 +1851,8 @@
         verifyCaller(packageName, userId);
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
             ps.deleteAllDynamicShortcuts();
@@ -1802,7 +1866,10 @@
     public ParceledListSlice<ShortcutInfo> getDynamicShortcuts(String packageName,
             @UserIdInt int userId) {
         verifyCaller(packageName, userId);
+
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             return getShortcutsWithQueryLocked(
                     packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
                     ShortcutInfo::isDynamic);
@@ -1813,7 +1880,10 @@
     public ParceledListSlice<ShortcutInfo> getManifestShortcuts(String packageName,
             @UserIdInt int userId) {
         verifyCaller(packageName, userId);
+
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             return getShortcutsWithQueryLocked(
                     packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
                     ShortcutInfo::isManifestShortcut);
@@ -1824,7 +1894,10 @@
     public ParceledListSlice<ShortcutInfo> getPinnedShortcuts(String packageName,
             @UserIdInt int userId) {
         verifyCaller(packageName, userId);
+
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             return getShortcutsWithQueryLocked(
                     packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
                     ShortcutInfo::isPinned);
@@ -1856,6 +1929,8 @@
         verifyCaller(packageName, userId);
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
             return mMaxUpdatesPerInterval - ps.getApiCallCount();
@@ -1867,6 +1942,8 @@
         verifyCaller(packageName, userId);
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             return getNextResetTimeLocked();
         }
     }
@@ -1892,6 +1969,8 @@
         }
 
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutPackage ps = getPackageShortcutsLocked(packageName, userId);
             ps.getUser().onCalledByPublisher(packageName);
 
@@ -1923,6 +2002,11 @@
 
     void resetThrottlingInner(@UserIdInt int userId) {
         synchronized (mLock) {
+            if (!isUserUnlockedL(userId)) {
+                Log.w(TAG, "User " + userId + " is locked or not running");
+                return;
+            }
+
             getUserShortcutsLocked(userId).resetThrottling();
         }
         scheduleSaveUser(userId);
@@ -1937,21 +2021,23 @@
         Slog.i(TAG, "ShortcutManager: throttling counter reset for all users");
     }
 
-    void resetPackageThrottling(String packageName, int userId) {
-        synchronized (mLock) {
-            getPackageShortcutsLocked(packageName, userId)
-                    .resetRateLimitingForCommandLineNoSaving();
-            saveUserLocked(userId);
-        }
-    }
-
     @Override
     public void onApplicationActive(String packageName, int userId) {
         if (DEBUG) {
             Slog.d(TAG, "onApplicationActive: package=" + packageName + "  userid=" + userId);
         }
         enforceResetThrottlingPermission();
-        resetPackageThrottling(packageName, userId);
+
+        synchronized (mLock) {
+            if (!isUserUnlockedL(userId)) {
+                // This is called by system UI, so no need to throw.  Just ignore.
+                return;
+            }
+
+            getPackageShortcutsLocked(packageName, userId)
+                    .resetRateLimitingForCommandLineNoSaving();
+            saveUserLocked(userId);
+        }
     }
 
     // We override this method in unit tests to do a simpler check.
@@ -1969,6 +2055,8 @@
     @VisibleForTesting
     boolean hasShortcutHostPermissionInner(@NonNull String callingPackage, int userId) {
         synchronized (mLock) {
+            throwIfUserLockedL(userId);
+
             final ShortcutUser user = getUserShortcutsLocked(userId);
 
             // Always trust the in-memory cache.
@@ -2125,6 +2213,7 @@
                 @Nullable ComponentName componentName,
                 int queryFlags, int userId) {
             final ArrayList<ShortcutInfo> ret = new ArrayList<>();
+
             final boolean cloneKeyFieldOnly =
                     ((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0);
             final int cloneFlag = cloneKeyFieldOnly ? ShortcutInfo.CLONE_REMOVE_NON_KEY_INFO
@@ -2134,6 +2223,9 @@
             }
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
                         .attemptToRestoreIfNeededAndSave();
 
@@ -2203,6 +2295,9 @@
             Preconditions.checkStringNotEmpty(shortcutId, "shortcutId");
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
                         .attemptToRestoreIfNeededAndSave();
 
@@ -2218,6 +2313,9 @@
             Preconditions.checkStringNotEmpty(packageName, "packageName");
             Preconditions.checkStringNotEmpty(shortcutId, "shortcutId");
 
+            throwIfUserLockedL(userId);
+            throwIfUserLockedL(launcherUserId);
+
             final ShortcutPackage p = getUserShortcutsLocked(userId)
                     .getPackageShortcutsIfExists(packageName);
             if (p == null) {
@@ -2240,6 +2338,9 @@
             Preconditions.checkNotNull(shortcutIds, "shortcutIds");
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 final ShortcutLauncher launcher =
                         getLauncherShortcutsLocked(callingPackage, userId, launcherUserId);
                 launcher.attemptToRestoreIfNeededAndSave();
@@ -2260,6 +2361,9 @@
             Preconditions.checkStringNotEmpty(shortcutId, "shortcutId can't be empty");
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
                         .attemptToRestoreIfNeededAndSave();
 
@@ -2290,6 +2394,9 @@
             Preconditions.checkNotNull(shortcutId, "shortcutId");
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
                         .attemptToRestoreIfNeededAndSave();
 
@@ -2314,6 +2421,9 @@
             Preconditions.checkNotNull(shortcutId, "shortcutId");
 
             synchronized (mLock) {
+                throwIfUserLockedL(userId);
+                throwIfUserLockedL(launcherUserId);
+
                 getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
                         .attemptToRestoreIfNeededAndSave();
 
@@ -2355,8 +2465,12 @@
             if (!mBootCompleted.get()) {
                 return; // Boot not completed, ignore the broadcast.
             }
-            if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
-                handleLocaleChanged();
+            try {
+                if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
+                    handleLocaleChanged();
+                }
+            } catch (Exception e) {
+                wtf("Exception in mReceiver.onReceive", e);
             }
         }
     };
@@ -2367,11 +2481,13 @@
         }
         scheduleSaveBaseState();
 
-        final long token = injectClearCallingIdentity();
-        try {
-            forEachLoadedUserLocked(user -> user.detectLocaleChange());
-        } finally {
-            injectRestoreCallingIdentity(token);
+        synchronized (mLock) {
+            final long token = injectClearCallingIdentity();
+            try {
+                forEachLoadedUserLocked(user -> user.detectLocaleChange());
+            } finally {
+                injectRestoreCallingIdentity(token);
+            }
         }
     }
 
@@ -2394,18 +2510,17 @@
             // but we still check it in unit tests.
             final long token = injectClearCallingIdentity();
             try {
-
-                if (!mUserManager.isUserUnlocked(userId)) {
-                    if (DEBUG) {
-                        Slog.d(TAG, "Ignoring package broadcast " + action
-                                + " for locked/stopped user " + userId);
-                    }
-                    return;
-                }
-
-                // Whenever we get one of those package broadcasts, or get
-                // ACTION_PREFERRED_ACTIVITY_CHANGED, we purge the default launcher cache.
                 synchronized (mLock) {
+                    if (!isUserUnlockedL(userId)) {
+                        if (DEBUG) {
+                            Slog.d(TAG, "Ignoring package broadcast " + action
+                                    + " for locked/stopped user " + userId);
+                        }
+                        return;
+                    }
+
+                    // Whenever we get one of those package broadcasts, or get
+                    // ACTION_PREFERRED_ACTIVITY_CHANGED, we purge the default launcher cache.
                     final ShortcutUser user = getUserShortcutsLocked(userId);
                     user.clearLauncher();
                 }
@@ -2445,6 +2560,8 @@
                         handlePackageDataCleared(packageName, userId);
                         break;
                 }
+            } catch (Exception e) {
+                wtf("Exception in mPackageMonitor.onReceive", e);
             } finally {
                 injectRestoreCallingIdentity(token);
             }
@@ -2494,17 +2611,9 @@
                                 /* appStillExists = */ false);
                     }
                 }
-                final long now = injectCurrentTimeMillis();
 
-                // Then for each installed app, publish manifest shortcuts when needed.
-                forUpdatedPackages(ownerUserId, user.getLastAppScanTime(), ai -> {
-                    user.rescanPackageIfNeeded(ai.packageName, /* forceRescan=*/ false);
-                });
-
-                // Write the time just before the scan, because there may be apps that have just
-                // been updated, and we want to catch them in the next time.
-                user.setLastAppScanTime(now);
-                scheduleSaveUser(ownerUserId);
+                rescanUpdatedPackagesLocked(ownerUserId, user.getLastAppScanTime(),
+                        /* forceRescan=*/ false);
             }
         } finally {
             logDurationStat(Stats.CHECK_PACKAGE_CHANGES, start);
@@ -2512,6 +2621,24 @@
         verifyStates();
     }
 
+    private void rescanUpdatedPackagesLocked(@UserIdInt int userId, long lastScanTime,
+            boolean forceRescan) {
+        final ShortcutUser user = getUserShortcutsLocked(userId);
+
+        final long now = injectCurrentTimeMillis();
+
+        // Then for each installed app, publish manifest shortcuts when needed.
+        forUpdatedPackages(userId, lastScanTime, ai -> {
+            user.attemptToRestoreIfNeededAndSave(this, ai.packageName, userId);
+            user.rescanPackageIfNeeded(ai.packageName, forceRescan);
+        });
+
+        // Write the time just before the scan, because there may be apps that have just
+        // been updated, and we want to catch them in the next time.
+        user.setLastAppScanTime(now);
+        scheduleSaveUser(userId);
+    }
+
     private void handlePackageAdded(String packageName, @UserIdInt int userId) {
         if (DEBUG) {
             Slog.d(TAG, String.format("handlePackageAdded: %s user=%d", packageName, userId));
@@ -2519,7 +2646,7 @@
         synchronized (mLock) {
             final ShortcutUser user = getUserShortcutsLocked(userId);
             user.attemptToRestoreIfNeededAndSave(this, packageName, userId);
-            user.rescanPackageIfNeeded(packageName, /* forceRescan=*/ false);
+            user.rescanPackageIfNeeded(packageName, /* forceRescan=*/ true);
         }
         verifyStates();
     }
@@ -2534,7 +2661,7 @@
             user.attemptToRestoreIfNeededAndSave(this, packageName, userId);
 
             if (isPackageInstalled(packageName, userId)) {
-                user.rescanPackageIfNeeded(packageName, /* forceRescan=*/ false);
+                user.rescanPackageIfNeeded(packageName, /* forceRescan=*/ true);
             }
         }
         verifyStates();
@@ -2756,7 +2883,10 @@
         for (int i = list.size() - 1; i >= 0; i--) {
             final PackageInfo pi = list.get(i);
 
-            if (pi.lastUpdateTime >= lastScanTime) {
+            // If the package has been updated since the last scan time, then scan it.
+            // Also if it's a system app with no update, lastUpdateTime is not reliable, so
+            // just scan it.
+            if (pi.lastUpdateTime >= lastScanTime || isPureSystemApp(pi.applicationInfo)) {
                 if (DEBUG) {
                     Slog.d(TAG, "Found updated package " + pi.packageName);
                 }
@@ -2765,6 +2895,13 @@
         }
     }
 
+    /**
+     * @return true if it's a system app with no updates.
+     */
+    private boolean isPureSystemApp(ApplicationInfo ai) {
+        return ai.isSystemApp() && !ai.isUpdatedSystemApp();
+    }
+
     private boolean isApplicationFlagSet(@NonNull String packageName, int userId, int flags) {
         final ApplicationInfo ai = injectApplicationInfoWithUninstalled(packageName, userId);
         return (ai != null) && ((ai.flags & flags) == flags);
@@ -2955,9 +3092,14 @@
             Slog.d(TAG, "Backing up user " + userId);
         }
         synchronized (mLock) {
+            if (!isUserUnlockedL(userId)) {
+                wtf("Can't backup: user " + userId + " is locked or not running");
+                return null;
+            }
+
             final ShortcutUser user = getUserShortcutsLocked(userId);
             if (user == null) {
-                Slog.w(TAG, "Can't backup: user not found: id=" + userId);
+                wtf("Can't backup: user not found: id=" + userId);
                 return null;
             }
 
@@ -2982,23 +3124,25 @@
         if (DEBUG) {
             Slog.d(TAG, "Restoring user " + userId);
         }
-        final ShortcutUser user;
-        final ByteArrayInputStream is = new ByteArrayInputStream(payload);
-        try {
-            user = loadUserInternal(userId, is, /* fromBackup */ true);
-        } catch (XmlPullParserException | IOException e) {
-            Slog.w(TAG, "Restoration failed.", e);
-            return;
-        }
         synchronized (mLock) {
+            if (!isUserUnlockedL(userId)) {
+                wtf("Can't restore: user " + userId + " is locked or not running");
+                return;
+            }
+            final ShortcutUser user;
+            final ByteArrayInputStream is = new ByteArrayInputStream(payload);
+            try {
+                user = loadUserInternal(userId, is, /* fromBackup */ true);
+            } catch (XmlPullParserException | IOException e) {
+                Slog.w(TAG, "Restoration failed.", e);
+                return;
+            }
             mUsers.put(userId, user);
 
-            // Then purge all the save images.
-            final File bitmapPath = getUserBitmapFilePath(userId);
-            final boolean success = FileUtils.deleteContents(bitmapPath);
-            if (!success) {
-                Slog.w(TAG, "Failed to delete " + bitmapPath);
-            }
+            // Rescan all packages to re-publish manifest shortcuts and do other checks.
+            rescanUpdatedPackagesLocked(userId,
+                    0, // lastScanTime = 0; rescan all packages.
+                    /* forceRescan= */ true);
 
             saveUserLocked(userId);
         }
@@ -3200,7 +3344,7 @@
 
         private int mUserId = UserHandle.USER_SYSTEM;
 
-        private void parseOptions(boolean takeUser)
+        private void parseOptionsLocked(boolean takeUser)
                 throws CommandException {
             String opt;
             while ((opt = getNextOption()) != null) {
@@ -3208,7 +3352,7 @@
                     case "--user":
                         if (takeUser) {
                             mUserId = UserHandle.parseUserArg(getNextArgRequired());
-                            if (!mUserManager.isUserUnlocked(mUserId)) {
+                            if (!isUserUnlockedL(mUserId)) {
                                 throw new CommandException(
                                         "User " + mUserId + " is not running or locked");
                             }
@@ -3300,11 +3444,13 @@
         }
 
         private void handleResetThrottling() throws CommandException {
-            parseOptions(/* takeUser =*/ true);
+            synchronized (mLock) {
+                parseOptionsLocked(/* takeUser =*/ true);
 
-            Slog.i(TAG, "cmd: handleResetThrottling: user=" + mUserId);
+                Slog.i(TAG, "cmd: handleResetThrottling: user=" + mUserId);
 
-            resetThrottlingInner(mUserId);
+                resetThrottlingInner(mUserId);
+            }
         }
 
         private void handleResetAllThrottling() {
@@ -3350,34 +3496,42 @@
         }
 
         private void handleClearDefaultLauncher() throws CommandException {
-            parseOptions(/* takeUser =*/ true);
+            synchronized (mLock) {
+                parseOptionsLocked(/* takeUser =*/ true);
 
-            clearLauncher();
+                clearLauncher();
+            }
         }
 
         private void handleGetDefaultLauncher() throws CommandException {
-            parseOptions(/* takeUser =*/ true);
+            synchronized (mLock) {
+                parseOptionsLocked(/* takeUser =*/ true);
 
-            clearLauncher();
-            showLauncher();
+                clearLauncher();
+                showLauncher();
+            }
         }
 
         private void handleUnloadUser() throws CommandException {
-            parseOptions(/* takeUser =*/ true);
+            synchronized (mLock) {
+                parseOptionsLocked(/* takeUser =*/ true);
 
-            Slog.i(TAG, "cmd: handleUnloadUser: user=" + mUserId);
+                Slog.i(TAG, "cmd: handleUnloadUser: user=" + mUserId);
 
-            ShortcutService.this.handleCleanupUser(mUserId);
+                ShortcutService.this.handleCleanupUser(mUserId);
+            }
         }
 
         private void handleClearShortcuts() throws CommandException {
-            parseOptions(/* takeUser =*/ true);
-            final String packageName = getNextArgRequired();
+            synchronized (mLock) {
+                parseOptionsLocked(/* takeUser =*/ true);
+                final String packageName = getNextArgRequired();
 
-            Slog.i(TAG, "cmd: handleClearShortcuts: user" + mUserId + ", " + packageName);
+                Slog.i(TAG, "cmd: handleClearShortcuts: user" + mUserId + ", " + packageName);
 
-            ShortcutService.this.cleanUpPackageForAllLoadedUsers(packageName, mUserId,
-                    /* appStillExists = */ true);
+                ShortcutService.this.cleanUpPackageForAllLoadedUsers(packageName, mUserId,
+                        /* appStillExists = */ true);
+            }
         }
 
         private void handleVerifyStates() throws CommandException {
diff --git a/services/core/java/com/android/server/pm/ShortcutUser.java b/services/core/java/com/android/server/pm/ShortcutUser.java
index 21e4165..ce3ed9c 100644
--- a/services/core/java/com/android/server/pm/ShortcutUser.java
+++ b/services/core/java/com/android/server/pm/ShortcutUser.java
@@ -57,7 +57,9 @@
 
     private static final String ATTR_VALUE = "value";
     private static final String ATTR_KNOWN_LOCALES = "locales";
-    private static final String ATTR_LAST_APP_SCAN_TIME = "last-app-scan-time";
+
+    // Suffix "2" was added to force rescan all packages after the next OTA.
+    private static final String ATTR_LAST_APP_SCAN_TIME = "last-app-scan-time2";
     private static final String KEY_USER_ID = "userId";
     private static final String KEY_LAUNCHERS = "launchers";
     private static final String KEY_PACKAGES = "packages";
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 68ccbdf..c9ad49a 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -555,7 +555,7 @@
     public List<UserInfo> getProfiles(int userId, boolean enabledOnly) {
         boolean returnFullInfo = true;
         if (userId != UserHandle.getCallingUserId()) {
-            checkManageUsersPermission("getting profiles related to user " + userId);
+            checkManageOrCreateUsersPermission("getting profiles related to user " + userId);
         } else {
             returnFullInfo = hasManageUsersPermission();
         }
diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
index 772c64e..3df13a9 100644
--- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
+++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
@@ -26,11 +26,9 @@
 import android.app.ActivityManagerNative;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.service.persistentdata.PersistentDataBlockManager;
@@ -188,8 +186,7 @@
         serializer.endTag(null, tag);
     }
 
-    public static void readRestrictions(XmlPullParser parser, Bundle restrictions)
-            throws IOException {
+    public static void readRestrictions(XmlPullParser parser, Bundle restrictions) {
         for (String key : USER_RESTRICTIONS) {
             final String value = parser.getAttributeValue(null, key);
             if (value != null) {
@@ -437,7 +434,13 @@
                     if (newValue) {
                         PersistentDataBlockManager manager = (PersistentDataBlockManager) context
                                 .getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
-                        if (manager != null && manager.getOemUnlockEnabled()) {
+                        if (manager != null
+                                && manager.getOemUnlockEnabled()
+                                && manager.getFlashLockState()
+                                        != PersistentDataBlockManager.FLASH_LOCK_UNLOCKED) {
+                            // Only disable OEM unlock if the bootloader is locked. If it's already
+                            // unlocked, setting the OEM unlock enabled flag to false has no effect
+                            // (the bootloader would remain unlocked).
                             manager.setOemUnlockEnabled(false);
                         }
                     }
diff --git a/services/core/java/com/android/server/policy/GlobalActions.java b/services/core/java/com/android/server/policy/GlobalActions.java
index 6fc15f0..bb91f76 100644
--- a/services/core/java/com/android/server/policy/GlobalActions.java
+++ b/services/core/java/com/android/server/policy/GlobalActions.java
@@ -103,6 +103,7 @@
     private static final String GLOBAL_ACTION_KEY_LOCKDOWN = "lockdown";
     private static final String GLOBAL_ACTION_KEY_VOICEASSIST = "voiceassist";
     private static final String GLOBAL_ACTION_KEY_ASSIST = "assist";
+    private static final String GLOBAL_ACTION_KEY_RESTART = "restart";
 
     private final Context mContext;
     private final WindowManagerFuncs mWindowManagerFuncs;
@@ -298,6 +299,8 @@
                 mItems.add(getVoiceAssistAction());
             } else if (GLOBAL_ACTION_KEY_ASSIST.equals(actionKey)) {
                 mItems.add(getAssistAction());
+            } else if (GLOBAL_ACTION_KEY_RESTART.equals(actionKey)) {
+                mItems.add(new RestartAction());
             } else {
                 Log.e(TAG, "Invalid global action key " + actionKey);
             }
@@ -369,6 +372,38 @@
         }
     }
 
+    private final class RestartAction extends SinglePressAction implements LongPressAction {
+        private RestartAction() {
+            super(R.drawable.ic_restart, R.string.global_action_restart);
+        }
+
+        @Override
+        public boolean onLongPress() {
+            UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+            if (!um.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {
+                mWindowManagerFuncs.rebootSafeMode(true);
+                return true;
+            }
+            return false;
+        }
+
+        @Override
+        public boolean showDuringKeyguard() {
+            return true;
+        }
+
+        @Override
+        public boolean showBeforeProvisioning() {
+            return true;
+        }
+
+        @Override
+        public void onPress() {
+            mWindowManagerFuncs.reboot(false /* confirm */);
+        }
+    }
+
+
     private class BugReportAction extends SinglePressAction implements LongPressAction {
 
         public BugReportAction() {
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 09c2b27..1c303dc 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -200,6 +200,11 @@
     static final int MULTI_PRESS_POWER_THEATER_MODE = 1;
     static final int MULTI_PRESS_POWER_BRIGHTNESS_BOOST = 2;
 
+    // Number of presses needed before we induce panic press behavior on the back button
+    static final int PANIC_PRESS_BACK_COUNT = 4;
+    static final int PANIC_PRESS_BACK_NOTHING = 0;
+    static final int PANIC_PRESS_BACK_HOME = 1;
+
     // These need to match the documentation/constant in
     // core/res/res/values/config.xml
     static final int LONG_PRESS_HOME_NOTHING = 0;
@@ -406,6 +411,7 @@
     volatile boolean mBackKeyHandled;
     volatile boolean mBeganFromNonInteractive;
     volatile int mPowerKeyPressCounter;
+    volatile int mBackKeyPressCounter;
     volatile boolean mEndCallKeyHandled;
     volatile boolean mCameraGestureTriggeredDuringGoingToSleep;
     volatile boolean mGoingToSleep;
@@ -464,6 +470,7 @@
     int mDoublePressOnPowerBehavior;
     int mTriplePressOnPowerBehavior;
     int mLongPressOnBackBehavior;
+    int mPanicPressOnBackBehavior;
     int mShortPressOnSleepBehavior;
     int mShortPressWindowBehavior;
     boolean mAwake;
@@ -726,6 +733,7 @@
     private static final int MSG_SHOW_TV_PICTURE_IN_PICTURE_MENU = 17;
     private static final int MSG_BACK_LONG_PRESS = 18;
     private static final int MSG_DISPOSE_INPUT_CONSUMER = 19;
+    private static final int MSG_BACK_DELAYED_PRESS = 20;
 
     private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0;
     private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1;
@@ -792,10 +800,15 @@
                     break;
                 case MSG_BACK_LONG_PRESS:
                     backLongPress();
+                    finishBackKeyPress();
                     break;
                 case MSG_DISPOSE_INPUT_CONSUMER:
                     disposeInputConsumer((InputConsumer) msg.obj);
                     break;
+                case MSG_BACK_DELAYED_PRESS:
+                    backMultiPressAction((Long) msg.obj, msg.arg1);
+                    finishBackKeyPress();
+                    break;
             }
         }
     }
@@ -1010,6 +1023,52 @@
         }
     }
 
+    private void interceptBackKeyDown() {
+        // Reset back key state for long press
+        mBackKeyHandled = false;
+
+        // Cancel multi-press detection timeout.
+        if (hasPanicPressOnBackBehavior()) {
+            if (mBackKeyPressCounter != 0
+                    && mBackKeyPressCounter < PANIC_PRESS_BACK_COUNT) {
+                mHandler.removeMessages(MSG_BACK_DELAYED_PRESS);
+            }
+        }
+
+        if (hasLongPressOnBackBehavior()) {
+            Message msg = mHandler.obtainMessage(MSG_BACK_LONG_PRESS);
+            msg.setAsynchronous(true);
+            mHandler.sendMessageDelayed(msg,
+                    ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout());
+        }
+    }
+
+    // returns true if the key was handled and should not be passed to the user
+    private boolean interceptBackKeyUp(KeyEvent event) {
+        // Cache handled state
+        boolean handled = mBackKeyHandled;
+
+        if (hasPanicPressOnBackBehavior()) {
+            // Check for back key panic press
+            ++mBackKeyPressCounter;
+
+            final long eventTime = event.getDownTime();
+
+            if (mBackKeyPressCounter <= PANIC_PRESS_BACK_COUNT) {
+                // This could be a multi-press.  Wait a little bit longer to confirm.
+                Message msg = mHandler.obtainMessage(MSG_BACK_DELAYED_PRESS,
+                        mBackKeyPressCounter, 0, eventTime);
+                msg.setAsynchronous(true);
+                mHandler.sendMessageDelayed(msg, ViewConfiguration.getMultiPressTimeout());
+            }
+        }
+
+        // Reset back long press state
+        cancelPendingBackKeyAction();
+
+        return handled;
+    }
+
     private void interceptPowerKeyDown(KeyEvent event, boolean interactive) {
         // Hold a wake lock until the power key is released.
         if (!mPowerKeyWakeLock.isHeld()) {
@@ -1140,6 +1199,10 @@
         }
     }
 
+    private void finishBackKeyPress() {
+        mBackKeyPressCounter = 0;
+    }
+
     private void cancelPendingPowerKeyAction() {
         if (!mPowerKeyHandled) {
             mPowerKeyHandled = true;
@@ -1154,6 +1217,18 @@
         }
     }
 
+    private void backMultiPressAction(long eventTime, int count) {
+        if (count >= PANIC_PRESS_BACK_COUNT) {
+            switch (mPanicPressOnBackBehavior) {
+                case PANIC_PRESS_BACK_NOTHING:
+                    break;
+                case PANIC_PRESS_BACK_HOME:
+                    launchHomeFromHotKey();
+                    break;
+            }
+        }
+    }
+
     private void powerPress(long eventTime, boolean interactive, int count) {
         if (mScreenOnEarly && !mScreenOnFully) {
             Slog.i(TAG, "Suppressed redundant power key press while "
@@ -1312,6 +1387,10 @@
         return mLongPressOnBackBehavior != LONG_PRESS_BACK_NOTHING;
     }
 
+    private boolean hasPanicPressOnBackBehavior() {
+        return mPanicPressOnBackBehavior != PANIC_PRESS_BACK_NOTHING;
+    }
+
     private void interceptScreenshotChord() {
         if (mScreenshotChordEnabled
                 && mScreenshotChordVolumeDownKeyTriggered && mScreenshotChordPowerKeyTriggered
@@ -1639,6 +1718,8 @@
 
         mLongPressOnBackBehavior = mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_longPressOnBackBehavior);
+        mPanicPressOnBackBehavior = mContext.getResources().getInteger(
+                com.android.internal.R.integer.config_backPanicBehavior);
 
         mShortPressOnPowerBehavior = mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_shortPressOnPowerBehavior);
@@ -2229,6 +2310,9 @@
                     attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
                 }
                 break;
+            case TYPE_SCREENSHOT:
+                attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+                break;
         }
 
         if (attrs.type != TYPE_STATUS_BAR) {
@@ -2888,6 +2972,7 @@
             }
             switch (animationHint) {
                 case ROTATION_ANIMATION_CROSSFADE:
+                case ROTATION_ANIMATION_SEAMLESS: // Crossfade is fallback for seamless.
                     anim[0] = R.anim.rotation_animation_xfade_exit;
                     anim[1] = R.anim.rotation_animation_enter;
                     break;
@@ -3560,6 +3645,14 @@
         }
     }
 
+    @Override
+    public boolean canShowDismissingWindowWhileLockedLw() {
+        // If the keyguard is trusted, it will unlock without a challange. Therefore, windows with
+        // FLAG_DISMISS_KEYGUARD don't need to be force hidden, as they will unlock the phone right
+        // away anyways.
+        return mKeyguardDelegate != null && mKeyguardDelegate.isTrusted();
+    }
+
     private void launchAssistLongPressAction() {
         performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
         sendCloseSystemWindows(SYSTEM_DIALOG_REASON_ASSIST);
@@ -5256,7 +5349,10 @@
                 }
             } else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) {
                 mKeyguardHidden = false;
-                if (setKeyguardOccludedLw(false)) {
+                final boolean trusted = mKeyguardDelegate.isTrusted();
+                if (trusted) {
+                    // No need to un-occlude keyguard - we'll dimiss it right away anyways.
+                } else if (setKeyguardOccludedLw(false)) {
                     changes |= FINISH_LAYOUT_REDO_LAYOUT
                             | FINISH_LAYOUT_REDO_CONFIG
                             | FINISH_LAYOUT_REDO_WALLPAPER;
@@ -5266,7 +5362,7 @@
                     mHandler.post(new Runnable() {
                         @Override
                         public void run() {
-                            mKeyguardDelegate.dismiss();
+                            mKeyguardDelegate.dismiss(trusted /* allowWhileOccluded */);
                         }
                     });
                 }
@@ -5305,6 +5401,9 @@
             mKeyguardOccluded = false;
             mKeyguardDelegate.setOccluded(false);
             mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
+            if (!mKeyguardDelegate.hasLockscreenWallpaper()) {
+                mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
+            }
             return true;
         } else if (!wasOccluded && isOccluded && showing) {
             mKeyguardOccluded = true;
@@ -5607,20 +5706,11 @@
         switch (keyCode) {
             case KeyEvent.KEYCODE_BACK: {
                 if (down) {
-                    mBackKeyHandled = false;
-                    if (hasLongPressOnBackBehavior()) {
-                        Message msg = mHandler.obtainMessage(MSG_BACK_LONG_PRESS);
-                        msg.setAsynchronous(true);
-                        mHandler.sendMessageDelayed(msg,
-                                ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout());
-                    }
+                    interceptBackKeyDown();
                 } else {
-                    boolean handled = mBackKeyHandled;
+                    boolean handled = interceptBackKeyUp(event);
 
-                    // Reset back key state
-                    cancelPendingBackKeyAction();
-
-                    // Don't pass back press to app if we've already handled it
+                    // Don't pass back press to app if we've already handled it via long press
                     if (handled) {
                         result &= ~ACTION_PASS_TO_USER;
                     }
@@ -6511,7 +6601,7 @@
                 @Override
                 public void run() {
                     // ask the keyguard to prompt the user to authenticate if necessary
-                    mKeyguardDelegate.dismiss();
+                    mKeyguardDelegate.dismiss(false /* allowWhileOccluded */);
                 }
             });
         }
@@ -7305,8 +7395,8 @@
     }
 
     private boolean areSystemNavigationKeysEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 1) == 1;
+        return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0, UserHandle.USER_CURRENT) == 1;
     }
 
     @Override
@@ -7737,14 +7827,15 @@
             return false;
         }
 
+        final WindowState w = mTopFullscreenOpaqueWindowState;
+
         // We only enable seamless rotation if the top window has requested
         // it and is in the fullscreen opaque state. Seamless rotation
         // requires freezing various Surface states and won't work well
         // with animations, so we disable it in the animation case for now.
-        if (mTopFullscreenOpaqueWindowState != null && mTopIsFullscreen &&
-                !mTopFullscreenOpaqueWindowState.isAnimatingLw() &&
-                mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation ==
-                ROTATION_ANIMATION_JUMPCUT) {
+        if (w != null && !w.isAnimatingLw() &&
+                ((w.getAttrs().rotationAnimation == ROTATION_ANIMATION_JUMPCUT) ||
+                        (w.getAttrs().rotationAnimation == ROTATION_ANIMATION_SEAMLESS))) {
             return true;
         }
         return false;
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
index 7e27558..4fce49e 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
@@ -59,6 +59,7 @@
             showingAndNotOccluded = true;
             secure = true;
             deviceHasKeyguard = true;
+            currentUser = UserHandle.USER_NULL;
         }
         boolean showing;
         boolean showingAndNotOccluded;
@@ -157,6 +158,10 @@
             if (mKeyguardState.systemIsReady) {
                 // If the system is ready, it means keyguard crashed and restarted.
                 mKeyguardService.onSystemReady();
+                if (mKeyguardState.currentUser != UserHandle.USER_NULL) {
+                    // There has been a user switch earlier
+                    mKeyguardService.setCurrentUser(mKeyguardState.currentUser);
+                }
                 // This is used to hide the scrim once keyguard displays.
                 if (mKeyguardState.interactiveState == INTERACTIVE_STATE_AWAKE) {
                     mKeyguardService.onStartedWakingUp();
@@ -194,6 +199,20 @@
         return mKeyguardState.showing;
     }
 
+    public boolean isTrusted() {
+        if (mKeyguardService != null) {
+            return mKeyguardService.isTrusted();
+        }
+        return false;
+    }
+
+    public boolean hasLockscreenWallpaper() {
+        if (mKeyguardService != null) {
+            return mKeyguardService.hasLockscreenWallpaper();
+        }
+        return false;
+    }
+
     public boolean isInputRestricted() {
         if (mKeyguardService != null) {
             mKeyguardState.inputRestricted = mKeyguardService.isInputRestricted();
@@ -215,14 +234,15 @@
 
     public void setOccluded(boolean isOccluded) {
         if (mKeyguardService != null) {
+            if (DEBUG) Log.v(TAG, "setOccluded(" + isOccluded + ")");
             mKeyguardService.setOccluded(isOccluded);
         }
         mKeyguardState.occluded = isOccluded;
     }
 
-    public void dismiss() {
+    public void dismiss(boolean allowWhileOccluded) {
         if (mKeyguardService != null) {
-            mKeyguardService.dismiss();
+            mKeyguardService.dismiss(allowWhileOccluded);
         }
     }
 
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
index 57e8857..55652fe 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java
@@ -81,9 +81,9 @@
     }
 
     @Override // Binder interface
-    public void dismiss() {
+    public void dismiss(boolean allowWhileOccluded) {
         try {
-            mService.dismiss();
+            mService.dismiss(allowWhileOccluded);
         } catch (RemoteException e) {
             Slog.w(TAG , "Remote Exception", e);
         }
@@ -234,6 +234,14 @@
         return mKeyguardStateMonitor.isShowing();
     }
 
+    public boolean isTrusted() {
+        return mKeyguardStateMonitor.isTrusted();
+    }
+
+    public boolean hasLockscreenWallpaper() {
+        return mKeyguardStateMonitor.hasLockscreenWallpaper();
+    }
+
     public boolean isSecure(int userId) {
         return mKeyguardStateMonitor.isSecure(userId);
     }
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
index 138f068..08eaaa9 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java
@@ -43,6 +43,8 @@
     private volatile boolean mIsShowing = true;
     private volatile boolean mSimSecure = true;
     private volatile boolean mInputRestricted = true;
+    private volatile boolean mTrusted = false;
+    private volatile boolean mHasLockscreenWallpaper = false;
 
     private int mCurrentUserId;
 
@@ -70,6 +72,14 @@
         return mInputRestricted;
     }
 
+    public boolean isTrusted() {
+        return mTrusted;
+    }
+
+    public boolean hasLockscreenWallpaper() {
+        return mHasLockscreenWallpaper;
+    }
+
     @Override // Binder interface
     public void onShowingStateChanged(boolean showing) {
         mIsShowing = showing;
@@ -93,12 +103,23 @@
         mInputRestricted = inputRestricted;
     }
 
+    @Override // Binder interface
+    public void onTrustedChanged(boolean trusted) {
+        mTrusted = trusted;
+    }
+
+    @Override // Binder interface
+    public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) {
+        mHasLockscreenWallpaper = hasLockscreenWallpaper;
+    }
+
     public void dump(String prefix, PrintWriter pw) {
         pw.println(prefix + TAG);
         prefix += "  ";
         pw.println(prefix + "mIsShowing=" + mIsShowing);
         pw.println(prefix + "mSimSecure=" + mSimSecure);
         pw.println(prefix + "mInputRestricted=" + mInputRestricted);
+        pw.println(prefix + "mTrusted=" + mTrusted);
         pw.println(prefix + "mCurrentUserId=" + mCurrentUserId);
     }
 }
\ No newline at end of file
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 2215cbb..2824e6e 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -2085,7 +2085,12 @@
             float screenAutoBrightnessAdjustment = 0.0f;
             boolean autoBrightness = (mScreenBrightnessModeSetting ==
                     Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
-            if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) {
+            if (!mBootCompleted) {
+                // Keep the brightness steady during boot. This requires the
+                // bootloader brightness and the default brightness to be identical.
+                autoBrightness = false;
+                brightnessSetByUser = false;
+            } else if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) {
                 screenBrightness = mScreenBrightnessOverrideFromWindowManager;
                 autoBrightness = false;
                 brightnessSetByUser = false;
diff --git a/services/core/java/com/android/server/trust/TrustArchive.java b/services/core/java/com/android/server/trust/TrustArchive.java
index fd63d48..aaac297 100644
--- a/services/core/java/com/android/server/trust/TrustArchive.java
+++ b/services/core/java/com/android/server/trust/TrustArchive.java
@@ -37,6 +37,7 @@
     private static final int TYPE_AGENT_CONNECTED = 4;
     private static final int TYPE_AGENT_STOPPED = 5;
     private static final int TYPE_MANAGING_TRUST = 6;
+    private static final int TYPE_POLICY_CHANGED = 7;
 
     private static final int HISTORY_LIMIT = 200;
 
@@ -99,6 +100,10 @@
         addEvent(new Event(TYPE_MANAGING_TRUST, userId, agent, null, 0, 0, managing));
     }
 
+    public void logDevicePolicyChanged() {
+        addEvent(new Event(TYPE_POLICY_CHANGED, UserHandle.USER_ALL, null, null, 0, 0, false));
+    }
+
     private void addEvent(Event e) {
         if (mEvents.size() >= HISTORY_LIMIT) {
             mEvents.removeFirst();
@@ -112,7 +117,8 @@
         Iterator<Event> iter = mEvents.descendingIterator();
         while (iter.hasNext() && count < limit) {
             Event ev = iter.next();
-            if (userId != UserHandle.USER_ALL && userId != ev.userId) {
+            if (userId != UserHandle.USER_ALL && userId != ev.userId
+                    && ev.userId != UserHandle.USER_ALL) {
                 continue;
             }
 
@@ -122,11 +128,13 @@
             if (userId == UserHandle.USER_ALL) {
                 writer.print("user="); writer.print(ev.userId); writer.print(", ");
             }
-            writer.print("agent=");
-            if (duplicateSimpleNames) {
-                writer.print(ev.agent.flattenToShortString());
-            } else {
-                writer.print(getSimpleName(ev.agent));
+            if (ev.agent != null) {
+                writer.print("agent=");
+                if (duplicateSimpleNames) {
+                    writer.print(ev.agent.flattenToShortString());
+                } else {
+                    writer.print(getSimpleName(ev.agent));
+                }
             }
             switch (ev.type) {
                 case TYPE_GRANT_TRUST:
@@ -181,6 +189,8 @@
                 return "AgentStopped";
             case TYPE_MANAGING_TRUST:
                 return "ManagingTrust";
+            case TYPE_POLICY_CHANGED:
+                return "DevicePolicyChanged";
             default:
                 return "Unknown(" + type + ")";
         }
diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java
index c1868a4..d9c4254 100644
--- a/services/core/java/com/android/server/trust/TrustManagerService.java
+++ b/services/core/java/com/android/server/trust/TrustManagerService.java
@@ -399,12 +399,17 @@
     }
 
     void updateDevicePolicyFeatures() {
+        boolean changed = false;
         for (int i = 0; i < mActiveAgents.size(); i++) {
             AgentInfo info = mActiveAgents.valueAt(i);
             if (info.agent.isConnected()) {
                 info.agent.updateDevicePolicyFeatures();
+                changed = true;
             }
         }
+        if (changed) {
+            mArchive.logDevicePolicyChanged();
+        }
     }
 
     private void removeAgentsOfPackage(String packageName) {
diff --git a/services/core/java/com/android/server/twilight/TwilightListener.java b/services/core/java/com/android/server/twilight/TwilightListener.java
index 29ead44..58dcef6 100644
--- a/services/core/java/com/android/server/twilight/TwilightListener.java
+++ b/services/core/java/com/android/server/twilight/TwilightListener.java
@@ -16,6 +16,14 @@
 
 package com.android.server.twilight;
 
+import android.annotation.Nullable;
+
+/**
+ * Callback for when the twilight state has changed.
+ */
 public interface TwilightListener {
-    void onTwilightStateChanged();
+    /**
+     * Called when the twilight state has changed.
+     */
+    void onTwilightStateChanged(@Nullable TwilightState state);
 }
\ 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
index 56137a4..5ef9417 100644
--- a/services/core/java/com/android/server/twilight/TwilightManager.java
+++ b/services/core/java/com/android/server/twilight/TwilightManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2016 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.
@@ -16,10 +16,30 @@
 
 package com.android.server.twilight;
 
+import android.annotation.NonNull;
 import android.os.Handler;
 
+/**
+ * This class provides sunrise/sunset information based on the device's current location.
+ */
 public interface TwilightManager {
-    void registerListener(TwilightListener listener, Handler handler);
-    void unregisterListener(TwilightListener listener);
-    TwilightState getCurrentState();
+    /**
+     * Register a listener to be notified whenever the twilight state changes.
+     *
+     * @param listener the {@link TwilightListener} to be notified
+     * @param handler the {@link Handler} to use to notify the listener
+     */
+    void registerListener(@NonNull TwilightListener listener, @NonNull Handler handler);
+
+    /**
+     * Unregisters a previously registered listener.
+     *
+     * @param listener the {@link TwilightListener} to be unregistered
+     */
+    void unregisterListener(@NonNull TwilightListener listener);
+
+    /**
+     * Returns the last {@link TwilightState}, or {@code null} if not available.
+     */
+    TwilightState getLastTwilightState();
 }
diff --git a/services/core/java/com/android/server/twilight/TwilightService.java b/services/core/java/com/android/server/twilight/TwilightService.java
index ee7a4a0..acd6587 100644
--- a/services/core/java/com/android/server/twilight/TwilightService.java
+++ b/services/core/java/com/android/server/twilight/TwilightService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2016 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.
@@ -16,31 +16,27 @@
 
 package com.android.server.twilight;
 
+import android.annotation.NonNull;
 import android.app.AlarmManager;
-import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.location.Criteria;
+import android.icu.impl.CalendarAstronomer;
+import android.icu.util.Calendar;
 import android.location.Location;
 import android.location.LocationListener;
 import android.location.LocationManager;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Looper;
 import android.os.Message;
-import android.os.SystemClock;
-import android.text.format.DateUtils;
-import android.text.format.Time;
+import android.util.ArrayMap;
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.server.SystemService;
-import com.android.server.TwilightCalculator;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Objects;
 
 /**
@@ -49,476 +45,261 @@
  * Used by the UI mode manager and other components to adjust night mode
  * effects based on sunrise and sunset.
  */
-public final class TwilightService extends SystemService {
+public final class TwilightService extends SystemService
+        implements AlarmManager.OnAlarmListener, Handler.Callback, LocationListener {
 
     private static final String TAG = "TwilightService";
     private static final boolean DEBUG = false;
 
-    private static final String ACTION_UPDATE_TWILIGHT_STATE =
-            "com.android.server.action.UPDATE_TWILIGHT_STATE";
+    private static final int MSG_START_LISTENING = 1;
+    private static final int MSG_STOP_LISTENING = 2;
 
-    /**
-     * The amount of time after or before sunrise over which to start adjusting twilight affected
-     * things. We want the change to happen gradually so that it is below the threshold of
-     * perceptibility and so that the adjustment has and so that the adjustment has
-     * maximum effect well after dusk.
-     */
-    private static final long TWILIGHT_ADJUSTMENT_TIME = DateUtils.HOUR_IN_MILLIS * 2;
+    @GuardedBy("mListeners")
+    private final ArrayMap<TwilightListener, Handler> mListeners = new ArrayMap<>();
 
-    private final Object mLock = new Object();
-
-    @GuardedBy("mLock")
-    private final List<TwilightListenerRecord> mListeners = new ArrayList<>();
+    private final Handler mHandler;
 
     private AlarmManager mAlarmManager;
     private LocationManager mLocationManager;
-    private LocationHandler mLocationHandler;
 
-    @GuardedBy("mLock")
-    private TwilightState mTwilightState;
+    private boolean mBootCompleted;
+    private boolean mHasListeners;
+
+    private BroadcastReceiver mTimeChangedReceiver;
+    private Location mLastLocation;
+
+    @GuardedBy("mListeners")
+    private TwilightState mLastTwilightState;
 
     public TwilightService(Context context) {
         super(context);
+        mHandler = new Handler(Looper.getMainLooper(), this);
     }
 
     @Override
     public void onStart() {
-        mAlarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
-        mLocationManager = (LocationManager) getContext().getSystemService(
-                Context.LOCATION_SERVICE);
-        mLocationHandler = new LocationHandler();
+        publishLocalService(TwilightManager.class, new TwilightManager() {
+            @Override
+            public void registerListener(@NonNull TwilightListener listener,
+                    @NonNull Handler handler) {
+                synchronized (mListeners) {
+                    final boolean wasEmpty = mListeners.isEmpty();
+                    mListeners.put(listener, handler);
 
-        IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-        filter.addAction(Intent.ACTION_TIME_CHANGED);
-        filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
-        filter.addAction(Intent.ACTION_USER_SWITCHED);
-        getContext().registerReceiver(mReceiver, filter);
+                    if (wasEmpty && !mListeners.isEmpty()) {
+                        mHandler.sendEmptyMessage(MSG_START_LISTENING);
+                    }
+                }
+            }
 
-        publishLocalService(TwilightManager.class, mService);
+            @Override
+            public void unregisterListener(@NonNull TwilightListener listener) {
+                synchronized (mListeners) {
+                    final boolean wasEmpty = mListeners.isEmpty();
+                    mListeners.remove(listener);
+
+                    if (!wasEmpty && mListeners.isEmpty()) {
+                        mHandler.sendEmptyMessage(MSG_STOP_LISTENING);
+                    }
+                }
+            }
+
+            @Override
+            public TwilightState getLastTwilightState() {
+                synchronized (mListeners) {
+                    return mLastTwilightState;
+                }
+            }
+        });
     }
 
     @Override
     public void onBootPhase(int phase) {
         if (phase == PHASE_BOOT_COMPLETED) {
-            // Initialize the current twilight state.
-            mLocationHandler.requestTwilightUpdate();
-        }
-    }
+            final Context c = getContext();
+            mAlarmManager = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
+            mLocationManager = (LocationManager) c.getSystemService(Context.LOCATION_SERVICE);
 
-    private void setTwilightState(TwilightState state) {
-        synchronized (mLock) {
-            if (!Objects.equals(mTwilightState, state)) {
-                if (DEBUG) {
-                    Slog.d(TAG, "Twilight state changed: " + state);
-                }
-
-                mTwilightState = state;
-
-                for (TwilightListenerRecord mListener : mListeners) {
-                    mListener.postUpdate();
-                }
+            mBootCompleted = true;
+            if (mHasListeners) {
+                startListening();
             }
         }
     }
 
-    private static class TwilightListenerRecord implements Runnable {
-
-        private final TwilightListener mListener;
-        private final Handler mHandler;
-
-        public TwilightListenerRecord(TwilightListener listener, Handler handler) {
-            mListener = listener;
-            mHandler = handler;
+    @Override
+    public boolean handleMessage(Message msg) {
+        switch (msg.what) {
+            case MSG_START_LISTENING:
+                if (!mHasListeners) {
+                    mHasListeners = true;
+                    if (mBootCompleted) {
+                        startListening();
+                    }
+                }
+                return true;
+            case MSG_STOP_LISTENING:
+                if (mHasListeners) {
+                    mHasListeners = false;
+                    if (mBootCompleted) {
+                        stopListening();
+                    }
+                }
+                return true;
         }
-
-        public void postUpdate() {
-            mHandler.post(this);
-        }
-
-        @Override
-        public void run() {
-            mListener.onTwilightStateChanged();
-        }
+        return false;
     }
 
-    private final TwilightManager mService = new TwilightManager() {
-        @Override
-        public TwilightState getCurrentState() {
-            synchronized (mLock) {
-                return mTwilightState;
+    private void startListening() {
+        if (DEBUG) Slog.d(TAG, "startListening");
+
+        // Start listening for location updates (default: low power, max 1h, min 10m).
+        mLocationManager.requestLocationUpdates(
+                null /* default */, this, Looper.getMainLooper());
+
+        // Request the device's location immediately if a previous location isn't available.
+        if (mLocationManager.getLastLocation() == null) {
+            if (mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
+                mLocationManager.requestSingleUpdate(
+                        LocationManager.NETWORK_PROVIDER, this, Looper.getMainLooper());
+            } else if (mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
+                mLocationManager.requestSingleUpdate(
+                        LocationManager.GPS_PROVIDER, this, Looper.getMainLooper());
             }
         }
 
-        @Override
-        public void registerListener(TwilightListener listener, Handler handler) {
-            synchronized (mLock) {
-                mListeners.add(new TwilightListenerRecord(listener, handler));
-
-                if (mListeners.size() == 1) {
-                    mLocationHandler.enableLocationUpdates();
-                }
-            }
-        }
-
-        @Override
-        public void unregisterListener(TwilightListener listener) {
-            synchronized (mLock) {
-                for (int i = 0; i < mListeners.size(); i++) {
-                    if (mListeners.get(i).mListener == listener) {
-                        mListeners.remove(i);
-                    }
-                }
-
-                if (mListeners.size() == 0) {
-                    mLocationHandler.disableLocationUpdates();
-                }
-            }
-        }
-    };
-
-    // The user has moved if the accuracy circles of the two locations don't overlap.
-    private static boolean hasMoved(Location from, Location to) {
-        if (to == null) {
-            return false;
-        }
-
-        if (from == null) {
-            return true;
-        }
-
-        // if new location is older than the current one, the device hasn't moved.
-        if (to.getElapsedRealtimeNanos() < from.getElapsedRealtimeNanos()) {
-            return false;
-        }
-
-        // Get the distance between the two points.
-        float distance = from.distanceTo(to);
-
-        // Get the total accuracy radius for both locations.
-        float totalAccuracy = from.getAccuracy() + to.getAccuracy();
-
-        // If the distance is greater than the combined accuracy of the two
-        // points then they can't overlap and hence the user has moved.
-        return distance >= totalAccuracy;
-    }
-
-    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;
-        private static final int MSG_PROCESS_NEW_LOCATION = 3;
-        private static final int MSG_DO_TWILIGHT_UPDATE = 4;
-        private static final int MSG_DISABLE_LOCATION_UPDATES = 5;
-
-        private static final long LOCATION_UPDATE_MS = 24 * DateUtils.HOUR_IN_MILLIS;
-        private static final long MIN_LOCATION_UPDATE_MS = 30 * DateUtils.MINUTE_IN_MILLIS;
-        private static final float LOCATION_UPDATE_DISTANCE_METER = 1000 * 20;
-        private static final long LOCATION_UPDATE_ENABLE_INTERVAL_MIN = 5000;
-        private static final long LOCATION_UPDATE_ENABLE_INTERVAL_MAX =
-                15 * DateUtils.MINUTE_IN_MILLIS;
-        private static final double FACTOR_GMT_OFFSET_LONGITUDE =
-                1000.0 * 360.0 / DateUtils.DAY_IN_MILLIS;
-
-        private final TwilightCalculator mTwilightCalculator = new TwilightCalculator();
-
-        private boolean mPassiveListenerEnabled;
-        private boolean mNetworkListenerEnabled;
-        private boolean mDidFirstInit;
-        private long mLastNetworkRegisterTime = -MIN_LOCATION_UPDATE_MS;
-        private long mLastUpdateInterval;
-        private Location mLocation;
-
-        public void processNewLocation(Location location) {
-            Message msg = obtainMessage(MSG_PROCESS_NEW_LOCATION, location);
-            sendMessage(msg);
-        }
-
-        public void enableLocationUpdates() {
-            sendEmptyMessage(MSG_ENABLE_LOCATION_UPDATES);
-        }
-
-        public void disableLocationUpdates() {
-            sendEmptyMessage(MSG_DISABLE_LOCATION_UPDATES);
-        }
-
-        public void requestLocationUpdate() {
-            sendEmptyMessage(MSG_GET_NEW_LOCATION_UPDATE);
-        }
-
-        public void requestTwilightUpdate() {
-            sendEmptyMessage(MSG_DO_TWILIGHT_UPDATE);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_PROCESS_NEW_LOCATION: {
-                    final Location location = (Location) msg.obj;
-                    final boolean hasMoved = hasMoved(mLocation, location);
-                    final boolean hasBetterAccuracy = mLocation == null
-                            || location.getAccuracy() < mLocation.getAccuracy();
-                    if (DEBUG) {
-                        Slog.d(TAG, "Processing new location: " + location
-                                + ", hasMoved=" + hasMoved
-                                + ", hasBetterAccuracy=" + hasBetterAccuracy);
-                    }
-                    if (hasMoved || hasBetterAccuracy) {
-                        setLocation(location);
-                    }
-                    break;
-                }
-
-                case MSG_GET_NEW_LOCATION_UPDATE:
-                    if (!mNetworkListenerEnabled) {
-                        // Don't do anything -- we are still trying to get a
-                        // location.
-                        return;
-                    }
-                    if ((mLastNetworkRegisterTime + MIN_LOCATION_UPDATE_MS) >=
-                            SystemClock.elapsedRealtime()) {
-                        // Don't do anything -- it hasn't been long enough
-                        // since we last requested an update.
-                        return;
-                    }
-
-                    // Unregister the current location monitor, so we can
-                    // register a new one for it to get an immediate update.
-                    mNetworkListenerEnabled = false;
-                    mLocationManager.removeUpdates(mEmptyLocationListener);
-
-                    // Fall through to re-register listener.
-                case MSG_ENABLE_LOCATION_UPDATES:
-                    // enable network provider to receive at least location updates for a given
-                    // distance.
-                    boolean networkLocationEnabled;
-                    try {
-                        networkLocationEnabled = mLocationManager.isProviderEnabled(
-                                LocationManager.NETWORK_PROVIDER);
-                    } catch (Exception e) {
-                        // we may get IllegalArgumentException if network location provider
-                        // does not exist or is not yet installed.
-                        networkLocationEnabled = false;
-                    }
-                    if (!mNetworkListenerEnabled && networkLocationEnabled) {
-                        mNetworkListenerEnabled = true;
-                        mLastNetworkRegisterTime = SystemClock.elapsedRealtime();
-                        mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
-                                LOCATION_UPDATE_MS, 0, mEmptyLocationListener);
-
-                        if (!mDidFirstInit) {
-                            mDidFirstInit = true;
-                            if (mLocation == null) {
-                                retrieveLocation();
-                            }
-                        }
-                    }
-
-                    // enable passive provider to receive updates from location fixes (gps
-                    // and network).
-                    boolean passiveLocationEnabled;
-                    try {
-                        passiveLocationEnabled = mLocationManager.isProviderEnabled(
-                                LocationManager.PASSIVE_PROVIDER);
-                    } catch (Exception e) {
-                        // we may get IllegalArgumentException if passive location provider
-                        // does not exist or is not yet installed.
-                        passiveLocationEnabled = false;
-                    }
-
-                    if (!mPassiveListenerEnabled && passiveLocationEnabled) {
-                        mPassiveListenerEnabled = true;
-                        mLocationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER,
-                                0, LOCATION_UPDATE_DISTANCE_METER, mLocationListener);
-                    }
-
-                    if (!(mNetworkListenerEnabled && mPassiveListenerEnabled)) {
-                        mLastUpdateInterval *= 1.5;
-                        if (mLastUpdateInterval == 0) {
-                            mLastUpdateInterval = LOCATION_UPDATE_ENABLE_INTERVAL_MIN;
-                        } else if (mLastUpdateInterval > LOCATION_UPDATE_ENABLE_INTERVAL_MAX) {
-                            mLastUpdateInterval = LOCATION_UPDATE_ENABLE_INTERVAL_MAX;
-                        }
-                        sendEmptyMessageDelayed(MSG_ENABLE_LOCATION_UPDATES, mLastUpdateInterval);
-                    }
-                    break;
-
-                case MSG_DISABLE_LOCATION_UPDATES:
-                    mLocationManager.removeUpdates(mLocationListener);
-                    removeMessages(MSG_ENABLE_LOCATION_UPDATES);
-                    break;
-
-                case MSG_DO_TWILIGHT_UPDATE:
+        // Update whenever the system clock is changed.
+        if (mTimeChangedReceiver == null) {
+            mTimeChangedReceiver = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    if (DEBUG) Slog.d(TAG, "onReceive: " + intent);
                     updateTwilightState();
-                    break;
+                }
+            };
+
+            final IntentFilter intentFilter = new IntentFilter(Intent.ACTION_TIME_CHANGED);
+            intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+            getContext().registerReceiver(mTimeChangedReceiver, intentFilter);
+        }
+
+        // Force an update now that we have listeners registered.
+        updateTwilightState();
+    }
+
+    private void stopListening() {
+        if (DEBUG) Slog.d(TAG, "stopListening");
+
+        if (mTimeChangedReceiver != null) {
+            getContext().unregisterReceiver(mTimeChangedReceiver);
+            mTimeChangedReceiver = null;
+        }
+
+        if (mLastTwilightState != null) {
+            mAlarmManager.cancel(this);
+        }
+
+        mLocationManager.removeUpdates(this);
+        mLastLocation = null;
+    }
+
+    private void updateTwilightState() {
+        // Calculate the twilight state based on the current time and location.
+        final long currentTimeMillis = System.currentTimeMillis();
+        final Location location = mLastLocation != null ? mLastLocation
+                : mLocationManager.getLastLocation();
+        final TwilightState state = calculateTwilightState(location, currentTimeMillis);
+        if (DEBUG) {
+            Slog.d(TAG, "updateTwilightState: " + state);
+        }
+
+        // Notify listeners if the state has changed.
+        synchronized (mListeners) {
+            if (!Objects.equals(mLastTwilightState, state)) {
+                mLastTwilightState = state;
+
+                for (int i = mListeners.size() - 1; i >= 0; --i) {
+                    final TwilightListener listener = mListeners.keyAt(i);
+                    final Handler handler = mListeners.valueAt(i);
+                    handler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            listener.onTwilightStateChanged(state);
+                        }
+                    });
+                }
             }
         }
 
-        private void retrieveLocation() {
-            Location location = null;
-            final Iterator<String> providers =
-                    mLocationManager.getProviders(new Criteria(), true).iterator();
-            while (providers.hasNext()) {
-                final Location lastKnownLocation =
-                        mLocationManager.getLastKnownLocation(providers.next());
-                // pick the most recent location
-                if (location == null || (lastKnownLocation != null &&
-                        location.getElapsedRealtimeNanos() <
-                                lastKnownLocation.getElapsedRealtimeNanos())) {
-                    location = lastKnownLocation;
-                }
-            }
-
-            // In the case there is no location available (e.g. GPS fix or network location
-            // is not available yet), the longitude of the location is estimated using the
-            // timezone, latitude and accuracy are set to get a good average.
-            if (location == null) {
-                Time currentTime = new Time();
-                currentTime.set(System.currentTimeMillis());
-                double lngOffset = FACTOR_GMT_OFFSET_LONGITUDE *
-                        (currentTime.gmtoff - (currentTime.isDst > 0 ? 3600 : 0));
-                location = new Location("fake");
-                location.setLongitude(lngOffset);
-                location.setLatitude(0);
-                location.setAccuracy(417000.0f);
-                location.setTime(System.currentTimeMillis());
-                location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
-
-                if (DEBUG) {
-                    Slog.d(TAG, "Estimated location from timezone: " + location);
-                }
-            }
-
-            setLocation(location);
-        }
-
-        private void setLocation(Location location) {
-            mLocation = location;
-            updateTwilightState();
-        }
-
-        private void updateTwilightState() {
-            if (mLocation == null) {
-                setTwilightState(null);
-                return;
-            }
-
-            final long now = System.currentTimeMillis();
-
-            // calculate today's twilight
-            mTwilightCalculator.calculateTwilight(now,
-                    mLocation.getLatitude(), mLocation.getLongitude());
-            final boolean isNight = (mTwilightCalculator.mState == TwilightCalculator.NIGHT);
-            final long todaySunrise = mTwilightCalculator.mSunrise;
-            final long todaySunset = mTwilightCalculator.mSunset;
-
-            // calculate tomorrow's twilight
-            mTwilightCalculator.calculateTwilight(now + DateUtils.DAY_IN_MILLIS,
-                    mLocation.getLatitude(), mLocation.getLongitude());
-            final long tomorrowSunrise = mTwilightCalculator.mSunrise;
-
-            float amount = 0;
-            if (isNight) {
-                if (todaySunrise == -1 || todaySunset == -1) {
-                    amount = 1;
-                } else if (now > todaySunset) {
-                    amount = Math.min(1, (now - todaySunset) / (float) TWILIGHT_ADJUSTMENT_TIME);
-                } else {
-                    amount = Math.max(0, 1
-                            - (todaySunrise - now) / (float) TWILIGHT_ADJUSTMENT_TIME);
-                }
-            }
-            // set twilight state
-            TwilightState state = new TwilightState(isNight, amount);
-            if (DEBUG) {
-                Slog.d(TAG, "Updating twilight state: " + state);
-            }
-            setTwilightState(state);
-
-            // schedule next update
-            long nextUpdate = 0;
-            if (todaySunrise == -1 || todaySunset == -1) {
-                // In the case the day or night never ends the update is scheduled 12 hours later.
-                nextUpdate = now + 12 * DateUtils.HOUR_IN_MILLIS;
-            } else {
-                // add some extra time to be on the safe side.
-                nextUpdate += DateUtils.MINUTE_IN_MILLIS;
-
-                if (amount == 1 || amount == 0) {
-                    if (now > todaySunset) {
-                        nextUpdate += tomorrowSunrise;
-                    } else if (now > todaySunrise) {
-                        nextUpdate += todaySunset;
-                    } else {
-                        nextUpdate += todaySunrise;
-                    }
-                } else {
-                    // This is the update rate while transitioning.
-                    // Leave at 10 min for now (one from above).
-                    nextUpdate += 9 * DateUtils.MINUTE_IN_MILLIS;
-                }
-            }
-
-            if (DEBUG) {
-                Slog.d(TAG, "Next update in " + (nextUpdate - now) + " ms");
-            }
-
-            final PendingIntent pendingIntent = PendingIntent.getBroadcast(
-                    getContext(), 0, new Intent(ACTION_UPDATE_TWILIGHT_STATE), 0);
-            mAlarmManager.cancel(pendingIntent);
-            mAlarmManager.setExact(AlarmManager.RTC, nextUpdate, pendingIntent);
+        // Schedule an alarm to update the state at the next sunrise or sunset.
+        if (state != null) {
+            final long triggerAtMillis = state.isNight()
+                    ? state.sunriseTimeMillis() : state.sunsetTimeMillis();
+            mAlarmManager.setExact(AlarmManager.RTC, triggerAtMillis, TAG, this, mHandler);
         }
     }
 
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(intent.getAction())
-                    && !intent.getBooleanExtra("state", false)) {
-                // Airplane mode is now off!
-                mLocationHandler.requestLocationUpdate();
-                return;
-            }
-            // Time zone has changed or alarm expired.
-            mLocationHandler.requestTwilightUpdate();
-        }
-    };
+    @Override
+    public void onAlarm() {
+        if (DEBUG) Slog.d(TAG, "onAlarm");
+        updateTwilightState();
+    }
 
-    // A LocationListener to initialize the network location provider. The location updates
-    // are handled through the passive location provider.
-    private final LocationListener mEmptyLocationListener = new LocationListener() {
-        @Override
-        public void onLocationChanged(Location location) {
+    @Override
+    public void onLocationChanged(Location location) {
+        if (DEBUG) Slog.d(TAG, "onLocationChanged: " + location);
+        mLastLocation = location;
+        updateTwilightState();
+    }
+
+    @Override
+    public void onStatusChanged(String provider, int status, Bundle extras) {
+    }
+
+    @Override
+    public void onProviderEnabled(String provider) {
+    }
+
+    @Override
+    public void onProviderDisabled(String provider) {
+    }
+
+    /**
+     * Calculates the twilight state for a specific location and time.
+     *
+     * @param location the location to use
+     * @param timeMillis the reference time to use
+     * @return the calculated {@link TwilightState}, or {@code null} if location is {@code null}
+     */
+    private static TwilightState calculateTwilightState(Location location, long timeMillis) {
+        if (location == null) {
+            return null;
         }
 
-        @Override
-        public void onStatusChanged(String provider, int status, Bundle extras) {
+        final CalendarAstronomer ca = new CalendarAstronomer(
+                location.getLongitude(), location.getLatitude());
+
+        final Calendar noon = Calendar.getInstance();
+        noon.setTimeInMillis(timeMillis);
+        noon.set(Calendar.HOUR_OF_DAY, 12);
+        noon.set(Calendar.MINUTE, 0);
+        noon.set(Calendar.SECOND, 0);
+        noon.set(Calendar.MILLISECOND, 0);
+        ca.setTime(noon.getTimeInMillis());
+
+        long sunriseTimeMillis = ca.getSunRiseSet(true /* rise */);
+        long sunsetTimeMillis = ca.getSunRiseSet(false /* rise */);
+
+        if (sunsetTimeMillis < timeMillis) {
+            noon.add(Calendar.DATE, 1);
+            ca.setTime(noon.getTimeInMillis());
+            sunriseTimeMillis = ca.getSunRiseSet(true /* rise */);
+        } else if (sunriseTimeMillis > timeMillis) {
+            noon.add(Calendar.DATE, -1);
+            ca.setTime(noon.getTimeInMillis());
+            sunsetTimeMillis = ca.getSunRiseSet(false /* rise */);
         }
 
-        @Override
-        public void onProviderEnabled(String provider) {
-        }
-
-        @Override
-        public void onProviderDisabled(String provider) {
-        }
-    };
-
-    private final LocationListener mLocationListener = new LocationListener() {
-        @Override
-        public void onLocationChanged(Location location) {
-            mLocationHandler.processNewLocation(location);
-        }
-
-        @Override
-        public void onStatusChanged(String provider, int status, Bundle extras) {
-        }
-
-        @Override
-        public void onProviderEnabled(String provider) {
-        }
-
-        @Override
-        public void onProviderDisabled(String provider) {
-        }
-    };
+        return new TwilightState(sunriseTimeMillis, sunsetTimeMillis);
+    }
 }
diff --git a/services/core/java/com/android/server/twilight/TwilightState.java b/services/core/java/com/android/server/twilight/TwilightState.java
index dec053b..a12965d 100644
--- a/services/core/java/com/android/server/twilight/TwilightState.java
+++ b/services/core/java/com/android/server/twilight/TwilightState.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2016 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.
@@ -16,59 +16,89 @@
 
 package com.android.server.twilight;
 
-import java.text.DateFormat;
-import java.util.Date;
+import android.text.format.DateFormat;
+
+import java.util.Calendar;
 
 /**
- * Describes whether it is day or night.
- * This object is immutable.
+ * The twilight state, consisting of the sunrise and sunset times (in millis) for the current
+ * period.
+ * <p/>
+ * Note: This object is immutable.
  */
-public class TwilightState {
+public final class TwilightState {
 
-    private final boolean mIsNight;
-    private final float mAmount;
+    private final long mSunriseTimeMillis;
+    private final long mSunsetTimeMillis;
 
-    TwilightState(boolean isNight, float amount) {
-        mIsNight = isNight;
-        mAmount = amount;
+    TwilightState(long sunriseTimeMillis, long sunsetTimeMillis) {
+        mSunriseTimeMillis = sunriseTimeMillis;
+        mSunsetTimeMillis = sunsetTimeMillis;
     }
 
     /**
-     * Returns true if it is currently night time.
+     * Returns the time (in UTC milliseconds from epoch) of the upcoming or previous sunrise if
+     * it's night or day respectively.
+     */
+    public long sunriseTimeMillis() {
+        return mSunriseTimeMillis;
+    }
+
+    /**
+     * Returns a new {@link Calendar} instance initialized to {@link #sunriseTimeMillis()}.
+     */
+    public Calendar sunrise() {
+        final Calendar sunrise = Calendar.getInstance();
+        sunrise.setTimeInMillis(mSunriseTimeMillis);
+        return sunrise;
+    }
+
+    /**
+     * Returns the time (in UTC milliseconds from epoch) of the upcoming or previous sunset if
+     * it's day or night respectively.
+     */
+    public long sunsetTimeMillis() {
+        return mSunsetTimeMillis;
+    }
+
+    /**
+     * Returns a new {@link Calendar} instance initialized to {@link #sunsetTimeMillis()}.
+     */
+    public Calendar sunset() {
+        final Calendar sunset = Calendar.getInstance();
+        sunset.setTimeInMillis(mSunsetTimeMillis);
+        return sunset;
+    }
+
+    /**
+     * Returns {@code true} if it is currently night time.
      */
     public boolean isNight() {
-        return mIsNight;
-    }
-
-    /**
-     * For twilight affects that change gradually over time, this is the amount they
-     * should currently be in effect.
-     */
-    public float getAmount() {
-        return mAmount;
+        final long now = System.currentTimeMillis();
+        return now >= mSunsetTimeMillis && now < mSunriseTimeMillis;
     }
 
     @Override
     public boolean equals(Object o) {
-        return o instanceof TwilightState && equals((TwilightState)o);
+        return o instanceof TwilightState && equals((TwilightState) o);
     }
 
     public boolean equals(TwilightState other) {
         return other != null
-                && mIsNight == other.mIsNight
-                && mAmount == other.mAmount;
+                && mSunriseTimeMillis == other.mSunriseTimeMillis
+                && mSunsetTimeMillis == other.mSunsetTimeMillis;
     }
 
     @Override
     public int hashCode() {
-        return 0; // don't care
+        return Long.hashCode(mSunriseTimeMillis) ^ Long.hashCode(mSunsetTimeMillis);
     }
 
     @Override
     public String toString() {
-        DateFormat f = DateFormat.getDateTimeInstance();
-        return "{TwilightState: isNight=" + mIsNight
-                + ", mAmount=" + mAmount
-                + "}";
+        return "TwilightState {"
+                + " sunrise=" + DateFormat.format("MM-dd HH:mm", mSunriseTimeMillis)
+                + " sunset="+ DateFormat.format("MM-dd HH:mm", mSunsetTimeMillis)
+                + " }";
     }
 }
diff --git a/services/core/java/com/android/server/vr/VrManagerService.java b/services/core/java/com/android/server/vr/VrManagerService.java
index 7d20931..fdadc8d 100644
--- a/services/core/java/com/android/server/vr/VrManagerService.java
+++ b/services/core/java/com/android/server/vr/VrManagerService.java
@@ -46,6 +46,7 @@
 import android.service.vr.IVrManager;
 import android.service.vr.IVrStateCallbacks;
 import android.service.vr.VrListenerService;
+import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.Slog;
@@ -218,6 +219,7 @@
                     String packageName = mNotificationAccessPackageToUserId.keyAt(i);
                     revokeNotificationListenerAccess(packageName, grantUserId);
                     revokeNotificationPolicyAccess(packageName);
+                    revokeCoarseLocationPermissionIfNeeded(packageName, grantUserId);
                     mNotificationAccessPackageToUserId.removeAt(i);
                 }
             }
@@ -226,6 +228,7 @@
                 if (!packageNames.contains(pkg)) {
                     revokeNotificationListenerAccess(pkg, currentUserId);
                     revokeNotificationPolicyAccess(pkg);
+                    revokeCoarseLocationPermissionIfNeeded(pkg, currentUserId);
                     mNotificationAccessPackageToUserId.remove(pkg);
                 }
             }
@@ -233,6 +236,7 @@
                 if (!allowed.contains(pkg)) {
                     grantNotificationPolicyAccess(pkg);
                     grantNotificationListenerAccess(pkg, currentUserId);
+                    grantCoarseLocationPermissionIfNeeded(pkg, currentUserId);
                     mNotificationAccessPackageToUserId.put(pkg, currentUserId);
                 }
             }
@@ -643,7 +647,7 @@
 
         for (String c : current) {
             ComponentName component = ComponentName.unflattenFromString(c);
-            if (component.getPackageName().equals(pkg)) {
+            if (component != null && component.getPackageName().equals(pkg)) {
                 toRemove.add(c);
             }
         }
@@ -656,6 +660,22 @@
                 flatSettings, userId);
     }
 
+    private void grantCoarseLocationPermissionIfNeeded(String pkg, int userId) {
+        // Don't clobber the user if permission set in current state explicitly
+        if (!isPermissionUserUpdated(Manifest.permission.ACCESS_COARSE_LOCATION, pkg, userId)) {
+            mContext.getPackageManager().grantRuntimePermission(pkg,
+                    Manifest.permission.ACCESS_COARSE_LOCATION, new UserHandle(userId));
+        }
+    }
+
+    private void revokeCoarseLocationPermissionIfNeeded(String pkg, int userId) {
+        // Don't clobber the user if permission set in current state explicitly
+        if (!isPermissionUserUpdated(Manifest.permission.ACCESS_COARSE_LOCATION, pkg, userId)) {
+            mContext.getPackageManager().revokeRuntimePermission(pkg,
+                    Manifest.permission.ACCESS_COARSE_LOCATION, new UserHandle(userId));
+        }
+    }
+
     private boolean isPermissionUserUpdated(String permission, String pkg, int userId) {
         final int flags = mContext.getPackageManager().getPermissionFlags(
                 permission, pkg, new UserHandle(userId));
@@ -671,7 +691,9 @@
         if (flat != null) {
             String[] allowed = flat.split(":");
             for (String s : allowed) {
-                current.add(s);
+                if (!TextUtils.isEmpty(s)) {
+                    current.add(s);
+                }
             }
         }
         return current;
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index 74a6131..64f79e1 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -1400,9 +1400,7 @@
                     wallpaper.whichPending = which;
                     wallpaper.setComplete = completion;
                     wallpaper.cropHint.set(cropHint);
-                    if ((which & FLAG_SYSTEM) != 0) {
-                        wallpaper.allowBackup = allowBackup;
-                    }
+                    wallpaper.allowBackup = allowBackup;
                 }
                 return pfd;
             } finally {
@@ -1753,12 +1751,14 @@
     }
 
     @Override
-    public boolean isWallpaperBackupEligible(int userId) {
+    public boolean isWallpaperBackupEligible(int which, int userId) {
         if (Binder.getCallingUid() != Process.SYSTEM_UID) {
             throw new SecurityException("Only the system may call isWallpaperBackupEligible");
         }
 
-        WallpaperData wallpaper = getWallpaperSafeLocked(userId, FLAG_SYSTEM);
+        WallpaperData wallpaper = (which == FLAG_LOCK)
+                ? mWallpaperMap.get(userId)
+                : mLockWallpaperMap.get(userId);
         return (wallpaper != null) ? wallpaper.allowBackup : false;
     }
 
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java
index 8be5dfb..e5e2175 100644
--- a/services/core/java/com/android/server/wm/AccessibilityController.java
+++ b/services/core/java/com/android/server/wm/AccessibilityController.java
@@ -348,6 +348,7 @@
                     }
                     switch (type) {
                         case WindowManager.LayoutParams.TYPE_APPLICATION:
+                        case WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION:
                         case WindowManager.LayoutParams.TYPE_APPLICATION_PANEL:
                         case WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA:
                         case WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL:
@@ -1071,14 +1072,15 @@
                                 Region.Op.REVERSE_DIFFERENCE);
                     }
 
-                    // We figured out what is touchable for the entire screen - done.
-                    if (unaccountedSpace.isEmpty()) {
-                        break;
-                    }
-
                     // If a window is modal it prevents other windows from being touched
                     if ((flags & (WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                             | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL)) == 0) {
+                        // Account for all space in the task, whether the windows in it are
+                        // touchable or not. The modal window blocks all touches from the task's
+                        // area.
+                        unaccountedSpace.op(windowState.getDisplayFrameLw(), unaccountedSpace,
+                                Region.Op.REVERSE_DIFFERENCE);
+
                         if (task != null) {
                             // If the window is associated with a particular task, we can skip the
                             // rest of the windows for that task.
@@ -1090,6 +1092,10 @@
                             break;
                         }
                     }
+                    // We figured out what is touchable for the entire screen - done.
+                    if (unaccountedSpace.isEmpty()) {
+                        break;
+                    }
                 }
 
                 // Always report the focused window.
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 3aefc08..d4d6f32 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -162,6 +162,9 @@
     private final WindowManagerService mService;
 
     private int mNextAppTransition = TRANSIT_UNSET;
+    private int mLastUsedAppTransition = TRANSIT_UNSET;
+    private String mLastOpeningApp;
+    private String mLastClosingApp;
 
     private static final int NEXT_TRANSIT_TYPE_NONE = 0;
     private static final int NEXT_TRANSIT_TYPE_CUSTOM = 1;
@@ -285,6 +288,13 @@
 
     private void setAppTransition(int transit) {
         mNextAppTransition = transit;
+        setLastAppTransition(TRANSIT_UNSET, null, null);
+    }
+
+    void setLastAppTransition(int transit, AppWindowToken openingApp, AppWindowToken closingApp) {
+        mLastUsedAppTransition = transit;
+        mLastOpeningApp = "" + openingApp;
+        mLastClosingApp = "" + closingApp;
     }
 
     boolean isReady() {
@@ -1904,6 +1914,14 @@
             pw.print(prefix); pw.print("mNextAppTransitionCallback=");
                     pw.println(mNextAppTransitionCallback);
         }
+        if (mLastUsedAppTransition != TRANSIT_NONE) {
+            pw.print(prefix); pw.print("mLastUsedAppTransition=");
+                    pw.println(appTransitionToString(mLastUsedAppTransition));
+            pw.print(prefix); pw.print("mLastOpeningApp=");
+                    pw.println(mLastOpeningApp);
+            pw.print(prefix); pw.print("mLastClosingApp=");
+                    pw.println(mLastClosingApp);
+        }
     }
 
     public void setCurrentUser(int newUserId) {
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index eac72b0..b065392 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -17,7 +17,9 @@
 package com.android.server.wm;
 
 import static android.app.ActivityManager.StackId;
+import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
+import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;
@@ -337,6 +339,45 @@
         }
     }
 
+    void clearAnimatingFlags() {
+        boolean wallpaperMightChange = false;
+        for (int i = allAppWindows.size() - 1; i >= 0; i--) {
+            final WindowState win = allAppWindows.get(i);
+            // We don't want to clear it out for windows that get replaced, because the
+            // animation depends on the flag to remove the replaced window.
+            //
+            // We also don't clear the mAnimatingExit flag for windows which have the
+            // mRemoveOnExit flag. This indicates an explicit remove request has been issued
+            // by the client. We should let animation proceed and not clear this flag or
+            // they won't eventually be removed by WindowStateAnimator#finishExit.
+            if (!win.mWillReplaceWindow && !win.mRemoveOnExit) {
+                // Clear mAnimating flag together with mAnimatingExit. When animation
+                // changes from exiting to entering, we need to clear this flag until the
+                // new animation gets applied, so that isAnimationStarting() becomes true
+                // until then.
+                // Otherwise applySurfaceChangesTransaction will faill to skip surface
+                // placement for this window during this period, one or more frame will
+                // show up with wrong position or scale.
+                if (win.mAnimatingExit) {
+                    win.mAnimatingExit = false;
+                    wallpaperMightChange = true;
+                }
+                if (win.mWinAnimator.mAnimating) {
+                    win.mWinAnimator.mAnimating = false;
+                    wallpaperMightChange = true;
+                }
+                if (win.mDestroying) {
+                    win.mDestroying = false;
+                    service.mDestroySurface.remove(win);
+                    wallpaperMightChange = true;
+                }
+            }
+        }
+        if (wallpaperMightChange) {
+            requestUpdateWallpaperIfNeeded();
+        }
+    }
+
     void destroySurfaces() {
         destroySurfaces(false /*cleanupOnResume*/);
     }
@@ -363,15 +404,6 @@
 
             win.mWinAnimator.destroyPreservedSurfaceLocked();
 
-            if (cleanupOnResume) {
-                // If the window has an unfinished exit animation, consider that animation
-                // done and mark the window destroying so that it goes through the cleanup.
-                if (win.mAnimatingExit) {
-                    win.mDestroying = true;
-                    win.mAnimatingExit = false;
-                }
-            }
-
             if (!win.mDestroying) {
                 continue;
             }
@@ -391,6 +423,9 @@
             if (displayContent != null && !displayList.contains(displayContent)) {
                 displayList.add(displayContent);
             }
+            if (cleanupOnResume) {
+                win.requestUpdateWallpaperIfNeeded();
+            }
             win.mDestroying = false;
         }
         for (int i = 0; i < displayList.size(); i++) {
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index fba439f..1d57872 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -191,6 +191,16 @@
         return mHomeStack;
     }
 
+    TaskStack getStackById(int stackId) {
+        for (int i = mStacks.size() - 1; i >= 0; --i) {
+            final TaskStack stack = mStacks.get(i);
+            if (stack.mStackId == stackId) {
+                return stack;
+            }
+        }
+        return null;
+    }
+
     void updateDisplayInfo() {
         mDisplay.getDisplayInfo(mDisplayInfo);
         mDisplay.getMetrics(mDisplayMetrics);
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index b4387b9..1dcada6 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -624,8 +624,8 @@
                     //
                     // As we use this flag as a hint to freeze surface boundary updates,
                     // we'd like to only apply this to TYPE_BASE_APPLICATION,
-                    // windows of TYPE_APPLICATION like dialogs, could appear
-                    // to not be drag resizing while they resize, but we'd
+                    // windows of TYPE_APPLICATION (or TYPE_DRAWN_APPLICATION) like dialogs,
+                    // could appear to not be drag resizing while they resize, but we'd
                     // still like to manipulate their frame to update crop, etc...
                     //
                     // Anyway we don't need to synchronize position and content updates for these
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index 18f97a7..2b66c3a 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -246,7 +246,10 @@
 
     boolean updateWallpaperOffset(WindowState wallpaperWin, int dw, int dh, boolean sync) {
         boolean rawChanged = false;
-        float wpx = mLastWallpaperX >= 0 ? mLastWallpaperX : 0.5f;
+        // Set the default wallpaper x-offset to either edge of the screen (depending on RTL), to
+        // match the behavior of most Launchers
+        float defaultWallpaperX = wallpaperWin.isRtl() ? 1f : 0f;
+        float wpx = mLastWallpaperX >= 0 ? mLastWallpaperX : defaultWallpaperX;
         float wpxs = mLastWallpaperXStep >= 0 ? mLastWallpaperXStep : -1.0f;
         int availw = wallpaperWin.mFrame.right - wallpaperWin.mFrame.left - dw;
         int offset = availw > 0 ? -(int)(availw * wpx + .5f) : 0;
@@ -583,27 +586,24 @@
                     if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
                             "New i: " + wallpaperTargetIndex + " old i: " + oldI);
                     if (oldI >= 0) {
-                        if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
-                                "Animating wallpapers: old#" + oldI + "=" + oldW + "; new#"
-                                + wallpaperTargetIndex + "=" + wallpaperTarget);
+                        final boolean newTargetHidden =
+                                wallpaperTarget.mAppToken != null && wallpaperTarget.mAppToken.hiddenRequested;
+                        final boolean oldTargetHidden =
+                                oldW.mAppToken != null && oldW.mAppToken.hiddenRequested;
+                        if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Animating wallpapers:"
+                                + " old#" + oldI + "=" + oldW + " hidden=" + oldTargetHidden
+                                + " new#" + wallpaperTargetIndex + "=" + wallpaperTarget
+                                + " hidden=" + newTargetHidden);
 
-                        // Set the new target correctly.
-                        if (wallpaperTarget.mAppToken != null
-                                && wallpaperTarget.mAppToken.hiddenRequested) {
-                            if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
-                                    "Old wallpaper still the target.");
-                            mWallpaperTarget = oldW;
-                            wallpaperTarget = oldW;
-                            wallpaperTargetIndex = oldI;
-                        }
-                        // Now set the upper and lower wallpaper targets correctly,
+                        // Set the upper and lower wallpaper targets correctly,
                         // and make sure that we are positioning the wallpaper below the lower.
-                        else if (wallpaperTargetIndex > oldI) {
+                        if (wallpaperTargetIndex > oldI) {
                             // The new target is on top of the old one.
                             if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
                                     "Found target above old target.");
                             mUpperWallpaperTarget = wallpaperTarget;
                             mLowerWallpaperTarget = oldW;
+
                             wallpaperTarget = oldW;
                             wallpaperTargetIndex = oldI;
                         } else {
@@ -613,6 +613,22 @@
                             mUpperWallpaperTarget = oldW;
                             mLowerWallpaperTarget = wallpaperTarget;
                         }
+                        if (newTargetHidden && !oldTargetHidden) {
+                            if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
+                                    "Old wallpaper still the target.");
+                            // Use the old target if new target is hidden but old target
+                            // is not. If they're both hidden, still use the new target.
+                            mWallpaperTarget = oldW;
+                        } else if (newTargetHidden == oldTargetHidden
+                                && !mService.mOpeningApps.contains(wallpaperTarget.mAppToken)
+                                    && (mService.mOpeningApps.contains(oldW.mAppToken)
+                                    || mService.mClosingApps.contains(oldW.mAppToken))) {
+                            // If they're both hidden (or both not hidden), prefer the one that's
+                            // currently in opening or closing app list, this allows transition
+                            // selection logic to better determine the wallpaper status of
+                            // opening/closing apps.
+                            mWallpaperTarget = oldW;
+                        }
                     }
                 }
             }
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index be060d2..b0d357c 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wm;
 
+import static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
@@ -118,6 +119,8 @@
     // check if some got replaced and can be removed.
     private boolean mRemoveReplacedWindows = false;
 
+    private final AppTokenList mTmpExitingAppTokens = new AppTokenList();
+
     private String forceHidingToString() {
         switch (mForceHiding) {
             case KEYGUARD_NOT_SHOWN:    return "KEYGUARD_NOT_SHOWN";
@@ -188,10 +191,19 @@
                 }
             }
 
-            final AppTokenList exitingAppTokens = stack.mExitingAppTokens;
-            final int exitingCount = exitingAppTokens.size();
+            mTmpExitingAppTokens.clear();
+            mTmpExitingAppTokens.addAll(stack.mExitingAppTokens);
+
+            final int exitingCount = mTmpExitingAppTokens.size();
             for (int i = 0; i < exitingCount; i++) {
-                final AppWindowAnimator appAnimator = exitingAppTokens.get(i).mAppAnimator;
+                final AppWindowAnimator appAnimator = mTmpExitingAppTokens.get(i).mAppAnimator;
+                // stepAnimation can trigger finishExit->removeWindowInnerLocked
+                // ->performSurfacePlacement
+                // performSurfacePlacement will directly manipulate the mExitingAppTokens list
+                // so we need to iterate over a copy and check for modifications.
+                if (!stack.mExitingAppTokens.contains(appAnimator)) {
+                    continue;
+                }
                 appAnimator.wasAnimating = appAnimator.animating;
                 if (appAnimator.stepAnimationLocked(mCurrentTime, displayId)) {
                     setAnimating(true);
@@ -233,6 +245,12 @@
                     || (win.mAttrs.privateFlags & PRIVATE_FLAG_SYSTEM_ERROR) != 0;
         }
 
+        // Allow showing a window that dismisses Keyguard if the policy allows it. This is used for
+        // when the policy knows that the Keyguard can be dismissed without user interaction to
+        // provide a smooth transition in that case.
+        allowWhenLocked |= (win.mAttrs.flags & FLAG_DISMISS_KEYGUARD) != 0
+                && mPolicy.canShowDismissingWindowWhileLockedLw();
+
         // Only hide windows if the keyguard is active and not animating away.
         boolean keyguardOn = mPolicy.isKeyguardShowingOrOccluded()
                 && mForceHiding != KEYGUARD_ANIMATING_OUT;
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 8c5481d..f2f85bf 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -191,6 +191,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
 import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
@@ -3081,6 +3082,9 @@
         if (oldVisibility == View.GONE) {
             winAnimator.mEnterAnimationPending = true;
         }
+
+        win.mLastVisibleLayoutRotation = mRotation;
+
         winAnimator.mEnteringAnimation = true;
         if ((result & WindowManagerGlobal.RELAYOUT_RES_FIRST_TIME) != 0) {
             win.prepareWindowToDisplayDuringRelayout(outConfig);
@@ -5044,18 +5048,32 @@
         try {
             synchronized (mWindowMap) {
                 final DisplayContent displayContent = mDisplayContents.get(displayId);
+                boolean attachedToDisplay = false;
                 if (displayContent != null) {
                     TaskStack stack = mStackIdToStack.get(stackId);
                     if (stack == null) {
                         if (DEBUG_STACK) Slog.d(TAG_WM, "attachStack: stackId=" + stackId);
-                        stack = new TaskStack(this, stackId);
+
+                        stack = displayContent.getStackById(stackId);
+                        if (stack != null) {
+                            // It's already attached to the display. Detach and re-attach
+                            // because onTop might change, and be sure to clear mDeferDetach!
+                            displayContent.detachStack(stack);
+                            stack.mDeferDetach = false;
+                            attachedToDisplay = true;
+                        } else {
+                            stack = new TaskStack(this, stackId);
+                        }
+
                         mStackIdToStack.put(stackId, stack);
                         if (stackId == DOCKED_STACK_ID) {
                             getDefaultDisplayContentLocked().mDividerControllerLocked
                                     .notifyDockedStackExistsChanged(true);
                         }
                     }
-                    stack.attachDisplayContent(displayContent);
+                    if (!attachedToDisplay) {
+                        stack.attachDisplayContent(displayContent);
+                    }
                     displayContent.attachStack(stack, onTop);
                     if (stack.getRawFullscreen()) {
                         return null;
@@ -5706,6 +5724,12 @@
 
     // Called by window manager policy.  Not exposed externally.
     @Override
+    public void reboot(boolean confirm) {
+        ShutdownThread.reboot(mContext, PowerManager.SHUTDOWN_USER_REQUESTED, confirm);
+    }
+
+    // Called by window manager policy.  Not exposed externally.
+    @Override
     public void rebootSafeMode(boolean confirm) {
         ShutdownThread.rebootSafeMode(mContext, confirm);
     }
@@ -5863,7 +5887,8 @@
             if (w.isDrawnLw()) {
                 if (w.mAttrs.type == TYPE_BOOT_PROGRESS) {
                     haveBootMsg = true;
-                } else if (w.mAttrs.type == TYPE_APPLICATION) {
+                } else if (w.mAttrs.type == TYPE_APPLICATION
+                        || w.mAttrs.type == TYPE_DRAWN_APPLICATION) {
                     haveApp = true;
                 } else if (w.mAttrs.type == TYPE_WALLPAPER) {
                     haveWallpaper = true;
@@ -6749,6 +6774,20 @@
                     rotateSeamlessly = false;
                     break;
                 }
+                // In what can only be called an unfortunate workaround we require
+                // seamlessly rotated child windows to have the TRANSFORM_TO_DISPLAY_INVERSE
+                // flag. Due to limitations in the client API, there is no way for
+                // the client to set this flag in a race free fashion. If we seamlessly rotate
+                // a window which does not have this flag, but then gains it, we will get
+                // an incorrect visual result (rotated viewfinder). This means if we want to
+                // support seamlessly rotating windows which could gain this flag, we can't
+                // rotate windows without it. This limits seamless rotation in N to camera framework
+                // users, windows without children, and native code. This is unfortunate but
+                // having the camera work is our primary goal.
+                if (w.isChildWindow() & w.isVisibleNow() &&
+                        !w.mWinAnimator.mSurfaceController.getTransformToDisplayInverse()) {
+                    rotateSeamlessly = false;
+                }
             }
         }
 
@@ -9451,10 +9490,17 @@
             }
             final boolean dragResizingChanged = w.isDragResizeChanged()
                     && !w.isDragResizingChangeReported();
+
             if (localLOGV) Slog.v(TAG_WM, "Resizing " + w
                     + ": configChanged=" + configChanged
                     + " dragResizingChanged=" + dragResizingChanged
                     + " last=" + w.mLastFrame + " frame=" + w.mFrame);
+
+            // We update mLastFrame always rather than in the conditional with the
+            // last inset variables, because mFrameSizeChanged only tracks the
+            // width and height changing.
+            w.mLastFrame.set(w.mFrame);
+
             if (w.mContentInsetsChanged
                     || w.mVisibleInsetsChanged
                     || winAnimator.mSurfaceResized
@@ -9492,7 +9538,6 @@
                 w.mLastVisibleInsets.set(w.mVisibleInsets);
                 w.mLastStableInsets.set(w.mStableInsets);
                 w.mLastOutsets.set(w.mOutsets);
-                w.mLastFrame.set(w.mFrame);
                 makeWindowFreezingScreenIfNeededLocked(w);
                 // If the orientation is changing, or we're starting or ending
                 // a drag resizing action, then we need to hold off on unfreezing
@@ -11442,8 +11487,9 @@
                 for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
                     final WindowState win = windows.get(winNdx);
                     final boolean isForceHiding = mPolicy.isForceHiding(win.mAttrs);
+                    final boolean keyguard = mPolicy.isKeyguardHostWindow(win.mAttrs);
                     if (win.isVisibleLw()
-                            && (win.mAppToken != null || isForceHiding)) {
+                            && (win.mAppToken != null || isForceHiding || keyguard)) {
                         win.mWinAnimator.mDrawState = DRAW_PENDING;
                         // Force add to mResizingWindows.
                         win.mLastContentInsets.set(-1, -1, -1, -1);
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 25ad07e..54f60ef 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -87,6 +87,7 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
@@ -395,6 +396,13 @@
     boolean mOrientationChanging;
 
     /**
+     * The orientation during the last visible call to relayout. If our
+     * current orientation is different, the window can't be ready
+     * to be shown.
+     */
+    int mLastVisibleLayoutRotation = -1;
+
+    /**
      * How long we last kept the screen frozen.
      */
     int mLastFreezeDuration;
@@ -822,10 +830,10 @@
             final int height = Math.min(mFrame.height(), mContentFrame.height());
             final int width = Math.min(mContentFrame.width(), mFrame.width());
             final DisplayMetrics displayMetrics = getDisplayContent().getDisplayMetrics();
-            final int minVisibleHeight = WindowManagerService.dipToPixel(
-                    MINIMUM_VISIBLE_HEIGHT_IN_DP, displayMetrics);
-            final int minVisibleWidth = WindowManagerService.dipToPixel(
-                    MINIMUM_VISIBLE_WIDTH_IN_DP, displayMetrics);
+            final int minVisibleHeight = Math.min(height, WindowManagerService.dipToPixel(
+                    MINIMUM_VISIBLE_HEIGHT_IN_DP, displayMetrics));
+            final int minVisibleWidth = Math.min(width, WindowManagerService.dipToPixel(
+                    MINIMUM_VISIBLE_WIDTH_IN_DP, displayMetrics));
             final int top = Math.max(mContentFrame.top,
                     Math.min(mFrame.top, mContentFrame.bottom - minVisibleHeight));
             final int left = Math.max(mContentFrame.left + minVisibleWidth - width,
@@ -1282,7 +1290,8 @@
         final boolean isViewVisible = (mAppToken == null || !mAppToken.clientHidden)
                 && (mViewVisibility == View.VISIBLE) && !mWindowRemovalAllowed;
         return (isOnScreenIgnoringKeyguard() && (!visibleOnly || isViewVisible)
-                || mWinAnimator.mAttrType == TYPE_BASE_APPLICATION)
+                || mWinAnimator.mAttrType == TYPE_BASE_APPLICATION
+                || mWinAnimator.mAttrType == TYPE_DRAWN_APPLICATION)
                 && !mAnimatingExit && !mDestroying;
     }
 
@@ -1327,7 +1336,8 @@
                 && ((!mAttachedHidden && mViewVisibility == View.VISIBLE && !mRootToken.hidden)
                         || mWinAnimator.mAnimation != null
                         || ((atoken != null) && (atoken.mAppAnimator.animation != null)
-                                && !mWinAnimator.isDummyAnimation()));
+                                && !mWinAnimator.isDummyAnimation())
+                        || isAnimatingWithSavedSurface());
     }
 
     /**
@@ -2095,6 +2105,7 @@
                 Slog.v(TAG, "Destroying saved surface: " + this);
             }
             mWinAnimator.destroySurfaceLocked();
+            mSurfaceSaved = false;
         }
         mWasVisibleBeforeClientHidden = false;
     }
@@ -2103,7 +2114,18 @@
         if (!mSurfaceSaved) {
             return;
         }
+
+        // Sometimes we save surfaces due to layout invisible
+        // directly after rotation occurs. However this means
+        // the surface was never laid out in the new orientation.
+        // We can only restore to the last rotation we were
+        // laid out as visible in.
+        if (mLastVisibleLayoutRotation != mService.mRotation) {
+            destroySavedSurface();
+            return;
+        }
         mSurfaceSaved = false;
+
         if (mWinAnimator.mSurfaceController != null) {
             setHasSurface(true);
             mWinAnimator.mDrawState = WindowStateAnimator.READY_TO_SHOW;
@@ -2905,12 +2927,13 @@
     // for only child windows (as the main window is handled by window preservation)
     // and the big surface.
     //
-    // Though windows of TYPE_APPLICATION (as opposed to TYPE_BASE_APPLICATION)
-    // are not children in the sense of an attached window, we also want to replace
-    // them at such phases, as they won't be covered by window preservation,
-    // and in general we expect them to return following relaunch.
+    // Though windows of TYPE_APPLICATION or TYPE_DRAWN_APPLICATION (as opposed to
+    // TYPE_BASE_APPLICATION) are not children in the sense of an attached window,
+    // we also want to replace them at such phases, as they won't be covered by window
+    // preservation, and in general we expect them to return following relaunch.
     boolean shouldBeReplacedWithChildren() {
-        return isChildWindow() || mAttrs.type == TYPE_APPLICATION;
+        return isChildWindow() || mAttrs.type == TYPE_APPLICATION
+                || mAttrs.type == TYPE_DRAWN_APPLICATION;
     }
 
     public int getRotationAnimationHint() {
@@ -2920,4 +2943,8 @@
             return -1;
         }
     }
+
+    public boolean isRtl() {
+        return mMergedConfiguration.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+    }
 }
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index e374ee9..00f4a45 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -926,6 +926,22 @@
         mPendingDestroySurface = null;
     }
 
+    void applyMagnificationSpec(MagnificationSpec spec, Matrix transform) {
+        final int surfaceInsetLeft = mWin.mAttrs.surfaceInsets.left;
+        final int surfaceInsetTop = mWin.mAttrs.surfaceInsets.top;
+
+        if (spec != null && !spec.isNop()) {
+            float scale = spec.scale;
+            transform.postScale(scale, scale);
+            transform.postTranslate(spec.offsetX, spec.offsetY);
+
+            // As we are scaling the whole surface, to keep the content
+            // in the same position we will also have to scale the surfaceInsets.
+            transform.postTranslate(-(surfaceInsetLeft*scale - surfaceInsetLeft),
+                    -(surfaceInsetTop*scale - surfaceInsetTop));
+        }
+    }
+
     void computeShownFrameLocked() {
         final boolean selfTransformation = mHasLocalTransformation;
         Transformation attachedTransformation =
@@ -1016,10 +1032,7 @@
             if (mService.mAccessibilityController != null && displayId == DEFAULT_DISPLAY) {
                 MagnificationSpec spec = mService.mAccessibilityController
                         .getMagnificationSpecForWindowLocked(mWin);
-                if (spec != null && !spec.isNop()) {
-                    tmpMatrix.postScale(spec.scale, spec.scale);
-                    tmpMatrix.postTranslate(spec.offsetX, spec.offsetY);
-                }
+                applyMagnificationSpec(spec, tmpMatrix);
             }
 
             // "convert" it into SurfaceFlinger's format
@@ -1118,10 +1131,7 @@
             tmpMatrix.setScale(mWin.mGlobalScale, mWin.mGlobalScale);
             tmpMatrix.postTranslate(frame.left + mWin.mXOffset, frame.top + mWin.mYOffset);
 
-            if (spec != null && !spec.isNop()) {
-                tmpMatrix.postScale(spec.scale, spec.scale);
-                tmpMatrix.postTranslate(spec.offsetX, spec.offsetY);
-            }
+            applyMagnificationSpec(spec, tmpMatrix);
 
             tmpMatrix.getValues(tmpFloats);
 
@@ -2066,7 +2076,8 @@
         if (time > mDeferTransactionTime + PENDING_TRANSACTION_FINISH_WAIT_TIME) {
             mDeferTransactionTime = -1;
             mDeferTransactionUntilFrame = -1;
-        } else {
+        } else if (mWin.mAttachedWindow != null &&
+                mWin.mAttachedWindow.mWinAnimator.hasSurface()) {
             mSurfaceController.deferTransactionUntil(
                     mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
                     mDeferTransactionUntilFrame);
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index 0bd5eaf..fa5e3ca 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -1097,6 +1097,26 @@
         boolean fullscreenAnim = false;
         boolean voiceInteraction = false;
 
+        int i;
+        for (i = 0; i < appsCount; i++) {
+            final AppWindowToken wtoken = mService.mOpeningApps.valueAt(i);
+            // Clearing the mAnimatingExit flag before entering animation. It's set to
+            // true if app window is removed, or window relayout to invisible.
+            // This also affects window visibility. We need to clear it *before*
+            // maybeUpdateTransitToWallpaper() as the transition selection depends on
+            // wallpaper target visibility.
+            wtoken.clearAnimatingFlags();
+
+        }
+        // Adjust wallpaper before we pull the lower/upper target, since pending changes
+        // (like the clearAnimatingFlags() above) might affect wallpaper target result.
+        final DisplayContent displayContent = mService.getDefaultDisplayContentLocked();
+        if ((displayContent.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0 &&
+                mWallpaperControllerLocked.adjustWallpaperWindows()) {
+            mService.mLayersController.assignLayersLocked(windows);
+            displayContent.layoutNeeded = true;
+        }
+
         final WindowState lowerWallpaperTarget =
                 mWallpaperControllerLocked.getLowerWallpaperTarget();
         final WindowState upperWallpaperTarget =
@@ -1113,7 +1133,6 @@
             upperWallpaperAppToken = upperWallpaperTarget.mAppToken;
         }
 
-        int i;
         // Do a first pass through the tokens for two
         // things:
         // (1) Determine if both the closing and opening
@@ -1183,6 +1202,8 @@
         final AppWindowToken topOpeningApp = handleOpeningApps(transit,
                 animLp, voiceInteraction, topClosingLayer);
 
+        mService.mAppTransition.setLastAppTransition(transit, topOpeningApp, topClosingApp);
+
         final AppWindowAnimator openingAppAnimator = (topOpeningApp == null) ?  null :
                 topOpeningApp.mAppAnimator;
         final AppWindowAnimator closingAppAnimator = (topClosingApp == null) ? null :
@@ -1198,7 +1219,7 @@
 
         // This has changed the visibility of windows, so perform
         // a new layout to get them all up-to-date.
-        mService.getDefaultDisplayContentLocked().layoutNeeded = true;
+        displayContent.layoutNeeded = true;
 
         // TODO(multidisplay): IMEs are only supported on the default display.
         if (windows == mService.getDefaultWindowListLocked()
@@ -1262,26 +1283,6 @@
                 int layer = -1;
                 for (int j = 0; j < wtoken.allAppWindows.size(); j++) {
                     final WindowState win = wtoken.allAppWindows.get(j);
-                    // Clearing the mAnimatingExit flag before entering animation. It will be set to true
-                    // if app window is removed, or window relayout to invisible. We don't want to
-                    // clear it out for windows that get replaced, because the animation depends on
-                    // the flag to remove the replaced window.
-                    //
-                    // We also don't clear the mAnimatingExit flag for windows which have the
-                    // mRemoveOnExit flag. This indicates an explicit remove request has been issued
-                    // by the client. We should let animation proceed and not clear this flag or
-                    // they won't eventually be removed by WindowStateAnimator#finishExit.
-                    if (!win.mWillReplaceWindow && !win.mRemoveOnExit) {
-                        win.mAnimatingExit = false;
-                        // Clear mAnimating flag together with mAnimatingExit. When animation
-                        // changes from exiting to entering, we need to clear this flag until the
-                        // new animation gets applied, so that isAnimationStarting() becomes true
-                        // until then.
-                        // Otherwise applySurfaceChangesTransaction will faill to skip surface
-                        // placement for this window during this period, one or more frame will
-                        // show up with wrong position or scale.
-                        win.mWinAnimator.mAnimating = false;
-                    }
                     if (win.mWinAnimator.mAnimLayer > layer) {
                         layer = win.mWinAnimator.mAnimLayer;
                     }
@@ -1482,7 +1483,7 @@
             mObscured = true;
         }
 
-        if (w.mHasSurface) {
+        if (w.mHasSurface && canBeSeen) {
             if ((attrFlags&FLAG_KEEP_SCREEN_ON) != 0) {
                 mHoldScreen = w.mSession;
                 mHoldScreenWindow = w;
@@ -1505,43 +1506,39 @@
             }
 
             final int type = attrs.type;
-            if (canBeSeen
-                    && (type == TYPE_SYSTEM_DIALOG
-                     || type == TYPE_SYSTEM_ERROR
-                     || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0)) {
+            if (type == TYPE_SYSTEM_DIALOG || type == TYPE_SYSTEM_ERROR
+                    || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
                 mSyswin = true;
             }
 
-            if (canBeSeen) {
-                // This function assumes that the contents of the default display are
-                // processed first before secondary displays.
-                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
-                    // keyguard dialogs to be shown.
-                    if (type == TYPE_DREAM || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
-                        mObscureApplicationContentOnSecondaryDisplays = true;
-                    }
-                    mDisplayHasContent = true;
-                } else if (displayContent != null &&
-                        (!mObscureApplicationContentOnSecondaryDisplays
-                        || (mObscured && type == TYPE_KEYGUARD_DIALOG))) {
-                    // Allow full screen keyguard presentation dialogs to be seen.
-                    mDisplayHasContent = true;
+            // This function assumes that the contents of the default display are
+            // processed first before secondary displays.
+            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
+                // keyguard dialogs to be shown.
+                if (type == TYPE_DREAM || (attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
+                    mObscureApplicationContentOnSecondaryDisplays = true;
                 }
-                if (mPreferredRefreshRate == 0
-                        && w.mAttrs.preferredRefreshRate != 0) {
-                    mPreferredRefreshRate = w.mAttrs.preferredRefreshRate;
-                }
-                if (mPreferredModeId == 0
-                        && w.mAttrs.preferredDisplayModeId != 0) {
-                    mPreferredModeId = w.mAttrs.preferredDisplayModeId;
-                }
-                if ((privateflags & PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE) != 0) {
-                    mSustainedPerformanceModeCurrent = true;
-                }
+                mDisplayHasContent = true;
+            } else if (displayContent != null &&
+                    (!mObscureApplicationContentOnSecondaryDisplays
+                            || (mObscured && type == TYPE_KEYGUARD_DIALOG))) {
+                // Allow full screen keyguard presentation dialogs to be seen.
+                mDisplayHasContent = true;
+            }
+            if (mPreferredRefreshRate == 0
+                    && w.mAttrs.preferredRefreshRate != 0) {
+                mPreferredRefreshRate = w.mAttrs.preferredRefreshRate;
+            }
+            if (mPreferredModeId == 0
+                    && w.mAttrs.preferredDisplayModeId != 0) {
+                mPreferredModeId = w.mAttrs.preferredDisplayModeId;
+            }
+            if ((privateflags & PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE) != 0) {
+                mSustainedPerformanceModeCurrent = true;
             }
         }
     }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index feeed8b..6258340 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -2093,8 +2093,9 @@
 
     void removeActiveAdminLocked(final ComponentName adminReceiver, final int userHandle) {
         final ActiveAdmin admin = getActiveAdminUncheckedLocked(adminReceiver, userHandle);
-        if (admin != null) {
-            getUserData(userHandle).mRemovingAdmins.add(adminReceiver);
+        DevicePolicyData policy = getUserData(userHandle);
+        if (admin != null && !policy.mRemovingAdmins.contains(adminReceiver)) {
+            policy.mRemovingAdmins.add(adminReceiver);
             sendAdminCommandLocked(admin,
                     DeviceAdminReceiver.ACTION_DEVICE_ADMIN_DISABLED,
                     new BroadcastReceiver() {
@@ -5706,7 +5707,8 @@
         }
         synchronized (this) {
             enforceCanSetDeviceOwnerLocked(userId);
-            if (getActiveAdminUncheckedLocked(admin, userId) == null) {
+            if (getActiveAdminUncheckedLocked(admin, userId) == null
+                    || getUserData(userId).mRemovingAdmins.contains(admin)) {
                 throw new IllegalArgumentException("Not active admin: " + admin);
             }
 
@@ -5874,8 +5876,10 @@
         updateDeviceOwnerLocked();
         disableSecurityLoggingIfNotCompliant();
         try {
-            // Reactivate backup service.
-            mInjector.getIBackupManager().setBackupServiceActive(UserHandle.USER_SYSTEM, true);
+            if (mInjector.getIBackupManager() != null) {
+                // Reactivate backup service.
+                mInjector.getIBackupManager().setBackupServiceActive(UserHandle.USER_SYSTEM, true);
+            }
         } catch (RemoteException e) {
             throw new IllegalStateException("Failed reactivating backup service.", e);
         }
@@ -5894,7 +5898,8 @@
         synchronized (this) {
             enforceCanSetProfileOwnerLocked(userHandle);
 
-            if (getActiveAdminUncheckedLocked(who, userHandle) == null) {
+            if (getActiveAdminUncheckedLocked(who, userHandle) == null
+                    || getUserData(userHandle).mRemovingAdmins.contains(who)) {
                 throw new IllegalArgumentException("Not active admin: " + who);
             }
 
diff --git a/services/net/java/android/net/ip/RouterAdvertisementDaemon.java b/services/net/java/android/net/ip/RouterAdvertisementDaemon.java
index 407d315..6802cff 100644
--- a/services/net/java/android/net/ip/RouterAdvertisementDaemon.java
+++ b/services/net/java/android/net/ip/RouterAdvertisementDaemon.java
@@ -45,7 +45,10 @@
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -59,10 +62,6 @@
  *     - Rewrite using Handler (and friends) so that AlarmManager can deliver
  *       "kick" messages when it's time to send a multicast RA.
  *
- *     - Support transmitting MAX_URGENT_RTR_ADVERTISEMENTS number of empty
- *       RAs with zero default router lifetime when transitioning from an
- *       advertising state to a non-advertising state.
- *
  * @hide
  */
 public class RouterAdvertisementDaemon {
@@ -109,6 +108,10 @@
     private final byte[] mRA = new byte[IPV6_MIN_MTU];
     @GuardedBy("mLock")
     private int mRaLength;
+    @GuardedBy("mLock")
+    private final DeprecatedInfoTracker mDeprecatedInfoTracker;
+    @GuardedBy("mLock")
+    private RaParams mRaParams;
 
     private volatile FileDescriptor mSocket;
     private volatile MulticastTransmitter mMulticastTransmitter;
@@ -133,6 +136,88 @@
             prefixes = (HashSet) other.prefixes.clone();
             dnses = (HashSet) other.dnses.clone();
         }
+
+        // Returns the subset of RA parameters that become deprecated when
+        // moving from announcing oldRa to announcing newRa.
+        //
+        // Currently only tracks differences in |prefixes| and |dnses|.
+        public static RaParams getDeprecatedRaParams(RaParams oldRa, RaParams newRa) {
+            RaParams newlyDeprecated = new RaParams();
+
+            if (oldRa != null) {
+                for (IpPrefix ipp : oldRa.prefixes) {
+                    if (newRa == null || !newRa.prefixes.contains(ipp)) {
+                        newlyDeprecated.prefixes.add(ipp);
+                    }
+                }
+
+                for (Inet6Address dns : oldRa.dnses) {
+                    if (newRa == null || !newRa.dnses.contains(dns)) {
+                        newlyDeprecated.dnses.add(dns);
+                    }
+                }
+            }
+
+            return newlyDeprecated;
+        }
+    }
+
+    private static class DeprecatedInfoTracker {
+        private final HashMap<IpPrefix, Integer> mPrefixes = new HashMap<>();
+        private final HashMap<Inet6Address, Integer> mDnses = new HashMap<>();
+
+        Set<IpPrefix> getPrefixes() { return mPrefixes.keySet(); }
+
+        void putPrefixes(Set<IpPrefix> prefixes) {
+            for (IpPrefix ipp : prefixes) {
+                mPrefixes.put(ipp, MAX_URGENT_RTR_ADVERTISEMENTS);
+            }
+        }
+
+        void removePrefixes(Set<IpPrefix> prefixes) {
+            for (IpPrefix ipp : prefixes) {
+                mPrefixes.remove(ipp);
+            }
+        }
+
+        Set<Inet6Address> getDnses() { return mDnses.keySet(); }
+
+        void putDnses(Set<Inet6Address> dnses) {
+            for (Inet6Address dns : dnses) {
+                mDnses.put(dns, MAX_URGENT_RTR_ADVERTISEMENTS);
+            }
+        }
+
+        void removeDnses(Set<Inet6Address> dnses) {
+            for (Inet6Address dns : dnses) {
+                mDnses.remove(dns);
+            }
+        }
+
+        boolean isEmpty() { return mPrefixes.isEmpty() && mDnses.isEmpty(); }
+
+        private boolean decrementCounters() {
+            boolean removed = decrementCounter(mPrefixes);
+            removed |= decrementCounter(mDnses);
+            return removed;
+        }
+
+        private <T> boolean decrementCounter(HashMap<T, Integer> map) {
+            boolean removed = false;
+
+            for (Iterator<Map.Entry<T, Integer>> it = map.entrySet().iterator();
+                 it.hasNext();) {
+                Map.Entry<T, Integer> kv = it.next();
+                if (kv.getValue() == 0) {
+                    it.remove();
+                    removed = true;
+                } else {
+                    kv.setValue(kv.getValue() - 1);
+                }
+            }
+
+            return removed;
+        }
     }
 
 
@@ -141,45 +226,24 @@
         mIfIndex = ifindex;
         mHwAddr = hwaddr;
         mAllNodes = new InetSocketAddress(getAllNodesForScopeId(mIfIndex), 0);
+        mDeprecatedInfoTracker = new DeprecatedInfoTracker();
     }
 
-    public void buildNewRa(RaParams params) {
-        if (params == null || params.prefixes.isEmpty()) {
-            // No RA to be served at this time.
-            clearRa();
-            return;
-        }
-
-        if (params.mtu < IPV6_MIN_MTU) {
-            params.mtu = IPV6_MIN_MTU;
-        }
-
-        final ByteBuffer ra = ByteBuffer.wrap(mRA);
-        ra.order(ByteOrder.BIG_ENDIAN);
-
+    public void buildNewRa(RaParams deprecatedParams, RaParams newParams) {
         synchronized (mLock) {
-            try {
-                putHeader(ra, params.hasDefaultRoute);
-                putSlla(ra, mHwAddr);
-                // https://tools.ietf.org/html/rfc5175#section-4 says:
-                //
-                //     "MUST NOT be added to a Router Advertisement message
-                //      if no flags in the option are set."
-                //
-                // putExpandedFlagsOption(ra);
-                putMtu(ra, params.mtu);
-                for (IpPrefix ipp : params.prefixes) {
-                    putPio(ra, ipp);
-                }
-                if (params.dnses.size() > 0) {
-                    putRdnss(ra, params.dnses);
-                }
-                mRaLength = ra.position();
-            } catch (BufferOverflowException e) {
-                Log.e(TAG, "Could not construct new RA: " + e);
-                mRaLength = 0;
-                return;
+            if (deprecatedParams != null) {
+                mDeprecatedInfoTracker.putPrefixes(deprecatedParams.prefixes);
+                mDeprecatedInfoTracker.putDnses(deprecatedParams.dnses);
             }
+
+            if (newParams != null) {
+                // Process information that is no longer deprecated.
+                mDeprecatedInfoTracker.removePrefixes(newParams.prefixes);
+                mDeprecatedInfoTracker.removeDnses(newParams.dnses);
+            }
+
+            mRaParams = newParams;
+            assembleRaLocked();
         }
 
         maybeNotifyMulticastTransmitter();
@@ -205,14 +269,63 @@
         mUnicastResponder = null;
     }
 
-    private void clearRa() {
-        boolean notifySocket;
-        synchronized (mLock) {
-            notifySocket = (mRaLength != 0);
-            mRaLength = 0;
+    private void assembleRaLocked() {
+        final ByteBuffer ra = ByteBuffer.wrap(mRA);
+        ra.order(ByteOrder.BIG_ENDIAN);
+
+        boolean shouldSendRA = false;
+
+        try {
+            putHeader(ra, mRaParams != null && mRaParams.hasDefaultRoute);
+            putSlla(ra, mHwAddr);
+            mRaLength = ra.position();
+
+            // https://tools.ietf.org/html/rfc5175#section-4 says:
+            //
+            //     "MUST NOT be added to a Router Advertisement message
+            //      if no flags in the option are set."
+            //
+            // putExpandedFlagsOption(ra);
+
+            if (mRaParams != null) {
+                putMtu(ra, mRaParams.mtu);
+                mRaLength = ra.position();
+
+                for (IpPrefix ipp : mRaParams.prefixes) {
+                    putPio(ra, ipp, DEFAULT_LIFETIME, DEFAULT_LIFETIME);
+                    mRaLength = ra.position();
+                    shouldSendRA = true;
+                }
+
+                if (mRaParams.dnses.size() > 0) {
+                    putRdnss(ra, mRaParams.dnses, DEFAULT_LIFETIME);
+                    mRaLength = ra.position();
+                    shouldSendRA = true;
+                }
+            }
+
+            for (IpPrefix ipp : mDeprecatedInfoTracker.getPrefixes()) {
+                putPio(ra, ipp, 0, 0);
+                mRaLength = ra.position();
+                shouldSendRA = true;
+            }
+
+            final Set<Inet6Address> deprecatedDnses = mDeprecatedInfoTracker.getDnses();
+            if (!deprecatedDnses.isEmpty()) {
+                putRdnss(ra, deprecatedDnses, 0);
+                mRaLength = ra.position();
+                shouldSendRA = true;
+            }
+        } catch (BufferOverflowException e) {
+            // The packet up to mRaLength  is valid, since it has been updated
+            // progressively as the RA was built. Log an error, and continue
+            // on as best as possible.
+            Log.e(TAG, "Could not construct new RA: " + e);
         }
-        if (notifySocket) {
-            maybeNotifyMulticastTransmitter();
+
+        // We have nothing worth announcing; indicate as much to maybeSendRA().
+        if (!shouldSendRA) {
+            mRaLength = 0;
         }
     }
 
@@ -325,10 +438,11 @@
         ra.put(ND_OPTION_MTU)
           .put(MTU_NUM_8OCTETS)
           .putShort(asShort(0))
-          .putInt(mtu);
+          .putInt((mtu < IPV6_MIN_MTU) ? IPV6_MIN_MTU : mtu);
     }
 
-    private static void putPio(ByteBuffer ra, IpPrefix ipp) {
+    private static void putPio(ByteBuffer ra, IpPrefix ipp,
+                               int validTime, int preferredTime) {
         /**
             Prefix Information
 
@@ -359,13 +473,17 @@
         final byte ND_OPTION_PIO = 3;
         final byte PIO_NUM_8OCTETS = 4;
 
+        if (validTime < 0) validTime = 0;
+        if (preferredTime < 0) preferredTime = 0;
+        if (preferredTime > validTime) preferredTime = validTime;
+
         final byte[] addr = ipp.getAddress().getAddress();
         ra.put(ND_OPTION_PIO)
           .put(PIO_NUM_8OCTETS)
           .put(asByte(prefixLength))
-          .put(asByte(0xc0))  // L&A set
-          .putInt(DEFAULT_LIFETIME)
-          .putInt(DEFAULT_LIFETIME)
+          .put(asByte(0xc0)) /* L & A set */
+          .putInt(validTime)
+          .putInt(preferredTime)
           .putInt(0)
           .put(addr);
     }
@@ -407,7 +525,7 @@
         }
     }
 
-    private static void putRdnss(ByteBuffer ra, Set<Inet6Address> dnses) {
+    private static void putRdnss(ByteBuffer ra, Set<Inet6Address> dnses, int lifetime) {
         /**
             Recursive DNS Server (RDNSS) Option
 
@@ -429,9 +547,15 @@
         ra.put(ND_OPTION_RDNSS)
           .put(RDNSS_NUM_8OCTETS)
           .putShort(asShort(0))
-          .putInt(DEFAULT_LIFETIME);
+          .putInt(lifetime);
 
         for (Inet6Address dns : dnses) {
+            // NOTE: If the full of list DNS servers doesn't fit in the packet,
+            // this code will cause a buffer overflow and the RA won't include
+            // this instance of the option at all.
+            //
+            // TODO: Consider looking at ra.remaining() to determine how many
+            // DNS servers will fit, and adding only those.
             ra.put(dns.getAddress());
         }
     }
@@ -547,6 +671,13 @@
                 }
 
                 maybeSendRA(mAllNodes);
+                synchronized (mLock) {
+                    if (mDeprecatedInfoTracker.decrementCounters()) {
+                        // At least one deprecated PIO has been removed;
+                        // reassemble the RA.
+                        assembleRaLocked();
+                    }
+                }
             }
         }
 
@@ -560,15 +691,17 @@
         }
 
         private int getNextMulticastTransmitDelaySec() {
+            boolean deprecationInProgress = false;
             synchronized (mLock) {
                 if (mRaLength < MIN_RA_HEADER_SIZE) {
                     // No actual RA to send; just sleep for 1 day.
                     return DAY_IN_SECONDS;
                 }
+                deprecationInProgress = !mDeprecatedInfoTracker.isEmpty();
             }
 
             final int urgentPending = mUrgentAnnouncements.getAndDecrement();
-            if (urgentPending > 0) {
+            if ((urgentPending > 0) || deprecationInProgress) {
                 return MIN_DELAY_BETWEEN_RAS_SEC;
             }
 
diff --git a/services/retaildemo/java/com/android/server/retaildemo/PreloadAppsInstaller.java b/services/retaildemo/java/com/android/server/retaildemo/PreloadAppsInstaller.java
index 8480170..2038c9e 100644
--- a/services/retaildemo/java/com/android/server/retaildemo/PreloadAppsInstaller.java
+++ b/services/retaildemo/java/com/android/server/retaildemo/PreloadAppsInstaller.java
@@ -18,12 +18,14 @@
 
 import android.app.AppGlobals;
 import android.app.PackageInstallObserver;
+import android.content.Context;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Slog;
@@ -47,15 +49,17 @@
 
     private final IPackageManager mPackageManager;
     private final File preloadsAppsDirectory;
+    private final Context mContext;
 
     private final Map<String, String> mApkToPackageMap;
 
-    PreloadAppsInstaller() {
-        this(AppGlobals.getPackageManager(), Environment.getDataPreloadsAppsDirectory());
+    PreloadAppsInstaller(Context context) {
+        this(context, AppGlobals.getPackageManager(), Environment.getDataPreloadsAppsDirectory());
     }
 
     @VisibleForTesting
-    PreloadAppsInstaller(IPackageManager packageManager, File preloadsAppsDirectory) {
+    PreloadAppsInstaller(Context context, IPackageManager packageManager, File preloadsAppsDirectory) {
+        mContext = context;
         mPackageManager = packageManager;
         mApkToPackageMap = Collections.synchronizedMap(new ArrayMap<>());
         this.preloadsAppsDirectory = preloadsAppsDirectory;
@@ -63,31 +67,38 @@
 
     void installApps(int userId) {
         File[] files = preloadsAppsDirectory.listFiles();
+        AppInstallCounter counter = new AppInstallCounter(mContext, userId);
         if (ArrayUtils.isEmpty(files)) {
+            counter.setExpectedAppsCount(0);
             return;
         }
+        int expectedCount = 0;
         for (File file : files) {
             String apkName = file.getName();
             if (apkName.endsWith(PRELOAD_APK_EXT) && file.isFile()) {
                 String packageName = mApkToPackageMap.get(apkName);
                 if (packageName != null) {
                     try {
-                        installExistingPackage(packageName, userId);
+                        expectedCount++;
+                        installExistingPackage(packageName, userId, counter);
                     } catch (Exception e) {
                         Slog.e(TAG, "Failed to install existing package " + packageName, e);
                     }
                 } else {
                     try {
-                        installPackage(file, userId);
+                        installPackage(file, userId, counter);
+                        expectedCount++;
                     } catch (Exception e) {
                         Slog.e(TAG, "Failed to install package from " + file, e);
                     }
                 }
             }
         }
+        counter.setExpectedAppsCount(expectedCount);
     }
 
-    private void installExistingPackage(String packageName, int userId) {
+    private void installExistingPackage(String packageName, int userId,
+            AppInstallCounter counter) {
         if (DEBUG) {
             Log.d(TAG, "installExistingPackage " + packageName + " u" + userId);
         }
@@ -95,10 +106,13 @@
             mPackageManager.installExistingPackageAsUser(packageName, userId);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
+        } finally {
+            counter.appInstallFinished();
         }
     }
 
-    private void installPackage(File file, final int userId) throws IOException, RemoteException {
+    private void installPackage(File file, final int userId, AppInstallCounter counter)
+            throws IOException, RemoteException {
         final String apkName = file.getName();
         if (DEBUG) {
             Log.d(TAG, "installPackage " + apkName + " u" + userId);
@@ -111,15 +125,53 @@
                     Log.d(TAG, "Package " + basePackageName + " installed u" + userId
                             + " returnCode: " + returnCode + " msg: " + msg);
                 }
+                // Don't notify the counter for now, we'll do it in installExistingPackage
                 if (returnCode == PackageManager.INSTALL_SUCCEEDED) {
                     mApkToPackageMap.put(apkName, basePackageName);
                     // Install on user 0 so that the package is cached when demo user is re-created
-                    installExistingPackage(basePackageName, UserHandle.USER_SYSTEM);
+                    installExistingPackage(basePackageName, UserHandle.USER_SYSTEM, counter);
                 } else if (returnCode == PackageManager.INSTALL_FAILED_ALREADY_EXISTS) {
-                    installExistingPackage(basePackageName, userId);
+                    // This can only happen in first session after a reboot
+                    if (!mApkToPackageMap.containsKey(apkName)) {
+                        mApkToPackageMap.put(apkName, basePackageName);
+                    }
+                    installExistingPackage(basePackageName, userId, counter);
+                } else {
+                    Log.e(TAG, "Package " + basePackageName + " cannot be installed from "
+                            + apkName + ": " + msg + " (returnCode " + returnCode + ")");
+                    counter.appInstallFinished();
                 }
             }
         }.getBinder(), 0, SYSTEM_SERVER_PACKAGE_NAME, userId);
     }
 
+    private static class AppInstallCounter {
+        private int expectedCount = -1; // -1 means expectedCount not set
+        private int finishedCount;
+        private final Context mContext;
+        private final int userId;
+
+        AppInstallCounter(Context context, int userId) {
+            mContext = context;
+            this.userId = userId;
+        }
+
+        synchronized void appInstallFinished() {
+            this.finishedCount++;
+            checkIfAllFinished();
+        }
+
+        synchronized void setExpectedAppsCount(int expectedCount) {
+            this.expectedCount = expectedCount;
+            checkIfAllFinished();
+        }
+
+        private void checkIfAllFinished() {
+            if (expectedCount == finishedCount) {
+                Log.i(TAG, "All preloads finished installing for user " + userId);
+                Settings.Secure.putStringForUser(mContext.getContentResolver(),
+                        Settings.Secure.DEMO_USER_SETUP_COMPLETE, "1", userId);
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java
index 1a60592..6b273210 100644
--- a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java
+++ b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java
@@ -89,8 +89,8 @@
 
     private static final long SCREEN_WAKEUP_DELAY = 2500;
     private static final long USER_INACTIVITY_TIMEOUT_MIN = 10000;
-    private static final long USER_INACTIVITY_TIMEOUT_DEFAULT = 30000;
-    private static final long WARNING_DIALOG_TIMEOUT_DEFAULT = 6000;
+    private static final long USER_INACTIVITY_TIMEOUT_DEFAULT = 90000;
+    private static final long WARNING_DIALOG_TIMEOUT_DEFAULT = 0;
     private static final long MILLIS_PER_SECOND = 1000;
 
     private static final int[] VOLUME_STREAMS_TO_MUTE = {
@@ -224,8 +224,7 @@
             if (mDeviceDemoModeUri.equals(uri)) {
                 mDeviceInDemoMode = UserManager.isDeviceInDemoMode(getContext());
                 if (mDeviceInDemoMode) {
-                    SystemProperties.set(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "1");
-                    mHandler.sendEmptyMessage(MSG_START_NEW_SESSION);
+                    putDeviceInDemoMode();
                 } else {
                     SystemProperties.set(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "0");
                     if (mWakeLock.isHeld()) {
@@ -287,7 +286,6 @@
         synchronized (mActivityLock) {
             mFirstUserActivityTime = mLastUserActivityTime = SystemClock.uptimeMillis();
         }
-        mPreloadAppsInstaller = new PreloadAppsInstaller();
     }
 
     private Notification createResetNotification() {
@@ -342,9 +340,8 @@
                 UserHandle.SYSTEM);
         Settings.Secure.putIntForUser(getContext().getContentResolver(),
                 Settings.Secure.SKIP_FIRST_USE_HINTS, 1, userInfo.id);
-        Settings.Secure.putIntForUser(getContext().getContentResolver(),
-                Settings.Global.PACKAGE_VERIFIER_ENABLE, 0, userInfo.id);
-
+        Settings.Global.putInt(getContext().getContentResolver(),
+                Settings.Global.PACKAGE_VERIFIER_ENABLE, 0);
         grantRuntimePermissionToCamera(user);
         clearPrimaryCallLog();
     }
@@ -465,6 +462,11 @@
         return mSystemUserConfiguration;
     }
 
+    private void putDeviceInDemoMode() {
+        SystemProperties.set(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "1");
+        mHandler.sendEmptyMessage(MSG_START_NEW_SESSION);
+    }
+
     @Override
     public void onStart() {
         if (DEBUG) {
@@ -479,26 +481,31 @@
 
     @Override
     public void onBootPhase(int bootPhase) {
-        if (bootPhase != PHASE_THIRD_PARTY_APPS_CAN_START) {
-            return;
+        switch (bootPhase) {
+            case PHASE_THIRD_PARTY_APPS_CAN_START:
+                mPreloadAppsInstaller = new PreloadAppsInstaller(getContext());
+                mPm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
+                mAmi = LocalServices.getService(ActivityManagerInternal.class);
+                mWakeLock = mPm
+                        .newWakeLock(
+                                PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,
+                                TAG);
+                mNm = NotificationManager.from(getContext());
+                mCameraManager = (CameraManager) getContext()
+                        .getSystemService(Context.CAMERA_SERVICE);
+                mCameraIdsWithFlash = getCameraIdsWithFlash();
+                SettingsObserver settingsObserver = new SettingsObserver(mHandler);
+                settingsObserver.register();
+                settingsObserver.refreshTimeoutConstants();
+                registerBroadcastReceiver();
+                break;
+            case PHASE_BOOT_COMPLETED:
+                if (UserManager.isDeviceInDemoMode(getContext())) {
+                    mDeviceInDemoMode = true;
+                    putDeviceInDemoMode();
+                }
+                break;
         }
-        mPm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
-        mAmi = LocalServices.getService(ActivityManagerInternal.class);
-        mWakeLock = mPm
-                .newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
-        mNm = NotificationManager.from(getContext());
-        mCameraManager = (CameraManager) getContext().getSystemService(Context.CAMERA_SERVICE);
-        mCameraIdsWithFlash = getCameraIdsWithFlash();
-
-        if (UserManager.isDeviceInDemoMode(getContext())) {
-            mDeviceInDemoMode = true;
-            SystemProperties.set(SYSTEM_PROPERTY_RETAIL_DEMO_ENABLED, "1");
-            mHandler.sendEmptyMessage(MSG_START_NEW_SESSION);
-        }
-        SettingsObserver settingsObserver = new SettingsObserver(mHandler);
-        settingsObserver.register();
-        settingsObserver.refreshTimeoutConstants();
-        registerBroadcastReceiver();
     }
 
     @Override
diff --git a/services/tests/servicestests/assets/shortcut/shortcut_legacy_file.xml b/services/tests/servicestests/assets/shortcut/shortcut_legacy_file.xml
index 872dc3a..f7eee91 100644
--- a/services/tests/servicestests/assets/shortcut/shortcut_legacy_file.xml
+++ b/services/tests/servicestests/assets/shortcut/shortcut_legacy_file.xml
@@ -16,7 +16,7 @@
 <user locales="en-US" last-app-scan-time="3113976673">
     <package name="com.android.test.1" call-count="0" last-reset="1468976368772">
         <package-info version="25" last_udpate_time="1230796800000" />
-        <shortcut id="manifest-shortcut-storage" activity="com.android.test.1/com.android.test.1.Settings" title="Storage" titleid="2131625197" titlename="storage_settings" textid="0" dmessageid="0" intent="#Intent;action=android.settings.INTERNAL_STORAGE_SETTINGS;end" timestamp="1469050672334" rank="4" flags="420" icon-res="2130837747" icon-resname="drawable/ic_shortcut_storage" >
+        <shortcut id="manifest-shortcut-storage" activity="com.android.test.1/com.android.test.1.Settings" title="Storage" intent="#Intent;action=android.settings.INTERNAL_STORAGE_SETTINGS;end" timestamp="1469050672334" flags="1" >
             <intent-extras>
                 <int name="key" value="12345" />
             </intent-extras>
diff --git a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java
index f2a9315..59ccbd9 100644
--- a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java
@@ -51,6 +51,7 @@
 import android.net.NetworkMisc;
 import android.net.NetworkRequest;
 import android.net.RouteInfo;
+import android.net.metrics.IpConnectivityLog;
 import android.os.ConditionVariable;
 import android.os.Handler;
 import android.os.HandlerThread;
@@ -585,8 +586,9 @@
         public String gen204ProbeRedirectUrl = null;
 
         public WrappedNetworkMonitor(Context context, Handler handler,
-            NetworkAgentInfo networkAgentInfo, NetworkRequest defaultRequest) {
-            super(context, handler, networkAgentInfo, defaultRequest);
+                NetworkAgentInfo networkAgentInfo, NetworkRequest defaultRequest,
+                IpConnectivityLog log) {
+            super(context, handler, networkAgentInfo, defaultRequest, log);
         }
 
         @Override
@@ -599,8 +601,9 @@
         private WrappedNetworkMonitor mLastCreatedNetworkMonitor;
 
         public WrappedConnectivityService(Context context, INetworkManagementService netManager,
-                INetworkStatsService statsService, INetworkPolicyManager policyManager) {
-            super(context, netManager, statsService, policyManager);
+                INetworkStatsService statsService, INetworkPolicyManager policyManager,
+                IpConnectivityLog log) {
+            super(context, netManager, statsService, policyManager, log);
             mLingerDelayMs = TEST_LINGER_DELAY_MS;
         }
 
@@ -639,8 +642,8 @@
         @Override
         public NetworkMonitor createNetworkMonitor(Context context, Handler handler,
                 NetworkAgentInfo nai, NetworkRequest defaultRequest) {
-            final WrappedNetworkMonitor monitor = new WrappedNetworkMonitor(context, handler, nai,
-                    defaultRequest);
+            final WrappedNetworkMonitor monitor = new WrappedNetworkMonitor(
+                    context, handler, nai, defaultRequest, mock(IpConnectivityLog.class));
             mLastCreatedNetworkMonitor = monitor;
             return monitor;
         }
@@ -705,7 +708,8 @@
         mService = new WrappedConnectivityService(mServiceContext,
                 mock(INetworkManagementService.class),
                 mock(INetworkStatsService.class),
-                mock(INetworkPolicyManager.class));
+                mock(INetworkPolicyManager.class),
+                mock(IpConnectivityLog.class));
 
         mService.systemReady();
         mCm = new WrappedConnectivityManager(getContext(), mService);
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index 3a2e946..2d96bff 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -27,7 +27,6 @@
 import android.content.pm.PackageManager;
 import android.net.wifi.WifiInfo;
 import android.os.Build.VERSION_CODES;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Process;
 import android.os.UserHandle;
@@ -42,7 +41,6 @@
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 
-import org.mockito.ArgumentCaptor;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -62,7 +60,6 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.validateMockitoUsage;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -454,8 +451,7 @@
                 .thenReturn(true);
 
         dpm.removeActiveAdmin(admin1);
-
-        assertTrue(dpm.isRemovingAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isAdminActiveAsUser(admin1, DpmMockContext.CALLER_USER_HANDLE));
     }
 
     /**
@@ -479,8 +475,7 @@
         mContext.binder.callingUid = 1234567;
 
         dpms.removeActiveAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE);
-
-        assertTrue(dpm.isRemovingAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isAdminActiveAsUser(admin1, DpmMockContext.CALLER_USER_HANDLE));
 
         // TODO DO Still can't be removed in this case.
     }
@@ -510,28 +505,18 @@
         mContext.callerPermissions.clear();
         dpm.removeActiveAdmin(admin1);
 
-        final ArgumentCaptor<BroadcastReceiver> brCap =
-                ArgumentCaptor.forClass(BroadcastReceiver.class);
-
-        // Is removing now, but not removed yet.
-        assertTrue(dpm.isAdminActive(admin1));
-        assertTrue(dpm.isRemovingAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE));
-
         verify(mContext.spiedContext).sendOrderedBroadcastAsUser(
                 MockUtils.checkIntentAction(
                         DeviceAdminReceiver.ACTION_DEVICE_ADMIN_DISABLED),
                 MockUtils.checkUserHandle(DpmMockContext.CALLER_USER_HANDLE),
                 isNull(String.class),
-                brCap.capture(),
+                any(BroadcastReceiver.class),
                 eq(dpms.mHandler),
                 eq(Activity.RESULT_OK),
                 isNull(String.class),
                 isNull(Bundle.class));
 
-        brCap.getValue().onReceive(mContext, null);
-
-        assertFalse(dpm.isAdminActive(admin1));
-        assertFalse(dpm.isRemovingAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isAdminActiveAsUser(admin1, DpmMockContext.CALLER_USER_HANDLE));
 
         // Again broadcast from saveSettingsLocked().
         verify(mContext.spiedContext, times(2)).sendBroadcastAsUser(
@@ -853,9 +838,7 @@
                 MockUtils.checkUserRestrictions()
         );
 
-        assertTrue(dpm.isAdminActive(admin1));
-        assertTrue(dpm.isRemovingAdmin(admin1, UserHandle.USER_SYSTEM));
-
+        assertFalse(dpm.isAdminActiveAsUser(admin1, UserHandle.USER_SYSTEM));
         // TODO Check other calls.
     }
 
@@ -945,7 +928,7 @@
 
         // Check
         assertFalse(dpm.isProfileOwnerApp(admin1.getPackageName()));
-        assertTrue(dpm.isRemovingAdmin(admin1, DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isAdminActiveAsUser(admin1, DpmMockContext.CALLER_USER_HANDLE));
     }
 
     public void testSetProfileOwner_failures() throws Exception {
@@ -1477,7 +1460,7 @@
 
         // Remove PO.
         dpm.clearProfileOwner(admin1);
-
+        dpm.setActiveAdmin(admin1, false);
         // Test 4, Caller is DO now.
         assertTrue(dpm.setDeviceOwner(admin1, null, UserHandle.USER_SYSTEM));
 
@@ -1526,6 +1509,7 @@
 
         // Remove PO and add DO.
         dpm.clearProfileOwner(admin1);
+        dpm.setActiveAdmin(admin1, false);
         assertTrue(dpm.setDeviceOwner(admin1, null, UserHandle.USER_SYSTEM));
 
         // admin1 is DO.
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
index f6e35f5..0783afc 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
@@ -527,6 +527,7 @@
             int initialCode, String initialData, Bundle initialExtras) {
         spiedContext.sendOrderedBroadcastAsUser(intent, user, receiverPermission, resultReceiver,
                 scheduler, initialCode, initialData, initialExtras);
+        resultReceiver.onReceive(spiedContext, intent);
     }
 
     @Override
diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
index ecebbc4..1c7a138 100644
--- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
@@ -36,6 +36,7 @@
 import android.annotation.NonNull;
 import android.annotation.UserIdInt;
 import android.app.Activity;
+import android.app.ActivityManager;
 import android.app.ActivityManagerInternal;
 import android.app.IUidObserver;
 import android.app.usage.UsageStatsManagerInternal;
@@ -687,19 +688,28 @@
 
         // Set up isUserRunning and isUserUnlocked.
         when(mMockUserManager.isUserRunning(anyInt())).thenAnswer(new AnswerWithSystemCheck<>(
-                        inv -> mRunningUsers.get((Integer) inv.getArguments()[0])));
+                        inv -> b(mRunningUsers.get((Integer) inv.getArguments()[0]))));
 
-        when(mMockUserManager.isUserUnlocked(anyInt())).thenAnswer(new AnswerWithSystemCheck<>(
-                        inv -> {
-                            final int userId = (Integer) inv.getArguments()[0];
-                            return mRunningUsers.get(userId) && mUnlockedUsers.get(userId);
-                        }));
+        when(mMockUserManager.isUserUnlocked(anyInt()))
+                .thenAnswer(new AnswerWithSystemCheck<>(inv -> {
+                    final int userId = (Integer) inv.getArguments()[0];
+                    return b(mRunningUsers.get(userId)) && b(mUnlockedUsers.get(userId));
+                }));
+        // isUserUnlockingOrUnlocked() return the same value as isUserUnlocked().
+        when(mMockUserManager.isUserUnlockingOrUnlocked(anyInt()))
+                .thenAnswer(new AnswerWithSystemCheck<>(inv -> {
+                    final int userId = (Integer) inv.getArguments()[0];
+                    return b(mRunningUsers.get(userId)) && b(mUnlockedUsers.get(userId));
+                }));
 
-        // User 0 is always running
+        when(mMockActivityManagerInternal.getUidProcessState(anyInt())).thenReturn(
+                ActivityManager.PROCESS_STATE_CACHED_EMPTY);
+
+        // User 0 and P0 are always running
         mRunningUsers.put(USER_0, true);
         mRunningUsers.put(USER_10, false);
         mRunningUsers.put(USER_11, false);
-        mRunningUsers.put(USER_P0, false);
+        mRunningUsers.put(USER_P0, true);
 
         // Unlock all users by default.
         mUnlockedUsers.put(USER_0, true);
@@ -715,6 +725,10 @@
         setCaller(CALLING_PACKAGE_1);
     }
 
+    private static boolean b(Boolean value) {
+        return (value != null && value);
+    }
+
     /**
      * Returns a boolean but also checks if the current UID is SYSTEM_UID.
      */
@@ -1726,6 +1740,8 @@
     }
 
     protected void prepareCrossProfileDataSet() {
+        mRunningUsers.put(USER_10, true); // this test needs user 10.
+
         runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"),
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
index c0752e0..253334e 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
@@ -57,13 +57,11 @@
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.Manifest.permission;
 import android.app.ActivityManager;
@@ -82,6 +80,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.Process;
 import android.os.UserHandle;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
@@ -294,6 +293,8 @@
 
         // TODO Check max number
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_2, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(makeShortcut("s1"))));
         });
@@ -340,6 +341,8 @@
 
         // TODO Check fields.
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_2, USER_10, () -> {
             assertTrue(mManager.addDynamicShortcuts(list(makeShortcut("s1"))));
         });
@@ -348,6 +351,8 @@
     public void testPublishWithNoActivity() {
         // If activity is not explicitly set, use the default one.
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_2, USER_10, () -> {
             // s1 and s3 has no activities.
             final ShortcutInfo si1 = new ShortcutInfo.Builder(mClientContext, "si1")
@@ -450,6 +455,8 @@
     }
 
     public void testPublishWithNoActivity_noMainActivityInPackage() {
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_2, USER_10, () -> {
             final ShortcutInfo si1 = new ShortcutInfo.Builder(mClientContext, "si1")
                     .setShortLabel("label1")
@@ -722,6 +729,8 @@
         });
 
         // For USER-10, let's try without updating the times.
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             mManager.setDynamicShortcuts(list(
                     makeShortcutWithIcon("10s1", bmp32x32),
@@ -1071,6 +1080,8 @@
 
         // TODO Check bitmap removal too.
 
+        mRunningUsers.put(USER_11, true);
+
         runWithCaller(CALLING_PACKAGE_2, USER_11, () -> {
             mManager.updateShortcuts(list());
         });
@@ -2048,6 +2059,9 @@
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
         });
+
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"),
@@ -2769,6 +2783,8 @@
                 .areAllWithKeyFieldsOnly()
                 .areAllDynamic();
 
+        mRunningUsers.put(USER_10, true);
+
         // Different user, callback shouldn't be called.
         assertForLauncherCallback(mLauncherApps, () -> {
             runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
@@ -2980,27 +2996,7 @@
         assertCallbackReceived(cP0_1, HANDLE_USER_0, CALLING_PACKAGE_3,
                 "s1", "s2", "s3", "s4", "s5", "s6");
 
-        // Work profile, but not running, so don't send notifications.
-
-        resetAll(all);
-        runWithCaller(CALLING_PACKAGE_1, USER_P0, () -> {
-            mManager.removeDynamicShortcuts(list());
-        });
-        waitOnMainThread();
-
-        assertCallbackNotReceived(c0_1);
-        assertCallbackNotReceived(c0_2);
-        assertCallbackNotReceived(c0_3);
-        assertCallbackNotReceived(c0_4);
-        assertCallbackNotReceived(cP0_1);
-        assertCallbackNotReceived(c10_1);
-        assertCallbackNotReceived(c10_2);
-        assertCallbackNotReceived(c11_1);
-
-        // Work profile, now running.
-        mRunningUsers.clear();
-        mRunningUsers.put(USER_P0, true);
-
+        // Work profile.
         resetAll(all);
         runWithCaller(CALLING_PACKAGE_1, USER_P0, () -> {
             mManager.removeDynamicShortcuts(list());
@@ -3017,7 +3013,6 @@
         assertCallbackReceived(cP0_1, HANDLE_USER_P0, CALLING_PACKAGE_1, "s1", "s2", "s3", "s4");
 
         // Normal secondary user.
-        mRunningUsers.clear();
         mRunningUsers.put(USER_10, true);
 
         resetAll(all);
@@ -3112,6 +3107,9 @@
             assertEquals(START_TIME + INTERVAL, mManager.getRateLimitResetTime());
             assertEquals(2, mManager.getRemainingCallCount());
         });
+
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             final Icon icon1 = Icon.createWithResource(getTestContext(), R.drawable.black_64x64);
             final Icon icon2 = Icon.createWithBitmap(BitmapFactory.decodeResource(
@@ -3223,6 +3221,8 @@
                     HANDLE_USER_0);
         });
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s10_1"))));
@@ -3558,6 +3558,9 @@
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
         });
+
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
@@ -3876,6 +3879,8 @@
         setCaller(CALLING_PACKAGE_3, USER_0);
         assertTrue(mManager.addDynamicShortcuts(list(makeShortcutWithIcon("s1", bmp32x32))));
 
+        mRunningUsers.put(USER_10, true);
+
         setCaller(CALLING_PACKAGE_1, USER_10);
         assertTrue(mManager.addDynamicShortcuts(list(makeShortcutWithIcon("s1", bmp32x32))));
 
@@ -3988,6 +3993,8 @@
         setCaller(CALLING_PACKAGE_3, USER_0);
         assertTrue(mManager.addDynamicShortcuts(list(makeShortcutWithIcon("s1", bmp32x32))));
 
+        mRunningUsers.put(USER_10, true);
+
         setCaller(CALLING_PACKAGE_1, USER_10);
         assertTrue(mManager.addDynamicShortcuts(list(makeShortcutWithIcon("s1", bmp32x32))));
 
@@ -4114,6 +4121,8 @@
                     makeShortcutWithIcon("s1", res32x32))));
         });
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             assertTrue(mManager.setDynamicShortcuts(list(
                     makeShortcutWithIcon("s1", res32x32),
@@ -4139,28 +4148,7 @@
 
         ArgumentCaptor<List> shortcuts;
 
-        // First, call the event without updating the versions.
-        reset(c0);
-        reset(c10);
-
-                mService.mPackageMonitor.onReceive(getTestContext(),
-                genPackageUpdateIntent(CALLING_PACKAGE_1, USER_0));
-                mService.mPackageMonitor.onReceive(getTestContext(),
-                genPackageUpdateIntent(CALLING_PACKAGE_1, USER_10));
-
-        waitOnMainThread();
-
-        // Version not changed, so no callback.
-        verify(c0, times(0)).onShortcutsChanged(
-                eq(CALLING_PACKAGE_1),
-                any(List.class),
-                any(UserHandle.class));
-        verify(c10, times(0)).onShortcutsChanged(
-                eq(CALLING_PACKAGE_1),
-                any(List.class),
-                any(UserHandle.class));
-
-        // Next, update the version info for package 1.
+        // Update the version info for package 1.
         reset(c0);
         reset(c10);
         updatePackageVersion(CALLING_PACKAGE_1, 1);
@@ -5164,7 +5152,7 @@
     }
 
 
-    public void testBackupAndRestore_manifestNotRestored() {
+    public void testBackupAndRestore_manifestRePublished() {
         // Publish two manifest shortcuts.
         addManifestShortcutResource(
                 new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()),
@@ -5173,9 +5161,15 @@
         mService.mPackageMonitor.onReceive(mServiceContext,
                 genPackageAddIntent(CALLING_PACKAGE_1, USER_0));
 
+        runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
+            assertTrue(mManager.setDynamicShortcuts(list(
+                    makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
+        });
+
         // Pin from launcher 1.
         runWithCaller(LAUNCHER_1, USER_0, () -> {
-            mLauncherApps.pinShortcuts(CALLING_PACKAGE_1, list("ms1", "ms2"), HANDLE_USER_0);
+            mLauncherApps.pinShortcuts(CALLING_PACKAGE_1,
+                    list("ms1", "ms2", "s1", "s2"), HANDLE_USER_0);
         });
 
         // Update and now ms2 is gone -> disabled.
@@ -5189,9 +5183,18 @@
         // Make sure the manifest shortcuts have been published.
         runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
             assertWith(getCallerShortcuts())
-                    .areAllPinned()
-                    .haveIds("ms1", "ms2")
+                    .selectManifest()
+                    .haveIds("ms1")
 
+                    .revertToOriginalList()
+                    .selectDynamic()
+                    .haveIds("s1", "s2", "s3")
+
+                    .revertToOriginalList()
+                    .selectPinned()
+                    .haveIds("ms1", "ms2", "s1", "s2")
+
+                    .revertToOriginalList()
                     .selectByIds("ms1")
                     .areAllManifest()
                     .areAllEnabled()
@@ -5202,10 +5205,130 @@
                     .areAllDisabled();
         });
 
-        // Now do the regular backup & restore test.
-        // The existence of the manifest shortcuts shouldn't affect the result.
-        prepareCrossProfileDataSet();
         backupAndRestore();
+
+        // When re-installing the app, the manifest shortcut should be re-published.
+        mService.mPackageMonitor.onReceive(mServiceContext,
+                genPackageAddIntent(CALLING_PACKAGE_1, USER_0));
+        mService.mPackageMonitor.onReceive(mServiceContext,
+                genPackageAddIntent(LAUNCHER_1, USER_0));
+
+        runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
+            assertWith(getCallerVisibleShortcuts())
+                    .selectPinned()
+                    // ms2 was disabled, so not restored.
+                    .haveIds("ms1", "s1", "s2")
+                    .areAllEnabled()
+
+                    .revertToOriginalList()
+                    .selectByIds("ms1")
+                    .areAllManifest()
+
+                    .revertToOriginalList()
+                    .selectByIds("s1", "s2")
+                    .areAllNotDynamic()
+                    ;
+        });
+    }
+
+    /**
+     * It's the case with preintalled apps -- when applyRestore() is called, the system
+     * apps are already installed, so manifest shortcuts need to be re-published.
+     */
+    public void testBackupAndRestore_appAlreadyInstalledWhenRestored() {
+        // Pre-backup.  Same as testBackupAndRestore_manifestRePublished().
+
+        // Publish two manifest shortcuts.
+        addManifestShortcutResource(
+                new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()),
+                R.xml.shortcut_2);
+        updatePackageVersion(CALLING_PACKAGE_1, 1);
+        mService.mPackageMonitor.onReceive(mServiceContext,
+                genPackageAddIntent(CALLING_PACKAGE_1, USER_0));
+
+        runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
+            assertTrue(mManager.setDynamicShortcuts(list(
+                    makeShortcut("s1"), makeShortcut("s2"), makeShortcut("s3"))));
+        });
+
+        // Pin from launcher 1.
+        runWithCaller(LAUNCHER_1, USER_0, () -> {
+            mLauncherApps.pinShortcuts(CALLING_PACKAGE_1,
+                    list("ms1", "ms2", "s1", "s2"), HANDLE_USER_0);
+        });
+
+        // Update and now ms2 is gone -> disabled.
+        addManifestShortcutResource(
+                new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()),
+                R.xml.shortcut_1);
+        updatePackageVersion(CALLING_PACKAGE_1, 1);
+        mService.mPackageMonitor.onReceive(mServiceContext,
+                genPackageAddIntent(CALLING_PACKAGE_1, USER_0));
+
+        // Make sure the manifest shortcuts have been published.
+        runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
+            assertWith(getCallerShortcuts())
+                    .selectManifest()
+                    .haveIds("ms1")
+
+                    .revertToOriginalList()
+                    .selectDynamic()
+                    .haveIds("s1", "s2", "s3")
+
+                    .revertToOriginalList()
+                    .selectPinned()
+                    .haveIds("ms1", "ms2", "s1", "s2")
+
+                    .revertToOriginalList()
+                    .selectByIds("ms1")
+                    .areAllManifest()
+                    .areAllEnabled()
+
+                    .revertToOriginalList()
+                    .selectByIds("ms2")
+                    .areAllNotManifest()
+                    .areAllDisabled();
+        });
+
+        // Backup and *without restarting the service, just call applyRestore()*.
+        {
+            int prevUid = mInjectedCallingUid;
+            mInjectedCallingUid = Process.SYSTEM_UID; // Only system can call it.
+
+            dumpsysOnLogcat("Before backup");
+
+            final byte[] payload = mService.getBackupPayload(USER_0);
+            if (ENABLE_DUMP) {
+                final String xml = new String(payload);
+                Log.v(TAG, "Backup payload:");
+                for (String line : xml.split("\n")) {
+                    Log.v(TAG, line);
+                }
+            }
+            mService.applyRestore(payload, USER_0);
+
+            dumpsysOnLogcat("After restore");
+
+            mInjectedCallingUid = prevUid;
+        }
+
+        // The check is also the same as testBackupAndRestore_manifestRePublished().
+        runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
+            assertWith(getCallerVisibleShortcuts())
+                    .selectPinned()
+                    // ms2 was disabled, so not restored.
+                    .haveIds("ms1", "s1", "s2")
+                    .areAllEnabled()
+
+                    .revertToOriginalList()
+                    .selectByIds("ms1")
+                    .areAllManifest()
+
+                    .revertToOriginalList()
+                    .selectByIds("s1", "s2")
+                    .areAllNotDynamic()
+            ;
+        });
     }
 
     public void testSaveAndLoad_crossProfile() {
@@ -5441,6 +5564,8 @@
         });
 
         // Try on another user, with some packages uninstalled.
+        mRunningUsers.put(USER_10, true);
+
         uninstallPackage(USER_10, CALLING_PACKAGE_1);
         uninstallPackage(USER_10, CALLING_PACKAGE_3);
 
@@ -5621,6 +5746,8 @@
         uninstallPackage(USER_10, CALLING_PACKAGE_4);
 
         mService.handleUnlockUser(USER_0);
+
+        mRunningUsers.put(USER_10, true);
         mService.handleUnlockUser(USER_10);
 
         // Originally no manifest shortcuts.
@@ -5736,6 +5863,7 @@
             assertEmpty(mManager.getPinnedShortcuts());
         });
         // Send add broadcast, but the user is not running, so should be ignored.
+        mService.handleCleanupUser(USER_10);
         mRunningUsers.put(USER_10, false);
         mUnlockedUsers.put(USER_10, false);
 
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
index 54b2a15..d25923c 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
@@ -851,6 +851,8 @@
     }
 
     public void testShortcutInfoSaveAndLoad() throws InterruptedException {
+        mRunningUsers.put(USER_10, true);
+
         setCaller(CALLING_PACKAGE_1, USER_10);
 
         final Icon bmp32x32 = Icon.createWithBitmap(BitmapFactory.decodeResource(
@@ -930,6 +932,8 @@
     }
 
     public void testShortcutInfoSaveAndLoad_resId() throws InterruptedException {
+        mRunningUsers.put(USER_10, true);
+
         setCaller(CALLING_PACKAGE_1, USER_10);
 
         final Icon res32x32 = Icon.createWithResource(mClientContext, R.drawable.black_32x32);
@@ -1794,6 +1798,8 @@
     }
 
     public void testReportShortcutUsed() {
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_10, () -> {
             reset(mMockUsageStatsManagerInternal);
 
@@ -1999,4 +2005,36 @@
                     });
         });
     }
+
+    public void testIsUserUnlocked() {
+        mRunningUsers.clear();
+        mUnlockedUsers.clear();
+
+        assertFalse(mService.isUserUnlockedL(USER_0));
+        assertFalse(mService.isUserUnlockedL(USER_10));
+
+        // Start user 0, still locked.
+        mRunningUsers.put(USER_0, true);
+        assertFalse(mService.isUserUnlockedL(USER_0));
+        assertFalse(mService.isUserUnlockedL(USER_10));
+
+        // Unlock user.
+        mUnlockedUsers.put(USER_0, true);
+        assertTrue(mService.isUserUnlockedL(USER_0));
+        assertFalse(mService.isUserUnlockedL(USER_10));
+
+        // Clear again.
+        mRunningUsers.clear();
+        mUnlockedUsers.clear();
+
+        // Directly call the lifecycle event.  Now also locked.
+        mService.handleUnlockUser(USER_0);
+        assertTrue(mService.isUserUnlockedL(USER_0));
+        assertFalse(mService.isUserUnlockedL(USER_10));
+
+        // Directly call the stop lifecycle event.  Goes back to the initial state.
+        mService.handleCleanupUser(USER_0);
+        assertFalse(mService.isUserUnlockedL(USER_0));
+        assertFalse(mService.isUserUnlockedL(USER_10));
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest6.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest6.java
index 5f24637..ba4dbc1 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest6.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest6.java
@@ -183,6 +183,8 @@
     }
 
     public void testHasShortcutHostPermissionInner_multiUser() {
+        mRunningUsers.put(USER_10, true);
+
         prepareGetHomeActivitiesAsUser(
                 /* preferred */ null,
                 list(getSystemLauncher(), getFallbackLauncher()),
@@ -220,6 +222,8 @@
     }
 
     public void testHasShortcutHostPermissionInner_clearCache() {
+        mRunningUsers.put(USER_10, true);
+
         prepareGetHomeActivitiesAsUser(
                 /* preferred */ null,
                 list(getSystemLauncher(), getFallbackLauncher()),
@@ -242,12 +246,18 @@
         assertEquals(cn(CALLING_PACKAGE_2, "name"),
                 mService.getUserShortcutsLocked(USER_10).getCachedLauncher());
 
+        // Test it on a non-running user.
         // Send ACTION_PREFERRED_ACTIVITY_CHANGED on user 10.
         // But the user is not running, so will be ignored.
+        mRunningUsers.put(USER_10, false);
+
         mService.mPackageMonitor.onReceive(mServiceContext,
                 new Intent(Intent.ACTION_PREFERRED_ACTIVITY_CHANGED).putExtra(
                         Intent.EXTRA_USER_HANDLE, USER_10));
 
+        // Need to run the user again to access the internal status.
+        mRunningUsers.put(USER_10, true);
+
         assertEquals(cn(PACKAGE_SYSTEM_LAUNCHER, PACKAGE_SYSTEM_LAUNCHER_NAME),
                 mService.getUserShortcutsLocked(USER_0).getCachedLauncher());
 
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest7.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest7.java
index f9ff514..3c99174 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest7.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest7.java
@@ -151,10 +151,14 @@
 
         mInjectedCallingUid = Process.SHELL_UID;
 
+        mRunningUsers.put(USER_10, false);
+
         assertTrue(resultContains(
                 callShellCommand("reset-throttling", "--user", "10"),
                 "User 10 is not running or locked"));
 
+        mRunningUsers.put(USER_10, true);
+
         runWithCaller(CALLING_PACKAGE_1, USER_0, () -> {
             assertTrue(mManager.getRemainingCallCount() < 3);
         });
diff --git a/services/tests/servicestests/src/com/android/server/usage/AppIdleHistoryTests.java b/services/tests/servicestests/src/com/android/server/usage/AppIdleHistoryTests.java
index 9ccb1a6..0bd014c 100644
--- a/services/tests/servicestests/src/com/android/server/usage/AppIdleHistoryTests.java
+++ b/services/tests/servicestests/src/com/android/server/usage/AppIdleHistoryTests.java
@@ -67,7 +67,7 @@
         // Screen on time should not keep progressing with screen is off
         assertEquals(aih.getScreenOnTimeLocked(7000), 3000);
         assertEquals(aih.getScreenOnTimeLocked(8000), 3000);
-        aih.writeElapsedTimeLocked();
+        aih.writeAppIdleDurationsLocked();
 
         // Check if the screen on time is persisted across instantiations
         AppIdleHistory aih2 = new AppIdleHistory(mStorageDir, 0);
diff --git a/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java b/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java
index 5d29363..78f95c4 100644
--- a/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java
+++ b/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java
@@ -55,6 +55,8 @@
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
+import org.json.JSONException;
+import org.json.JSONObject;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 
@@ -86,7 +88,7 @@
 public class ShortcutManagerTestUtils {
     private static final String TAG = "ShortcutManagerUtils";
 
-    private static final boolean ENABLE_DUMPSYS = false; // DO NOT SUBMIT WITH true
+    private static final boolean ENABLE_DUMPSYS = true; // DO NOT SUBMIT WITH true
 
     private static final int STANDARD_TIMEOUT_SEC = 5;
 
@@ -233,6 +235,29 @@
                 + " --user " + userId + " " + packageName);
     }
 
+    public static void anyContains(List<String> result, String expected) {
+        for (String l : result) {
+            if (l.contains(expected)) {
+                return;
+            }
+        }
+        fail("Result didn't contain '" + expected + "': was\n" + result);
+    }
+
+    public static void enableComponent(Instrumentation instrumentation, ComponentName cn,
+            boolean enable) {
+
+        final String word = (enable ? "enable" : "disable");
+        runCommand(instrumentation,
+                "pm " + word + " " + cn.flattenToString()
+                , result ->concatResult(result).contains(word));
+    }
+
+    public static void appOps(Instrumentation instrumentation, String packageName,
+            String op, String mode) {
+        runCommand(instrumentation, "appops set " + packageName + " " + op + " " + mode);
+    }
+
     public static void dumpsysShortcut(Instrumentation instrumentation) {
         if (!ENABLE_DUMPSYS) {
             return;
@@ -243,6 +268,18 @@
         }
     }
 
+    public static JSONObject getCheckinDump(Instrumentation instrumentation) throws JSONException {
+        return new JSONObject(concatResult(runCommand(instrumentation, "dumpsys shortcut -c")));
+    }
+
+    public static boolean isLowRamDevice(Instrumentation instrumentation) throws JSONException {
+        return getCheckinDump(instrumentation).getBoolean("lowRam");
+    }
+
+    public static int getIconSize(Instrumentation instrumentation) throws JSONException {
+        return getCheckinDump(instrumentation).getInt("iconSize");
+    }
+
     public static Bundle makeBundle(Object... keysAndValues) {
         assertTrue((keysAndValues.length % 2) == 0);
 
@@ -1014,4 +1051,18 @@
 
         return asserter;
     }
+
+    public static void retryUntil(BooleanSupplier checker, String message) {
+        final long timeOut = System.currentTimeMillis() + 30 * 1000; // wait for 30 seconds.
+        while (!checker.getAsBoolean()) {
+            if (System.currentTimeMillis() > timeOut) {
+                break;
+            }
+            try {
+                Thread.sleep(200);
+            } catch (InterruptedException ignore) {
+            }
+        }
+        assertTrue(message, checker.getAsBoolean());
+    }
 }
diff --git a/services/usage/java/com/android/server/usage/AppIdleHistory.java b/services/usage/java/com/android/server/usage/AppIdleHistory.java
index a3313c9..f69dae4 100644
--- a/services/usage/java/com/android/server/usage/AppIdleHistory.java
+++ b/services/usage/java/com/android/server/usage/AppIdleHistory.java
@@ -118,7 +118,6 @@
         } else {
             mScreenOnDuration += elapsedRealtime - mScreenOnSnapshot;
             mElapsedDuration += elapsedRealtime - mElapsedSnapshot;
-            writeScreenOnTimeLocked();
             mElapsedSnapshot = elapsedRealtime;
         }
     }
@@ -167,7 +166,7 @@
     /**
      * To be called periodically to keep track of elapsed time when app idle times are written
      */
-    public void writeElapsedTimeLocked() {
+    public void writeAppIdleDurationsLocked() {
         final long elapsedRealtime = SystemClock.elapsedRealtime();
         // Only bump up and snapshot the elapsed time. Don't change screen on duration.
         mElapsedDuration += elapsedRealtime - mElapsedSnapshot;
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 69cf1a2..8284773 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -304,9 +304,9 @@
 
         @Override public void onDisplayChanged(int displayId) {
             if (displayId == Display.DEFAULT_DISPLAY) {
+                final boolean displayOn = isDisplayOn();
                 synchronized (UsageStatsService.this.mLock) {
-                    mAppIdleHistory.updateDisplayLocked(isDisplayOn(),
-                            SystemClock.elapsedRealtime());
+                    mAppIdleHistory.updateDisplayLocked(displayOn, SystemClock.elapsedRealtime());
                 }
             }
         }
@@ -1005,9 +1005,9 @@
             service.persistActiveStats();
             mAppIdleHistory.writeAppIdleTimesLocked(mUserState.keyAt(i));
         }
-        // Persist elapsed time periodically, in case screen doesn't get toggled
-        // until the next boot
-        mAppIdleHistory.writeElapsedTimeLocked();
+        // Persist elapsed and screen on time. If this fails for whatever reason, the apps will be
+        // considered not-idle, which is the safest outcome in such an event.
+        mAppIdleHistory.writeAppIdleDurationsLocked();
         mHandler.removeMessages(MSG_FLUSH_TO_DISK);
     }
 
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 1d19637..8560651 100644
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -406,8 +406,7 @@
             boolean sinkPower = status.getCurrentPowerRole() == UsbPort.POWER_ROLE_SINK;
 
             if (DEBUG) {
-                Slog.i(TAG, "updateHostState " + port + ": dataRole=" + status.getCurrentDataRole() +
-                        ", powerRole=" + status.getCurrentPowerRole());
+                Slog.i(TAG, "updateHostState " + port + " status=" + status);
             }
 
             SomeArgs args = SomeArgs.obtain();
@@ -826,7 +825,7 @@
                 }
             } else if (mSourcePower) {
                 id = com.android.internal.R.string.usb_supplying_notification_title;
-            } else if (mSinkPower) {
+            } else if (mHostConnected && mSinkPower) {
                 id = com.android.internal.R.string.usb_charging_notification_title;
             }
             if (id != mUsbNotificationId) {
@@ -927,6 +926,9 @@
             pw.println("  mConfigured: " + mConfigured);
             pw.println("  mUsbDataUnlocked: " + mUsbDataUnlocked);
             pw.println("  mCurrentAccessory: " + mCurrentAccessory);
+            pw.println("  mHostConnected: " + mHostConnected);
+            pw.println("  mSourcePower: " + mSourcePower);
+            pw.println("  mSinkPower: " + mSinkPower);
             try {
                 pw.println("  Kernel state: "
                         + FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim());
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
index b0cc2ac..c3075b3 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
@@ -46,6 +46,7 @@
 import android.view.IWindowManager;
 import android.view.WindowManager;
 
+import com.android.internal.app.AssistUtils;
 import com.android.internal.app.IAssistScreenshotReceiver;
 import com.android.internal.app.IVoiceInteractionSessionShowCallback;
 import com.android.internal.app.IVoiceInteractor;
@@ -301,7 +302,7 @@
             } else {
                 mScreenshot = null;
             }
-            if (needDisclosure) {
+            if (needDisclosure && AssistUtils.shouldDisclose(mContext, mSessionComponentName)) {
                 mHandler.post(mShowAssistDisclosureRunnable);
             }
             if (mSession != null) {
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index ee055f4..a093d54 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -461,6 +461,32 @@
      */
     public static final String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED";
 
+    /**
+     * Connection event used to inform {@link InCallService}s when a call has been put on hold by
+     * the remote party.
+     * <p>
+     * This is different than the {@link Connection#STATE_HOLDING} state which indicates that the
+     * call is being held locally on the device.  When a capable {@link ConnectionService} receives
+     * signalling to indicate that the remote party has put the call on hold, it can send this
+     * connection event.
+     * @hide
+     */
+    public static final String EVENT_CALL_REMOTELY_HELD =
+            "android.telecom.event.CALL_REMOTELY_HELD";
+
+    /**
+     * Connection event used to inform {@link InCallService}s when a call which was remotely held
+     * (see {@link #EVENT_CALL_REMOTELY_HELD}) has been un-held by the remote party.
+     * <p>
+     * This is different than the {@link Connection#STATE_HOLDING} state which indicates that the
+     * call is being held locally on the device.  When a capable {@link ConnectionService} receives
+     * signalling to indicate that the remote party has taken the call off hold, it can send this
+     * connection event.
+     * @hide
+     */
+    public static final String EVENT_CALL_REMOTELY_UNHELD =
+            "android.telecom.event.CALL_REMOTELY_UNHELD";
+
     // Flag controlling whether PII is emitted into the logs
     private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG);
 
@@ -514,67 +540,87 @@
      * @return A human readable string representation.
      */
     public static String capabilitiesToString(int capabilities) {
+        return capabilitiesToStringInternal(capabilities, true /* isLong */);
+    }
+
+    /**
+     * Renders a set of capability bits ({@code CAPABILITY_*}) as a *short* human readable
+     * string.
+     *
+     * @param capabilities A capability bit field.
+     * @return A human readable string representation.
+     * @hide
+     */
+    public static String capabilitiesToStringShort(int capabilities) {
+        return capabilitiesToStringInternal(capabilities, false /* isLong */);
+    }
+
+    private static String capabilitiesToStringInternal(int capabilities, boolean isLong) {
         StringBuilder builder = new StringBuilder();
-        builder.append("[Capabilities:");
+        builder.append("[");
+        if (isLong) {
+            builder.append("Capabilities:");
+        }
+
         if (can(capabilities, CAPABILITY_HOLD)) {
-            builder.append(" CAPABILITY_HOLD");
+            builder.append(isLong ? " CAPABILITY_HOLD" : " hld");
         }
         if (can(capabilities, CAPABILITY_SUPPORT_HOLD)) {
-            builder.append(" CAPABILITY_SUPPORT_HOLD");
+            builder.append(isLong ? " CAPABILITY_SUPPORT_HOLD" : " sup_hld");
         }
         if (can(capabilities, CAPABILITY_MERGE_CONFERENCE)) {
-            builder.append(" CAPABILITY_MERGE_CONFERENCE");
+            builder.append(isLong ? " CAPABILITY_MERGE_CONFERENCE" : " mrg_cnf");
         }
         if (can(capabilities, CAPABILITY_SWAP_CONFERENCE)) {
-            builder.append(" CAPABILITY_SWAP_CONFERENCE");
+            builder.append(isLong ? " CAPABILITY_SWAP_CONFERENCE" : " swp_cnf");
         }
         if (can(capabilities, CAPABILITY_RESPOND_VIA_TEXT)) {
-            builder.append(" CAPABILITY_RESPOND_VIA_TEXT");
+            builder.append(isLong ? " CAPABILITY_RESPOND_VIA_TEXT" : " txt");
         }
         if (can(capabilities, CAPABILITY_MUTE)) {
-            builder.append(" CAPABILITY_MUTE");
+            builder.append(isLong ? " CAPABILITY_MUTE" : " mut");
         }
         if (can(capabilities, CAPABILITY_MANAGE_CONFERENCE)) {
-            builder.append(" CAPABILITY_MANAGE_CONFERENCE");
+            builder.append(isLong ? " CAPABILITY_MANAGE_CONFERENCE" : " mng_cnf");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_RX)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_LOCAL_RX");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_LOCAL_RX" : " VTlrx");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_TX)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_LOCAL_TX");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_LOCAL_TX" : " VTltx");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL" : " VTlbi");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_RX)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_REMOTE_RX");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_REMOTE_RX" : " VTrrx");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_TX)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_REMOTE_TX");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_REMOTE_TX" : " VTrtx");
         }
         if (can(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL)) {
-            builder.append(" CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL");
+            builder.append(isLong ? " CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL" : " VTrbi");
         }
         if (can(capabilities, CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO)) {
-            builder.append(" CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO");
+            builder.append(isLong ? " CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO" : " !v2a");
         }
         if (can(capabilities, CAPABILITY_SPEED_UP_MT_AUDIO)) {
-            builder.append(" CAPABILITY_SPEED_UP_MT_AUDIO");
+            builder.append(isLong ? " CAPABILITY_SPEED_UP_MT_AUDIO" : " spd_aud");
         }
         if (can(capabilities, CAPABILITY_CAN_UPGRADE_TO_VIDEO)) {
-            builder.append(" CAPABILITY_CAN_UPGRADE_TO_VIDEO");
+            builder.append(isLong ? " CAPABILITY_CAN_UPGRADE_TO_VIDEO" : " a2v");
         }
         if (can(capabilities, CAPABILITY_CAN_PAUSE_VIDEO)) {
-            builder.append(" CAPABILITY_CAN_PAUSE_VIDEO");
+            builder.append(isLong ? " CAPABILITY_CAN_PAUSE_VIDEO" : " paus_VT");
         }
         if (can(capabilities, CAPABILITY_CONFERENCE_HAS_NO_CHILDREN)) {
-            builder.append(" CAPABILITY_SINGLE_PARTY_CONFERENCE");
+            builder.append(isLong ? " CAPABILITY_SINGLE_PARTY_CONFERENCE" : " 1p_cnf");
         }
         if (can(capabilities, CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION)) {
-            builder.append(" CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION");
+            builder.append(isLong ? " CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION" : " rsp_by_con");
         }
         if (can(capabilities, CAPABILITY_CAN_PULL_CALL)) {
-            builder.append(" CAPABILITY_CAN_PULL_CALL");
+            builder.append(isLong ? " CAPABILITY_CAN_PULL_CALL" : " pull");
         }
 
         builder.append("]");
@@ -588,31 +634,49 @@
      * @return A human readable string representation.
      */
     public static String propertiesToString(int properties) {
+        return propertiesToStringInternal(properties, true /* isLong */);
+    }
+
+    /**
+     * Renders a set of property bits ({@code PROPERTY_*}) as a *short* human readable string.
+     *
+     * @param properties A property bit field.
+     * @return A human readable string representation.
+     * @hide
+     */
+    public static String propertiesToStringShort(int properties) {
+        return propertiesToStringInternal(properties, false /* isLong */);
+    }
+
+    private static String propertiesToStringInternal(int properties, boolean isLong) {
         StringBuilder builder = new StringBuilder();
-        builder.append("[Properties:");
+        builder.append("[");
+        if (isLong) {
+            builder.append("Properties:");
+        }
 
         if (can(properties, PROPERTY_SHOW_CALLBACK_NUMBER)) {
-            builder.append(" PROPERTY_SHOW_CALLBACK_NUMBER");
+            builder.append(isLong ? " PROPERTY_SHOW_CALLBACK_NUMBER" : " clbk");
         }
 
         if (can(properties, PROPERTY_HIGH_DEF_AUDIO)) {
-            builder.append(" PROPERTY_HIGH_DEF_AUDIO");
+            builder.append(isLong ? " PROPERTY_HIGH_DEF_AUDIO" : " HD");
         }
 
         if (can(properties, PROPERTY_WIFI)) {
-            builder.append(" PROPERTY_WIFI");
+            builder.append(isLong ? " PROPERTY_WIFI" : " wifi");
         }
 
         if (can(properties, PROPERTY_GENERIC_CONFERENCE)) {
-            builder.append(" PROPERTY_GENERIC_CONFERENCE");
+            builder.append(isLong ? " PROPERTY_GENERIC_CONFERENCE" : " gen_conf");
         }
 
         if (can(properties, PROPERTY_IS_EXTERNAL_CALL)) {
-            builder.append(" PROPERTY_IS_EXTERNAL_CALL");
+            builder.append(isLong ? " PROPERTY_IS_EXTERNAL_CALL" : " xtrnl");
         }
 
         if (can(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) {
-            builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY");
+            builder.append(isLong ? " PROPERTY_HAS_CDMA_VOICE_PRIVACY" : " priv");
         }
 
         builder.append("]");
diff --git a/telecomm/java/android/telecom/RemoteConnectionService.java b/telecomm/java/android/telecom/RemoteConnectionService.java
index 306b3c1..c4739ff 100644
--- a/telecomm/java/android/telecom/RemoteConnectionService.java
+++ b/telecomm/java/android/telecom/RemoteConnectionService.java
@@ -224,6 +224,7 @@
 
             conference.setState(parcel.getState());
             conference.setConnectionCapabilities(parcel.getConnectionCapabilities());
+            conference.setConnectionProperties(parcel.getConnectionProperties());
             mConferenceById.put(callId, conference);
             conference.registerCallback(new RemoteConference.Callback() {
                 @Override
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index bdaf0b7..dc9767c 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -246,6 +246,29 @@
     public static final String KEY_CARRIER_VT_AVAILABLE_BOOL = "carrier_vt_available_bool";
 
     /**
+     * Flag specifying whether the carrier wants to notify the user when a VT call has been handed
+     * over from WIFI to LTE.
+     * <p>
+     * The handover notification is sent as a
+     * {@link TelephonyManager#EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE}
+     * {@link android.telecom.Connection} event, which an {@link android.telecom.InCallService}
+     * should use to trigger the display of a user-facing message.
+     * <p>
+     * The Connection event is sent to the InCallService only once, the first time it occurs.
+     * @hide
+     */
+    public static final String KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL =
+            "notify_handover_video_from_wifi_to_lte_bool";
+
+    /**
+     * Flag specifying whether the carrier supports downgrading a video call (tx, rx or tx/rx)
+     * directly to an audio call.
+     * @hide
+     */
+    public static final String KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL =
+            "support_downgrade_vt_to_audio_bool";
+
+    /**
      * Flag specifying whether WFC over IMS should be available for carrier: independent of
      * carrier provisioning. If false: hard disabled. If true: then depends on carrier
      * provisioning, availability etc.
@@ -892,6 +915,36 @@
     public static final String KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY =
             "ims_reasoninfo_mapping_string_array";
 
+    /**
+     * When {@code false}, use default title for Enhanced 4G LTE Mode settings.
+     * When {@code true}, use the variant.
+     * @hide
+     */
+    public static final String KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL =
+            "enhanced_4g_lte_title_variant_bool";
+
+    /**
+     * Indicates whether the carrier wants to notify the user when handover of an LTE video call to
+     * WIFI fails.
+     * <p>
+     * When {@code true}, if a video call starts on LTE and the modem reports a failure to handover
+     * the call to WIFI or if no handover success is reported within 60 seconds of call initiation,
+     * the {@link android.telephony.TelephonyManager#EVENT_HANDOVER_TO_WIFI_FAILED} event is raised
+     * on the connection.
+     * @hide
+     */
+    public static final String KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL =
+            "notify_vt_handover_to_wifi_failure_bool";
+
+    /**
+     * A upper case list of CNAP names that are unhelpful to the user for distinguising calls and
+     * should be filtered out of the CNAP information. This includes CNAP names such as "WIRELESS
+     * CALLER" or "UNKNOWN NAME". By default, if there are no filtered names for this carrier, null
+     * is returned.
+     * @hide
+     */
+    public static final String FILTERED_CNAP_NAMES_STRING_ARRAY = "filtered_cnap_names_string_array";
+
     /** The default value for every variable. */
     private final static PersistableBundle sDefaults;
 
@@ -906,6 +959,8 @@
         sDefaults.putBoolean(KEY_CARRIER_SETTINGS_ENABLE_BOOL, false);
         sDefaults.putBoolean(KEY_CARRIER_VOLTE_AVAILABLE_BOOL, false);
         sDefaults.putBoolean(KEY_CARRIER_VT_AVAILABLE_BOOL, false);
+        sDefaults.putBoolean(KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL, false);
+        sDefaults.putBoolean(KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL, true);
         sDefaults.putBoolean(KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL, false);
         sDefaults.putBoolean(KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, false);
         sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL, false);
@@ -1056,6 +1111,9 @@
         sDefaults.putBoolean(KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO, true);
 
         sDefaults.putStringArray(KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY, null);
+        sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL, false);
+        sDefaults.putBoolean(KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL, false);
+        sDefaults.putStringArray(FILTERED_CNAP_NAMES_STRING_ARRAY, null);
     }
 
     /**
diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java
index d7d4e84..f5e422d 100644
--- a/telephony/java/android/telephony/DisconnectCause.java
+++ b/telephony/java/android/telephony/DisconnectCause.java
@@ -212,6 +212,20 @@
      */
     public static final int MAXIMUM_NUMBER_OF_CALLS_REACHED = 53;
 
+    /**
+     * The call was terminated because cellular data has been disabled.
+     * Used when in a video call and the user disables cellular data via the settings.
+     * {@hide}
+     */
+    public static final int DATA_DISABLED = 54;
+
+    /**
+     * The call was terminated because the data policy has disabled cellular data.
+     * Used when in a video call and the user has exceeded the device data limit.
+     * {@hide}
+     */
+    public static final int DATA_LIMIT_REACHED = 55;
+
     //*********************************************************************************************
     // When adding a disconnect type:
     // 1) Please assign the new type the next id value below.
@@ -220,14 +234,14 @@
     // 4) Update toString() with the newly added disconnect type.
     // 5) Update android.telecom.DisconnectCauseUtil with any mappings to a telecom.DisconnectCause.
     //
-    // NextId: 54
+    // NextId: 56
     //*********************************************************************************************
 
     /** Smallest valid value for call disconnect codes. */
     public static final int MINIMUM_VALID_VALUE = NOT_DISCONNECTED;
 
     /** Largest valid value for call disconnect codes. */
-    public static final int MAXIMUM_VALID_VALUE = MAXIMUM_NUMBER_OF_CALLS_REACHED;
+    public static final int MAXIMUM_VALID_VALUE = DATA_LIMIT_REACHED;
 
     /** Private constructor to avoid class instantiation. */
     private DisconnectCause() {
@@ -343,6 +357,10 @@
             return "ANSWERED_ELSEWHERE";
         case MAXIMUM_NUMBER_OF_CALLS_REACHED:
             return "MAXIMUM_NUMER_OF_CALLS_REACHED";
+        case DATA_DISABLED:
+            return "DATA_DISABLED";
+        case DATA_LIMIT_REACHED:
+            return "DATA_LIMIT_REACHED";
         default:
             return "INVALID: " + cause;
         }
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 8446dd0..6151e5b 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -240,6 +240,8 @@
 
     private boolean mIsDataRoamingFromRegistration;
 
+    private boolean mIsUsingCarrierAggregation;
+
     /**
      * get String description of roaming type
      * @hide
@@ -318,6 +320,7 @@
         mCdmaEriIconMode = s.mCdmaEriIconMode;
         mIsEmergencyOnly = s.mIsEmergencyOnly;
         mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration;
+        mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation;
     }
 
     /**
@@ -346,6 +349,7 @@
         mCdmaEriIconMode = in.readInt();
         mIsEmergencyOnly = in.readInt() != 0;
         mIsDataRoamingFromRegistration = in.readInt() != 0;
+        mIsUsingCarrierAggregation = in.readInt() != 0;
     }
 
     public void writeToParcel(Parcel out, int flags) {
@@ -371,6 +375,7 @@
         out.writeInt(mCdmaEriIconMode);
         out.writeInt(mIsEmergencyOnly ? 1 : 0);
         out.writeInt(mIsDataRoamingFromRegistration ? 1 : 0);
+        out.writeInt(mIsUsingCarrierAggregation ? 1 : 0);
     }
 
     public int describeContents() {
@@ -680,7 +685,8 @@
                 && equalsHandlesNulls(mCdmaDefaultRoamingIndicator,
                         s.mCdmaDefaultRoamingIndicator)
                 && mIsEmergencyOnly == s.mIsEmergencyOnly
-                && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration);
+                && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration
+                && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation);
     }
 
     /**
@@ -788,7 +794,8 @@
                 + " RoamInd=" + mCdmaRoamingIndicator
                 + " DefRoamInd=" + mCdmaDefaultRoamingIndicator
                 + " EmergOnly=" + mIsEmergencyOnly
-                + " IsDataRoamingFromRegistration=" + mIsDataRoamingFromRegistration);
+                + " IsDataRoamingFromRegistration=" + mIsDataRoamingFromRegistration
+                + " IsUsingCarrierAggregation=" + mIsUsingCarrierAggregation);
     }
 
     private void setNullState(int state) {
@@ -815,6 +822,7 @@
         mCdmaEriIconMode = -1;
         mIsEmergencyOnly = false;
         mIsDataRoamingFromRegistration = false;
+        mIsUsingCarrierAggregation = false;
     }
 
     public void setStateOutOfService() {
@@ -988,6 +996,7 @@
         mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator");
         mIsEmergencyOnly = m.getBoolean("emergencyOnly");
         mIsDataRoamingFromRegistration = m.getBoolean("isDataRoamingFromRegistration");
+        mIsUsingCarrierAggregation = m.getBoolean("isUsingCarrierAggregation");
     }
 
     /**
@@ -1017,21 +1026,42 @@
         m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator);
         m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly));
         m.putBoolean("isDataRoamingFromRegistration", Boolean.valueOf(mIsDataRoamingFromRegistration));
+        m.putBoolean("isUsingCarrierAggregation", Boolean.valueOf(mIsUsingCarrierAggregation));
     }
 
     /** @hide */
     public void setRilVoiceRadioTechnology(int rt) {
+        if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) {
+            rt = RIL_RADIO_TECHNOLOGY_LTE;
+        }
+
         this.mRilVoiceRadioTechnology = rt;
     }
 
     /** @hide */
     public void setRilDataRadioTechnology(int rt) {
+        if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) {
+            rt = RIL_RADIO_TECHNOLOGY_LTE;
+            this.mIsUsingCarrierAggregation = true;
+        } else {
+            this.mIsUsingCarrierAggregation = false;
+        }
         this.mRilDataRadioTechnology = rt;
         if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setRilDataRadioTechnology=" +
                 mRilDataRadioTechnology);
     }
 
     /** @hide */
+    public boolean isUsingCarrierAggregation() {
+        return mIsUsingCarrierAggregation;
+    }
+
+    /** @hide */
+    public void setIsUsingCarrierAggregation(boolean ca) {
+        mIsUsingCarrierAggregation = ca;
+    }
+
+    /** @hide */
     public void setCssIndicator(int css) {
         this.mCssIndicator = (css != 0);
     }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index a3dc343..6e504d1 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -705,6 +705,50 @@
             "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT";
 
     /**
+     * {@link android.telecom.Connection} event used to indicate that an IMS call has be
+     * successfully handed over from WIFI to LTE.
+     * <p>
+     * Sent via {@link android.telecom.Connection#sendConnectionEvent(String, Bundle)}.
+     * The {@link Bundle} parameter is expected to be null when this connection event is used.
+     * @hide
+     */
+    public static final String EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE =
+            "android.telephony.event.EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE";
+
+    /**
+     * {@link android.telecom.Connection} event used to indicate that an IMS call failed to be
+     * handed over from LTE to WIFI.
+     * <p>
+     * Sent via {@link android.telecom.Connection#sendConnectionEvent(String, Bundle)}.
+     * The {@link Bundle} parameter is expected to be null when this connection event is used.
+     * @hide
+     */
+    public static final String EVENT_HANDOVER_TO_WIFI_FAILED =
+            "android.telephony.event.EVENT_HANDOVER_TO_WIFI_FAILED";
+
+    /**
+     * {@link android.telecom.Connection} event used to indicate that a video call was downgraded to
+     * audio because the data limit was reached.
+     * <p>
+     * Sent via {@link android.telecom.Connection#sendConnectionEvent(String, Bundle)}.
+     * The {@link Bundle} parameter is expected to be null when this connection event is used.
+     * @hide
+     */
+    public static final String EVENT_DOWNGRADE_DATA_LIMIT_REACHED =
+            "android.telephony.event.EVENT_DOWNGRADE_DATA_LIMIT_REACHED";
+
+    /**
+     * {@link android.telecom.Connection} event used to indicate that a video call was downgraded to
+     * audio because the data was disabled.
+     * <p>
+     * Sent via {@link android.telecom.Connection#sendConnectionEvent(String, Bundle)}.
+     * The {@link Bundle} parameter is expected to be null when this connection event is used.
+     * @hide
+     */
+    public static final String EVENT_DOWNGRADE_DATA_DISABLED =
+            "android.telephony.event.EVENT_DOWNGRADE_DATA_DISABLED";
+
+    /**
      * Response codes for sim activation. Activation completed successfully.
      * @hide
      */
@@ -2473,6 +2517,56 @@
     }
 
     /**
+     * Enables or disables the visual voicemail client for a phone account.
+     *
+     * <p>Requires that the calling app is the default dialer, or has carrier privileges, or
+     * has permission {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
+     * @see #hasCarrierPrivileges
+     *
+     * @param phoneAccountHandle the phone account to change the client state
+     * @param enabled the new state of the client
+     * @hide
+     */
+    @SystemApi
+    public void setVisualVoicemailEnabled(PhoneAccountHandle phoneAccountHandle, boolean enabled){
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                telephony.setVisualVoicemailEnabled(mContext.getOpPackageName(), phoneAccountHandle,
+                    enabled);
+            }
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+            // This could happen before phone restarts due to crashing
+        }
+    }
+
+    /**
+     * Returns whether the visual voicemail client is enabled.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+     *
+     * @param phoneAccountHandle the phone account to check for.
+     * @return {@code true} when the visual voicemail client is enabled for this client
+     * @hide
+     */
+    @SystemApi
+    public boolean isVisualVoicemailEnabled(PhoneAccountHandle phoneAccountHandle){
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                return telephony.isVisualVoicemailEnabled(
+                    mContext.getOpPackageName(), phoneAccountHandle);
+            }
+        } catch (RemoteException ex) {
+        } catch (NullPointerException ex) {
+            // This could happen before phone restarts due to crashing
+        }
+        return false;
+    }
+
+    /**
      * Enables the visual voicemail SMS filter for a phone account. When the filter is
      * enabled, Incoming SMS messages matching the OMTP VVM SMS interface will be redirected to the
      * visual voicemail client with
diff --git a/telephony/java/com/android/ims/ImsReasonInfo.java b/telephony/java/com/android/ims/ImsReasonInfo.java
index 408ad31..56b8822 100644
--- a/telephony/java/com/android/ims/ImsReasonInfo.java
+++ b/telephony/java/com/android/ims/ImsReasonInfo.java
@@ -298,6 +298,16 @@
     public static final int CODE_REMOTE_CALL_DECLINE = 1404;
 
     /**
+     * Indicates the call was disconnected due to the user reaching their data limit.
+     */
+    public static final int CODE_DATA_LIMIT_REACHED = 1405;
+
+    /**
+     * Indicates the call was disconnected due to the user disabling cellular data.
+     */
+    public static final int CODE_DATA_DISABLED = 1406;
+
+    /**
      * Network string error messages.
      * mExtraMessage may have these values.
      */
diff --git a/telephony/java/com/android/internal/telephony/CarrierAppUtils.java b/telephony/java/com/android/internal/telephony/CarrierAppUtils.java
index ca7354f..8b81b0d 100644
--- a/telephony/java/com/android/internal/telephony/CarrierAppUtils.java
+++ b/telephony/java/com/android/internal/telephony/CarrierAppUtils.java
@@ -17,18 +17,23 @@
 package com.android.internal.telephony;
 
 import android.annotation.Nullable;
+import android.content.ContentResolver;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.os.RemoteException;
+import android.provider.Settings;
 import android.telephony.TelephonyManager;
+import android.util.ArrayMap;
 import android.util.Slog;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.SystemConfig;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Utilities for handling carrier applications.
@@ -53,6 +58,11 @@
      * in the default state (e.g. not explicitly DISABLED/DISABLED_BY_USER/ENABLED), or we enable if
      * the app is carrier privileged and in either the default state or DISABLED_UNTIL_USED.
      *
+     * In addition, there is a list of carrier-associated applications in
+     * {@link SystemConfig#getDisabledUntilUsedPreinstalledCarrierAssociatedApps}. Each app in this
+     * list is associated with a carrier app. When the given carrier app is enabled/disabled per the
+     * above, the associated applications are enabled/disabled to match.
+     *
      * When enabling a carrier app we also grant it default permissions.
      *
      * This method is idempotent and is safe to be called at any time; it should be called once at
@@ -60,19 +70,24 @@
      * privileged apps may have changed.
      */
     public synchronized static void disableCarrierAppsUntilPrivileged(String callingPackage,
-            IPackageManager packageManager, TelephonyManager telephonyManager, int userId) {
+            IPackageManager packageManager, TelephonyManager telephonyManager,
+            ContentResolver contentResolver, int userId) {
         if (DEBUG) {
             Slog.d(TAG, "disableCarrierAppsUntilPrivileged");
         }
+        SystemConfig config = SystemConfig.getInstance();
         String[] systemCarrierAppsDisabledUntilUsed = Resources.getSystem().getStringArray(
                 com.android.internal.R.array.config_disabledUntilUsedPreinstalledCarrierApps);
-        disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager, userId,
-                systemCarrierAppsDisabledUntilUsed);
+        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
+                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
+        disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager,
+                contentResolver, userId, systemCarrierAppsDisabledUntilUsed,
+                systemCarrierAssociatedAppsDisabledUntilUsed);
     }
 
     /**
      * Like {@link #disableCarrierAppsUntilPrivileged(String, IPackageManager, TelephonyManager,
-     * int)}, but assumes that no carrier apps have carrier privileges.
+     * ContentResolver, int)}, but assumes that no carrier apps have carrier privileges.
      *
      * This prevents a potential race condition on first boot - since the app's default state is
      * enabled, we will initially disable it when the telephony stack is first initialized as it has
@@ -82,29 +97,43 @@
      * Manager can kill it, and this can lead to crashes as the app is in an unexpected state.
      */
     public synchronized static void disableCarrierAppsUntilPrivileged(String callingPackage,
-            IPackageManager packageManager, int userId) {
+            IPackageManager packageManager, ContentResolver contentResolver, int userId) {
         if (DEBUG) {
             Slog.d(TAG, "disableCarrierAppsUntilPrivileged");
         }
+        SystemConfig config = SystemConfig.getInstance();
         String[] systemCarrierAppsDisabledUntilUsed = Resources.getSystem().getStringArray(
                 com.android.internal.R.array.config_disabledUntilUsedPreinstalledCarrierApps);
+        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
+                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
         disableCarrierAppsUntilPrivileged(callingPackage, packageManager,
-                null /* telephonyManager */, userId, systemCarrierAppsDisabledUntilUsed);
+                null /* telephonyManager */, contentResolver, userId,
+                systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed);
     }
 
     // Must be public b/c framework unit tests can't access package-private methods.
     @VisibleForTesting
     public static void disableCarrierAppsUntilPrivileged(String callingPackage,
-            IPackageManager packageManager, @Nullable TelephonyManager telephonyManager, int userId,
-            String[] systemCarrierAppsDisabledUntilUsed) {
+            IPackageManager packageManager, @Nullable TelephonyManager telephonyManager,
+            ContentResolver contentResolver, int userId,
+            String[] systemCarrierAppsDisabledUntilUsed,
+            ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed) {
         List<ApplicationInfo> candidates = getDefaultCarrierAppCandidatesHelper(packageManager,
                 userId, systemCarrierAppsDisabledUntilUsed);
         if (candidates == null || candidates.isEmpty()) {
             return;
         }
 
+        Map<String, List<ApplicationInfo>> associatedApps = getDefaultCarrierAssociatedAppsHelper(
+                packageManager,
+                userId,
+                systemCarrierAssociatedAppsDisabledUntilUsed);
+
         List<String> enabledCarrierPackages = new ArrayList<>();
 
+        boolean hasRunOnce = Settings.Secure.getIntForUser(
+                contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 0, userId) == 1;
+
         try {
             for (ApplicationInfo ai : candidates) {
                 String packageName = ai.packageName;
@@ -112,33 +141,92 @@
                         telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(packageName) ==
                                 TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
 
-                // Only update enabled state for the app on /system. Once it has been updated we
-                // shouldn't touch it.
-                if (!ai.isUpdatedSystemApp()) {
-                    if (hasPrivileges
-                            && (ai.enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
+                if (hasPrivileges) {
+                    // Only update enabled state for the app on /system. Once it has been
+                    // updated we shouldn't touch it.
+                    if (!ai.isUpdatedSystemApp()
+                            && (ai.enabledSetting ==
+                            PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
                             || ai.enabledSetting ==
                             PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED)) {
                         Slog.i(TAG, "Update state(" + packageName + "): ENABLED for user "
                                 + userId);
-                        packageManager.setApplicationEnabledSetting(packageName,
+                        packageManager.setApplicationEnabledSetting(
+                                packageName,
                                 PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
-                                PackageManager.DONT_KILL_APP, userId, callingPackage);
-                    } else if (!hasPrivileges
+                                PackageManager.DONT_KILL_APP,
+                                userId,
+                                callingPackage);
+                    }
+
+                    // Also enable any associated apps for this carrier app.
+                    List<ApplicationInfo> associatedAppList = associatedApps.get(packageName);
+                    if (associatedAppList != null) {
+                        for (ApplicationInfo associatedApp : associatedAppList) {
+                            if (associatedApp.enabledSetting ==
+                                    PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
+                                    || associatedApp.enabledSetting ==
+                                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED) {
+                                Slog.i(TAG, "Update associated state(" + associatedApp.packageName
+                                        + "): ENABLED for user " + userId);
+                                packageManager.setApplicationEnabledSetting(
+                                        associatedApp.packageName,
+                                        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                                        PackageManager.DONT_KILL_APP,
+                                        userId,
+                                        callingPackage);
+                            }
+                        }
+                    }
+
+                    // Always re-grant default permissions to carrier apps w/ privileges.
+                    enabledCarrierPackages.add(ai.packageName);
+                } else {  // No carrier privileges
+                    // Only update enabled state for the app on /system. Once it has been
+                    // updated we shouldn't touch it.
+                    if (!ai.isUpdatedSystemApp()
                             && ai.enabledSetting ==
                             PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
                         Slog.i(TAG, "Update state(" + packageName
                                 + "): DISABLED_UNTIL_USED for user " + userId);
-                        packageManager.setApplicationEnabledSetting(packageName,
-                                PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED, 0,
-                                userId, callingPackage);
+                        packageManager.setApplicationEnabledSetting(
+                                packageName,
+                                PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED,
+                                0,
+                                userId,
+                                callingPackage);
+                    }
+
+                    // Also disable any associated apps for this carrier app if this is the first
+                    // run. We avoid doing this a second time because it is brittle to rely on the
+                    // distinction between "default" and "enabled".
+                    if (!hasRunOnce) {
+                        List<ApplicationInfo> associatedAppList = associatedApps.get(packageName);
+                        if (associatedAppList != null) {
+                            for (ApplicationInfo associatedApp : associatedAppList) {
+                                if (associatedApp.enabledSetting
+                                        == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
+                                    Slog.i(TAG,
+                                            "Update associated state(" + associatedApp.packageName
+                                                    + "): DISABLED_UNTIL_USED for user " + userId);
+                                    packageManager.setApplicationEnabledSetting(
+                                            associatedApp.packageName,
+                                            PackageManager
+                                                    .COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED,
+                                            0,
+                                            userId,
+                                            callingPackage);
+                                }
+                            }
+                        }
                     }
                 }
+            }
 
-                // Always re-grant default permissions to carrier apps w/ privileges.
-                if (hasPrivileges) {
-                    enabledCarrierPackages.add(ai.packageName);
-                }
+            // Mark the execution so we do not disable apps again.
+            if (!hasRunOnce) {
+                Settings.Secure.putIntForUser(
+                        contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1, userId);
             }
 
             if (!enabledCarrierPackages.isEmpty()) {
@@ -190,8 +278,8 @@
      *
      * These are the apps subject to the hiding/showing logic in
      * {@link CarrierAppUtils#disableCarrierAppsUntilPrivileged(String, IPackageManager,
-     * TelephonyManager, int)}, as well as the apps which should have default permissions granted,
-     * when a matching SIM is inserted.
+     * TelephonyManager, ContentResolver, int)}, as well as the apps which should have default
+     * permissions granted, when a matching SIM is inserted.
      *
      * Whether or not the app is actually considered a default app depends on whether the app has
      * carrier privileges as determined by the SIMs in the device.
@@ -205,30 +293,68 @@
     }
 
     private static List<ApplicationInfo> getDefaultCarrierAppCandidatesHelper(
-            IPackageManager packageManager, int userId,
+            IPackageManager packageManager,
+            int userId,
             String[] systemCarrierAppsDisabledUntilUsed) {
         if (systemCarrierAppsDisabledUntilUsed == null
                 || systemCarrierAppsDisabledUntilUsed.length == 0) {
             return null;
         }
-        List<ApplicationInfo> apps = null;
-        try {
-            apps = new ArrayList<>(systemCarrierAppsDisabledUntilUsed.length);
-            for (String packageName : systemCarrierAppsDisabledUntilUsed) {
-                ApplicationInfo ai = packageManager.getApplicationInfo(packageName,
-                        PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS, userId);
-                if (ai == null) {
-                    // No app found for packageName
-                    continue;
-                }
-                if (!ai.isSystemApp()) {
-                    continue;
-                }
+        List<ApplicationInfo> apps = new ArrayList<>(systemCarrierAppsDisabledUntilUsed.length);
+        for (int i = 0; i < systemCarrierAppsDisabledUntilUsed.length; i++) {
+            String packageName = systemCarrierAppsDisabledUntilUsed[i];
+            ApplicationInfo ai =
+                    getApplicationInfoIfSystemApp(packageManager, userId, packageName);
+            if (ai != null) {
                 apps.add(ai);
             }
+        }
+        return apps;
+    }
+
+    private static Map<String, List<ApplicationInfo>> getDefaultCarrierAssociatedAppsHelper(
+            IPackageManager packageManager,
+            int userId,
+            ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed) {
+        int size = systemCarrierAssociatedAppsDisabledUntilUsed.size();
+        Map<String, List<ApplicationInfo>> associatedApps = new ArrayMap<>(size);
+        for (int i = 0; i < size; i++) {
+            String carrierAppPackage = systemCarrierAssociatedAppsDisabledUntilUsed.keyAt(i);
+            List<String> associatedAppPackages =
+                    systemCarrierAssociatedAppsDisabledUntilUsed.valueAt(i);
+            for (int j = 0; j < associatedAppPackages.size(); j++) {
+                ApplicationInfo ai =
+                        getApplicationInfoIfSystemApp(
+                                packageManager, userId, associatedAppPackages.get(j));
+                // Only update enabled state for the app on /system. Once it has been updated we
+                // shouldn't touch it.
+                if (ai != null && !ai.isUpdatedSystemApp()) {
+                    List<ApplicationInfo> appList = associatedApps.get(carrierAppPackage);
+                    if (appList == null) {
+                        appList = new ArrayList<>();
+                        associatedApps.put(carrierAppPackage, appList);
+                    }
+                    appList.add(ai);
+                }
+            }
+        }
+        return associatedApps;
+    }
+
+    @Nullable
+    private static ApplicationInfo getApplicationInfoIfSystemApp(
+            IPackageManager packageManager,
+            int userId,
+            String packageName) {
+        try {
+            ApplicationInfo ai = packageManager.getApplicationInfo(packageName,
+                    PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS, userId);
+            if (ai != null && ai.isSystemApp()) {
+                return ai;
+            }
         } catch (RemoteException e) {
             Slog.w(TAG, "Could not reach PackageManager", e);
         }
-        return apps;
+        return null;
     }
 }
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 7e7071e..a8eaf36 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -454,6 +454,12 @@
      */
     int getVoiceMessageCountForSubscriber(int subId);
 
+    oneway void setVisualVoicemailEnabled(String callingPackage,
+            in PhoneAccountHandle accountHandle, boolean enabled);
+
+    boolean isVisualVoicemailEnabled(String callingPackage,
+            in PhoneAccountHandle accountHandle);
+
     // Not oneway, caller needs to make sure the vaule is set before receiving a SMS
     void enableVisualVoicemailSmsFilter(String callingPackage, int subId,
             in VisualVoicemailSmsFilterSettings settings);
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
index 2346f85..16a0def 100644
--- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -574,6 +574,7 @@
             mLaunchIntent = intent;
             mForceStopBeforeLaunch = forceStopBeforeLaunch;
             mLaunchReason = launchReason;
+            mResult = -1L;
         }
 
         public Long getResult() {
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 9976d00..59da467 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -529,6 +529,16 @@
     int openGLESVersion;
 };
 
+static bool hasFeature(const char* name, const FeatureGroup& grp,
+                       const KeyedVector<String8, ImpliedFeature>& implied) {
+    String8 name8(name);
+    ssize_t idx = grp.features.indexOfKey(name8);
+    if (idx < 0) {
+        idx = implied.indexOfKey(name8);
+    }
+    return idx >= 0;
+}
+
 static void addImpliedFeature(KeyedVector<String8, ImpliedFeature>* impliedFeatures,
                               const char* name, const char* reason, bool sdk23) {
     String8 name8(name);
@@ -616,9 +626,16 @@
     } else if (name == "android.hardware.location.gps" ||
             name == "android.hardware.location.network") {
         grp->features.add(String8("android.hardware.location"), Feature(true));
+    } else if (name == "android.hardware.faketouch.multitouch") {
+        grp->features.add(String8("android.hardware.faketouch"), Feature(true));
+    } else if (name == "android.hardware.faketouch.multitouch.distinct" ||
+            name == "android.hardware.faketouch.multitouch.jazzhands") {
+        grp->features.add(String8("android.hardware.faketouch.multitouch"), Feature(true));
+        grp->features.add(String8("android.hardware.faketouch"), Feature(true));
     } else if (name == "android.hardware.touchscreen.multitouch") {
         grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
-    } else if (name == "android.hardware.touchscreen.multitouch.distinct") {
+    } else if (name == "android.hardware.touchscreen.multitouch.distinct" ||
+            name == "android.hardware.touchscreen.multitouch.jazzhands") {
         grp->features.add(String8("android.hardware.touchscreen.multitouch"), Feature(true));
         grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
     } else if (name == "android.hardware.opengles.aep") {
@@ -2005,8 +2022,12 @@
                 }
             }
 
-            addImpliedFeature(&impliedFeatures, "android.hardware.touchscreen",
-                    "default feature for all apps", false);
+            // If the app hasn't declared the touchscreen as a feature requirement (either
+            // directly or implied, required or not), then the faketouch feature is implied.
+            if (!hasFeature("android.hardware.touchscreen", commonFeatures, impliedFeatures)) {
+                addImpliedFeature(&impliedFeatures, "android.hardware.faketouch",
+                                  "default feature for all apps", false);
+            }
 
             const size_t numFeatureGroups = featureGroups.size();
             if (numFeatureGroups == 0) {
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index a7878d1..5f91f17 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1033,7 +1033,6 @@
         return NO_ERROR;
     }
 
-    ResXMLTree tree;
     Asset* asset = assets.openNonAsset(cookie, "AndroidManifest.xml", Asset::ACCESS_STREAMING);
     if (asset == NULL) {
         fprintf(stderr, "ERROR: Platform AndroidManifest.xml not found\n");
@@ -1041,11 +1040,17 @@
     }
 
     ssize_t result = NO_ERROR;
-    if (tree.setTo(asset->getBuffer(true), asset->getLength()) != NO_ERROR) {
-        fprintf(stderr, "ERROR: Platform AndroidManifest.xml is corrupt\n");
-        result = UNKNOWN_ERROR;
-    } else {
-        result = extractPlatformBuildVersion(tree, bundle);
+
+    // Create a new scope so that ResXMLTree is destroyed before we delete the memory over
+    // which it iterates (asset).
+    {
+        ResXMLTree tree;
+        if (tree.setTo(asset->getBuffer(true), asset->getLength()) != NO_ERROR) {
+            fprintf(stderr, "ERROR: Platform AndroidManifest.xml is corrupt\n");
+            result = UNKNOWN_ERROR;
+        } else {
+            result = extractPlatformBuildVersion(tree, bundle);
+        }
     }
 
     delete asset;
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 6d80a69..9cae00f 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -2623,6 +2623,14 @@
         const SourcePos unknown(String8("????"), 0);
         sp<Type> attr = p->getType(String16("attr"), unknown);
 
+        // Force creation of ID if we are building feature splits.
+        // Auto-generated ID resources won't apply the type ID offset correctly unless
+        // the offset is applied here first.
+        // b/30607637
+        if (mPackageType == AppFeature && p->getName() == mAssetsPackage) {
+            sp<Type> id = p->getType(String16("id"), unknown);
+        }
+
         // Assign indices...
         const size_t typeCount = p->getOrderedTypes().size();
         for (size_t ti = 0; ti < typeCount; ti++) {
@@ -4852,24 +4860,39 @@
         const Vector<sp<Type> >& types = mOrderedPackages[p]->getOrderedTypes();
         const size_t typeCount = types.size();
         for (size_t t = 0; t < typeCount; t++) {
-            const Vector<sp<ConfigList> >& configs = types[t]->getOrderedConfigs();
+            const sp<Type>& type = types[t];
+            if (type == NULL) {
+                continue;
+            }
+
+            const Vector<sp<ConfigList> >& configs = type->getOrderedConfigs();
             const size_t configCount = configs.size();
             for (size_t c = 0; c < configCount; c++) {
+                const sp<ConfigList>& configList = configs[c];
+                if (configList == NULL) {
+                    continue;
+                }
+
                 const DefaultKeyedVector<ConfigDescription, sp<Entry> >& configEntries
-                        = configs[c]->getEntries();
+                        = configList->getEntries();
                 const size_t configEntryCount = configEntries.size();
                 for (size_t ce = 0; ce < configEntryCount; ce++) {
+                    const sp<Entry>& entry = configEntries.valueAt(ce);
+                    if (entry == NULL) {
+                        continue;
+                    }
+
                     const ConfigDescription& config = configEntries.keyAt(ce);
                     if (AaptConfig::isDensityOnly(config)) {
                         // This configuration only varies with regards to density.
                         const Symbol symbol(
                                 mOrderedPackages[p]->getName(),
-                                types[t]->getName(),
-                                configs[c]->getName(),
+                                type->getName(),
+                                configList->getName(),
                                 getResId(mOrderedPackages[p], types[t],
-                                         configs[c]->getEntryIndex()));
+                                         configList->getEntryIndex()));
 
-                        const sp<Entry>& entry = configEntries.valueAt(ce);
+
                         AaptUtil::appendValue(resources, symbol,
                                               SymbolDefinition(symbol, config, entry->getPos()));
                     }
diff --git a/tools/fonts/fontchain_lint.py b/tools/fonts/fontchain_lint.py
index bbac83c..336fce9 100755
--- a/tools/fonts/fontchain_lint.py
+++ b/tools/fonts/fontchain_lint.py
@@ -329,13 +329,6 @@
     # Noto does not have monochrome glyphs for Unicode 7.0 wingdings and
     # webdings yet.
     missing_text_chars -= _chars_by_age['7.0']
-    # TODO: Remove these after b/26113320 is fixed
-    missing_text_chars -= {
-        0x263A, # WHITE SMILING FACE
-        0x270C, # VICTORY HAND
-        0x2744, # SNOWFLAKE
-        0x2764, # HEAVY BLACK HEART
-    }
     assert missing_text_chars == set(), (
         'Text style version of some emoji characters are missing: ' +
             repr(missing_text_chars))
@@ -444,6 +437,22 @@
 
 COMBINING_KEYCAP = 0x20E3
 
+# Characters that Android defaults to emoji style, different from the recommendations in UTR #51
+ANDROID_DEFAULT_EMOJI = frozenset({
+    0x2600, # BLACK SUN WITH RAYS
+    0x2601, # CLOUD
+    0x260E, # BLACK TELEPHONE
+    0x261D, # WHITE UP POINTING INDEX
+    0x263A, # WHITE SMILING FACE
+    0x2660, # BLACK SPADE SUIT
+    0x2663, # BLACK CLUB SUIT
+    0x2665, # BLACK HEART SUIT
+    0x2666, # BLACK DIAMOND SUIT
+    0x270C, # VICTORY HAND
+    0x2744, # SNOWFLAKE
+    0x2764, # HEAVY BLACK HEART
+})
+
 LEGACY_ANDROID_EMOJI = {
     0xFE4E5: flag_sequence('JP'),
     0xFE4E6: flag_sequence('US'),
@@ -528,6 +537,7 @@
         set(LEGACY_ANDROID_EMOJI.keys()))
     default_emoji = (
         _emoji_properties['Emoji_Presentation'] |
+        ANDROID_DEFAULT_EMOJI |
         all_sequences |
         set(LEGACY_ANDROID_EMOJI.keys()))
 
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 9d0c20c..d3d5ea0 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -817,6 +817,7 @@
          */
         public static final int NETWORK_SELECTION_ENABLE = 0;
         /**
+         * @deprecated it is not used any more.
          * This network is disabled because higher layer (>2) network is bad
          */
         public static final int DISABLED_BAD_LINK = 1;
@@ -862,7 +863,7 @@
          */
         private static final String[] QUALITY_NETWORK_SELECTION_DISABLE_REASON = {
                 "NETWORK_SELECTION_ENABLE",
-                "NETWORK_SELECTION_DISABLED_BAD_LINK",
+                "NETWORK_SELECTION_DISABLED_BAD_LINK", // deprecated
                 "NETWORK_SELECTION_DISABLED_ASSOCIATION_REJECTION ",
                 "NETWORK_SELECTION_DISABLED_AUTHENTICATION_FAILURE",
                 "NETWORK_SELECTION_DISABLED_DHCP_FAILURE",
