Merge "Recover from missing upgrade to system package." into lmp-dev
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java
index 5ba7d50..cc0d51c 100644
--- a/cmds/am/src/com/android/commands/am/Am.java
+++ b/cmds/am/src/com/android/commands/am/Am.java
@@ -132,6 +132,7 @@
" am to-uri [INTENT]\n" +
" am to-intent-uri [INTENT]\n" +
" am switch-user <USER_ID>\n" +
+ " am start-user <USER_ID>\n" +
" am stop-user <USER_ID>\n" +
" am stack start <DISPLAY_ID> <INTENT>\n" +
" am stack movetask <TASK_ID> <STACK_ID> [true|false]\n" +
@@ -233,8 +234,11 @@
"am switch-user: switch to put USER_ID in the foreground, starting\n" +
" execution of that user if it is currently stopped.\n" +
"\n" +
+ "am start-user: start USER_ID in background if it is currently stopped,\n" +
+ " use switch-user if you want to start the user in foreground.\n" +
+ "\n" +
"am stop-user: stop execution of USER_ID, not allowing it to run any\n" +
- " code until a later explicit switch to it.\n" +
+ " code until a later explicit start or switch to it.\n" +
"\n" +
"am stack start: start a new activity on <DISPLAY_ID> using <INTENT>.\n" +
"\n" +
@@ -340,6 +344,8 @@
runToUri(true);
} else if (op.equals("switch-user")) {
runSwitchUser();
+ } else if (op.equals("start-user")) {
+ runStartUserInBackground();
} else if (op.equals("stop-user")) {
runStopUser();
} else if (op.equals("stack")) {
@@ -1133,6 +1139,16 @@
mAm.switchUser(Integer.parseInt(user));
}
+ private void runStartUserInBackground() throws Exception {
+ String user = nextArgRequired();
+ boolean success = mAm.startUserInBackground(Integer.parseInt(user));
+ if (success) {
+ System.out.println("Success: user started");
+ } else {
+ System.err.println("Error: could not start user");
+ }
+ }
+
private void runStopUser() throws Exception {
String user = nextArgRequired();
int res = mAm.stopUser(Integer.parseInt(user), null);
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 25c4897..9f683e3 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -5466,27 +5466,33 @@
/**
* Activities that want to remain visible behind a translucent activity above them must call
- * this method anytime before a return from {@link #onPause()}. If this call is successful
- * then the activity will remain visible when {@link #onPause()} is called, and can continue to
- * play media in the background, but it must stop playing and release resources prior to or
- * within the call to {@link #onVisibleBehindCanceled()}. If this call returns false, the
- * activity will not be visible in the background, and must release any media resources
- * immediately.
+ * this method anytime between the start of {@link #onResume()} and the return from
+ * {@link #onPause()}. If this call is successful then the activity will remain visible after
+ * {@link #onPause()} is called, and is allowed to continue playing media in the background.
+ *
+ * <p>The actions of this call are reset each time that this activity is brought to the
+ * front. That is, every time {@link #onResume()} is called the activity will be assumed
+ * to not have requested visible behind. Therefore, if you want this activity to continue to
+ * be visible in the background you must call this method again.
*
* <p>Only fullscreen opaque activities may make this call. I.e. this call is a nop
* for dialog and translucent activities.
*
- * <p>False will be returned any time this method is call between the return of onPause and
+ * <p>Under all circumstances, the activity must stop playing and release resources prior to or
+ * within a call to {@link #onVisibleBehindCanceled()} or if this call returns false.
+ *
+ * <p>False will be returned any time this method is called between the return of onPause and
* the next call to onResume.
*
* @param visible true to notify the system that the activity wishes to be visible behind other
* translucent activities, false to indicate otherwise. Resources must be
* released when passing false to this method.
- * @return the resulting visibiity state. If true the activity may remain visible beyond
- * {@link #onPause()}. If false then the activity may not count on being visible behind
- * other translucent activities, and must stop any media playback and release resources.
- * Returning false may occur in lieu of a call to onVisibleBehindCanceled() so the return
- * value must be checked.
+ * @return the resulting visibiity state. If true the activity will remain visible beyond
+ * {@link #onPause()} if the next activity is translucent or not fullscreen. If false
+ * then the activity may not count on being visible behind other translucent activities,
+ * and must stop any media playback and release resources.
+ * Returning false may occur in lieu of a call to {@link #onVisibleBehindCanceled()} so
+ * the return value must be checked.
*
* @see #onVisibleBehindCanceled()
* @see #onBackgroundVisibleBehindChanged(boolean)
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 3d14c58..cd6088f 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -579,7 +579,7 @@
public TaskDescription(TaskDescription td) {
mLabel = td.mLabel;
mIcon = td.mIcon;
- setPrimaryColor(td.mColorPrimary);
+ mColorPrimary = td.mColorPrimary;
mIconFilename = td.mIconFilename;
}
@@ -600,7 +600,11 @@
* @hide
*/
public void setPrimaryColor(int primaryColor) {
- mColorPrimary = 0xFF000000 | primaryColor;
+ // Ensure that the given color is valid
+ if ((primaryColor != 0) && (Color.alpha(primaryColor) != 255)) {
+ throw new RuntimeException("A TaskDescription's primary color should be opaque");
+ }
+ mColorPrimary = primaryColor;
}
/**
diff --git a/core/java/android/app/ApplicationErrorReport.java b/core/java/android/app/ApplicationErrorReport.java
index 8b132e0..841bd16 100644
--- a/core/java/android/app/ApplicationErrorReport.java
+++ b/core/java/android/app/ApplicationErrorReport.java
@@ -27,6 +27,7 @@
import android.os.SystemProperties;
import android.provider.Settings;
import android.util.Printer;
+import android.util.Slog;
import com.android.internal.util.FastPrintWriter;
import java.io.PrintWriter;
@@ -378,6 +379,7 @@
* Save a CrashInfo instance to a parcel.
*/
public void writeToParcel(Parcel dest, int flags) {
+ int start = dest.dataPosition();
dest.writeString(exceptionClassName);
dest.writeString(exceptionMessage);
dest.writeString(throwFileName);
@@ -385,6 +387,16 @@
dest.writeString(throwMethodName);
dest.writeInt(throwLineNumber);
dest.writeString(stackTrace);
+ int total = dest.dataPosition()-start;
+ if (total > 10*1024) {
+ Slog.d("Error", "ERR: exClass=" + exceptionClassName);
+ Slog.d("Error", "ERR: exMsg=" + exceptionMessage);
+ Slog.d("Error", "ERR: file=" + throwFileName);
+ Slog.d("Error", "ERR: class=" + throwClassName);
+ Slog.d("Error", "ERR: method=" + throwMethodName + " line=" + throwLineNumber);
+ Slog.d("Error", "ERR: stack=" + stackTrace);
+ Slog.d("Error", "ERR: TOTAL BYTES WRITTEN: " + (dest.dataPosition()-start));
+ }
}
/**
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 31b39ebb2..4b3aefe 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -798,8 +798,8 @@
public static final String EXTRA_TEMPLATE = "android.template";
/**
- * {@link #extras} key: An array of people that this notification relates to, specified
- * by contacts provider contact URI.
+ * {@link #extras} key: A String array containing the people that this notification relates to,
+ * each of which was supplied to {@link Builder#addPerson(String)}.
*/
public static final String EXTRA_PEOPLE = "android.people";
@@ -2393,10 +2393,27 @@
/**
* Add a person that is relevant to this notification.
*
+ * <P>
+ * Depending on user preferences, this annotation may allow the notification to pass
+ * through interruption filters, and to appear more prominently in the user interface.
+ * </P>
+ *
+ * <P>
+ * The person should be specified by the {@code String} representation of a
+ * {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI}.
+ * </P>
+ *
+ * <P>The system will also attempt to resolve {@code mailto:} and {@code tel:} schema
+ * URIs. The path part of these URIs must exist in the contacts database, in the
+ * appropriate column, or the reference will be discarded as invalid. Telephone schema
+ * URIs will be resolved by {@link android.provider.ContactsContract.PhoneLookup}.
+ * </P>
+ *
+ * @param uri A URI for the person.
* @see Notification#EXTRA_PEOPLE
*/
- public Builder addPerson(String handle) {
- mPeople.add(handle);
+ public Builder addPerson(String uri) {
+ mPeople.add(uri);
return this;
}
diff --git a/core/java/android/app/backup/WallpaperBackupHelper.java b/core/java/android/app/backup/WallpaperBackupHelper.java
index 0567500..b8575d7 100644
--- a/core/java/android/app/backup/WallpaperBackupHelper.java
+++ b/core/java/android/app/backup/WallpaperBackupHelper.java
@@ -80,17 +80,17 @@
mFiles = files;
mKeys = keys;
- WallpaperManager wpm;
- wpm = (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);
- mDesiredMinWidth = (double) wpm.getDesiredMinimumWidth();
+ final WindowManager wm =
+ (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+ final WallpaperManager wpm =
+ (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);
+ final Display d = wm.getDefaultDisplay();
+ final Point size = new Point();
+ d.getSize(size);
+ mDesiredMinWidth = size.x;
mDesiredMinHeight = (double) wpm.getDesiredMinimumHeight();
- if (mDesiredMinWidth <= 0 || mDesiredMinHeight <= 0) {
- WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- Display d = wm.getDefaultDisplay();
- Point size = new Point();
- d.getSize(size);
- mDesiredMinWidth = size.x;
+ if (mDesiredMinHeight <= 0) {
mDesiredMinHeight = size.y;
}
@@ -130,15 +130,12 @@
if (DEBUG) Slog.d(TAG, "Restoring wallpaper image w=" + options.outWidth
+ " h=" + options.outHeight);
- // How much does the image differ from our preference? The threshold
- // here is set to accept any image larger than our target, because
- // scaling down is acceptable; but to reject images that are deemed
- // "too small" to scale up attractively. The value 1.33 is just barely
- // too low to pass Nexus 1 or Droid wallpapers for use on a Xoom, but
- // will pass anything relatively larger.
- double widthRatio = mDesiredMinWidth / options.outWidth;
- double heightRatio = mDesiredMinHeight / options.outHeight;
- if (widthRatio > 0 && widthRatio < 1.33
+ // We accept any wallpaper that is at least as wide as our preference
+ // (i.e. wide enough to fill the screen), and is within a comfortable
+ // factor of the target height, to avoid significant clipping/scaling/
+ // letterboxing.
+ final double heightRatio = mDesiredMinHeight / options.outHeight;
+ if (options.outWidth >= mDesiredMinWidth
&& heightRatio > 0 && heightRatio < 1.33) {
// sufficiently close to our resolution; go ahead and use it
Slog.d(TAG, "Applying restored wallpaper image.");
@@ -147,8 +144,11 @@
// since it does not exist anywhere other than the private wallpaper
// file.
} else {
- Slog.i(TAG, "Dimensions too far off; using default wallpaper. wr=" + widthRatio
- + " hr=" + heightRatio);
+ Slog.i(TAG, "Restored image dimensions (w="
+ + options.outWidth + ", h=" + options.outHeight
+ + ") too far off target (tw="
+ + mDesiredMinWidth + ", th=" + mDesiredMinHeight
+ + "); falling back to default wallpaper.");
f.delete();
}
}
diff --git a/core/java/android/content/ClipData.java b/core/java/android/content/ClipData.java
index d19604b..0cafff8 100644
--- a/core/java/android/content/ClipData.java
+++ b/core/java/android/content/ClipData.java
@@ -78,7 +78,7 @@
* can use the convenience method {@link Item#coerceToText Item.coerceToText}.
* In this case there is generally no need to worry about the MIME types
* reported by {@link ClipDescription#getMimeType(int) getDescription().getMimeType(int)},
- * since any clip item an always be converted to a string.
+ * since any clip item can always be converted to a string.
*
* <p>More complicated exchanges will be done through URIs, in particular
* "content:" URIs. A content URI allows the recipient of a ClippedData item
diff --git a/core/java/android/content/UriMatcher.java b/core/java/android/content/UriMatcher.java
index 1a8ea47..8487dae 100644
--- a/core/java/android/content/UriMatcher.java
+++ b/core/java/android/content/UriMatcher.java
@@ -150,7 +150,7 @@
* numbers.
* <p>
* Starting from API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2},
- * this method will accept leading slash in the path.
+ * this method will accept a leading slash in the path.
*
* @param authority the authority to match
* @param path the path to match. * may be used as a wild card for
diff --git a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
index 618195a..03540e1 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
@@ -1350,6 +1350,14 @@
m.set(CaptureRequest.LENS_FOCAL_LENGTH,
c.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS)[0]);
+ /*
+ * jpeg.*
+ */
+
+ // jpeg.thumbnailSize - set smallest non-zero size if possible
+ Size[] sizes = c.get(CameraCharacteristics.JPEG_AVAILABLE_THUMBNAIL_SIZES);
+ m.set(CaptureRequest.JPEG_THUMBNAIL_SIZE, (sizes.length > 1) ? sizes[1] : sizes[0]);
+
// TODO: map other request template values
return m;
}
diff --git a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
index fd95901..35deb71 100644
--- a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
+++ b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
@@ -16,11 +16,13 @@
package android.hardware.camera2.legacy;
+import android.graphics.ImageFormat;
import android.graphics.SurfaceTexture;
import android.hardware.Camera;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.impl.CameraDeviceImpl;
+import android.hardware.camera2.params.StreamConfigurationMap;
import android.hardware.camera2.utils.LongParcelable;
import android.hardware.camera2.utils.SizeAreaComparator;
import android.hardware.camera2.impl.CameraMetadataNative;
@@ -36,6 +38,7 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -208,18 +211,23 @@
int totalSize = data.length + LegacyCameraDevice.nativeGetJpegFooterSize();
totalSize = (totalSize + 3) & ~0x3; // round up to nearest octonibble
+ LegacyCameraDevice.setNextTimestamp(s, timestamp);
if (USE_BLOB_FORMAT_OVERRIDE) {
// Override to RGBA_8888 format.
LegacyCameraDevice.setSurfaceFormat(s,
LegacyMetadataMapper.HAL_PIXEL_FORMAT_RGBA_8888);
- // divide by 4 if using RGBA format (width is in pixels, not bytes).
- totalSize >>= 2;
+
+ int dimen = (int) Math.ceil(Math.sqrt(totalSize));
+ dimen = (dimen + 0xf) & ~0xf; // round up to nearest multiple of 16
+ LegacyCameraDevice.setSurfaceDimens(s, dimen, dimen);
+ LegacyCameraDevice.produceFrame(s, data, dimen, dimen,
+ CameraMetadataNative.NATIVE_JPEG_FORMAT);
+ } else {
+ LegacyCameraDevice.setSurfaceDimens(s, totalSize, /*height*/1);
+ LegacyCameraDevice.produceFrame(s, data, totalSize, /*height*/1,
+ CameraMetadataNative.NATIVE_JPEG_FORMAT);
}
- LegacyCameraDevice.setSurfaceDimens(s, totalSize, /*height*/1);
- LegacyCameraDevice.setNextTimestamp(s, timestamp);
- LegacyCameraDevice.produceFrame(s, data, totalSize, /*height*/1,
- CameraMetadataNative.NATIVE_JPEG_FORMAT);
}
} catch (LegacyExceptionUtils.BufferQueueAbandonedException e) {
Log.w(TAG, "Surface abandoned, dropping frame. ", e);
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 2e24785..9194ca8 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -25,6 +25,7 @@
import android.net.NetworkUtils;
import android.os.Binder;
import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
@@ -2147,50 +2148,57 @@
Log.d(TAG, "CM callback handler got msg " + message.what);
switch (message.what) {
case CALLBACK_PRECHECK: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onPreCheck(getNetwork(message));
+ callbacks.onPreCheck((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for PRECHECK message");
}
break;
}
case CALLBACK_AVAILABLE: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onAvailable(getNetwork(message));
+ callbacks.onAvailable((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for AVAILABLE message");
}
break;
}
case CALLBACK_LOSING: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onLosing(getNetwork(message), message.arg1);
+ callbacks.onLosing((Network)getObject(message, Network.class),
+ message.arg1);
} else {
Log.e(TAG, "callback not found for LOSING message");
}
break;
}
case CALLBACK_LOST: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
+
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onLost(getNetwork(message));
+ callbacks.onLost((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for LOST message");
}
break;
}
case CALLBACK_UNAVAIL: {
- NetworkRequest req = (NetworkRequest)message.obj;
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = null;
synchronized(mCallbackMap) {
- callbacks = mCallbackMap.get(req);
+ callbacks = mCallbackMap.get(request);
}
if (callbacks != null) {
callbacks.onUnavailable();
@@ -2200,33 +2208,37 @@
break;
}
case CALLBACK_CAP_CHANGED: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- Network network = getNetwork(message);
- NetworkCapabilities cap = mCm.getNetworkCapabilities(network);
+ Network network = (Network)getObject(message, Network.class);
+ NetworkCapabilities cap = (NetworkCapabilities)getObject(message,
+ NetworkCapabilities.class);
callbacks.onCapabilitiesChanged(network, cap);
} else {
- Log.e(TAG, "callback not found for CHANGED message");
+ Log.e(TAG, "callback not found for CAP_CHANGED message");
}
break;
}
case CALLBACK_IP_CHANGED: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- Network network = getNetwork(message);
- LinkProperties lp = mCm.getLinkProperties(network);
+ Network network = (Network)getObject(message, Network.class);
+ LinkProperties lp = (LinkProperties)getObject(message,
+ LinkProperties.class);
callbacks.onLinkPropertiesChanged(network, lp);
} else {
- Log.e(TAG, "callback not found for CHANGED message");
+ Log.e(TAG, "callback not found for IP_CHANGED message");
}
break;
}
case CALLBACK_RELEASED: {
- NetworkRequest req = (NetworkRequest)message.obj;
+ NetworkRequest req = (NetworkRequest)getObject(message, NetworkRequest.class);
NetworkCallback callbacks = null;
synchronized(mCallbackMap) {
callbacks = mCallbackMap.remove(req);
@@ -2254,23 +2266,14 @@
}
}
- private NetworkRequest getNetworkRequest(Message msg) {
- return (NetworkRequest)(msg.obj);
+ private Object getObject(Message msg, Class c) {
+ return msg.getData().getParcelable(c.getSimpleName());
}
private NetworkCallback getCallbacks(NetworkRequest req) {
synchronized(mCallbackMap) {
return mCallbackMap.get(req);
}
}
- private Network getNetwork(Message msg) {
- return new Network(msg.arg2);
- }
- private NetworkCallback removeCallbacks(Message msg) {
- NetworkRequest req = (NetworkRequest)msg.obj;
- synchronized(mCallbackMap) {
- return mCallbackMap.remove(req);
- }
- }
}
private void incCallbackHandlerRefCount() {
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java
index ce70455..2099c3f 100644
--- a/core/java/android/net/Uri.java
+++ b/core/java/android/net/Uri.java
@@ -151,7 +151,7 @@
}
/**
- * Returns true if this URI is relative, i.e. if it doesn't contain an
+ * Returns true if this URI is relative, i.e. if it doesn't contain an
* explicit scheme.
*
* @return true if this URI is relative, false if it's absolute
@@ -159,7 +159,7 @@
public abstract boolean isRelative();
/**
- * Returns true if this URI is absolute, i.e. if it contains an
+ * Returns true if this URI is absolute, i.e. if it contains an
* explicit scheme.
*
* @return true if this URI is absolute, false if it's relative
@@ -176,8 +176,8 @@
public abstract String getScheme();
/**
- * Gets the scheme-specific part of this URI, i.e. everything between the
- * scheme separator ':' and the fragment separator '#'. If this is a
+ * Gets the scheme-specific part of this URI, i.e. everything between
+ * the scheme separator ':' and the fragment separator '#'. If this is a
* relative URI, this method returns the entire URI. Decodes escaped octets.
*
* <p>Example: "//www.google.com/search?q=android"
@@ -187,8 +187,8 @@
public abstract String getSchemeSpecificPart();
/**
- * Gets the scheme-specific part of this URI, i.e. everything between the
- * scheme separator ':' and the fragment separator '#'. If this is a
+ * Gets the scheme-specific part of this URI, i.e. everything between
+ * the scheme separator ':' and the fragment separator '#'. If this is a
* relative URI, this method returns the entire URI. Leaves escaped octets
* intact.
*
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index cb5a31c..bbf6ed8 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -49,6 +49,7 @@
* of classes can potentially create leaks.
*/
private static final boolean FIND_POTENTIAL_LEAKS = false;
+ private static final boolean CHECK_PARCEL_SIZE = false;
static final String TAG = "Binder";
/**
@@ -388,7 +389,7 @@
}
static void checkParcel(IBinder obj, int code, Parcel parcel, String msg) {
- if (parcel.dataSize() >= 800*1024) {
+ if (CHECK_PARCEL_SIZE && parcel.dataSize() >= 800*1024) {
// Trying to send > 800k, this is way too much
StringBuilder sb = new StringBuilder();
sb.append(msg);
@@ -429,16 +430,18 @@
} catch (RemoteException e) {
if ((flags & FLAG_ONEWAY) != 0) {
Log.w(TAG, "Binder call failed.", e);
+ } else {
+ reply.setDataPosition(0);
+ reply.writeException(e);
}
- reply.setDataPosition(0);
- reply.writeException(e);
res = true;
} catch (RuntimeException e) {
if ((flags & FLAG_ONEWAY) != 0) {
Log.w(TAG, "Caught a RuntimeException from the binder stub implementation.", e);
+ } else {
+ reply.setDataPosition(0);
+ reply.writeException(e);
}
- reply.setDataPosition(0);
- reply.writeException(e);
res = true;
} catch (OutOfMemoryError e) {
// Unconditionally log this, since this is generally unrecoverable.
@@ -451,6 +454,14 @@
checkParcel(this, code, reply, "Unreasonably large binder reply buffer");
reply.recycle();
data.recycle();
+
+ // Just in case -- we are done with the IPC, so there should be no more strict
+ // mode violations that have gathered for this thread. Either they have been
+ // parceled and are now in transport off to the caller, or we are returning back
+ // to the main transaction loop to wait for another incoming transaction. Either
+ // way, strict mode begone!
+ StrictMode.clearGatheredViolations();
+
return res;
}
}
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index 1e0dc53..5f95b04 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -20,6 +20,7 @@
import android.util.Slog;
import com.android.internal.telephony.TelephonyProperties;
+import dalvik.system.VMRuntime;
/**
* Information about the current build, extracted from system properties.
@@ -51,7 +52,7 @@
* @deprecated Use {@link #SUPPORTED_ABIS} instead.
*/
@Deprecated
- public static final String CPU_ABI = getString("ro.product.cpu.abi");
+ public static final String CPU_ABI;
/**
* The name of the second instruction set (CPU type + ABI convention) of native code.
@@ -59,7 +60,7 @@
* @deprecated Use {@link #SUPPORTED_ABIS} instead.
*/
@Deprecated
- public static final String CPU_ABI2 = getString("ro.product.cpu.abi2");
+ public static final String CPU_ABI2;
/** The manufacturer of the product/hardware. */
public static final String MANUFACTURER = getString("ro.product.manufacturer");
@@ -117,6 +118,27 @@
getStringList("ro.product.cpu.abilist64", ",");
+ static {
+ /*
+ * Adjusts CPU_ABI and CPU_ABI2 depending on whether or not a given process is 64 bit.
+ * 32 bit processes will always see 32 bit ABIs in these fields for backward
+ * compatibility.
+ */
+ final String[] abiList;
+ if (VMRuntime.getRuntime().is64Bit()) {
+ abiList = SUPPORTED_64_BIT_ABIS;
+ } else {
+ abiList = SUPPORTED_32_BIT_ABIS;
+ }
+
+ CPU_ABI = abiList[0];
+ if (abiList.length > 1) {
+ CPU_ABI2 = abiList[1];
+ } else {
+ CPU_ABI2 = "";
+ }
+ }
+
/** Various version strings. */
public static class VERSION {
/**
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index fca15ac..16250c7 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -395,7 +395,7 @@
void setDefaultNetId(int netId);
void clearDefaultNetId();
- void setPermission(boolean internal, boolean changeNetState, in int[] uids);
+ void setPermission(String permission, in int[] uids);
void clearPermission(in int[] uids);
/**
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java
index ea71ad8..47ea732 100644
--- a/core/java/android/os/StrictMode.java
+++ b/core/java/android/os/StrictMode.java
@@ -28,6 +28,7 @@
import android.util.Log;
import android.util.Printer;
import android.util.Singleton;
+import android.util.Slog;
import android.view.IWindowManager;
import com.android.internal.os.RuntimeInit;
@@ -40,6 +41,7 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@@ -1688,7 +1690,13 @@
} else {
p.writeInt(violations.size());
for (int i = 0; i < violations.size(); ++i) {
+ int start = p.dataPosition();
violations.get(i).writeToParcel(p, 0 /* unused flags? */);
+ int size = p.dataPosition()-start;
+ if (size > 10*1024) {
+ Slog.d(TAG, "Wrote violation #" + i + " of " + violations.size() + ": "
+ + (p.dataPosition()-start) + " bytes");
+ }
}
if (LOG_V) Log.d(TAG, "wrote violations to response parcel; num=" + violations.size());
violations.clear(); // somewhat redundant, as we're about to null the threadlocal
@@ -1717,6 +1725,26 @@
for (int i = 0; i < numViolations; ++i) {
if (LOG_V) Log.d(TAG, "strict mode violation stacks read from binder call. i=" + i);
ViolationInfo info = new ViolationInfo(p, !currentlyGathering);
+ if (info.crashInfo.stackTrace != null && info.crashInfo.stackTrace.length() > 10000) {
+ // 10000 characters is way too large for this to be any sane kind of
+ // strict mode collection of stacks. We've had a problem where we leave
+ // strict mode violations associated with the thread, and it keeps tacking
+ // more and more stacks on to the violations. Looks like we're in this casse,
+ // so we'll report it and bail on all of the current strict mode violations
+ // we currently are maintaining for this thread.
+ // First, drain the remaining violations from the parcel.
+ while (i < numViolations) {
+ info = new ViolationInfo(p, !currentlyGathering);
+ i++;
+ }
+ // Next clear out all gathered violations.
+ clearGatheredViolations();
+ // Now report the problem.
+ Slog.wtfStack(TAG, "Stack is too large: numViolations=" + numViolations
+ + " policy=#" + Integer.toHexString(policyMask)
+ + " front=" + info.crashInfo.stackTrace.substring(256));
+ return;
+ }
info.crashInfo.stackTrace += "# via Binder call with stack:\n" + ourStack;
BlockGuard.Policy policy = BlockGuard.getThreadPolicy();
if (policy instanceof AndroidBlockGuardPolicy) {
@@ -2176,6 +2204,7 @@
*/
public void writeToParcel(Parcel dest, int flags) {
crashInfo.writeToParcel(dest, flags);
+ int start = dest.dataPosition();
dest.writeInt(policy);
dest.writeInt(durationMillis);
dest.writeInt(violationNumThisLoop);
@@ -2184,6 +2213,17 @@
dest.writeLong(numInstances);
dest.writeString(broadcastIntentAction);
dest.writeStringArray(tags);
+ int total = dest.dataPosition()-start;
+ if (total > 10*1024) {
+ Slog.d(TAG, "VIO: policy=" + policy + " dur=" + durationMillis
+ + " numLoop=" + violationNumThisLoop
+ + " anim=" + numAnimationsRunning
+ + " uptime=" + violationUptimeMillis
+ + " numInst=" + numInstances);
+ Slog.d(TAG, "VIO: action=" + broadcastIntentAction);
+ Slog.d(TAG, "VIO: tags=" + Arrays.toString(tags));
+ Slog.d(TAG, "VIO: TOTAL BYTES WRITTEN: " + (dest.dataPosition()-start));
+ }
}
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 2315c74..37294e7 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -430,10 +430,14 @@
}
}
- /**
+ /**
* Used to determine whether the user making this call is subject to
* teleportations.
- * @return whether the user making this call is a goat
+ *
+ * <p>As of {@link android.os.Build.VERSION_CODES#L}, this method can
+ * now automatically identify goats using advanced goat recognition technology.</p>
+ *
+ * @return Returns true if the user making this call is a goat.
*/
public boolean isUserAGoat() {
return mContext.getPackageManager()
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ec4a53e..e40c88f 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2001,7 +2001,10 @@
public static final String DIM_SCREEN = "dim_screen";
/**
- * The timeout before the screen turns off.
+ * The amount of time in milliseconds before the device goes to sleep or begins
+ * to dream after a period of inactivity. This value is also known as the
+ * user activity timeout period since the screen isn't necessarily turned off
+ * when it expires.
*/
public static final String SCREEN_OFF_TIMEOUT = "screen_off_timeout";
@@ -4817,6 +4820,20 @@
"usb_audio_automatic_routing_disabled";
/**
+ * The timeout in milliseconds before the device fully goes to sleep after
+ * a period of inactivity. This value sets an upper bound on how long the device
+ * will stay awake or dreaming without user activity. It should generally
+ * be longer than {@link #SCREEN_OFF_TIMEOUT} as otherwise the device
+ * will sleep before it ever has a chance to dream.
+ * <p>
+ * Use -1 to disable this timeout.
+ * </p>
+ *
+ * @hide
+ */
+ public static final String SLEEP_TIMEOUT = "sleep_timeout";
+
+ /**
* This are the settings to be backed up.
*
* NOTE: Settings are backed up and restored in the order they appear
@@ -4865,7 +4882,8 @@
MOUNT_UMS_AUTOSTART,
MOUNT_UMS_PROMPT,
MOUNT_UMS_NOTIFY_ENABLED,
- UI_NIGHT_MODE
+ UI_NIGHT_MODE,
+ SLEEP_TIMEOUT
};
/**
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index 35fff74..5d6acd8 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -760,6 +760,9 @@
/**
* Returns whether the notification matches the user's interruption
* filter.
+ *
+ * @return {@code true} if the notification is allowed by the filter, or
+ * {@code false} if it is blocked.
*/
public boolean matchesInterruptionFilter() {
return mMatchesInterruptionFilter;
diff --git a/core/java/android/speech/RecognitionService.java b/core/java/android/speech/RecognitionService.java
index 32b2d8f..dcdbba78 100644
--- a/core/java/android/speech/RecognitionService.java
+++ b/core/java/android/speech/RecognitionService.java
@@ -28,6 +28,8 @@
import android.os.RemoteException;
import android.util.Log;
+import java.lang.ref.WeakReference;
+
/**
* This class provides a base class for recognition service implementations. This class should be
* extended only in case you wish to implement a new speech recognizer. Please note that the
@@ -91,9 +93,20 @@
}
};
- private void dispatchStartListening(Intent intent, IRecognitionListener listener) {
+ private void dispatchStartListening(Intent intent, final IRecognitionListener listener) {
if (mCurrentCallback == null) {
if (DBG) Log.d(TAG, "created new mCurrentCallback, listener = " + listener.asBinder());
+ try {
+ listener.asBinder().linkToDeath(new IBinder.DeathRecipient() {
+ @Override
+ public void binderDied() {
+ mHandler.sendMessage(mHandler.obtainMessage(MSG_CANCEL, listener));
+ }
+ }, 0);
+ } catch (RemoteException re) {
+ Log.e(TAG, "dead listener on startListening");
+ return;
+ }
mCurrentCallback = new Callback(listener);
RecognitionService.this.onStartListening(intent, mCurrentCallback);
} else {
@@ -304,40 +317,46 @@
}
/** Binder of the recognition service */
- private static class RecognitionServiceBinder extends IRecognitionService.Stub {
- private RecognitionService mInternalService;
+ private static final class RecognitionServiceBinder extends IRecognitionService.Stub {
+ private final WeakReference<RecognitionService> mServiceRef;
public RecognitionServiceBinder(RecognitionService service) {
- mInternalService = service;
+ mServiceRef = new WeakReference<RecognitionService>(service);
}
+ @Override
public void startListening(Intent recognizerIntent, IRecognitionListener listener) {
if (DBG) Log.d(TAG, "startListening called by:" + listener.asBinder());
- if (mInternalService != null && mInternalService.checkPermissions(listener)) {
- mInternalService.mHandler.sendMessage(Message.obtain(mInternalService.mHandler,
- MSG_START_LISTENING, mInternalService.new StartListeningArgs(
+ final RecognitionService service = mServiceRef.get();
+ if (service != null && service.checkPermissions(listener)) {
+ service.mHandler.sendMessage(Message.obtain(service.mHandler,
+ MSG_START_LISTENING, service.new StartListeningArgs(
recognizerIntent, listener)));
}
}
+ @Override
public void stopListening(IRecognitionListener listener) {
if (DBG) Log.d(TAG, "stopListening called by:" + listener.asBinder());
- if (mInternalService != null && mInternalService.checkPermissions(listener)) {
- mInternalService.mHandler.sendMessage(Message.obtain(mInternalService.mHandler,
+ final RecognitionService service = mServiceRef.get();
+ if (service != null && service.checkPermissions(listener)) {
+ service.mHandler.sendMessage(Message.obtain(service.mHandler,
MSG_STOP_LISTENING, listener));
}
}
+ @Override
public void cancel(IRecognitionListener listener) {
if (DBG) Log.d(TAG, "cancel called by:" + listener.asBinder());
- if (mInternalService != null && mInternalService.checkPermissions(listener)) {
- mInternalService.mHandler.sendMessage(Message.obtain(mInternalService.mHandler,
+ final RecognitionService service = mServiceRef.get();
+ if (service != null && service.checkPermissions(listener)) {
+ service.mHandler.sendMessage(Message.obtain(service.mHandler,
MSG_CANCEL, listener));
}
}
public void clearReference() {
- mInternalService = null;
+ mServiceRef.clear();
}
}
}
diff --git a/core/java/android/speech/SpeechRecognizer.java b/core/java/android/speech/SpeechRecognizer.java
index 91c3799..88e2ede 100644
--- a/core/java/android/speech/SpeechRecognizer.java
+++ b/core/java/android/speech/SpeechRecognizer.java
@@ -396,6 +396,14 @@
* Destroys the {@code SpeechRecognizer} object.
*/
public void destroy() {
+ if (mService != null) {
+ try {
+ mService.cancel(mListener);
+ } catch (final RemoteException e) {
+ // Not important
+ }
+ }
+
if (mConnection != null) {
mContext.unbindService(mConnection);
}
diff --git a/core/java/android/text/method/KeyListener.java b/core/java/android/text/method/KeyListener.java
index bb79ecd..ce7054c 100644
--- a/core/java/android/text/method/KeyListener.java
+++ b/core/java/android/text/method/KeyListener.java
@@ -57,7 +57,7 @@
/**
* If the key listener wants to handle this key, return true,
- * otherwise return false and the caller (i.e. the widget host)
+ * otherwise return false and the caller (i.e. the widget host)
* will handle the key.
*/
public boolean onKeyDown(View view, Editable text,
@@ -65,7 +65,7 @@
/**
* If the key listener wants to handle this key release, return true,
- * otherwise return false and the caller (i.e. the widget host)
+ * otherwise return false and the caller (i.e. the widget host)
* will handle the key.
*/
public boolean onKeyUp(View view, Editable text,
@@ -73,7 +73,7 @@
/**
* If the key listener wants to other kinds of key events, return true,
- * otherwise return false and the caller (i.e. the widget host)
+ * otherwise return false and the caller (i.e. the widget host)
* will handle the key.
*/
public boolean onKeyOther(View view, Editable text, KeyEvent event);
diff --git a/core/java/android/transition/ChangeTransform.java b/core/java/android/transition/ChangeTransform.java
index 1b8d57c..3fd28a6 100644
--- a/core/java/android/transition/ChangeTransform.java
+++ b/core/java/android/transition/ChangeTransform.java
@@ -228,7 +228,8 @@
}
// Next handle the normal matrix transform:
- ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues);
+ ObjectAnimator transformAnimator = createTransformAnimator(startValues, endValues,
+ handleParentChange);
if (handleParentChange && transformAnimator != null && mUseOverlay) {
createGhostView(sceneRoot, startValues, endValues);
@@ -238,7 +239,7 @@
}
private ObjectAnimator createTransformAnimator(TransitionValues startValues,
- TransitionValues endValues) {
+ TransitionValues endValues, final boolean handleParentChange) {
Matrix startMatrix = (Matrix) startValues.values.get(PROPNAME_MATRIX);
Matrix endMatrix = (Matrix) endValues.values.get(PROPNAME_MATRIX);
@@ -277,7 +278,12 @@
@Override
public void onAnimationEnd(Animator animation) {
if (!mIsCanceled) {
- setCurrentMatrix(finalEndMatrix);
+ if (handleParentChange && mUseOverlay) {
+ setCurrentMatrix(finalEndMatrix);
+ } else {
+ view.setTagInternal(R.id.transitionTransform, null);
+ view.setTagInternal(R.id.parentMatrix, null);
+ }
}
ANIMATION_MATRIX_PROPERTY.set(view, null);
transforms.restore(view);
diff --git a/core/java/android/util/LocalLog.java b/core/java/android/util/LocalLog.java
index eeb6d58..e49b8c3 100644
--- a/core/java/android/util/LocalLog.java
+++ b/core/java/android/util/LocalLog.java
@@ -20,6 +20,7 @@
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.util.Calendar;
import java.util.Iterator;
import java.util.LinkedList;
@@ -30,18 +31,21 @@
private LinkedList<String> mLog;
private int mMaxLines;
- private Time mNow;
+ private long mNow;
public LocalLog(int maxLines) {
mLog = new LinkedList<String>();
mMaxLines = maxLines;
- mNow = new Time();
}
public synchronized void log(String msg) {
if (mMaxLines > 0) {
- mNow.setToNow();
- mLog.add(mNow.format("%H:%M:%S") + " - " + msg);
+ mNow = System.currentTimeMillis();
+ StringBuilder sb = new StringBuilder();
+ Calendar c = Calendar.getInstance();
+ c.setTimeInMillis(mNow);
+ sb.append(String.format("%tm-%td %tH:%tM:%tS.%tL", c, c, c, c, c, c));
+ mLog.add(sb.toString() + " - " + msg);
while (mLog.size() > mMaxLines) mLog.remove();
}
}
diff --git a/core/java/android/util/Slog.java b/core/java/android/util/Slog.java
index 7a5fd50..e92b846 100644
--- a/core/java/android/util/Slog.java
+++ b/core/java/android/util/Slog.java
@@ -73,18 +73,38 @@
msg + '\n' + Log.getStackTraceString(tr));
}
+ /**
+ * Like {@link Log#wtf(String, String)}, but will never cause the caller to crash, and
+ * will always be handled asynchronously. Primarily for use by coding running within
+ * the system process.
+ */
public static int wtf(String tag, String msg) {
return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, false, true);
}
+ /**
+ * Like {@link Log#wtfStack(String, String)}, but will never cause the caller to crash, and
+ * will always be handled asynchronously. Primarily for use by coding running within
+ * the system process.
+ */
public static int wtfStack(String tag, String msg) {
return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, true, true);
}
+ /**
+ * Like {@link Log#wtf(String, Throwable)}, but will never cause the caller to crash,
+ * and will always be handled asynchronously. Primarily for use by coding running within
+ * the system process.
+ */
public static int wtf(String tag, Throwable tr) {
return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr, false, true);
}
+ /**
+ * Like {@link Log#wtf(String, String, Throwable)}, but will never cause the caller to crash,
+ * and will always be handled asynchronously. Primarily for use by coding running within
+ * the system process.
+ */
public static int wtf(String tag, String msg, Throwable tr) {
return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr, false, true);
}
diff --git a/core/java/android/view/AccessibilityManagerInternal.java b/core/java/android/view/AccessibilityManagerInternal.java
new file mode 100644
index 0000000..7bb2dc5
--- /dev/null
+++ b/core/java/android/view/AccessibilityManagerInternal.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view;
+
+/**
+ * Accessibility manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class AccessibilityManagerInternal {
+
+ /**
+ * Queries if the accessibility manager service permits setting
+ * a non-default encryption password.
+ */
+ public abstract boolean isNonDefaultEncryptionPasswordAllowed();
+}
diff --git a/core/java/android/view/GhostView.java b/core/java/android/view/GhostView.java
index 50c927a..20baad0 100644
--- a/core/java/android/view/GhostView.java
+++ b/core/java/android/view/GhostView.java
@@ -324,19 +324,27 @@
final ArrayList<View> preorderedList = parent.buildOrderedChildList();
final boolean customOrder = preorderedList == null
&& parent.isChildrenDrawingOrderEnabled();
+
+ // This default value shouldn't be used because both view and comparedWith
+ // should be in the list. If there is an error, then just return an arbitrary
+ // view is on top.
+ boolean isOnTop = true;
for (int i = 0; i < childrenCount; i++) {
int childIndex = customOrder ? parent.getChildDrawingOrder(childrenCount, i) : i;
final View child = (preorderedList == null)
? parent.getChildAt(childIndex) : preorderedList.get(childIndex);
if (child == view) {
- return false;
+ isOnTop = false;
+ break;
} else if (child == comparedWith) {
- return true;
+ isOnTop = true;
+ break;
}
}
- // Shouldn't get here. Neither of the children is in the parent.
- // Just return an arbitrary one.
- return true;
+ if (preorderedList != null) {
+ preorderedList.clear();
+ }
+ return isOnTop;
}
}
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index a2a4540..afc804c 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -256,9 +256,8 @@
updateWindow(false, false);
}
- /** @hide */
@Override
- protected void onDetachedFromWindowInternal() {
+ protected void onDetachedFromWindow() {
if (mGlobalListenersAdded) {
ViewTreeObserver observer = getViewTreeObserver();
observer.removeOnScrollChangedListener(mScrollChangedListener);
@@ -280,7 +279,7 @@
mSession = null;
mLayout.token = null;
- super.onDetachedFromWindowInternal();
+ super.onDetachedFromWindow();
}
@Override
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 5d2822d..1e46517 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -493,7 +493,6 @@
private static native void nInvokeFunctor(long functor, boolean waitForCompletion);
- private static native long nCreateDisplayListLayer(long nativeProxy, int width, int height);
private static native long nCreateTextureLayer(long nativeProxy);
private static native void nBuildLayer(long nativeProxy, long node);
private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap);
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 83dfe85..1ecc8d9 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -5033,7 +5033,7 @@
* <strong>Note:</strong> When a View clears focus the framework is trying
* to give focus to the first focusable View from the top. Hence, if this
* View is the first from the top that can take focus, then all callbacks
- * related to clearing focus will be invoked after wich the framework will
+ * related to clearing focus will be invoked after which the framework will
* give focus to this view.
* </p>
*/
@@ -6379,7 +6379,7 @@
* @see #setFitsSystemWindows(boolean)
* @see #setSystemUiVisibility(int)
*
- * @deprecated As of API XX use {@link #dispatchApplyWindowInsets(WindowInsets)} to apply
+ * @deprecated As of API 20 use {@link #dispatchApplyWindowInsets(WindowInsets)} to apply
* insets to views. Views should override {@link #onApplyWindowInsets(WindowInsets)} or use
* {@link #setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener)}
* to implement handling their own insets.
@@ -6601,6 +6601,7 @@
* @see #fitSystemWindows(Rect)
* @see #setSystemUiVisibility(int)
*/
+ @ViewDebug.ExportedProperty
public boolean getFitsSystemWindows() {
return (mViewFlags & FITS_SYSTEM_WINDOWS) == FITS_SYSTEM_WINDOWS;
}
diff --git a/core/java/android/view/inputmethod/InputConnection.java b/core/java/android/view/inputmethod/InputConnection.java
index c51d8a7..ff992d3 100644
--- a/core/java/android/view/inputmethod/InputConnection.java
+++ b/core/java/android/view/inputmethod/InputConnection.java
@@ -75,7 +75,7 @@
* behavior you should adopt for a particular call, please mimic the
* default TextView implementation in the latest Android version, and
* if you decide to drift from it, please consider carefully that
- * inconsistencies in text edition behavior is almost universally felt
+ * inconsistencies in text editor behavior is almost universally felt
* as a bad thing by users.</p>
*
* <h3>Cursors, selections and compositions</h3>
diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java
index 235e79f..e317524 100644
--- a/core/java/android/widget/FrameLayout.java
+++ b/core/java/android/widget/FrameLayout.java
@@ -29,6 +29,7 @@
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.Gravity;
+import android.view.RemotableViewMethod;
import android.view.View;
import android.view.ViewDebug;
import android.view.ViewGroup;
@@ -201,6 +202,15 @@
}
}
+ @Override
+ @RemotableViewMethod
+ public void setVisibility(@Visibility int visibility) {
+ super.setVisibility(visibility);
+ if (mForeground != null) {
+ mForeground.setVisible(visibility == VISIBLE, false);
+ }
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 23f911c..5b604cd 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -1403,7 +1403,7 @@
* {@link android.widget.RelativeLayout RelativeLayout}, such as
* ALIGN_WITH_PARENT_LEFT.
* @param anchor The id of another view to use as an anchor,
- * or a boolean value(represented as {@link RelativeLayout#TRUE})
+ * or a boolean value (represented as {@link RelativeLayout#TRUE}
* for true or 0 for false). For verbs that don't refer to another sibling
* (for example, ALIGN_WITH_PARENT_BOTTOM) just use -1.
* @see #addRule(int)
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index a80d70a..5cdee53 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -7378,8 +7378,8 @@
* to turn off ellipsizing.
*
* If {@link #setMaxLines} has been used to set two or more lines,
- * {@link android.text.TextUtils.TruncateAt#END} and
- * {@link android.text.TextUtils.TruncateAt#MARQUEE}* are only supported
+ * only {@link android.text.TextUtils.TruncateAt#END} and
+ * {@link android.text.TextUtils.TruncateAt#MARQUEE} are supported
* (other ellipsizing types will not do anything).
*
* @attr ref android.R.styleable#TextView_ellipsize
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 81705be..c00d209 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -6732,7 +6732,6 @@
Message m = mHandler.obtainMessage(MSG_REPORT_POWER_CHANGE);
m.arg1 = onBattery ? 1 : 0;
mHandler.sendMessage(m);
- mOnBattery = mOnBatteryInternal = onBattery;
final long uptime = mSecUptime * 1000;
final long realtime = mSecRealtime * 1000;
@@ -6745,9 +6744,13 @@
boolean reset = false;
if (!mNoAutoReset && (oldStatus == BatteryManager.BATTERY_STATUS_FULL
|| level >= 90
- || getLowDischargeAmountSinceCharge() >= 60)
- || (getHighDischargeAmountSinceCharge() >= 60
- && mHistoryBuffer.dataSize() >= MAX_HISTORY_BUFFER)) {
+ || (mDischargeCurrentLevel < 20 && level >= 80)
+ || (getHighDischargeAmountSinceCharge() >= 200
+ && mHistoryBuffer.dataSize() >= MAX_HISTORY_BUFFER))) {
+ Slog.i(TAG, "Resetting battery stats: level=" + level + " status=" + oldStatus
+ + " dischargeLevel=" + mDischargeCurrentLevel
+ + " lowAmount=" + getLowDischargeAmountSinceCharge()
+ + " highAmount=" + getHighDischargeAmountSinceCharge());
// Before we write, collect a snapshot of the final aggregated
// stats to be reported in the next checkin. Only do this if we have
// a sufficient amount of data to make it interesting.
@@ -6782,6 +6785,7 @@
reset = true;
mNumDischargeStepDurations = 0;
}
+ mOnBattery = mOnBatteryInternal = onBattery;
mLastDischargeStepLevel = level;
mMinDischargeStepLevel = level;
mLastDischargeStepTime = -1;
@@ -6809,6 +6813,7 @@
mDischargeAmountScreenOff = 0;
updateTimeBasesLocked(true, !screenOn, uptime, realtime);
} else {
+ mOnBattery = mOnBatteryInternal = onBattery;
pullPendingStateUpdatesLocked();
mHistoryCur.batteryLevel = (byte)level;
mHistoryCur.states |= HistoryItem.STATE_BATTERY_PLUGGED_FLAG;
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 16fa88e..2b7af4b 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -878,6 +878,30 @@
}
/**
+ * Gets whether the device is encrypted.
+ *
+ * @return Whether the device is encrypted.
+ */
+ public static boolean isDeviceEncrypted() {
+ IMountService mountService = IMountService.Stub.asInterface(
+ ServiceManager.getService("mount"));
+ try {
+ return mountService.getEncryptionState() != IMountService.ENCRYPTION_STATE_NONE
+ && mountService.getPasswordType() != StorageManager.CRYPT_TYPE_DEFAULT;
+ } catch (RemoteException re) {
+ Log.e(TAG, "Error getting encryption state", re);
+ }
+ return true;
+ }
+
+ /**
+ * Clears the encryption password.
+ */
+ public void clearEncryptionPassword() {
+ updateEncryptionPassword(StorageManager.CRYPT_TYPE_DEFAULT, null);
+ }
+
+ /**
* Retrieves the quality mode we're in.
* {@see DevicePolicyManager#getPasswordQuality(android.content.ComponentName)}
*
diff --git a/core/java/com/android/server/BootReceiver.java b/core/java/com/android/server/BootReceiver.java
index 468d7f1..d39bf07 100644
--- a/core/java/com/android/server/BootReceiver.java
+++ b/core/java/com/android/server/BootReceiver.java
@@ -155,8 +155,10 @@
// Scan existing tombstones (in case any new ones appeared)
File[] tombstoneFiles = TOMBSTONE_DIR.listFiles();
for (int i = 0; tombstoneFiles != null && i < tombstoneFiles.length; i++) {
- addFileToDropBox(db, prefs, headers, tombstoneFiles[i].getPath(),
- LOG_SIZE, "SYSTEM_TOMBSTONE");
+ if (tombstoneFiles[i].isFile()) {
+ addFileToDropBox(db, prefs, headers, tombstoneFiles[i].getPath(),
+ LOG_SIZE, "SYSTEM_TOMBSTONE");
+ }
}
// Start watching for new tombstone files; will record them as they occur.
@@ -165,8 +167,10 @@
@Override
public void onEvent(int event, String path) {
try {
- String filename = new File(TOMBSTONE_DIR, path).getPath();
- addFileToDropBox(db, prefs, headers, filename, LOG_SIZE, "SYSTEM_TOMBSTONE");
+ File file = new File(TOMBSTONE_DIR, path);
+ if (file.isFile()) {
+ addFileToDropBox(db, prefs, headers, file.getPath(), LOG_SIZE, "SYSTEM_TOMBSTONE");
+ }
} catch (IOException e) {
Slog.e(TAG, "Can't log tombstone", e);
}
diff --git a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
index b90e493..8440a0e 100644
--- a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
+++ b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
@@ -193,12 +193,13 @@
if (err != NO_ERROR) return err;
sp<GraphicBuffer> buf(new GraphicBuffer(anb, /*keepOwnership*/false));
- uint32_t gBufWidth = buf->getWidth();
- uint32_t gBufHeight = buf->getHeight();
- if (gBufWidth != width || gBufHeight != height) {
+ uint32_t grallocBufWidth = buf->getWidth();
+ uint32_t grallocBufHeight = buf->getHeight();
+ uint32_t grallocBufStride = buf->getStride();
+ if (grallocBufWidth != width || grallocBufHeight != height) {
ALOGE("%s: Received gralloc buffer with bad dimensions %" PRIu32 "x%" PRIu32
- ", expecting dimensions %zu x %zu", __FUNCTION__, gBufWidth, gBufHeight,
- width, height);
+ ", expecting dimensions %zu x %zu", __FUNCTION__, grallocBufWidth,
+ grallocBufHeight, width, height);
return BAD_VALUE;
}
@@ -210,11 +211,12 @@
return err;
}
- uint64_t tmpSize = width * height;
+ uint64_t tmpSize = (pixelFmt == HAL_PIXEL_FORMAT_BLOB) ? grallocBufWidth :
+ 4 * grallocBufHeight * grallocBufWidth;
if (bufFmt != pixelFmt) {
if (bufFmt == HAL_PIXEL_FORMAT_RGBA_8888 && pixelFmt == HAL_PIXEL_FORMAT_BLOB) {
ALOGV("%s: Using BLOB to RGBA format override.", __FUNCTION__);
- tmpSize *= 4;
+ tmpSize = 4 * (grallocBufWidth + grallocBufStride * (grallocBufHeight - 1));
} else {
ALOGW("%s: Format mismatch in produceFrame: expecting format %#" PRIx32
", but received buffer with format %#" PRIx32, __FUNCTION__, pixelFmt, bufFmt);
@@ -311,17 +313,12 @@
int8_t* img = NULL;
struct camera3_jpeg_blob footer = {
jpeg_blob_id: CAMERA3_JPEG_BLOB_ID,
- jpeg_size: (uint32_t)width
+ jpeg_size: (uint32_t)bufferLength
};
size_t totalJpegSize = bufferLength + sizeof(footer);
totalJpegSize = (totalJpegSize + 3) & ~0x3; // round up to nearest octonibble
- if (height != 1) {
- ALOGE("%s: Invalid height set for JPEG buffer output, %zu", __FUNCTION__, height);
- return BAD_VALUE;
- }
-
if (totalJpegSize > totalSizeBytes) {
ALOGE("%s: Pixel buffer needs size %zu, cannot fit in gralloc buffer of size %zu",
__FUNCTION__, totalJpegSize, totalSizeBytes);
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index 2dbd382..e400698 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -264,8 +264,7 @@
ALOGV("onTransact() on %p calling object %p in env %p vm %p\n", this, mObject, env, mVM);
IPCThreadState* thread_state = IPCThreadState::self();
- const int strict_policy_before = thread_state->getStrictModePolicy();
- thread_state->setLastTransactionBinderFlags(flags);
+ const int32_t strict_policy_before = thread_state->getStrictModePolicy();
//printf("Transact from %p to Java code sending: ", this);
//data.print();
@@ -284,15 +283,11 @@
env->DeleteLocalRef(excep);
}
- // Restore the Java binder thread's state if it changed while
- // processing a call (as it would if the Parcel's header had a
- // new policy mask and Parcel.enforceInterface() changed
- // it...)
- const int strict_policy_after = thread_state->getStrictModePolicy();
- if (strict_policy_after != strict_policy_before) {
- // Our thread-local...
- thread_state->setStrictModePolicy(strict_policy_before);
- // And the Java-level thread-local...
+ // Check if the strict mode state changed while processing the
+ // call. The Binder state will be restored by the underlying
+ // Binder system in IPCThreadState, however we need to take care
+ // of the parallel Java state as well.
+ if (thread_state->getStrictModePolicy() != strict_policy_before) {
set_dalvik_blockguard_policy(env, strict_policy_before);
}
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index a8edb77..6219956 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -320,13 +320,6 @@
RenderProxy::invokeFunctor(functor, waitForCompletion);
}
-static jlong android_view_ThreadedRenderer_createDisplayListLayer(JNIEnv* env, jobject clazz,
- jlong proxyPtr, jint width, jint height) {
- RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
- DeferredLayerUpdater* layer = proxy->createDisplayListLayer(width, height);
- return reinterpret_cast<jlong>(layer);
-}
-
static jlong android_view_ThreadedRenderer_createTextureLayer(JNIEnv* env, jobject clazz,
jlong proxyPtr) {
RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
@@ -443,7 +436,6 @@
{ "nDestroy", "(J)V", (void*) android_view_ThreadedRenderer_destroy },
{ "nRegisterAnimatingRenderNode", "(JJ)V", (void*) android_view_ThreadedRenderer_registerAnimatingRenderNode },
{ "nInvokeFunctor", "(JZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor },
- { "nCreateDisplayListLayer", "(JII)J", (void*) android_view_ThreadedRenderer_createDisplayListLayer },
{ "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer },
{ "nBuildLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_buildLayer },
{ "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto },
diff --git a/core/res/res/color/primary_text_activated_material_dark.xml b/core/res/res/color/primary_text_activated_material_dark.xml
new file mode 100644
index 0000000..f1b742a
--- /dev/null
+++ b/core/res/res/color/primary_text_activated_material_dark.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_activated="true"
+ android:color="@color/primary_text_default_material_light"/>
+ <item android:color="@color/primary_text_default_material_dark"/>
+</selector>
diff --git a/core/res/res/color/primary_text_activated_material_light.xml b/core/res/res/color/primary_text_activated_material_light.xml
new file mode 100644
index 0000000..d92da63
--- /dev/null
+++ b/core/res/res/color/primary_text_activated_material_light.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_activated="true"
+ android:color="@color/primary_text_default_material_dark"/>
+ <item android:color="@color/primary_text_default_material_light"/>
+</selector>
diff --git a/core/res/res/color/secondary_text_activated_material_dark.xml b/core/res/res/color/secondary_text_activated_material_dark.xml
new file mode 100644
index 0000000..7a8428a
--- /dev/null
+++ b/core/res/res/color/secondary_text_activated_material_dark.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_activated="true"
+ android:color="@color/secondary_text_default_material_light"/>
+ <item android:color="@color/secondary_text_default_material_dark"/>
+</selector>
diff --git a/core/res/res/color/secondary_text_activated_material_light.xml b/core/res/res/color/secondary_text_activated_material_light.xml
new file mode 100644
index 0000000..36ff408
--- /dev/null
+++ b/core/res/res/color/secondary_text_activated_material_light.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_activated="true"
+ android:color="@color/secondary_text_default_material_dark"/>
+ <item android:color="@color/secondary_text_default_material_light"/>
+</selector>
diff --git a/core/res/res/drawable-hdpi/ic_audio_alarm_alpha.png b/core/res/res/drawable-hdpi/ic_audio_alarm_alpha.png
deleted file mode 100644
index 1b41de4..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_alarm_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_alarm_mute_alpha.png b/core/res/res/drawable-hdpi/ic_audio_alarm_mute_alpha.png
deleted file mode 100644
index 45ed7b6..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_alarm_mute_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_am_alpha.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_am_alpha.png
deleted file mode 100644
index a89f45f..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_ring_notif_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am_alpha.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am_alpha.png
deleted file mode 100644
index d03bade..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_ring_notif_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am_alpha.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am_alpha.png
deleted file mode 100644
index 4199106..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_vol_am_alpha.png b/core/res/res/drawable-hdpi/ic_audio_vol_am_alpha.png
deleted file mode 100644
index 6ea2693..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_vol_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_audio_vol_mute_am_alpha.png b/core/res/res/drawable-hdpi/ic_audio_vol_mute_am_alpha.png
deleted file mode 100644
index 4256385..0000000
--- a/core/res/res/drawable-hdpi/ic_audio_vol_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_alarm_alpha.png b/core/res/res/drawable-mdpi/ic_audio_alarm_alpha.png
deleted file mode 100644
index fab95aa..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_alarm_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_alarm_mute_alpha.png b/core/res/res/drawable-mdpi/ic_audio_alarm_mute_alpha.png
deleted file mode 100644
index 451e932..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_alarm_mute_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_am_alpha.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_am_alpha.png
deleted file mode 100644
index 1ce4f52..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_ring_notif_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am_alpha.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am_alpha.png
deleted file mode 100644
index cb17415..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_ring_notif_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am_alpha.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am_alpha.png
deleted file mode 100644
index 2d99b76..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_vol_am_alpha.png b/core/res/res/drawable-mdpi/ic_audio_vol_am_alpha.png
deleted file mode 100644
index c32fdbc0d..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_vol_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_audio_vol_mute_am_alpha.png b/core/res/res/drawable-mdpi/ic_audio_vol_mute_am_alpha.png
deleted file mode 100644
index 0dfc21f..0000000
--- a/core/res/res/drawable-mdpi/ic_audio_vol_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_alarm_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_alarm_alpha.png
deleted file mode 100644
index c1f56a1..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_alarm_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_alarm_mute_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_alarm_mute_alpha.png
deleted file mode 100644
index 0d7034f..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_alarm_mute_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_am_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_am_alpha.png
deleted file mode 100644
index 0df1934..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am_alpha.png
deleted file mode 100644
index 85acb93..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
deleted file mode 100644
index 122c708..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_vol_am_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_vol_am_alpha.png
deleted file mode 100644
index 4e2e20e..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_vol_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_audio_vol_mute_am_alpha.png b/core/res/res/drawable-xhdpi/ic_audio_vol_mute_am_alpha.png
deleted file mode 100644
index 64a5215..0000000
--- a/core/res/res/drawable-xhdpi/ic_audio_vol_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_alarm_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_alarm_alpha.png
deleted file mode 100755
index c1c3d35..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_alarm_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_alarm_mute_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_alarm_mute_alpha.png
deleted file mode 100644
index 4bcee68..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_alarm_mute_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am_alpha.png
deleted file mode 100644
index 699711c..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am_alpha.png
deleted file mode 100644
index 19d92ba..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
deleted file mode 100644
index fdcfd56..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_ring_notif_vibrate_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_vol_am_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_vol_am_alpha.png
deleted file mode 100755
index 15b6311..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_vol_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am_alpha.png b/core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am_alpha.png
deleted file mode 100644
index b8f4111..0000000
--- a/core/res/res/drawable-xxhdpi/ic_audio_vol_mute_am_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/ic_audio_alarm.xml b/core/res/res/drawable/ic_audio_alarm.xml
index d3e5470..fc4bf10 100644
--- a/core/res/res/drawable/ic_audio_alarm.xml
+++ b/core/res/res/drawable/ic_audio_alarm.xml
@@ -1,19 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+Copyright (C) 2014 The Android Open Source Project
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+ 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_audio_alarm_alpha"
- android:tint="?attr/colorControlNormal" />
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="?android:attr/colorControlNormal"
+ android:pathData="M44.0,11.44l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-28.24,-4.66l-2.57,-3.06 -9.19,7.71 2.57,3.06 9.19,-7.71zm9.24,9.22l-3.0,0.0l0.0,12.0l9.49,5.71 1.51,-2.47 -8.0,-4.74l0.0,-10.5zm-1.01,-8.0c-9.95,0.0 -17.99,8.06 -17.99,18.0s8.04,18.0 17.99,18.0 18.01,-8.06 18.01,-18.0 -8.06,-18.0 -18.01,-18.0zm0.01,32.0c-7.73,0.0 -14.0,-6.27 -14.0,-14.0s6.27,-14.0 14.0,-14.0 14.0,6.27 14.0,14.0 -6.26,14.0 -14.0,14.0z"/>
+</vector>
diff --git a/core/res/res/drawable/ic_audio_alarm_mute.xml b/core/res/res/drawable/ic_audio_alarm_mute.xml
index 7d85872..1d24081 100644
--- a/core/res/res/drawable/ic_audio_alarm_mute.xml
+++ b/core/res/res/drawable/ic_audio_alarm_mute.xml
@@ -1,19 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!--
+Copyright (C) 2014 The Android Open Source Project
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+ 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_audio_alarm_mute_alpha"
- android:tint="?attr/colorControlNormal" />
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="?android:attr/colorControlNormal"
+ android:pathData="M24.0,12.0c7.73,0.0 14.0,6.27 14.0,14.0 0.0,1.69 -0.31,3.3 -0.86,4.8l3.04,3.04c1.16,-2.37 1.82,-5.03 1.82,-7.84 0.0,-9.94 -8.06,-18.0 -18.01,-18.0 -2.81,0.0 -5.46,0.66 -7.84,1.81l3.05,3.05c1.5,-0.55 3.11,-0.86 4.8,-0.86zm20.0,-0.56l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-38.16,-6.85l-2.55,2.54 2.66,2.66 -2.22,1.86 2.84,2.84 2.22,-1.86 1.6,1.6c-2.73,3.16 -4.39,7.27 -4.39,11.77 0.0,9.94 8.04,18.0 17.99,18.0 4.51,0.0 8.62,-1.67 11.77,-4.4l4.4,4.4 2.54,-2.55 -34.91,-34.91 -1.95,-1.95zm27.1,32.19c-2.43,2.01 -5.54,3.22 -8.94,3.22 -7.73,0.0 -14.0,-6.27 -14.0,-14.0 0.0,-3.4 1.21,-6.51 3.22,-8.94l19.72,19.72zm-16.91,-30.23l-2.84,-2.84 -1.7,1.43 2.84,2.84 1.7,-1.43z"/>
+</vector>
diff --git a/core/res/res/drawable/ic_audio_vol.xml b/core/res/res/drawable/ic_audio_vol.xml
index 8d07ded..a55be93 100644
--- a/core/res/res/drawable/ic_audio_vol.xml
+++ b/core/res/res/drawable/ic_audio_vol.xml
@@ -1,23 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
<!--
-/*
- * Copyright 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
+Copyright (C) 2014 The Android Open Source Project
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_audio_vol_am_alpha"
- android:autoMirrored="true"
- android:tint="?attr/colorControlNormal" />
+ 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="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="?android:attr/colorControlNormal"
+ android:pathData="M6.0,18.0l0.0,12.0l8.0,0.0l10.0,10.0L24.0,8.0L14.0,18.0L6.0,18.0zm27.0,6.0c0.0,-3.53 -2.04,-6.58 -5.0,-8.05l0.0,16.11c2.96,-1.48 5.0,-4.53 5.0,-8.06zM28.0,6.46l0.0,4.13c5.78,1.72 10.0,7.07 10.0,13.41s-4.22,11.69 -10.0,13.41l0.0,4.13c8.01,-1.82 14.0,-8.97 14.0,-17.54S36.01,8.28 28.0,6.46z"/>
+</vector>
diff --git a/core/res/res/drawable/ic_audio_vol_mute.xml b/core/res/res/drawable/ic_audio_vol_mute.xml
index edbdb23..ab50a7d 100644
--- a/core/res/res/drawable/ic_audio_vol_mute.xml
+++ b/core/res/res/drawable/ic_audio_vol_mute.xml
@@ -1,23 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
<!--
-/*
- * Copyright 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
+Copyright (C) 2014 The Android Open Source Project
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_audio_vol_mute_am_alpha"
- android:autoMirrored="true"
- android:tint="?attr/colorControlNormal" />
+ 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="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="?android:attr/colorControlNormal"
+ android:pathData="M33.0,24.0c0.0,-3.53 -2.04,-6.58 -5.0,-8.05l0.0,4.42l4.91,4.91c0.06,-0.42 0.09,-0.85 0.09,-1.28zm5.0,0.0c0.0,1.88 -0.41,3.65 -1.08,5.28l3.03,3.03C41.25,29.82 42.0,27.0 42.0,24.0c0.0,-8.56 -5.99,-15.72 -14.0,-17.54l0.0,4.13c5.78,1.72 10.0,7.07 10.0,13.41zM8.55,6.0L6.0,8.55 15.45,18.0L6.0,18.0l0.0,12.0l8.0,0.0l10.0,10.0L24.0,26.55l8.51,8.51c-1.34,1.03 -2.85,1.86 -4.51,2.36l0.0,4.13c2.75,-0.63 5.26,-1.89 7.37,-3.62L39.45,42.0 42.0,39.45l-18.0,-18.0L8.55,6.0zM24.0,8.0l-4.18,4.18L24.0,16.36L24.0,8.0z"/>
+</vector>
diff --git a/core/res/res/drawable/list_divider_material.xml b/core/res/res/drawable/list_divider_material.xml
index 7ff212a..babb646 100644
--- a/core/res/res/drawable/list_divider_material.xml
+++ b/core/res/res/drawable/list_divider_material.xml
@@ -17,4 +17,4 @@
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/list_divider_mtrl_alpha"
android:tint="?attr/colorForeground"
- android:alpha="0.16" />
+ android:alpha="0.12" />
diff --git a/core/res/res/drawable/list_section_divider_material.xml b/core/res/res/drawable/list_section_divider_material.xml
index 515634e..f44c3f2 100644
--- a/core/res/res/drawable/list_section_divider_material.xml
+++ b/core/res/res/drawable/list_section_divider_material.xml
@@ -16,4 +16,5 @@
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/list_section_divider_mtrl_alpha"
- android:tint="?attr/colorControlNormal" />
+ android:tint="?attr/colorForeground"
+ android:alpha="0.12" />
diff --git a/core/res/res/layout/alert_dialog_material.xml b/core/res/res/layout/alert_dialog_material.xml
index 54a1061..c961828 100644
--- a/core/res/res/layout/alert_dialog_material.xml
+++ b/core/res/res/layout/alert_dialog_material.xml
@@ -56,7 +56,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
- android:minHeight="64dp">
+ android:minHeight="48dp">
<ScrollView android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -66,7 +66,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/message"
- style="?attr/textAppearanceMedium"
+ style="@style/TextAppearance.Material.Subhead"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/alert_dialog_padding_material"
@@ -84,7 +84,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:minHeight="64dp">
+ android:minHeight="48dp">
<FrameLayout android:id="@+id/custom"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
diff --git a/core/res/res/layout/breadcrumbs_in_fragment_material.xml b/core/res/res/layout/breadcrumbs_in_fragment_material.xml
new file mode 100644
index 0000000..96c0144
--- /dev/null
+++ b/core/res/res/layout/breadcrumbs_in_fragment_material.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- This layout disables breadcrumbs in the fragment area and causes PreferenceActivity to
+ put the breadcrumbs in the action bar. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ android:visibility="gone" />
diff --git a/core/res/res/layout/preference_header_item_material.xml b/core/res/res/layout/preference_header_item_material.xml
index 594189f..ffb18ae 100644
--- a/core/res/res/layout/preference_header_item_material.xml
+++ b/core/res/res/layout/preference_header_item_material.xml
@@ -45,7 +45,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:textColor="?android:attr/textColorPrimaryActivated"
android:ellipsize="marquee"
android:fadingEdge="horizontal" />
@@ -54,7 +55,8 @@
android:layout_height="wrap_content"
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
- android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondaryActivated"
android:ellipsize="end"
android:maxLines="2" />
diff --git a/core/res/res/layout/preference_list_content_material.xml b/core/res/res/layout/preference_list_content_material.xml
index 7856799..1bc527e 100644
--- a/core/res/res/layout/preference_list_content_material.xml
+++ b/core/res/res/layout/preference_list_content_material.xml
@@ -48,7 +48,8 @@
android:drawSelectorOnTop="false"
android:cacheColorHint="@color/transparent"
android:listPreferredItemHeight="48dp"
- android:scrollbarAlwaysDrawVerticalTrack="true" />
+ android:scrollbarAlwaysDrawVerticalTrack="true"
+ android:divider="@null" />
<FrameLayout android:id="@+id/list_footer"
android:layout_width="match_parent"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index ca94c3a..a20b2d5 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -749,8 +749,8 @@
<string name="policylab_limitPassword" msgid="4497420728857585791">"Stel wagwoordreëls"</string>
<string name="policydesc_limitPassword" msgid="3252114203919510394">"Beheer lengte en watter karakters wat in die skermontsluit-wagwoorde gebruik word."</string>
<string name="policylab_watchLogin" msgid="914130646942199503">"Monitor pogings om skerm te ontsluit"</string>
- <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"Monitor die aantal keer wat \'n verkeerde wagwoorde ingevoer is wanneer die skerm ontsluit word, en sluit die tablet of veel al die data uit as die wagwoord te veel keer verkeerd ingevoer word."</string>
- <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Monitor die aantal keer wat \'n verkeerde wagwoorde ingevoer is wanneer die skerm ontsluit word, en sluit die foon of vee al die data uit as die wagwoord te veel keer verkeerd ingevoer word."</string>
+ <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"Monitor die aantal keer wat \'n verkeerde wagwoorde ingevoer is wanneer die skerm ontsluit word. Sluit die tablet of vee al die data uit as die wagwoord te veel keer verkeerd ingevoer word."</string>
+ <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Monitor die aantal keer wat \'n verkeerde wagwoorde ingevoer is wanneer die skerm ontsluit word. Sluit die foon of vee al die data uit as die wagwoord te veel keer verkeerd ingevoer word."</string>
<string name="policylab_resetPassword" msgid="2620077191242688955">"Wysig die wagwoord wat die skerm ontsluit"</string>
<string name="policydesc_resetPassword" msgid="605963962301904458">"Verander die skermontsluit-wagwoord."</string>
<string name="policylab_forceLock" msgid="2274085384704248431">"Sluit die skerm"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Teksaksies"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Bergingspasie word min"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Sommige stelselfunksies werk moontlik nie"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Nie genoeg berging vir die stelsel nie. Maak seker jy het 250 MB spasie beskikbaar en herbegin."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> loop tans"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Raak vir meer inligting of om die program te stop."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Redigeer met %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Deel met"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Deel met %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Kies \'n tuisprogram"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Kies \'n Tuis-program"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Gebruik %1$s as Tuis"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Gebruik hierdie aksie by verstek."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Gebruik \'n ander program"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Vee die verstek instelling uit in Stelselinstellings > Programme > Afgelaai."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Oorlegger #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", veilig"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Skerm word tans uitgesaai"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Koppel tans aan <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Skerm word tans uitgesaai"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Gekoppel aan <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Ontkoppel"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Noodoproep"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Het jy die patroon vergeet?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Verkeerde patroon"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 1467ded..2fe1c75 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -172,7 +172,7 @@
<string name="reboot_safemode_title" msgid="7054509914500140361">"በአስተማማኝ ኹነታ ውስጥ ዳግም አስጀምር"</string>
<string name="reboot_safemode_confirm" msgid="55293944502784668">"በአስተማማኝ ኹነታ ውስጥ ዳግም ማስጀመር ትፈልጋለህ? ይሄ ሁሉንም የጫንካቸው የሶስተኛ ወገን መተግበሪያዎችን ያሰናክላል። እንደገና ዳግም ስታስጀምር ይመለስሉሃል።"</string>
<string name="recent_tasks_title" msgid="3691764623638127888">"የቅርብ ጊዜ"</string>
- <string name="no_recent_tasks" msgid="8794906658732193473">"ምንም የቅርብ ጊዜ ትግበራዎች የሉም"</string>
+ <string name="no_recent_tasks" msgid="8794906658732193473">"ምንም የቅርብ ጊዜ መተግበሪያዎች የሉም"</string>
<string name="global_actions" product="tablet" msgid="408477140088053665">"የጡባዊ አማራጮች"</string>
<string name="global_actions" product="default" msgid="2406416831541615258">"የስልክ አማራጮች"</string>
<string name="global_action_lock" msgid="2844945191792119712">"ማያ ቆልፍ"</string>
@@ -312,7 +312,7 @@
<string name="permdesc_getDetailedTasks" msgid="153824741440717599">"መተግበሪያው በአሁኑ ጊዜ እየተካሄዱ ስላሉና በቅርብ ጊዜ ስለተካሄዱ ተግባሮች መረጃ ዝርዝር እንዲያወጣ ይፈቅድለታል። ተንኮል-አዘል መተግበሪያዎች ስለ ሌሎች መተግበሪያዎች የግል መረጃ ሊያገኙ ይችላሉ።"</string>
<string name="permlab_reorderTasks" msgid="2018575526934422779">"አሂድ ትግበራዎችን ድጋሚ ደርድር"</string>
<string name="permdesc_reorderTasks" msgid="7734217754877439351">"መተግበሪያው ተግባሮችን ወደ ቅድመ ገጹ እና ወደ ዳራው እንዲያንቀሳቅስ ይፈቅድለታል። መተግበሪያው ይህንን ያላንተ ግብዓት ሊያደርግ ይችላል።"</string>
- <string name="permlab_removeTasks" msgid="6821513401870377403">"የአሂድ ትግበራዎች አቁም"</string>
+ <string name="permlab_removeTasks" msgid="6821513401870377403">"የአሂድ መተግበሪያዎች አቁም"</string>
<string name="permdesc_removeTasks" msgid="1394714352062635493">"ተግባሮችን ለማስወገድ እና መተግበሪያዎቻቸውን ለመግደል ለመተግበሪያ ይፈቅዳል። ጎጂ የሆኑ መተግበሪያዎች የሌሎችን መተግበሪያዎችን ባህሪ ሊያውኩ ይችላሉ።"</string>
<string name="permlab_manageActivityStacks" msgid="7391191384027303065">"የእንቅስቃሴ ቁልሎችን ማቀናበር"</string>
<string name="permdesc_manageActivityStacks" msgid="1615881933034084440">"መተግበሪያው ሌሎች መተግበሪያዎች በሚያሄዱበት የእንቅስቃሴዎች ቁልሎችን እንዲያክል፣ እንዲያስወግድ እና እንዲቀይር ያስችለዋል። ተንኮል-አዘል መተግበሪያዎች የሌሎች መተግበሪያዎች ባህሪን ሊበጠብጡ ይችላሉ።"</string>
@@ -390,7 +390,7 @@
<string name="permlab_readInputState" msgid="469428900041249234">"የሚተይቡትን እና የሚወስዱትን እርምጃ ይመዝግቡ"</string>
<string name="permdesc_readInputState" msgid="8387754901688728043">"ከሌላ መተግበሪያ( ልክ እንደ የይለፍ ቃል መጫን) ጋር በምትገናኝበት ጊዜ እንኳን የተጫንካቸውን ቁልፎች ለማየት ለመተግበሪያው ይፈቅዳሉ፡፡ ለመደበኛ መተግበሪያዎች መቼም ቢሆን አያስፈልግም፡፡"</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"በግቤት ስልት ጠርዝ"</string>
- <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ በይነገጽ ለመጠረዝ ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
+ <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ በይነገጽ ለመጠረዝ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_bindAccessibilityService" msgid="5357733942556031593">"ከአንድ የተደራሽነት አገልግሎት ጋር እሰር"</string>
<string name="permdesc_bindAccessibilityService" msgid="7034615928609331368">"ያዢው ወደ የአንድ ተደራሽነት አገልግሎት ከፍተኛ-ደረጃ በይነገጽ እንዲያስር ይፈቅድለታል። ለመደበኛ መተግበሪያዎች መቼም ቢሆን ሊያስፈልግ አይገባም።"</string>
<string name="permlab_bindPrintService" msgid="8462815179572748761">"ከአንድ የህትመት አገልግሎት ጋር ማያያዝ"</string>
@@ -400,11 +400,11 @@
<string name="permlab_bindNfcService" msgid="2752731300419410724">"ከNFC አገልግሎት ጋር ይሰሩ"</string>
<string name="permdesc_bindNfcService" msgid="6120647629174066862">"ያዢው የNFC ካርዶችን የሚያስመስሉ መተግበሪያዎችን እንዲያስር ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ ሊያስፈልግ አይገባም።"</string>
<string name="permlab_bindTextService" msgid="7358378401915287938">"ለፅሁፍ አገልግሎት አሰረ"</string>
- <string name="permdesc_bindTextService" msgid="8151968910973998670">"ያዡ ግቤት ለከፍተኛ-ደረጃ የፅሁፍ አገልግሎት ገፅታ ለመጠረዝ ይፈቅዳል። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
+ <string name="permdesc_bindTextService" msgid="8151968910973998670">"ያዡ ግቤት ለከፍተኛ-ደረጃ የፅሁፍ አገልግሎት ገፅታ ለመጠረዝ ይፈቅዳል። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_bindVpnService" msgid="4708596021161473255">"ለVPN አገልግሎት ተገዛ"</string>
<string name="permdesc_bindVpnService" msgid="2067845564581693905">"የVPN ግልጋሎትን ወደ ከፍተኛ-ደረጃ በየነ ገጽ ለማሳር ለመያዣው ይፈቅዳሉ፡፡ለተለመዱ መተግበሪያዎች አያስፈልግም፡፡"</string>
<string name="permlab_bindWallpaper" msgid="8716400279937856462">"በልጣፍ ጠርዝ"</string>
- <string name="permdesc_bindWallpaper" msgid="7108428692595491668">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ ልጣፍ ለመጠረዝ ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
+ <string name="permdesc_bindWallpaper" msgid="7108428692595491668">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ ልጣፍ ለመጠረዝ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_bindVoiceInteraction" msgid="5334852580713715068">"ከአንድ የድምጽ በይነተገናኝ ጋር ይሰሩ"</string>
<string name="permdesc_bindVoiceInteraction" msgid="2345721766501778101">"ያዢው የአንድ የድምጽ በይነግንኙነት አገልግሎት የከፍተኛ ደረጃ በይነገጽ እንዲያስር ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ አያስፈልግም።"</string>
<string name="permlab_manageVoiceKeyphrases" msgid="1252285102392793548">"ድምጽ የቁልፍ ሃረጎችን አስተዳድር"</string>
@@ -412,7 +412,7 @@
<string name="permlab_bindRemoteDisplay" msgid="1782923938029941960">"ከአንድ የርቀት ማሳያ ጋር ይጠርዛል"</string>
<string name="permdesc_bindRemoteDisplay" msgid="1261242718727295981">"ያዢው ከአንድ የርቀት ማሳያ ከፍተኛ-ደረጃ በይነገጽ ጋር እንዲጠርዝ ይፈቅድለታል። ለመደበኛ መተግበሪያዎች በጭራሽ አያስፈልግም።"</string>
<string name="permlab_bindRemoteViews" msgid="5697987759897367099">"ወደ ፍርግም አገልግሎት አያይዝ"</string>
- <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ ፍርግም አገልግሎት ለመጠረዝ ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
+ <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"ያዡ ግቤት ስልቱን ወደ ከፍተኛ-ደረጃ ፍርግም አገልግሎት ለመጠረዝ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ከመሣሪያ አስተዳደር ጋር ተገናኝ"</string>
<string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ያዡ በይነመረብን ለመሣሪያ አስተዳዳሪ ለመላክ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_bindTvInput" msgid="5601264742478168987">"ከአንድ የቴሌቪዥን ግብዓት ጋር እሰር"</string>
@@ -440,7 +440,7 @@
<string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"መሸጎጫ ፋይሎችን ለመሰረዝ ለመተግበሪያው ይፈቅዳሉ።"</string>
<string name="permlab_getPackageSize" msgid="7472921768357981986">"የመተግበሪያ ማከማቻ ቦታ ለካ"</string>
<string name="permdesc_getPackageSize" msgid="3921068154420738296">"የራሱን ኮድ ፣ውሂብ እና መሸጎጫ መጠኖች ሰርስሮ ለማውጣት ለመተግበሪያው ይፈቅዳሉ።"</string>
- <string name="permlab_installPackages" msgid="2199128482820306924">"በቀጥታ ትግበራዎች ጫን"</string>
+ <string name="permlab_installPackages" msgid="2199128482820306924">"በቀጥታ መተግበሪያዎች ጫን"</string>
<string name="permdesc_installPackages" msgid="5628530972548071284">"Android ፓኬጆችንለማዘመን ወይም አዲስ ለመጫን ለመተግበሪያው ይፈቅዳሉ፡፡ በዘፈቀደ ሀይለኛ ፍቃዶች ጋር ተንኮል አዘል መተግበሪያዎች አዲስ መተግበሪያዎችን ለማከል ሊጠቀሙበት ይችላሉ፡፡"</string>
<string name="permlab_clearAppCache" msgid="7487279391723526815">"ሁሉንም የትግበራዎች መሸጎጫ ውሂብ ሰርዝ"</string>
<string name="permdesc_clearAppCache" product="tablet" msgid="8974640871945434565">"በሌሎች መተግበሪያዎች የመሸጎጫ ማውጫዎች ውስጥ ያሉትን ፋይሎች በመሰረዝ መተግበሪያው የጡባዊ ማከማቻ ቦታ ነጻ እንዲያስለቅቅ ያስችለዋል። ይሄ ሌሎች መተግበሪያዎች ውሂባቸውን ዳግም ማምጣት ስላለባቸው ይበልጥ ዘግየት ብለው እንዲጀምሩ ሊያደርጋቸው ይችላል።"</string>
@@ -468,9 +468,9 @@
<string name="permlab_writeSettings" msgid="2226195290955224730">"የስርዓት ቅንብሮችን አስተካክል"</string>
<string name="permdesc_writeSettings" msgid="7775723441558907181">"የስርዓት ቅንብሮችን ውሂብ ለመቀየር ለመተግበሪያው ይፈቅዳሉ። ተንኮል አዘል መተግበሪያዎች የስርዓትዎን አወቃቀር ብልሹ ሊያደርጉት ይችላሉ።"</string>
<string name="permlab_writeSecureSettings" msgid="204676251876718288">"የስርዓት ቅንብሮችንደህንነት ቀይር"</string>
- <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"የስርዓቱን ደህንነቱ የተጠበቀ ቅንብሮችን ውሂብ ለመቀየር ለመተግበሪያው ይፈቅዳሉ። ለመደበኛ ትግበራዎች አያስፈልግም።"</string>
+ <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"የስርዓቱን ደህንነቱ የተጠበቀ ቅንብሮችን ውሂብ ለመቀየር ለመተግበሪያው ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች አያስፈልግም።"</string>
<string name="permlab_writeGservices" msgid="2149426664226152185">"የGoogle አገልግሎቶች ካርታን ቀይር"</string>
- <string name="permdesc_writeGservices" msgid="1287309437638380229">"ትግበራ የGoogle ካርታ አገልግሎቶችን ለመቀየር ይፈቅዳል።ለመደበኛ ትግበራዎች ጥቅም አይደለም።"</string>
+ <string name="permdesc_writeGservices" msgid="1287309437638380229">"ትግበራ የGoogle ካርታ አገልግሎቶችን ለመቀየር ይፈቅዳል።ለመደበኛ መተግበሪያዎች ጥቅም አይደለም።"</string>
<string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"መነሻ ላይ አሂድ"</string>
<string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"ስርዓቱ ማስጀመር እንደጨረሰ ወዲያውኑ እራሱን እንዲያስጀምር ለመተግበሪያው ይፈቅዳሉ፡፡ ይሄ ጡባዊ ተኮን ለማስጀመር ብዙ ጊዜ ሊፈጅ ይችላል እና ሁልጊዜ በማስኬድ ጠቅላላውን ጡባዊ ተኮን እንዲቀራፈፍ ለመተግበሪያው ይፈቅዳል፡፡"</string>
<string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"ወዲያውኑ ስርዓቱ ማስነሳት ሲጨርስ ራሱን እንዲያስጀምር ለመተግበሪያው ይፈቅዳሉ፡፡ ይሄ ስልኩን ለማስጀመር ብዙ ጊዜ እንዲወስድ ሊያደርገው ይችላል እና ሁልጊዜ በማስኬድ ሁሉንም ስልክ ለማንቀራፈፍ ለመተግበሪያው ይፈቅዳል፡፡"</string>
@@ -589,7 +589,7 @@
<string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"የCDMA ስልክ ጫን በቀጥታ አስጀምር"</string>
<string name="permdesc_performCdmaProvisioning" msgid="1994193538802314186">"መተግበሪያው የCDMA ዝግጅት ለመጀመር ይፈቅዳሉ ። ተንኮል አዘል መተግበሪያዎች አላስፈላጊ የCDMA ዝግጅት ይጀምራሉ።"</string>
<string name="permlab_locationUpdates" msgid="7785408253364335740">"የሥፍራ አዘምን ማሳወቂያዎችን ተቆጣጠር"</string>
- <string name="permdesc_locationUpdates" msgid="1120741557891438876">"ከሬድዮ የአከባቢ አዘምን ማሳወቂያዎችን ለማንቃት/ለማስወገድ ለመተግበሪያው ይፈቅዳል፡፡ ለመደበኛ ትግበራዎች ጥቅም አይደለም፡፡"</string>
+ <string name="permdesc_locationUpdates" msgid="1120741557891438876">"ከሬድዮ የአከባቢ አዘምን ማሳወቂያዎችን ለማንቃት/ለማስወገድ ለመተግበሪያው ይፈቅዳል፡፡ ለመደበኛ መተግበሪያዎች ጥቅም አይደለም፡፡"</string>
<string name="permlab_checkinProperties" msgid="7855259461268734914">"የድረስባህሪያት ምልከታ"</string>
<string name="permdesc_checkinProperties" msgid="4024526968630194128">"በገቢር ጀምር አገልግሎት ወደ ተሰቀሉት ባህሪያት አንብብ/ ፃፍ እንዲደርስ ለመተግበሪያው ይፈቅዳሉ፡፡"</string>
<string name="permlab_bindGadget" msgid="776905339015863471">"ፍርግሞች ምረጥ"</string>
@@ -1032,7 +1032,7 @@
<string name="permlab_packageVerificationAgent" msgid="5568139100645829117">"ፓኬጆችን አረጋግጥ"</string>
<string name="permdesc_packageVerificationAgent" msgid="8437590190990843381">"ፓኬጅ መጫን የሚችል መሆኑን ለማረጋገጥ ለመተግበሪያው ይፈቅዳሉ፡፡"</string>
<string name="permlab_bindPackageVerifier" msgid="4187786793360326654">"በፓኬጅ አረጋጋጭ የተወሰነ"</string>
- <string name="permdesc_bindPackageVerifier" msgid="3180741773233862126">"የፓኬጅ አረጋጋጮችን ጥየቃ ለማድረግ ያዡ ይፈቅዳሉ። ለመደበኛ ትግበራዎች በፍፁም አያስፈልግም።"</string>
+ <string name="permdesc_bindPackageVerifier" msgid="3180741773233862126">"የፓኬጅ አረጋጋጮችን ጥየቃ ለማድረግ ያዡ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
<string name="permlab_serialPort" msgid="546083327654631076">"ተከታታይ ወደቦችን ድረስ"</string>
<string name="permdesc_serialPort" msgid="2991639985224598193">"Allows the holder to access serial ports using the SerialManager API. የተከታታይ አደራጅ APIን በመጠቀም ያዡ የተከታታይ ወደቦችን እንዲደርስ ይፈቅዳል።"</string>
<string name="permlab_accessContentProvidersExternally" msgid="5077774297943409285">"ይዘት አቅራቢዎችን በውጭ በኩል ድረስባቸው"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"የፅሁፍ እርምጃዎች"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"የማከማቻ ቦታ እያለቀ ነው"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"አንዳንድ የስርዓት ተግባራት ላይሰሩ ይችላሉ"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ለስርዓቱ የሚሆን በቂ ቦታ የለም። 250 ሜባ ነጻ ቦታ እንዳለዎት ያረጋግጡና ዳግም ያስጀምሩ።"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> እያሄደ ነው"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"ተጨማሪ መረጃ ለማግኘት ወይም መተግበሪያውን ለማቆም ይንኩ።"</string>
<string name="ok" msgid="5970060430562524910">"እሺ"</string>
@@ -1201,13 +1202,14 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"ያርትዑ በ%1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"በሚከተለው ያጋሩ፦"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"በ%1$s ያጋሩ"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"የመነሻ መተግበሪያ ይምረጡ"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"የመነሻ መተግበሪያ ይምረጡ"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$sን እንደመነሻ ይጠቀሙ"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ለዕርምጃ ነባሪ ተጠቀም።"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"የተለየ መተግበሪያ ይጠቀሙ"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"ነባሪ አጽዳ በስርዓት ቅንብሮች ውስጥ > Apps &gt፤ወርዷል፡፡"</string>
<string name="chooseActivity" msgid="7486876147751803333">"ድርጊት ምረጥ"</string>
<string name="chooseUsbActivity" msgid="6894748416073583509">"ለUSB መሳሪያ መተግበሪያ ምረጥ"</string>
- <string name="noApplications" msgid="2991814273936504689">"ምንም ትግበራዎች ይህን ድርጊት ማከናወን አይችሉም።"</string>
+ <string name="noApplications" msgid="2991814273936504689">"ምንም መተግበሪያዎች ይህን ድርጊት ማከናወን አይችሉም።"</string>
<string name="aerr_title" msgid="1905800560317137752"></string>
<string name="aerr_application" msgid="932628488013092776">"መጥፎ ዕድል ሆኖ፣ <xliff:g id="APPLICATION">%1$s</xliff:g> አቁሞዋል፡፡"</string>
<string name="aerr_process" msgid="4507058997035697579">"መጥፎ ዕድል ሆኖ፣ ይሄ ሂደት <xliff:g id="PROCESS">%1$s</xliff:g> ቆሞዋል፡፡"</string>
@@ -1383,7 +1385,7 @@
<string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD ካርድተወግዷል።አዲስ አስገባ።"</string>
<string name="activity_list_empty" msgid="1675388330786841066">"ምንም ተመሳሳይ እንቅስቃሴዎች አልተገኙም።"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"የስታስቲክስ አጠቃቀም ምንዝርን አዘምን"</string>
- <string name="permdesc_pkgUsageStats" msgid="1106612424254277630">"የተሰበሰቡ የዕቃ አጠቃቃም ስታስቲክሶችን ለመለወጥ ለመተግበሪያው ይፈቅዳል፡፡ለመደበኛ ትግበራዎች ጥቅም አይደለም፡፡"</string>
+ <string name="permdesc_pkgUsageStats" msgid="1106612424254277630">"የተሰበሰቡ የዕቃ አጠቃቃም ስታስቲክሶችን ለመለወጥ ለመተግበሪያው ይፈቅዳል፡፡ለመደበኛ መተግበሪያዎች ጥቅም አይደለም፡፡"</string>
<string name="permlab_copyProtectedData" msgid="4341036311211406692">"ይዘትን ቅዳ"</string>
<string name="permdesc_copyProtectedData" msgid="4390697124288317831">"ይዘትን ለመቅዳት ነባሪ መያዣ አገልግሎት እንዲያስነሳ ለመተግበሪው ይፈቅዳሉ፡፡ ለመደበኛ መተግበሪያዎች ለመጠቀም አይሆንም፡፡"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"የሚዲያ ውፅአት መንገድ"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ተደራቢ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>፦ <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>፣ <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"፣ የተጠበቀ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"ማያ ገጽን በመውሰድ ላይ"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"ከ<xliff:g id="NAME">%1$s</xliff:g> ጋር በመገናኘት ላይ"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"ማያ ገጽን በመውሰድ ላይ"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"ከ<xliff:g id="NAME">%1$s</xliff:g> ጋር ተገናኝቷል"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"ግንኙነት አቋርጥ"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"የአደጋ ጊዜ ጥሪ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ስርዓተ ጥለቱን እርሳ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"የተሳሳተ ስርዓተ ጥለት"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 4467285..fbb4f52 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"إجراءات النص"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"مساحة التخزين منخفضة"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"قد لا تعمل بعض وظائف النظام"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ليست هناك سعة تخزينية كافية للنظام. تأكد من أنه لديك مساحة خالية تبلغ 250 ميغابايت وأعد التشغيل."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> قيد التشغيل"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"المس للحصول على مزيد من المعلومات أو لإيقاف التطبيق."</string>
<string name="ok" msgid="5970060430562524910">"موافق"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"تعديل باستخدام %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"مشاركة مع"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"مشاركة مع %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"تحديد تطبيق الشاشة الرئيسية"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"تحديد تطبيق صفحة رئيسية"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"استخدام %1$s كصفحة رئيسية"</string>
<string name="alwaysUse" msgid="4583018368000610438">"الاستخدام بشكل افتراضي لهذا الإجراء."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"استخدام تطبيق آخر"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"يمكنك محو الإعدادات الافتراضية في إعدادات النظام > التطبيقات > ما تم تنزيله."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"المركب #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>، <xliff:g id="DPI">%4$d</xliff:g> نقطة لكل بوصة"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"آمن"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"جارٍ بث الشاشة"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"جارٍ الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"جارٍ بث الشاشة"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"متصل بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"قطع الاتصال"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"الاتصال بالطوارئ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"نسيت النقش"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"نقش خاطئ"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index ba776c3..3ac8f46 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Действия с текста"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Мястото в хранилището е на изчерпване"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Възможно е някои функции на системата да не работят"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"За системата няма достатъчно място в хранилището. Уверете се, че имате свободни 250 МБ, и рестартирайте."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> се изпълнява"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Докоснете за още информация или за да спрете приложението."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Редактиране чрез %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Споделяне чрез"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Споделяне чрез %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Избиране на приложение за начало"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Избиране на начално приложение"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Използване на %1$s като начално приложение"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Използване по подразбиране за това действие."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Използване на друго приложение"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Изчистване на стандартната настройка в „Системни настройки“ > „Приложения“ > „Изтеглени“."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Наслагване №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"„<xliff:g id="NAME">%1$s</xliff:g>“: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", защитено"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Екранът се предава"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Установява се връзка с/ъс „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Екранът се предава"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Установена е връзка с/ъс „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Прекратяване на връзката"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Спешно обаждане"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забравена фигура"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Грешна фигура"</string>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index f8b122c..d9524fa 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -611,7 +611,7 @@
<string name="permlab_devicePower" product="default" msgid="4928622470980943206">"ফোনের পাওয়ার চালু বা বন্ধ করে"</string>
<string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"অ্যাপ্লিকেশানকে ট্যাবলেটটি চালু বা বন্ধ করতে দেয়৷"</string>
<string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"অ্যাপ্লিকেশানকে ফোনটি চালু বা বন্ধ করতে দেয়৷"</string>
- <string name="permlab_userActivity" msgid="1677844893921729548">"প্রদর্শনের সময় সমাপ্ত হওয়া পুনরায় সেট করুন"</string>
+ <string name="permlab_userActivity" msgid="1677844893921729548">"প্রদর্শনের সময় সমাপ্ত হওয়াটা পুনরায় সেট করুন"</string>
<string name="permdesc_userActivity" msgid="651746160252248024">"প্রদর্শন সময় সমাপ্ত হওয়া পুনরায় সেট করতে অ্যাপ্লিকেশানটিকে অনুমতি দেয়।"</string>
<string name="permlab_factoryTest" msgid="3715225492696416187">"ফ্যাক্টরী পরীক্ষা মোডে চালায়"</string>
<string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"ট্যাবলেটের হার্ডওয়্যারে সম্পূর্ণ অ্যাক্সেসের অনুমতি দিয়ে, একটি নিম্ন স্তরের প্রস্তুতকারকের পরীক্ষা হিসাবে চালায়৷ যখন একটি ট্যাবলেট, প্রস্তুতকারকের পরীক্ষা মোডে চালানো হয় শুধুমাত্র তখনই উপলব্ধ হয়৷"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"পাঠ্য ক্রিয়াগুলি"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"সঞ্চয়স্থান পূর্ণ হতে চলেছে"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"কিছু কিছু সিস্টেম ক্রিয়াকলাপ কাজ নাও করতে পারে"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"সিস্টেমের জন্য যথেষ্ট সঞ্চয়স্থান নেই৷ আপনার কাছে ২৫০MB ফাঁকা স্থান রয়েছে কিনা সে বিষয়ে নিশ্চিত হওয়ার পর পুনরায় চালু করুন৷"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> চলছে"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"আরো তথ্যের জন্য বা অ্যাপ্লিকেশানটি বন্ধ করার জন্য স্পর্শ করুন৷"</string>
<string name="ok" msgid="5970060430562524910">"ঠিক আছে"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s দিয়ে সম্পাদনা করুন"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"এর সাথে ভাগ করুন"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s এর সাথে ভাগ করুন"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"একটি হোম অ্যাপ্লিকেশান নির্বাচন করুন"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"একটি হোম অ্যাপ্লিকেশন নির্বাচন করুন"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"হোম হিসাবে %1$s ব্যবহার করুন"</string>
<string name="alwaysUse" msgid="4583018368000610438">"এই ক্রিয়াটির জন্য এটিকে ডিফল্টরুপে ব্যবহার করুন৷"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"আলাদা কোনো অ্যাপ্লিকেশান ব্যবহার করুন"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"সিস্টেম সেটিংস > অ্যাপ্স > ডাউনলোড করাগুলি এ গিয়ে ডিফল্ট সরিয়ে দিন৷"</string>
@@ -1296,7 +1298,7 @@
<string name="sms_control_no" msgid="625438561395534982">"আস্বীকার করুন"</string>
<string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b> এ একটি বার্তা পাঠাতে চায়৷"</string>
<string name="sms_short_code_details" msgid="5873295990846059400">"এটির জন্য আপনার মোবাইল অ্যাকাউন্টে "<b>"চার্জ বহন করতে হতে পারে"</b>"।"</string>
- <string name="sms_premium_short_code_details" msgid="7869234868023975"><b>"এর ফলে আপনার মোবাইল অ্যাকাউন্টে চার্জ বহন করতে হতে পারে।"</b></string>
+ <string name="sms_premium_short_code_details" msgid="7869234868023975"><b>"এর ফলে আপনার মোবাইল অ্যাকাউন্টে চার্জ লাগতে পারে।"</b></string>
<string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"পাঠান"</string>
<string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"বাতিল করুন"</string>
<string name="sms_short_code_remember_choice" msgid="5289538592272218136">"আমার পছন্দ মনে রাখুন"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"আচ্ছাদন #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", নিরাপদ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"স্ক্রীণ কাস্ট করা হচ্ছে"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> এ সংযোগ করা হচ্ছে"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"স্ক্রীণ কাস্ট করা হচ্ছে"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> এ সংযুক্ত হয়েছে"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"সংযোগ বিচ্ছিন্ন করুন"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"জরুরি কল"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"প্যাটার্ন ভুলে গেছেন"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ভুল প্যাটার্ন"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 59eef74..c45fcd8 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -758,7 +758,7 @@
<string name="policylab_wipeData" msgid="3910545446758639713">"Esborrar totes les dades"</string>
<string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"Esborra les dades de la tauleta sense advertiment mitjançant un restabliment de les dades de fàbrica."</string>
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Esborra les dades del telèfon sense avisar, restablint les dades de fàbrica."</string>
- <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Defineix el servidor intermediari global del dispositiu"</string>
+ <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Definir el servidor intermediari global del dispositiu"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Defineix el servidor intermediari global del dispositiu que cal utilitzar mentre la política estigui activada. Només el primer administrador del dispositiu pot definir el servidor intermediari global efectiu."</string>
<string name="policylab_expirePassword" msgid="885279151847254056">"Definir caducitat de bloqueig de pantalla"</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"Controla la freqüència amb què cal canviar la contrasenya de bloqueig de pantalla."</string>
@@ -766,7 +766,7 @@
<string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Requereix que les dades de l\'aplicació emmagatzemades estiguin encriptades."</string>
<string name="policylab_disableCamera" msgid="6395301023152297826">"Desactivar les càmeres"</string>
<string name="policydesc_disableCamera" msgid="2306349042834754597">"Impedeix l\'ús de les càmeres del dispositiu."</string>
- <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Des. funcions en bloq. tecles"</string>
+ <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Desactivar les funcions en bloqueig"</string>
<string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Impedeix l\'ús d\'algunes funcions en bloqueig de tecles."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Casa"</item>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Accions de text"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"S\'està acabant l\'espai d\'emmagatzematge"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"És possible que algunes funcions del sistema no funcionin"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"No hi ha prou espai d\'emmagatzematge per al sistema. Comprova que tinguis 250 MB d\'espai lliure i reinicia."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> s\'està executant"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toca per obtenir més informació o bé per aturar l\'aplicació."</string>
<string name="ok" msgid="5970060430562524910">"D\'acord"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edita amb %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Comparteix amb"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Comparteix amb %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Selecciona una aplicació d\'inici"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Seleccionar una aplicació Inici"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utilitzar %1$s com a Inici"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Utilitza-ho de manera predeterminada per a aquesta acció."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Fes servir una altra aplicació"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Esborra els paràmetres predeterminats a Configuració del sistema > Aplicacions > Baixades."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposa #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segur"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Emissió de pantalla"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"S\'està connectant a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Emissió de pantalla"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Connectat a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconnecta"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Trucada d\'emergència"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patró oblidat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patró incorrecte"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 6e795df..31fbb3b 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Operace s textem"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"V úložišti je málo místa"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Některé systémové funkce nemusí fungovat"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Pro systém není dostatek místa v úložišti. Uvolněte alespoň 250 MB místa a restartujte zařízení."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> je spuštěna"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Klepnutím zobrazíte další informace nebo ukončíte aplikaci."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Upravit v aplikaci %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Sdílet v aplikaci"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Sdílet v aplikaci %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Vyberte domovskou aplikaci"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Výběr aplikace na plochu"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Jako plochu používat aplikaci %1$s."</string>
<string name="alwaysUse" msgid="4583018368000610438">"Použít jako výchozí nastavení pro tuto činnost."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Použít jinou aplikaci"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Výchozí nastavení vymažete v sekci Nastavení systému > Aplikace > Stažené."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Překryvná vrstva č. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Odesílání obsahu obrazovky"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Připojování k obrazovce <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Odesílání obsahu obrazovky"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Připojeno k obrazovce <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Odpojit"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Tísňové volání"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zapomenuté gesto"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávné gesto"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 4927409..f540e0d 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -625,7 +625,7 @@
<string name="permlab_setTime" msgid="2021614829591775646">"angive tid"</string>
<string name="permdesc_setTime" product="tablet" msgid="1896341438151152881">"Tillader, at appen kan ændre klokkeslættet på din tablet."</string>
<string name="permdesc_setTime" product="default" msgid="1855702730738020">"Tillader, at en app kan ændre telefonens klokkeslæt."</string>
- <string name="permlab_setTimeZone" msgid="2945079801013077340">"angiv tidszone"</string>
+ <string name="permlab_setTimeZone" msgid="2945079801013077340">"angive tidszone"</string>
<string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"Tillader, at appen kan ændre tidszonen på din tablet."</string>
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Tillader, at appen kan ændre tidszonen på din telefon."</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"fungerer som kontoadministrationstjeneste"</string>
@@ -753,11 +753,11 @@
<string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Overvåg antallet af forkerte adgangskoder ved oplåsning af skærmen, og lås telefonen eller slet alle data på telefonen, hvis der er indtastet for mange forkerte adgangskoder."</string>
<string name="policylab_resetPassword" msgid="2620077191242688955">"Skifte adgangskode til oplåsning af skærm"</string>
<string name="policydesc_resetPassword" msgid="605963962301904458">"Skifter adgangskode til oplåsning af skærmen."</string>
- <string name="policylab_forceLock" msgid="2274085384704248431">"Lås skærmen"</string>
+ <string name="policylab_forceLock" msgid="2274085384704248431">"Låse skærmen"</string>
<string name="policydesc_forceLock" msgid="1141797588403827138">"Kontrollerer, hvordan og hvornår skærmen låses."</string>
<string name="policylab_wipeData" msgid="3910545446758639713">"Slette alle data"</string>
<string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"Slet din tablets data uden varsel ved at gendanne fabriksindstillingerne."</string>
- <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Slet telefonens data uden varsel ved at gendanne fabriksindstillingerne."</string>
+ <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Sletter telefonens data uden varsel ved at gendanne fabriksindstillingerne."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Angiv enhedens globale proxy"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Angiv enhedens globale proxy, der skal bruges, mens politikken er aktiveret. Kun den første enhedsadministrator angiver den effektive globale proxy."</string>
<string name="policylab_expirePassword" msgid="885279151847254056">"Angiv udløb for skærmlåskoden"</string>
@@ -1055,7 +1055,7 @@
<string name="searchview_description_query" msgid="5911778593125355124">"Søgeforespørgsel"</string>
<string name="searchview_description_clear" msgid="1330281990951833033">"Ryd forespørgslen"</string>
<string name="searchview_description_submit" msgid="2688450133297983542">"Indsend forespørgslen"</string>
- <string name="searchview_description_voice" msgid="2453203695674994440">"Stemmesøgning"</string>
+ <string name="searchview_description_voice" msgid="2453203695674994440">"Talesøgning"</string>
<string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Vil du aktivere Udforsk ved berøring?"</string>
<string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er tændt, kan du høre eller se beskrivelser af, hvad der er under din finger eller udføre bevægelser for at interagere med tabletten."</string>
<string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er aktiveret, kan du høre eller se beskrivelser af, hvad der er under din finger, eller udføre bevægelser for at interagere med telefonen."</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Teksthandlinger"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Der er snart ikke mere lagerplads"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Nogle systemfunktioner virker måske ikke"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Der er ikke nok ledig lagerplads til systemet. Sørg for, at du har 250 MB ledig plads, og genstart."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> kører"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Tryk for at få flere oplysninger eller for at stoppe appen."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Rediger med %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Del med"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Del med %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Vælg en startapp"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Vælg en startapp"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Brug %1$s som startapp"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Brug som standard til denne handling."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Brug en anden app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Ryd standard i Systemindstillinger > Apps > Downloadet."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlejring nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sikker"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Skærm sendes"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Der oprettes forbindelse til <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Skærm sendes"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Forbundet til <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Afbryd forbindelsen"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Nødopkald"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Glemt mønster"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Forkert mønster"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index c20b0ff..febd90e 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Textaktionen"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Der Speicherplatz wird knapp"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Einige Systemfunktionen funktionieren möglicherweise nicht."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Der Speicherplatz reicht nicht für das System aus. Stellen Sie sicher, dass 250 MB freier Speicherplatz vorhanden ist, und starten Sie das Gerät dann neu."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> wird ausgeführt"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Für weitere Informationen oder zum Anhalten der App tippen"</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Mit %1$s bearbeiten"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Freigeben für"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Für %1$s freigeben"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Start-App auswählen"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Start-App auswählen"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s als Start-App verwenden"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Immer für diese Aktion verwenden"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Andere App verwenden"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Das Löschen der Standardeinstellungen ist in den Systemeinstellungen unter \"Apps > Heruntergeladen\" möglich."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay-Nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sicher"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Bildschirm wird übertragen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Verbindung mit <xliff:g id="NAME">%1$s</xliff:g> wird hergestellt."</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Bildschirm wird übertragen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Verbunden mit <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Verbindung trennen"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Notruf"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Muster vergessen"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Falsches Muster"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index c95e84d..7ea1d26 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Ενέργειες κειμένου"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Ο χώρος αποθήκευσης εξαντλείται"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Ορισμένες λειτουργίες συστήματος ενδέχεται να μην λειτουργούν"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Δεν υπάρχει αρκετός χώρος αποθήκευσης για το σύστημα. Βεβαιωθείτε ότι διαθέτετε 250 MB ελεύθερου χώρου και κάντε επανεκκίνηση."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> εκτελείται"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Αγγίξτε για περισσότερες πληροφορίες ή για να διακόψετε την εκτέλεση της εφαρμογής."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Επεξεργασία με %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Κοινή χρήση με"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Κοινή χρήση με %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Επιλέξτε μια εφαρμογή από την αρχική οθόνη"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Επιλέξτε μια εφαρμογή Αρχικής σελίδας"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Χρήση %1$s ως Αρχικής σελίδας"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Χρήση από προεπιλογή για αυτήν την ενέργεια."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Χρήση άλλης εφαρμογής"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Εκκθάριση προεπιλογής στις Ρυθμίσεις συστήματος > Εφαρμογές > Ληφθείσες."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Επικάλυψη #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ασφαλές"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Μετάδοση οθόνης"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Γίενται σύνδεση με το <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Μετάδοση οθόνης"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Συνδέθηκε με το <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Αποσύνδεση"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Κλήσεις επείγουσας ανάγκης"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ξεχάσατε το μοτίβο"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Εσφαλμένο μοτίβο"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 5a7dbcd..8784d21 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Text actions"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Storage space running out"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Some system functions may not work"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> is running"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Touch for more information or to stop the app."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edit with %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Share with"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Share with %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Select a home app"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Select a Home app"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Use %1$s as Home"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Use by default for this action."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Use a different app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Clear default in System settings > Apps > Downloaded."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Casting screen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Connecting to <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Casting screen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Connected to <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Disconnect"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency call"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 5a7dbcd..8784d21 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Text actions"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Storage space running out"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Some system functions may not work"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> is running"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Touch for more information or to stop the app."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edit with %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Share with"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Share with %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Select a home app"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Select a Home app"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Use %1$s as Home"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Use by default for this action."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Use a different app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Clear default in System settings > Apps > Downloaded."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Casting screen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Connecting to <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Casting screen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Connected to <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Disconnect"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency call"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 571fbfd..e3ed51f 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Acciones de texto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Queda poco espacio de almacenamiento"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Es posible que algunas funciones del sistema no estén disponibles."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"No hay espacio suficiente para el sistema. Asegúrate de que haya 250 MB libres y reinicia el dispositivo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> se está ejecutando"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toca para obtener más información o para detener la aplicación."</string>
<string name="ok" msgid="5970060430562524910">"Aceptar"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editar con %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Compartir con"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Compartir con %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Seleccionar una aplicación de la pantalla principal"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Seleccionar una aplicación de la pantalla principal"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utilizar %1$s como aplicación de la pantalla principal"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Utilizar de manera predeterminada en esta acción."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utilizar una aplicación diferente"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Eliminar valores predeterminados en Configuración del sistema > Aplicaciones > Descargas."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segura"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Transmitiendo pantalla"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Estableciendo conexión con <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Transmitiendo pantalla"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Se estableció conexión con <xliff:g id="NAME">%1$s</xliff:g>."</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconectar"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Realizar llamada de emergencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Olvidaste el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patrón incorrecto"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 4a139b1..61bf649 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -762,8 +762,8 @@
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Define el servidor proxy global que se debe utilizar mientras la política esté habilitada. Solo el primer administrador de dispositivos define el servidor proxy global efectivo."</string>
<string name="policylab_expirePassword" msgid="885279151847254056">"Definir caducidad bloqueo pantalla"</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"Controlar la frecuencia con la que se debe cambiar el bloqueo de la pantalla"</string>
- <string name="policylab_encryptedStorage" msgid="8901326199909132915">"Encriptación de almacenamiento"</string>
- <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Exige que se encripten los datos de la aplicación almacenados."</string>
+ <string name="policylab_encryptedStorage" msgid="8901326199909132915">"Cifrado del almacenamiento"</string>
+ <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Exige que se cifren los datos de la aplicación almacenados."</string>
<string name="policylab_disableCamera" msgid="6395301023152297826">"Inhabilitar cámaras"</string>
<string name="policydesc_disableCamera" msgid="2306349042834754597">"Evitar el uso de las cámaras del dispositivo"</string>
<string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Inhabilitar funciones en bloqueo"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Acciones de texto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Queda poco espacio"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Es posible que algunas funciones del sistema no funcionen."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"No hay espacio suficiente para el sistema. Comprueba que haya 250 MB libres y reinicia el dispositivo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> se está ejecutando"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toca para obtener más información o para detener la aplicación."</string>
<string name="ok" msgid="5970060430562524910">"Aceptar"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editar con %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Compartir con"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Compartir con %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Seleccionar una aplicación en la pantalla de inicio"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Selecciona una aplicación de inicio"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Usar %1$s como aplicación de inicio"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Usar siempre para esta acción"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Uitliza otra aplicación"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Para borrar los valores predeterminados, accede a Ajustes del sistema > Aplicaciones > Descargadas."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", seguro"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Enviando pantalla"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Conectando a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Enviando pantalla"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Conectado a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconectar"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Llamada de emergencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Has olvidado el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"El patrón es incorrecto"</string>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index 95153ad..ea39a10 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tekstitoimingud"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Talletusruum saab täis"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Mõned süsteemifunktsioonid ei pruugi töötada"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Süsteemis pole piisavalt talletusruumi. Veenduge, et seadmes oleks 250 MB vaba ruumi, ja käivitage seade uuesti."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> töötab"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Puudutage lisateabe saamiseks või rakenduse peatamiseks."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Muutmine rakendusega %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Jagamine:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Jagamine rakendusega %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Avalehe rakenduse valimine"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Avaekraani rakenduse valimine"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Rakenduse %1$s kasutamine avaekraanina"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Kasuta vaikimisi selleks toiminguks."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Teise rakenduse kasutamine"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Tühjendage vaikeandmed valikutes Süsteemiseaded > Rakendused > Allalaaditud."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Ülekate nr .<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", turvaline"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Ekraanikuva ülekandmine"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Ühendamine ekraaniga <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Ekraanikuva ülekandmine"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Ühendatud ekraaniga <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Katkesta ühendus"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Hädaabikõne"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unustasin mustri"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Vale muster"</string>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index 6844784..9c39458 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -760,14 +760,14 @@
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Ezabatu telefonoaren datuak abisatu gabe, jatorrizko datuak berrezarrita."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Ezarri gailuaren proxy orokorra"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Ezarri gailuaren proxy orokorra gidalerroak gaituta dauden bitartean erabiltzeko. Gailuaren lehen administratzaileak soilik ezartzen du proxy orokor eraginkorra."</string>
- <string name="policylab_expirePassword" msgid="885279151847254056">"Ezarri blokeo-pasahitzaren iraungitzea"</string>
+ <string name="policylab_expirePassword" msgid="885279151847254056">"Ezarri blokeatzeko pasahitzaren iraungitzea"</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"Kontrolatu pantaila blokeatuko pasahitza aldatu beharreko maiztasuna."</string>
<string name="policylab_encryptedStorage" msgid="8901326199909132915">"Ezarri memoria-enkriptatzea"</string>
<string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Eskatu gordetako aplikazio-datuak enkriptatzea."</string>
<string name="policylab_disableCamera" msgid="6395301023152297826">"Desgaitu kamerak"</string>
<string name="policydesc_disableCamera" msgid="2306349042834754597">"Eragotzi gailuaren kamerak erabiltzea."</string>
<string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Teklen blokeoko eginbideak desgaitzea"</string>
- <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Eragotzi teklen blokeoko eginbide batzuk erabiltzea"</string>
+ <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Eragotzi teklen blokeoko eginbide batzuk erabiltzea."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Etxekoa"</item>
<item msgid="869923650527136615">"Mugikorra"</item>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Testu-ekintzak"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Memoria betetzen ari da"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Sistemaren funtzio batzuek ez dute agian funtzionatuko"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Sisteman ez dago behar adina memoria. Ziurtatu gutxienez 250 MB erabilgarri dituzula eta, ondoren, berrabiarazi gailua."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> abian da"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Informazio gehiago lortzeko edo aplikazioa gelditzeko, ukitu."</string>
<string name="ok" msgid="5970060430562524910">"Ados"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editatu %1$s aplikazioarekin"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Partekatu honekin:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Partekatu %1$s aplikazioarekin"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Hautatu hasierako pantailako aplikazio bat"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Hautatu hasierako aplikazioa"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Erabili %1$s hasierako aplikazio gisa"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Erabili modu lehenetsian ekintza honetarako."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Erabili beste aplikazio bat"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Garbitu aplikazio lehenetsia Sistemaren ezarpenak > Aplikazioak > Deskargatutakoak atalean."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>. gainjartzea"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segurua"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Pantaila igortzen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> sarera konektatzen"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Pantaila igortzen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> sarera konektatuta"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Deskonektatu"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Larrialdi-deia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Eredua ahaztu zaizu"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Eredu okerra"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 448e072..eb6cfd9 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -749,8 +749,8 @@
<string name="policylab_limitPassword" msgid="4497420728857585791">"تنظیم قوانین رمز ورود"</string>
<string name="policydesc_limitPassword" msgid="3252114203919510394">"طول و نویسههای مجاز در گذرواژههای بازکردن قفل صفحه را کنترل کنید."</string>
<string name="policylab_watchLogin" msgid="914130646942199503">"نمایش تلاشهای قفل گشایی صفحه"</string>
- <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"تعداد گذرواژههای اشتباه تایپ شده را هنگام بازکردن قفل صفحه کنترل میکند، و یا اگر دفعات زیادی گذرواژه اشتباه تایپ شود رایانهٔ لوحی را قفل میکند و همه دادههای رایانهٔ لوحی را پاک میکند."</string>
- <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"تعداد گذرواژههای نادرست تایپ شده را کنترل میکند. هنگام بازکردن قفل صفحه اگر دفعات زیادی گذرواژه نادرست تایپ کردهاید، تلفن را قفل کنید یا همه دادههای تلفن را پاک کنید."</string>
+ <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"تعداد گذرواژههای نادرست تایپ شده را هنگام بازکردن قفل صفحه کنترل میکند، و اگر دفعات زیادی گذرواژه نادرست وارد شود رایانهٔ لوحی را قفل میکند و همه دادههای رایانهٔ لوحی را پاک میکند."</string>
+ <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"تعداد گذرواژههای نادرست تایپ شده را هنگام بازکردن قفل صفحه کنترل میکند. اگر دفعات زیادی گذرواژه نادرست وارد شود، تلفن را قفل میکند یا همه دادههای تلفن را پاک میکند."</string>
<string name="policylab_resetPassword" msgid="2620077191242688955">"تغییر رمز ورود قفل گشایی صفحه"</string>
<string name="policydesc_resetPassword" msgid="605963962301904458">"گذرواژه بازگشایی قفل صفحه را تغییر دهید."</string>
<string name="policylab_forceLock" msgid="2274085384704248431">"قفل کردن صفحه"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"عملکردهای متنی"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"فضای ذخیرهسازی رو به اتمام است"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"برخی از عملکردهای سیستم ممکن است کار نکنند"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"فضای ذخیرهسازی سیستم کافی نیست. اطمینان حاصل کنید که دارای ۲۵۰ مگابایت فضای خالی هستید و سیستم را راهاندازی مجدد کنید."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> در حال اجرا است"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"برای کسب اطلاعات بیشتر یا توقف برنامه لمس کنید."</string>
<string name="ok" msgid="5970060430562524910">"تأیید"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"ویرایش با %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"اشتراکگذاری با"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"اشتراکگذاری با %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"انتخاب یک برنامه صفحه اصلی"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"انتخاب یک برنامه صفحه اصلی"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"استفاده از %1$s به عنوان برنامه صفحه اصلی"</string>
<string name="alwaysUse" msgid="4583018368000610438">"استفاده به صورت پیشفرض برای این عملکرد."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"استتفاده از یک برنامه دیگر"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"پیشفرض را در تنظیمات سیستم> برنامهها> مورد دانلود شده پاک کنید."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"همپوشانی #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"، امن"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"درحال فرستادن صفحه نمایش"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"درحال اتصال به <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"درحال فرستادن صفحه نمایش"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"به <xliff:g id="NAME">%1$s</xliff:g> متصل شد"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"قطع اتصال"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"تماس اضطراری"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"الگو را فراموش کردهاید"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"الگوی اشتباه"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index e726d7b..35590d7 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tekstitoiminnot"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Tallennustila loppumassa"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Kaikki järjestelmätoiminnot eivät välttämättä toimi"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Tallennustila ei riitä. Varmista, että vapaata tilaa on 250 Mt, ja käynnistä uudelleen."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> on käynnissä"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Hanki lisätietoja tai sulje sovellus koskettamalla."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Muokkaa sovelluksessa %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Jaa sovelluksessa"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Jaa sovelluksessa %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Valitse aloitusruutusovellus"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Valitse aloitusruutusovellus"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Käytä aloitusruutuna: %1$s"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Käytä oletuksena tälle toiminnolle."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Käytä toista sovellusta"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Poista oletusasetus kohdassa Järjestelmäasetukset > Sovellukset > Ladattu."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Peittokuva # <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", suojattu"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Lähetetään näyttöä"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Yhdistetään näyttöön <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Lähetetään näyttöä"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Yhdistetty näyttöön <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Katkaise yhteys"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Hätäpuhelu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unohtunut kuvio"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Väärä kuvio"</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index e49f7bc..2771fd9 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -696,7 +696,7 @@
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permet à l\'application d\'accéder aux mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ajouter des mots au dictionnaire personnel"</string>
<string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permet à l\'application d\'enregistrer de nouveaux mots dans le dictionnaire personnel de l\'utilisateur."</string>
- <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lire contenu du stockage USB"</string>
+ <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lire le contenu du stockage USB"</string>
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lire le contenu de la carte SD"</string>
<string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permet à l\'application de lire le contenu de votre périphérique de stockage USB."</string>
<string name="permdesc_sdcardRead" product="default" msgid="2607362473654975411">"Permet à l\'application de lire le contenu de votre carte SD."</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Actions sur le texte"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Espace de stockage bientôt saturé"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Il est possible que certaines fonctionnalités du système ne soient pas opérationnelles."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Espace de stockage insuffisant pour le système. Assurez-vous de disposer de 250 Mo d\'espace libre, puis redémarrez."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> en cours d\'exécution"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Appuyez ici pour en savoir plus ou arrêter l\'application."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Modifier avec %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Partager avec"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Partager avec %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Sélectionnez une application de l\'écran d\'accueil"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Sélectionner une application pour l\'écran d\'accueil"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utiliser %1$s comme écran d\'accueil"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Utiliser cette application par défaut pour cette action"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utiliser une application différente"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Pour supprimer les valeurs par défaut, accédez à Paramètres système > Applications > Téléchargements."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposition n° <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sécurisé"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Connexion à l\'écran en cours"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Connexion au réseau <xliff:g id="NAME">%1$s</xliff:g> en cours…"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Diffusion de l\'écran en cours"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Connecté à <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Déconnecter"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Appel d\'urgence"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 0bf1b93..2ddb99e 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Actions sur le texte"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Espace de stockage bientôt saturé"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Il est possible que certaines fonctionnalités du système ne soient pas opérationnelles."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Espace de stockage insuffisant pour le système. Assurez-vous de disposer de 250 Mo d\'espace libre, puis redémarrez."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> en cours d\'exécution"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Appuyez ici pour en savoir plus ou arrêter l\'application."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Modifier avec %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Partager avec"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Partager avec %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Sélectionner une application de l\'écran d\'accueil"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Sélectionner une application de l\'écran d\'accueil"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utiliser %1$s comme écran d\'accueil"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Utiliser cette application par défaut pour cette action"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utiliser une autre application"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Pour supprimer les valeurs par défaut, accédez à Paramètres système > Applications > Téléchargements."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposition n° <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sécurisé"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Diffusion de l\'écran en cours"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Connexion à <xliff:g id="NAME">%1$s</xliff:g> en cours…"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Diffusion de l\'écran en cours"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Connecté à <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Déconnecter"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Appel d\'urgence"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index 07ddb67..36086cd 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Accións de texto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Estase esgotando o espazo de almacenamento"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"É posible que algunhas funcións do sistema non funcionen"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Non hai almacenamento suficiente para o sistema. Asegúrate de ter un espazo libre de 250 MB e reinicia o dispositivo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> estase executando"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toca aquí para obter máis información ou para deter a aplicación."</string>
<string name="ok" msgid="5970060430562524910">"Aceptar"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editar con %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Compartir con"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Compartir con %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Selecciona unha aplicación de inicio"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Selecciona unha aplicación de Inicio"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utiliza %1$s como aplicación de Inicio"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Usar de forma predeterminada para esta acción."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utilizar unha aplicación diferente"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Borra a configuración predeterminada en Configuración do sistema > Aplicacións > Descargadas."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición n.º <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segura"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Emisión de pantalla"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Conectando con <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Emisión de pantalla"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Conectado a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconectar"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emerxencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueciches o padrón"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrón incorrecto"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index a01a154..e67ce09 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -179,7 +179,7 @@
<string name="global_action_power_off" msgid="4471879440839879722">"पावर बंद"</string>
<string name="global_action_bug_report" msgid="7934010578922304799">"बग रिपोर्ट"</string>
<string name="bugreport_title" msgid="2667494803742548533">"बग रिपोर्ट प्राप्त करें"</string>
- <string name="bugreport_message" msgid="398447048750350456">"ईमेल संदेश के रूप में भेजने के लिए, इसके द्वारा आपके उपकरण की वर्तमान स्थिति के बारे में जानकारी एकत्र की जाएगी. बग रिपोर्ट प्रारंभ करने से लेकर भेजने के लिए तैयार होने तक कुछ समय लगेगा; कृपया धैर्य रखें."</string>
+ <string name="bugreport_message" msgid="398447048750350456">"ईमेल संदेश के रूप में भेजने के लिए, इसके द्वारा आपके डिवाइस की वर्तमान स्थिति के बारे में जानकारी एकत्र की जाएगी. बग रिपोर्ट प्रारंभ करने से लेकर भेजने के लिए तैयार होने तक कुछ समय लगेगा; कृपया धैर्य रखें."</string>
<string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"मौन मोड"</string>
<string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"ध्वनि बंद है"</string>
<string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"ध्वनि चालू है"</string>
@@ -228,15 +228,15 @@
<string name="permgrouplab_camera" msgid="4820372495894586615">"कैमरा"</string>
<string name="permgroupdesc_camera" msgid="2933667372289567714">"चित्र या वीडियो कैप्चर के लिए कैमरे पर सीधी पहुंच."</string>
<string name="permgrouplab_screenlock" msgid="8275500173330718168">"स्क्रीन लॉक करें"</string>
- <string name="permgroupdesc_screenlock" msgid="7067497128925499401">"आपके उपकरण की लॉक स्क्रीन का व्यवहार प्रभावित करने की क्षमता."</string>
+ <string name="permgroupdesc_screenlock" msgid="7067497128925499401">"आपके डिवाइस की लॉक स्क्रीन का व्यवहार प्रभावित करने की क्षमता."</string>
<string name="permgrouplab_appInfo" msgid="8028789762634147725">"आपके ऐप्स की जानकारी"</string>
- <string name="permgroupdesc_appInfo" msgid="3950378538049625907">"अपने उपकरण पर अन्य ऐप्स के व्यवहार को प्रभावित करने की क्षमता."</string>
+ <string name="permgroupdesc_appInfo" msgid="3950378538049625907">"अपने डिवाइस पर अन्य ऐप्स के व्यवहार को प्रभावित करने की क्षमता."</string>
<string name="permgrouplab_wallpaper" msgid="3850280158041175998">"वॉलपेपर"</string>
- <string name="permgroupdesc_wallpaper" msgid="5630417854750540154">"उपकरण की वॉलपेपर सेटिंग बदलें."</string>
+ <string name="permgroupdesc_wallpaper" msgid="5630417854750540154">"डिवाइस की वॉलपेपर सेटिंग बदलें."</string>
<string name="permgrouplab_systemClock" msgid="406535759236612992">"घड़ी"</string>
- <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"उपकरण का समय या समय क्षेत्र बदलें."</string>
+ <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"डिवाइस का समय या समय क्षेत्र बदलें."</string>
<string name="permgrouplab_statusBar" msgid="2095862568113945398">"स्थिति बार"</string>
- <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"उपकरण के स्थिति बार की सेटिंग बदलें."</string>
+ <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"डिवाइस के स्थिति बार की सेटिंग बदलें."</string>
<string name="permgrouplab_syncSettings" msgid="3341990986147826541">"समन्वयन सेटिंग"</string>
<string name="permgroupdesc_syncSettings" msgid="7603195265129031797">"समन्वयन सेटिंग पर पहुंचें."</string>
<string name="permgrouplab_accounts" msgid="3359646291125325519">"आपके खाते"</string>
@@ -277,13 +277,13 @@
<string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"आउटगोइंग कॉल को कहीं और भेजें"</string>
<string name="permdesc_processOutgoingCalls" msgid="5156385005547315876">"ऐप्स को किसी कॉल को भिन्न नंबर पर रिडायरेक्ट करने या पूरी तरह से कॉल निरस्त करने के विकल्प के साथ आउटगोइंग कॉल के दौरान डायल किए जा रहे नंबर को देखने की अनुमति देती है."</string>
<string name="permlab_receiveSms" msgid="8673471768947895082">"लेख संदेश (SMS) प्राप्त करें"</string>
- <string name="permdesc_receiveSms" msgid="6424387754228766939">"ऐप्स को SMS संदेशों को प्राप्त और संसाधित करने देता है. इसका अर्थ है कि ऐप्स आपके उपकरण पर भेजे गए संदेशों की निगरानी आपको दिखाए बिना कर सकता है और उन्हें हटा सकता है."</string>
+ <string name="permdesc_receiveSms" msgid="6424387754228766939">"ऐप्स को SMS संदेशों को प्राप्त और संसाधित करने देता है. इसका अर्थ है कि ऐप्स आपके डिवाइस पर भेजे गए संदेशों की निगरानी आपको दिखाए बिना कर सकता है और उन्हें हटा सकता है."</string>
<string name="permlab_receiveMms" msgid="1821317344668257098">"लेख संदेश (MMS) प्राप्त करें"</string>
- <string name="permdesc_receiveMms" msgid="533019437263212260">"ऐप्स को MMS संदेशों को प्राप्त और संसाधित करने देता है. इसका अर्थ है कि ऐप्स आपके उपकरण पर भेजे गए संदेशों की निगरानी आपको दिखाए बिना कर सकता है और उन्हें हटा सकता है."</string>
+ <string name="permdesc_receiveMms" msgid="533019437263212260">"ऐप्स को MMS संदेशों को प्राप्त और संसाधित करने देता है. इसका अर्थ है कि ऐप्स आपके डिवाइस पर भेजे गए संदेशों की निगरानी आपको दिखाए बिना कर सकता है और उन्हें हटा सकता है."</string>
<string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"आपातकालीन प्रसारण प्राप्त करें"</string>
<string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"ऐप्स को आपातकालीन प्रसारण संदेशों को प्राप्त करने और संसाधित करने देता है. यह अनुमति केवल सिस्टम ऐप्स में उपलब्ध है."</string>
<string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"सेल प्रसारण संदेश पढ़ें"</string>
- <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"ऐप्स को आपके उपकरण द्वारा प्राप्त सेल प्रसारण संदेशों को पढ़ने देता है. कुछ स्थानों पर आपको आपातकालीन स्थितियों की चेतावनी देने के लिए सेल प्रसारण अलर्ट वितरित किए जाते हैं. आपातकालीन सेल प्रसारण प्राप्त होने पर दुर्भावनापूर्ण ऐप्स आपके उपकरण के निष्पादन या संचालन में हस्तक्षेप कर सकते हैं."</string>
+ <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"ऐप्स को आपके डिवाइस द्वारा प्राप्त सेल प्रसारण संदेशों को पढ़ने देता है. कुछ स्थानों पर आपको आपातकालीन स्थितियों की चेतावनी देने के लिए सेल प्रसारण अलर्ट वितरित किए जाते हैं. आपातकालीन सेल प्रसारण प्राप्त होने पर दुर्भावनापूर्ण ऐप्स आपके डिवाइस के निष्पादन या संचालन में हस्तक्षेप कर सकते हैं."</string>
<string name="permlab_sendSms" msgid="5600830612147671529">"SMS संदेश भेजें"</string>
<string name="permdesc_sendSms" msgid="7094729298204937667">"ऐप्स को SMS संदेशों को भेजने देता है. इसके परिणामस्वरूप अप्रत्याशित शुल्क लागू हो सकते हैं. दुर्भावनापूर्ण ऐप्स आपकी पुष्टि के बिना संदेश भेजकर आपका धन व्यय कर सकते हैं."</string>
<string name="permlab_sendRespondViaMessageRequest" msgid="8713889105305943200">"संदेश-द्वारा-जवाब भेजें ईवेंट"</string>
@@ -297,17 +297,17 @@
<string name="permlab_receiveWapPush" msgid="5991398711936590410">"लेख संदेश (WAP) प्राप्त करें"</string>
<string name="permdesc_receiveWapPush" msgid="748232190220583385">"ऐप्स को WAP संदेशों को प्राप्त और संसाधित करने देता है. इस अनुमति में आपको भेजे गए संदेशों की निगरानी आपको दिखाए बिना करने और हटाने की क्षमता शामिल है."</string>
<string name="permlab_receiveBluetoothMap" msgid="7593811487142360528">"ब्लूटूथ संदेश प्राप्त करें (MAP)"</string>
- <string name="permdesc_receiveBluetoothMap" msgid="8656755936919466345">"ऐप्स को ब्लूटूथ MAP संदेशों को प्राप्त करने और भेजने देती है. इसका अर्थ है कि ऐप्स आपके उपकरण पर भेजे गए संदेशों को आपको दिखाए बिना ही मॉनीटर कर सकता है या उन्हें हटा सकता है."</string>
+ <string name="permdesc_receiveBluetoothMap" msgid="8656755936919466345">"ऐप्स को ब्लूटूथ MAP संदेशों को प्राप्त करने और भेजने देती है. इसका अर्थ है कि ऐप्स आपके डिवाइस पर भेजे गए संदेशों को आपको दिखाए बिना ही मॉनीटर कर सकता है या उन्हें हटा सकता है."</string>
<string name="permlab_getTasks" msgid="6466095396623933906">"चल रहे ऐप्स पुनर्प्राप्त करें"</string>
- <string name="permdesc_getTasks" msgid="7454215995847658102">"ऐप्स को वर्तमान में और हाल ही में चल रहे कार्यों के बारे में जानकारी को पुन: प्राप्त करने देता है. इससे ऐप्स उपकरण पर उपयोग किए गए ऐप्स के बारे में जानकारी खोज सकता है."</string>
+ <string name="permdesc_getTasks" msgid="7454215995847658102">"ऐप्स को वर्तमान में और हाल ही में चल रहे कार्यों के बारे में जानकारी को पुन: प्राप्त करने देता है. इससे ऐप्स डिवाइस पर उपयोग किए गए ऐप्स के बारे में जानकारी खोज सकता है."</string>
<string name="permlab_startTasksFromRecents" msgid="8990073877885690623">"हाल ही के से कार्य प्रारंभ करें"</string>
<string name="permdesc_startTasksFromRecents" msgid="7382133554871222235">"ActivityManager.getRecentTaskList() से लौटाए गए किसी निष्क्रिय कार्य को लॉन्च करने के लिए ऐप्स को किसी ActivityManager.RecentTaskInfo ऑब्जेक्ट का उपयोग करने देती है."</string>
<string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"उपयोगकर्ताओं के बीच सहभागिता करें"</string>
- <string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"ऐप्स को उपकरण पर भिन्न उपयोगकर्ताओं के बीच कार्य निष्पादित करने देता है. दुर्भावनापूर्ण ऐप्स उपयोगकर्ताओं के बीच सुरक्षा का उल्लंघन करने के लिए इसका उपयोग कर सकते हैं."</string>
+ <string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"ऐप्स को डिवाइस पर भिन्न उपयोगकर्ताओं के बीच कार्य निष्पादित करने देता है. दुर्भावनापूर्ण ऐप्स उपयोगकर्ताओं के बीच सुरक्षा का उल्लंघन करने के लिए इसका उपयोग कर सकते हैं."</string>
<string name="permlab_interactAcrossUsersFull" msgid="2567734285545074105">"उपयोगकर्ताओं के बीच सहभागिता करने के लिए पूर्ण लाइसेंस"</string>
<string name="permdesc_interactAcrossUsersFull" msgid="376841368395502366">"उपयोगकर्ताओं के बीच सभी संभव सहभागिता करने देता है."</string>
<string name="permlab_manageUsers" msgid="1676150911672282428">"उपयोगकर्ता प्रबंधित करें"</string>
- <string name="permdesc_manageUsers" msgid="8409306667645355638">"ऐप्स को उपकरण पर क्वेरी, निर्माण और हटाने सहित उपयोगकर्ताओं को प्रबंधित करने की सुविधा देता है."</string>
+ <string name="permdesc_manageUsers" msgid="8409306667645355638">"ऐप्स को डिवाइस पर क्वेरी, निर्माण और हटाने सहित उपयोगकर्ताओं को प्रबंधित करने की सुविधा देता है."</string>
<string name="permlab_getDetailedTasks" msgid="6229468674753529501">"चल रहे ऐप्स के विवरण प्राप्त करें"</string>
<string name="permdesc_getDetailedTasks" msgid="153824741440717599">"ऐप्स को वर्तमान में और हाल ही में चल रहे कार्यों की जानकारी प्राप्त करने देता है. दुर्भावनापूर्ण ऐप्स अन्य ऐप्स के बारे में निजी जानकारी खोज सकते हैं."</string>
<string name="permlab_reorderTasks" msgid="2018575526934422779">"चल रहे ऐप्स पुन: क्रमित करें"</string>
@@ -337,7 +337,7 @@
<string name="permlab_retrieve_window_content" msgid="8022588608994589938">"स्क्रीन सामग्री पुनर्प्राप्त करें"</string>
<string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"ऐप्स को सक्रिय विंडो की सामग्री पुनर्प्राप्त करने देता है. दुर्भावनापूर्ण ऐप्स विंडो की संपूर्ण सामग्री प्राप्त कर सकते हैं और पासवर्ड को छोड़कर इसके सभी लेख जांच सकते हैं."</string>
<string name="permlab_temporary_enable_accessibility" msgid="2312612135127310254">"आसान तरीका को अस्थायी रूप से सक्षम करें"</string>
- <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"ऐप्स को उपकरण पर आसान तरीका को अस्थायी रूप से सक्षम करने देता है. दुर्भावनापूर्ण ऐप्स उपयोगकर्ता की सहमति के बिना आसान तरीका को सक्षम कर सकते हैं."</string>
+ <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"ऐप्स को डिवाइस पर आसान तरीका को अस्थायी रूप से सक्षम करने देता है. दुर्भावनापूर्ण ऐप्स उपयोगकर्ता की सहमति के बिना आसान तरीका को सक्षम कर सकते हैं."</string>
<string name="permlab_retrieveWindowToken" msgid="7154762602367758602">"विंडो टोकन प्राप्त करें"</string>
<string name="permdesc_retrieveWindowToken" msgid="668173747687795074">"ऐप्लिकेशन को विंडो टोकन प्राप्त करने देती है. दुर्भावनापूर्ण ऐप्स सिस्टम का प्रतिरूपण करने वाली ऐप्लिकेशन विंडो से अनधिकृत इंटरैक्शन कर सकते हैं."</string>
<string name="permlab_frameStats" msgid="7056374987314361639">"फ़्रेम के आंकड़े प्राप्त करें"</string>
@@ -419,7 +419,7 @@
<string name="permdesc_bindTvInput" msgid="2371008331852001924">"धारक को किसी टीवी इनपुट के शीर्ष-स्तर इंटरफ़ेस से आबद्ध होने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
<string name="permlab_modifyParentalControls" msgid="4611318225997592242">"अभिभावकीय नियंत्रणों को बदल सकता है"</string>
<string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"धारक को सिस्टम का अभिभावकीय नियंत्रणों वाला डेटा बदलने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होनी चाहिए."</string>
- <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"उपकरण उपकरण सुचारू ढ़ंग से चलाने वाले को जोड़ें या निकालें"</string>
+ <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"डिवाइस डिवाइस सुचारू ढ़ंग से चलाने वाले को जोड़ें या निकालें"</string>
<string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"धारक को सक्रिय डिवाइस व्यवस्थापकों को जोड़ने या निकालने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
<string name="permlab_setOrientation" msgid="3365947717163866844">"स्क्रीन अभिविन्यास बदलें"</string>
<string name="permdesc_setOrientation" msgid="3046126619316671476">"ऐप्स को किसी भी समय स्क्रीन का रोटेशन बदलने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
@@ -490,9 +490,9 @@
<string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ऐप्स को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके टेबलेट का कॉल लॉग संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए इसका उपयोग कर सकते हैं."</string>
<string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ऐप्स को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके फ़ोन का कॉल लॉग संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए इसका उपयोग कर सकते हैं."</string>
<string name="permlab_readProfile" msgid="4701889852612716678">"स्वयं का संपर्क कार्ड पढ़ें"</string>
- <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ऐप्स को आपके उपकरण में संग्रहीत व्यक्तिगत प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी, पढ़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string>
+ <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ऐप्स को आपके डिवाइस में संग्रहीत व्यक्तिगत प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी, पढ़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string>
<string name="permlab_writeProfile" msgid="907793628777397643">"स्वयं का संपर्क कार्ड बदलें"</string>
- <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ऐप्स को आपके उपकरण में संग्रहीत निजी प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी को बदलने या उसमें कुछ जोड़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string>
+ <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ऐप्स को आपके डिवाइस में संग्रहीत निजी प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी को बदलने या उसमें कुछ जोड़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string>
<string name="permlab_bodySensors" msgid="4871091374767171066">"बॉडी सेंसर (जैसे हृदय गति मॉनीटर)"</string>
<string name="permdesc_bodySensors" product="default" msgid="2998865085124153531">"ऐप्लिकेशन को ऐसे सेंसर का डेटा एक्सेस करने देती है जिनका उपयोग आप यह मापने के लिए करते हैं कि आपके शरीर के भीतर क्या चल रहा है, जैसे हृदय गति."</string>
<string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"अपनी सामाजिक स्ट्रीम पढ़ें"</string>
@@ -512,9 +512,9 @@
<string name="permlab_installLocationProvider" msgid="6578101199825193873">"किसी स्थान प्रदाता को इंस्टॉल करने की अनुमति"</string>
<string name="permdesc_installLocationProvider" msgid="9066146120470591509">"परीक्षण के लिए कृत्रिम स्थान स्रोत बनाएं या एक नए स्थान प्रदाता को इंस्टॉल करें. यह ऐप्स को स्थान और/या अन्य स्थान स्रोतों जैसे GPS या स्थान प्रदाताओं द्वारा लौटाई गई स्थिति को ओवरराइड करने देता है."</string>
<string name="permlab_accessFineLocation" msgid="1191898061965273372">"सटीक स्थान (GPS और नेटवर्क-आधारित)"</string>
- <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"ऐप्स को ग्लोबल पोज़िशनिंग सिस्टम (GPS) या सेल टॉवर और वाई-फ़ाई जैसे नेटवर्क स्थान स्रोतों का उपयोग करके आपका सटीक स्थान प्राप्त करने देती है. ऐप्स द्वारा इन स्थान सेवाओं का उपयोग किए जाने के लिए इन्हें चालू होना चाहिए और आपके उपकरण पर उपलब्ध होना चाहिए. ऐप्स इसका उपयोग यह पता करने में कर सकते हैं कि आप कहां पर हैं, और अतिरिक्त बैटरी की खपत कर सकते हैं."</string>
+ <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"ऐप्स को ग्लोबल पोज़िशनिंग सिस्टम (GPS) या सेल टॉवर और वाई-फ़ाई जैसे नेटवर्क स्थान स्रोतों का उपयोग करके आपका सटीक स्थान प्राप्त करने देती है. ऐप्स द्वारा इन स्थान सेवाओं का उपयोग किए जाने के लिए इन्हें चालू होना चाहिए और आपके डिवाइस पर उपलब्ध होना चाहिए. ऐप्स इसका उपयोग यह पता करने में कर सकते हैं कि आप कहां पर हैं, और अतिरिक्त बैटरी की खपत कर सकते हैं."</string>
<string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"अनुमानित स्थान (नेटवर्क-आधारित)"</string>
- <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"ऐप्स को आपका अनुमानित स्थान प्राप्त करने देती है. इस स्थान को सेल टॉवर और वाई-फ़ाई जैसे नेटवर्क स्थान स्रोतों का उपयोग करके स्थान सेवाओं द्वारा प्राप्त किया गया है. ऐप्स द्वारा इन स्थान सेवाओं का उपयोग करने के लिए इन्हें चालू होना चाहिए और आपके उपकरण में उपलब्ध होना चाहिए. ऐप्स इसका उपयोग यह पता लगाने में कर सकते हैं कि आप लगभग कहां पर हैं."</string>
+ <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"ऐप्स को आपका अनुमानित स्थान प्राप्त करने देती है. इस स्थान को सेल टॉवर और वाई-फ़ाई जैसे नेटवर्क स्थान स्रोतों का उपयोग करके स्थान सेवाओं द्वारा प्राप्त किया गया है. ऐप्स द्वारा इन स्थान सेवाओं का उपयोग करने के लिए इन्हें चालू होना चाहिए और आपके डिवाइस में उपलब्ध होना चाहिए. ऐप्स इसका उपयोग यह पता लगाने में कर सकते हैं कि आप लगभग कहां पर हैं."</string>
<string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"SurfaceFlinger में पहुंचें"</string>
<string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"ऐप्स को SurfaceFlinger निम्न-स्तर सुविधाएं उपयोग करने देता है."</string>
<string name="permlab_readFrameBuffer" msgid="6690504248178498136">"फ़्रेम बफ़र पढ़ें"</string>
@@ -595,9 +595,9 @@
<string name="permlab_bindGadget" msgid="776905339015863471">"विजेट चुनें"</string>
<string name="permdesc_bindGadget" msgid="8261326938599049290">"ऐप्स को सिस्टम को यह बताने देता है कि किस ऐप्स द्वारा कौन से विजेट का उपयोग किया जा सकता है. कोई ऐप्स , इस अनुमति के साथ अन्य ऐप्स के निजी डेटा पर पहुंच सकते हैं. सामान्य ऐप्स द्वारा उपयोग करने के लिए नहीं."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"फ़ोन स्थिति बदलें"</string>
- <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"ऐप्स को उपकरण की फ़ोन सुविधाएं नियंत्रित करने देता है. इस अनुमति वाला कोई ऐप्स आपको सूचित किए बिना नेटवर्क स्विच कर सकता है, फ़ोन का रेडियो चालू और बंद कर सकता है और ऐसे ही अन्य कार्य कर सकता है."</string>
+ <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"ऐप्स को डिवाइस की फ़ोन सुविधाएं नियंत्रित करने देता है. इस अनुमति वाला कोई ऐप्स आपको सूचित किए बिना नेटवर्क स्विच कर सकता है, फ़ोन का रेडियो चालू और बंद कर सकता है और ऐसे ही अन्य कार्य कर सकता है."</string>
<string name="permlab_readPhoneState" msgid="9178228524507610486">"फ़ोन की स्थिति और पहचान पढ़ें"</string>
- <string name="permdesc_readPhoneState" msgid="1639212771826125528">"ऐप्स को उपकरण की फ़ोन सुविधाओं तक पहुंचने देता है. यह अनुमति ऐप्स को फ़ोन नंबर और उपकरण आईडी, कॉल सक्रिय है या नहीं, और कॉल द्वारा कनेक्ट किया गया दूरस्थ नंबर निर्धारित करने देती है."</string>
+ <string name="permdesc_readPhoneState" msgid="1639212771826125528">"ऐप्स को डिवाइस की फ़ोन सुविधाओं तक पहुंचने देता है. यह अनुमति ऐप्स को फ़ोन नंबर और डिवाइस आईडी, कॉल सक्रिय है या नहीं, और कॉल द्वारा कनेक्ट किया गया दूरस्थ नंबर निर्धारित करने देती है."</string>
<string name="permlab_readPrecisePhoneState" msgid="5476483020282007597">"सटीक फ़ोन स्थितियों को पढ़ना"</string>
<string name="permdesc_readPrecisePhoneState" msgid="6648009074263855418">"ऐप्स को सटीक फ़ोन स्थितियों की एक्सेस देती है. यह अनुमति ऐप्स को कॉल की वास्तविक स्थिति, चाहे वह कॉल सक्रिय हो या पृष्ठभूमि में हो, कॉल विफलताओं, सटीक डेटा कनेक्शन की स्थिति और डेटा कनेक्शन विफलताओं का पता लगाने देती है."</string>
<string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"टेबलेट को निष्क्रिय होने से रोकें"</string>
@@ -611,7 +611,7 @@
<string name="permlab_devicePower" product="default" msgid="4928622470980943206">"फ़ोन चालू या बंद करें"</string>
<string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"ऐप्स को टेबलेट चालू या बंद करने देता है."</string>
<string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"ऐप्स को फ़ोन चालू या बंद करने देता है."</string>
- <string name="permlab_userActivity" msgid="1677844893921729548">"प्रदर्शन समयबाह्य रीसेट करें"</string>
+ <string name="permlab_userActivity" msgid="1677844893921729548">"प्रदर्शन समय समाप्ति रीसेट करें"</string>
<string name="permdesc_userActivity" msgid="651746160252248024">"एेप्स को प्रदर्शन समयबाह्य रीसेट करने देती है."</string>
<string name="permlab_factoryTest" msgid="3715225492696416187">"फ़ैक्ट्री परीक्षण मोड में चलाएं"</string>
<string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"टेबलेट हार्डवेयर में पूर्ण पहुंच की अनुमति देते हुए निम्न-स्तर निर्माता परीक्षण के रूप में चलाएं. केवल तभी उपलब्ध जब कोई टेबलेट निर्माता परीक्षण मोड में चल रहा हो."</string>
@@ -630,14 +630,14 @@
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"ऐप्स को टेबलेट का समय क्षेत्र बदलने देता है."</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"खाता प्रबंधक सेवा के रूप में कार्य करें"</string>
<string name="permdesc_accountManagerService" msgid="1948455552333615954">"ऐप्स को खाता प्रमाणकों को कॉल करने देता है."</string>
- <string name="permlab_getAccounts" msgid="1086795467760122114">"उपकरण पर खाते ढूंढें"</string>
+ <string name="permlab_getAccounts" msgid="1086795467760122114">"डिवाइस पर खाते ढूंढें"</string>
<string name="permdesc_getAccounts" product="tablet" msgid="2741496534769660027">"ऐप्स को टेबलेट द्वारा ज्ञात खातों की सूची प्राप्त करने देता है. इसमें वे खाते शामिल हो सकते हैं जिन्हें आपके द्वारा इंस्टॉल किए गए ऐप्स ने बनाया है."</string>
<string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"ऐप्स को फ़ोन द्वारा ज्ञात खातों की सूची प्राप्त करने देता है. इसमें वे खाते शामिल हो सकते हैं जिन्हें आपके द्वारा इंस्टॉल किए गए ऐप्स ने बनाया है."</string>
<string name="permlab_authenticateAccounts" msgid="5265908481172736933">"खाते बनाएं और पासवर्ड सेट करें"</string>
<string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"एप्िलकेशन को खाता बनाने और उनके पासवर्ड प्राप्त करने और सेट करने सहित, खाता प्रबंधक की खाता प्रमाणक क्षमताओं का उपयोग करने देता है."</string>
<string name="permlab_manageAccounts" msgid="4983126304757177305">"खाते जोडें या निकालें"</string>
<string name="permdesc_manageAccounts" msgid="8698295625488292506">"ऐप्स को खाते जोड़ना और निकालना और उनके पासवर्ड हटाने जैसे कार्य करने देता है."</string>
- <string name="permlab_useCredentials" msgid="235481396163877642">"उपकरण पर खातों का उपयोग करें"</string>
+ <string name="permlab_useCredentials" msgid="235481396163877642">"डिवाइस पर खातों का उपयोग करें"</string>
<string name="permdesc_useCredentials" msgid="7984227147403346422">"ऐप्स को प्रमाणीकरण टोकन का अनुरोध करने देता है."</string>
<string name="permlab_accessNetworkState" msgid="4951027964348974773">"नेटवर्क कनेक्शन देखें"</string>
<string name="permdesc_accessNetworkState" msgid="8318964424675960975">"ऐप्स को नेटवर्क कनेक्शन के बारे में जानकारी देखने देता है जैसे कौन से नेटवर्क मौजूद हैं और कनेक्ट हैं."</string>
@@ -654,7 +654,7 @@
<string name="permlab_accessWifiState" msgid="5202012949247040011">"वाई-फ़ाई कनेक्शन देखें"</string>
<string name="permdesc_accessWifiState" msgid="5002798077387803726">"ऐप्स को वाई-फ़ाई नेटवर्क के बारे में जानकारी, जैसे WI-Fi सक्षम है या नहीं और कनेक्ट किए गए वाई-फ़ाई डिवाइस के नाम, देखने देता है."</string>
<string name="permlab_changeWifiState" msgid="6550641188749128035">"वाई-फ़ाई से कनेक्ट और डिस्कनेक्ट करें"</string>
- <string name="permdesc_changeWifiState" msgid="7137950297386127533">"ऐप्स को वाई-फ़ाई पहुंच बिंदुओं से कनेक्ट और डिस्कनेक्ट करने और वाई-फ़ाई नेटवर्क के लिए उपकरण कॉन्फ़िगरेशन में परिवर्तन करने देता है."</string>
+ <string name="permdesc_changeWifiState" msgid="7137950297386127533">"ऐप्स को वाई-फ़ाई पहुंच बिंदुओं से कनेक्ट और डिस्कनेक्ट करने और वाई-फ़ाई नेटवर्क के लिए डिवाइस कॉन्फ़िगरेशन में परिवर्तन करने देता है."</string>
<string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"वाई-फ़ाई मल्टीकास्ट प्राप्ति को अनुमति दें"</string>
<string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"ऐप्स को वाई-फ़ाई नेटवर्क पर मल्टीकास्ट पते के उपयोग से केवल आपके टेबलेट पर ही नहीं, बल्कि सभी डिवाइस पर भेजे गए पैकेट प्राप्त करने देता है. यह गैर-मल्टीकास्ट मोड से अधिक पावर का उपयोग करता है."</string>
<string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"ऐप्स को वाई-फ़ाई नेटवर्क पर मल्टीकास्ट पते के उपयोग से केवल आपके फ़ोन पर ही नहीं, बल्कि सभी डिवाइस पर भेजे गए पैकेट प्राप्त करने देता है. यह गैर-मल्टीकास्ट मोड से अधिक पावर का उपयोग करता है."</string>
@@ -738,7 +738,7 @@
<string name="permdesc_invokeCarrierSetup" msgid="4159549152529111920">"धारक को वाहक के द्वारा उपलब्ध कराया गया कॉन्फ़िगरेशन ऐप्स प्रारंभ करने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
<string name="permlab_accessNetworkConditions" msgid="8206077447838909516">"नेटवर्क स्थितियों के अवलोकनों को सुनें"</string>
<string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"ऐप्स को नेटवर्क स्थितियों के अवलोकनों को सुनने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
- <string name="permlab_setInputCalibration" msgid="4902620118878467615">"इनपुट उपकरण कैलिब्रेशन बदलें"</string>
+ <string name="permlab_setInputCalibration" msgid="4902620118878467615">"इनपुट डिवाइस कैलिब्रेशन बदलें"</string>
<string name="permdesc_setInputCalibration" msgid="4527511047549456929">"ऐप्स को टच स्क्रीन के कैलिब्रेशन पैरामीटर को बदलने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
<string name="permlab_accessDrmCertificates" msgid="7436886640723203615">"DRM प्रमाणपत्र एक्सेस करें"</string>
<string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ऐप्लिकेशन को DRM प्रमाणपत्रों का प्रावधान और उपयोग करने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होना चाहिए."</string>
@@ -758,14 +758,14 @@
<string name="policylab_wipeData" msgid="3910545446758639713">"सभी डेटा मिटाएं"</string>
<string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"फ़ैक्टरी डेटा रीसेट करके, बिना चेतावनी के टेबलेट का डेटा मिटाएं."</string>
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"फ़ैक्टरी डेटा रीसेट करके, बिना चेतावनी के फ़ोन का डेटा मिटाएं."</string>
- <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"उपकरण वैश्विक प्रॉक्सी सेट करें"</string>
- <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"नीति सक्षम होने के दौरान उपकरण वैश्विक प्रॉक्सी सेट करें. केवल पहला डिवाइस नियंत्रक, प्रभावी वैश्विक प्रॉक्सी सेट करता है."</string>
+ <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"डिवाइस वैश्विक प्रॉक्सी सेट करें"</string>
+ <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"नीति सक्षम होने के दौरान डिवाइस वैश्विक प्रॉक्सी सेट करें. केवल पहला डिवाइस नियंत्रक, प्रभावी वैश्विक प्रॉक्सी सेट करता है."</string>
<string name="policylab_expirePassword" msgid="885279151847254056">"स्क्रीन लॉक करें पासवर्ड समाप्ति सेट करें"</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"नियंत्रित करें कि कितने समय में लॉक-स्क्रीन पासवर्ड बदला जाना चाहिए."</string>
<string name="policylab_encryptedStorage" msgid="8901326199909132915">"मेमोरी एन्क्रिप्शन सेट करें"</string>
<string name="policydesc_encryptedStorage" msgid="2637732115325316992">"संग्रहीत ऐप्स डेटा को एन्क्रिप्ट किया जाना आवश्यक है."</string>
<string name="policylab_disableCamera" msgid="6395301023152297826">"कैमरों को अक्षम करें"</string>
- <string name="policydesc_disableCamera" msgid="2306349042834754597">"सभी उपकरण कैमरों का उपयोग रोकें."</string>
+ <string name="policydesc_disableCamera" msgid="2306349042834754597">"सभी डिवाइस कैमरों का उपयोग रोकें."</string>
<string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"कीगार्ड में सुविधाएं अक्षम करें"</string>
<string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"कीगार्ड में कुछ सुविधाओं का उपयोग रोकें."</string>
<string-array name="phoneTypes">
@@ -1037,8 +1037,8 @@
<string name="permdesc_serialPort" msgid="2991639985224598193">"SerialManager API का उपयोग करके धारक को सीरियल पोर्ट पर पहुंच प्रदान करता है."</string>
<string name="permlab_accessContentProvidersExternally" msgid="5077774297943409285">"बाह्य रूप से सामग्री प्रदाताओं पर पहुंच"</string>
<string name="permdesc_accessContentProvidersExternally" msgid="4544346486697853685">"धारक को शेल से सामग्री प्रदाताओं तक पहुंचने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होनी चाहिए."</string>
- <string name="permlab_updateLock" msgid="3527558366616680889">"अपनेआप उपकरण की नई जानकारी न लें"</string>
- <string name="permdesc_updateLock" msgid="1655625832166778492">"धारक को उपकरण अपग्रेड करने के लिए, गैर-सहभागी रीबूट के ठीक समय के बारे में सिस्टम पर जानकारी प्रस्तुत करने देता है."</string>
+ <string name="permlab_updateLock" msgid="3527558366616680889">"अपनेआप डिवाइस की नई जानकारी न लें"</string>
+ <string name="permdesc_updateLock" msgid="1655625832166778492">"धारक को डिवाइस अपग्रेड करने के लिए, गैर-सहभागी रीबूट के ठीक समय के बारे में सिस्टम पर जानकारी प्रस्तुत करने देता है."</string>
<string name="save_password_message" msgid="767344687139195790">"क्या आप चाहते हैं कि ब्राउज़र पासवर्ड को याद रखे?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"अभी नहीं"</string>
<string name="save_password_remember" msgid="6491879678996749466">"याद रखें"</string>
@@ -1158,7 +1158,7 @@
<item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> घंटे"</item>
</plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"वीडियो समस्याएं"</string>
- <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"यह वीडियो इस उपकरण पर स्ट्रीमिंग के लिए मान्य नहीं है."</string>
+ <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"यह वीडियो इस डिवाइस पर स्ट्रीमिंग के लिए मान्य नहीं है."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"यह वीडियो नहीं चलाया जा सकता."</string>
<string name="VideoView_error_button" msgid="2822238215100679592">"ठीक है"</string>
<string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"लेख क्रियाएं"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"मेमोरी स्थान समाप्त हो रहा है"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"हो सकता है कुछ सिस्टम फ़ंक्शन कार्य न करें"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"सिस्टम के लिए पर्याप्त मेमोरी नहीं है. सुनिश्चित करें कि आपके पास 250MB का खाली स्थान है और पुनः प्रारंभ करें."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> चल रहा है"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"अधिक जानकारी के लिए या ऐप्स रोकने के लिए स्पर्श करें."</string>
<string name="ok" msgid="5970060430562524910">"ठीक है"</string>
@@ -1201,12 +1202,13 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s से संपादित करें"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"इससे साझा करें"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s से साझा करें"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"होम ऐप्लिकेशन चुनें"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"होम ऐप्स चुनें"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"होम के रूप में %1$s का उपयोग करें"</string>
<string name="alwaysUse" msgid="4583018368000610438">"इस क्रिया के लिए डिफ़ॉल्ट रूप से उपयोग करें."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"किसी भिन्न ऐप्स का उपयोग करें"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"सिस्टम सेटिंग > Apps > डाउनलोड किए गए में डिफ़ॉल्ट साफ करें."</string>
<string name="chooseActivity" msgid="7486876147751803333">"कोई क्रिया चुनें"</string>
- <string name="chooseUsbActivity" msgid="6894748416073583509">"USB उपकरण के लिए कोई ऐप्स चुनें"</string>
+ <string name="chooseUsbActivity" msgid="6894748416073583509">"USB डिवाइस के लिए कोई ऐप्स चुनें"</string>
<string name="noApplications" msgid="2991814273936504689">"कोई भी ऐप्स यह कार्यवाही नहीं कर सकता."</string>
<string name="aerr_title" msgid="1905800560317137752"></string>
<string name="aerr_application" msgid="932628488013092776">"दुर्भाग्यवश, <xliff:g id="APPLICATION">%1$s</xliff:g> रुक गया है."</string>
@@ -1307,7 +1309,7 @@
<string name="sim_removed_message" msgid="5450336489923274918">"जब तक आप मान्य सिम कार्ड डालकर पुन: प्रारंभ नहीं करते, तब तक सेल्युलर नेटवर्क अनुपलब्ध रहेगा."</string>
<string name="sim_done_button" msgid="827949989369963775">"पूर्ण"</string>
<string name="sim_added_title" msgid="3719670512889674693">"सिम कार्ड जोड़ा गया"</string>
- <string name="sim_added_message" msgid="7797975656153714319">"सेल्युलर नेटवर्क एक्सेस करने के लिए अपना उपकरण पुन: प्रारंभ करें."</string>
+ <string name="sim_added_message" msgid="7797975656153714319">"सेल्युलर नेटवर्क एक्सेस करने के लिए अपना डिवाइस पुन: प्रारंभ करें."</string>
<string name="sim_restart_button" msgid="4722407842815232347">"पुन: प्रारंभ करें"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"समय सेट करें"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"दिनांक सेट करें"</string>
@@ -1337,7 +1339,7 @@
<string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"यदि आप USB मेमोरी चालू करते हैं, तो आपके द्वारा उपयोग किए जा रहे कुछ ऐप्स रुक जाएंगे और हो सकता है कि वे तब तक अनुपलब्ध रहें जब तक कि आप USB मेमोरी बंद नहीं कर देते."</string>
<string name="dlg_error_title" msgid="7323658469626514207">"USB कार्यवाही विफल"</string>
<string name="dlg_ok" msgid="7376953167039865701">"ठीक है"</string>
- <string name="usb_mtp_notification_title" msgid="3699913097391550394">"किसी मीडिया उपकरण के रूप में कनेक्ट किया गया"</string>
+ <string name="usb_mtp_notification_title" msgid="3699913097391550394">"किसी मीडिया डिवाइस के रूप में कनेक्ट किया गया"</string>
<string name="usb_ptp_notification_title" msgid="1960817192216064833">"कैमरे के रूप में कनेक्ट करें"</string>
<string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"किसी इंस्टॉलर के रूप में कनेक्ट किया गया"</string>
<string name="usb_accessory_notification_title" msgid="7848236974087653666">"USB सहायक सामग्री से कनेक्ट किया गया"</string>
@@ -1577,9 +1579,9 @@
<string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"ब्लूटूथ ऑडियो"</string>
<string name="wireless_display_route_description" msgid="9070346425023979651">"वायरलेस प्रदर्शन"</string>
<string name="media_route_button_content_description" msgid="591703006349356016">"कास्ट करें"</string>
- <string name="media_route_chooser_title" msgid="1751618554539087622">"उपकरण से कनेक्ट करें"</string>
- <string name="media_route_chooser_title_for_remote_display" msgid="3395541745872017583">"स्क्रीन को उपकरण में कास्ट करें"</string>
- <string name="media_route_chooser_searching" msgid="4776236202610828706">"उपकरण खोजे जा रहे हैं…"</string>
+ <string name="media_route_chooser_title" msgid="1751618554539087622">"डिवाइस से कनेक्ट करें"</string>
+ <string name="media_route_chooser_title_for_remote_display" msgid="3395541745872017583">"स्क्रीन को डिवाइस में कास्ट करें"</string>
+ <string name="media_route_chooser_searching" msgid="4776236202610828706">"डिवाइस खोजे जा रहे हैं…"</string>
<string name="media_route_chooser_extended_settings" msgid="87015534236701604">"सेटिंग"</string>
<string name="media_route_controller_disconnect" msgid="8966120286374158649">"डिस्कनेक्ट करें"</string>
<string name="media_route_status_scanning" msgid="7279908761758293783">"स्कैन कर रहा है..."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ओवरले #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"स्क्रीन कास्ट हो रही है"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> से कनेक्ट हो रहा है"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"स्क्रीन कास्ट हो रही है"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> से कनेक्ट है"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"डिस्कनेक्ट करें"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"आपातकालीन कॉल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"आकार भूल गए"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत आकार"</string>
@@ -1775,7 +1772,7 @@
<string name="lock_to_app_unlock_pin" msgid="2552556656504331634">"अनपिन करने से पहले पिन के लिए पूछें"</string>
<string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"अनपिन करने से पहले अनलॉक पैटर्न के लिए पूछें"</string>
<string name="lock_to_app_unlock_password" msgid="6380979775916974414">"अनपिन करने से पहले पासवर्ड के लिए पूछें"</string>
- <string name="battery_saver_description" msgid="2510530476513605742">"बैटरी के जीवन काल को बेहतर बनाने में सहायता के लिए, बैटरी सेवर आपके उपकरण के प्रदर्शन को घटा देता है तथा कंपन और अधिकांश पृष्ठभूमि डेटा को सीमित कर देता है. ईमेल, संदेश सेवा और अन्य ऐप्स जो समन्वयन पर निर्भर करते हैं वे तब तक अपडेट नहीं हो सकते जब तक कि आप उन्हें नहीं खोलते.\n\nजब आपका उपकरण चार्ज हो रहा होता है तो बैटरी सेवर अपने आप बंद हो जाता है."</string>
+ <string name="battery_saver_description" msgid="2510530476513605742">"बैटरी के जीवन काल को बेहतर बनाने में सहायता के लिए, बैटरी सेवर आपके डिवाइस के प्रदर्शन को घटा देता है तथा कंपन और अधिकांश पृष्ठभूमि डेटा को सीमित कर देता है. ईमेल, संदेश सेवा और अन्य ऐप्स जो समन्वयन पर निर्भर करते हैं वे तब तक अपडेट नहीं हो सकते जब तक कि आप उन्हें नहीं खोलते.\n\nजब आपका डिवाइस चार्ज हो रहा होता है तो बैटरी सेवर अपने आप बंद हो जाता है."</string>
<string name="downtime_condition_summary" msgid="8761776337475705749">"जब तक कि <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> बजे आपका डाउनटाइम समाप्त न हो"</string>
<plurals name="zen_mode_duration_minutes">
<item quantity="one" msgid="9040808414992812341">"एक मिनट के लिए"</item>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 172587f..5874a8e 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Radnje s tekstom"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Ponestaje prostora za pohranu"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Neke sistemske funkcije možda neće raditi"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Nema dovoljno pohrane za sustav. Oslobodite 250 MB prostora i pokrenite uređaj ponovo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> pokrenuta je"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Dodirnite za više informacija ili da biste zaustavili aplikaciju."</string>
<string name="ok" msgid="5970060430562524910">"U redu"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Uređivanje pomoću aplikacije %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Dijeljenje pomoću aplikacije"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Dijeljenje pomoću aplikacije %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Odaberite aplikaciju na početnom zaslonu"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Odaberite početnu aplikaciju"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Upotrijebite %1$s kao početnu aplikaciju"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Koristi se kao zadana postavka za ovu lokaciju."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Upotrijebite neku drugu aplikaciju"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Izbrisati zadano u Postavkama sustava > Aplikacije > Preuzimanja."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Preklapanje br. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sigurno"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Emitiranje zaslona"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Povezivanje sa zaslonom <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Emitiranje zaslona"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Povezan sa zaslonom <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Isključi"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Hitan poziv"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste obrazac"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan obrazac"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 9516966..ae0daf1 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Műveletek szöveggel"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Kevés a szabad terület"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Előfordulhat, hogy néhány rendszerfunkció nem működik."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Nincs elegendő tárhely a rendszerhez. Győződjön meg arról, hogy rendelkezik 250 MB szabad területtel, majd kezdje elölről."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> jelenleg fut"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"További információért, illetve az alkalmazás leállításához érintse meg."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Szerkesztés a következővel: %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Megosztás a következővel:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Megosztás a következővel: %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"A kezdőalkalmazás kiválasztása"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Válasszon kezdőalkalmazást"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"A(z) %1$s használata kezdőalkalmazásként"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Ez legyen az alapértelmezett program ehhez a művelethez."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Használjon másik alkalmazást"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Alapértelmezés törlése itt: Rendszerbeállítások > Alkalmazások > Letöltve."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>. fedvény"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> képpont"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", biztonságos"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Képernyő átküldése…"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Csatlakozás a következőhöz: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Képernyő átküldése…"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Csatlakozva a következőhöz: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Szétkapcsol"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Segélyhívás"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Elfelejtett minta"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Helytelen minta"</string>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 64d1f9e..312d1c8 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Տեքստի գործողությունները"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Պահոցային տարածքը սպառվում է"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Համակարգի որոշ գործառույթներ հնարավոր է չաշխատեն"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Համակարգի համար բավարար հիշողություն չկա: Համոզվեք, որ ունեք 250ՄԲ ազատ տարածություն և վերագործարկեք:"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ն աշխատեցվում է"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Հպեք` լրացուցիչ տեղեկությունները կամ ծրագիրը դադարեցնելու համար:"</string>
<string name="ok" msgid="5970060430562524910">"Լավ"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Խմբագրել հետևյալով՝ %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Տարածել"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Տարածել ըստ %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Ընտրեք հիմնական հավելվածը"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Ընտրեք Հիմնական հավելվածը"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Օգտագործել %1$s-ը՝ որպես Հիմնական"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Օգտագործել լռելյայն այս գործողության համար:"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Օգտագործել այլ հավելված"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Մաքրել լռելյայնը Համակարգի կարգավորումներ > Ծրագրեր >Ներբեռնված էջից:"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Վերածածկ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>. <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> կմվ"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", անվտանգ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Էկրանի հեռարձակում"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Միանում է <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Էկրանը հեռարձակվում է"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Միացված է <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Անջատել"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Արտակարգ իրավիճակի հեռախոսազանգ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Մոռացել եմ սխեման"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Սխալ սխեմա"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 5529521..049e958 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tindakan teks"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Ruang penyimpanan hampir habis"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Beberapa fungsi sistem mungkin tidak dapat bekerja"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Penyimpanan tidak cukup untuk sistem. Pastikan Anda memiliki 250 MB ruang kosong, lalu mulai ulang."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> sedang berjalan"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Sentuh untuk informasi selengkapnya atau hentikan aplikasi."</string>
<string name="ok" msgid="5970060430562524910">"Oke"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edit dengan %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Bagikan dengan"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Bagikan dengan %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Pilih aplikasi beranda"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Pilih aplikasi Beranda"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Gunakan %1$s sebagai aplikasi Beranda"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Gunakan secara default untuk tindakan ini."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Gunakan aplikasi yang berbeda"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Menghapus default di Setelan sistem > Apl > Terunduh."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Hamparan #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", aman"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Transmisi layar"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Menyambung ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Transmisi layar"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Tersambung ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Putuskan sambungan"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Panggilan darurat"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Pola?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pola Salah"</string>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index eb66c60..f0643ae 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Textaaðgerðir"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Geymslurýmið er senn á þrotum"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Sumir kerfiseiginleikar kunna að vera óvirkir"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Ekki nægt geymslurými fyrir kerfið. Gakktu úr skugga um að 250 MB séu laus og endurræstu."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> er opið"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Snertu til að fá frekari upplýsingar eða loka forritinu."</string>
<string name="ok" msgid="5970060430562524910">"Í lagi"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Breyta með %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Deila með"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Deila með %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Veldu heimaforrit"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Veldu heimaforrit"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Nota %1$s sem heimaforrit"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Nota sjálfgefið fyrir þessa aðgerð."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Nota annað forrit"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Hreinsa sjálfgefna stillingu í Kerfisstillingar > Forrit > Sótt."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yfirlögn #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", öruggur"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Skjár sendur út"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Tengist við <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Skjár sendur út"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Tengt við <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Aftengja"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Neyðarsímtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Man ekki mynstrið"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Rangt mynstur"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 93707ad..965d9b6 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Azioni testo"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Spazio di archiviazione in esaurimento"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Alcune funzioni di sistema potrebbero non funzionare"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Memoria insufficiente per il sistema. Assicurati di avere 250 MB di spazio libero e riavvia."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> è in esecuzione"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Tocca per ulteriori informazioni o per interrompere l\'app."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Modifica con %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Condividi con"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Condividi con %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Seleziona un\'app home"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Seleziona un\'app Home"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utilizza %1$s come Home"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Usa come predefinita per questa azione."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utilizza un\'app diversa"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Cancella l\'applicazione predefinita in Impostazioni di sistema > Applicazioni > Scaricate."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay n. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", opzione sicura"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Trasmissione schermo"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Collegamento a <xliff:g id="NAME">%1$s</xliff:g> in corso"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Trasmissione schermo attiva"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Collegato a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Disconnetti"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Chiamata di emergenza"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Sequenza dimenticata"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequenza sbagliata"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index f1691ef..81936d8 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -179,7 +179,7 @@
<string name="global_action_power_off" msgid="4471879440839879722">"כיבוי"</string>
<string name="global_action_bug_report" msgid="7934010578922304799">"דיווח על באג"</string>
<string name="bugreport_title" msgid="2667494803742548533">"שלח דיווח על באג"</string>
- <string name="bugreport_message" msgid="398447048750350456">"פעולה זו תאסוף מידע על מצב המכשיר הנוכחי שלך על מנת לשלוח אותו כהודעת דוא\"ל. היא תימשך זמן קצר מרגע פתיחת דיווח הבאג ועד שיהיה ניתן לבצע שליחה. התאזר בסבלנות."</string>
+ <string name="bugreport_message" msgid="398447048750350456">"פעולה זו תאסוף מידע על מצב המכשיר הנוכחי שלך על מנת לשלוח אותו כהודעת אימייל. היא תימשך זמן קצר מרגע פתיחת דיווח הבאג ועד שיהיה ניתן לבצע שליחה. התאזר בסבלנות."</string>
<string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"מצב שקט"</string>
<string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"הקול כבוי"</string>
<string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"קול מופעל"</string>
@@ -196,7 +196,7 @@
<string name="permgrouplab_costMoney" msgid="5429808217861460401">"שירותים שעולים כסף"</string>
<string name="permgroupdesc_costMoney" msgid="3293301903409869495">"ביצוע פעולות שעשויות לעלות לך כסף."</string>
<string name="permgrouplab_messages" msgid="7521249148445456662">"ההודעות שלך"</string>
- <string name="permgroupdesc_messages" msgid="7821999071003699236">"קריאה וכתיבה בהודעות ה-SMS, הדוא\"ל והודעות אחרות שלך."</string>
+ <string name="permgroupdesc_messages" msgid="7821999071003699236">"קריאה וכתיבה בהודעות ה-SMS, האימייל והודעות אחרות שלך."</string>
<string name="permgrouplab_personalInfo" msgid="3519163141070533474">"המידע האישי שלך"</string>
<string name="permgroupdesc_personalInfo" msgid="8426453129788861338">"גישה ישירה למידע עליך, המאוחסן בכרטיס איש הקשר שלך."</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"מידע על הקשרים החברתיים שלך"</string>
@@ -478,11 +478,11 @@
<string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"מאפשר לאפליקציה לשלוח שידורים דביקים, אשר נותרים לאחר סיום השידור. אפליקציות זדוניות עלולות להאט את פעילות הטאבלט או להפוך אותה לבלתי יציבה על ידי אילוץ המכשיר להשתמש ביותר מדי זיכרון."</string>
<string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"מאפשר לאפליקציה לשלוח שידורים דביקים, אשר נותרים לאחר סיום השידור. אפליקציות זדוניות עלולות להאט את פעילות הטלפון או להפוך אותה לבלתי יציבה על ידי אילוץ המכשיר להשתמש ביותר מדי זיכרון."</string>
<string name="permlab_readContacts" msgid="8348481131899886131">"קריאת אנשי הקשר שלך"</string>
- <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"מאפשר לאפליקציה לקרוא נתונים לגבי אנשי הקשר שלך המאוחסנים בטאבלט, כולל את התדירות שבה התקשרת, שלחת דוא\"ל או יצרת קשר בדרכים אחרות עם אנשים ספציפיים. אישור זה מתיר לאפליקציות לשמור את נתוני אנשי הקשר שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני אנשי קשר ללא ידיעתך."</string>
- <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"מאפשר לאפליקציה לקרוא נתונים לגבי אנשי הקשר שלך המאוחסנים בטלפון, כולל את התדירות שבה התקשרת, שלחת דוא\"ל או יצרת קשר בדרכים אחרות עם אנשים ספציפיים. אישור זה מתיר לאפליקציות לשמור את נתוני אנשי הקשר שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני אנשי קשר ללא ידיעתך."</string>
+ <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"מאפשר לאפליקציה לקרוא נתונים לגבי אנשי הקשר שלך המאוחסנים בטאבלט, כולל את התדירות שבה התקשרת, שלחת אימייל או יצרת קשר בדרכים אחרות עם אנשים ספציפיים. אישור זה מתיר לאפליקציות לשמור את נתוני אנשי הקשר שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני אנשי קשר ללא ידיעתך."</string>
+ <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"מאפשר לאפליקציה לקרוא נתונים לגבי אנשי הקשר שלך המאוחסנים בטלפון, כולל את התדירות שבה התקשרת, שלחת אימייל או יצרת קשר בדרכים אחרות עם אנשים ספציפיים. אישור זה מתיר לאפליקציות לשמור את נתוני אנשי הקשר שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני אנשי קשר ללא ידיעתך."</string>
<string name="permlab_writeContacts" msgid="5107492086416793544">"שינוי אנשי הקשר שלך"</string>
- <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"מאפשר לאפליקציה לשנות את הנתונים לגבי אנשי הקשר שלך המאוחסנים בטאבלט, כולל התדירות שבה התקשרת, שלחת דוא\"ל או יצרת קשר בדרכים אחרות עם אנשי קשר ספציפיים. אישור זה מתיר לאפליקציות למחוק נתוני אנשי קשר."</string>
- <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"מאפשר לאפליקציה לשנות את הנתונים לגבי אנשי הקשר שלך המאוחסנים בטלפון, כולל התדירות שבה התקשרת, שלחת דוא\"ל או יצרת קשר בדרכים אחרות עם אנשי קשר ספציפיים. אישור זה מתיר לאפליקציות למחוק נתוני אנשי קשר."</string>
+ <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"מאפשר לאפליקציה לשנות את הנתונים לגבי אנשי הקשר שלך המאוחסנים בטאבלט, כולל התדירות שבה התקשרת, שלחת אימייל או יצרת קשר בדרכים אחרות עם אנשי קשר ספציפיים. אישור זה מתיר לאפליקציות למחוק נתוני אנשי קשר."</string>
+ <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"מאפשר לאפליקציה לשנות את הנתונים לגבי אנשי הקשר שלך המאוחסנים בטלפון, כולל התדירות שבה התקשרת, שלחת אימייל או יצרת קשר בדרכים אחרות עם אנשי קשר ספציפיים. אישור זה מתיר לאפליקציות למחוק נתוני אנשי קשר."</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"קריאת יומן שיחות"</string>
<string name="permdesc_readCallLog" product="tablet" msgid="3700645184870760285">"מאפשר לאפליקציה לקרוא את יומן השיחות של הטאבלט, כולל נתונים לגבי שיחות נכנסות ויוצאות. אישור זה מתיר לאפליקציות לשמור את נתוני יומן השיחות שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני יומן שיחות ללא ידיעתך."</string>
<string name="permdesc_readCallLog" product="default" msgid="5777725796813217244">"מאפשר לאפליקציה לקרוא את יומן השיחות של הטלפון, כולל נתונים לגבי שיחות נכנסות ויוצאות. אישור זה מתיר לאפליקציות לשמור את נתוני יומן השיחות שלך. כמו כן, אפליקציות זדוניות עשויות לשתף נתוני יומן שיחות ללא ידיעתך."</string>
@@ -502,7 +502,7 @@
<string name="permlab_readCalendar" msgid="5972727560257612398">"קריאת אירועי יומן וגם מידע סודי"</string>
<string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"מאפשר לאפליקציה לקרוא את כל אירועי היומן המאוחסנים בטאבלט, כולל אלה של חברים ועמיתים לעבודה. הדבר עשוי להתיר לאפליקציה לשתף או לשמור את נתוני היומן שלך, ללא התחשבות בסודיות או ברגישות."</string>
<string name="permdesc_readCalendar" product="default" msgid="7434548682470851583">"מאפשר לאפליקציה לקרוא את כל אירועי היומן המאוחסנים בטלפון, כולל אלה של חברים ועמיתים לעבודה. הדבר עשוי להתיר לאפליקציה לשתף או לשמור את נתוני היומן שלך, ללא התחשבות בסודיות או ברגישות."</string>
- <string name="permlab_writeCalendar" msgid="8438874755193825647">"הוספה ושינוי של אירועי יומן ושליחת דוא\"ל לאורחים ללא ידיעת הבעלים"</string>
+ <string name="permlab_writeCalendar" msgid="8438874755193825647">"הוספה ושינוי של אירועי יומן ושליחת אימייל לאורחים ללא ידיעת הבעלים"</string>
<string name="permdesc_writeCalendar" product="tablet" msgid="6679035520113668528">"מאפשר לאפליקציה להוסיף, להסיר ולשנות אירועים שאתה יכול לשנות בטאבלט, כולל אלה של חברים או עמיתים לעבודה. הדבר עשוי להתיר לאפליקציה לשלוח הודעות הנראות כאילו שנשלחו מבעלי יומן או לשנות אירועים ללא ידיעת הבעלים."</string>
<string name="permdesc_writeCalendar" product="default" msgid="2324469496327249376">"מאפשר לאפליקציה להוסיף, להסיר ולשנות אירועים שאתה יכול לשנות בטלפון, כולל אלה של חברים או עמיתים לעבודה. הדבר עשוי להתיר לאפליקציה לשלוח הודעות הנראות כאילו שנשלחו מבעלי יומן או לשנות אירועים ללא ידיעת הבעלים."</string>
<string name="permlab_accessMockLocation" msgid="8688334974036823330">"צור מקורות מיקום מדומים לצורך בדיקה"</string>
@@ -941,7 +941,7 @@
<string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"ביטול נעילת חשבון"</string>
<string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"בוצעו ניסיונות רבים מדי לשרטוט קו ביטול נעילה."</string>
<string name="lockscreen_glogin_instructions" msgid="3931816256100707784">"כדי לבטל את הנעילה, היכנס באמצעות חשבון Google שלך."</string>
- <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"שם משתמש (דוא\"ל)"</string>
+ <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"שם משתמש (אימייל)"</string>
<string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"סיסמה"</string>
<string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"כניסה"</string>
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"שם משתמש או סיסמה לא חוקיים."</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"פעולות טקסט"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"שטח האחסון אוזל"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"ייתכן שפונקציות מערכת מסוימות לא יפעלו"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"אין מספיק שטח אחסון עבור המערכת. ודא שיש לך שטח פנוי בגודל 250MB התחל שוב."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> פועל"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"גע לקבלת מידע נוסף או כדי לעצור את האפליקציה."</string>
<string name="ok" msgid="5970060430562524910">"אישור"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"ערוך באמצעות %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"שתף באמצעות"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"שתף באמצעות %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"בחר אפליקציה לדף הבית"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"בחר אפליקציה שתשמש כדף הבית"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"השתמש ב-%1$s כדף הבית"</string>
<string name="alwaysUse" msgid="4583018368000610438">"השתמש כברירת מחדל עבור פעולה זו."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"השתמש באפליקציה אחרת"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"נקה את הגדרת המחדל ב\'הגדרות מערכת\' < Google Apps < \'הורדות\'."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"שכבת-על #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", מאובטח"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"העברת מסך מתבצעת"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"מתחבר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"העברת מסך מתבצעת"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"מחובר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"נתק"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"שיחת חירום"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"שכחת את הקו"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"קו ביטול נעילה שגוי"</string>
@@ -1618,7 +1615,7 @@
<string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"קודי ה-PIN אינם תואמים"</string>
<string name="kg_login_too_many_attempts" msgid="6486842094005698475">"ניסיונות רבים מדי לשרטוט קו ביטול נעילה."</string>
<string name="kg_login_instructions" msgid="1100551261265506448">"כדי לבטל את הנעילה, היכנס באמצעות חשבון Google שלך."</string>
- <string name="kg_login_username_hint" msgid="5718534272070920364">"שם משתמש (דוא\"ל)"</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_invalid_input" msgid="5754664119319872197">"שם משתמש או סיסמה לא חוקיים."</string>
@@ -1631,8 +1628,8 @@
<string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"ביצעת <xliff:g id="NUMBER_0">%d</xliff:g> ניסיונות שגויים לביטול נעילת הטלפון. לאחר <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות כושלים נוספים, הטלפון יעבור איפוס לברירת המחדל של היצרן וכל נתוני המשתמש יאבדו."</string>
<string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"ביצעת <xliff:g id="NUMBER">%d</xliff:g> ניסיונות שגויים לביטול נעילת הטאבלט. הטאבלט יעבור כעת איפוס לברירת המחדל של היצרן."</string>
<string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"ביצעת <xliff:g id="NUMBER">%d</xliff:g> ניסיונות שגויים לביטול נעילת הטלפון. הטלפון יעבור כעת איפוס לברירת המחדל של היצרן."</string>
- <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטאבלט באמצעות חשבון דוא\"ל.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%d</xliff:g> שניות."</string>
- <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטלפון באמצעות חשבון דוא\"ל.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%d</xliff:g> שניות."</string>
+ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטאבלט באמצעות חשבון אימייל.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%d</xliff:g> שניות."</string>
+ <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטלפון באמצעות חשבון אימייל.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%d</xliff:g> שניות."</string>
<string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"הסר"</string>
<string name="safe_media_volume_warning" product="default" msgid="2276318909314492312">"האם להעלות את עוצמת הקול מעל לרמה המומלצת?\n\nהאזנה בעוצמת קול גבוהה למשכי זמן ממושכים עלולה לפגוע בשמיעה."</string>
@@ -1775,7 +1772,7 @@
<string name="lock_to_app_unlock_pin" msgid="2552556656504331634">"בקש קוד אימות לפני ביטול הצמדה"</string>
<string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"בקש קו ביטול נעילה לפני ביטול הצמדה"</string>
<string name="lock_to_app_unlock_password" msgid="6380979775916974414">"בקש סיסמה לפני ביטול הצמדה"</string>
- <string name="battery_saver_description" msgid="2510530476513605742">"כדי לעזור בהארכת חיי הסוללה, תכונת \'חיסכון בסוללה\' מצמצמת את פעילות המכשיר ומגבילה את השימוש ברטט וברוב נתוני הרקע. ייתכן שדוא\"ל, שליחת הודעות ואפליקציות אחרות המסתמכות על סנכרון לא יתעדכנו, אלא אם תפתח אותן.\n\nתכונת \'חיסכון בסוללה\' מופסקת אוטומטית כשהמכשיר מחובר לחשמל."</string>
+ <string name="battery_saver_description" msgid="2510530476513605742">"כדי לעזור בהארכת חיי הסוללה, תכונת \'חיסכון בסוללה\' מצמצמת את פעילות המכשיר ומגבילה את השימוש ברטט וברוב נתוני הרקע. ייתכן שאימייל, שליחת הודעות ואפליקציות אחרות המסתמכות על סנכרון לא יתעדכנו, אלא אם תפתח אותן.\n\nתכונת \'חיסכון בסוללה\' מופסקת אוטומטית כשהמכשיר מחובר לחשמל."</string>
<string name="downtime_condition_summary" msgid="8761776337475705749">"עד לסיום ההשבתה בשעה <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<plurals name="zen_mode_duration_minutes">
<item quantity="one" msgid="9040808414992812341">"למשך דקה אחת"</item>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index ce5ebb5..1e9d7ba 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"テキスト操作"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"空き容量わずか"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"一部のシステム機能が動作しない可能性があります"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"システムに十分な容量がありません。250MBの空き容量を確保して再起動してください。"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g>を実行しています"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"タップすると詳細が表示されるか、アプリが停止します。"</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$sで編集"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"共有"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$sで共有"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ホームアプリを選択"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ホームアプリを選択"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ホームとして%1$sを使用"</string>
<string name="alwaysUse" msgid="4583018368000610438">"常にこの操作で使用する"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"別のアプリの使用"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"[システム設定]>[アプリ]>[ダウンロード済み]でデフォルト設定をクリアします。"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"オーバーレイ第<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>、<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"、セキュア"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"画面のキャスト中"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g>に接続しています"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"画面のキャスト中"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g>に接続しました"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"切断"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"緊急通報"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"パターンを忘れた場合"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"パターンが正しくありません"</string>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index bcf10ee..1621874 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"ქმედებები ტექსტზე"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"თავისუფალი ადგილი იწურება"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"სისტემის ზოგიერთმა ფუნქციამ შესაძლოა არ იმუშავოს"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"სისტემისათვის საკმარისი საცავი არ არის. დარწმუნდით, რომ იქონიოთ სულ მცირე 250 მბაიტი თავისუფალი სივრცე და დაიწყეთ ხელახლა."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> გაშვებულია"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"შეეხეთ მეტი ინფორმაციისათვის ან აპის შესაწყვეტად."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"რედაქტირება %1$s-ით"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"გაზიარება:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s-თან გაზიარება"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"აირჩიეთ საშინაო აპი"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"აირჩიეთ Home აპი"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s-ის გამოყენება ......Home-ად"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ამ ქმედებისთვის ნაგულისხმევად გამოყენება."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"სხვა აპის გამოყენება"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"ნაგულისხმევი პარამეტრების წაშლა სისტემის პარამეტრებში > აპებში > ჩამოტვირთულებში."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"გადაფარვა #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", დაცული"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"მიმდინარეობს ეკრანის გადაცემა"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g>-თან დაკავშირება"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"მიმდინარეობს ეკრანის გადაცემა"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"დაკავშირებულია <xliff:g id="NAME">%1$s</xliff:g>-თან"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"კავშირის გაწყვეტა"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"გადაუდებელი დახმარების ზარი"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"დაგავიწყდათ ნიმუში"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"არასწორი ნიმუში"</string>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index e49970b..b53cf66 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Мәтін әрекеттері"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Жадта орын азайып барады"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Жүйенің кейбір функциялары жұмыс істемеуі мүмкін"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Жүйе үшін жад жеткіліксіз. 250 МБ бос орын бар екенін тексеріп, қайта іске қосыңыз."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> қосылған"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Басқа ақпаратты қарау үшін немесе қолданбаны тоқтату үшін түртіңіз."</string>
<string name="ok" msgid="5970060430562524910">"Жарайды"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s көмегімен өңдеу"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Бөлісу"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s қолданбасымен бөлісу"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Негізгі қолданбаны таңдау"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"«Негізгі» қолданбасын таңдау"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s «Негізгі» ретінде пайдалану"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Бұл әрекет үшін бастапқы параметрін қолданыңыз."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Басқа қолданбаны пайдалану"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Әдепкі параметрден «Жүйелік параметрлер» > «Қолданбалар» > «Жүктелгендер» тармағында құсбелгіні алу."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"№<xliff:g id="ID">%1$d</xliff:g> қабаттама"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", қауіпсіз"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Экранды жалғауда"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> байланысына қосылуда"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Экранды жалғауда"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> байланысына қосылған"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Ажырату"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Төтенше қоңырау"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Кескінді ұмытып қалу"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Қате кескін"</string>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index 3aa35f2..dd29686 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"សកម្មភាពអត្ថបទ"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"អស់ទំហំផ្ទុក"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"មុខងារប្រព័ន្ធមួយចំនួនអាចមិនដំណើរការ"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"មិនមានទំហំផ្ទុកគ្រប់គ្រាន់សម្រាប់ប្រព័ន្ធ។ សូមប្រាកដថាអ្នកមានទំហំទំនេរ 250MB ហើយចាប់ផ្ដើមឡើងវិញ។"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> កំពុងដំណើរការ"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"ប៉ះ ដើម្បីមើលព័ត៌មានបន្ថែម ឬបញ្ឈប់កម្មវិធី។"</string>
<string name="ok" msgid="5970060430562524910">"យល់ព្រម"</string>
@@ -1203,7 +1204,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"កែសម្រួលជាមួយ %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"ចែករំលែកជាមួយ"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"ចែករំលែកជាមួយ"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ជ្រើសកម្មវិធីដើម"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ជ្រើសកម្មវិធីដើម"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ប្រើ %1$s ជាដើម"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ប្រើតាមលំនាំដើមសម្រាប់សកម្មភាពនេះ។"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"ប្រើកម្មវិធីផ្សេង"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"សម្អាតលំនាំដើមក្នុងការកំណត់ប្រព័ន្ធ > កម្មវិធី > ទាញយក។"</string>
@@ -1594,11 +1596,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"#<xliff:g id="ID">%1$d</xliff:g> ត្រួតគ្នា"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", សុវត្ថិភាព"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"ចាត់ថ្នាក់អេក្រង់"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"កំពុងតភ្ជាប់ទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"ចាត់ថ្នាក់អេក្រង់"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"តភ្ជាប់ទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"ផ្ដាច់"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"ការហៅពេលអាសន្ន"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ភ្លេចលំនាំ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"លំនាំមិនត្រឹមត្រូវ"</string>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index 951989d..3e171ff 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"ಪಠ್ಯದ ಕ್ರಮಗಳು"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"ಸಂಗ್ರಹಣೆ ಸ್ಥಳವು ತುಂಬಿದೆ"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"ಕೆಲವು ಸಿಸ್ಟಂ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ಸಿಸ್ಟಂನಲ್ಲಿ ಸಾಕಷ್ಟು ಸಂಗ್ರಹಣೆಯಿಲ್ಲ. ನೀವು 250MB ನಷ್ಟು ಖಾಲಿ ಸ್ಥಳವನ್ನು ಹೊಂದಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಚಾಲನೆಯಲ್ಲಿದೆ"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ನಿಲ್ಲಿಸಲು ಸ್ಪರ್ಶಿಸಿ."</string>
<string name="ok" msgid="5970060430562524910">"ಸರಿ"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ಜೊತೆಗೆ ಸಂಪಾದಿಸಿ"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"ಇದರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ಹೋಮ್ ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ಹೋಮ್ ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ಹೋಮ್ ಎಂಬಂತೆ %1$s ಅನ್ನು ಬಳಸಿ"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ಈ ಕ್ರಿಯೆಗೆ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಬಳಸಿ."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"ಬೇರೆಯ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಿ"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್ಗಳು > ಅಪ್ಲಿಕೇಶನ್ಗಳು > ಡೌನ್ಲೋಡ್ ಮಾಡಲಾದ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಿ."</string>
@@ -1488,8 +1490,8 @@
<string name="sync_undo_deletes" msgid="2941317360600338602">"ಅಳಿಸುವಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಿ"</string>
<string name="sync_do_nothing" msgid="3743764740430821845">"ಈಗ ಏನೂ ಮಾಡಬೇಡಿ"</string>
<string name="choose_account_label" msgid="5655203089746423927">"ಖಾತೆಯೊಂದನ್ನು ಆರಿಸು"</string>
- <string name="add_account_label" msgid="2935267344849993553">"ಒಂದು ಖಾತೆ ಸೇರಿಸಿ"</string>
- <string name="add_account_button_label" msgid="3611982894853435874">"ಖಾತೆಯನ್ನು ಸೇರಿಸು"</string>
+ <string name="add_account_label" msgid="2935267344849993553">"ಒಂದು ಖಾತೆ ಸೇರಿಸು"</string>
+ <string name="add_account_button_label" msgid="3611982894853435874">"ಖಾತೆ ಸೇರಿಸು"</string>
<string name="number_picker_increment_button" msgid="2412072272832284313">"ಹೆಚ್ಚಿಸಿ"</string>
<string name="number_picker_decrement_button" msgid="476050778386779067">"ಕಡಿಮೆ ಮಾಡಿ"</string>
<string name="number_picker_increment_scroll_mode" msgid="3073101067441638428">"<xliff:g id="VALUE">%s</xliff:g> ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಡಿದಿಡಿ."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ಓವರ್ಲೇ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ಸುರಕ್ಷಿತ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"ಬಿತ್ತರಿಸುವಿಕೆ ಪರದೆ"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗುತ್ತಿದೆ"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"ಬಿತ್ತರಿಸುವಿಕೆ ಪರದೆ"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸು"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"ತುರ್ತು ಕರೆ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಮರೆತಿರುವಿರಿ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ತಪ್ಪು ಪ್ಯಾಟರ್ನ್"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index ee5f39d..2e00b97 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"텍스트 작업"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"저장 공간이 부족함"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"일부 시스템 기능이 작동하지 않을 수 있습니다."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"시스템의 저장 공간이 부족합니다. 250MB의 여유 공간이 확보한 후 다시 시작하세요."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g>이(가) 실행 중입니다."</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"자세한 정보를 보거나 앱을 중지하려면 터치하세요."</string>
<string name="ok" msgid="5970060430562524910">"확인"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s(으)로 수정"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"공유 대상"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s와(과) 공유"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"홈 앱 선택"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"홈 앱 선택"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s을(를) 홈 앱으로 사용"</string>
<string name="alwaysUse" msgid="4583018368000610438">"이 작업에 대해 기본값으로 사용"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"다른 앱 사용"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"시스템 설정 > 앱 > 다운로드로 이동하여 기본 설정을 지웁니다."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>번째 오버레이"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", 보안"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"화면 전송 중"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g>에 연결 중"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"화면 전송 중"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g>에 연결됨"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"연결 해제"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"긴급 통화"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"패턴을 잊음"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"잘못된 패턴"</string>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index 22559ba..c03e11f 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -1528,6 +1528,7 @@
<skip />
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Сактагычта орун калбай баратат"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Системанын кээ бир функциялары иштебеши мүмкүн"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Тутумда сактагыч жетишсиз. 250МБ бош орун бар экенин текшерип туруп, өчүрүп күйгүзүңүз."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> иштөөдө"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Кенен маалыматтар же колдонмону токтотуш үчүн тийиңиз."</string>
<!-- no translation found for ok (5970060430562524910) -->
@@ -1554,7 +1555,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s менен түзөтүү"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Төмөнкү менен бөлүшүү"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s менен бөлүшүү"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Үй колдонмосун тандаңыз"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Башкы бет колдонмосун тандаңыз"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Башкы бет колдонмосу катары %1$s пайдалануу"</string>
<!-- no translation found for alwaysUse (4583018368000610438) -->
<skip />
<string name="use_a_different_app" msgid="8134926230585710243">"Башка колдонмону пайдалануу"</string>
@@ -2073,11 +2075,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Катмар №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", корголгон"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Экран көчүрүлүүдө"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Буга туташууда: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Сырткы экранга чыгарылууда көчүрүлүүдө"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Буга туташып турат: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Ажыратуу"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Куткаруучуларга чалуу"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Үлгү унутулду"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Үлгү туура эмес"</string>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index e8cb675..8c7b629 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"ການເຮັດວຽກຂອງຂໍ້ຄວາມ"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນກຳລັງຈະເຕັມ"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"ການເຮັດວຽກບາງຢ່າງຂອງລະບົບບາງອາດຈະໃຊ້ບໍ່ໄດ້"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ບໍ່ມີບ່ອນເກັບຂໍ້ມູນພຽງພໍສຳລັບລະບົບ. ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານມີພື້ນທີ່ຫວ່າງຢ່າງໜ້ອຍ 250MB ແລ້ວລອງໃໝ່."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ກຳລັງເຮັດວຽກຢູ່"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"ແຕະເພື່ອເບິ່ງຂໍ້ມູນເພີ່ມເຕີມ ຫຼືເພື່ອຢຸດການເຮັດວຽກຂອງແອັບຯນີ້."</string>
<string name="ok" msgid="5970060430562524910">"ຕົກລົງ"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"ແກ້ໄຂໃນ %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"ແບ່ງປັນກັບ"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"ແບ່ງປັນກັບ %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ເລືອກແອັບຯ Home"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ເລືອກແອັບຯໂຮມ"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ໃຊ້ %1$s ເປັນໜ້າຫຼັກ"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ໃຊ້ໂດຍຄ່າເລີ່ມຕົນສຳລັບການເຮັດວຽກນີ້."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"ນຳໃຊ້ແອັບຯອື່ນ"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"ລຶບລ້າງຄ່າເລີ່ມຕົ້ນ ໃນ ການຕັ້ງຄ່າລະບົບ > ແອັບຯ > ດາວໂຫລດແລ້ວ."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ການວາງຊ້ອນ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ປອດໄພ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"ກຳລັງສົ່ງພາບໜ້າຈໍ"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"ກຳລັງເຊື່ອມຕໍ່ຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"ການສົ່ງພາບໜ້າຈໍ"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"ເຊື່ອມຕໍ່ກັບ <xliff:g id="NAME">%1$s</xliff:g> ແລ້ວ"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"ຢຸດການເຊື່ອມຕໍ່"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"ການໂທສຸກເສີນ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ລືມຮູບແບບປົດລັອກ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ຮູບແບບຜິດ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index fd5b024..ecc747d 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Teksto veiksmai"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Mažėja laisvos saugyklos vietos"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Kai kurios sistemos funkcijos gali neveikti"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Sistemos saugykloje nepakanka vietos. Įsitikinkite, kad yra 250 MB laisvos vietos, ir paleiskite iš naujo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ vykdoma"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Palieskite, jei norite gauti daugiau informacijos arba sustabdyti programą."</string>
<string name="ok" msgid="5970060430562524910">"Gerai"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Redaguoti naudojant %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Bendrinti naudojant"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Bendrinti naudojant %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Pasirinkite programą, paleidžiamą spustelėjus pagrindinio ekrano mygtuką"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Pasirinkti pagrindinę programą"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Naudoti „%1$s“ kaip pagrindinę programą"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Šiam veiksmui tai naudoti pagal numatytuosius nustatymus."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Naudoti kitą programą"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Numatytuosius nustatymus išvalykite nuėję į „Sistemos nustatymai“ > „Programos“ > „Atsisiųsta“."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Perdanga nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"„<xliff:g id="NAME">%1$s</xliff:g>“: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> tašk. colyje"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", saugu"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Perduodamas ekranas"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Prisijungiama prie „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Perduodamas ekranas"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Prisijungta prie „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Atjungti"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Skambutis pagalbos numeriu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pamiršau atrakinimo piešinį"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Netinkamas atrakinimo piešinys"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index a67eeb9..f5c4c19 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -760,13 +760,13 @@
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Dzēš tālruņa datus bez brīdinājuma, veicot rūpnīcas datu atiestatīšanu."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Iestatīt ierīces globālo starpniekserveri"</string>
<string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Iestatiet izmantojamo ierīces globālo starpniekserveri, kad ir iespējota politika. Spēkā esošo globālo starpniekserveri iestata tikai pirmās ierīces administrators."</string>
- <string name="policylab_expirePassword" msgid="885279151847254056">"Ekr. bloķ. paroles term. iest."</string>
+ <string name="policylab_expirePassword" msgid="885279151847254056">"Ekrāna bloķ., paroles termiņa iestat."</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"Kontrolē, cik bieži ir jāmaina ekrāna bloķēšanas parole."</string>
<string name="policylab_encryptedStorage" msgid="8901326199909132915">"Skatīt atmiņas šifrējumu"</string>
<string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Pieprasa, lai saglabātie lietotnes dati tiktu šifrēti."</string>
<string name="policylab_disableCamera" msgid="6395301023152297826">"Atspējot kameras"</string>
<string name="policydesc_disableCamera" msgid="2306349042834754597">"Neļauj izmantot nevienu ierīces kameru."</string>
- <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Bloķēšanas f-jas atspējošana"</string>
+ <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Bloķēšanas funkcijas atspējošana"</string>
<string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Atspējot noteiktas funkcijas taustiņslēgā."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Mājas"</item>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Teksta darbības"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Paliek maz brīvas vietas"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Dažas sistēmas funkcijas var nedarboties."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Sistēmai pietrūkst vietas. Atbrīvojiet vismaz 250 MB vietas un restartējiet ierīci."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> darbojas"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Pieskarieties, lai iegūtu plašāku informāciju vai apturētu lietotnes darbību."</string>
<string name="ok" msgid="5970060430562524910">"Labi"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Rediģēt, izmantojot %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Kopīgot, izmantojot"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Kopīgot, izmantojot %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Sākuma ekrāna lietotnes atlase"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Sākuma lietotnes atlase"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"“%1$s” kā sākuma lietotnes izmantošana"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Pēc noklusējuma izmantot šai darbībai."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Izmantot citu lietotni"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Notīriet noklusējuma iestatījumus šeit: Sistēmas iestatījumi > Lietotnes > Lejupielādētās."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Pārklājums Nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", drošs"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Ekrāna apraidīšana"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Notiek savienojuma izveide ar: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Ekrāna apraidīšana"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Izveidots savienojums ar: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Pārtraukt savienojumu"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Ārkārtas izsaukums"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Aizmirsu kombināciju"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nepareiza kombinācija"</string>
diff --git a/core/res/res/values-mcc302-mnc610/config.xml b/core/res/res/values-mcc302-mnc610/config.xml
index 638aa92..81cec96 100644
--- a/core/res/res/values-mcc302-mnc610/config.xml
+++ b/core/res/res/values-mcc302-mnc610/config.xml
@@ -25,6 +25,6 @@
<!-- Configure mobile network MTU. Carrier specific value is set here.
-->
- <integer name="config_mobile_mtu">1358</integer>
+ <integer name="config_mobile_mtu">1428</integer>
</resources>
diff --git a/core/res/res/values-mcc310-mnc150/config.xml b/core/res/res/values-mcc310-mnc150/config.xml
index 3f9330d..3588f32 100644
--- a/core/res/res/values-mcc310-mnc150/config.xml
+++ b/core/res/res/values-mcc310-mnc150/config.xml
@@ -24,8 +24,10 @@
<item>310140</item>
<item>310400</item>
<item>310470</item>
+ <item>311170</item>
</string-array>
<string-array translatable="false" name="config_operatorConsideredNonRoaming">
+ <item>310</item>
<item>311</item>
<item>312</item>
<item>313</item>
diff --git a/core/res/res/values-mcc310-mnc410/config.xml b/core/res/res/values-mcc310-mnc410/config.xml
index 1cc8d4f..d17509c 100644
--- a/core/res/res/values-mcc310-mnc410/config.xml
+++ b/core/res/res/values-mcc310-mnc410/config.xml
@@ -30,9 +30,11 @@
<item>310140</item>
<item>310400</item>
<item>310470</item>
+ <item>311170</item>
</string-array>
- <!-- BEGIN Motorola, xnk746, Feb-12-2014, IKVPREL2KK-1468 -->
+
<string-array translatable="false" name="config_operatorConsideredNonRoaming">
+ <item>310</item>
<item>311</item>
<item>312</item>
<item>313</item>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index f4ecd7e..b0b73d6 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Дејства со текст"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Меморијата е речиси полна"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Некои системски функции може да не работат"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Нема доволно меморија во системот. Проверете дали има слободен простор од 250 МБ и рестартирајте."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> работи"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Допри за повеќе информации или да се запре апликацијата"</string>
<string name="ok" msgid="5970060430562524910">"Во ред"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Уреди со %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Сподели со"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Сподели со %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Избери почетна апликација"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Изберете ја апликацијата Почетен"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Користете ја %1$s како Почетен"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Користи ја стандардно за ова дејство."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Користи различна апликација"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Избриши ги стандардните вредности во Системски поставки > Апликации > Преземено."</string>
@@ -1594,11 +1596,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Прекривка #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g>х<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безбедно"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Префрлање екран"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Се поврзува на <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Префрлање екран"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Поврзан на <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Исклучи"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Итен повик"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборавив шема"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешна шема"</string>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 6479f0a..55ff40a 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -749,7 +749,7 @@
<string name="policylab_limitPassword" msgid="4497420728857585791">"പാസ്വേഡ് നിയമങ്ങൾ സജ്ജീകരിക്കുക"</string>
<string name="policydesc_limitPassword" msgid="3252114203919510394">"സ്ക്രീൻ-അൺലോക്ക് പാസ്വേഡുകളിൽ അനുവദിച്ചിരിക്കുന്ന ദൈർഘ്യവും പ്രതീകങ്ങളും നിയന്ത്രിക്കുക."</string>
<string name="policylab_watchLogin" msgid="914130646942199503">"സ്ക്രീൻ അൺലോക്ക് ശ്രമങ്ങൾ നിരീക്ഷിക്കുക"</string>
- <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"സ്ക്രീൻ അൺലോക്കുചെയ്യുമ്പോൾ തെറ്റായി ടൈപ്പുചെയ്ത പാസ്വേഡുകളുടെ എണ്ണം നിരീക്ഷിക്കുക, വളരെയധികം തെറ്റായ പാസ്വ്ഡുകൾ ടൈപ്പുചെയ്തിട്ടുണ്ടെങ്കിൽ ടാബ്ലെറ്റ് ലോക്കുചെയ്യുകയോ ടാബ്ലെറ്റിലെ എല്ലാ ഡാറ്റയും മായ്ക്കുകയോചെയ്യുക."</string>
+ <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"സ്ക്രീൻ അൺലോക്കുചെയ്യുമ്പോൾ തെറ്റായി ടൈപ്പുചെയ്ത പാസ്വേഡുകളുടെ എണ്ണം നിരീക്ഷിക്കുക, വളരെയധികം തെറ്റായ പാസ്വ്ഡുകൾ ടൈപ്പുചെയ്തിട്ടുണ്ടെങ്കിൽ ടാബ്ലെറ്റ് ലോക്കുചെയ്യുകയോ ടാബ്ലെറ്റിലെ എല്ലാ ഡാറ്റയും മായ്ക്കുകയോ ചെയ്യുക."</string>
<string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"സ്ക്രീൻ അൺലോക്കുചെയ്യുമ്പോൾ തെറ്റായി ടൈപ്പുചെയ്ത പാസ്വേഡുകളുടെ എണ്ണം നിരീക്ഷിക്കുക, വളരെയധികം തെറ്റായ പാസ്വ്ഡുകൾ ടൈപ്പുചെയ്തിട്ടുണ്ടെങ്കിൽ ഫോൺ ലോക്കുചെയ്യുകയോ ഫോണിലെ എല്ലാ ഡാറ്റയും മായ്ക്കുകയോചെയ്യുക."</string>
<string name="policylab_resetPassword" msgid="2620077191242688955">"സ്ക്രീൻ അൺലോക്ക് പാസ്വേഡ് മാറ്റുക"</string>
<string name="policydesc_resetPassword" msgid="605963962301904458">"സ്ക്രീൻ അൺലോക്ക് പാസ്വേഡ് മാറ്റുക."</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"ടെക്സ്റ്റ് പ്രവർത്തനങ്ങൾ"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"സംഭരണയിടം കഴിഞ്ഞു"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"ചില സിസ്റ്റം പ്രവർത്തനങ്ങൾ പ്രവർത്തിക്കണമെന്നില്ല."</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"സിസ്റ്റത്തിനായി മതിയായ സംഭരണമില്ല. 250MB സൗജന്യ സംഭരണമുണ്ടെന്ന് ഉറപ്പുവരുത്തി പുനരാരംഭിക്കുക."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> പ്രവർത്തിക്കുന്നു"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"കൂടുതൽ വിവരങ്ങൾക്ക് സ്പർശിക്കുക അല്ലെങ്കിൽ അപ്ലിക്കേഷൻ നിർത്തുക."</string>
<string name="ok" msgid="5970060430562524910">"ശരി"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ഉപയോഗിച്ച് എഡിറ്റുചെയ്യുക"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"ഇതുമായി പങ്കിടുക"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s എന്നതുമായി പങ്കിടുക"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ഒരു ഹോം അപ്ലിക്കേഷൻ തിരഞ്ഞെടുക്കുക"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ഒരു ഹോം അപ്ലിക്കേഷൻ തിരഞ്ഞെടുക്കുക"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ഹോമായി %1$s എന്നത് ഉപയോഗിക്കുക"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ഈ പ്രവർത്തനത്തിന് സ്ഥിരമായി ഉപയോഗിക്കുക."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"മറ്റൊരു അപ്ലിക്കേഷൻ ഉപയോഗിക്കുക"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"സിസ്റ്റം ക്രമീകരണങ്ങൾ > അപ്ലിക്കേഷനുകൾ > ഡൗൺലോഡുചെയ്തവ എന്നതിലെ സ്ഥിരമായതിനെ മറയ്ക്കുക."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ഓവർലേ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", സുരക്ഷിതമാക്കുക"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"സ്ക്രീൻ കാസ്റ്റുചെയ്യുന്നു"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്യുന്നു"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"സ്ക്രീൻ കാസ്റ്റുചെയ്യുന്നു"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തു"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"വിച്ഛേദിക്കുക"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"അടിയന്തര കോൾ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"പാറ്റേൺ മറന്നു"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"പാറ്റേൺ തെറ്റാണ്"</string>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index eea7f9d..001e1d0 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Текст үйлдэл"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Сангийн хэмжээ дутагдаж байна"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Зарим систем функц ажиллахгүй байна"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Системд хангалттай сан байхгүй байна. 250MБ чөлөөтэй зай байгаа эсэхийг шалгаад дахин эхлүүлнэ үү."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ажиллаж байна"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Илүү мэдээлэл авах бол хүрэх эсвэл апп-г зогсооно уу ."</string>
<string name="ok" msgid="5970060430562524910">"Тийм"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ашиглан засварлах"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Хуваалцах"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s ашиглан хуваалцах"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Нүүр апп-г сонгоно уу"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Үндсэн апп-г сонгох"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s-г Үндсэн-р ашиглах"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Энэ ажиллагааг үндсэн болгох."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Өөр апп ашиглах"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Систем тохиргоо > Апп > Татаж авсан хэсгийн үндсэн утгуудыг цэвэрлэх"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Давхарга #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", найдвартай"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Дэлгэцийг дамжуулж байна"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> руу холбогдож байна"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Дэлгэцийг дамжуулж байна"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> руу холбогдсон"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Салгах"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Яаралтай дуудлага"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Хээг мартсан"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Буруу хээ"</string>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index 2e4a047..517f0a3 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -759,7 +759,7 @@
<string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"फॅक्टरी डेटा रीसेट करून चेतावणीशिवाय टॅब्लेटचा डेटा मिटवा."</string>
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"फॅक्टरी डेटा रीसेट करून चेतावणीशिवाय फोनचा डेटा मिटवा."</string>
<string name="policylab_setGlobalProxy" msgid="2784828293747791446">"डिव्हाइस समग्र प्रॉक्सी सेट करा"</string>
- <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"धोरण सक्षम असताना वापरण्यासाठी समग्र प्रॉक्सी डिव्हाइस सेट करा. फक्त प्रथम डिव्हाइस प्रशासक परिणामकारक समग्र प्रॉक्सी सेट करते."</string>
+ <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"धोरण सक्षम असताना वापरण्यासाठी डिव्हाइस समग्र प्रॉक्सी सेट करा. फक्त प्रथम डिव्हाइस प्रशासक परिणामकारक समग्र प्रॉक्सी सेट करते."</string>
<string name="policylab_expirePassword" msgid="885279151847254056">"लॉक-स्क्रीन संकेतशब्द कालबाह्यता सेट करा"</string>
<string name="policydesc_expirePassword" msgid="1729725226314691591">"लॉक-स्क्रीन संकेतशब्द किती वारंवार बदलणे आवश्यक आहे ते नियंत्रित करा."</string>
<string name="policylab_encryptedStorage" msgid="8901326199909132915">"संचयन कूटबद्धीकरण सेट करा"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"मजकूर क्रिया"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"संचयन स्थान संपत आहे"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"काही सिस्टम कार्ये कार्य करू शकत नाहीत"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"सिस्टीमसाठी पुरेसे संचयन नाही. आपल्याकडे 250MB मोकळे स्थान असल्याचे सुनिश्चित करा आणि रीस्टार्ट करा."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> चालत आहे"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"अधिक माहितीसाठी किंवा अॅप थांबविण्यासाठी स्पर्श करा."</string>
<string name="ok" msgid="5970060430562524910">"ठीक"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s सह संपादित करा"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"यांच्यासह सामायिक करा"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s सह सामायिक करा"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"मुख्यपृष्ठ अॅप निवडा"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"मुख्यपृष्ठ अॅप निवडा"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"मुख्यपृष्ठ म्हणून %1$s वापरा"</string>
<string name="alwaysUse" msgid="4583018368000610438">"या क्रियेसाठी डीफॉल्टनुसार वापरा."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"एक भिन्न अॅप वापरा"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"डाउनलोड केलेल्या सिस्टीम सेटिंग्ज > Apps > मधील डीफॉल्ट साफ करा."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"आच्छादन #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"स्क्रीन कास्ट करीत आहे"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> ला कनेक्ट करीत आहे"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"स्क्रीन कास्ट करीत आहे"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> ला कनेक्ट केले"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"डिस्कनेक्ट करा"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"आणीबाणीचा कॉल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"नमुना विसरलात"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"चुकीचा नमुना"</string>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index 0d632b0..d2c0f24 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tindakan teks"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Ruang storan semakin berkurangan"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Beberapa fungsi sistem mungkin tidak berfungsi"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Tidak cukup storan untuk sistem. Pastikan anda mempunyai 250MB ruang kosong dan mulakan semula."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> sedang berjalan"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Sentuh untuk maklumat lanjut atau untuk menghentikan apl."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edit dengan %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Kongsi dengan"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Kongsi dengan %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Pilih apl laman utama"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Pilih apl Laman Utama"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Gunakan %1$s sebagai Laman Utama"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Gunakannya secara lalai untuk tindakan ini."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Gunakan apl lain"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Padam bersih lalai dalam tetapan Sistem > Apl > Dimuat turun."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Tindih #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", selamat"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Menghantar skrin"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Menyambung ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Menghantar skrin"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Disambungkan ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Putus sambungan"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Panggilan kecemasan"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Corak"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Corak Salah"</string>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index c85a6e6..2dbd261 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -165,7 +165,7 @@
<string name="silent_mode_vibrate" msgid="7072043388581551395">"တုန်ခါခြင်း ဖုန်းမြည်သံ"</string>
<string name="silent_mode_ring" msgid="8592241816194074353">"ဖုန်းမြည်သံဖွင့်ထားသည်"</string>
<string name="shutdown_progress" msgid="2281079257329981203">"စက်ပိတ်ပါမည်"</string>
- <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"သင့်တက်ပလက်အား စက်ပိတ်ပါမည်"</string>
+ <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"သင့်တက်ဘလက်အား စက်ပိတ်ပါမည်"</string>
<string name="shutdown_confirm" product="watch" msgid="3490275567476369184">"သင်၏ ကြည့်ရှုမှု ပိတ်ပစ်မည်။"</string>
<string name="shutdown_confirm" product="default" msgid="649792175242821353">"သင့်ဖုန်းအား စက်ပိတ်ပါမည်"</string>
<string name="shutdown_confirm_question" msgid="2906544768881136183">"သင်က ပိတ်ပစ်မှာကို လိုပါသလား?"</string>
@@ -551,7 +551,7 @@
<string name="permlab_brick" product="default" msgid="8337817093326370537">"ဖုန်းကို အမြဲတမ်း အလုပ်မလုပ်ရန်ပိတ်ခြင်း"</string>
<string name="permdesc_brick" product="tablet" msgid="4334818808001699530">"appအား တက်ဘလက် တစ်ခုလုံးကို ထာဝရ ပိတ်ပစ်ခွင် ပြုသည်။ ၎င်းမှာ အထူး အန္တရာယ် ရှိနိုင်သည်။"</string>
<string name="permdesc_brick" product="default" msgid="5788903297627283099">"appအား ဖုန်း တစ်ခုလုံးကို ထာဝရ ပိတ်ပစ်ခွင် ပြုသည်။ ၎င်းမှာ အထူး အန္တရာယ် ရှိနိုင်သည်။"</string>
- <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"တက်ပလက် မဖြစ်မနေပြန်လည်စတင်လုပ်ဆောင်ရန်"</string>
+ <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"တက်ဘလက် မဖြစ်မနေပြန်လည်စတင်လုပ်ဆောင်ရန်"</string>
<string name="permlab_reboot" product="default" msgid="2898560872462638242">"ဖုန်းကို မဖြစ်မနေပြန်လည်စတင်လုပ်ဆောင်ရန်"</string>
<string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"appအား တက်ဘလက်ကို ပြန်စတင်ရန် အတင်းအကြပ် ပြုလုပ်ခွင့် ပြုပါသည်။"</string>
<string name="permdesc_reboot" product="default" msgid="5326008124289989969">"appအား ဖုန်းကို ပြန်စတင်ရန် အတင်းအကြပ် ပြုလုပ်ခွင့် ပြုပါသည်။"</string>
@@ -607,7 +607,7 @@
<string name="permlab_transmitIr" msgid="7545858504238530105">"အနီအောက်ရောင်ခြည် ထုတ်လွှတ်ခြင်း"</string>
<string name="permdesc_transmitIr" product="tablet" msgid="5358308854306529170">"အပလီကေးရှင်းအား တက်ဘလက်ရဲ့ အနီအောက်ရောင်ခြည် ထုတ်လွှတ်ခြင်းအား သုံးခွင့်ပေးခြင်း"</string>
<string name="permdesc_transmitIr" product="default" msgid="7957763745020300725">"အပလီကေးရှင်းအား ဖုန်းရဲ့ အနီအောက်ရောင်ခြည် ထုတ်လွှတ်ခြင်းအား သုံးခွင့်ပေးခြင်း"</string>
- <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"တက်ပလက်ဖွင့် (သို့)ပိတ်"</string>
+ <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"တက်ဘလက် အဖွင့်အပိတ်"</string>
<string name="permlab_devicePower" product="default" msgid="4928622470980943206">"ဖုန်းဖွင့် (သို့)ပိတ်"</string>
<string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"appအား တက်ဘလက်ကို ဖွင့် သို့မဟုတ် ပိတ်ခွင့် ပြုသည်။"</string>
<string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"appအား ဖုန်းကို ဖွင့် သို့မဟုတ် ပိတ်ခွင့် ပြုသည်။"</string>
@@ -922,7 +922,7 @@
<string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ပြန်ရစ်ရန်"</string>
<string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"ရှေ့သို့ သွားရန်"</string>
<string name="emergency_calls_only" msgid="6733978304386365407">"အရေးပေါ်ခေါ်ဆိုမှုသာ"</string>
- <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ကွန်ယက် သော့ကျနေခြင်း"</string>
+ <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ကွန်ရက် သော့ကျနေခြင်း"</string>
<string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"ဆင်းမ်ကဒ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်"</string>
<string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"သုံးစွဲသူ လမ်းညွှန်ကို ကြည့်ပါ သို့မဟုတ် ဖောက်သည်များ စောင့်ရှောက်ရေး ဌာနကို ဆက်သွယ်ပါ။"</string>
<string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"ဆင်းမ်ကဒ် သော့ကျနေပါသည်"</string>
@@ -1183,12 +1183,13 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"စာတို လုပ်ဆောင်ချက်"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"သိမ်းဆည်သော နေရာ နည်းနေပါသည်"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"တချို့ စနစ်လုပ်ငန်းများ အလုပ် မလုပ်ခြင်း ဖြစ်နိုင်ပါသည်"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"စနစ်အတွက် သိုလှောင်ခန်း မလုံလောက်ပါ။ သင့်ဆီမှာ နေရာလွတ် ၂၅၀ MB ရှိတာ စစ်ကြည့်ပြီး စတင်ပါ။"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> က အလုပ်လုပ်နေသည်။"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"အချက်အလက်များ ပိုသိရန် သို့မဟုတ် အပလီကေးရှင်းကို ရပ်ရန် တို့ထိလိုက်ပါ။"</string>
<string name="ok" msgid="5970060430562524910">"ကောင်းပြီ"</string>
- <string name="cancel" msgid="6442560571259935130">"ပယ်ဖျက်ရန်"</string>
+ <string name="cancel" msgid="6442560571259935130">"ထားတော့"</string>
<string name="yes" msgid="5362982303337969312">"ကောင်းပြီ"</string>
- <string name="no" msgid="5141531044935541497">"နေတော့"</string>
+ <string name="no" msgid="5141531044935541497">"ထားတော့"</string>
<string name="dialog_alert_title" msgid="2049658708609043103">"သတိပြုရန်"</string>
<string name="loading" msgid="7933681260296021180">"တင်နေ…"</string>
<string name="capital_on" msgid="1544682755514494298">"ဖွင့်ရန်"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s နှင့် တည်းဖြတ်ရန်"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"...နှင့် မျှဝေရန်"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$sနှင့် မျှဝေရန်"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ပင်မ အပလီကေးရှင်း ရွေးချယ်ပါ"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ပင်မ appကို ရွေးပါ"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$sကို ပင်မအဖြစ် သုံးပါ"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ဤလှုပ်ရှားမှုအတွက် မူရင်းအတိုင်း အသုံးပြုပါ။"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"အခြား appကို သုံးပါ"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"စနစ် ဆက်တင် ထဲမှာ ပုံသေကို ရှင်းလိုက်ပါ > Appများ > ဒေါင်းလုဒ် လုပ်ပြီး။"</string>
@@ -1217,7 +1219,7 @@
<string name="anr_application_process" msgid="8941757607340481057">"<xliff:g id="APPLICATION">%1$s</xliff:g> က မတုံ့ပြန်ပါ။ ၎င်းကို သင် ပိတ်လိုပါသလား?"</string>
<string name="anr_process" msgid="6513209874880517125">"ဖြစ်စဉ်<xliff:g id="PROCESS">%1$s</xliff:g> က မတုံ့ပြန်ပါ။ \n\n၎င်းကို သင် ပိတ် ချင်သလား?"</string>
<string name="force_close" msgid="8346072094521265605">"ကောင်းပြီ"</string>
- <string name="report" msgid="4060218260984795706">"သတင်းပို့ခြင်း"</string>
+ <string name="report" msgid="4060218260984795706">"သတင်းပို့ပါ"</string>
<string name="wait" msgid="7147118217226317732">"စောင့်ဆိုင်းရန်"</string>
<string name="webpage_unresponsive" msgid="3272758351138122503">"စာမျက်နှာမှာ ပြန်လည် တုံ့ပြန်မှု မရှိတော့ပါ။\n\nပိတ်လိုက်ချင်ပါသလား?"</string>
<string name="launch_warning_title" msgid="1547997780506713581">"App ပြန်ညွှန်းခဲ့"</string>
@@ -1298,7 +1300,7 @@
<string name="sms_short_code_details" msgid="5873295990846059400"><b>"ဒါက သင့် မိုဘိုင်း အကောင့် အတွက် "</b>" ကုန်ကျမှု ရှိလာနိုင်သည်။"</string>
<string name="sms_premium_short_code_details" msgid="7869234868023975"><b>"ဒါက သင့် မိုဘိုင်း အကောင့် အတွက် ကုန်ကျမှု ရှိလာနိုင်သည်။"</b></string>
<string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"ပို့ရန်"</string>
- <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"နေတော့"</string>
+ <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"ထားတော့"</string>
<string name="sms_short_code_remember_choice" msgid="5289538592272218136">"ကျွန်ပ်၏ရွေးချယ်မှုကို မှတ်ထားရန်"</string>
<string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"နောင်တွင် ဆက်တင် > အပလီကေးရှင်းများ မှပြောင်းနိုင်သည်"</string>
<string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"အမြဲခွင့်ပြုရန်"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"အပေါ်မှ ထပ်သောအရာ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", လုံခြုံသော"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"ဖန်သားပြင်"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> နှင့် ဆက်သွယ်နေပါသည်"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"ဖန်သားပြင်"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> နှင့် ဆက်သွယ်ထားပြီး"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"ချိတ်ဆက်ခြင်းရပ်တန့်ရန်"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"အရေးပေါ် ခေါ်ဆိုမှု"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ပုံဖော်မှုအား မေ့လျော့ခြင်း"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ပုံဆွဲအမှား"</string>
@@ -1645,7 +1642,7 @@
<string name="error_message_title" msgid="4510373083082500195">"အမှား"</string>
<string name="error_message_change_not_allowed" msgid="1347282344200417578">"ဒီအပြောင်းအလဲမျိုးကို သင့် စီမံအုပ်ချုပ်သူမှ ခွင့်မပြုပါ"</string>
<string name="app_not_found" msgid="3429141853498927379">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်ပေးမည့် အပလီကေးရှင်း မရှိပါ။"</string>
- <string name="revoke" msgid="5404479185228271586">"ပယ်ဖျက်ရန်"</string>
+ <string name="revoke" msgid="5404479185228271586">"ထားတော့"</string>
<string name="mediasize_iso_a0" msgid="1994474252931294172">"အိုက်အက်စ်အို အေ ဝ"</string>
<string name="mediasize_iso_a1" msgid="3333060421529791786">"အိုက်အက်စ်အို အေ၁"</string>
<string name="mediasize_iso_a2" msgid="3097535991925798280">"အိုက်အက်စ်အို အေ ၂"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index bc1eb6e..f25b717 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Teksthandlinger"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Lite ledig lagringsplass"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Enkelte systemfunksjoner fungerer muligens ikke slik de skal"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Det er ikke nok lagringsplass for systemet. Kontrollér at du har 250 MB ledig plass, og start på nytt."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> kjører"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Trykk for mer informasjon, eller for å stoppe appen."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Rediger med %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Del med"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Del med %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Velg en startside-app"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Velg en startsideapp"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Bruk %1$s som startside"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Bruk som standardvalg."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Bruk en annen app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Fjern app angitt som standard i systeminnstillingene > Apper > Nedlastet."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlegg #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sikker"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Sender skjermen …"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Kobler til <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Sender skjermen …"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Koblet til <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Koble fra"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Nødnummer"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glemt mønsteret?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Feil mønster"</string>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 2dbcb08..bb6565e 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"पाठ कार्यहरू"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"भण्डारण ठाउँ सकिँदै छ"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"सायद केही प्रणाली कार्यक्रमहरूले काम गर्दैनन्"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"प्रणालीको लागि पर्याप्त भण्डारण छैन। तपाईँसँग २५० मेगा बाइट ठाउँ खाली भएको निश्चित गर्नुहोस् र फेरि सुरु गर्नुहोस्।"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> चलिरहेको छ"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"थप सूचनाको लागि छुनुहोस् वा अनुप्रयोग बन्द गर्नुहोस्।"</string>
<string name="ok" msgid="5970060430562524910">"ठिक छ"</string>
@@ -1209,7 +1210,8 @@
<!-- String.format failed for translation -->
<!-- no translation found for whichSendApplicationNamed (2799370240005424391) -->
<skip />
- <string name="whichHomeApplication" msgid="4616420172727326782">"मुख्य अनुप्रयोग चयन गर्नुहोस्"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"गृह अनुप्रयोग चयन गर्नुहोस्"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s लाई गृहको रूपमा प्रयोग गर्नुहोस्"</string>
<string name="alwaysUse" msgid="4583018368000610438">"यस कार्यको लागि पूर्वनिर्धारितबाट प्रयोग गर्नुहोस्।"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"फरक अनुप्रयोग प्रयोग गर्नुहोस्"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"प्रणाली सेटिङहरूमा पूर्वनिर्धारितलाई हटाउनुहोस् > अनुप्रयोगहरू > डाउनलोड।"</string>
@@ -1217,7 +1219,7 @@
<string name="chooseUsbActivity" msgid="6894748416073583509">"USB उपकरणको लागि एउटा अनुप्रयोग छान्नुहोस्"</string>
<string name="noApplications" msgid="2991814273936504689">"कुनै पनि अनुप्रयोगहरूले यो कार्य गर्न सक्दैनन्।"</string>
<string name="aerr_title" msgid="1905800560317137752"></string>
- <string name="aerr_application" msgid="932628488013092776">"दुर्भाग्यवश, <xliff:g id="APPLICATION">%1$s</xliff:g>ले रोकेको छ।"</string>
+ <string name="aerr_application" msgid="932628488013092776">"दुर्भाग्यवश, <xliff:g id="APPLICATION">%1$s</xliff:g> रोकिएको छ।"</string>
<string name="aerr_process" msgid="4507058997035697579">"दुर्भाग्यवश, प्रक्रिया <xliff:g id="PROCESS">%1$s</xliff:g> बन्द भयो।"</string>
<string name="anr_title" msgid="4351948481459135709"></string>
<string name="anr_activity_application" msgid="1904477189057199066">"<xliff:g id="APPLICATION">%2$s</xliff:g>ले कार्य गरिरहेको छैन।\n\nके तपाईँ यसलाई बन्द गर्न चाहनु हुन्छ?"</string>
@@ -1600,11 +1602,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"आवरण #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"स्क्रिन कास्ट गर्दै"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> सँग जोड्दै"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"स्क्रिन कास्ट गर्दै"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> सँग जोडिएको"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"विच्छेदन गर्नुहोस्"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"आपतकालीन कल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ढाँचा बिर्सनु भयो"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत ढाँचा"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 8c6171d..137137c 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tekstacties"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Opslagruimte is bijna vol"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Bepaalde systeemfuncties werken mogelijk niet"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Onvoldoende opslagruimte voor het systeem. Zorg ervoor dat u 250 MB vrije ruimte heeft en start opnieuw."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> wordt uitgevoerd"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Raak aan voor meer informatie of om de app te stoppen."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Bewerken met %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Delen met"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Delen met %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Een startscherm-app selecteren"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Een startschermapp selecteren"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s gebruiken voor startscherm"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Standaard gebruiken voor deze actie."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Een andere app gebruiken"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Standaardinstelling wissen via Systeeminstellingen > Apps > Gedownload."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", beveiligd"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Scherm casten"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Verbinden met <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Scherm casten"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Verbonden met <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Verbinding verbreken"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Noodoproep"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patroon vergeten"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Onjuist patroon"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index ae2f866..c195906 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Działania na tekście"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Kończy się miejsce"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Niektóre funkcje systemu mogą nie działać"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Za mało pamięci w systemie. Upewnij się, że masz 250 MB wolnego miejsca i uruchom urządzenie ponownie."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> jest uruchomiona"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Kliknij, aby uzyskać więcej informacji lub zatrzymać aplikację."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Edytuj w aplikacji %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Udostępnij przez"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Udostępnij przez %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Wybierz aplikację ekranu głównego"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Wybierz aplikację ekranu głównego"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Użyj %1$s jako ekranu głównego"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Domyślne dla tej czynności"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Użyj innej aplikacji"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Wyczyść wartości domyślne w: Ustawienia systemu > Aplikacje > Pobrane."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Nakładka nr <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", bezpieczny"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Rozpoczynam prezentowanie ekranu"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Łączę z <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Trwa prezentowanie ekranu"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Połączono z <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Rozłącz"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Połączenie alarmowe"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nie pamiętam wzoru"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nieprawidłowy wzór"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 1b76f03..a7f10ad 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Acções de texto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Está quase sem espaço de armazenamento"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Algumas funções do sistema poderão não funcionar"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Não existe armazenamento suficiente para o sistema. Certifique-se de que tem 250 MB de espaço livre e reinicie."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> em execução"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toque para obter mais informações ou para parar a aplicação."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editar com %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Partilhar com"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Partilhar com %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Selecionar uma aplicação de página inicial"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Selecione uma aplicação Página inicial"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utilizar %1$s como Página inicial"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Utilizar por predefinição para esta acção."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utilizar outra aplicação"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Limpar a predefinição nas Definições do Sistema > Aplicações > Transferidas."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Sobreposição #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", protegido"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"A transmitir o ecrã"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"A ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"A transmitir o ecrã"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Ligado a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desligar"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueceu-se da Sequência"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequência Incorreta"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 8bdad2d..77bba26 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -752,9 +752,9 @@
<string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"Monitorar quantas vezes a senha foi digitada incorretamente ao desbloquear a tela e bloquear o tablet ou apagar todos os dados do tablet se a senha for digitada incorretamente muitas vezes."</string>
<string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Monitorar quantas vezes a senha foi digitada incorretamente ao desbloquear a tela e bloquear o telefone ou apagar todos os dados do telefone se a senha for digitada incorretamente muitas vezes."</string>
<string name="policylab_resetPassword" msgid="2620077191242688955">"Alterar a senha para desbloqueio da tela"</string>
- <string name="policydesc_resetPassword" msgid="605963962301904458">"Altere a senha para desbloqueio da tela."</string>
+ <string name="policydesc_resetPassword" msgid="605963962301904458">"Alterar a senha para desbloqueio da tela."</string>
<string name="policylab_forceLock" msgid="2274085384704248431">"Bloquear a tela"</string>
- <string name="policydesc_forceLock" msgid="1141797588403827138">"Controle como e quando a tela é bloqueada."</string>
+ <string name="policydesc_forceLock" msgid="1141797588403827138">"Controlar como e quando a tela é bloqueada."</string>
<string name="policylab_wipeData" msgid="3910545446758639713">"Apagar todos os dados"</string>
<string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"Apague os dados do tablet sem aviso redefinindo a configuração original."</string>
<string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Apagar os dados do telefone sem aviso redefinindo a configuração original."</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Ações de texto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Pouco espaço de armazenamento"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Algumas funções do sistema podem não funcionar"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Não há armazenamento suficiente para o sistema. Certifique-se de ter 250 MB de espaço livre e reinicie."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> está em execução"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Toque para mais informações ou para parar o app."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editar com %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Compartilhar com"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Compartilhar com %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Selecione um app de tela inicial"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Selecione um app de Página inicial"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Usar %1$s como Página inicial"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Usar como padrão para esta ação."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Usar um app diferente"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Padrão claro em Configurações do sistema > Apps > Baixado."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Sobreposição nº <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", seguro"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Transmitindo a tela"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Conectando a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Transmitindo a tela"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Conectado a <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconectar"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueci o padrão"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrão incorreto"</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 48d4920..9b90e9a 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Acţiuni pentru text"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Spaţiul de stocare aproape ocupat"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Este posibil ca unele funcţii de sistem să nu funcţioneze"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Spațiu de stocare insuficient pentru sistem. Asigurați-vă că aveți 250 MB de spațiu liber și reporniți."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> rulează acum"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Atingeți pentru mai multe informații sau pentru a opri aplicația."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Editați cu %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Distribuiți cu"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Distribuiți cu %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Selectați o aplicație de pe ecranul de pornire"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Selectați o aplicație de pe ecranul de pornire"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Utilizați %1$s ca ecran de pornire"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Se utilizează în mod prestabilit pentru această acţiune."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Utilizați altă aplicație"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Ștergeţi setările prestabilite din Setări de sistem > Aplicaţii > Descărcate."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Suprapunerea <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", securizat"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Se proiectează ecranul"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Se conectează la <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Se proiectează ecranul"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Conectat la <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Deconectaţi-vă"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Apel de urgenţă"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Model uitat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greşit"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index b072385..29ede37 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Операции с текстом"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Недостаточно памяти"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Некоторые функции могут не работать"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Недостаточно свободного места для системы. Освободите не менее 250 МБ дискового пространства и перезапустите устройство."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" выполняется"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Нажмите, чтобы получить дополнительные данные или выключить приложение."</string>
<string name="ok" msgid="5970060430562524910">"ОК"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Редактировать с помощью приложения \"%1$s\""</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Поделиться с помощью приложения:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Предоставлять доступ с помощью приложения \"%1$s\""</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Выберите приложение"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Выберите главное приложение"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Назначьте приложение \"%1$s\" главным"</string>
<string name="alwaysUse" msgid="4583018368000610438">"По умолчанию для этого действия"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Другое приложение"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Удаляет настройки по умолчанию в меню \"Настройки > Приложения > Загруженные\"."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Наложение № <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> х <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> тчк/дюйм"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безопасный"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Подключение к удаленному дисплею"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Подключение к <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Удаленный дисплей подключен"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Подключено к <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Отключить"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Экстренный вызов"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забыли графический ключ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильный графический ключ"</string>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index 98a4e39..30a7f99 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -176,7 +176,7 @@
<string name="global_actions" product="tablet" msgid="408477140088053665">"ටැබ්ලට් විකල්ප"</string>
<string name="global_actions" product="default" msgid="2406416831541615258">"දුරකථන විකල්ප"</string>
<string name="global_action_lock" msgid="2844945191792119712">"තිර අගුල"</string>
- <string name="global_action_power_off" msgid="4471879440839879722">"බලය අක්රිය කරන්න"</string>
+ <string name="global_action_power_off" msgid="4471879440839879722">"බලය අක්රිය කරමින්"</string>
<string name="global_action_bug_report" msgid="7934010578922304799">"දෝෂ වර්තාව"</string>
<string name="bugreport_title" msgid="2667494803742548533">"දෝෂ වාර්තාවක් ගන්න"</string>
<string name="bugreport_message" msgid="398447048750350456">"ඊ-තැපැල් පණිවිඩයක් ලෙස යැවීමට මෙය ඔබගේ වත්මන් උපාංග තත්වය ගැන තොරතුරු එකතු කරනු ඇත. දෝෂ වාර්තාව ආරම්භ කර එය යැවීමට සූදානම් කරන තෙක් එයට කිසියම් කාලයක් ගතවනු ඇත; කරුණාකර ඉවසන්න."</string>
@@ -1185,6 +1185,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"පෙළ ක්රියාවන්"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"ආචයනය ඉඩ ප්රමාණය අඩු වී ඇත"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"සමහර පද්ධති කාර්යයන් ක්රියා නොකරනු ඇත"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"පද්ධතිය සඳහා ප්රමාණවත් ඉඩ නොමැත. ඔබට 250MB නිදහස් ඉඩක් තිබෙන ඔබට තිබෙන බව සහතික කරගෙන නැවත උත්සාහ කරන්න."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ධාවනය වේ"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"වැඩිපුර තොරතුරු හෝ යෙදුම නැවතීම සඳහා ස්පර්ශ කරන්න."</string>
<string name="ok" msgid="5970060430562524910">"හරි"</string>
@@ -1203,7 +1204,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s සමඟ සංස්කරණය කරන්න"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"සමඟ බෙදාගන්න"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%s සමඟ බෙදාගන්න"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"මුල්පිටු යෙදුමක් තෝරන්න"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"මුල් පිටු යෙදුම තෝරන්න"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"මුල් පිටු යෙදුම ලෙස %1$s න් භාවිතා කරන්න"</string>
<string name="alwaysUse" msgid="4583018368000610438">"මෙම ක්රියාව සඳහා සුපුරුද්දෙන් භාවිත කරන්න."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"වෙනත් යෙදුමක් භාවිතා කරන්න"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"පද්ධති සැකසීම් > යෙදුම් > බාගැනීම් තුළ ඇති සුපුරුද්ද හිස් කරන්න."</string>
@@ -1594,11 +1596,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"උඩැතිරිය #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ආරක්ෂිත"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"යොමුකරන තිරය"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> වෙත සම්බන්ධ වෙමින්"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"යොමුකරන තිරය"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> වෙත සම්බන්ධ වුණි"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"විසන්ධි කරන්න"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"හදිසි ඇමතුම"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"රටාව අමතකයි"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"වැරදි රටාවකි"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 1bfa108..9233d55 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -866,14 +866,14 @@
<string name="relationTypeAssistant" msgid="6274334825195379076">"Asistent"</string>
<string name="relationTypeBrother" msgid="8757913506784067713">"Brat"</string>
<string name="relationTypeChild" msgid="1890746277276881626">"Dieťa"</string>
- <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Domáci partner"</string>
+ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Druh(-žka)"</string>
<string name="relationTypeFather" msgid="5228034687082050725">"Otec"</string>
<string name="relationTypeFriend" msgid="7313106762483391262">"Priateľ"</string>
<string name="relationTypeManager" msgid="6365677861610137895">"Manažér"</string>
<string name="relationTypeMother" msgid="4578571352962758304">"Matka"</string>
<string name="relationTypeParent" msgid="4755635567562925226">"Rodič"</string>
<string name="relationTypePartner" msgid="7266490285120262781">"Partner(ka)"</string>
- <string name="relationTypeReferredBy" msgid="101573059844135524">"Referencie od"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Odporúča"</string>
<string name="relationTypeRelative" msgid="1799819930085610271">"Príbuzný(-á)"</string>
<string name="relationTypeSister" msgid="1735983554479076481">"Sestra"</string>
<string name="relationTypeSpouse" msgid="394136939428698117">"Manžel(ka)"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Operácie s textom"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Nedostatok ukladacieho priestoru"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Niektoré systémové funkcie nemusia fungovať"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"V úložisku nie je dostatok voľného miesta pre systém. Zaistite, aby ste mali 250 MB voľného miesta a zariadenie reštartujte."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g> je spustená"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Dotykom si zobrazíte viac informácií alebo zastavíte aplikáciu."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Upraviť v aplikácii %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Zdieľať v aplikácii"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Zdieľať v aplikácii %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Vyberte domovskú aplikáciu"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Výber aplikácie na plochu"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Ako plochu používať aplikáciu %1$s"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Použiť ako predvolené nastavenie pre túto akciu."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Použiť inú aplikáciu"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Vymazať predvolené nastavenia v sekcii Nastavenia systému > Aplikácie > Stiahnuté položky."</string>
@@ -1247,7 +1249,7 @@
<string name="volume_music_hint_silent_ringtone_selected" msgid="8310739960973156272">"Je nastavený tichý tón zvonenia"</string>
<string name="volume_call" msgid="3941680041282788711">"Hlasitosť hovoru"</string>
<string name="volume_bluetooth_call" msgid="2002891926351151534">"Hlasitosť prichádzajúcich hovorov pri pripojení Bluetooth"</string>
- <string name="volume_alarm" msgid="1985191616042689100">"Hlasitosť budíka"</string>
+ <string name="volume_alarm" msgid="1985191616042689100">"Hlasitosť budíkov"</string>
<string name="volume_notification" msgid="2422265656744276715">"Hlasitosť upozornení"</string>
<string name="volume_unknown" msgid="1400219669770445902">"Hlasitosť"</string>
<string name="volume_icon_description_bluetooth" msgid="6538894177255964340">"Hlasitosť zariadenia Bluetooth"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrytie č. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Nahrávanie obrazovky na prehratie"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Prebieha pripájanie k obrazovke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Nahrávanie obrazovky na prehratie"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Pripojené k obrazovke <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Odpojiť"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Tiesňové volanie"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nepamätám si vzor"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávny vzor"</string>
@@ -1775,14 +1772,14 @@
<string name="lock_to_app_unlock_pin" msgid="2552556656504331634">"Pred uvoľnením požiadať o číslo PIN"</string>
<string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"Pred uvoľnením požiadať o bezpečnostný vzor"</string>
<string name="lock_to_app_unlock_password" msgid="6380979775916974414">"Pred uvoľnením požiadať o heslo"</string>
- <string name="battery_saver_description" msgid="2510530476513605742">"Šetrič batérie znižuje výkonnosť vášho zariadenia a obmedzuje vibrácie a prenos údajov na pozadí, aby tak predĺžil výdrž batérie. E-mail, správy a ďalšie aplikácie, ktorú používajú synchronizáciu, sa nemusia aktualizovať, dokiaľ ich neotvoríte.\n\nPri nabíjaní zariadenia sa šetrič batérie automaticky vypne."</string>
+ <string name="battery_saver_description" msgid="2510530476513605742">"Na predĺženie výdrže batérie šetrič batérie znižuje výkonnosť zariadenia a obmedzuje vibrácie a prenos údajov na pozadí. E-mail, správy a ďalšie aplikácie, ktoré používajú synchronizáciu, sa možno nebudú aktualizovať, dokiaľ ich neotvoríte.\n\nPri nabíjaní zariadenia sa šetrič batérie automaticky vypne."</string>
<string name="downtime_condition_summary" msgid="8761776337475705749">"Dokým o <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> neskončí výpadok"</string>
<plurals name="zen_mode_duration_minutes">
<item quantity="one" msgid="9040808414992812341">"Na jednu minútu"</item>
<item quantity="other" msgid="6924190729213550991">"Na %d min"</item>
</plurals>
<plurals name="zen_mode_duration_hours">
- <item quantity="one" msgid="3480040795582254384">"Na jednu hodinu"</item>
+ <item quantity="one" msgid="3480040795582254384">"Na 1 h"</item>
<item quantity="other" msgid="5408537517529822157">"Na %d h"</item>
</plurals>
<string name="zen_mode_forever" msgid="4316804956488785559">"Natrvalo"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index e5daa75..4ed1221 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Besedilna dejanja"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Prostor za shranjevanje bo pošel"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Nekatere sistemske funkcije morda ne delujejo"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"V shrambi ni dovolj prostora za sistem. Sprostite 250 MB prostora in znova zaženite napravo."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> se izvaja"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Dotaknite se, če želite izvedeti več ali ustaviti aplikacijo."</string>
<string name="ok" msgid="5970060430562524910">"V redu"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Urejanje z aplikacijo %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Skupna raba z aplikacijo"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Skupna raba z aplikacijo %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Izberite aplikacijo za začetno stran"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Izbira aplikacije na začetnem zaslonu"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Uporaba aplikacije %1$s na začetnem zaslonu"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Privzeta uporaba za to dejanje."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Uporaba druge aplikacije"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Izbrišite privzeti program v sistemskih nastavitvah > Programi > Preneseno."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrivanje #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> pik na palec"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", varen"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Predvajanje zaslona"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Povezovanje z zaslonom <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Predvajanje zaslona"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Vzpostavljena povezava z zaslonom <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Prekini povezavo"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Klic v sili"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pozabljen vzorec"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Napačen vzorec"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index f0edc61..a8e2390 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Радње у вези са текстом"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Простор за складиштење је на измаку"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Неке системске функције можда не функционишу"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Нема довољно складишног простора за систем. Уверите се да имате 250 MB слободног простора и поново покрените."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Апликација <xliff:g id="APP_NAME">%1$s</xliff:g> је покренута"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Додирните за више информација или заустављање апликације."</string>
<string name="ok" msgid="5970060430562524910">"Потврди"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Измените помоћу апликације %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Делите помоћу"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Делите помоћу апликације %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Изаберите апликацију за почетну страницу"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Изаберите апликацију за почетну страницу"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Користите %1$s за почетну"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Подразумевано користи за ову радњу."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Користите другу апликацију"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Обришите подразумевано подешавање у менију Подешавања система > Апликације > Преузето."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Постављени елемент бр. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>×<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безбедно"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Пребацивање екрана"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Повезивање са <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Пребацивање екрана"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Повезано је са <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Прекини везу"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Хитни позив"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборављени шаблон"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешан шаблон"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index ce3b5ec..139699a 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Textåtgärder"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Lagringsutrymmet börjar ta slut"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Det kan hända att vissa systemfunktioner inte fungerar"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Det finns inte tillräckligt med utrymme för systemet. Kontrollera att du har ett lagringsutrymme på minst 250 MB och starta om."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> körs"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Tryck om du vill veta mer eller stoppa appen."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Redigera med %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Dela med"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Dela med %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Välj en app på startskärmen"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Välj en startsidesapp"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Använd %1$s som startsida"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Använd som standard för denna åtgärd."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Använd en annan app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Rensa standardinställningar i Systeminställningar > Appar > Hämtat."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Överlagring #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", säker"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Överför skärmen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Ansluter till <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Överför skärmen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Ansluten till <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Koppla från"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Nödsamtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glömt ditt grafiska lösenord?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Fel grafiskt lösenord"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index d2cee98..e0701d3 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Vitendo vya maandishi"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Nafasi ya kuhafadhi inakwisha"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Baadhi ya vipengee vya mfumo huenda visifanye kazi"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Hifadhi haitoshi kwa ajili ya mfumo. Hakikisha una MB 250 za nafasi ya hifadhi isiyotumika na uanzishe upya."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> inatumiwa"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Gusa ili upate maelezo zaidi au usitishe programu."</string>
<string name="ok" msgid="5970060430562524910">"Sawa"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Badilisha kwa %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Shiriki na"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Shiriki na %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Chagua programu ya nyumbani"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Chagua programu ya Mwanzo"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Tumia %1$s kama programu ya Mwanzo"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Tumia kama chaguo-msingi la kitendo hiki."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Tumia programu tofauti"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Futa chaguo-msingi katika mipangilio ya Mfumo > Apps > iliyopakuliwa."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Uwekeleaji #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", salama"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Inatuma skrini"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Inaunganishwa na <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Inatuma skrini"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Imeungwanishwa na <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Tenganisha"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Simu ya dharura"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Umesahau Ruwaza"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Mchoro Usio sahihi"</string>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index f2ab08a..f8009910 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"உரை நடவடிக்கைகள்"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"சேமிப்பிடம் குறைகிறது"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"சில அமைப்பு செயல்பாடுகள் வேலை செய்யாமல் போகலாம்"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"முறைமையில் போதுமான சேமிப்பகம் இல்லை. 250மெ.பை. அளவு காலி இடவசதி இருப்பதை உறுதிசெய்து மீண்டும் தொடங்கவும்."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> இயக்குகிறது"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"மேலும் தகவலுக்கு அல்லது பயன்பாட்டை நிறுத்துவதற்கு, தொடவும்."</string>
<string name="ok" msgid="5970060430562524910">"சரி"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s மூலம் திருத்து"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"இதன் மூலம் பகிர்"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s மூலம் பகிர்"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"முகப்பு பயன்பாட்டைத் தேர்ந்தெடுக்கவும்"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"முகப்புப் பயன்பாட்டைத் தேர்வுசெய்க"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$sஐ முகப்பாகப் பயன்படுத்து"</string>
<string name="alwaysUse" msgid="4583018368000610438">"இந்தச் செயலுக்கு இயல்பாகப் பயன்படுத்து."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"வேறு பயன்பாட்டைப் பயன்படுத்தவும்"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"முறைமை அமைப்பு > பயன்பாடுகள் > பதிவிறக்கியவை என்பதில் உள்ள இயல்பை அழிக்கவும்."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"மேலோட்ட #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", பாதுகாப்பானது"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"திரையை அனுப்புகிறது"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> உடன் இணைக்கிறது"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"திரையை அனுப்புதல்"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> உடன் இணைக்கப்பட்டது"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"துண்டி"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"அவசரகால அழைப்பு"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"வடிவத்தை மறந்துவிட்டீர்களா"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"தவறான வடிவம்"</string>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index 70b17bd..b9c3bbd 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"వచనానికి సంబంధించిన చర్యలు"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"నిల్వ ఖాళీ అయిపోతోంది"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"కొన్ని సిస్టమ్ కార్యాచరణలు పని చేయకపోవచ్చు"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"సిస్టమ్ కోసం తగినంత నిల్వ లేదు. మీకు 250MB ఖాళీ స్థలం ఉందని నిర్ధారించుకుని, పునఃప్రారంభించండి."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> అమలులో ఉంది"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"మరింత సమాచారం కోసం లేదా అనువర్తనాన్ని ఆపివేయడం కోసం తాకండి."</string>
<string name="ok" msgid="5970060430562524910">"సరే"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$sతో సవరించు"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"దీనితో భాగస్వామ్యం చేయి"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$sతో భాగస్వామ్యం చేయి"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"హోమ్ అనువర్తనాన్ని ఎంచుకోండి"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"హోమ్ అనువర్తనాన్ని ఎంచుకోండి"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$sని హోమ్గా ఉపయోగించండి"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ఈ చర్యకు డిఫాల్ట్గా ఉపయోగించండి."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"వేరొక అనువర్తనాన్ని ఉపయోగించండి"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"సిస్టమ్ సెట్టింగ్లు > అనువర్తనాలు > డౌన్లోడ్ చేయబడినవిలో డిఫాల్ట్ను క్లియర్ చేయి."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"అతివ్యాప్తి #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", సురక్షితం"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"స్క్రీన్ను ప్రసారం చేస్తోంది"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g>కు కనెక్ట్ చేస్తోంది"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"స్క్రీన్ను ప్రసారం చేస్తోంది"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g>కు కనెక్ట్ చేయబడింది"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"డిస్కనెక్ట్ చేయి"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"అత్యవసర కాల్"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"నమూనాను మర్చిపోయాను"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"నమూనా తప్పు"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 60c697a..abc0953 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"การทำงานของข้อความ"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"พื้นที่จัดเก็บเหลือน้อย"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"บางฟังก์ชันระบบอาจไม่ทำงาน"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"พื้นที่เก็บข้อมูลไม่เพียงพอสำหรับระบบ โปรดตรวจสอบว่าคุณมีพื้นที่ว่าง 250 MB แล้วรีสตาร์ท"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> กำลังทำงาน"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"แตะเพื่อดูข้อมูลเพิ่มเติมหรือเพื่อหยุดแอป"</string>
<string name="ok" msgid="5970060430562524910">"ตกลง"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"แก้ไขด้วย %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"แชร์กับ"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"แชร์กับ %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"เลือกแอปหน้าแรก"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"เลือกแอปหน้าแรก"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"ใช้ %1$s เป็นหน้าแรก"</string>
<string name="alwaysUse" msgid="4583018368000610438">"ใช้ค่าเริ่มต้นสำหรับการทำงานนี้"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"ใช้แอปอื่น"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"ล้างค่าเริ่มต้นในการตั้งค่าระบบ > แอปพลิเคชัน > ดาวน์โหลด"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"การวางซ้อน #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ปลอดภัย"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"กำลังส่งหน้าจอ"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"กำลังเชื่อมต่อไปยัง <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"กำลังส่งหน้าจอ"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"เชื่อมต่อกับ <xliff:g id="NAME">%1$s</xliff:g> แล้ว"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"หยุดเชื่อมต่อ"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"หมายเลขฉุกเฉิน"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ลืมรูปแบบใช่หรือไม่"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"รูปแบบไม่ถูกต้อง"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 868d29d..f1083c5 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Pagkilos ng teksto"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Nauubusan na ang puwang ng storage"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Maaaring hindi gumana nang tama ang ilang paggana ng system"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Walang sapat na storage para sa system. Tiyaking mayroon kang 250MB na libreng espasyo at i-restart."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"Tumatakbo ang <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Pindutin para sa higit pang impormasyon o upang ihinto ang app."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"I-edit gamit ang %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Ibahagi gamit ang"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Ibahagi gamit ang %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Pumili ng home app"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Pumili ng app sa Home"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Gamitin ang %1$s bilang Home"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Gamitin bilang default para sa pagkilos na ito."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Gumamit ng ibang app"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"I-clear ang default sa mga setting ng System > Apps > Na-download."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Kina-cast ang screen"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Kumokonekta sa <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Kina-cast ang screen"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Nakakonekta sa <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Alisin sa pagkakakonekta"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency na tawag"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nakalimutan ang Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Maling Pattern"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 1ef185f..a81aaab 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Metin eylemleri"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Depolama alanı bitiyor"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Bazı sistem işlevleri çalışmayabilir"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Sistem için yeterli depolama alanı yok. 250 MB boş alanınızın bulunduğundan emin olun ve yeniden başlatın."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> çalışıyor"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Daha fazla bilgi edinmek için veya uygulamayı durdurmak için dokunun."</string>
<string name="ok" msgid="5970060430562524910">"Tamam"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ile düzenle"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Şununla paylaş:"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s ile paylaş"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Ana ekran uygulaması seçin"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Ana Ekran uygulaması seçin"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Ana Ekran olarak %1$s uygulamasını kullanın"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Varsayılan olarak bu işlem için kullan."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Farklı bir uygulama kullan"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Sistem ayarları > Uygulamalar > İndirilen bölümünden varsayılanı temizleyin."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yer Paylaşımı No. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", güvenli"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Ekran yayınlanıyor"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> bağlantısı yapılıyor"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Ekran yayınlanıyor"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> bağlantısı yapıldı"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Bağlantıyı kes"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Acil durum çağrısı"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Deseni Unuttunuz mu?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Desen"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index b610d98..ac0c184 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -823,7 +823,7 @@
<string name="phoneTypeCar" msgid="8738360689616716982">"Авто"</string>
<string name="phoneTypeCompanyMain" msgid="540434356461478916">"Гол. тел. комп."</string>
<string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
- <string name="phoneTypeMain" msgid="6766137010628326916">"Осн."</string>
+ <string name="phoneTypeMain" msgid="6766137010628326916">"Основний"</string>
<string name="phoneTypeOtherFax" msgid="8587657145072446565">"Інший факс"</string>
<string name="phoneTypeRadio" msgid="4093738079908667513">"Радіо"</string>
<string name="phoneTypeTelex" msgid="3367879952476250512">"Телекс"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Дії з текстом"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Закінчується пам’ять"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Деякі системні функції можуть не працювати"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Недостатньо місця для системи. Переконайтесь, що на пристрої є 250 Мб вільного місця, і повторіть спробу."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> працює"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Торкніться, щоб дізнатися більше або зупинити програму."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Редагувати за допомогою %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Надіслати через"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Надіслати через %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Виберіть програму"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Вибрати головний додаток"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Зробити додаток %1$s головним"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Використ. за умовч. для цієї дії."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Використовувати інший додаток"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Очистити налаштування за умовчанням у меню Налаштування системи > Програми > Завантажені."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Накладання №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>х<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безпечний"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Транслювання екрана"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> – під’єднання"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Транслювання екрана"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> – під’єднано"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Від’єднати"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Екстрений виклик"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Не пам’ятаю ключ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильний ключ"</string>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 2f17e75..e919891 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"متن کی کارروائیاں"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"اسٹوریج کی جگہ ختم ہو رہی ہے"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"ممکن ہے سسٹم کے کچھ فنکشنز کام نہ کریں"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"سسٹم کیلئے کافی اسٹوریج نہیں ہے۔ اس بات کو یقینی بنائیں کہ آپ کے پاس 250MB خالی جگہ ہے اور دوبارہ شروع کریں۔"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> چل رہا ہے"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"مزید معلومات کیلئے یا ایپ کو روکنے کیلئے ٹچ کریں۔"</string>
<string name="ok" msgid="5970060430562524910">"ٹھیک ہے"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s کے ساتھ ترمیم کریں"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"اس کے ساتھ اشتراک کریں"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s کے ساتھ اشتراک کریں"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"ایک ہوم ایپ منتخب کریں"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"ایک Home ایپ منتخب کریں"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s کو Home کے بطور استعمال کریں"</string>
<string name="alwaysUse" msgid="4583018368000610438">"اس کارروائی کیلئے بطور ڈیفالٹ استعمال کریں۔"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"ایک مختلف ایپ استعمال کریں"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"سسٹم ترتیبات > ایپس > ڈاؤن لوڈ کردہ میں ڈیفالٹ صاف کریں۔"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"اوور لے #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"، محفوظ"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"اسکرین کاسٹ کرنا"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g> سے مربوط ہو رہا ہے"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"اسکرین کاسٹ کرنا"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g> سے مربوط ہو گیا"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"منقطع کریں"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"ہنگامی کال"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"پیٹرن بھول گئے"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"غلط پیٹرن"</string>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index a8b55d0..69a3076 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Matn yozish"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Xotirada bo‘sh joy tugamoqda"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Ba‘zi tizim funksiyalari ishlamasligi mumkin"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Tizim uchun xotirada joy yetarli emas. Avval 250 megabayt joy bo‘shatib, keyin qurilmani o‘chirib yoqing."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ishlamoqda"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Ilova dasturni to‘xtatish yoki tafsilotlar uchun bosing."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"“%1$s” yordamida tahrirlash"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Ulashish…"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"“%1$s” orqali ulashish"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Uy dasturini tanlang"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Bosh ilovani tanlash"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"%1$s: Bosh ilova sifatida foydalanish"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Ushbu amaldan standart sifatida foydalanish"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Boshqa ilovadan foydalanish"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Birlamchi sozlamalarni Tizim sozlamalari > Ilovalar > Yuklab olingan menyusidan tozalang."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Tasvir uzatish #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", xavfsiz"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Ekran tasvirini uzatish"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"<xliff:g id="NAME">%1$s</xliff:g>ga ulanmoqda"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Ekran tasvirini uzatish"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"<xliff:g id="NAME">%1$s</xliff:g>ga ulandi"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Aloqani uzish"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Favqulodda qo‘ng‘iroq"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Chizmali parol unutilgan"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Xato chizma paroli"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 5ce45d5..ce9f14d 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Tác vụ văn bản"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Sắp hết dung lượng lưu trữ"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Một số chức năng hệ thống có thể không hoạt động"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Không đủ bộ nhớ cho hệ thống. Đảm bảo bạn có 250 MB dung lượng trống và khởi động lại."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> đang chạy"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Chạm để xem thêm thông tin hoặc dừng ứng dụng."</string>
<string name="ok" msgid="5970060430562524910">"OK"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Chỉnh sửa bằng %1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Chia sẻ với"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Chia sẻ với %1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Chọn ứng dụng gia đình"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Chọn ứng dụng Home"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Sử dụng %1$s làm Home"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Sử dụng theo mặc định đối với tác vụ này."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Sử dụng một ứng dụng khác"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Xóa mặc định trong Cài đặt hệ thống > Ứng dụng > Đã tải xuống."</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Lớp phủ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", an toàn"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Truyền màn hình"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Đang kết nối với <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Truyền màn hình"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Đã kết nối với <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Ngắt kết nối"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Cuộc gọi khẩn cấp"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Đã quên hình"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Hình sai"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index ac17cc7..bde6973 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -74,7 +74,7 @@
<string name="ColrMmi" msgid="4996540314421889589">"连接的线路ID限制"</string>
<string name="CfMmi" msgid="5123218989141573515">"来电转接"</string>
<string name="CwMmi" msgid="9129678056795016867">"来电等待"</string>
- <string name="BaMmi" msgid="455193067926770581">"呼叫限制"</string>
+ <string name="BaMmi" msgid="455193067926770581">"通话限制"</string>
<string name="PwdMmi" msgid="7043715687905254199">"密码更改"</string>
<string name="PinMmi" msgid="3113117780361190304">"PIN码更改"</string>
<string name="CnipMmi" msgid="3110534680557857162">"显示号码"</string>
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"文字操作"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"存储空间不足"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"某些系统功能可能无法正常使用"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"系统存储空间不足。请确保您有250MB的可用空间,然后重新启动。"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”正在运行"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"触摸即可了解详情或停止应用。"</string>
<string name="ok" msgid="5970060430562524910">"确定"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"使用%1$s编辑"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"分享方式"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"使用%1$s分享"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"选择主屏幕应用"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"选择主屏幕应用"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"将“%1$s”设为主屏幕应用"</string>
<string name="alwaysUse" msgid="4583018368000610438">"设为默认选项。"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"使用其他应用"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"在“系统设置”>“应用”>“已下载”中清除默认设置。"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"叠加视图 #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">",安全"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"正在投射屏幕"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"正在连接到“<xliff:g id="NAME">%1$s</xliff:g>”"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"正在投射屏幕"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"已连接到“<xliff:g id="NAME">%1$s</xliff:g>”"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"断开连接"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"紧急呼救"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘记了图案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"图案错误"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index ca0e1b9..69e53b0 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"文字操作"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"儲存空間即將用盡"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"部分系統功能可能無法運作"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"系統儲存空間不足。請確認裝置有 250 MB 的可用空間,然後重新啟動。"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」執行中"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"輕觸即可瞭解詳情或停止應用程式。"</string>
<string name="ok" msgid="5970060430562524910">"確定"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"使用 %1$s 編輯"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"分享對象"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"與 %1$s 分享"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"選取主畫面應用程式"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"選取主螢幕應用程式"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"使用「%1$s」作為主螢幕"</string>
<string name="alwaysUse" msgid="4583018368000610438">"設定用於執行這項操作。"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"使用不同的應用程式"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"前往 [系統設定] > [應用程式] > [已下載] 清除預設值。"</string>
@@ -1424,8 +1426,8 @@
<string name="deny" msgid="2081879885755434506">"拒絕"</string>
<string name="permission_request_notification_title" msgid="6486759795926237907">"已要求權限"</string>
<string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">"<xliff:g id="ACCOUNT">%s</xliff:g> 帳戶的\n權限要求。"</string>
- <string name="forward_intent_to_owner" msgid="1207197447013960896">"您目前並未透過工作設定檔使用這個應用程式"</string>
- <string name="forward_intent_to_work" msgid="621480743856004612">"您目前透過工作設定檔使用這個應用程式"</string>
+ <string name="forward_intent_to_owner" msgid="1207197447013960896">"您目前並未透過公司檔案使用這個應用程式"</string>
+ <string name="forward_intent_to_work" msgid="621480743856004612">"您目前透過公司檔案使用這個應用程式"</string>
<string name="input_method_binding_label" msgid="1283557179944992649">"輸入法"</string>
<string name="sync_binding_label" msgid="3687969138375092423">"同步處理"</string>
<string name="accessibility_binding_label" msgid="4148120742096474641">"協助工具"</string>
@@ -1567,7 +1569,7 @@
<string name="SetupCallDefault" msgid="5834948469253758575">"接聽電話嗎?"</string>
<string name="activity_resolver_use_always" msgid="8017770747801494933">"一律採用"</string>
<string name="activity_resolver_use_once" msgid="2404644797149173758">"只此一次"</string>
- <string name="activity_resolver_work_profiles_support" msgid="185598180676883455">"%1$s 不支援工作設定檔"</string>
+ <string name="activity_resolver_work_profiles_support" msgid="185598180676883455">"%1$s 不支援公司檔案"</string>
<string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"平板電腦"</string>
<string name="default_audio_route_name" product="default" msgid="4239291273420140123">"手機"</string>
<string name="default_audio_route_name_headphones" msgid="8119971843803439110">"耳機"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"重疊效果 #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"(安全)"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"正在此放送螢幕"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"正在連線到「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"正在此放送螢幕"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"已連線到「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"中斷連線"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"緊急電話"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖案錯誤"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 8baa781..b5cd8cf 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"文字動作"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"儲存空間即將用盡"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"部分系統功能可能無法運作"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"系統儲存空間不足。請確定您已釋出 250MB 的可用空間,然後重新啟動。"</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」目前正在執行"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"輕觸即可瞭解詳情或停止應用程式。"</string>
<string name="ok" msgid="5970060430562524910">"確定"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"使用 %1$s 編輯"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"選擇分享工具"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"透過 %1$s 分享"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"選取主螢幕應用程式"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"選取主螢幕應用程式"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"使用「%1$s」做為主螢幕"</string>
<string name="alwaysUse" msgid="4583018368000610438">"設為預設應用程式。"</string>
<string name="use_a_different_app" msgid="8134926230585710243">"使用其他應用程式"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"前往 [系統設定] > [應用程式] > [下載] 清除預設值。"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"第 <xliff:g id="ID">%1$d</xliff:g> 個重疊效果"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"(安全)"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"正在投放螢幕"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"正在連線至「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"正在投放螢幕"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"已連線至「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"中斷連線"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"緊急電話"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖形"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖形錯誤"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 0d2484f..ff4cacf 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1183,6 +1183,7 @@
<string name="editTextMenuTitle" msgid="4909135564941815494">"Izenzo zombhalo"</string>
<string name="low_internal_storage_view_title" msgid="5576272496365684834">"Isikhala sokulondoloza siyaphela"</string>
<string name="low_internal_storage_view_text" msgid="6640505817617414371">"Eminye imisebenzi yohlelo ingahle ingasebenzi"</string>
+ <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"Akusona isitoreji esanele sesistimu. Qiniseka ukuthi unesikhala esikhululekile esingu-250MB uphinde uqalise kabusha."</string>
<string name="app_running_notification_title" msgid="8718335121060787914">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> iyasebenza"</string>
<string name="app_running_notification_text" msgid="4653586947747330058">"Thinta ukuthola ulwazi oluningi noma ukumisa uhlelo lokusebenza."</string>
<string name="ok" msgid="5970060430562524910">"KULUNGILE"</string>
@@ -1201,7 +1202,8 @@
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"Hlela nge-%1$s"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"Yabelana no-"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"Yabelana no-%1$s"</string>
- <string name="whichHomeApplication" msgid="4616420172727326782">"Khetha uhlelo lokusebenza lwasekhaya"</string>
+ <string name="whichHomeApplication" msgid="4307587691506919691">"Khetha uhlelo lokusebenza lasekhaya"</string>
+ <string name="whichHomeApplicationNamed" msgid="4493438593214760979">"Sebenzisa i-%1$s njengekhaya"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Sebenzisa ngokuzenzakalelayo kulesenzo."</string>
<string name="use_a_different_app" msgid="8134926230585710243">"Sebenzisa uhlelo lokusebenza oluhlukile"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Susa izilungiselelo zesistimu; Izinhlelo zokusebenza & Okulandiwe"</string>
@@ -1592,11 +1594,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Isendlalelo #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", kuphephile"</string>
- <string name="wifi_display_notification_connecting_title" msgid="2838646471050359706">"Isikrini sokulingisa"</string>
- <string name="wifi_display_notification_connecting_message" msgid="5837350993752841389">"Ixhuma ku-<xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_connected_title" msgid="8567308065912676285">"Isikrini sokulingisa"</string>
- <string name="wifi_display_notification_connected_message" msgid="2587209325701109715">"Kuxhunywe ku-<xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Nqamula"</string>
<string name="kg_emergency_call_label" msgid="684946192523830531">"Ucingo lwezimo eziphuthumayo"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ukhohlwe iphethini?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Iphatheni engalungile"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 8ea1814..251652e 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -110,6 +110,11 @@
<!-- Dim inverse text color. This does not differentiate the disabled state. -->
<attr name="textColorSecondaryInverseNoDisable" format="reference|color" />
+ <!-- Bright text color for use over activated backgrounds. -->
+ <attr name="textColorPrimaryActivated" format="reference|color" />
+ <!-- Dim text color for use over activated backgrounds. -->
+ <attr name="textColorSecondaryActivated" format="reference|color" />
+
<!-- Text color for urls in search suggestions, used by things like global search and the browser. @hide -->
<attr name="textColorSearchUrl" format="reference|color" />
@@ -5365,11 +5370,11 @@
<attr name="drawable" />
</declare-styleable>
- <!-- Defines the target path or group used in the AnimatedVectorDrawable. -->
+ <!-- Defines the target used in the AnimatedVectorDrawable. -->
<declare-styleable name="AnimatedVectorDrawableTarget">
- <!-- The name of this target path or group -->
+ <!-- The name of the target path, group or vector drawable -->
<attr name="name" />
- <!-- The animation for this target path or group -->
+ <!-- The animation for the target path, group or vector drawable -->
<attr name="animation" />
</declare-styleable>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index bd9e2f6..4be9370 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1636,6 +1636,7 @@
<bool name="config_stkNoAlphaUsrCnf">true</bool>
<!-- Don't use roaming icon for considered operators.
+ A match on config_sameNamedOperatorConsideredRoaming supersedes a match on this.
Can use mcc or mcc+mnc as item. For example, 302 or 21407.
If operators, 21404 and 21407, make roaming agreements, user of 21404 should not see
the roaming icon as using 21407 network.
@@ -1650,10 +1651,12 @@
<!-- For some operators, PDU has garbages. To fix it, need to use valid index -->
<integer name="config_valid_wappush_index">-1</integer>
- <!-- Show roaming icon though same named operators.
+ <!-- This is NOT just for same named operators unlike the name suggests (will blacklist regardless of name).
+ A match on this supersedes a match on config_operatorConsideredNonRoaming.
Uses "startsWith" so you can use a leading substring like the mcc or
use the complete mcc+mnc string.
- Though same mcc and same operator name, some operator want to roam.
+ For a given mcc/mcc-mnc, some operators may want to roam (even if
+ config_operatorConsideredNonRoaming has the mcc/mcc-mnc).
user of 40485 should see the roaming icon as using 40483 network
though same Reliance network.
To do this, add 40483 item to values-mcc404-mnc85/config.xml -->
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 7a2bbc1..26d3133 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -380,7 +380,7 @@
<dimen name="datepicker_month_day_label_text_size">12sp</dimen>
<dimen name="datepicker_month_list_item_header_height">48dp</dimen>
<dimen name="datepicker_day_number_select_circle_radius">16dp</dimen>
- <dimen name="datepicker_view_animator_height">250dp</dimen>
+ <dimen name="datepicker_view_animator_height">244dp</dimen>
<dimen name="datepicker_year_picker_padding_top">8dp</dimen>
<dimen name="datepicker_year_label_height">64dp</dimen>
@@ -412,7 +412,7 @@
<dimen name="light_y">-200dp</dimen>
<dimen name="light_z">800dp</dimen>
<dimen name="light_radius">800dp</dimen>
- <item type="dimen" format="float" name="ambient_shadow_alpha">0.047</item>
- <item type="dimen" format="float" name="spot_shadow_alpha">0.098</item>
+ <item type="dimen" format="float" name="ambient_shadow_alpha">0.075</item>
+ <item type="dimen" format="float" name="spot_shadow_alpha">0.15</item>
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 9fc7801..4aabc84 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3388,6 +3388,8 @@
<string name="low_internal_storage_view_title">Storage space running out</string>
<!-- If the device is getting low on internal storage, a notification is shown to the user. This is the message of that notification. -->
<string name="low_internal_storage_view_text">Some system functions may not work</string>
+ <!-- If the device does not have storage for the main system classes, a notification is shown to the user. This is the message of that notification. -->
+ <string name="low_internal_storage_view_text_no_boot">Not enough storage for the system. Make sure you have 250MB of free space and restart.</string>
<!-- [CHAR LIMIT=NONE] Stub notification title for an app running a service that has provided
a bad bad notification for itself. -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index f2b7d7b..081f8ae 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1696,6 +1696,7 @@
<java-symbol type="string" name="launch_warning_replace" />
<java-symbol type="string" name="launch_warning_title" />
<java-symbol type="string" name="low_internal_storage_view_text" />
+ <java-symbol type="string" name="low_internal_storage_view_text_no_boot" />
<java-symbol type="string" name="low_internal_storage_view_title" />
<java-symbol type="string" name="notification_listener_binding_label" />
<java-symbol type="string" name="condition_provider_service_binding_label" />
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 7a9e1d5..d983440 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -74,6 +74,8 @@
<item name="textColorPrimaryInverse">@color/primary_text_light</item>
<item name="textColorSecondaryInverse">@color/secondary_text_light</item>
<item name="textColorTertiaryInverse">@color/tertiary_text_light</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_dark</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_dark_disable_only</item>
<item name="textColorPrimaryInverseDisableOnly">@color/primary_text_light_disable_only</item>
<item name="textColorPrimaryNoDisable">@color/primary_text_dark_nodisable</item>
@@ -478,6 +480,8 @@
<item name="textColorPrimaryInverse">@color/primary_text_dark</item>
<item name="textColorSecondaryInverse">@color/secondary_text_dark</item>
<item name="textColorTertiaryInverse">@color/tertiary_text_dark</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_light</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_light</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_light_disable_only</item>
<item name="textColorPrimaryInverseDisableOnly">@color/primary_text_dark_disable_only</item>
<item name="textColorPrimaryNoDisable">@color/primary_text_light_nodisable</item>
diff --git a/core/res/res/values/themes_holo.xml b/core/res/res/values/themes_holo.xml
index 9c1d0f3..c30b3d5 100644
--- a/core/res/res/values/themes_holo.xml
+++ b/core/res/res/values/themes_holo.xml
@@ -93,6 +93,8 @@
<item name="textColorPrimaryInverse">@color/primary_text_holo_light</item>
<item name="textColorSecondaryInverse">@color/secondary_text_holo_light</item>
<item name="textColorTertiaryInverse">@color/tertiary_text_holo_light</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_holo_dark</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_holo_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_holo_dark</item>
<item name="textColorPrimaryInverseDisableOnly">@color/primary_text_disable_only_holo_light</item>
<item name="textColorPrimaryNoDisable">@color/primary_text_nodisable_holo_dark</item>
@@ -429,6 +431,8 @@
<item name="textColorPrimaryInverse">@color/primary_text_holo_dark</item>
<item name="textColorSecondaryInverse">@color/secondary_text_holo_dark</item>
<item name="textColorTertiaryInverse">@color/tertiary_text_holo_dark</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_holo_light</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_holo_light</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_holo_light</item>
<item name="textColorPrimaryInverseDisableOnly">@color/primary_text_disable_only_holo_dark</item>
<item name="textColorPrimaryNoDisable">@color/primary_text_nodisable_holo_light</item>
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index 6420153..b51974e 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -55,9 +55,11 @@
<item name="textColorPrimary">@color/primary_text_material_dark</item>
<item name="textColorPrimaryInverse">@color/primary_text_material_light</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_activated_material_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_material_dark</item>
<item name="textColorSecondary">@color/secondary_text_material_dark</item>
<item name="textColorSecondaryInverse">@color/secondary_text_material_light</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_activated_material_dark</item>
<item name="textColorTertiary">@color/secondary_text_material_dark</item>
<item name="textColorTertiaryInverse">@color/secondary_text_material_light</item>
<item name="textColorHint">@color/hint_foreground_material_dark</item>
@@ -402,8 +404,10 @@
<item name="textColorPrimary">@color/primary_text_material_light</item>
<item name="textColorPrimaryInverse">@color/primary_text_material_dark</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_activated_material_light</item>
<item name="textColorSecondary">@color/secondary_text_material_light</item>
<item name="textColorSecondaryInverse">@color/secondary_text_material_dark</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_activated_material_light</item>
<item name="textColorTertiary">@color/secondary_text_material_light</item>
<item name="textColorTertiaryInverse">@color/secondary_text_material_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_material_light</item>
@@ -757,8 +761,10 @@
<item name="textColorPrimary">@color/primary_text_material_light</item>
<item name="textColorPrimaryInverse">@color/primary_text_material_dark</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_activated_material_light</item>
<item name="textColorSecondary">@color/secondary_text_material_light</item>
<item name="textColorSecondaryInverse">@color/secondary_text_material_dark</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_activated_material_light</item>
<item name="textColorTertiary">@color/secondary_text_material_light</item>
<item name="textColorTertiaryInverse">@color/secondary_text_material_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_material_light</item>
@@ -794,9 +800,11 @@
<item name="textColorPrimary">@color/primary_text_material_dark</item>
<item name="textColorPrimaryInverse">@color/primary_text_material_light</item>
+ <item name="textColorPrimaryActivated">@color/primary_text_activated_material_dark</item>
<item name="textColorPrimaryDisableOnly">@color/primary_text_disable_only_material_dark</item>
<item name="textColorSecondary">@color/secondary_text_material_dark</item>
<item name="textColorSecondaryInverse">@color/secondary_text_material_light</item>
+ <item name="textColorSecondaryActivated">@color/secondary_text_activated_material_dark</item>
<item name="textColorTertiary">@color/secondary_text_material_dark</item>
<item name="textColorTertiaryInverse">@color/secondary_text_material_light</item>
<item name="textColorHint">@color/hint_foreground_material_dark</item>
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 91f5896..d3869b8 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -113,6 +113,12 @@
<group gid="loop_radio" />
</permission>
+ <!-- Hotword training apps sometimes need a GID to talk with low-level
+ hardware; give them audio for now until full HAL support is added. -->
+ <permission name="android.permission.MANAGE_VOICE_KEYPHRASES">
+ <group gid="audio" />
+ </permission>
+
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- ================================================================== -->
diff --git a/docs/html/google/gcm/ccs.jd b/docs/html/google/gcm/ccs.jd
index 1c7c802..2faf97f 100644
--- a/docs/html/google/gcm/ccs.jd
+++ b/docs/html/google/gcm/ccs.jd
@@ -81,10 +81,14 @@
<p>The CCS XMPP endpoint runs at {@code gcm.googleapis.com:5235}. When testing
functionality (with non-production users), you should instead connect to
-{@code gcm-staging.googleapis.com:5236} (note the different port). Testing on
-staging (a smaller environment where the latest CCS builds run) is beneficial
-both for isolating real users from test code, as well as for early detection of
-unexpected behavior changes.</p>
+{@code gcm-preprod.googleapis.com:5236} (note the different port). Regular
+testing on preprod (a smaller environment where the latest CCS builds run) is
+beneficial both for isolating real users from test code, as well as for early
+detection of unexpected behavior changes. Note that a connection receives upstream
+messages destined for its GCM sender ID, regardless of which environment (gcm or
+gcm-preprod) it is connected to. Therefore, test code connecting to
+{@code gcm-preprod.googleapis.com:5236} should use a different GCM sender ID to
+avoid upstream messages from production traffic being sent over test connections.</p>
<p>The connection has two important requirements:</p>
diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
index 12f8c9a..1c20d78 100644
--- a/docs/html/google/play/billing/billing_overview.jd
+++ b/docs/html/google/play/billing/billing_overview.jd
@@ -7,11 +7,11 @@
<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 goods, including one-time items and
recurring subscriptions.</li>
- <li>Supported for any app published on Google Play. You only need a Google
+ <li>Supported for any app published on Google Play. You only need a Google
Play Developer Console account and a Google Wallet merchant account.</li>
- <li>Checkout processing is automatically handled by Google Play, with the
+ <li>Checkout processing is automatically handled by Google Play, with the
same look-and-feel as for app purchases.</li>
</ul>
<h2>In this document</h2>
@@ -24,18 +24,18 @@
</li>
<li><a href="#console">Google Play Developer Console</a></li>
<li><a href="#checkout">Google Play Purchase Flow</a></li>
- <li><a href="#samples">Sample App</a></li>
+ <li><a href="#samples">Sample App</a></li>
<li><a href="#migration">Migration Considerations</a></li>
</ol>
<h2>Related Samples</h2>
<ol>
<li><a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">Sample Application (V3)</a></li>
- </ol>
+ </ol>
</div>
</div>
-<p>This documentation describes the fundamental In-app Billing components and
-features that you need to understand in order to add In-app
+<p>This documentation 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
@@ -49,130 +49,132 @@
</p>
<h2 id="api">In-app Billing API</h2>
-<p>Your application accesses the In-app Billing service using an API that is
-exposed by the Google Play app that is installed on the device. The Google Play
-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
-communication (IPC) and receives responses from the Google Play app.
-Your application does not manage any network connections between itself and
+<p>Your application accesses the In-app Billing service using an API that is
+exposed by the Google Play app that is installed on the device. The Google Play
+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
+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
-through Google Play. To complete in-app purchase requests, the Google Play app
+<p>In-app Billing can be implemented 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
-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
+<p>In-app billing Version 3 is the latest version, and 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 href="{@docRoot}about/dashboards/index.html">a vast majority</a> of active devices).</p>
<h4>Version 3 features</h4>
<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
+<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
+<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
+<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
+<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>
</ul>
-<p>For details about other versions of In-app Billing, see the
+<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,
-application feature upgrades that enhance the user experience, and new content
+<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,
+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
+<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>
-<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
+<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>
<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
+<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
+<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>
<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
+<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
+<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>
-<p>You can also create test accounts to authorize
+<p>You can also create test accounts to authorize
access for testing applications that are unpublished.</p>
-<p>To learn how to use the Developer Console to configure your in-app
-products and product list, see
-<a href="{@docRoot}google/play/billing/billing_admin.html">Administering
+<p>To learn how to use the Developer Console to configure your in-app
+products and product list, see
+<a href="{@docRoot}google/play/billing/billing_admin.html">Administering
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 checkout backend service as 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 Wallet
merchant account to use the In-app Billing service on Google Play.</p>
-<p>To initiate a purchase, your application sends a billing request for a
-specific in-app product. Google Play then handles all of the checkout details for
-the transaction, including requesting and validating the form of payment and
-processing the financial transaction.</p>
-<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
+<p>To initiate a purchase, your application sends a billing request for a
+specific in-app product. Google Play then handles all of the checkout details for
+the transaction, including requesting and validating the form of payment and
+processing the financial transaction.</p>
+<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>
<h2 id="samples">Sample Application</h2>
-<p>To help you integrate In-app Billing into your application, the Android SDK
-provides a sample application that demonstrates how to sell in-app products and subscriptions
+<p>To help you integrate In-app Billing into your application, the Android SDK
+provides a sample application that demonstrates how to sell in-app products and subscriptions
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 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
-synchronous responses from Google Play. The application also shows how to record
-item consumption with the API. The Version 3 sample includes convenience classes
-for processing In-app Billing operations as well as perform automatic signature
+<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 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
+synchronous responses from Google Play. The application also shows how to record
+item 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>: Make 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
+<a href="{@docRoot}google/play/billing/billing_best_practices.html">Security
and Design</a>.</p>
<h2 id="migration">Migration Considerations</h2>
-<p>If you have an existing In-app Billing implementation that uses Version 2 or
-earlier, it is strongly recommended that you migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version 3</a> at your earliest convenience.</p>
+<p>The In-app Billing Version 2 API is deprecated and will be 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>
<p>If you have published apps selling in-app products, note that:</p>
<ul>
-<li>Managed items and subscriptions that you have previously defined in the Developer Console will
+<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. They will still continue to be treated as unmanaged items if you make a
-purchase request for them using the Version 2 or earlier API.
+<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. They will still continue to be treated as unmanaged items if you make a
+purchase request for them using the Version 2 or earlier API.
</ul>
diff --git a/docs/html/guide/topics/resources/drawable-resource.jd b/docs/html/guide/topics/resources/drawable-resource.jd
index dee28fe..06bd2d0 100644
--- a/docs/html/guide/topics/resources/drawable-resource.jd
+++ b/docs/html/guide/topics/resources/drawable-resource.jd
@@ -67,7 +67,7 @@
<h2 id="Bitmap">Bitmap</h2>
-<p>A bitmap image. Android supports bitmap files in a three formats:
+<p>A bitmap image. Android supports bitmap files in three formats:
{@code .png} (preferred), {@code .jpg} (acceptable), {@code .gif} (discouraged).</p>
<p>You can reference a bitmap file directly, using the filename as the resource ID, or create an
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 2bbdfc8c..9ed70ed 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -246,11 +246,9 @@
<p>The Android SDK provides you the API libraries and developer tools necessary to build, test,
and debug apps for Android.</p>
-<p>If you're a new Android developer, we recommend you download the ADT Bundle
-to quickly start developing apps. It includes the essential
-Android SDK components and a version of the Eclipse IDE with built-in
-<b>ADT (Android Developer Tools)</b> to
-streamline your Android app development.</p>
+<p>Download the ADT Bundle to quickly start developing apps. It includes the essential Android
+SDK components and a version of the Eclipse IDE with built-in <b>ADT (Android Developer Tools)</b>
+to streamline your Android app development.</p>
<!-- this appears when viewing the online docs -->
diff --git a/docs/html/sdk/installing/index.jd b/docs/html/sdk/installing/index.jd
index 304b53d..ec0e2f8 100644
--- a/docs/html/sdk/installing/index.jd
+++ b/docs/html/sdk/installing/index.jd
@@ -112,7 +112,7 @@
your JDK folder, for example <code>C:\Program Files\Java\jdk1.7.0_21</code>.</p>
</p>
</li>
-
+
</ol>
@@ -260,10 +260,10 @@
<h5 id="Troubleshooting" style="margin-bottom:15px"><a href='' class="expandable"
- onclick="toggleExpandable(this,'#ubuntu-trouble');return false;"
+ onclick="toggleExpandable(this,'#UbuntuTrouble');return false;"
>Troubleshooting Ubuntu</a></h5>
-<div id="ubuntu-trouble" style="display:none">
+<div id="UbuntuTrouble" style="display:none">
<ul>
<li>If you need help installing and configuring Java on your
development machine, you might find these resources helpful:
@@ -416,6 +416,9 @@
}
}
-
-
+/* direct link to ubuntu troubleshooting */
+if ( document.location.href.indexOf('#UbuntuTrouble') > -1 ) {
+ $(".linux.docs").show();
+ toggleExpandable(this,'#UbuntuTrouble');
+}
</script>
diff --git a/docs/html/sdk/installing/installing-adt.jd b/docs/html/sdk/installing/installing-adt.jd
index 5a433d4..c8200aa 100644
--- a/docs/html/sdk/installing/installing-adt.jd
+++ b/docs/html/sdk/installing/installing-adt.jd
@@ -1,8 +1,8 @@
page.title=Installing the Eclipse Plugin
-adt.zip.version=23.0.3
-adt.zip.download=ADT-23.0.3.zip
-adt.zip.bytes=103321934
-adt.zip.checksum=ab2f5e2fbbdddeeb7dfd02cd4046538a
+adt.zip.version=23.0.4
+adt.zip.download=ADT-23.0.4.zip
+adt.zip.bytes=103336810
+adt.zip.checksum=91a43dcf686ab73dec2c08b77243492b
@jd:body
diff --git a/docs/html/sdk/installing/studio-build.jd b/docs/html/sdk/installing/studio-build.jd
index 29ba12d..bff3bc0 100644
--- a/docs/html/sdk/installing/studio-build.jd
+++ b/docs/html/sdk/installing/studio-build.jd
@@ -454,8 +454,8 @@
for debugging purposes.</p>
<p>After you build the project, the output APK for the app module is located in
-<code>app/build/apk/</code>, and the output AAR for the lib module is located in
-<code>lib/build/libs/</code>.</p>
+<code>app/build/outputs/apk/</code>, and the output AAR for the lib module is located in
+<code>lib/build/outputs/libs/</code>.</p>
<p>To see a list of all available build tasks for your project, type this command:</p>
diff --git a/docs/html/tools/sdk/eclipse-adt.jd b/docs/html/tools/sdk/eclipse-adt.jd
index cf33200..469d11f 100644
--- a/docs/html/tools/sdk/eclipse-adt.jd
+++ b/docs/html/tools/sdk/eclipse-adt.jd
@@ -53,9 +53,44 @@
<p>For a summary of all known issues in ADT, see <a
href="http://tools.android.com/knownissues">http://tools.android.com/knownissues</a>.</p>
+
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt=""/>ADT 23.0.4</a> <em>(October 2014)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+<dl>
+ <dt>Dependencies:</dt>
+
+ <dd>
+ <ul>
+ <li>Java 7 or higher is required if you are targeting the L Developer Preview.</li>
+ <li>Java 1.6 or higher is required if you are targeting other releases.</li>
+ <li>Eclipse Indigo (Version 3.7.2) or higher is required.</li>
+ <li>This version of ADT is designed for use with
+ <a href="{@docRoot}tools/sdk/tools-notes.html">SDK Tools r23.0.4</a>.
+ If you haven't already installed SDK Tools r23.0.4 into your SDK, use the
+ Android SDK Manager to do so.</li>
+ </ul>
+ </dd>
+
+ <dt>General Notes:</dt>
+ <dd>
+ <ul>
+ <li>Fixed duplicate devices in AVD for Wear and TV.</li>
+ </ul>
+ </dd>
+</dl>
+</div>
+</div>
+
+
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
alt=""/>ADT 23.0.3</a> <em>(August 2014)</em>
</p>
diff --git a/docs/html/training/basics/fragments/fragment-ui.jd b/docs/html/training/basics/fragments/fragment-ui.jd
index 14469bf..4fa5b70 100644
--- a/docs/html/training/basics/fragments/fragment-ui.jd
+++ b/docs/html/training/basics/fragments/fragment-ui.jd
@@ -66,9 +66,9 @@
initial fragment(s) to the activity during the activity's
{@link android.app.Activity#onCreate onCreate()} method.</p>
-<p>An important rule when dealing with fragments—especially those that you add at
-runtime—is that the fragment must have a container {@link android.view.View} in the layout in
-which the fragment's layout will reside.</p>
+<p>An important rule when dealing with fragments—especially when adding fragments at
+runtime—is that your activity layout must include a container {@link android.view.View}
+in which you can insert the fragment.</p>
<p>The following layout is an alternative to the layout shown in the <a
href="creating.html">previous lesson</a> that shows only one fragment at a time. In order to replace
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index 4c8b4f1..9fb3fb4 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -257,7 +257,7 @@
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
- final TypedArray a = r.obtainAttributes(attrs, R.styleable.AnimatedRotateDrawable);
+ final TypedArray a = obtainAttributes(r, theme, attrs, R.styleable.AnimatedRotateDrawable);
super.inflateWithAttributes(r, parser, a, R.styleable.AnimatedRotateDrawable_visible);
diff --git a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
index d78138bc..cb09bbf 100644
--- a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
@@ -357,7 +357,8 @@
public void inflate(@NonNull Resources r, @NonNull XmlPullParser parser,
@NonNull AttributeSet attrs, @Nullable Theme theme)
throws XmlPullParserException, IOException {
- final TypedArray a = r.obtainAttributes(attrs, R.styleable.AnimatedStateListDrawable);
+ final TypedArray a = obtainAttributes(
+ r, theme, attrs, R.styleable.AnimatedStateListDrawable);
super.inflateWithAttributes(r, parser, a, R.styleable.AnimatedStateListDrawable_visible);
diff --git a/graphics/java/android/graphics/drawable/AnimationDrawable.java b/graphics/java/android/graphics/drawable/AnimationDrawable.java
index d87e8e4..9a9fd82 100644
--- a/graphics/java/android/graphics/drawable/AnimationDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimationDrawable.java
@@ -272,7 +272,7 @@
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
- TypedArray a = r.obtainAttributes(attrs,
+ TypedArray a = obtainAttributes(r, theme, attrs,
com.android.internal.R.styleable.AnimationDrawable);
super.inflateWithAttributes(r, parser, a,
@@ -300,7 +300,8 @@
continue;
}
- a = r.obtainAttributes(attrs, com.android.internal.R.styleable.AnimationDrawableItem);
+ a = obtainAttributes(
+ r, theme, attrs, com.android.internal.R.styleable.AnimationDrawableItem);
int duration = a.getInt(
com.android.internal.R.styleable.AnimationDrawableItem_duration, -1);
if (duration < 0) {
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index 61ef81b..40711cf 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -81,7 +81,8 @@
int type;
- TypedArray a = r.obtainAttributes(attrs, com.android.internal.R.styleable.ClipDrawable);
+ TypedArray a = obtainAttributes(
+ r, theme, attrs, com.android.internal.R.styleable.ClipDrawable);
int orientation = a.getInt(
com.android.internal.R.styleable.ClipDrawable_clipOrientation,
diff --git a/graphics/java/android/graphics/drawable/ColorDrawable.java b/graphics/java/android/graphics/drawable/ColorDrawable.java
index 33225ce..0608065 100644
--- a/graphics/java/android/graphics/drawable/ColorDrawable.java
+++ b/graphics/java/android/graphics/drawable/ColorDrawable.java
@@ -16,6 +16,7 @@
package android.graphics.drawable;
+import android.annotation.NonNull;
import android.graphics.*;
import android.graphics.PorterDuff.Mode;
import android.content.res.ColorStateList;
@@ -211,6 +212,12 @@
}
@Override
+ public void getOutline(@NonNull Outline outline) {
+ outline.setRect(getBounds());
+ outline.setAlpha(getAlpha() / 255.0f);
+ }
+
+ @Override
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
super.inflate(r, parser, attrs, theme);
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index 43a9eaa..9ae788c 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -895,7 +895,7 @@
*/
public void getOutline(@NonNull Outline outline) {
outline.setRect(getBounds());
- outline.setAlpha(getAlpha() / 255.0f);
+ outline.setAlpha(0);
}
/**
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index 0b052f4..4a719fe 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -177,11 +177,10 @@
@Override
public void setTintList(ColorStateList tint) {
- mDrawableContainerState.mHasTint = tint != null
- && mDrawableContainerState.mTintMode != null;
+ mDrawableContainerState.mHasTintList = true;
- if (mDrawableContainerState.mTint != tint) {
- mDrawableContainerState.mTint = tint;
+ if (mDrawableContainerState.mTintList != tint) {
+ mDrawableContainerState.mTintList = tint;
if (mCurrDrawable != null) {
mCurrDrawable.mutate().setTintList(tint);
@@ -191,8 +190,7 @@
@Override
public void setTintMode(Mode tintMode) {
- mDrawableContainerState.mHasTint = mDrawableContainerState.mTint != null
- && tintMode != null;
+ mDrawableContainerState.mHasTintMode = true;
if (mDrawableContainerState.mTintMode != tintMode) {
mDrawableContainerState.mTintMode = tintMode;
@@ -449,10 +447,15 @@
d.setAlpha(mAlpha);
}
if (mDrawableContainerState.mHasColorFilter) {
+ // Color filter always overrides tint.
d.setColorFilter(mDrawableContainerState.mColorFilter);
- } else if (mDrawableContainerState.mHasTint) {
- d.setTintList(mDrawableContainerState.mTint);
- d.setTintMode(mDrawableContainerState.mTintMode);
+ } else {
+ if (mDrawableContainerState.mHasTintList) {
+ d.setTintList(mDrawableContainerState.mTintList);
+ }
+ if (mDrawableContainerState.mHasTintMode) {
+ d.setTintMode(mDrawableContainerState.mTintMode);
+ }
}
d.setVisible(isVisible(), true);
d.setDither(mDrawableContainerState.mDither);
@@ -623,9 +626,10 @@
ColorFilter mColorFilter;
boolean mHasColorFilter;
- ColorStateList mTint;
+ ColorStateList mTintList;
Mode mTintMode;
- boolean mHasTint;
+ boolean mHasTintList;
+ boolean mHasTintMode;
DrawableContainerState(DrawableContainerState orig, DrawableContainer owner,
Resources res) {
@@ -649,9 +653,10 @@
mAutoMirrored = orig.mAutoMirrored;
mColorFilter = orig.mColorFilter;
mHasColorFilter = orig.mHasColorFilter;
- mTint = orig.mTint;
+ mTintList = orig.mTintList;
mTintMode = orig.mTintMode;
- mHasTint = orig.mHasTint;
+ mHasTintList = orig.mHasTintList;
+ mHasTintMode = orig.mHasTintMode;
// Cloning the following values may require creating futures.
mConstantPadding = orig.getConstantPadding();
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index 384226f..961d1607 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -84,7 +84,7 @@
@Override
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
- final TypedArray a = r.obtainAttributes(attrs, R.styleable.InsetDrawable);
+ final TypedArray a = obtainAttributes(r, theme, attrs, R.styleable.InsetDrawable);
super.inflateWithAttributes(r, parser, a, R.styleable.InsetDrawable_visible);
mInsetState.mDrawable = null;
diff --git a/graphics/java/android/graphics/drawable/LevelListDrawable.java b/graphics/java/android/graphics/drawable/LevelListDrawable.java
index 7271b0e..bc1c61d 100644
--- a/graphics/java/android/graphics/drawable/LevelListDrawable.java
+++ b/graphics/java/android/graphics/drawable/LevelListDrawable.java
@@ -105,7 +105,7 @@
continue;
}
- TypedArray a = r.obtainAttributes(attrs,
+ TypedArray a = obtainAttributes(r, theme, attrs,
com.android.internal.R.styleable.LevelListDrawableItem);
low = a.getInt(
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index 70482a6..55c9637 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -399,7 +399,7 @@
@Override
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
- final TypedArray a = r.obtainAttributes(attrs,
+ final TypedArray a = obtainAttributes(r, theme, attrs,
com.android.internal.R.styleable.RotateDrawable);
super.inflateWithAttributes(r, parser, a,
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index b40038a..b990249 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -93,7 +93,8 @@
int type;
- TypedArray a = r.obtainAttributes(attrs, com.android.internal.R.styleable.ScaleDrawable);
+ TypedArray a = obtainAttributes(
+ r, theme, attrs, com.android.internal.R.styleable.ScaleDrawable);
float sw = getPercent(a, com.android.internal.R.styleable.ScaleDrawable_scaleWidth);
float sh = getPercent(a, com.android.internal.R.styleable.ScaleDrawable_scaleHeight);
diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java
index 4c513e9..2eb8a80 100644
--- a/graphics/java/android/graphics/drawable/StateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/StateListDrawable.java
@@ -118,7 +118,7 @@
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
throws XmlPullParserException, IOException {
- final TypedArray a = r.obtainAttributes(attrs, R.styleable.StateListDrawable);
+ final TypedArray a = obtainAttributes(r, theme, attrs, R.styleable.StateListDrawable);
super.inflateWithAttributes(r, parser, a,
R.styleable.StateListDrawable_visible);
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index 8014837..4c83e55 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -57,6 +57,8 @@
* <dl>
* <dd>Used to defined a vector drawable
* <dl>
+ * <dt><code>android:name</code></dt>
+ * <dd>Defines the name of this vector drawable.</dd>
* <dt><code>android:width</code></dt>
* <dd>Used to defined the intrinsic width of the drawable.
* This support all the dimension units, normally specified with dp.</dd>
@@ -76,6 +78,8 @@
* <dt><code>android:autoMirrored</code></dt>
* <dd>Indicates if the drawable needs to be mirrored when its layout direction is
* RTL (right-to-left).</dd>
+ * <dt><code>android:alpha</code></dt>
+ * <dd>The opacity of this drawable.</dd>
* </dl></dd>
* </dl>
*
@@ -85,6 +89,8 @@
* The transformations are defined in the same coordinates as the viewport.
* And the transformations are applied in the order of scale, rotate then translate.
* <dl>
+ * <dt><code>android:name</code></dt>
+ * <dd>Defines the name of the group.</dd>
* <dt><code>android:rotation</code></dt>
* <dd>The degrees of rotation of the group.</dd>
* <dt><code>android:pivotX</code></dt>
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp
index 836de45..a6d7e78 100644
--- a/libs/hwui/DeferredLayerUpdater.cpp
+++ b/libs/hwui/DeferredLayerUpdater.cpp
@@ -18,38 +18,52 @@
#include "OpenGLRenderer.h"
#include "LayerRenderer.h"
+#include "renderthread/EglManager.h"
+#include "renderthread/RenderTask.h"
namespace android {
namespace uirenderer {
-static void defaultLayerDestroyer(Layer* layer) {
- Caches::getInstance().resourceCache.decrementRefcount(layer);
-}
+class DeleteLayerTask : public renderthread::RenderTask {
+public:
+ DeleteLayerTask(renderthread::EglManager& eglManager, Layer* layer)
+ : mEglManager(eglManager)
+ , mLayer(layer)
+ {}
-DeferredLayerUpdater::DeferredLayerUpdater(Layer* layer, LayerDestroyer destroyer)
+ virtual void run() {
+ mEglManager.requireGlContext();
+ LayerRenderer::destroyLayer(mLayer);
+ mLayer = 0;
+ delete this;
+ }
+
+private:
+ renderthread::EglManager& mEglManager;
+ Layer* mLayer;
+};
+
+DeferredLayerUpdater::DeferredLayerUpdater(renderthread::RenderThread& thread, Layer* layer)
: mSurfaceTexture(0)
, mTransform(0)
, mNeedsGLContextAttach(false)
, mUpdateTexImage(false)
, mLayer(layer)
, mCaches(Caches::getInstance())
- , mDestroyer(destroyer) {
+ , mRenderThread(thread) {
mWidth = mLayer->layer.getWidth();
mHeight = mLayer->layer.getHeight();
mBlend = mLayer->isBlend();
mColorFilter = SkSafeRef(mLayer->getColorFilter());
mAlpha = mLayer->getAlpha();
mMode = mLayer->getMode();
-
- if (!mDestroyer) {
- mDestroyer = defaultLayerDestroyer;
- }
}
DeferredLayerUpdater::~DeferredLayerUpdater() {
SkSafeUnref(mColorFilter);
setTransform(0);
- mDestroyer(mLayer);
+ mRenderThread.queue(new DeleteLayerTask(mRenderThread.eglManager(), mLayer));
+ mLayer = 0;
}
void DeferredLayerUpdater::setPaint(const SkPaint* paint) {
@@ -121,7 +135,12 @@
void DeferredLayerUpdater::detachSurfaceTexture() {
if (mSurfaceTexture.get()) {
- mSurfaceTexture->detachFromContext();
+ mRenderThread.eglManager().requireGlContext();
+ status_t err = mSurfaceTexture->detachFromContext();
+ if (err != 0) {
+ // TODO: Elevate to fatal exception
+ ALOGE("Failed to detach SurfaceTexture from context %d", err);
+ }
mSurfaceTexture = 0;
mLayer->clearTexture();
}
diff --git a/libs/hwui/DeferredLayerUpdater.h b/libs/hwui/DeferredLayerUpdater.h
index c838c32..dda3e89 100644
--- a/libs/hwui/DeferredLayerUpdater.h
+++ b/libs/hwui/DeferredLayerUpdater.h
@@ -25,19 +25,18 @@
#include "Layer.h"
#include "Rect.h"
#include "RenderNode.h"
+#include "renderthread/RenderThread.h"
namespace android {
namespace uirenderer {
-typedef void (*LayerDestroyer)(Layer* layer);
-
// Container to hold the properties a layer should be set to at the start
// of a render pass
class DeferredLayerUpdater : public VirtualLightRefBase {
public:
// Note that DeferredLayerUpdater assumes it is taking ownership of the layer
// and will not call incrementRef on it as a result.
- ANDROID_API DeferredLayerUpdater(Layer* layer, LayerDestroyer = 0);
+ ANDROID_API DeferredLayerUpdater(renderthread::RenderThread& thread, Layer* layer);
ANDROID_API ~DeferredLayerUpdater();
ANDROID_API bool setSize(uint32_t width, uint32_t height) {
@@ -99,8 +98,7 @@
Layer* mLayer;
Caches& mCaches;
-
- LayerDestroyer mDestroyer;
+ renderthread::RenderThread& mRenderThread;
void doUpdateTexImage();
};
diff --git a/libs/hwui/ShadowTessellator.cpp b/libs/hwui/ShadowTessellator.cpp
index 35cc7a4..c1ffa0a 100644
--- a/libs/hwui/ShadowTessellator.cpp
+++ b/libs/hwui/ShadowTessellator.cpp
@@ -37,7 +37,7 @@
// A bunch of parameters to tweak the shadow.
// TODO: Allow some of these changable by debug settings or APIs.
- float heightFactor = 1.0f / 86;
+ float heightFactor = 1.0f / 128;
const float geomFactor = 64;
Caches& caches = Caches::getInstance();
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 1c416a7..b50a433 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -344,11 +344,6 @@
task->run();
}
-Layer* CanvasContext::createRenderLayer(int width, int height) {
- requireSurface();
- return LayerRenderer::createRenderLayer(mRenderThread.renderState(), width, height);
-}
-
Layer* CanvasContext::createTextureLayer() {
requireSurface();
return LayerRenderer::createTextureLayer(mRenderThread.renderState());
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 2460f6b8..d4282fa 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -83,7 +83,6 @@
void runWithGlContext(RenderTask* task);
- Layer* createRenderLayer(int width, int height);
Layer* createTextureLayer();
ANDROID_API static void setTextureAtlas(RenderThread& thread,
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 9528874..047819d 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -257,31 +257,16 @@
RenderThread::getInstance().queue(task);
}
-CREATE_BRIDGE3(createDisplayListLayer, CanvasContext* context, int width, int height) {
- Layer* layer = args->context->createRenderLayer(args->width, args->height);
- if (!layer) return 0;
- return new DeferredLayerUpdater(layer, RenderProxy::enqueueDestroyLayer);
-}
-
-DeferredLayerUpdater* RenderProxy::createDisplayListLayer(int width, int height) {
- SETUP_TASK(createDisplayListLayer);
- args->width = width;
- args->height = height;
- args->context = mContext;
- void* retval = postAndWait(task);
- DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval);
- return layer;
-}
-
-CREATE_BRIDGE1(createTextureLayer, CanvasContext* context) {
+CREATE_BRIDGE2(createTextureLayer, RenderThread* thread, CanvasContext* context) {
Layer* layer = args->context->createTextureLayer();
if (!layer) return 0;
- return new DeferredLayerUpdater(layer, RenderProxy::enqueueDestroyLayer);
+ return new DeferredLayerUpdater(*args->thread, layer);
}
DeferredLayerUpdater* RenderProxy::createTextureLayer() {
SETUP_TASK(createTextureLayer);
args->context = mContext;
+ args->thread = &mRenderThread;
void* retval = postAndWait(task);
DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval);
return layer;
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 8b8d99c..678e7e2 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -80,7 +80,6 @@
ANDROID_API void runWithGlContext(RenderTask* task);
static void enqueueDestroyLayer(Layer* layer);
- ANDROID_API DeferredLayerUpdater* createDisplayListLayer(int width, int height);
ANDROID_API DeferredLayerUpdater* createTextureLayer();
ANDROID_API void buildLayer(RenderNode* node);
ANDROID_API bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap);
diff --git a/media/java/android/media/RemoteControlClient.java b/media/java/android/media/RemoteControlClient.java
index 3c2ad0e..0336f11 100644
--- a/media/java/android/media/RemoteControlClient.java
+++ b/media/java/android/media/RemoteControlClient.java
@@ -572,7 +572,8 @@
// USE_SESSIONS
if (mSession != null && mMetadataBuilder != null) {
- mSession.setMetadata(mMetadataBuilder.build());
+ mMediaMetadata = mMetadataBuilder.build();
+ mSession.setMetadata(mMediaMetadata);
}
mApplied = true;
}
diff --git a/media/java/android/media/tv/TvContentRating.java b/media/java/android/media/tv/TvContentRating.java
index b4ec2b3..c539290 100644
--- a/media/java/android/media/tv/TvContentRating.java
+++ b/media/java/android/media/tv/TvContentRating.java
@@ -155,14 +155,6 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td>AM_TV_RS</td>
- * <td>Range specific TV content rating system strings for Armenia</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS</td>
- * <td>Age specific TV content rating system strings for Armenia</td>
- * </tr>
- * <tr>
* <td>AR_TV</td>
* <td>TV content rating system for Argentina</td>
* </tr>
@@ -171,182 +163,37 @@
* <td>TV content rating system for Australia</td>
* </tr>
* <tr>
- * <td>BG_TV</td>
- * <td>TV content rating system for Bulgaria</td>
- * </tr>
- * <tr>
* <td>BR_TV</td>
* <td>TV content rating system for Brazil</td>
* </tr>
* <tr>
- * <td>CA_TV_CA</td>
- * <td>TV content rating system for Canada (Canadian)</td>
+ * <td>DVB</td>
+ * <td>DVB content rating system</td>
* </tr>
* <tr>
- * <td>CA_TV_QC</td>
- * <td>TV content rating system for Canada (Quebec)</td>
+ * <td>ES_DVB</td>
+ * <td>DVB content rating system for Spain</td>
* </tr>
* <tr>
- * <td>CH_TV</td>
- * <td>TV content rating system for Switzerland</td>
+ * <td>FR_DVB</td>
+ * <td>DVB content rating system for France</td>
* </tr>
* <tr>
- * <td>CL_TV</td>
- * <td>TV content rating system for Chile</td>
- * </tr>
- * <tr>
- * <td>DE_TV</td>
- * <td>TV content rating system for Germany</td>
- * </tr>
- * <tr>
- * <td>DK_TV</td>
- * <td>TV content rating system for Denmark</td>
- * </tr>
- * <tr>
- * <td>ES_TV</td>
- * <td>TV content rating system for Spain</td>
- * </tr>
- * <tr>
- * <td>FI_TV</td>
- * <td>TV content rating system for Finland</td>
- * </tr>
- * <tr>
- * <td>FR_TV</td>
- * <td>TV content rating system for France</td>
- * </tr>
- * <tr>
- * <td>GR_TV</td>
- * <td>TV content rating system for Greece</td>
- * </tr>
- * <tr>
- * <td>HK_TV</td>
- * <td>TV content rating system for Hong Kong</td>
- * </tr>
- * <tr>
- * <td>HU_TV</td>
- * <td>TV content rating system for Hungary</td>
- * </tr>
- * <tr>
- * <td>ID_TV</td>
- * <td>TV content rating system for Indonesia</td>
- * </tr>
- * <tr>
- * <td>IE_TV</td>
- * <td>TV content rating system for Ireland</td>
- * </tr>
- * <tr>
- * <td>IL_TV</td>
- * <td>TV content rating system for Israel</td>
- * </tr>
- * <tr>
- * <td>IN_TV</td>
- * <td>TV content rating system for India</td>
- * </tr>
- * <tr>
- * <td>IS_TV</td>
- * <td>TV content rating system for Iceland</td>
- * </tr>
- * <tr>
- * <td>JP_TV</td>
- * <td>TV content rating system for Japan</td>
+ * <td>ISDB</td>
+ * <td>ISDB content rating system</td>
* </tr>
* <tr>
* <td>KR_TV</td>
* <td>TV content rating system for South Korea</td>
* </tr>
* <tr>
- * <td>MV_TV</td>
- * <td>TV content rating system for Maldives</td>
- * </tr>
- * <tr>
- * <td>MX_TV</td>
- * <td>TV content rating system for Mexico</td>
- * </tr>
- * <tr>
- * <td>MY_TV</td>
- * <td>TV content rating system for Malaysia</td>
- * </tr>
- * <tr>
- * <td>NL_TV</td>
- * <td>TV content rating system for Netherlands</td>
- * </tr>
- * <tr>
- * <td>NZ_FTV</td>
- * <td>TV content rating system for free-to-air channels in New Zealand</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV</td>
- * <td>TV content rating system for Pay TV channels in New Zealand</td>
- * </tr>
- * <tr>
- * <td>PE_TV</td>
- * <td>TV content rating system for some Peruvian channels in Peru</td>
- * </tr>
- * <tr>
- * <td>PE_ATV</td>
- * <td>TV content rating system for America Television in Peru that uses its own rating
- * system</td>
- * </tr>
- * <tr>
- * <td>PH_TV</td>
- * <td>TV content rating system for Philippines</td>
- * </tr>
- * <tr>
- * <td>PL_TV</td>
- * <td>TV content rating system for Poland</td>
- * </tr>
- * <tr>
- * <td>PT_TV</td>
- * <td>TV content rating system for Portugal</td>
- * </tr>
- * <tr>
- * <td>RO_TV</td>
- * <td>TV content rating system for Romania</td>
- * </tr>
- * <tr>
- * <td>RU_TV</td>
- * <td>TV content rating system for Russia</td>
- * </tr>
- * <tr>
- * <td>RS_TV</td>
- * <td>TV content rating system for Serbia</td>
- * </tr>
- * <tr>
* <td>SG_TV</td>
* <td>TV content rating system for Singapore</td>
* </tr>
* <tr>
- * <td>SI_TV</td>
- * <td>TV content rating system for Slovenia</td>
- * </tr>
- * <tr>
- * <td>TH_TV</td>
- * <td>TV content rating system for Thailand</td>
- * </tr>
- * <tr>
- * <td>TR_TV</td>
- * <td>TV content rating system for Turkey</td>
- * </tr>
- * <tr>
- * <td>TW_TV</td>
- * <td>TV content rating system for Taiwan</td>
- * </tr>
- * <tr>
- * <td>UA_TV</td>
- * <td>TV content rating system for Ukraine</td>
- * </tr>
- * <tr>
* <td>US_TV</td>
* <td>TV content rating system for the United States</td>
* </tr>
- * <tr>
- * <td>VE_TV</td>
- * <td>TV content rating system for Venezuela</td>
- * </tr>
- * <tr>
- * <td>ZA_TV</td>
- * <td>TV content rating system for South Africa</td>
- * </tr>
* </table>
*
* <h4>System defined strings for ratings</h4>
@@ -357,137 +204,61 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td valign="top" rowspan="6">AM_TV_RS</td>
- * <td>AM_TV_RS_Y</td>
- * <td>Suitable for ages 2-11</td>
- * </tr>
- * <tr>
- * <td>AM_TV_RS_Y7</td>
- * <td>Suitable for ages 7-16</td>
- * </tr>
- * <tr>
- * <td>AM_TV_RS_GA</td>
- * <td>Suitable for general audiences</td>
- * </tr>
- * <tr>
- * <td>AM_TV_RS_TW</td>
- * <td>Suitable for teens ages 9 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_RS_T</td>
- * <td>Suitable for teens ages 12 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_RS_A</td>
- * <td>Suitable only for adults ages 18 and up</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="6">AM_TV_AS</td>
- * <td>AM_TV_AS_EC</td>
- * <td>Suitable for ages 2 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS_E</td>
- * <td>Suitable for ages 5 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS_E9</td>
- * <td>Suitable for ages 9 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS_T</td>
- * <td>Suitable for ages 12 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS_M</td>
- * <td>Suitable for ages 16 and up</td>
- * </tr>
- * <tr>
- * <td>AM_TV_AS_AO</td>
- * <td>Suitable for ages 17 and up</td>
- * </tr>
- * <tr>
* <td valign="top" rowspan="4">AR_TV</td>
- * <td>AR_TV_ALL</td>
+ * <td>AR_TV_ATP</td>
* <td>Suitable for all audiences. Programs may contain mild violence, language and mature
* situations</td>
* </tr>
* <tr>
- * <td>AR_TV_13</td>
+ * <td>AR_TV_SAM_13</td>
* <td>Suitable for ages 13 and up. Programs may contain mild to moderate language and mild
* violence and sexual references</td>
* </tr>
* <tr>
- * <td>AR_TV_16</td>
+ * <td>AR_TV_SAM_16</td>
* <td>Suitable for ages 16 and up. Programs may contain more intensive violence and coarse
* language, partial nudity and moderate sexual references</td>
* </tr>
* <tr>
- * <td>AR_TV_18</td>
+ * <td>AR_TV_SAM_18</td>
* <td>Suitable for mature audiences only. Programs contain strong violence, coarse language
* and explicit sexual references</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="7">AU_TV</td>
- * <td>AU_TV_CTC</td>
- * <td>This has advertising approval, but is not yet classified</td>
+ * <td valign="top" rowspan="8">AU_TV</td>
+ * <td>AU_TV_P</td>
+ * <td>Recommended for younger children aged between 2 and 11 years</td>
+ * </tr>
+ * <tr>
+ * <td>AU_TV_C</td>
+ * <td>Recommended for older children aged between 5 and 14 years</td>
* </tr>
* <tr>
* <td>AU_TV_G</td>
- * <td>The content is very mild in impact, and suitable for everyone</td>
+ * <td>Recommended for all ages</td>
* </tr>
* <tr>
* <td>AU_TV_PG</td>
- * <td>The content is mild in impact, but it may contain content that children find
- * confusing or upsetting and may require the guidance or parents and guardians</td>
+ * <td>Parental guidance is recommended for young viewers under 15</td>
* </tr>
* <tr>
* <td>AU_TV_M</td>
- * <td>The content is moderate in impact, and it is recommended for teenagers aged 15 years
- * and over</td>
+ * <td>Recommended for mature audiences aged 15 years and over</td>
* </tr>
* <tr>
- * <td>AU_TV_MA15</td>
- * <td>The content is strong in impact, and it is legally restricted to persons 15 years and
- * over</td>
+ * <td>AU_TV_MA</td>
+ * <td>Not suitable for children and teens under 15, due to sexual descriptions, course
+ * language, adult themes or drug use</td>
* </tr>
* <tr>
- * <td>AU_TV_R18</td>
- * <td>The content is high in impact, and it is restricted to adults</td>
+ * <td>AU_TV_AV</td>
+ * <td>Not suitable for children and teens under 15. This category is used specifically for
+ * violent programs</td>
* </tr>
* <tr>
- * <td>AU_TV_X18</td>
- * <td>The content is restricted to adults. This classification is a special and legally
- * restricted category which contains only sexually explicit content</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="5">BG_TV</td>
- * <td>BG_TV_A</td>
- * <td>Recommended to children. When the film confirms the ideals of humanism or popularizes
- * the national and world cultures or contributes to upbringing children</td>
- * </tr>
- * <tr>
- * <td>BG_TV_B</td>
- * <td>No restrictive recommendations from the Committee. When the film is in no way
- * contrary to the universal rules of morality in this country, has no restrictive
- * recommendations from the Committee and does not fall in rating A</td>
- * </tr>
- * <tr>
- * <td>BG_TV_C</td>
- * <td>No persons under the age of 12 are admitted unless accompanied by an adult. When the
- * film contains certain erotic scenes or scenes with drinking, taking drugs or stimulants
- * or a few scenes of violence</td>
- * </tr>
- * <tr>
- * <td>BG_TV_D</td>
- * <td>No persons under the age of 16 are admitted. When the film contains quite a number of
- * erotic scenes or scenes with drinking, taking drugs or stimulants or a considerable
- * number of scenes showing violence</td>
- * </tr>
- * <tr>
- * <td>BG_TV_X</td>
- * <td>No persons under the age of 18 are admitted. When the film is naturalistically erotic
- * or shows violence in an ostentatious manner</td>
+ * <td>AU_TV_R</td>
+ * <td>Not for children under 18. Content may include graphic violence, sexual situations,
+ * coarse language and explicit drug use</td>
* </tr>
* <tr>
* <td valign="top" rowspan="6">BR_TV</td>
@@ -515,422 +286,272 @@
* <td>Content suitable for viewers over the age of 18</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="7">CA_TV_CA</td>
- * <td>CA_TV_CA_EXEMPT</td>
- * <td>Exempt from ratings and won't display an on-screen rating</td>
+ * <td valign="top" rowspan="15">DVB</td>
+ * <td>DVB_4</td>
+ * <td>Recommended for ages 4 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_C</td>
- * <td>Suitable for children ages 2-7. May contain mild violence</td>
+ * <td>DVB_5</td>
+ * <td>Recommended for ages 5 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_C8</td>
- * <td>Suitable for children ages 8 and older. May contain mild violence, fantasy horror,
- * and socially offensive language</td>
+ * <td>DVB_6</td>
+ * <td>Recommended for ages 6 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_G</td>
- * <td>Suitable for the entire family and may contain mild violence, profanity, and censored
- * language</td>
+ * <td>DVB_7</td>
+ * <td>Recommended for ages 7 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_PG</td>
- * <td>May contain moderate violence, profanity, nudity, and sexual references</td>
+ * <td>DVB_8</td>
+ * <td>Recommended for ages 8 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_14</td>
- * <td>Intended for viewers ages 14 and older. May contain strong violence and profanity,
- * and depictions of sexual activity</td>
+ * <td>DVB_9</td>
+ * <td>Recommended for ages 9 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_CA_18</td>
- * <td>Intended for viewers ages 18 and older. May contain explicit violence and sexual
- * activity</td>
+ * <td>DVB_10</td>
+ * <td>Recommended for ages 10 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="6">CA_TV_QC</td>
- * <td>CA_TV_QC_E</td>
- * <td>Exempt from ratings and won't display an on-screen rating</td>
+ * <td>DVB_11</td>
+ * <td>Recommended for ages 11 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_QC_G</td>
- * <td>Appropriate for all ages and must contain little or no violence and little to no
- * sexual content</td>
+ * <td>DVB_12</td>
+ * <td>Recommended for ages 12 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_QC_8</td>
- * <td>Appropriate for children 8 and may contain with little violence, language, and little
- * to no sexual situations</td>
+ * <td>DVB_13</td>
+ * <td>Recommended for ages 13 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_QC_13</td>
- * <td>Suitable for children 13 and may contain with moderate violence, language, and some
- * sexual situations</td>
+ * <td>DVB_14</td>
+ * <td>Recommended for ages 14 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_QC_16</td>
- * <td>Recommended for children over the age of 16 and may contain with strong violence,
- * strong language, and strong sexual content</td>
+ * <td>DVB_15</td>
+ * <td>Recommended for ages 15 and over</td>
* </tr>
* <tr>
- * <td>CA_TV_QC_18</td>
- * <td>Only to be viewed by adults and may contain extreme violence and graphic sexual
- * content. It is mostly used for 18+ movies and pornography</td>
+ * <td>DVB_16</td>
+ * <td>Recommended for ages 16 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="2">CH_TV</td>
- * <td>CH_TV_ALL</td>
- * <td>This program is suitable for all ages</td>
+ * <td>DVB_17</td>
+ * <td>Recommended for ages 17 and over</td>
* </tr>
* <tr>
- * <td>CH_TV_RED</td>
- * <td>This program contains scenes that may hurt sensitive people, therefore the red symbol
- * will be displayed</td>
+ * <td>DVB_18</td>
+ * <td>Recommended for ages 18 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="7">CL_TV</td>
- * <td>CL_TV_I</td>
- * <td>Programs suitable for all children</td>
- * </tr>
- * <tr>
- * <td>CL_TV_I7</td>
- * <td>Programs recommended for children ages 7 or older</td>
- * </tr>
- * <tr>
- * <td>CL_TV_I10</td>
- * <td>Programs recommended for children ages 10 or older</td>
- * </tr>
- * <tr>
- * <td>CL_TV_I12</td>
- * <td>Programs recommended for children and teens ages 12 or older</td>
- * </tr>
- * <tr>
- * <td>CL_TV_F</td>
- * <td>Programs suitable for a general audience, with content appropriate for all ages</td>
- * </tr>
- * <tr>
- * <td>CL_TV_R</td>
- * <td>Programs may content not suitable for children not accompanied by an adult</td>
- * </tr>
- * <tr>
- * <td>CL_TV_A</td>
- * <td>Programs suitable for adult audiences only (ages 18 or older), may contain coarse
- * language, and sexual or explicit situations</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">DE_TV</td>
- * <td>DE_TV_ALL</td>
- * <td>The program is suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>DE_TV_12</td>
- * <td>The program is not suitable for viewers under the age of 12</td>
- * </tr>
- * <tr>
- * <td>DE_TV_16</td>
- * <td>The program is not suitable for viewers under the age of 16</td>
- * </tr>
- * <tr>
- * <td>DE_TV_18</td>
- * <td>The program is not suitable for viewers under the age of 18</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">DK_TV</td>
- * <td>DK_TV_G</td>
- * <td>programs suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>DK_TV_Y</td>
- * <td>programs suitable children accompanied by an adult</td>
- * </tr>
- * <tr>
- * <td>DK_TV_R</td>
- * <td>programs containing material with more intensive content</td>
- * </tr>
- * <tr>
- * <td>DK_TV_B</td>
- * <td>programs containing explicit content and strictly for adults only</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="7">ES_TV</td>
- * <td>ES_TV_TP</td>
+ * <td valign="top" rowspan="18">ES_DVB</td>
+ * <td>ES_DVB_ALL</td>
* <td>Recommended for all ages</td>
* </tr>
* <tr>
- * <td>ES_TV_I</td>
- * <td>Specially recommended for preschoolers and kids</td>
+ * <td>ES_DVB_C</td>
+ * <td>Recommended for children</td>
* </tr>
* <tr>
- * <td>ES_TV_7</td>
- * <td>Recommended for people older than 7 years old</td>
+ * <td>ES_DVB_X</td>
+ * <td>Recommended for adults</td>
* </tr>
* <tr>
- * <td>ES_TV_7I</td>
- * <td>Recommended for kids older than 7 years old</td>
+ * <td>ES_DVB_4</td>
+ * <td>Recommended for ages 4 and over</td>
* </tr>
* <tr>
- * <td>ES_TV_12</td>
- * <td>Recommended for people older than 12 years old</td>
+ * <td>ES_DVB_5</td>
+ * <td>Recommended for ages 5 and over</td>
* </tr>
* <tr>
- * <td>ES_TV_16</td>
- * <td>Recommended for people older than 16 years old</td>
+ * <td>ES_DVB_6</td>
+ * <td>Recommended for ages 6 and over</td>
* </tr>
* <tr>
- * <td>ES_TV_18</td>
- * <td>Recommended for people older than 18 years old</td>
+ * <td>ES_DVB_7</td>
+ * <td>Recommended for ages 7 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="5">FI_TV</td>
- * <td>FI_TV_S</td>
- * <td>Allowed at all times</td>
+ * <td>ES_DVB_8</td>
+ * <td>Recommended for ages 8 and over</td>
* </tr>
* <tr>
- * <td>FI_TV_K7</td>
- * <td>Not recommended for children under 7</td>
+ * <td>ES_DVB_9</td>
+ * <td>Recommended for ages 9 and over</td>
* </tr>
* <tr>
- * <td>FI_TV_K12</td>
- * <td>Not recommended for children under 12</td>
+ * <td>ES_DVB_10</td>
+ * <td>Recommended for ages 10 and over</td>
* </tr>
* <tr>
- * <td>FI_TV_K16</td>
- * <td>Not recommended for children under 16</td>
+ * <td>ES_DVB_11</td>
+ * <td>Recommended for ages 11 and over</td>
* </tr>
* <tr>
- * <td>FI_TV_K18</td>
- * <td>Not recommended for children under 18</td>
+ * <td>ES_DVB_12</td>
+ * <td>Recommended for ages 12 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="5">FR_TV</td>
- * <td>FR_TV_ALL</td>
- * <td>Appropriate for all ages</td>
+ * <td>ES_DVB_13</td>
+ * <td>Recommended for ages 13 and over</td>
* </tr>
* <tr>
- * <td>FR_TV_10</td>
- * <td>Not recommended for children under 10</td>
+ * <td>ES_DVB_14</td>
+ * <td>Recommended for ages 14 and over</td>
* </tr>
* <tr>
- * <td>FR_TV_12</td>
- * <td>Not recommended for children under 12</td>
+ * <td>ES_DVB_15</td>
+ * <td>Recommended for ages 15 and over</td>
* </tr>
* <tr>
- * <td>FR_TV_16</td>
- * <td>Not recommended for children under 16</td>
+ * <td>ES_DVB_16</td>
+ * <td>Recommended for ages 16 and over</td>
* </tr>
* <tr>
- * <td>FR_TV_18</td>
- * <td>Not recommended for persons under 18</td>
+ * <td>ES_DVB_17</td>
+ * <td>Recommended for ages 17 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="5">GR_TV</td>
- * <td>GR_TV_ALL</td>
- * <td>Suitable for all ages</td>
+ * <td>ES_DVB_18</td>
+ * <td>Recommended for ages 18 and over</td>
* </tr>
* <tr>
- * <td>GR_TV_10</td>
- * <td>Parental consent suggested</td>
+ * <td valign="top" rowspan="16">FR_DVB</td>
+ * <td>FR_DVB_U</td>
+ * <td>Recommended for all ages</td>
* </tr>
* <tr>
- * <td>GR_TV_12</td>
- * <td>Required parental consent</td>
+ * <td>FR_DVB_4</td>
+ * <td>Recommended for ages 4 and over</td>
* </tr>
* <tr>
- * <td>GR_TV_15</td>
- * <td>Suitable for minors over the age of 15</td>
+ * <td>FR_DVB_5</td>
+ * <td>Recommended for ages 5 and over</td>
* </tr>
* <tr>
- * <td>GR_TV_18</td>
- * <td>Suitable only for adults profanity before midnight is punishable by fine, except when
- * used in the context of the program</td>
+ * <td>FR_DVB_6</td>
+ * <td>Recommended for ages 6 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="3">HK_TV</td>
- * <td>HK_TV_G</td>
- * <td>For general audiences</td>
+ * <td>FR_DVB_7</td>
+ * <td>Recommended for ages 7 and over</td>
* </tr>
* <tr>
- * <td>HK_TV_PG</td>
- * <td>Programs are unsuitable for children, parental guidance is recommended</td>
+ * <td>FR_DVB_8</td>
+ * <td>Recommended for ages 8 and over</td>
* </tr>
* <tr>
- * <td>HK_TV_M</td>
- * <td>Programs are recommended only for adult viewers above the age of 18</td>
+ * <td>FR_DVB_9</td>
+ * <td>Recommended for ages 9 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="6">HU_TV</td>
- * <td>HU_TV_U</td>
- * <td>Programs can be viewed by any age</td>
+ * <td>FR_DVB_10</td>
+ * <td>Recommended for ages 10 and over</td>
* </tr>
* <tr>
- * <td>HU_TV_CF</td>
- * <td>Programs recommended for children. It is an optional rating, there is no obligation
- * for broadcasters to indicate it</td>
+ * <td>FR_DVB_11</td>
+ * <td>Recommended for ages 11 and over</td>
* </tr>
* <tr>
- * <td>HU_TV_6</td>
- * <td>Programs not recommended for children below the age of 6, may not contain any
- * violence or sexual content</td>
+ * <td>FR_DVB_12</td>
+ * <td>Recommended for ages 12 and over</td>
* </tr>
* <tr>
- * <td>HU_TV_12</td>
- * <td>Programs not recommended for children below the age of 12, may contain light sexual
- * content or explicit language</td>
+ * <td>FR_DVB_13</td>
+ * <td>Recommended for ages 13 and over</td>
* </tr>
* <tr>
- * <td>HU_TV_16</td>
- * <td>Programs not recommended for teens and children below the age of 16, may contain more
- * intensive violence and sexual content</td>
+ * <td>FR_DVB_14</td>
+ * <td>Recommended for ages 14 and over</td>
* </tr>
* <tr>
- * <td>HU_TV_18</td>
- * <td>The program is recommended only for adult viewers (for ages 18 and up), may contain
- * explicit violence and explicit sexual content</td>
+ * <td>FR_DVB_15</td>
+ * <td>Recommended for ages 15 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="8">ID_TV</td>
- * <td>ID_TV_P</td>
- * <td>Suitable for children from ages 2 through 11</td>
+ * <td>FR_DVB_16</td>
+ * <td>Recommended for ages 16 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_A</td>
- * <td>Suitable for teens and children from ages 7 through 16</td>
+ * <td>FR_DVB_17</td>
+ * <td>Recommended for ages 17 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_A_BO</td>
- * <td>Suitable for children ages 5 through 10, with parental guidance or permission</td>
+ * <td>FR_DVB_18</td>
+ * <td>Recommended for ages 18 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_SU</td>
- * <td>Suitable for general audiences</td>
+ * <td valign="top" rowspan="17">ISDB</td>
+ * <td>ISDB_4</td>
+ * <td>Recommended for ages 4 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_BO</td>
- * <td>Parental guidance suggested for ages 5 and under</td>
+ * <td>ISDB_5</td>
+ * <td>Recommended for ages 5 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_R</td>
- * <td>Suitable for teens from ages 13 through 17</td>
+ * <td>ISDB_6</td>
+ * <td>Recommended for ages 6 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_R_BO</td>
- * <td>Suitable for teens with parental guidance or permission</td>
+ * <td>ISDB_7</td>
+ * <td>Recommended for ages 7 and over</td>
* </tr>
* <tr>
- * <td>ID_TV_D</td>
- * <td>Suitable for viewers over 18 and older only</td>
+ * <td>ISDB_8</td>
+ * <td>Recommended for ages 8 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="5">IE_TV</td>
- * <td>IE_TV_GA</td>
- * <td>Suitable for all ages</td>
+ * <td>ISDB_9</td>
+ * <td>Recommended for ages 9 and over</td>
* </tr>
* <tr>
- * <td>IE_TV_CH</td>
- * <td>Suitable for children ages 5 to 10, may contain comedic violence or action fantasy
- * violence</td>
+ * <td>ISDB_10</td>
+ * <td>Recommended for ages 10 and over</td>
* </tr>
* <tr>
- * <td>IE_TV_YA</td>
- * <td>Suitable for adolescent audiences, may contain thematic elements that would appeal to
- * teenagers</td>
+ * <td>ISDB_11</td>
+ * <td>Recommended for ages 11 and over</td>
* </tr>
* <tr>
- * <td>IE_TV_PS</td>
- * <td>Suitable for more mature viewers, more mature themes may be present</td>
+ * <td>ISDB_12</td>
+ * <td>Recommended for ages 12 and over</td>
* </tr>
* <tr>
- * <td>IE_TV_MA</td>
- * <td>Most restrictive classification, allowing for heavy subject matter and coarse
- * language</td>
+ * <td>ISDB_13</td>
+ * <td>Recommended for ages 13 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="5">IL_TV</td>
- * <td>IL_TV_G</td>
- * <td>General audience; anyone, regardless of age, can view the program, usually news and
- * children's programming</td>
+ * <td>ISDB_14</td>
+ * <td>Recommended for ages 14 and over</td>
* </tr>
* <tr>
- * <td>IL_TV_12</td>
- * <td>Suitable for teens and children ages 12 and over, no child under 12 are permitted to
- * view the program</td>
+ * <td>ISDB_15</td>
+ * <td>Recommended for ages 15 and over</td>
* </tr>
* <tr>
- * <td>IL_TV_15</td>
- * <td>Suitable for teens ages 15 and over, no child under 15 may view the programme</td>
+ * <td>ISDB_16</td>
+ * <td>Recommended for ages 16 and over</td>
* </tr>
* <tr>
- * <td>IL_TV_18</td>
- * <td>Suitable for adults only, no minors may view the programme</td>
+ * <td>ISDB_17</td>
+ * <td>Recommended for ages 17 and over</td>
* </tr>
* <tr>
- * <td>IL_TV_E</td>
- * <td>Exempt from classification</td>
+ * <td>ISDB_18</td>
+ * <td>Recommended for ages 18 and over</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="4">IN_TV</td>
- * <td>IN_TV_U</td>
- * <td>Unrestricted public exhibition</td>
+ * <td>ISDB_19</td>
+ * <td>Recommended for ages 19 and over</td>
* </tr>
* <tr>
- * <td>IN_TV_U_A</td>
- * <td>Unrestricted public exhibition, but with a caution regarding parental guidance to
- * those under 12 years of age</td>
- * </tr>
- * <tr>
- * <td>IN_TV_A</td>
- * <td>Public exhibition restricted to adults 18 years of age and older only</td>
- * </tr>
- * <tr>
- * <td>IN_TV_S</td>
- * <td>Public exhibition restricted to members of any profession or any class of persons
- * </td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="7">IS_TV</td>
- * <td>IS_TV_L</td>
- * <td>Programs suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>IS_TV_7</td>
- * <td>Programs suitable for ages 7 and older</td>
- * </tr>
- * <tr>
- * <td>IS_TV_10</td>
- * <td>Programs suitable for ages 10 and older</td>
- * </tr>
- * <tr>
- * <td>IS_TV_12</td>
- * <td>Programs suitable for ages 12 and older</td>
- * </tr>
- * <tr>
- * <td>IS_TV_14</td>
- * <td>Programs suitable for ages 14 and older</td>
- * </tr>
- * <tr>
- * <td>IS_TV_16</td>
- * <td>Programs suitable for ages 16 and older</td>
- * </tr>
- * <tr>
- * <td>IS_TV_18</td>
- * <td>Programs suitable for ages 18 and older</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">JP_TV</td>
- * <td>JP_TV_G</td>
- * <td>General, suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>JP_TV_PG12</td>
- * <td>Parental guidance requested for young people under 12 years</td>
- * </tr>
- * <tr>
- * <td>JP_TV_R15</td>
- * <td>For persons aged 15 and above only</td>
- * </tr>
- * <tr>
- * <td>JP_TV_R18</td>
- * <td>For persons aged 18 and above only</td>
+ * <td>ISDB_20</td>
+ * <td>Recommended for ages 20 and over</td>
* </tr>
* <tr>
* <td valign="top" rowspan="5">KR_TV</td>
@@ -957,314 +578,6 @@
* <td>For adults only</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="9">MV_TV</td>
- * <td>MV_TV_Y</td>
- * <td>Young children</td>
- * </tr>
- * <tr>
- * <td>MV_TV_G</td>
- * <td>General viewing for all ages</td>
- * </tr>
- * <tr>
- * <td>MV_TV_PG</td>
- * <td>Parental guidance is required unaccompanied children</td>
- * </tr>
- * <tr>
- * <td>MV_TV_PG_12</td>
- * <td>Parental guidance is required for children under the age of 12</td>
- * </tr>
- * <tr>
- * <td>MV_TV_12</td>
- * <td>Teens and children aged 12 and older may watch, otherwise restricted</td>
- * </tr>
- * <tr>
- * <td>MV_TV_15</td>
- * <td>Restricted to viewers aged 15 and above</td>
- * </tr>
- * <tr>
- * <td>MV_TV_18</td>
- * <td>Restricted to viewers aged 18 and above</td>
- * </tr>
- * <tr>
- * <td>MV_TV_21</td>
- * <td>Restricted to viewers aged 21 and above</td>
- * </tr>
- * <tr>
- * <td>MV_TV_X</td>
- * <td>Most restrictive classification, only adults ages 25 and above may view</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="6">MX_TV</td>
- * <td>MX_TV_A</td>
- * <td>Appropriate for all ages, parental guidance is recommended for children under 7 years
- * </td>
- * </tr>
- * <tr>
- * <td>MX_TV_B</td>
- * <td>Designed for ages 12 and older, may contain some sexual situations, mild violence,
- * and mild language</td>
- * </tr>
- * <tr>
- * <td>MX_TV_B_15</td>
- * <td>Designed for ages 15 and up, slightly more intensive than the 'A' and 'B' ratings
- * </td>
- * </tr>
- * <tr>
- * <td>MX_TV_C</td>
- * <td>Designed to be viewed by adults aged 18 or older only, generally more intensive
- * content</td>
- * </tr>
- * <tr>
- * <td>MX_TV_D</td>
- * <td>Designed to be viewed only by mature adults (at least 21 years of age and over),
- * contains extreme content matter</td>
- * </tr>
- * <tr>
- * <td>MX_TV_RC</td>
- * <td>Banned from public television in Mexico</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="3">MY_TV</td>
- * <td>MY_TV_U</td>
- * <td>General viewing for all ages, can be broadcast anytime</td>
- * </tr>
- * <tr>
- * <td>MY_TV_P13</td>
- * <td>For viewers ages 13 and above, children under 13 needs parental guidance, can be
- * broadcast anytime, but some elements may only be broadcast at night</td>
- * </tr>
- * <tr>
- * <td>MY_TV_18</td>
- * <td>For viewers ages 18 and above only</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="5">NL_TV</td>
- * <td>NL_TV_AL</td>
- * <td>All Ages</td>
- * </tr>
- * <tr>
- * <td>NL_TV_6</td>
- * <td>Parental advisory for children under 6</td>
- * </tr>
- * <tr>
- * <td>NL_TV_9</td>
- * <td>Parental advisory for children under 9</td>
- * </tr>
- * <tr>
- * <td>NL_TV_12</td>
- * <td>Parental advisory for children under 12</td>
- * </tr>
- * <tr>
- * <td>NL_TV_16</td>
- * <td>Parental advisory for children under 16</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="3">NZ_FTV</td>
- * <td>NZ_FTV_G</td>
- * <td>These exclude material likely to harm children under 14 and can screen at any time.
- * Programmes may not necessarily be designed for younger viewers, but must not contain
- * material likely to cause them undue distress or discomfort</td>
- * </tr>
- * <tr>
- * <td>NZ_FTV_PGR</td>
- * <td>Programmes more suited to more mature viewers. These are not necessarily unsuitable
- * for children, but viewer discretion is advised, and parents and guardians are encouraged
- * to supervise younger viewers</td>
- * </tr>
- * <tr>
- * <td>NZ_FTV_AO</td>
- * <td>Contain material of an adult nature handled in such a way that it is unsuitable for
- * children</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="5">NZ_PTV</td>
- * <td>NZ_PTV_G</td>
- * <td>suitable for general audiences</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_PG</td>
- * <td>Parental guidance recommended for under 10</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_M</td>
- * <td>Suitable for mature audiences 13 and up</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_16</td>
- * <td>Suitable for viewers 16 and up</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_18</td>
- * <td>Suitable for viewers 18 and up</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="3">PE_TV</td>
- * <td>PE_TV_A</td>
- * <td>Suitable for all audiences</td>
- * </tr>
- * <tr>
- * <td>PE_TV_14</td>
- * <td>Suitable for people aged 14 and above only</td>
- * </tr>
- * <tr>
- * <td>PE_TV_18</td>
- * <td>Suitable for people aged 18 and above only</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">PE_ATV</td>
- * <td>PE_ATV_GP</td>
- * <td>General audience</td>
- * </tr>
- * <tr>
- * <td>PE_ATV_PG</td>
- * <td>Parental guidance required for under 6</td>
- * </tr>
- * <tr>
- * <td>PE_ATV_14</td>
- * <td>Suitable for people aged 14 and above only</td>
- * </tr>
- * <tr>
- * <td>PE_ATV_18</td>
- * <td>Suitable for people aged 18 and above only</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="3">PH_TV</td>
- * <td>PH_TV_G</td>
- * <td>Suitable for all public viewers</td>
- * </tr>
- * <tr>
- * <td>PH_TV_PG</td>
- * <td>Programmes rated PG may contain scenes or other content that are unsuitable for
- * children without the guidance of a parent</td>
- * </tr>
- * <tr>
- * <td>PH_TV_SPG</td>
- * <td>Contains mature themes or moderate to intense violence, which may be deemed unfit for
- * children to watch without strict parental supervision</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="5">PL_TV</td>
- * <td>PL_TV_G</td>
- * <td>Positive or neutral view of the world, little to no violence, non-sexual love, and no
- * sexual content</td>
- * </tr>
- * <tr>
- * <td>PL_TV_7</td>
- * <td>Age 7 and above. May additionally contain some mild language, bloodless violence, and
- * a more negative view of the world</td>
- * </tr>
- * <tr>
- * <td>PL_TV_12</td>
- * <td>Age 12 and above. May contain some foul language, some violence, and some sexual
- * content</td>
- * </tr>
- * <tr>
- * <td>PL_TV_16</td>
- * <td>Age 16 and above. Deviant social behaviour, world filled with violence and sexuality,
- * simplified picture of adulthood, display of physical force, especially in controversial
- * social context, immoral behaviour without ethic dilemma, putting the blame on the victim,
- * excessive concentration on material possessions</td>
- * </tr>
- * <tr>
- * <td>PL_TV_18</td>
- * <td>Age 18 and above. One-sided display of the joys of adult life without showing
- * responsibilities, social justification of violent behaviour, excessive vulgarity, use of
- * racial slurs and social stereotypes, explicit sexual content, praise of aggression or
- * vulgarity</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">PT_TV</td>
- * <td>PT_TV_T</td>
- * <td>Suitable for all</td>
- * </tr>
- * <tr>
- * <td>PT_TV_10</td>
- * <td>May not be suitable for children under 10, parental guidance advised</td>
- * </tr>
- * <tr>
- * <td>PT_TV_12</td>
- * <td>May not be suitable for children under 12, parental guidance advised</td>
- * </tr>
- * <tr>
- * <td>PT_TV_16</td>
- * <td>Not suitable for children under 16</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="6">RO_TV</td>
- * <td>RO_TV_Y</td>
- * <td>Young Ages</td>
- * </tr>
- * <tr>
- * <td>RO_TV_G</td>
- * <td>General Exhibition</td>
- * </tr>
- * <tr>
- * <td>RO_TV_AP</td>
- * <td>Parental guidance is recommended for children below the age of 12</td>
- * </tr>
- * <tr>
- * <td>RO_TV_12</td>
- * <td>Forbidden for children under 12 years of age</td>
- * </tr>
- * <tr>
- * <td>RO_TV_15</td>
- * <td>Forbidden for children under 15 years of age</td>
- * </tr>
- * <tr>
- * <td>RO_TV_18</td>
- * <td>Forbidden for children under 18 years of age</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="5">RU_TV</td>
- * <td>RU_TV_0</td>
- * <td>Can be watched by Any Age</td>
- * </tr>
- * <tr>
- * <td>RU_TV_6</td>
- * <td>Only kids the age of 6 or older can watch</td>
- * </tr>
- * <tr>
- * <td>RU_TV_12</td>
- * <td>Only kids the age of 12 or older can watch</td>
- * </tr>
- * <tr>
- * <td>RU_TV_16</td>
- * <td>Only teens the age of 16 or older can watch</td>
- * </tr>
- * <tr>
- * <td>RU_TV_18</td>
- * <td>Restricted to children ONLY people 18 or older</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="7">RS_TV</td>
- * <td>RS_TV_G</td>
- * <td>Program suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>RS_TV_12</td>
- * <td>Program not suitable for children under the age of 12</td>
- * </tr>
- * <tr>
- * <td>RS_TV_14</td>
- * <td>Program not suitable for children/teens under the age of 14</td>
- * </tr>
- * <tr>
- * <td>RS_TV_15</td>
- * <td>Program not suitable for children/teens under the age of 15</td>
- * </tr>
- * <tr>
- * <td>RS_TV_16</td>
- * <td>Program not suitable for children/teens under the age of 16</td>
- * </tr>
- * <tr>
- * <td>RS_TV_17</td>
- * <td>Program not suitable for children/teens under the age of 17</td>
- * </tr>
- * <tr>
- * <td>RS_TV_18</td>
- * <td>Program not suitable for minors under the age of 18</td>
- * </tr>
- * <tr>
* <td valign="top" rowspan="6">SG_TV</td>
* <td>SG_TV_G</td>
* <td>Suitable for all ages</td>
@@ -1291,101 +604,6 @@
* <td>Suitable for adults aged 21 and above</td>
* </tr>
* <tr>
- * <td valign="top" rowspan="4">SI_TV</td>
- * <td>SI_TV_VS</td>
- * <td>Parental guidance suggested (for children under 6)</td>
- * </tr>
- * <tr>
- * <td>SI_TV_12</td>
- * <td>Content suitable for teens over 12 years</td>
- * </tr>
- * <tr>
- * <td>SI_TV_15</td>
- * <td>Content suitable for teens over 15 years</td>
- * </tr>
- * <tr>
- * <td>SI_TV_AD</td>
- * <td>Content exclusively for adults</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="6">TH_TV</td>
- * <td>TH_TV_P</td>
- * <td>Content suitable for primary school aged children</td>
- * </tr>
- * <tr>
- * <td>TH_TV_C</td>
- * <td>Content suitable for children between 6-12 years old</td>
- * </tr>
- * <tr>
- * <td>TH_TV_G</td>
- * <td>Content suitable for general audiences</td>
- * </tr>
- * <tr>
- * <td>TH_TV_PG13</td>
- * <td>Content suitable for people aged 13 and above, but can be watched by those who are
- * under the recommended age if parental guidance is provided</td>
- * </tr>
- * <tr>
- * <td>TH_TV_PG18</td>
- * <td>Content suitable for people aged above 18 years old; those who are younger that 18
- * must be provided with parental guidance</td>
- * </tr>
- * <tr>
- * <td>TH_TV_A</td>
- * <td>Content unsuitable for children and youngsters</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">TR_TV</td>
- * <td>TR_TV_G</td>
- * <td>General audience. Suitable for all ages</td>
- * </tr>
- * <tr>
- * <td>TR_TV_7</td>
- * <td>Suitable for ages 7 and over</td>
- * </tr>
- * <tr>
- * <td>TR_TV_13</td>
- * <td>Suitable for ages 13 and over</td>
- * </tr>
- * <tr>
- * <td>TR_TV_18</td>
- * <td>Suitable for ages 13 and over</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">TW_TV</td>
- * <td>TW_TV_G</td>
- * <td>For all ages</td>
- * </tr>
- * <tr>
- * <td>TW_TV_P</td>
- * <td>Not suitable for children under 6 years old. People aged 6 but under 12 require
- * guidance from accompanying adults to watch</td>
- * </tr>
- * <tr>
- * <td>TW_TV_PG</td>
- * <td>Not suitable for people under 12 years of age. Parental guidance is required for
- * people aged 12 but under 18</td>
- * </tr>
- * <tr>
- * <td>TW_TV_R</td>
- * <td>For adults only and people under 18 years of age must not watch</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="3">UA_TV</td>
- * <td>UA_TV_G</td>
- * <td>This program does not have age restrictions</td>
- * </tr>
- * <tr>
- * <td>UA_TV_Y</td>
- * <td>Children must view this program with parents. In it program there are fragments,
- * which unsuitable for children</td>
- * </tr>
- * <tr>
- * <td>UA_TV_R</td>
- * <td>This program is only for adult viewers. In it there are scenes with nudity, drug use,
- * or violence</td>
- * </tr>
- * <tr>
* <td valign="top" rowspan="6">US_TV</td>
* <td>US_TV_Y</td>
* <td>This program is designed to be appropriate for all children</td>
@@ -1413,63 +631,6 @@
* <td>This program is specifically designed to be viewed by adults and therefore may be
* unsuitable for children under 17</td>
* </tr>
- * <tr>
- * <td valign="top" rowspan="3">VE_TV</td>
- * <td>VE_TV_TU</td>
- * <td>For all ages</td>
- * </tr>
- * <tr>
- * <td>VE_TV_SU</td>
- * <td>Parental guidance for young viewers</td>
- * </tr>
- * <tr>
- * <td>VE_TV_A</td>
- * <td>Mature viewers</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="6">ZA_TV</td>
- * <td>ZA_TV_F</td>
- * <td>This is a program/film that does not contain any obscenity, and is suitable for
- * family viewing. A logo must be displayed in the corner of the screen for 30 seconds after
- * each commercial break</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_PG</td>
- * <td>Children under 6 may watch this program/film, but must be accompanied by an adult.
- * This program contains an adult related theme, which might include very mild language,
- * violence and sexual innuendo. A logo must be displayed in the corner of the screen for
- * one minute after each commercial break</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_13</td>
- * <td>Children under 13 are prohibited from watching this program/film. This program
- * contains mild language, violence and sexual innuendo. A logo must be displayed in the
- * corner of the screen for two minutes after each commercial break</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_16</td>
- * <td>Children under 16 are prohibited from watching this program/film. It contains
- * moderate violence, language, and some sexual situations. In the case of television, this
- * program may only be broadcast after 9pm-4:30am. A logo must be displayed in the corner of
- * the screen for five minutes after each commercial break. A full-screen warning must be
- * issued before the start of the program. If the program is longer than an hour, a warning
- * must be displayed every half an hour</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_18</td>
- * <td>Children under 18 are prohibited from watching this program/film. It contains extreme
- * violence, language and/or graphic sexual content. In the case of television, this program
- * may only be broadcast from 10pm-4:30am. A logo must be displayed in the corner of the
- * screen for the duration of the program. A full-screen warning must be issued before the
- * start of the program and after each commercial break</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_R18</td>
- * <td>This is reserved for films of an extreme sexual nature (pornography). R18 films may
- * only be distributed in the form of video and DVD in a controlled environment (e.g. Adult
- * Shops). No public viewing of this film may take place. R18 films may not be broadcast on
- * television and in cinemas</td>
- * </tr>
* </table>
*
* <h4>System defined strings for sub-ratings</h4>
@@ -1480,101 +641,43 @@
* <th>Description</th>
* </tr>
* <tr>
- * <td valign="top" rowspan="6">NL_TV</td>
- * <td>NL_TV_V</td>
- * <td>Violence<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
+ * <td valign="top" rowspan="3">BR_TV</td>
+ * <td>BR_TV_D</td>
+ * <td>Drugs<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and BR_TV_18
+ * </td>
* </tr>
* <tr>
- * <td>NL_TV_F</td>
- * <td>Scary or Disturbing ContentViolence<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9,
- * NL_TV_12, NL_TV_16</td>
+ * <td>BR_TV_S</td>
+ * <td>Sex<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and BR_TV_18
+ * </td>
* </tr>
* <tr>
- * <td>NL_TV_S</td>
- * <td>Sexual Content<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
- * </tr>
- * <tr>
- * <td>NL_TV_D</td>
- * <td>Discrimination<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
- * </tr>
- * <tr>
- * <td>NL_TV_DA</td>
- * <td>Drug and/or Alcohol abuse<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12,
- * NL_TV_16</td>
- * </tr>
- * <tr>
- * <td>NL_TV_L</td>
- * <td>Bad Language<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
- * </tr>
- * <tr>
- * <td valign="top" rowspan="4">NZ_PTV</td>
- * <td>NZ_PTV_C</td>
- * <td>Content may offend<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_V</td>
- * <td>Violence<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_L</td>
- * <td>Language<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
- * </tr>
- * <tr>
- * <td>NZ_PTV_S</td>
- * <td>Sexual content<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
+ * <td>BR_TV_V</td>
+ * <td>Violence<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and
+ * BR_TV_18</td>
* </tr>
* <tr>
* <td valign="top" rowspan="5">US_TV</td>
* <td>US_TV_D</td>
- * <td>Suggestive dialogue (Usually means talks about sex)<br/>Applicable to US_TV_PG,
- * US_TV_14, US_TV</td>
+ * <td>Suggestive dialogue (Usually means talks about sex)<br/>Applicable to US_TV_PG, and
+ * US_TV_14</td>
* </tr>
* <tr>
* <td>US_TV_L</td>
- * <td>Coarse language<br/>Applicable to US_TV_PG, US_TV_14</td>
+ * <td>Coarse language<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td>
* </tr>
* <tr>
* <td>US_TV_S</td>
- * <td>Sexual content<br/>Applicable to US_TV_PG, US_TV_14, US_TV_MA</td>
+ * <td>Sexual content<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td>
* </tr>
* <tr>
* <td>US_TV_V</td>
- * <td>Violence<br/>Applicable to US_TV_PG, US_TV_14, US_TV_MA</td>
+ * <td>Violence<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td>
* </tr>
* <tr>
* <td>US_TV_FV</td>
* <td>Fantasy violence (Children's programming only)<br/>Applicable to US_TV_Y7</td>
* </tr>
- * <tr>
- * <td valign="top" rowspan="6">ZA_TV</td>
- * <td>ZA_TV_D</td>
- * <td>Drug<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
- * </td>
- * </tr>
- * <tr>
- * <td>ZA_TV_V</td>
- * <td>Violence<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
- * </td>
- * </tr>
- * <tr>
- * <td>ZA_TV_N</td>
- * <td>Nudity<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
- * </td>
- * </tr>
- * <tr>
- * <td>ZA_TV_P</td>
- * <td>Prejudice<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18,
- * ZA_TV_R18</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_S</td>
- * <td>Sex<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</td>
- * </tr>
- * <tr>
- * <td>ZA_TV_L</td>
- * <td>Language<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
- * </td>
- * </tr>
* </table>
*/
public final class TvContentRating {
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index f4eb459..aaff9a2 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -294,7 +294,7 @@
uint8_t* jpegBuffer = buffer->data;
if (usingRGBAOverride) {
- width *= 4;
+ width = (buffer->width + buffer->stride * (buffer->height - 1)) * 4;
}
// First check for JPEG transport header at the end of the buffer
diff --git a/opengl/java/android/opengl/GLSurfaceView.java b/opengl/java/android/opengl/GLSurfaceView.java
index 1406f6b..3c76115 100644
--- a/opengl/java/android/opengl/GLSurfaceView.java
+++ b/opengl/java/android/opengl/GLSurfaceView.java
@@ -595,9 +595,8 @@
mDetached = false;
}
- /** @hide */
@Override
- protected void onDetachedFromWindowInternal() {
+ protected void onDetachedFromWindow() {
if (LOG_ATTACH_DETACH) {
Log.d(TAG, "onDetachedFromWindow");
}
@@ -605,7 +604,7 @@
mGLThread.requestExitAndWait();
}
mDetached = true;
- super.onDetachedFromWindowInternal();
+ super.onDetachedFromWindow();
}
// ----------------------------------------------------------------------
diff --git a/packages/BackupRestoreConfirmation/res/values-es/strings.xml b/packages/BackupRestoreConfirmation/res/values-es/strings.xml
index 01f7cf7..ac0836d 100644
--- a/packages/BackupRestoreConfirmation/res/values-es/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-es/strings.xml
@@ -25,11 +25,11 @@
<string name="allow_restore_button_label" msgid="3081286752277127827">"Restaurar mis datos"</string>
<string name="deny_restore_button_label" msgid="1724367334453104378">"No restaurar"</string>
<string name="current_password_text" msgid="8268189555578298067">"Introduce a continuación la contraseña actual de copia de seguridad:"</string>
- <string name="device_encryption_restore_text" msgid="1570864916855208992">"Introduce a continuación la contraseña de encriptación del dispositivo."</string>
- <string name="device_encryption_backup_text" msgid="5866590762672844664">"Introduce a continuación la contraseña de encriptación del dispositivo. Esta contraseña se usará también para encriptar el archivo de copia de seguridad."</string>
+ <string name="device_encryption_restore_text" msgid="1570864916855208992">"Introduce a continuación la contraseña de cifrado del dispositivo."</string>
+ <string name="device_encryption_backup_text" msgid="5866590762672844664">"Introduce a continuación la contraseña de cifrado del dispositivo. Esta contraseña se usará también para cifrar el archivo de copia de seguridad."</string>
<string name="backup_enc_password_text" msgid="4981585714795233099">"Introduce la contraseña que quieras usar para cifrar los datos de la copia de seguridad completa. Si dejas este campo en blanco, se usará tu contraseña de copia de seguridad actual:"</string>
<string name="backup_enc_password_optional" msgid="1350137345907579306">"Si quieres cifrar los datos de la copia de seguridad completa, introduce la contraseña a continuación:"</string>
- <string name="backup_enc_password_required" msgid="7889652203371654149">"Tu dispositivo está encriptado, por lo que debes encriptar tu copia de seguridad. Introduce una contraseña a continuación:"</string>
+ <string name="backup_enc_password_required" msgid="7889652203371654149">"Tu dispositivo está cifrado, por lo que debes cifrar tu copia de seguridad. Introduce una contraseña a continuación:"</string>
<string name="restore_enc_password_text" msgid="6140898525580710823">"Si los datos de restauración están cifrados, introduce la contraseña a continuación:"</string>
<string name="toast_backup_started" msgid="550354281452756121">"Iniciando copia de seguridad..."</string>
<string name="toast_backup_ended" msgid="3818080769548726424">"Copia de seguridad finalizada"</string>
diff --git a/packages/BackupRestoreConfirmation/res/values-hi/strings.xml b/packages/BackupRestoreConfirmation/res/values-hi/strings.xml
index 3621ebf..2578e8f 100644
--- a/packages/BackupRestoreConfirmation/res/values-hi/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-hi/strings.xml
@@ -21,15 +21,15 @@
<string name="backup_confirm_text" msgid="1878021282758896593">"कनेक्ट किए गए डेस्कटॉप कंप्यूटर से सभी डेटा के संपूर्ण सुरक्षा का अनुरोध किया गया है. क्या आप इसकी अनुमति देना चाहते हैं?\n\nयदि आपने स्वयं बैकअप का अनुरोध नहीं किया है, तो प्रक्रिया जारी रखने की अनुमति न दें."</string>
<string name="allow_backup_button_label" msgid="4217228747769644068">"मेरे डेटा का बैकअप लें"</string>
<string name="deny_backup_button_label" msgid="6009119115581097708">"बैकअप न लें"</string>
- <string name="restore_confirm_text" msgid="7499866728030461776">"कनेक्ट किए गए डेस्कटॉप कंप्यूटर से सभी डेटा की पूर्ण पुनर्स्थापना का अनुरोध किया गया है. क्या आप इसकी अनुमति देना चाहते हैं?\n\nयदि आपने स्वयं पुनर्प्राप्ति का अनुरोध नहीं किया है, तो प्रक्रिया जारी रखने की अनुमति न दें. इससे वर्तमान में आपके उपकरण पर मौजूद डेटा बदल जाएगा!"</string>
+ <string name="restore_confirm_text" msgid="7499866728030461776">"कनेक्ट किए गए डेस्कटॉप कंप्यूटर से सभी डेटा की पूर्ण पुनर्स्थापना का अनुरोध किया गया है. क्या आप इसकी अनुमति देना चाहते हैं?\n\nयदि आपने स्वयं पुनर्प्राप्ति का अनुरोध नहीं किया है, तो प्रक्रिया जारी रखने की अनुमति न दें. इससे वर्तमान में आपके डिवाइस पर मौजूद डेटा बदल जाएगा!"</string>
<string name="allow_restore_button_label" msgid="3081286752277127827">"मेरा डेटा पुनर्स्थापित करें"</string>
<string name="deny_restore_button_label" msgid="1724367334453104378">"पुनर्स्थापित न करें"</string>
<string name="current_password_text" msgid="8268189555578298067">"कृपया नीचे अपना वर्तमान सुरक्षित करने का पासवर्ड डालें:"</string>
- <string name="device_encryption_restore_text" msgid="1570864916855208992">"कृपया नीचे अपना उपकरण एन्क्रिप्शन पासवर्ड डालें."</string>
- <string name="device_encryption_backup_text" msgid="5866590762672844664">"कृपया अपना उपकरण सुरक्षित तरीका पासवर्ड नीचे दर्ज करें. बैकअप मेमोरी को एन्क्रिप्ट करने के लिए भी इसका उपयोग किया जाएगा."</string>
+ <string name="device_encryption_restore_text" msgid="1570864916855208992">"कृपया नीचे अपना डिवाइस एन्क्रिप्शन पासवर्ड डालें."</string>
+ <string name="device_encryption_backup_text" msgid="5866590762672844664">"कृपया अपना डिवाइस सुरक्षित तरीका पासवर्ड नीचे दर्ज करें. बैकअप मेमोरी को एन्क्रिप्ट करने के लिए भी इसका उपयोग किया जाएगा."</string>
<string name="backup_enc_password_text" msgid="4981585714795233099">"कृपया संपूर्ण सुरक्षित डेटा को एन्क्रिप्ट करने में उपयोग के लिए पासवर्ड डालें. यदि यह खाली छोड़ दिया जाता है, तो आपके वर्तमान बैकअप पासवर्ड का उपयोग किया जाएगा:"</string>
<string name="backup_enc_password_optional" msgid="1350137345907579306">"यदि आप संपूर्ण सुरक्षित डेटा को एन्क्रिप्ट करना चाहते हैं, तो नीचे पासवर्ड डालें:"</string>
- <string name="backup_enc_password_required" msgid="7889652203371654149">"चूंकि आपका उपकरण एन्क्रिप्ट किया हुआ है, इसलिए आपको अपने बैकअप को एन्क्रिप्ट करना आवश्यक है. कृपया नीचे पासवर्ड डालें:"</string>
+ <string name="backup_enc_password_required" msgid="7889652203371654149">"चूंकि आपका डिवाइस एन्क्रिप्ट किया हुआ है, इसलिए आपको अपने बैकअप को एन्क्रिप्ट करना आवश्यक है. कृपया नीचे पासवर्ड डालें:"</string>
<string name="restore_enc_password_text" msgid="6140898525580710823">"यदि पुनर्स्थापित डेटा को एन्क्रिप्ट किया गया है, तो कृपया नीचे पासवर्ड डालें:"</string>
<string name="toast_backup_started" msgid="550354281452756121">"सुरक्षित करना शुरु हो रहा है..."</string>
<string name="toast_backup_ended" msgid="3818080769548726424">"सुरक्षित करना पूर्ण"</string>
diff --git a/packages/CaptivePortalLogin/AndroidManifest.xml b/packages/CaptivePortalLogin/AndroidManifest.xml
index c5fb167..2ec15be 100644
--- a/packages/CaptivePortalLogin/AndroidManifest.xml
+++ b/packages/CaptivePortalLogin/AndroidManifest.xml
@@ -20,6 +20,7 @@
package="com.android.captiveportallogin" >
<uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application android:label="@string/app_name" >
<activity
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
index ae52a1e..b3a6e88 100644
--- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
+++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
@@ -20,7 +20,10 @@
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
+import android.net.ConnectivityManager.NetworkCallback;
import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.Settings.Global;
@@ -55,6 +58,7 @@
private URL mURL;
private int mNetId;
+ private NetworkCallback mNetworkCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -73,7 +77,27 @@
getActionBar().setDisplayShowHomeEnabled(false);
mNetId = Integer.parseInt(getIntent().getStringExtra(Intent.EXTRA_TEXT));
- ConnectivityManager.setProcessDefaultNetwork(new Network(mNetId));
+ final Network network = new Network(mNetId);
+ ConnectivityManager.setProcessDefaultNetwork(network);
+
+ // Exit app if Network disappears.
+ final NetworkCapabilities networkCapabilities =
+ ConnectivityManager.from(this).getNetworkCapabilities(network);
+ if (networkCapabilities == null) {
+ finish();
+ return;
+ }
+ mNetworkCallback = new NetworkCallback() {
+ @Override
+ public void onLost(Network lostNetwork) {
+ if (network.equals(lostNetwork)) done(false);
+ }
+ };
+ final NetworkRequest.Builder builder = new NetworkRequest.Builder();
+ for (int transportType : networkCapabilities.getTransportTypes()) {
+ builder.addTransportType(transportType);
+ }
+ ConnectivityManager.from(this).registerNetworkCallback(builder.build(), mNetworkCallback);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
@@ -84,6 +108,7 @@
}
private void done(boolean use_network) {
+ ConnectivityManager.from(this).unregisterNetworkCallback(mNetworkCallback);
Intent intent = new Intent(ACTION_CAPTIVE_PORTAL_LOGGED_IN);
intent.putExtra(Intent.EXTRA_TEXT, String.valueOf(mNetId));
intent.putExtra(LOGGED_IN_RESULT, use_network ? "1" : "0");
diff --git a/packages/DocumentsUI/res/values-hi/strings.xml b/packages/DocumentsUI/res/values-hi/strings.xml
index e4967e1..88f26ed 100644
--- a/packages/DocumentsUI/res/values-hi/strings.xml
+++ b/packages/DocumentsUI/res/values-hi/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="2783841764617238354">"दस्तावेज़"</string>
<string name="title_open" msgid="4353228937663917801">"यहां से खोलें"</string>
- <string name="title_save" msgid="2433679664882857999">"यहां सहेजें"</string>
+ <string name="title_save" msgid="2433679664882857999">"यहां जोड़ें"</string>
<string name="menu_create_dir" msgid="5947289605844398389">"फ़ोल्डर बनाएं"</string>
<string name="menu_grid" msgid="6878021334497835259">"ग्रिड दृश्य"</string>
<string name="menu_list" msgid="7279285939892417279">"सूची दृश्य"</string>
@@ -26,7 +26,7 @@
<string name="menu_search" msgid="3816712084502856974">"खोजें"</string>
<string name="menu_settings" msgid="6008033148948428823">"सेटिंग"</string>
<string name="menu_open" msgid="432922957274920903">"खोलें"</string>
- <string name="menu_save" msgid="2394743337684426338">"सहेजें"</string>
+ <string name="menu_save" msgid="2394743337684426338">"जोड़ें"</string>
<string name="menu_share" msgid="3075149983979628146">"साझा करें"</string>
<string name="menu_delete" msgid="8138799623850614177">"हटाएं"</string>
<string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" चुनें"</string>
@@ -49,7 +49,7 @@
<string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> खाली"</string>
<string name="root_type_service" msgid="2178854894416775409">"मेमोरी सेवाएं"</string>
<string name="root_type_shortcut" msgid="3318760609471618093">"शॉर्टकट"</string>
- <string name="root_type_device" msgid="7121342474653483538">"उपकरण"</string>
+ <string name="root_type_device" msgid="7121342474653483538">"डिवाइस"</string>
<string name="root_type_apps" msgid="8838065367985945189">"अधिक ऐप्स"</string>
<string name="empty" msgid="7858882803708117596">"कोई आइटम नहीं"</string>
<string name="toast_no_application" msgid="1339885974067891667">"फ़ाइल नहीं खोली जा सकती"</string>
diff --git a/packages/DocumentsUI/res/values-pt/strings.xml b/packages/DocumentsUI/res/values-pt/strings.xml
index 184fb53..2aaa4d2 100644
--- a/packages/DocumentsUI/res/values-pt/strings.xml
+++ b/packages/DocumentsUI/res/values-pt/strings.xml
@@ -50,7 +50,7 @@
<string name="root_type_service" msgid="2178854894416775409">"Serviços de armazenamento"</string>
<string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string>
<string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
- <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicativos"</string>
+ <string name="root_type_apps" msgid="8838065367985945189">"Mais apps"</string>
<string name="empty" msgid="7858882803708117596">"Nenhum item"</string>
<string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o arquivo"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Não foi possível excluir alguns documentos"</string>
diff --git a/packages/InputDevices/res/values-hi/strings.xml b/packages/InputDevices/res/values-hi/strings.xml
index 77cb8fe..fcd7f84 100644
--- a/packages/InputDevices/res/values-hi/strings.xml
+++ b/packages/InputDevices/res/values-hi/strings.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_label" msgid="8016145283189546017">"इनपुट उपकरण"</string>
+ <string name="app_label" msgid="8016145283189546017">"इनपुट डिवाइस"</string>
<string name="keyboard_layouts_label" msgid="6688773268302087545">"Android कीबोर्ड"</string>
<string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"अंग्रेज़ी (यूके)"</string>
<string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"अंग्रेज़ी (यूएस)"</string>
diff --git a/packages/Keyguard/res/values-hi/strings.xml b/packages/Keyguard/res/values-hi/strings.xml
index b8c3358..4e9150b 100644
--- a/packages/Keyguard/res/values-hi/strings.xml
+++ b/packages/Keyguard/res/values-hi/strings.xml
@@ -136,9 +136,9 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"आपने अपने अनलॉक आकार को <xliff:g id="NUMBER_0">%d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने फ़ोन को किसी ईमेल खाते का उपयोग करके अनलॉक करने के लिए कहा जाएगा.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> सेकंड में पुन: प्रयास करें."</string>
<string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"निकालें"</string>
- <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"गलत सिम PIN कोड अपने उपकरण को अनलॉक करने के लिए अब आपको अपने वाहक से संपर्क करना होगा."</string>
+ <string name="kg_password_wrong_pin_code_pukked" msgid="30531039455764924">"गलत सिम PIN कोड अपने डिवाइस को अनलॉक करने के लिए अब आपको अपने वाहक से संपर्क करना होगा."</string>
<plurals name="kg_password_wrong_pin_code">
- <item quantity="one" msgid="8134313997799638254">"गलत सिम PIN कोड, अपने उपकरण को अनलॉक करने के लिए अपने वाहक से संपर्क करने से पहले आपके पास <xliff:g id="NUMBER">%d</xliff:g> प्रयास शेष है."</item>
+ <item quantity="one" msgid="8134313997799638254">"गलत सिम PIN कोड, अपने डिवाइस को अनलॉक करने के लिए अपने वाहक से संपर्क करने से पहले आपके पास <xliff:g id="NUMBER">%d</xliff:g> प्रयास शेष है."</item>
<item quantity="other" msgid="2215723361575359486">"गलत सिम PIN कोड, आपके पास <xliff:g id="NUMBER">%d</xliff:g> प्रयास शेष हैं."</item>
</plurals>
<string name="kg_password_wrong_puk_code_dead" msgid="7077536808291316208">"सिम अनुपयोगी है. अपने वाहक से संपर्क करें."</string>
diff --git a/packages/Keyguard/res/values-my-rMM/strings.xml b/packages/Keyguard/res/values-my-rMM/strings.xml
index b3ebaad..0468025 100644
--- a/packages/Keyguard/res/values-my-rMM/strings.xml
+++ b/packages/Keyguard/res/values-my-rMM/strings.xml
@@ -35,7 +35,7 @@
<string name="keyguard_plugged_in" msgid="9087497435553252863">"အားသွင်းနေ"</string>
<string name="keyguard_low_battery" msgid="8143808018719173859">"အားသွင်းကြိုးဖြင့် ဆက်သွယ်ပါ"</string>
<string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"မီနူးကို နှိပ်ခြင်းဖြင့် သော့ဖွင့်ပါ"</string>
- <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ကွန်ယက် သော့ကျနေခြင်း"</string>
+ <string name="keyguard_network_locked_message" msgid="9169717779058037168">"ကွန်ရက် သော့ကျနေခြင်း"</string>
<string name="keyguard_missing_sim_message_short" msgid="494980561304211931">"ဆင်းမ်ကဒ်မရှိပါ"</string>
<string name="keyguard_missing_sim_message" product="tablet" msgid="1445849005909260039">"တက်ဘလက်ထဲတွင်း ဆင်းမ်ကဒ် မရှိပါ"</string>
<string name="keyguard_missing_sim_message" product="default" msgid="3481110395508637643">"ဖုန်းထဲတွင် ဆင်းမ်ကဒ် မရှိပါ"</string>
diff --git a/packages/Keyguard/res/values-ta-rIN/strings.xml b/packages/Keyguard/res/values-ta-rIN/strings.xml
index b763457..0fe8fcc 100644
--- a/packages/Keyguard/res/values-ta-rIN/strings.xml
+++ b/packages/Keyguard/res/values-ta-rIN/strings.xml
@@ -105,7 +105,7 @@
<string name="kg_wrong_password" msgid="2333281762128113157">"தவறான கடவுச்சொல்"</string>
<string name="kg_wrong_pin" msgid="1131306510833563801">"தவறான பின்"</string>
<string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%d</xliff:g> வினாடிகள் கழித்து முயற்சிக்கவும்."</string>
- <string name="kg_pattern_instructions" msgid="398978611683075868">"உங்கள் வடிவத்தை வரையவும்"</string>
+ <string name="kg_pattern_instructions" msgid="398978611683075868">"வடிவத்தை வரையவும்"</string>
<string name="kg_sim_pin_instructions" msgid="2319508550934557331">"சிம் பின்னை உள்ளிடவும்"</string>
<string name="kg_pin_instructions" msgid="2377242233495111557">"பின்னை உள்ளிடுக"</string>
<string name="kg_password_instructions" msgid="5753646556186936819">"கடவுச்சொல்லை உள்ளிடவும்"</string>
diff --git a/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
index 05f2962..ad07a7a 100644
--- a/packages/Keyguard/src/com/android/keyguard/CarrierText.java
+++ b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
@@ -233,7 +233,11 @@
final boolean plmnValid = !TextUtils.isEmpty(plmn);
final boolean spnValid = !TextUtils.isEmpty(spn);
if (plmnValid && spnValid) {
- return new StringBuilder().append(plmn).append(mSeparator).append(spn).toString();
+ if (plmn.equals(spn)) {
+ return plmn;
+ } else {
+ return new StringBuilder().append(plmn).append(mSeparator).append(spn).toString();
+ }
} else if (plmnValid) {
return plmn;
} else if (spnValid) {
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 934ed38..efba03d 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -19,6 +19,7 @@
<resources>
<bool name="def_dim_screen">true</bool>
<integer name="def_screen_off_timeout">60000</integer>
+ <integer name="def_sleep_timeout">-1</integer>
<bool name="def_airplane_mode_on">false</bool>
<!-- Comma-separated list of bluetooth, wifi, and cell. -->
<string name="def_airplane_mode_radios" translatable="false">cell,bluetooth,wifi,nfc,wimax</string>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 873257c..b17b4cc 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -70,7 +70,7 @@
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
// is properly propagated through your change. Not doing so will result in a loss of user
// settings.
- private static final int DATABASE_VERSION = 112;
+ private static final int DATABASE_VERSION = 113;
private Context mContext;
private int mUserHandle;
@@ -1811,6 +1811,22 @@
upgradeVersion = 112;
}
+ if (upgradeVersion < 113) {
+ db.beginTransaction();
+ SQLiteStatement stmt = null;
+ try {
+ stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
+ + " VALUES(?,?);");
+ loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
+ R.integer.def_sleep_timeout);
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ if (stmt != null) stmt.close();
+ }
+ upgradeVersion = 113;
+ }
+
// *** Remember to update DATABASE_VERSION above!
if (upgradeVersion != currentVersion) {
@@ -2382,6 +2398,8 @@
loadBooleanSetting(stmt, Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,
R.bool.def_lock_screen_allow_private_notifications);
+ loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
+ R.integer.def_sleep_timeout);
} finally {
if (stmt != null) stmt.close();
}
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index ba5d11d..34e57bc 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -351,8 +351,11 @@
}
public void onEvent(int event, String path) {
- int modsInFlight = sKnownMutationsInFlight.get(mUserHandle).get();
- if (modsInFlight > 0) {
+ final AtomicInteger mutationCount;
+ synchronized (SettingsProvider.this) {
+ mutationCount = sKnownMutationsInFlight.get(mUserHandle);
+ }
+ if (mutationCount != null && mutationCount.get() > 0) {
// our own modification.
return;
}
@@ -503,7 +506,14 @@
}
private void fullyPopulateCaches(final int userHandle) {
- DatabaseHelper dbHelper = mOpenHelpers.get(userHandle);
+ DatabaseHelper dbHelper;
+ synchronized (this) {
+ dbHelper = mOpenHelpers.get(userHandle);
+ }
+ if (dbHelper == null) {
+ // User is gone.
+ return;
+ }
// Only populate the globals cache once, for the owning user
if (userHandle == UserHandle.USER_OWNER) {
fullyPopulateCache(dbHelper, TABLE_GLOBAL, sGlobalCache);
@@ -608,10 +618,15 @@
long oldId = Binder.clearCallingIdentity();
try {
- DatabaseHelper dbHelper = mOpenHelpers.get(callingUser);
+ DatabaseHelper dbHelper;
+ synchronized (this) {
+ dbHelper = mOpenHelpers.get(callingUser);
+ }
if (null == dbHelper) {
establishDbTracking(callingUser);
- dbHelper = mOpenHelpers.get(callingUser);
+ synchronized (this) {
+ dbHelper = mOpenHelpers.get(callingUser);
+ }
}
return dbHelper;
} finally {
@@ -691,12 +706,11 @@
if (Settings.CALL_METHOD_GET_SYSTEM.equals(method)) {
if (LOCAL_LOGV) Slog.v(TAG, "call(system:" + request + ") for " + callingUser);
// Check if this request should be (re)directed to the primary user's db
- if (callingUser == UserHandle.USER_OWNER
- || shouldShadowParentProfile(callingUser, sSystemCloneToManagedKeys, request)) {
- dbHelper = getOrEstablishDatabase(UserHandle.USER_OWNER);
- } else {
- dbHelper = getOrEstablishDatabase(callingUser);
+ if (callingUser != UserHandle.USER_OWNER
+ && shouldShadowParentProfile(callingUser, sSystemCloneToManagedKeys, request)) {
+ callingUser = UserHandle.USER_OWNER;
}
+ dbHelper = getOrEstablishDatabase(callingUser);
cache = sSystemCaches.get(callingUser);
return lookupValue(dbHelper, TABLE_SYSTEM, cache, request);
}
@@ -710,10 +724,9 @@
UserManager.DISALLOW_SHARE_LOCATION, new UserHandle(callingUser))) {
return sSecureCaches.get(callingUser).putIfAbsent(request, "");
}
- dbHelper = getOrEstablishDatabase(UserHandle.USER_OWNER);
- } else {
- dbHelper = getOrEstablishDatabase(callingUser);
+ callingUser = UserHandle.USER_OWNER;
}
+ dbHelper = getOrEstablishDatabase(callingUser);
cache = sSecureCaches.get(callingUser);
return lookupValue(dbHelper, TABLE_SECURE, cache, request);
}
@@ -952,8 +965,13 @@
checkWritePermissions(args);
SettingsCache cache = cacheForTable(callingUser, args.table);
- final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser);
- mutationCount.incrementAndGet();
+ final AtomicInteger mutationCount;
+ synchronized (this) {
+ mutationCount = sKnownMutationsInFlight.get(callingUser);
+ }
+ if (mutationCount != null) {
+ mutationCount.incrementAndGet();
+ }
DatabaseHelper dbH = getOrEstablishDatabase(
TABLE_GLOBAL.equals(args.table) ? UserHandle.USER_OWNER : callingUser);
SQLiteDatabase db = dbH.getWritableDatabase();
@@ -969,7 +987,9 @@
db.setTransactionSuccessful();
} finally {
db.endTransaction();
- mutationCount.decrementAndGet();
+ if (mutationCount != null) {
+ mutationCount.decrementAndGet();
+ }
}
sendNotify(uri, callingUser);
@@ -1105,12 +1125,19 @@
return Uri.withAppendedPath(url, name);
}
- final AtomicInteger mutationCount = sKnownMutationsInFlight.get(desiredUserHandle);
- mutationCount.incrementAndGet();
+ final AtomicInteger mutationCount;
+ synchronized (this) {
+ mutationCount = sKnownMutationsInFlight.get(callingUser);
+ }
+ if (mutationCount != null) {
+ mutationCount.incrementAndGet();
+ }
DatabaseHelper dbH = getOrEstablishDatabase(desiredUserHandle);
SQLiteDatabase db = dbH.getWritableDatabase();
final long rowId = db.insert(args.table, null, initialValues);
- mutationCount.decrementAndGet();
+ if (mutationCount != null) {
+ mutationCount.decrementAndGet();
+ }
if (rowId <= 0) return null;
SettingsCache.populate(cache, initialValues); // before we notify
@@ -1137,12 +1164,19 @@
}
checkWritePermissions(args);
- final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser);
- mutationCount.incrementAndGet();
+ final AtomicInteger mutationCount;
+ synchronized (this) {
+ mutationCount = sKnownMutationsInFlight.get(callingUser);
+ }
+ if (mutationCount != null) {
+ mutationCount.incrementAndGet();
+ }
DatabaseHelper dbH = getOrEstablishDatabase(callingUser);
SQLiteDatabase db = dbH.getWritableDatabase();
int count = db.delete(args.table, args.where, args.args);
- mutationCount.decrementAndGet();
+ if (mutationCount != null) {
+ mutationCount.decrementAndGet();
+ }
if (count > 0) {
invalidateCache(callingUser, args.table); // before we notify
sendNotify(url, callingUser);
@@ -1170,12 +1204,19 @@
checkWritePermissions(args);
checkUserRestrictions(initialValues.getAsString(Settings.Secure.NAME), callingUser);
- final AtomicInteger mutationCount = sKnownMutationsInFlight.get(callingUser);
- mutationCount.incrementAndGet();
+ final AtomicInteger mutationCount;
+ synchronized (this) {
+ mutationCount = sKnownMutationsInFlight.get(callingUser);
+ }
+ if (mutationCount != null) {
+ mutationCount.incrementAndGet();
+ }
DatabaseHelper dbH = getOrEstablishDatabase(callingUser);
SQLiteDatabase db = dbH.getWritableDatabase();
int count = db.update(args.table, initialValues, args.where, args.args);
- mutationCount.decrementAndGet();
+ if (mutationCount != null) {
+ mutationCount.decrementAndGet();
+ }
if (count > 0) {
invalidateCache(callingUser, args.table); // before we notify
sendNotify(url, callingUser);
diff --git a/packages/Shell/res/values-pt/strings.xml b/packages/Shell/res/values-pt/strings.xml
index 3d4c51f..c166bf3 100644
--- a/packages/Shell/res/values-pt/strings.xml
+++ b/packages/Shell/res/values-pt/strings.xml
@@ -20,6 +20,6 @@
<string name="bugreport_finished_title" msgid="2293711546892863898">"Relatório de bugs capturado"</string>
<string name="bugreport_finished_text" product="watch" msgid="8389172248433597683">"Deslize para a esquerda para compartilhar seu relatório de bugs"</string>
<string name="bugreport_finished_text" product="default" msgid="3559904746859400732">"Toque para compartilhar seu relatório de bugs"</string>
- <string name="bugreport_confirm" msgid="5130698467795669780">"Os relatórios de bugs contêm dados de diversos arquivos de registro do sistema, inclusive informações pessoais e particulares. Compartilhe relatórios de bugs somente com aplicativos e pessoas nos quais você confia."</string>
+ <string name="bugreport_confirm" msgid="5130698467795669780">"Os relatórios de bugs contêm dados de diversos arquivos de registro do sistema, inclusive informações pessoais e particulares. Compartilhe relatórios de bugs somente com apps e pessoas nos quais você confia."</string>
<string name="bugreport_confirm_repeat" msgid="4926842460688645058">"Mostrar esta mensagem da próxima vez"</string>
</resources>
diff --git a/packages/SystemUI/res/drawable/ic_audio_alarm.xml b/packages/SystemUI/res/drawable/ic_audio_alarm.xml
new file mode 100644
index 0000000..5dd158e
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_audio_alarm.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="#ffffffff"
+ android:pathData="M44.0,11.44l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-28.24,-4.66l-2.57,-3.06 -9.19,7.71 2.57,3.06 9.19,-7.71zm9.24,9.22l-3.0,0.0l0.0,12.0l9.49,5.71 1.51,-2.47 -8.0,-4.74l0.0,-10.5zm-1.01,-8.0c-9.95,0.0 -17.99,8.06 -17.99,18.0s8.04,18.0 17.99,18.0 18.01,-8.06 18.01,-18.0 -8.06,-18.0 -18.01,-18.0zm0.01,32.0c-7.73,0.0 -14.0,-6.27 -14.0,-14.0s6.27,-14.0 14.0,-14.0 14.0,6.27 14.0,14.0 -6.26,14.0 -14.0,14.0z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_audio_alarm_mute.xml b/packages/SystemUI/res/drawable/ic_audio_alarm_mute.xml
new file mode 100644
index 0000000..af445e3
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_audio_alarm_mute.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="#ffffffff"
+ android:pathData="M24.0,12.0c7.73,0.0 14.0,6.27 14.0,14.0 0.0,1.69 -0.31,3.3 -0.86,4.8l3.04,3.04c1.16,-2.37 1.82,-5.03 1.82,-7.84 0.0,-9.94 -8.06,-18.0 -18.01,-18.0 -2.81,0.0 -5.46,0.66 -7.84,1.81l3.05,3.05c1.5,-0.55 3.11,-0.86 4.8,-0.86zm20.0,-0.56l-9.19,-7.71 -2.57,3.06 9.19,7.71 2.57,-3.06zm-38.16,-6.85l-2.55,2.54 2.66,2.66 -2.22,1.86 2.84,2.84 2.22,-1.86 1.6,1.6c-2.73,3.16 -4.39,7.27 -4.39,11.77 0.0,9.94 8.04,18.0 17.99,18.0 4.51,0.0 8.62,-1.67 11.77,-4.4l4.4,4.4 2.54,-2.55 -34.91,-34.91 -1.95,-1.95zm27.1,32.19c-2.43,2.01 -5.54,3.22 -8.94,3.22 -7.73,0.0 -14.0,-6.27 -14.0,-14.0 0.0,-3.4 1.21,-6.51 3.22,-8.94l19.72,19.72zm-16.91,-30.23l-2.84,-2.84 -1.7,1.43 2.84,2.84 1.7,-1.43z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_audio_vol.xml b/packages/SystemUI/res/drawable/ic_audio_vol.xml
new file mode 100644
index 0000000..76c14b1
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_audio_vol.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="#ffffffff"
+ android:pathData="M6.0,18.0l0.0,12.0l8.0,0.0l10.0,10.0L24.0,8.0L14.0,18.0L6.0,18.0zm27.0,6.0c0.0,-3.53 -2.04,-6.58 -5.0,-8.05l0.0,16.11c2.96,-1.48 5.0,-4.53 5.0,-8.06zM28.0,6.46l0.0,4.13c5.78,1.72 10.0,7.07 10.0,13.41s-4.22,11.69 -10.0,13.41l0.0,4.13c8.01,-1.82 14.0,-8.97 14.0,-17.54S36.01,8.28 28.0,6.46z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_audio_vol_mute.xml b/packages/SystemUI/res/drawable/ic_audio_vol_mute.xml
new file mode 100644
index 0000000..e158f7b
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_audio_vol_mute.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="48.0"
+ android:viewportHeight="48.0">
+ <path
+ android:fillColor="#ffffffff"
+ android:pathData="M33.0,24.0c0.0,-3.53 -2.04,-6.58 -5.0,-8.05l0.0,4.42l4.91,4.91c0.06,-0.42 0.09,-0.85 0.09,-1.28zm5.0,0.0c0.0,1.88 -0.41,3.65 -1.08,5.28l3.03,3.03C41.25,29.82 42.0,27.0 42.0,24.0c0.0,-8.56 -5.99,-15.72 -14.0,-17.54l0.0,4.13c5.78,1.72 10.0,7.07 10.0,13.41zM8.55,6.0L6.0,8.55 15.45,18.0L6.0,18.0l0.0,12.0l8.0,0.0l10.0,10.0L24.0,26.55l8.51,8.51c-1.34,1.03 -2.85,1.86 -4.51,2.36l0.0,4.13c2.75,-0.63 5.26,-1.89 7.37,-3.62L39.45,42.0 42.0,39.45l-18.0,-18.0L8.55,6.0zM24.0,8.0l-4.18,4.18L24.0,16.36L24.0,8.0z"/>
+</vector>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 7750ec8..bbc7ccd0e 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nee dankie"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Stel op"</string>
<string name="muted_by" msgid="6147073845094180001">"Gedemp deur <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 13389a3..52ea8f5 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -70,7 +70,7 @@
<string name="screenshot_saving_title" msgid="8242282144535555697">"ቅጽበታዊ ገጽ እይታ በማስቀመጥ ላይ..."</string>
<string name="screenshot_saving_text" msgid="2419718443411738818">"ቅጽበታዊ ገጽ እይታ እየተቀመጠ ነው::"</string>
<string name="screenshot_saved_title" msgid="6461865960961414961">"ቅጽበታዊ ገጽ እይታ ተቀርጿል"</string>
- <string name="screenshot_saved_text" msgid="1152839647677558815">"የአንተን ቅጽበታዊ ገጽ እይታ ለማየት ንካ"</string>
+ <string name="screenshot_saved_text" msgid="1152839647677558815">"የእርስዎን ቅጽበታዊ ገጽ እይታ ለማየት ይንኩ"</string>
<string name="screenshot_failed_title" msgid="705781116746922771">"ቅጽበታዊ ገጽ እይታ መቅረጽ አልተቻለም::"</string>
<string name="screenshot_failed_text" msgid="1260203058661337274">"በተገደበ የማከማቻ ቦታ ምክንያት ወይም በመተግበሪያው ወይም በድርጅትዎ ስለማይፈቀድ የማያ ገጽ ቅጽበታዊ እይታዎችን ማንሳት አይቻልም።"</string>
<string name="usb_preference_title" msgid="6551050377388882787">"የUSB ፋይል ሰደዳ አማራጮች"</string>
@@ -233,7 +233,7 @@
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"ብሩህነት"</string>
<string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"በራስ ሰር አሽከርክር"</string>
<string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"አዙሪት ተቆልፏል"</string>
- <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"ምስል ገላጭ"</string>
+ <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"በቁመት"</string>
<string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"በወርድ"</string>
<string name="quick_settings_ime_label" msgid="7073463064369468429">"የግቤት ስልት"</string>
<string name="quick_settings_location_label" msgid="5011327048748762257">"አካባቢ"</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"አይ፣ አመሰግናለሁ"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"አዋቅር"</string>
<string name="muted_by" msgid="6147073845094180001">"ድምጽ በ<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ተዘግቷል"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>። <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 8501a69..ea5be80 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"لا، شكرًا"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"إعداد"</string>
<string name="muted_by" msgid="6147073845094180001">"تم كتم الصوت بواسطة <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 4dc8b50..88b5f7e 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Няма нужда"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Настройване"</string>
<string name="muted_by" msgid="6147073845094180001">"Заглушено от <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index 6bde921..482ac90 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -221,7 +221,7 @@
<string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"এখন ভূদৃশ্য সজ্জাতে স্ক্রীন লক হয়েছে।"</string>
<string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"এখন প্রতিকৃতি সজ্জাতে স্ক্রীন লক হয়েছে।"</string>
<string name="dessert_case" msgid="1295161776223959221">"ডেজার্ট কেস"</string>
- <string name="start_dreams" msgid="7219575858348719790">"দিবাস্বপ্ন"</string>
+ <string name="start_dreams" msgid="7219575858348719790">"স্ক্রিনসেভার"</string>
<string name="ethernet_label" msgid="7967563676324087464">"ইথারনেট"</string>
<string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"বিমান মোড"</string>
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"চার্জ হচ্ছে, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
@@ -288,7 +288,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_no_interruptions_with_warning" msgid="4396898053735625287">"ব্যাঘাত ছাড়াই। এমনকি অ্যালার্মও নেই।"</string>
+ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"কোনো ব্যাঘাত ছাড়াই। এমনকি অ্যালার্মও নয়।"</string>
<string name="zen_no_interruptions" msgid="7970973750143632592">"কোনো বাধা নয়"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"শুধুমাত্র প্রাধান্য বাধাগুলি"</string>
<string name="zen_alarm_information_time" msgid="5235772206174372272">"আপনার পরবর্তী অ্যালার্মের সময় <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
@@ -335,7 +335,7 @@
<string name="profile_owned_footer" msgid="8021888108553696069">"প্রোফাইল পর্যবেক্ষণ করা হতে পারে"</string>
<string name="vpn_footer" msgid="2388611096129106812">"নেটওয়ার্ক নিরীক্ষণ করা হতে পারে"</string>
<string name="monitoring_title_device_owned" msgid="7121079311903859610">"ডিভাইস নিরীক্ষণ"</string>
- <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"প্রোফাইল পর্যবেক্ষণ করা"</string>
+ <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"প্রোফাইল দেখরেখ করা"</string>
<string name="monitoring_title" msgid="169206259253048106">"নেটওয়ার্ক নিরীক্ষণ"</string>
<string name="disable_vpn" msgid="4435534311510272506">"VPN অক্ষম করুন"</string>
<string name="disconnect_vpn" msgid="1324915059568548655">"VPN এর সংযোগ বিচ্ছিন্ন করুন"</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"না থাক"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"সেট আপ"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> দ্বারা নিঃশব্দ করা হয়েছে"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index eac6655..99e7f19 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configura"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciat per <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index ff60870..3e1a9cc 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Informace o aplikaci"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"uzamknout v aplikaci"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"vyhledat"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikaci <xliff:g id="APP">%s</xliff:g> nelze spustit."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, děkuji"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Nastavit"</string>
<string name="muted_by" msgid="6147073845094180001">"Ignorováno stranou <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 00583b1..53b6de4 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nej tak"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Konfigurer"</string>
<string name="muted_by" msgid="6147073845094180001">"Lyden blev afbrudt af <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index a878004..1e8e8b70 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nein danke"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Einrichten"</string>
<string name="muted_by" msgid="6147073845094180001">"Stummgeschaltet durch <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index d05bf29..86dd4e7 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Όχι"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Ρύθμιση"</string>
<string name="muted_by" msgid="6147073845094180001">"Σίγαση από <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 9b8d66d..460d2ac 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, thanks"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Setup"</string>
<string name="muted_by" msgid="6147073845094180001">"Muted by <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 9b8d66d..460d2ac 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, thanks"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Setup"</string>
<string name="muted_by" msgid="6147073845094180001">"Muted by <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 5ca3af8..a34096b 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Información de la aplicación"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"fijar aplicación"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"No se pudo iniciar <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciados por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 3fe5507..f6fc435 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, gracias"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 009f255..80a75dd 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tänan, ei"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Seadistus"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> vaigistas"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml
index b59e3e6..ede3139 100644
--- a/packages/SystemUI/res/values-eu-rES/strings.xml
+++ b/packages/SystemUI/res/values-eu-rES/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ez, eskerrik asko"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Konfiguratu"</string>
<string name="muted_by" msgid="6147073845094180001">"Audioa desaktibatu da (<xliff:g id="THIRD_PARTY">%1$s</xliff:g>)"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 9ddf822..98ece3c 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"خیر، سپاسگزارم"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"راهاندازی"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> آن را بیصدا کرد"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 6ede21e..f554f0b 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Sovellustiedot"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lukitse sovellukseen"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"haku"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Sovelluksen <xliff:g id="APP">%s</xliff:g> käynnistäminen epäonnistui."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ei kiitos"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Määritä asetukset"</string>
<string name="muted_by" msgid="6147073845094180001">"Mykistänyt <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 7a49531..9fe1e4c 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Détails de l\'application"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"verrouiller sur l\'application"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Impossible de lancer <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non, merci"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurer"</string>
<string name="muted_by" msgid="6147073845094180001">"Mis en sourdine par <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 64fe17d..b697bbe 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non, merci"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurer"</string>
<string name="muted_by" msgid="6147073845094180001">"Son coupé par : <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml
index 5ffb7ac..ce02ae9 100644
--- a/packages/SystemUI/res/values-gl-rES/strings.xml
+++ b/packages/SystemUI/res/values-gl-rES/strings.xml
@@ -253,7 +253,7 @@
<string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Non hai rede"</string>
<string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wifi desactivada"</string>
<string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Non hai redes gardadas dispoñibles"</string>
- <string name="quick_settings_cast_title" msgid="1893629685050355115">"Pantalla de emisión"</string>
+ <string name="quick_settings_cast_title" msgid="1893629685050355115">"Enviar pantalla"</string>
<string name="quick_settings_casting" msgid="6601710681033353316">"Emitindo"</string>
<string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sen nome"</string>
<string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Listo para emitir"</string>
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Non grazas"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index e5080e2..5cdae2a 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -52,14 +52,14 @@
<string name="bluetooth_tethered" msgid="7094101612161133267">"ब्लूटूथ टीदर किया गया"</string>
<string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"इनपुट पद्धति सेट करें"</string>
<string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"भौतिक कीबोर्ड"</string>
- <string name="usb_device_permission_prompt" msgid="834698001271562057">"ऐप्स <xliff:g id="APPLICATION">%1$s</xliff:g> को USB उपकरण तक पहुंचने दें?"</string>
- <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"ऐप्स <xliff:g id="APPLICATION">%1$s</xliff:g> को USB सहायक उपकरण तक पहुंचने दें?"</string>
- <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"जब यह USB उपकरण कनेक्ट किया जाए, तब <xliff:g id="ACTIVITY">%1$s</xliff:g> को खोलें?"</string>
+ <string name="usb_device_permission_prompt" msgid="834698001271562057">"ऐप्स <xliff:g id="APPLICATION">%1$s</xliff:g> को USB डिवाइस तक पहुंचने दें?"</string>
+ <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"ऐप्स <xliff:g id="APPLICATION">%1$s</xliff:g> को USB सहायक डिवाइस तक पहुंचने दें?"</string>
+ <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"जब यह USB डिवाइस कनेक्ट किया जाए, तब <xliff:g id="ACTIVITY">%1$s</xliff:g> को खोलें?"</string>
<string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"जब यह USB एसेसरी कनेक्ट की जाए, तब <xliff:g id="ACTIVITY">%1$s</xliff:g> को खोलें?"</string>
- <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"इस USB सहायक उपकरण के साथ कोई भी इंस्टॉल ऐप्स काम नहीं करता. इस सहायक उपकरण के बारे में यहां अधिक जानें: <xliff:g id="URL">%1$s</xliff:g>"</string>
+ <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"इस USB सहायक डिवाइस के साथ कोई भी इंस्टॉल ऐप्स काम नहीं करता. इस सहायक डिवाइस के बारे में यहां अधिक जानें: <xliff:g id="URL">%1$s</xliff:g>"</string>
<string name="title_usb_accessory" msgid="4966265263465181372">"USB सहायक साधन"</string>
<string name="label_view" msgid="6304565553218192990">"देखें"</string>
- <string name="always_use_device" msgid="1450287437017315906">"इस USB उपकरण के लिए डिफ़ॉल्ट रूप से उपयोग करें"</string>
+ <string name="always_use_device" msgid="1450287437017315906">"इस USB डिवाइस के लिए डिफ़ॉल्ट रूप से उपयोग करें"</string>
<string name="always_use_accessory" msgid="1210954576979621596">"इस USB एसेसरी के लिए डिफ़ॉल्ट रूप से उपयोग करें"</string>
<string name="usb_debugging_title" msgid="4513918393387141949">"USB डीबगिंग करने दें?"</string>
<string name="usb_debugging_message" msgid="2220143855912376496">"कंप्यूटर का RSA कुंजी फ़िंगरप्रिंट है:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
@@ -204,7 +204,7 @@
<string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G डेटा बंद है"</string>
<string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"सेल्युलर डेटा बंद है"</string>
<string name="data_usage_disabled_dialog_title" msgid="8723412000355709802">"डेटा बंद है"</string>
- <string name="data_usage_disabled_dialog" msgid="6468718338038876604">"आपके उपकरण ने डेटा बंद कर दिया है क्योंकि आपके द्वारा सेट की गई सीमा पार हो गई है.\n\nइसे पुनः चालू करने से आपका वाहक शुल्क ले सकता है."</string>
+ <string name="data_usage_disabled_dialog" msgid="6468718338038876604">"आपके डिवाइस ने डेटा बंद कर दिया है क्योंकि आपके द्वारा सेट की गई सीमा पार हो गई है.\n\nइसे पुनः चालू करने से आपका वाहक शुल्क ले सकता है."</string>
<string name="data_usage_disabled_dialog_enable" msgid="5538068036107372895">"डेटा चालू करें"</string>
<string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"कोई इंटरनेट कनेक्शन नहीं"</string>
<string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"वाई-फ़ाई कनेक्ट किया गया"</string>
@@ -227,9 +227,9 @@
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"चार्ज हो रही है, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"चार्ज हो गई है"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लूटूथ"</string>
- <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लूटूथ (<xliff:g id="NUMBER">%d</xliff:g> उपकरण)"</string>
+ <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लूटूथ (<xliff:g id="NUMBER">%d</xliff:g> डिवाइस)"</string>
<string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ब्लूटूथ बंद"</string>
- <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"कोई भी युग्मित उपकरण उपलब्ध नहीं"</string>
+ <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"कोई भी युग्मित डिवाइस उपलब्ध नहीं"</string>
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"स्क्रीन की रोशनी"</string>
<string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"स्वत: घुमाएं"</string>
<string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"घुमाना लॉक किया गया"</string>
@@ -238,7 +238,7 @@
<string name="quick_settings_ime_label" msgid="7073463064369468429">"इनपुट विधि"</string>
<string name="quick_settings_location_label" msgid="5011327048748762257">"स्थान"</string>
<string name="quick_settings_location_off_label" msgid="7464544086507331459">"स्थान बंद"</string>
- <string name="quick_settings_media_device_label" msgid="1302906836372603762">"मीडिया उपकरण"</string>
+ <string name="quick_settings_media_device_label" msgid="1302906836372603762">"मीडिया डिवाइस"</string>
<string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
<string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"केवल आपातकालीन कॉल"</string>
<string name="quick_settings_settings_label" msgid="5326556592578065401">"सेटिंग"</string>
@@ -253,9 +253,9 @@
<string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"कोई भी सहेजा गया नेटवर्क उपलब्ध नहीं"</string>
<string name="quick_settings_cast_title" msgid="1893629685050355115">"स्क्रीन कास्ट करें"</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_name" msgid="5367253104742382945">"अनाम डिवाइस"</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_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>
<string name="quick_settings_inversion_label" msgid="8790919884718619648">"रंग उलटें"</string>
@@ -288,7 +288,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_no_interruptions_with_warning" msgid="4396898053735625287">"कोई बाधा नहीं. यहां तक कि अलार्म भी नहीं."</string>
+ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ऐसा सेट करें की कोई कि अलार्म भी ना हो."</string>
<string name="zen_no_interruptions" msgid="7970973750143632592">"कोई अवरोध नहीं"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"केवल प्राथमिक अवरोध"</string>
<string name="zen_alarm_information_time" msgid="5235772206174372272">"आपका अगला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> पर है"</string>
@@ -331,29 +331,30 @@
<string name="clear_all_notifications_text" msgid="814192889771462828">"सभी साफ करें"</string>
<string name="media_projection_action_text" msgid="8470872969457985954">"अब प्रारंभ करें"</string>
<string name="empty_shade_text" msgid="708135716272867002">"कोई नोटिफिकेशन नहीं"</string>
- <string name="device_owned_footer" msgid="3802752663326030053">"उपकरण को मॉनीटर किया जा सकता है"</string>
+ <string name="device_owned_footer" msgid="3802752663326030053">"डिवाइस को मॉनीटर किया जा सकता है"</string>
<string name="profile_owned_footer" msgid="8021888108553696069">"प्रोफ़ाइल को मॉनीटर किया जा सकता है"</string>
<string name="vpn_footer" msgid="2388611096129106812">"नेटवर्क को मॉनीटर किया जा सकता है"</string>
- <string name="monitoring_title_device_owned" msgid="7121079311903859610">"उपकरण को मॉनीटर करना"</string>
+ <string name="monitoring_title_device_owned" msgid="7121079311903859610">"डिवाइस को मॉनीटर करना"</string>
<string name="monitoring_title_profile_owned" msgid="6790109874733501487">"प्रोफ़ाइल को मॉनीटर करना"</string>
<string name="monitoring_title" msgid="169206259253048106">"नेटवर्क को मॉनीटर करना"</string>
<string name="disable_vpn" msgid="4435534311510272506">"VPN अक्षम करें"</string>
<string name="disconnect_vpn" msgid="1324915059568548655">"VPN डिस्कनेक्ट करें"</string>
- <string name="monitoring_description_device_owned" msgid="7512371572956715493">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
- <string name="monitoring_description_vpn" msgid="7288268682714305659">"आपने \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" को VPN कनेक्शन सेट करने की अनुमति दी है.\n\nयह ऐप्स ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके उपकरण और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
- <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"आप VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") से कनेक्ट हैं.\n\nआपका VPN सेवा प्रदाता ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके उपकरण और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
- <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आपने VPN कनेक्शन सेट करने के लिए \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" अनुमति भी दी है. यह ऐप्स नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
- <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक, ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") से कनेक्ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
- <string name="monitoring_description_profile_owned" msgid="2370062794285691713">"यह प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी उपकरण और नेटवर्क गतिविधि को मॉनीटर कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
- <string name="monitoring_description_device_and_profile_owned" msgid="8685301493845456293">"यह उपकरण इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nआपकी प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी उपकरण और नेटवर्क गतिविधि को मॉनीटर कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
+ <string name="monitoring_description_device_owned" msgid="7512371572956715493">"यह डिवाइस इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
+ <string name="monitoring_description_vpn" msgid="7288268682714305659">"आपने \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" को VPN कनेक्शन सेट करने की अनुमति दी है.\n\nयह ऐप्स ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके डिवाइस और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
+ <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"आप VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") से कनेक्ट हैं.\n\nआपका VPN सेवा प्रदाता ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके डिवाइस और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
+ <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"यह डिवाइस इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आपने VPN कनेक्शन सेट करने के लिए \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" अनुमति भी दी है. यह ऐप्स नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
+ <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"यह डिवाइस इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक, ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") से कनेक्ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
+ <string name="monitoring_description_profile_owned" msgid="2370062794285691713">"यह प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी डिवाइस और नेटवर्क गतिविधि को मॉनीटर कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
+ <string name="monitoring_description_device_and_profile_owned" msgid="8685301493845456293">"यह डिवाइस इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nआपकी प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी डिवाइस और नेटवर्क गतिविधि को मॉनीटर कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
<string name="monitoring_description_vpn_profile_owned" msgid="847491346263295767">"यह प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर करने में सक्षम है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आपने \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" को VPN कनेक्शन सेट करने की अनुमति दी है. यह ऐप्स नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
<string name="monitoring_description_legacy_vpn_profile_owned" msgid="4095516964132237051">"यह प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर करने में सक्षम है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") से भी कनेक्ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
- <string name="monitoring_description_vpn_device_and_profile_owned" msgid="9193588924767232909">"उपकरण इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nप्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nव्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित नेटवर्क गतिविधि मॉनीटर कर सकते हैं. अधिक जानकारी हेतु, व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आपने \"<xliff:g id="APPLICATION">%3$s</xliff:g>\" को VPN कनेक्शन सेट करने की अनुमति दी है. यह ऐप्स नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
- <string name="monitoring_description_legacy_vpn_device_and_profile_owned" msgid="6935475023447698473">"यह उपकरण इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nआपकी प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर करने में सक्षम है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%3$s</xliff:g>\") से भी कनेक्ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
- <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"जब तक कि आप मैन्युअल रूप से अनलॉक नहीं करते तब तक उपकरण लॉक रहेगा"</string>
+ <string name="monitoring_description_vpn_device_and_profile_owned" msgid="9193588924767232909">"डिवाइस इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nप्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nव्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित नेटवर्क गतिविधि मॉनीटर कर सकते हैं. अधिक जानकारी हेतु, व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आपने \"<xliff:g id="APPLICATION">%3$s</xliff:g>\" को VPN कनेक्शन सेट करने की अनुमति दी है. यह ऐप्स नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
+ <string name="monitoring_description_legacy_vpn_device_and_profile_owned" msgid="6935475023447698473">"यह डिवाइस इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nआपकी प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nआपका व्यवस्थापक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर करने में सक्षम है. अधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%3$s</xliff:g>\") से भी कनेक्ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि भी मॉनीटर कर सकता है."</string>
+ <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"जब तक कि आप मैन्युअल रूप से अनलॉक नहीं करते तब तक डिवाइस लॉक रहेगा"</string>
<string name="hidden_notifications_title" msgid="7139628534207443290">"सूचनाएं अधिक तेज़ी से प्राप्त करें"</string>
<string name="hidden_notifications_text" msgid="2326409389088668981">"आपके द्वारा उन्हें अनलॉक किए जाने से पहले देखें"</string>
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"नहीं धन्यवाद"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"सेट करें"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> द्वारा म्यूट किया गया"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 2d291c2..c963398 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, hvala"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Postavi"</string>
<string name="muted_by" msgid="6147073845094180001">"Zvuk je isklj. treća strana <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 0304623..6272417 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nem, köszönöm"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Beállítás"</string>
<string name="muted_by" msgid="6147073845094180001">"A(z) <xliff:g id="THIRD_PARTY">%1$s</xliff:g> elnémította"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 51aba9b..bd68320 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Հավելվածի մասին"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Lock-to-app"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"որոնել"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Հնարավոր չէ գործարկել <xliff:g id="APP">%s</xliff:g>-ը:"</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ոչ, շնորհակալություն"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Կարգավորել"</string>
<string name="muted_by" msgid="6147073845094180001">"Համրեցվել է <xliff:g id="THIRD_PARTY">%1$s</xliff:g>-ի կողմից"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 8220a83..d863d5e 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tidak"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Siapkan"</string>
<string name="muted_by" msgid="6147073845094180001">"Dinonaktifkan oleh <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml
index 735cb88..b03ee44 100644
--- a/packages/SystemUI/res/values-is-rIS/strings.xml
+++ b/packages/SystemUI/res/values-is-rIS/strings.xml
@@ -346,7 +346,7 @@
<string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Stjórnandi þessa tækis er:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nStjórnandinn getur fylgst með netvirkni þinni, þ. á m. tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við stjórnandann til að fá frekari upplýsingar.\n\nÞú ert einnig tengd(ur) VPN-neti („<xliff:g id="APPLICATION">%2$s</xliff:g>“). VPN-þjónustuaðilinn þinn getur líka fylgst með netvirkni þinni."</string>
<string name="monitoring_description_profile_owned" msgid="2370062794285691713">"Þessu sniði er stjórnað af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með tækinu og netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string>
<string name="monitoring_description_device_and_profile_owned" msgid="8685301493845456293">"Þessu tæki er stjórnað af:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nSniðinu þínu er stjórnað af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með tækinu og netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string>
- <string name="monitoring_description_vpn_profile_owned" msgid="847491346263295767">"Þessu tæki er stjórnað af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú hefur einnig gefið „<xliff:g id="APPLICATION">%2$s</xliff:g>“ heimild til að setja upp VPN-tengingu. Þetta forrit getur einnig fylgst með netnotkun."</string>
+ <string name="monitoring_description_vpn_profile_owned" msgid="847491346263295767">"Þessu sniði er stjórnað af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú hefur einnig gefið „<xliff:g id="APPLICATION">%2$s</xliff:g>“ heimild til að setja upp VPN-tengingu. Þetta forrit getur einnig fylgst með netnotkun."</string>
<string name="monitoring_description_legacy_vpn_profile_owned" msgid="4095516964132237051">"Þessu sniði er stjórnað af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú ert einnig með tengingu við VPN-net („<xliff:g id="APPLICATION">%2$s</xliff:g>“). VPN-þjónustuaðilinn getur einnig fylgst með netnotkun."</string>
<string name="monitoring_description_vpn_device_and_profile_owned" msgid="9193588924767232909">"Þessu tæki er stjórnað af:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nSniðinu þínu er stjórnað af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú hefur einnig gefið „<xliff:g id="APPLICATION">%3$s</xliff:g>“ heimild til að setja upp VPN-tengingu. Þetta forrit getur einnig fylgst með netnotkun."</string>
<string name="monitoring_description_legacy_vpn_device_and_profile_owned" msgid="6935475023447698473">"Þessu tæki er stjórnað af:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nSniðinu þínu er stjórnað af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú ert einnig með tengingu við VPN-net („<xliff:g id="APPLICATION">%3$s</xliff:g>“). VPN-þjónustuaðilinn getur einnig fylgst með netnotkun."</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nei, takk"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Setja upp"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> tók hljóðið af"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 239e2aa..2519317 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -329,7 +329,7 @@
<string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
<string name="notification_hidden_text" msgid="1135169301897151909">"Contenuti nascosti"</string>
<string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> inizierà ad acquisire tutto ciò che è visualizzato sul tuo schermo."</string>
- <string name="media_projection_remember_text" msgid="3103510882172746752">"Non·mostrare·più"</string>
+ <string name="media_projection_remember_text" msgid="3103510882172746752">"Non mostrare più"</string>
<string name="clear_all_notifications_text" msgid="814192889771462828">"Cancella tutto"</string>
<string name="media_projection_action_text" msgid="8470872969457985954">"Avvia adesso"</string>
<string name="empty_shade_text" msgid="708135716272867002">"Nessuna notifica"</string>
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"No, grazie"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configura"</string>
<string name="muted_by" msgid="6147073845094180001">"Audio disattivato da <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index eed8e1c..a51d1d8 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -339,21 +339,22 @@
<string name="monitoring_title" msgid="169206259253048106">"מעקב אחר פעילות ברשת"</string>
<string name="disable_vpn" msgid="4435534311510272506">"השבת VPN"</string>
<string name="disconnect_vpn" msgid="1324915059568548655">"נתק את ה-VPN"</string>
- <string name="monitoring_description_device_owned" msgid="7512371572956715493">"המכשיר הזה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, צור קשר עם מנהל המערכת."</string>
- <string name="monitoring_description_vpn" msgid="7288268682714305659">"נתת ל-\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" הרשאה להגדרת חיבור VPN.\n\nהאפליקציה הזו יכולה לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים."</string>
- <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"אתה מחובר ל-VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nספק שירות ה-VPN שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים."</string>
- <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, נתת ל-\"<xliff:g id="APPLICATION">%2$s</xliff:g>\" הרשאה להגדרת חיבור VPN. גם אפליקציה זו יכולה לעקוב אחר הפעילות שלך ברשת."</string>
- <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, אתה מחובר ל-VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). גם ספק שירות ה-VPN שלך יכול לעקוב אחר הפעילות שלך ברשת."</string>
- <string name="monitoring_description_profile_owned" msgid="2370062794285691713">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה למנהל מערכת."</string>
- <string name="monitoring_description_device_and_profile_owned" msgid="8685301493845456293">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה למנהל מערכת."</string>
- <string name="monitoring_description_vpn_profile_owned" msgid="847491346263295767">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\n בנוסף, הענקת הרשאת \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" כדי להגדיר חיבור VPN. אפליקציה זו יכולה גם לעקוב אחר פעילות הרשת."</string>
- <string name="monitoring_description_legacy_vpn_profile_owned" msgid="4095516964132237051">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, אתה מחובר אל VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). גם ספק השירות של VPN יכול לעקוב אחר פעילות הרשת."</string>
- <string name="monitoring_description_vpn_device_and_profile_owned" msgid="9193588924767232909">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, הענקת הרשאת \"<xliff:g id="APPLICATION">%3$s</xliff:g>\" כדי להגדיר חיבור VPN. אפליקציה זו יכולה גם לעקוב אחר פעילות הרשת."</string>
- <string name="monitoring_description_legacy_vpn_device_and_profile_owned" msgid="6935475023447698473">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, אתה מחובר אל VPN (\"<xliff:g id="APPLICATION">%3$s</xliff:g>\"). גם ספק השירות של VPN יכול לעקוב אחר פעילות הרשת."</string>
+ <string name="monitoring_description_device_owned" msgid="7512371572956715493">"המכשיר הזה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, צור קשר עם מנהל המערכת."</string>
+ <string name="monitoring_description_vpn" msgid="7288268682714305659">"נתת ל-\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" הרשאה להגדרת חיבור VPN.\n\nהאפליקציה הזו יכולה לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות, ואתרים מאובטחים."</string>
+ <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"אתה מחובר ל-VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nספק שירות ה-VPN שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים."</string>
+ <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, נתת ל-\"<xliff:g id="APPLICATION">%2$s</xliff:g>\" הרשאה להגדרת חיבור VPN. גם אפליקציה זו יכולה לעקוב אחר הפעילות שלך ברשת."</string>
+ <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, אתה מחובר ל-VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). גם ספק שירות ה-VPN שלך יכול לעקוב אחר הפעילות שלך ברשת."</string>
+ <string name="monitoring_description_profile_owned" msgid="2370062794285691713">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה למנהל מערכת."</string>
+ <string name="monitoring_description_device_and_profile_owned" msgid="8685301493845456293">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה למנהל מערכת."</string>
+ <string name="monitoring_description_vpn_profile_owned" msgid="847491346263295767">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\n בנוסף, הענקת הרשאת \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" כדי להגדיר חיבור VPN. אפליקציה זו יכולה גם לעקוב אחר פעילות הרשת."</string>
+ <string name="monitoring_description_legacy_vpn_profile_owned" msgid="4095516964132237051">"פרופיל זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, אתה מחובר אל VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). גם ספק השירות של VPN יכול לעקוב אחר פעילות הרשת."</string>
+ <string name="monitoring_description_vpn_device_and_profile_owned" msgid="9193588924767232909">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, הענקת הרשאת \"<xliff:g id="APPLICATION">%3$s</xliff:g>\" כדי להגדיר חיבור VPN. אפליקציה זו יכולה גם לעקוב אחר פעילות הרשת."</string>
+ <string name="monitoring_description_legacy_vpn_device_and_profile_owned" msgid="6935475023447698473">"מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nהפרופיל שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים. למידע נוסף, פנה למנהל מערכת.\n\nבנוסף, אתה מחובר אל VPN (\"<xliff:g id="APPLICATION">%3$s</xliff:g>\"). גם ספק השירות של VPN יכול לעקוב אחר פעילות הרשת."</string>
<string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"המכשיר יישאר נעול עד שתבטל את נעילתו באופן ידני"</string>
<string name="hidden_notifications_title" msgid="7139628534207443290">"קבל התראות מהר יותר"</string>
<string name="hidden_notifications_text" msgid="2326409389088668981">"צפה בהן לפני שתבטל נעילה"</string>
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"לא, תודה"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"הגדר"</string>
<string name="muted_by" msgid="6147073845094180001">"הושתק על ידי <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index b81ea5d..d313668 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"キャンセル"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>によりミュートになっています"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 6010df5..f9975ec 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"აპლიკაციის შესახებ"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"აპზე ფიქსაცია"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"ძიება"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>-ის გამოძახება ვერ მოხერხდა."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"არა, გმადლობთ"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"დაყენება"</string>
<string name="muted_by" msgid="6147073845094180001">"დადუმებულია <xliff:g id="THIRD_PARTY">%1$s</xliff:g>-ის მიერ"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml
index 4424595..79baeb7 100644
--- a/packages/SystemUI/res/values-kk-rKZ/strings.xml
+++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Жоқ, рақмет"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Реттеу"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> үнін өшірген"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index e229dc6..31fb463 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"ទេ អរគុណ!"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"រៀបចំ"</string>
<string name="muted_by" msgid="6147073845094180001">"បានបិទសំឡេងដោយ <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index bf55707e..c867aba 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"ಬೇಡ ಧನ್ಯವಾದಗಳು"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"ಹೊಂದಿಸು"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ಅವರಿಂದ ಮ್ಯೂಟ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index e767bc8..8bb6b53a 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"애플리케이션 정보"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"앱에 잠금"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"검색"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g>을(를) 시작할 수 없습니다."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"사용 안함"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"설정"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>에서 알림음 음소거"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml
index 799241f..e729d95 100644
--- a/packages/SystemUI/res/values-ky-rKG/strings.xml
+++ b/packages/SystemUI/res/values-ky-rKG/strings.xml
@@ -382,4 +382,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Жок, рахмат"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Орнотуу"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> тарабынан үнсүздөлдү"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index 0feefc4..502ec44 100644
--- a/packages/SystemUI/res/values-lo-rLA/strings.xml
+++ b/packages/SystemUI/res/values-lo-rLA/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"ບໍ່, ຂອບໃຈ"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"ຕັ້ງຄ່າ"</string>
<string name="muted_by" msgid="6147073845094180001">"ຖືກປິດສຽງໂດຍ <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index aa1fdb7..7439b97 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, ačiū"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Nustatyti"</string>
<string name="muted_by" msgid="6147073845094180001">"Nutildė <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index c013a56..e1ee182 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nē"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Iestatīt"</string>
<string name="muted_by" msgid="6147073845094180001">"Skaņu izslēdza <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml
index 9c2b2a6..cde9d24 100644
--- a/packages/SystemUI/res/values-mk-rMK/strings.xml
+++ b/packages/SystemUI/res/values-mk-rMK/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Не, фала"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Постави"</string>
<string name="muted_by" msgid="6147073845094180001">"Звукот го исклучи <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index 63fcec2..a42bd51 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"വേണ്ട, നന്ദി"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"സജ്ജീകരിക്കുക"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>, മ്യൂട്ടുചെയ്തു"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index caa4c8a..2b9c707 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Үгүй"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Тохируулах"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>-с хаасан"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml
index cf59142..e87ad5b8 100644
--- a/packages/SystemUI/res/values-mr-rIN/strings.xml
+++ b/packages/SystemUI/res/values-mr-rIN/strings.xml
@@ -290,7 +290,7 @@
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी डावीकडे स्लाइड करा."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कोणतेही व्यत्यय नाहीत. अगदी अलार्मचे देखील नाहीत."</string>
<string name="zen_no_interruptions" msgid="7970973750143632592">"कोणतेही व्यत्यय नाही"</string>
- <string name="zen_important_interruptions" msgid="3477041776609757628">"प्राधान्य व्यत्यय केवळ"</string>
+ <string name="zen_important_interruptions" msgid="3477041776609757628">"केवळ प्राधान्य दिलेले व्यत्यय"</string>
<string name="zen_alarm_information_time" msgid="5235772206174372272">"आपला पुढील अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता आहे"</string>
<string name="zen_alarm_information_day_time" msgid="8422733576255047893">"आपला पुढील अलार्म <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> आहे"</string>
<string name="zen_alarm_warning" msgid="6873910860111498041">"आपण आपला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता ऐकणार नाही"</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"नाही धन्यवाद"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"सेट अप"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> द्वारे नि:शब्द केले"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index f1369e5..98a60fa 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Maklumat Aplikasi"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"kunci ke apl"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"cari"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Tidak dapat memulakan <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Tidak"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Sediakan"</string>
<string name="muted_by" msgid="6147073845094180001">"Diredam oleh <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 479876a..47af85f 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -337,9 +337,9 @@
<string name="monitoring_title" msgid="169206259253048106">"ကွန်ရက်ကို စောင့်ကြပ်ခြင်း"</string>
<string name="disable_vpn" msgid="4435534311510272506">"VPN ကို ပိတ်ထားရန်"</string>
<string name="disconnect_vpn" msgid="1324915059568548655">"VPN ကို အဆက်ဖြတ်ရန်"</string>
- <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ဤစက်ပစ္စည်းကို စီမံခန့်ခွဲသူ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင့်အက်ဒ်မင်သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။\n\nနောက်ထပ်အချက်အလက်များအတွက်၊ သင့်အက်ဒ်မင်ကို ဆက်သွယ်ပါ။"</string>
- <string name="monitoring_description_vpn" msgid="7288268682714305659">"သင် \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ကို VPN စတင်သုံးခွင့်ပေးလိုက်သည်။ \n\n ဤ app သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
- <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") ကို သင်ချိတ်ဆက်မိ၏။\n\nသင့် VPN ဝန်ဆောင်မှုပေးသူသည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
+ <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ဤစက်ပစ္စည်းကို စီမံခန့်ခွဲသူ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင့်အက်ဒ်မင်သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ရက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။\n\nနောက်ထပ်အချက်အလက်များအတွက်၊ သင့်အက်ဒ်မင်ကို ဆက်သွယ်ပါ။"</string>
+ <string name="monitoring_description_vpn" msgid="7288268682714305659">"သင် \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ကို VPN စတင်သုံးခွင့်ပေးလိုက်သည်။ \n\n ဤ app သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ရက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
+ <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") ကို သင်ချိတ်ဆက်မိ၏။\n\nသင့် VPN ဝန်ဆောင်မှုပေးသူသည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ရက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
<string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ဒီကိရိယာကို စီမံကွပ်ကဲသူမှာ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင်၏ စီမံအုပ်ချုပ်သူက သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို၊ အီးမေးလ်များ၊ appများ နှင့် လုံခြုံသည့် ဝက်ဘ်ဆိုက်များ အပါအဝင်ကို၊ စောင့်ကြပ် နိုင်ပါသည်။ အချက်အလက်များ ပိုပြီး ရယူရန်၊ သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။\n\n ထို့အပြင် သင်သည် \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" အား VPN ချိတ်ဆက်မှု စဖွင့်လုပ်ကိုင်ရန် ခွင့်ပြုခဲ့သည်။ ဒီ appကပါ သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို စောင့်ကြပ် နိုင်ပါသည်။"</string>
<string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ဒီကိရိယာကို စီမံကွပ်ကဲသူမှာ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင်၏ စီမံအုပ်ချုပ်သူက သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို၊ အီးမေးလ်များ၊ appများ နှင့် လုံခြုံသည့် ဝက်ဘ်ဆိုက်များ အပါအဝင်ကို၊ စောင့်ကြပ် နိုင်ပါသည်။ အချက်အလက်များ ပိုပြီး ရယူရန်၊ သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။\n\nထို့အပြင်၊ သင်သည် VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") သို့ ချိတ်ဆက်ထားသည်။ သင်၏ VPN ဝန်ဆောင်မှုကို စီမံပေးသူကပါ ကွန်ရက် လှုပ်ရှားမှုများကို စောင့်ကြပ်နိုင်သေးသည်။"</string>
<string name="monitoring_description_profile_owned" msgid="2370062794285691713">"ဒီပရိုဖိုင်ကို စီမံကွပ်ကဲပေးသူ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင်၏ စီမံအုပ်ချုပ်သူသည် သင်၏ ကိရိယာ နှင့် ကွန်ရက် လှုပ်ရှားမှုများကို၊ အီးမေးလ်များ၊ appများ နှင့် လုံခြုံသည့် ဝက်ဘ်ဆိုက်များ အပါအဝင်ကို၊ စောင့်ကြပ်နိုင်သည်။ \n\n နောက်ထပ် သိလိုလျှင်၊ သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။"</string>
@@ -354,4 +354,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"မလိုအပ်ပါ"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"သတ်မှတ်ရန်"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> အသံပိတ်သည်"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>။ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 1047c38..6a02ff0 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Appinformasjon"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lås til app"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"Søk"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Kunne ikke starte <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nei takk"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Konfigurer"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> har kuttet lyden"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index d103474..c62261b 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"धन्यवाद पर्दैन"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"सेटअप गर्नुहोस्"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> द्वारा मौन गरिएको"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 0f80d63..966f2f6 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nee, bedankt"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configureren"</string>
<string name="muted_by" msgid="6147073845094180001">"Gedempt door <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 9dde319..fa15c8b 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -299,7 +299,7 @@
<string name="notification_tap_again" msgid="8524949573675922138">"Kliknij ponownie, by otworzyć"</string>
<string name="keyguard_unlock" msgid="8043466894212841998">"Przesuń w górę, by odblokować"</string>
<string name="phone_hint" msgid="3101468054914424646">"Przesuń w prawo, by przełączyć się na telefon"</string>
- <string name="camera_hint" msgid="5241441720959174226">"Przesuń w lewo, by przełączyć się na aparat"</string>
+ <string name="camera_hint" msgid="5241441720959174226">"Przesuń w lewo, by włączyć aparat"</string>
<string name="interruption_level_none" msgid="3831278883136066646">"Żadne"</string>
<string name="interruption_level_priority" msgid="6517366750688942030">"Priorytet"</string>
<string name="interruption_level_all" msgid="1330581184930945764">"Wszystkie"</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nie, dziękuję"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Skonfiguruj"</string>
<string name="muted_by" msgid="6147073845094180001">"Ściszone przez: <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 73c8e17..9202ef4 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Não, obrigado"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string>
<string name="muted_by" msgid="6147073845094180001">"Som desativado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index e968810..fb05458 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Informações do app"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"bloquear no app"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Não foi possível iniciar <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Não, obrigado"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string>
<string name="muted_by" msgid="6147073845094180001">"Som desativado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 96ac874..b9b6a76 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Informații despre aplicație"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"blocare la aplicație"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"căutare"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> nu a putut porni."</string>
<string name="expanded_header_battery_charged" msgid="5945855970267657951">"S-a î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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nu, mulț."</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Config."</string>
<string name="muted_by" msgid="6147073845094180001">"Dezactivate de <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 6c80c02..6072ec0 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Сведения о приложении"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Блокировать в приложении"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"поиск"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Не удалось запустить приложение \"<xliff:g id="APP">%s</xliff:g>\""</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Закрыть"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Настроить"</string>
<string name="muted_by" msgid="6147073845094180001">"Звук отключен приложением \"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>."</string>
</resources>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index 94310db..30b348b 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"යෙදුම් තොරතුරු"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"යෙදුමට අඟුළු දැමීම"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"සෙවීම"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ආරම්භ කළ නොහැක."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"එපා ස්තූතියි"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"සකසන්න"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> විසින් නිශ්ශබ්ද කරන ලදි"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index e4159c5..57cab47 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Informácie o aplikácii"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Uzamknutie v aplikácii"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"hľadať"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikáciu <xliff:g id="APP">%s</xliff:g> sa nepodarilo spustiť"</string>
<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>
@@ -291,9 +290,9 @@
<string name="description_target_search" msgid="3091587249776033139">"Vyhľadávanie"</string>
<string name="description_direction_up" msgid="7169032478259485180">"Prejdite prstom nahor: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Prejdite prstom doľava: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
- <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žiadne prerušenia. Dokonca ani budíky"</string>
- <string name="zen_no_interruptions" msgid="7970973750143632592">"Žiadne prerušenia"</string>
- <string name="zen_important_interruptions" msgid="3477041776609757628">"Iba prioritné prerušenia"</string>
+ <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žiadne vyrušenia, ani budíky"</string>
+ <string name="zen_no_interruptions" msgid="7970973750143632592">"Žiadne vyrušenia"</string>
+ <string name="zen_important_interruptions" msgid="3477041776609757628">"Iba prioritné vyrušenia"</string>
<string name="zen_alarm_information_time" msgid="5235772206174372272">"Ďalší budík: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
<string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ďalší budík: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string>
<string name="zen_alarm_warning" msgid="6873910860111498041">"Váš budík o <xliff:g id="ALARM_TIME">%s</xliff:g> sa nespustí"</string>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nie, vďaka"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Nastaviť"</string>
<string name="muted_by" msgid="6147073845094180001">"Stlmené aplikáciou <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 1036d0a..5f6bd1c 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Podatki o aplikaciji"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"zakleni v aplikacijo"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"iskanje"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Aplikacije <xliff:g id="APP">%s</xliff:g> ni bilo mogoče zagnati."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ne, hvala"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Nastavitev"</string>
<string name="muted_by" msgid="6147073845094180001">"Izklop zvoka: <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 5ce9ba0..5f297c3 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Не, хвала"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Подеси"</string>
<string name="muted_by" msgid="6147073845094180001">"Звук је искључио/ла <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index c972780..5f445be 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Nej tack"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Konfig."</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> har stängt av ljudet"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 74dfb90..91dcaab 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -277,8 +277,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Maelezo ya Programu"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lazimisha kutumia programu"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"tafuta"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"Haikuweza kuanzisha <xliff:g id="APP">%s</xliff:g>."</string>
<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>
@@ -355,4 +354,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Hapana, asante"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Sanidi"</string>
<string name="muted_by" msgid="6147073845094180001">"Sauti imezimwa na <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml
index 12cf154..f769e63 100644
--- a/packages/SystemUI/res/values-ta-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ta-rIN/strings.xml
@@ -260,7 +260,7 @@
<string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"தானியங்கு"</string>
<string name="quick_settings_inversion_label" msgid="8790919884718619648">"வண்ணங்களை மாற்று"</string>
<string name="quick_settings_color_space_label" msgid="853443689745584770">"வண்ணத்தைச் சரிப்படுத்தும் முறை"</string>
- <string name="quick_settings_more_settings" msgid="326112621462813682">"மேலும் அமைப்பு"</string>
+ <string name="quick_settings_more_settings" msgid="326112621462813682">"அமைப்பில் மாற்று"</string>
<string name="quick_settings_done" msgid="3402999958839153376">"முடிந்தது"</string>
<string name="quick_settings_connected" msgid="1722253542984847487">"இணைக்கப்பட்டது"</string>
<string name="quick_settings_connecting" msgid="47623027419264404">"இணைக்கிறது..."</string>
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"வேண்டாம்"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"அமை"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ஒலியடக்கினார்"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml
index ace8287..e6d4fad 100644
--- a/packages/SystemUI/res/values-te-rIN/strings.xml
+++ b/packages/SystemUI/res/values-te-rIN/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"వద్దు, ధన్యవాదాలు"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"సెటప్ చేయి"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ద్వారా మ్యూట్ చేయబడింది"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 510f75a..8a805b5 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"ไม่เป็นไร"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"ตั้งค่า"</string>
<string name="muted_by" msgid="6147073845094180001">"ปิดเสียงโดย <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g> <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index cd4fda0..4896786 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Hindi"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"I-set up"</string>
<string name="muted_by" msgid="6147073845094180001">"Na-mute ng <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index af9c0f2..4da5564 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"Uygulama Bilgileri"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"uygulamaya kilitle"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"ara"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> başlatılamadı."</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Hayır, teşekkürler"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Kur"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> tarafından kapatıldı"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 3a6d195..8887c7f 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ні, дякую"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Налаштув."</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> вимикає звук"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml
index 367f19b..8972ce5 100644
--- a/packages/SystemUI/res/values-ur-rPK/strings.xml
+++ b/packages/SystemUI/res/values-ur-rPK/strings.xml
@@ -279,8 +279,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"ایپلیکیشن کی معلومات"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"لاک ٹو ایپ"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"تلاش کریں"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> کو شروع نہیں کیا جا سکا۔"</string>
<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>
@@ -357,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"نہیں شکریہ"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"ترتیب دیں"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> کے ذریعے خاموش کردہ"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>۔ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml
index 7371330..10781ea 100644
--- a/packages/SystemUI/res/values-uz-rUZ/strings.xml
+++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Yo‘q, kerak emas"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Sozlash"</string>
<string name="muted_by" msgid="6147073845094180001">"“<xliff:g id="THIRD_PARTY">%1$s</xliff:g>” tomonidan ovozsiz qilingan"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 5665f9c..a4dccba 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Ko, cảm ơn"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Thiết lập"</string>
<string name="muted_by" msgid="6147073845094180001">"Do <xliff:g id="THIRD_PARTY">%1$s</xliff:g> tắt tiếng"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index d3ae7fe..6cc64f9 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -281,8 +281,7 @@
<string name="recents_app_info_button_label" msgid="2890317189376000030">"应用信息"</string>
<string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"固定屏幕"</string>
<string name="recents_search_bar_label" msgid="8074997400187836677">"搜索"</string>
- <!-- no translation found for recents_launch_error_message (2969287838120550506) -->
- <skip />
+ <string name="recents_launch_error_message" msgid="2969287838120550506">"无法启动<xliff:g id="APP">%s</xliff:g>。"</string>
<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>
@@ -359,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"设置"</string>
<string name="muted_by" msgid="6147073845094180001">"已被<xliff:g id="THIRD_PARTY">%1$s</xliff:g>设为静音"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>(<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>)"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 4552d6b..e18d0a2 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了,謝謝"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string>
<string name="muted_by" msgid="6147073845094180001">"靜音設定者:<xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 354f221..e890922 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -256,7 +256,7 @@
<string name="quick_settings_cast_title" msgid="1893629685050355115">"投放螢幕"</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>
@@ -358,4 +358,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"不用了,謝謝"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"設定"</string>
<string name="muted_by" msgid="6147073845094180001">"由 <xliff:g id="THIRD_PARTY">%1$s</xliff:g> 設為靜音"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 10414c6..735bf9c 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -356,4 +356,5 @@
<string name="hidden_notifications_cancel" msgid="3690709735122344913">"Cha ngiyabonga"</string>
<string name="hidden_notifications_setup" msgid="41079514801976810">"Lungisa"</string>
<string name="muted_by" msgid="6147073845094180001">"Ithuliswe ngu-<xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
+ <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
</resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 08bda1f..cd82c45 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -161,12 +161,9 @@
duration of the transition in to recents from home. -->
<integer name="recents_animate_task_enter_from_home_delay">150</integer>
<!-- The min animation duration for animating the task in when transitioning from home. -->
- <integer name="recents_animate_task_enter_from_home_duration">200</integer>
- <!-- The total animation stagger delay when entering from home. -->
- <integer name="recents_animate_task_enter_from_home_stagger_delay">110</integer>
- <!-- The total animation duration added to the last card when entering from home.
- This value is partialy also added to the previous tasks -->
- <integer name="recents_animate_task_enter_from_home_stagger_duration">72</integer>
+ <integer name="recents_animate_task_enter_from_home_duration">250</integer>
+ <!-- The animation stagger to apply to each task animation when transitioning from home. -->
+ <integer name="recents_animate_task_enter_from_home_stagger_delay">12</integer>
<!-- The short duration when animating in/out the lock to app button. -->
<integer name="recents_animate_lock_to_app_button_short_duration">150</integer>
<!-- The long duration when animating in/out the lock to app button. -->
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 1a44c8c..9ee18f3 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -858,37 +858,37 @@
<!-- Monitoring dialog disconnect vpn button [CHAR LIMIT=30] -->
<string name="disconnect_vpn">Disconnect VPN</string>
- <!-- Monitoring dialog device owner body text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog device owner body text [CHAR LIMIT=400] -->
<string name="monitoring_description_device_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator.</string>
- <!-- Monitoring dialog non-legacy VPN text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog non-legacy VPN text [CHAR LIMIT=400] -->
<string name="monitoring_description_vpn">You gave \"<xliff:g id="application">%1$s</xliff:g>\" permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites.</string>
- <!-- Monitoring dialog legacy VPN text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog legacy VPN text [CHAR LIMIT=400] -->
<string name="monitoring_description_legacy_vpn">You\'re connected to a VPN (\"<xliff:g id="application">%1$s</xliff:g>\").\n\nYour VPN service provider can monitor your device and network activity including emails, apps, and secure websites.</string>
- <!-- Monitoring dialog non-legacy VPN with device owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog non-legacy VPN with device owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_vpn_device_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you gave \"<xliff:g id="application">%2$s</xliff:g>\" permission to set up a VPN connection. This app can monitor network activity too.</string>
- <!-- Monitoring dialog legacy VPN with device owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog legacy VPN with device owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_legacy_vpn_device_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="application">%2$s</xliff:g>\"). Your VPN service provider can monitor network activity too.</string>
- <!-- Monitoring dialog profile owner body text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog profile owner body text [CHAR LIMIT=400] -->
<string name="monitoring_description_profile_owned">This profile is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator.</string>
- <!-- Monitoring dialog device and profile owner body text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog device and profile owner body text [CHAR LIMIT=400] -->
<string name="monitoring_description_device_and_profile_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\nYour profile is managed by:\n<xliff:g id="organization">%2$s</xliff:g>\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator.</string>
- <!-- Monitoring dialog non-legacy VPN with profile owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog non-legacy VPN with profile owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_vpn_profile_owned">This profile is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you gave \"<xliff:g id="application">%2$s</xliff:g>\" permission to set up a VPN connection. This app can monitor network activity too.</string>
- <!-- Monitoring dialog legacy VPN with profile owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog legacy VPN with profile owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_legacy_vpn_profile_owned">This profile is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="application">%2$s</xliff:g>\"). Your VPN service provider can monitor network activity too.</string>
- <!-- Monitoring dialog non-legacy VPN with device and profile owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog non-legacy VPN with device and profile owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_vpn_device_and_profile_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\nYour profile is managed by:\n<xliff:g id="organization">%2$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you gave \"<xliff:g id="application">%3$s</xliff:g>\" permission to set up a VPN connection. This app can monitor network activity too.</string>
- <!-- Monitoring dialog legacy VPN with device and profile owner text [CHAR LIMIT=300] -->
+ <!-- Monitoring dialog legacy VPN with device and profile owner text [CHAR LIMIT=400] -->
<string name="monitoring_description_legacy_vpn_device_and_profile_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\nYour profile is managed by:\n<xliff:g id="organization">%2$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="application">%3$s</xliff:g>\"). Your VPN service provider can monitor network activity too.</string>
<!-- Indication on the keyguard that appears when the user disables trust agents until the next time they unlock manually. [CHAR LIMIT=NONE] -->
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 3bf86a0..954046c 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -89,43 +89,23 @@
sScreenOnNotPulsingStats = new SummaryStats();
sEmergencyCallStats = new SummaryStats();
log("init");
- KeyguardUpdateMonitor.getInstance(context)
- .registerCallback(new KeyguardUpdateMonitorCallback() {
- @Override
- public void onEmergencyCallAction() {
- traceEmergencyCall();
- }
- @Override
- public void onKeyguardBouncerChanged(boolean bouncer) {
- traceKeyguardBouncerChanged(bouncer);
- }
- @Override
- public void onScreenTurnedOn() {
- traceScreenOn();
- }
- @Override
- public void onScreenTurnedOff(int why) {
- traceScreenOff(why);
- }
- @Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- traceKeyguard(showing);
- }
- });
+ KeyguardUpdateMonitor.getInstance(context).registerCallback(sKeyguardCallback);
}
}
log("dozing " + dozing);
}
- public static void traceFling(boolean expand, boolean aboveThreshold, boolean thresholdNeeded) {
+ public static void traceFling(boolean expand, boolean aboveThreshold, boolean thresholdNeeded,
+ boolean screenOnFromTouch) {
if (!ENABLED) return;
log("fling expand=" + expand + " aboveThreshold=" + aboveThreshold + " thresholdNeeded="
- + thresholdNeeded);
+ + thresholdNeeded + " screenOnFromTouch=" + screenOnFromTouch);
}
public static void traceEmergencyCall() {
if (!ENABLED) return;
log("emergencyCall");
+ sEmergencyCallStats.append();
}
public static void traceKeyguardBouncerChanged(boolean showing) {
@@ -208,4 +188,32 @@
pw.println();
}
}
+
+ private static final KeyguardUpdateMonitorCallback sKeyguardCallback =
+ new KeyguardUpdateMonitorCallback() {
+ @Override
+ public void onEmergencyCallAction() {
+ traceEmergencyCall();
+ }
+
+ @Override
+ public void onKeyguardBouncerChanged(boolean bouncer) {
+ traceKeyguardBouncerChanged(bouncer);
+ }
+
+ @Override
+ public void onScreenTurnedOn() {
+ traceScreenOn();
+ }
+
+ @Override
+ public void onScreenTurnedOff(int why) {
+ traceScreenOff(why);
+ }
+
+ @Override
+ public void onKeyguardVisibilityChanged(boolean showing) {
+ traceKeyguard(showing);
+ }
+ };
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
index 5caf1ac..1283dcd 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
@@ -112,15 +112,11 @@
mTaskStackBounds = new Rect();
}
- public void onStart() {}
-
- public void onBootCompleted() {
+ public void onStart() {
// Initialize some static datastructures
TaskStackViewLayoutAlgorithm.initializeCurve();
// Load the header bar layout
reloadHeaderBarLayout();
- mBootCompleted = true;
-
// Try and pre-emptively bind the search widget on startup to ensure that we
// have the right thumbnail bounds to animate to.
if (Constants.DebugFlags.App.EnableSearchLayout) {
@@ -138,6 +134,10 @@
}
}
+ public void onBootCompleted() {
+ mBootCompleted = true;
+ }
+
/** Shows the recents */
public void onShowRecents(boolean triggeredFromAltTab, View statusBarView) {
mStatusBarView = statusBarView;
@@ -189,7 +189,7 @@
void showRelativeAffiliatedTask(boolean showNextTask) {
RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
TaskStack stack = loader.getTaskStack(mSystemServicesProxy, mContext.getResources(),
- -1, -1, false, null, null);
+ -1, -1, false, true, null, null);
// Return early if there are no tasks
if (stack.getTaskCount() == 0) return;
@@ -444,7 +444,7 @@
// Get the stack of tasks that we are animating into
RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
TaskStack stack = loader.getTaskStack(mSystemServicesProxy, mContext.getResources(),
- runningTaskId, -1, false, null, null);
+ runningTaskId, -1, false, isTopTaskHome, null, null);
if (stack.getTaskCount() == 0) {
return null;
}
@@ -485,7 +485,7 @@
// which can differ depending on the number of items in the list.
SystemServicesProxy ssp = mSystemServicesProxy;
List<ActivityManager.RecentTaskInfo> recentTasks =
- ssp.getRecentTasks(3, UserHandle.CURRENT.getIdentifier());
+ ssp.getRecentTasks(3, UserHandle.CURRENT.getIdentifier(), isTopTaskHome);
boolean useThumbnailTransition = !isTopTaskHome;
boolean hasRecentTasks = !recentTasks.isEmpty();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
index 103f96f..85cf077 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
@@ -37,6 +37,8 @@
public static final boolean EnableTaskBarTouchEvents = true;
// Enables app-info pane on long-pressing the icon
public static final boolean EnableDevAppInfoOnLongPress = true;
+ // Enables debug mode
+ public static final boolean EnableDebugMode = false;
// Enables the search bar layout
public static final boolean EnableSearchLayout = true;
// Enables the thumbnail alpha on the front-most task
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index a49bbf9..01ba5a2 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -182,14 +182,6 @@
/** Updates the set of recent tasks */
void updateRecentsTasks(Intent launchIntent) {
- // Load all the tasks
- RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
- SpaceNode root = loader.reload(this, Constants.Values.RecentsTaskLoader.PreloadFirstTasksCount);
- ArrayList<TaskStack> stacks = root.getStacks();
- if (!stacks.isEmpty()) {
- mRecentsView.setTaskStacks(root.getStacks());
- }
-
// Update the configuration based on the launch intent
boolean fromSearchHome = launchIntent.getBooleanExtra(
AlternateRecentsComponent.EXTRA_FROM_SEARCH_HOME, false);
@@ -203,6 +195,16 @@
AlternateRecentsComponent.EXTRA_FROM_TASK_ID, -1);
mConfig.launchedWithAltTab = launchIntent.getBooleanExtra(
AlternateRecentsComponent.EXTRA_TRIGGERED_FROM_ALT_TAB, false);
+
+ // Load all the tasks
+ RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
+ SpaceNode root = loader.reload(this,
+ Constants.Values.RecentsTaskLoader.PreloadFirstTasksCount,
+ mConfig.launchedFromHome);
+ ArrayList<TaskStack> stacks = root.getStacks();
+ if (!stacks.isEmpty()) {
+ mRecentsView.setTaskStacks(root.getStacks());
+ }
mConfig.launchedWithNoRecentTasks = !root.hasTasks();
// Create the home intent runnable
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
index 4696c82..2aca576 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
@@ -220,8 +220,6 @@
res.getInteger(R.integer.recents_animate_task_enter_from_home_duration);
taskViewEnterFromHomeStaggerDelay =
res.getInteger(R.integer.recents_animate_task_enter_from_home_stagger_delay);
- taskViewEnterFromHomeStaggerDuration =
- res.getInteger(R.integer.recents_animate_task_enter_from_home_stagger_duration);
taskViewExitToHomeDuration =
res.getInteger(R.integer.recents_animate_task_exit_to_home_duration);
taskViewRemoveAnimDuration =
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java b/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java
index d000985..fbf8a86 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java
@@ -19,6 +19,7 @@
import android.os.Handler;
import android.os.SystemClock;
import android.view.KeyEvent;
+import com.android.systemui.recents.Constants;
/**
* A trigger for catching a debug chord.
@@ -48,6 +49,8 @@
* then we just call the callback.
*/
public void onKeyEvent(int keyCode) {
+ if (!Constants.DebugFlags.App.EnableDebugMode) return;
+
if (mLastKeyCode == 0) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
mLastKeyCode = keyCode;
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 9554f01..71a3ef1 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -138,7 +138,8 @@
}
/** Returns a list of the recents tasks */
- public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId) {
+ public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId,
+ boolean isTopTaskHome) {
if (mAm == null) return null;
// If we are mocking, then create some recent tasks
@@ -195,10 +196,11 @@
// tasks
// Check the first non-recents task, include this task even if it is marked as excluded
- // from recents. In other words, only remove excluded tasks if it is not the first task
+ // from recents if we are currently in the app. In other words, only remove excluded
+ // tasks if it is not the first active task.
boolean isExcluded = (t.baseIntent.getFlags() & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
== Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
- if (isExcluded && !isFirstValidTask) {
+ if (isExcluded && (isTopTaskHome || !isFirstValidTask)) {
iter.remove();
continue;
}
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 9d4fe66..d40e847 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -322,11 +322,12 @@
}
/** Gets the list of recent tasks, ordered from back to front. */
- private static List<ActivityManager.RecentTaskInfo> getRecentTasks(SystemServicesProxy ssp) {
+ private static List<ActivityManager.RecentTaskInfo> getRecentTasks(SystemServicesProxy ssp,
+ boolean isTopTaskHome) {
RecentsConfiguration config = RecentsConfiguration.getInstance();
List<ActivityManager.RecentTaskInfo> tasks =
- ssp.getRecentTasks(config.maxNumTasksToLoad,
- UserHandle.CURRENT.getIdentifier());
+ ssp.getRecentTasks(config.maxNumTasksToLoad, UserHandle.CURRENT.getIdentifier(),
+ isTopTaskHome);
Collections.reverse(tasks);
return tasks;
}
@@ -408,11 +409,11 @@
}
/** Reload the set of recent tasks */
- public SpaceNode reload(Context context, int preloadCount) {
+ public SpaceNode reload(Context context, int preloadCount, boolean isTopTaskHome) {
ArrayList<Task.TaskKey> taskKeys = new ArrayList<Task.TaskKey>();
ArrayList<Task> tasksToLoad = new ArrayList<Task>();
TaskStack stack = getTaskStack(mSystemServicesProxy, context.getResources(),
- -1, preloadCount, true, taskKeys, tasksToLoad);
+ -1, preloadCount, true, isTopTaskHome, taskKeys, tasksToLoad);
SpaceNode root = new SpaceNode();
root.setStack(stack);
@@ -429,10 +430,10 @@
/** Creates a lightweight stack of the current recent tasks, without thumbnails and icons. */
public TaskStack getTaskStack(SystemServicesProxy ssp, Resources res,
int preloadTaskId, int preloadTaskCount,
- boolean loadTaskThumbnails, List<Task.TaskKey> taskKeysOut,
- List<Task> tasksToLoadOut) {
+ boolean loadTaskThumbnails, boolean isTopTaskHome,
+ List<Task.TaskKey> taskKeysOut, List<Task> tasksToLoadOut) {
RecentsConfiguration config = RecentsConfiguration.getInstance();
- List<ActivityManager.RecentTaskInfo> tasks = getRecentTasks(ssp);
+ List<ActivityManager.RecentTaskInfo> tasks = getRecentTasks(ssp, isTopTaskHome);
HashMap<Task.ComponentNameKey, ActivityInfoHandle> activityInfoCache =
new HashMap<Task.ComponentNameKey, ActivityInfoHandle>();
ArrayList<Task> tasksToAdd = new ArrayList<Task>();
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 e1e4068..40134da 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -743,6 +743,7 @@
for (int i = 0; i < childCount; i++) {
TaskView t = (TaskView) getChildAt(i);
if (t == tv) {
+ t.setClipViewInStack(false);
t.startLaunchTaskAnimation(r, true, true, lockToTask);
} else {
boolean occludesLaunchTarget = launchTargetTask.group.isTaskAboveTask(t.getTask(),
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index 1750804..2658176 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -418,22 +418,21 @@
} else if (mConfig.launchedFromHome) {
// Animate the tasks up
int frontIndex = (ctx.currentStackViewCount - ctx.currentStackViewIndex - 1);
- float fraction = (float) frontIndex / (ctx.currentStackViewCount - 1);
- fraction = (float) Math.pow(fraction, 0.85f);
- int delay = (int) (mConfig.taskViewEnterFromHomeDelay +
- fraction * mConfig.taskViewEnterFromHomeStaggerDelay);
- long delayIncrease = (long) (fraction * mConfig.taskViewEnterFromHomeStaggerDuration);
+ int delay = mConfig.taskViewEnterFromHomeDelay +
+ frontIndex * mConfig.taskViewEnterFromHomeStaggerDelay;
+
+ setScaleX(transform.scale);
+ setScaleY(transform.scale);
if (!mConfig.fakeShadows) {
animate().translationZ(transform.translationZ);
}
animate()
- .scaleX(transform.scale)
- .scaleY(transform.scale)
.translationY(transform.translationY)
.setStartDelay(delay)
.setUpdateListener(ctx.updateListener)
.setInterpolator(mConfig.quintOutInterpolator)
- .setDuration(mConfig.taskViewEnterFromHomeDuration + delayIncrease)
+ .setDuration(mConfig.taskViewEnterFromHomeDuration +
+ frontIndex * mConfig.taskViewEnterFromHomeStaggerDelay)
.withEndAction(new Runnable() {
@Override
public void run() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index aa75fd4..eef4a5a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -92,7 +92,6 @@
import com.android.systemui.SystemUI;
import com.android.systemui.statusbar.NotificationData.Entry;
import com.android.systemui.statusbar.phone.KeyguardTouchDelegate;
-import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.phone.NavigationBarView;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
@@ -293,10 +292,6 @@
// close the shade if it was open
if (handled) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from mOnClickHandler after keyguard"
- + "dismiss");
- }
animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
visibilityChanged(false);
}
@@ -343,9 +338,6 @@
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING, 0);
if (BANNER_ACTION_SETUP.equals(action)) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Animating collapse because of BANNER_ACTION_SETUP");
- }
animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
mContext.startActivity(new Intent(Settings.ACTION_APP_NOTIFICATION_REDACTION)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
@@ -771,10 +763,6 @@
}
}
});
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from startNotificationGutsIntent after keyguard"
- + "dismiss");
- }
animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
return true;
}
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 fceed2f..dd5df12 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -132,9 +132,6 @@
public boolean performAccessibilityAction(View host, int action, Bundle args) {
if (action == ACTION_CLICK) {
if (host == mLockIcon) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from lock icon accessibility click");
- }
mPhoneStatusBar.animateCollapsePanels(
CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
return true;
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 b9efb22..a6fccb6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -983,10 +983,12 @@
.withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable);
} else if (statusBarState == StatusBarState.KEYGUARD) {
mKeyguardStatusView.animate().cancel();
+ mKeyguardStatusViewAnimating = false;
mKeyguardStatusView.setVisibility(View.VISIBLE);
mKeyguardStatusView.setAlpha(1f);
} else {
mKeyguardStatusView.animate().cancel();
+ mKeyguardStatusViewAnimating = false;
mKeyguardStatusView.setVisibility(View.GONE);
mKeyguardStatusView.setAlpha(1f);
}
@@ -1551,7 +1553,8 @@
@Override
protected void onEdgeClicked(boolean right) {
if ((right && getRightIcon().getVisibility() != View.VISIBLE)
- || (!right && getLeftIcon().getVisibility() != View.VISIBLE)) {
+ || (!right && getLeftIcon().getVisibility() != View.VISIBLE)
+ || isDozing()) {
return;
}
mHintAnimationRunning = true;
@@ -1747,6 +1750,7 @@
updateKeyguardStatusBarVisibility();
}
+ @Override
public boolean isDozing() {
return mDozing;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index ccafbd1..f74d2f4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -140,9 +140,6 @@
mPanelHolder.setSelectedPanel(mTouchingPanel);
for (PanelView pv : mPanels) {
if (pv != panel) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing because opening another panel");
- }
pv.collapse(false /* delayed */);
}
}
@@ -194,15 +191,9 @@
boolean waiting = false;
for (PanelView pv : mPanels) {
if (animate && !pv.isFullyCollapsed()) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Animating collapse, delayed");
- }
pv.collapse(true /* delayed */);
waiting = true;
} else {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing without animation");
- }
pv.resetViews();
pv.setExpandedFraction(0); // just in case
pv.setVisibility(View.GONE);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 95c5020..c612e4c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -136,9 +136,6 @@
}
private void runPeekAnimation() {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Starting peek animation");
- }
mPeekHeight = getPeekHeight();
if (DEBUG) logf("peek to height=%.1f", mPeekHeight);
if (mHeightAnimator != null) {
@@ -159,15 +156,9 @@
public void onAnimationEnd(Animator animation) {
mPeekAnimator = null;
if (mCollapseAfterPeek && !mCancelled) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Peek animation finished, posting collapse");
- }
postOnAnimation(new Runnable() {
@Override
public void run() {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Peek animation finished, collapsing");
- }
collapse(false /* delayed */);
}
});
@@ -345,11 +336,9 @@
}
boolean expand = flingExpands(vel, vectorVel);
onTrackingStopped(expand);
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Flinging: expand=" + expand);
- }
DozeLog.traceFling(expand, mTouchAboveFalsingThreshold,
- mStatusBar.isFalsingThresholdNeeded());
+ mStatusBar.isFalsingThresholdNeeded(),
+ mStatusBar.isScreenOnComingFromTouch());
fling(vel, expand);
mUpdateFlingOnLayout = expand && mPanelClosedOnDown && !mHasLayoutedSinceDown;
if (mUpdateFlingOnLayout) {
@@ -535,9 +524,6 @@
notifyExpandingFinished();
return;
}
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Executing fling: expand=" + expand + " vel=" + vel);
- }
mOverExpandedBeforeFling = getOverExpansionAmount() > 0f;
ValueAnimator animator = createHeightAnimator(target);
if (expand) {
@@ -719,14 +705,8 @@
mClosing = true;
notifyExpandingStarted();
if (delayed) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Posting collapse runnable, will be run in 120ms");
- }
postDelayed(mFlingCollapseRunnable, 120);
} else {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Animating collapsing now");
- }
fling(0, false /* expand */);
}
}
@@ -735,9 +715,6 @@
private final Runnable mFlingCollapseRunnable = new Runnable() {
@Override
public void run() {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Executing collapse runnable, animating collapsing now");
- }
fling(0, false /* expand */);
}
};
@@ -766,11 +743,6 @@
}
public void instantExpand() {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Before instant expanding"
- + " mTracking=" + mTracking
- + " mExpanding=" + mExpanding);
- }
mInstantExpanding = true;
mUpdateFlingOnLayout = false;
abortAnimations();
@@ -791,11 +763,6 @@
public void onGlobalLayout() {
if (mStatusBar.getStatusBarWindow().getHeight()
!= mStatusBar.getStatusBarHeight()) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Now instant expanding after layout"
- + " mTracking=" + mTracking
- + " mExpanding=" + mExpanding);
- }
getViewTreeObserver().removeOnGlobalLayoutListener(this);
setExpandedFraction(1f);
mInstantExpanding = false;
@@ -942,24 +909,20 @@
private final Runnable mPostCollapseRunnable = new Runnable() {
@Override
public void run() {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing after middle clicked");
- }
collapse(false /* delayed */);
}
};
private boolean onMiddleClicked() {
switch (mStatusBar.getBarState()) {
case StatusBarState.KEYGUARD:
- startUnlockHintAnimation();
+ if (!isDozing()) {
+ startUnlockHintAnimation();
+ }
return true;
case StatusBarState.SHADE_LOCKED:
mStatusBar.goToKeyguard();
return true;
case StatusBarState.SHADE:
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Middle clicked in shade state, posting collapsing runnable");
- }
// This gets called in the middle of the touch handling, where the state is still
// that we are tracking the panel. Collapse the panel after this is done.
@@ -972,6 +935,8 @@
protected abstract void onEdgeClicked(boolean right);
+ protected abstract boolean isDozing();
+
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println(String.format("[PanelView(%s): expandedHeight=%f maxPanelHeight=%d closing=%s"
+ " tracking=%s justPeeked=%s peekAnim=%s%s timeAnim=%s%s touchDisabled=%s"
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 0651708..3b05ef1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -183,7 +183,6 @@
public static final boolean DEBUG_GESTURES = false;
public static final boolean DEBUG_MEDIA = false;
public static final boolean DEBUG_MEDIA_FAKE_ARTWORK = false;
- public static final boolean DEBUG_EMPTY_KEYGUARD = true;
public static final boolean DEBUG_WINDOW_STATE = false;
@@ -2136,6 +2135,10 @@
return onKeyguard && (isMethodInsecure || mDozing || mScreenOnComingFromTouch);
}
+ public boolean isDozing() {
+ return mDozing;
+ }
+
@Override // NotificationData.Environment
public String getCurrentMediaNotificationKey() {
return mMediaNotificationKey;
@@ -2282,11 +2285,6 @@
mStatusBarWindowManager.setStatusBarFocusable(false);
mStatusBarWindow.cancelExpandHelper();
- if (DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from animateCollapsePanels:"
- + " force=" + force
- + " mState=" + mState);
- }
mStatusBarView.collapseAllPanels(true);
}
}
@@ -2374,10 +2372,9 @@
}
public void animateCollapseQuickSettings() {
- if (DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from animateCollapseQuickSettings");
+ if (mState == StatusBarState.SHADE) {
+ mStatusBarView.collapseAllPanels(true);
}
- mStatusBarView.collapseAllPanels(true);
}
void makeExpandedInvisible() {
@@ -2389,9 +2386,6 @@
}
// Ensure the panel is fully collapsed (just in case; bug 6765842, 7260868)
- if (DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from makeExpandedInvisible");
- }
mStatusBarView.collapseAllPanels(/*animate=*/ false);
// reset things to their proper state
@@ -2482,10 +2476,7 @@
&& mStatusBarWindowState != state) {
mStatusBarWindowState = state;
if (DEBUG_WINDOW_STATE) Log.d(TAG, "Status bar " + windowStateToString(state));
- if (!showing) {
- if (DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from setWindowState");
- }
+ if (!showing && mState == StatusBarState.SHADE) {
mStatusBarView.collapseAllPanels(false);
}
}
@@ -3045,10 +3036,6 @@
}
});
if (dismissShade) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel startActivityDismissKeyguard after keyguard"
- + "dismiss");
- }
animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
}
return true;
@@ -3507,6 +3494,15 @@
}
public void showKeyguard() {
+ if (mLaunchTransitionFadingAway) {
+ mNotificationPanel.animate().cancel();
+ mNotificationPanel.setAlpha(1f);
+ if (mLaunchTransitionEndRunnable != null) {
+ mLaunchTransitionEndRunnable.run();
+ }
+ mLaunchTransitionEndRunnable = null;
+ mLaunchTransitionFadingAway = false;
+ }
setBarState(StatusBarState.KEYGUARD);
updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */);
if (!mScreenOnFromKeyguard) {
@@ -3546,7 +3542,8 @@
* @param endRunnable the runnable to be run when the transition is done
*/
public void fadeKeyguardAfterLaunchTransition(final Runnable beforeFading,
- final Runnable endRunnable) {
+ Runnable endRunnable) {
+ mLaunchTransitionEndRunnable = endRunnable;
Runnable hideRunnable = new Runnable() {
@Override
public void run() {
@@ -3564,9 +3561,10 @@
@Override
public void run() {
mNotificationPanel.setAlpha(1);
- if (endRunnable != null) {
- endRunnable.run();
+ if (mLaunchTransitionEndRunnable != null) {
+ mLaunchTransitionEndRunnable.run();
}
+ mLaunchTransitionEndRunnable = null;
mLaunchTransitionFadingAway = false;
}
});
@@ -3727,9 +3725,6 @@
public boolean onSpacePressed() {
if (mScreenOn != null && mScreenOn
&& (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) {
- if (PhoneStatusBar.DEBUG_EMPTY_KEYGUARD) {
- Log.i(TAG, "Collapsing panel from onSpacePressed");
- }
animateCollapsePanels(0 /* flags */, true /* force */);
return true;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 6793f69..54adbf4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -260,6 +260,11 @@
}
private void setScrimColor(ScrimView scrim, float alpha) {
+ Object runningAnim = scrim.getTag(TAG_KEY_ANIM);
+ if (runningAnim instanceof ValueAnimator) {
+ ((ValueAnimator) runningAnim).cancel();
+ scrim.setTag(TAG_KEY_ANIM, null);
+ }
int color = Color.argb((int) (alpha * 255), 0, 0, 0);
if (mAnimateChange) {
startScrimAnimation(scrim, color);
@@ -274,10 +279,6 @@
if (current == targetColor) {
return;
}
- Object runningAnim = scrim.getTag(TAG_KEY_ANIM);
- if (runningAnim instanceof ValueAnimator) {
- ((ValueAnimator) runningAnim).cancel();
- }
ValueAnimator anim = ValueAnimator.ofInt(current, target);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 242f1b7..f0c599d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -23,6 +23,7 @@
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
+import android.media.session.MediaSessionLegacyHelper;
import android.os.IBinder;
import android.util.AttributeSet;
import android.view.KeyEvent;
@@ -133,11 +134,14 @@
if (!down) {
return mService.onSpacePressed();
}
+ break;
case KeyEvent.KEYCODE_VOLUME_DOWN:
case KeyEvent.KEYCODE_VOLUME_UP:
- if (down) {
- mService.wakeUpIfDozing(event.getEventTime(), false);
+ if (mService.isDozing()) {
+ MediaSessionLegacyHelper.getHelper(mContext).sendVolumeKeyEvent(event, true);
+ return true;
}
+ break;
}
if (mService.interceptMediaKey(event)) {
return true;
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 79d769a..3625997 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -646,19 +646,10 @@
mLastSignalLevel = iconLevel = mSignalStrength.getLevel();
}
- if (isCdma()) {
- if (isCdmaEri()) {
- iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
- } else {
- iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
- }
+ if (isRoaming()) {
+ iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
} else {
- // Though mPhone is a Manager, this call is not an IPC
- if (mPhone.isNetworkRoaming()) {
- iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
- } else {
- iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
- }
+ iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
}
mPhoneSignalIconId = iconList[iconLevel];
mQSPhoneSignalIconId =
@@ -811,14 +802,9 @@
}
}
- if (isCdma()) {
- if (isCdmaEri()) {
- mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
- }
- } else if (mPhone.isNetworkRoaming()) {
- mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
+ if (isRoaming()) {
+ mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
+ mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
}
@@ -836,6 +822,14 @@
return false;
}
+ private boolean isRoaming() {
+ if (isCdma()) {
+ return isCdmaEri();
+ } else {
+ return mServiceState != null && mServiceState.getRoaming();
+ }
+ }
+
private final void updateDataIcon() {
int iconId;
boolean visible = true;
@@ -1233,12 +1227,7 @@
mDataTypeIconId = 0;
mQSDataTypeIconId = 0;
- if (isCdma()) {
- if (isCdmaEri()) {
- mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
- mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
- }
- } else if (mPhone.isNetworkRoaming()) {
+ if (isRoaming()) {
mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
index 40bdea2..360dee5 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
@@ -127,6 +127,9 @@
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.build();
+ private static final int IC_AUDIO_VOL = com.android.systemui.R.drawable.ic_audio_vol;
+ private static final int IC_AUDIO_VOL_MUTE = com.android.systemui.R.drawable.ic_audio_vol_mute;
+
private final String mTag;
protected final Context mContext;
private final AudioManager mAudioManager;
@@ -182,13 +185,13 @@
false),
AlarmStream(AudioManager.STREAM_ALARM,
R.string.volume_alarm,
- R.drawable.ic_audio_alarm,
- R.drawable.ic_audio_alarm_mute,
+ com.android.systemui.R.drawable.ic_audio_alarm,
+ com.android.systemui.R.drawable.ic_audio_alarm_mute,
false),
MediaStream(AudioManager.STREAM_MUSIC,
R.string.volume_icon_description_media,
- R.drawable.ic_audio_vol,
- R.drawable.ic_audio_vol_mute,
+ IC_AUDIO_VOL,
+ IC_AUDIO_VOL_MUTE,
true),
NotificationStream(AudioManager.STREAM_NOTIFICATION,
R.string.volume_icon_description_notification,
@@ -198,8 +201,8 @@
// for now, use media resources for master volume
MasterStream(STREAM_MASTER,
R.string.volume_icon_description_media, //FIXME should have its own description
- R.drawable.ic_audio_vol,
- R.drawable.ic_audio_vol_mute,
+ IC_AUDIO_VOL,
+ IC_AUDIO_VOL_MUTE,
false),
RemoteStream(STREAM_REMOTE_MUSIC,
R.string.volume_icon_description_media, //FIXME should have its own description
@@ -994,7 +997,7 @@
AudioManager.DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER)) != 0) {
setMusicIcon(R.drawable.ic_audio_bt, R.drawable.ic_audio_bt_mute);
} else {
- setMusicIcon(R.drawable.ic_audio_vol, R.drawable.ic_audio_vol_mute);
+ setMusicIcon(IC_AUDIO_VOL, IC_AUDIO_VOL_MUTE);
}
break;
}
diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java
index dfcdaa0..b0b2886 100644
--- a/policy/src/com/android/internal/policy/impl/GlobalActions.java
+++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java
@@ -23,6 +23,7 @@
import com.android.internal.R;
import com.android.internal.widget.LockPatternUtils;
+import android.app.ActivityManager;
import android.app.ActivityManagerNative;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -370,6 +371,11 @@
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
+ // don't actually trigger the bugreport if we are running stability
+ // tests via monkey
+ if (ActivityManager.isUserAMonkey()) {
+ return;
+ }
// Add a little delay before executing, to give the
// dialog a chance to go away before it takes a
// screenshot.
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index 42ee666..5f3b877 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -2929,6 +2929,10 @@
}
}
+ // The action mode's theme may differ from the app, so
+ // always show the status guard above it if we have one.
+ showStatusGuard = mStatusGuard != null;
+
// We only need to consume the insets if the action
// mode is overlaid on the app content (e.g. it's
// sitting in a FrameLayout, see
@@ -2936,11 +2940,7 @@
final boolean nonOverlay = (getLocalFeatures()
& (1 << FEATURE_ACTION_MODE_OVERLAY)) == 0;
insets = insets.consumeSystemWindowInsets(
- false, nonOverlay /* top */, false, false);
-
- // The action mode's theme may differ from the app, so
- // always show the status guard above it.
- showStatusGuard = true;
+ false, nonOverlay && showStatusGuard /* top */, false, false);
} else {
// reset top margin
if (mlp.topMargin != 0) {
diff --git a/preloaded-classes b/preloaded-classes
index b3fc517..7686431 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -2,29 +2,183 @@
# Automatically generated by frameworks/base/tools/preload/WritePreloadedClassFile.java.
# MIN_LOAD_TIME_MICROS=1250
# MIN_PROCESSES=10
+[B
+[C
+[D
+[F
+[I
+[J
+[Landroid.accounts.Account;
+[Landroid.animation.Animator;
+[Landroid.animation.Keyframe$FloatKeyframe;
+[Landroid.animation.Keyframe$IntKeyframe;
+[Landroid.animation.PropertyValuesHolder;
+[Landroid.app.FragmentState;
+[Landroid.app.LoaderManagerImpl;
+[Landroid.content.ContentProviderResult;
+[Landroid.content.ContentValues;
+[Landroid.content.Intent;
+[Landroid.content.pm.ActivityInfo;
+[Landroid.content.pm.ConfigurationInfo;
+[Landroid.content.pm.FeatureGroupInfo;
+[Landroid.content.pm.FeatureInfo;
+[Landroid.content.pm.InstrumentationInfo;
+[Landroid.content.pm.PathPermission;
+[Landroid.content.pm.PermissionInfo;
+[Landroid.content.pm.ProviderInfo;
+[Landroid.content.pm.ServiceInfo;
+[Landroid.content.pm.Signature;
+[Landroid.content.res.StringBlock;
+[Landroid.content.res.XmlBlock;
+[Landroid.database.sqlite.SQLiteConnection$Operation;
+[Landroid.database.sqlite.SQLiteConnectionPool$AcquiredConnectionStatus;
+[Landroid.graphics.Bitmap$CompressFormat;
+[Landroid.graphics.Bitmap$Config;
+[Landroid.graphics.Canvas$EdgeType;
+[Landroid.graphics.FontFamily;
+[Landroid.graphics.Interpolator$Result;
+[Landroid.graphics.Matrix$ScaleToFit;
+[Landroid.graphics.Paint$Align;
+[Landroid.graphics.Paint$Cap;
+[Landroid.graphics.Paint$Join;
+[Landroid.graphics.Paint$Style;
+[Landroid.graphics.Path$Direction;
+[Landroid.graphics.Path$FillType;
+[Landroid.graphics.PorterDuff$Mode;
+[Landroid.graphics.Region$Op;
+[Landroid.graphics.Shader$TileMode;
+[Landroid.graphics.Typeface;
+[Landroid.graphics.drawable.Drawable;
+[Landroid.graphics.drawable.GradientDrawable$Orientation;
+[Landroid.graphics.drawable.LayerDrawable$ChildDrawable;
+[Landroid.graphics.drawable.Ripple;
+[Landroid.hardware.soundtrigger.SoundTrigger$ConfidenceLevel;
+[Landroid.hardware.soundtrigger.SoundTrigger$Keyphrase;
+[Landroid.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra;
+[Landroid.media.AudioGain;
+[Landroid.net.NetworkInfo$DetailedState;
+[Landroid.net.NetworkInfo$State;
+[Landroid.os.AsyncTask$Status;
+[Landroid.os.MessageQueue$IdleHandler;
+[Landroid.os.Parcel;
+[Landroid.os.Parcelable;
+[Landroid.os.PatternMatcher;
+[Landroid.os.storage.StorageVolume;
+[Landroid.system.StructPollfd;
+[Landroid.text.DynamicLayout$ChangeWatcher;
+[Landroid.text.InputFilter;
+[Landroid.text.Layout$Alignment;
+[Landroid.text.Layout$Directions;
+[Landroid.text.MeasuredText;
+[Landroid.text.SpanWatcher;
+[Landroid.text.TextLine;
+[Landroid.text.TextUtils$TruncateAt;
+[Landroid.text.TextWatcher;
+[Landroid.text.method.TextKeyListener$Capitalize;
+[Landroid.text.method.TextKeyListener;
+[Landroid.text.style.AlignmentSpan;
+[Landroid.text.style.CharacterStyle;
+[Landroid.text.style.LeadingMarginSpan;
+[Landroid.text.style.LineBackgroundSpan;
+[Landroid.text.style.LineHeightSpan;
+[Landroid.text.style.MetricAffectingSpan;
+[Landroid.text.style.ParagraphStyle;
+[Landroid.text.style.ReplacementSpan;
+[Landroid.text.style.SpellCheckSpan;
+[Landroid.text.style.SuggestionSpan;
+[Landroid.text.style.WrapTogetherSpan;
+[Landroid.util.LongSparseArray;
+[Landroid.util.PathParser$PathDataNode;
+[Landroid.view.Choreographer$CallbackQueue;
+[Landroid.view.View;
+[Landroid.widget.Editor$TextDisplayList;
+[Landroid.widget.Editor$TextViewPositionListener;
+[Landroid.widget.ImageView$ScaleType;
+[Landroid.widget.TextView$BufferType;
+[Landroid.widget.TextView$ChangeWatcher;
+[Lcom.android.dex.TableOfContents$Section;
+[Lcom.android.internal.policy.impl.PhoneWindow$PanelFeatureState;
+[Lcom.android.internal.telephony.PhoneConstants$State;
+[Lcom.android.okhttp.Protocol;
+[Lcom.android.okhttp.ResponseSource;
+[Lcom.android.okhttp.internal.http.HttpURLConnectionImpl$Retry;
+[Lcom.android.org.bouncycastle.asn1.ASN1ObjectIdentifier;
+[Lcom.android.org.bouncycastle.asn1.x509.GeneralName;
+[Lcom.android.org.conscrypt.OpenSSLX509CertPath$Encoding;
+[Lcom.android.org.conscrypt.OpenSSLX509Certificate;
+[Ljava.io.FileDescriptor;
+[Ljava.lang.CharSequence;
+[Ljava.lang.Class;
+[Ljava.lang.Integer;
+[Ljava.lang.Object;
+[Ljava.lang.Runnable;
+[Ljava.lang.String;
+[Ljava.lang.Void;
+[Ljava.math.BigDecimal;
+[Ljava.math.BigInteger;
+[Ljava.math.RoundingMode;
+[Ljava.net.InetAddress;
+[Ljava.net.Proxy$Type;
+[Ljava.security.cert.X509Certificate;
+[Ljava.text.Format$Field;
+[Ljava.util.ArrayList;
+[Ljava.util.Map$Entry;
+[Ljava.util.TimerTask;
+[Ljava.util.TreeMap$Relation;
+[Ljava.util.concurrent.ConcurrentHashMap$Node;
+[Ljava.util.concurrent.ConcurrentHashMap$Segment;
+[Ljava.util.concurrent.TimeUnit;
+[Ljava.util.logging.Handler;
+[Ljavax.net.ssl.KeyManager;
+[Ljavax.net.ssl.TrustManager;
+[Llibcore.reflect.AnnotationMember$DefaultValues;
+[Llibcore.reflect.AnnotationMember;
+[Lorg.apache.harmony.security.asn1.ASN1Type;
+[Lorg.apache.harmony.security.utils.ObjectIdentifier;
+[Lorg.apache.http.Header;
+[Lorg.apache.http.HeaderElement;
+[Lorg.apache.http.NameValuePair;
+[Lorg.apache.http.conn.routing.RouteInfo$LayerType;
+[Lorg.apache.http.conn.routing.RouteInfo$TunnelType;
+[Lorg.json.JSONStringer$Scope;
+[Lorg.kxml2.io.KXmlParser$ValueContext;
+[Z
+[[B
+[[I
+[[Lcom.android.org.bouncycastle.asn1.ASN1ObjectIdentifier;
+[[Ljava.lang.Object;
+[[Ljava.lang.String;
+[[Lorg.apache.harmony.security.utils.ObjectIdentifier;
+[[[B
android.R$styleable
android.accounts.Account
android.accounts.Account$1
android.accounts.AccountManager
-android.accounts.AccountManager$12
-android.accounts.AccountManager$13
-android.accounts.AccountManager$6
+android.accounts.AccountManager$16
+android.accounts.AccountManager$8
android.accounts.AccountManager$AmsTask
android.accounts.AccountManager$AmsTask$1
android.accounts.AccountManager$AmsTask$Response
+android.accounts.AccountManagerCallback
android.accounts.AccountManagerFuture
+android.accounts.AccountsException
+android.accounts.AuthenticatorException
android.accounts.IAccountManager
android.accounts.IAccountManager$Stub
android.accounts.IAccountManager$Stub$Proxy
android.accounts.IAccountManagerResponse
android.accounts.IAccountManagerResponse$Stub
android.accounts.OnAccountsUpdateListener
+android.accounts.OperationCanceledException
android.animation.Animator
android.animation.Animator$AnimatorListener
+android.animation.Animator$AnimatorPauseListener
+android.animation.AnimatorInflater
android.animation.AnimatorListenerAdapter
android.animation.AnimatorSet
android.animation.AnimatorSet$AnimatorSetListener
android.animation.AnimatorSet$Builder
+android.animation.AnimatorSet$Dependency
android.animation.AnimatorSet$DependencyListener
android.animation.AnimatorSet$Node
android.animation.FloatEvaluator
@@ -35,30 +189,40 @@
android.animation.Keyframe$FloatKeyframe
android.animation.Keyframe$IntKeyframe
android.animation.KeyframeSet
+android.animation.Keyframes
+android.animation.Keyframes$FloatKeyframes
+android.animation.Keyframes$IntKeyframes
+android.animation.LayoutTransition
android.animation.LayoutTransition$TransitionListener
android.animation.ObjectAnimator
android.animation.PropertyValuesHolder
android.animation.PropertyValuesHolder$FloatPropertyValuesHolder
android.animation.PropertyValuesHolder$IntPropertyValuesHolder
+android.animation.RectEvaluator
+android.animation.StateListAnimator
+android.animation.StateListAnimator$1
+android.animation.StateListAnimator$Tuple
android.animation.TimeInterpolator
android.animation.TypeEvaluator
android.animation.ValueAnimator
android.animation.ValueAnimator$AnimationHandler
+android.animation.ValueAnimator$AnimatorUpdateListener
android.app.ActionBar
android.app.ActionBar$LayoutParams
android.app.Activity
android.app.Activity$1
android.app.ActivityManager
-android.app.ActivityManager$MemoryInfo
-android.app.ActivityManager$MemoryInfo$1
android.app.ActivityManager$RunningAppProcessInfo
android.app.ActivityManager$RunningAppProcessInfo$1
+android.app.ActivityManager$TaskDescription
+android.app.ActivityManager$TaskDescription$1
android.app.ActivityManagerNative
android.app.ActivityManagerNative$1
android.app.ActivityManagerProxy
android.app.ActivityThread
android.app.ActivityThread$1
android.app.ActivityThread$2
+android.app.ActivityThread$3
android.app.ActivityThread$ActivityClientRecord
android.app.ActivityThread$AppBindData
android.app.ActivityThread$ApplicationThread
@@ -66,7 +230,6 @@
android.app.ActivityThread$ContextCleanupInfo
android.app.ActivityThread$CreateServiceData
android.app.ActivityThread$DropBoxReporter
-android.app.ActivityThread$DumpComponentInfo
android.app.ActivityThread$EventLoggingReporter
android.app.ActivityThread$GcIdler
android.app.ActivityThread$H
@@ -79,9 +242,10 @@
android.app.ActivityThread$ResultData
android.app.ActivityThread$ServiceArgsData
android.app.ActivityThread$StopInfo
+android.app.ActivityTransitionState
android.app.AlertDialog
-android.app.AlertDialog$Builder
android.app.AppGlobals
+android.app.AppOpsManager
android.app.Application
android.app.Application$ActivityLifecycleCallbacks
android.app.ApplicationErrorReport$CrashInfo
@@ -91,6 +255,7 @@
android.app.ApplicationThreadNative
android.app.BackStackRecord
android.app.BackStackRecord$Op
+android.app.BackStackRecord$TransitionState
android.app.ContextImpl
android.app.ContextImpl$1
android.app.ContextImpl$10
@@ -127,8 +292,30 @@
android.app.ContextImpl$39
android.app.ContextImpl$4
android.app.ContextImpl$40
+android.app.ContextImpl$41
+android.app.ContextImpl$42
+android.app.ContextImpl$43
+android.app.ContextImpl$44
+android.app.ContextImpl$45
+android.app.ContextImpl$46
+android.app.ContextImpl$47
+android.app.ContextImpl$48
+android.app.ContextImpl$49
android.app.ContextImpl$5
+android.app.ContextImpl$50
+android.app.ContextImpl$51
+android.app.ContextImpl$52
+android.app.ContextImpl$53
+android.app.ContextImpl$54
+android.app.ContextImpl$55
+android.app.ContextImpl$56
+android.app.ContextImpl$57
+android.app.ContextImpl$58
+android.app.ContextImpl$59
android.app.ContextImpl$6
+android.app.ContextImpl$60
+android.app.ContextImpl$61
+android.app.ContextImpl$62
android.app.ContextImpl$7
android.app.ContextImpl$8
android.app.ContextImpl$9
@@ -138,16 +325,23 @@
android.app.Dialog
android.app.Dialog$1
android.app.Dialog$ListenersHandler
+android.app.DialogFragment
android.app.Fragment
+android.app.Fragment$1
android.app.FragmentBreadCrumbs
-android.app.FragmentBreadCrumbs$1
android.app.FragmentContainer
android.app.FragmentManager
android.app.FragmentManager$BackStackEntry
-android.app.FragmentManager$OnBackStackChangedListener
android.app.FragmentManagerImpl
android.app.FragmentManagerImpl$1
+android.app.FragmentManagerState
+android.app.FragmentManagerState$1
+android.app.FragmentState
+android.app.FragmentState$1
android.app.FragmentTransaction
+android.app.IActivityContainer
+android.app.IActivityContainer$Stub
+android.app.IActivityContainer$Stub$Proxy
android.app.IActivityManager
android.app.IActivityManager$ContentProviderHolder
android.app.IActivityManager$ContentProviderHolder$1
@@ -160,13 +354,8 @@
android.app.INotificationManager
android.app.INotificationManager$Stub
android.app.INotificationManager$Stub$Proxy
-android.app.ISearchManager
-android.app.ISearchManager$Stub
-android.app.ISearchManager$Stub$Proxy
android.app.IServiceConnection
android.app.IServiceConnection$Stub
-android.app.ITransientNotification
-android.app.ITransientNotification$Stub
android.app.IUiAutomationConnection
android.app.IUiAutomationConnection$Stub
android.app.Instrumentation
@@ -174,8 +363,6 @@
android.app.IntentService
android.app.IntentService$ServiceHandler
android.app.ListActivity
-android.app.ListActivity$1
-android.app.ListActivity$2
android.app.LoadedApk
android.app.LoadedApk$ReceiverDispatcher
android.app.LoadedApk$ReceiverDispatcher$Args
@@ -192,16 +379,22 @@
android.app.Notification
android.app.Notification$1
android.app.Notification$Builder
+android.app.Notification$BuilderRemoteViews
android.app.NotificationManager
android.app.OnActivityPausedListener
android.app.PendingIntent
android.app.PendingIntent$1
+android.app.PendingIntent$CanceledException
+android.app.ProgressDialog
android.app.QueuedWork
android.app.ReceiverRestrictedContext
+android.app.ResourcesManager
android.app.ResultInfo
android.app.ResultInfo$1
android.app.Service
android.app.ServiceConnectionLeaked
+android.app.SharedElementCallback
+android.app.SharedElementCallback$1
android.app.SharedPreferencesImpl
android.app.SharedPreferencesImpl$1
android.app.SharedPreferencesImpl$2
@@ -209,6 +402,9 @@
android.app.SharedPreferencesImpl$EditorImpl$1
android.app.SharedPreferencesImpl$EditorImpl$2
android.app.SharedPreferencesImpl$MemoryCommitResult
+android.app.admin.DevicePolicyManager
+android.app.admin.IDevicePolicyManager$Stub
+android.app.admin.IDevicePolicyManager$Stub$Proxy
android.app.backup.BackupDataInput
android.app.backup.BackupDataInput$EntityHeader
android.app.backup.BackupDataOutput
@@ -216,12 +412,15 @@
android.app.backup.BackupHelperDispatcher$Header
android.app.backup.FileBackupHelperBase
android.app.backup.FullBackup
+android.appwidget.AppWidgetHostView
android.appwidget.AppWidgetManager
android.appwidget.AppWidgetProvider
+android.bluetooth.BluetoothDevice
android.bluetooth.BluetoothUuid
android.content.AbstractThreadedSyncAdapter
android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl
android.content.AbstractThreadedSyncAdapter$SyncThread
+android.content.ActivityNotFoundException
android.content.BroadcastReceiver
android.content.BroadcastReceiver$PendingResult
android.content.ComponentCallbacks
@@ -232,8 +431,11 @@
android.content.ContentProvider$Transport
android.content.ContentProviderClient
android.content.ContentProviderNative
+android.content.ContentProviderOperation
+android.content.ContentProviderOperation$1
android.content.ContentProviderProxy
android.content.ContentProviderResult
+android.content.ContentProviderResult$1
android.content.ContentResolver
android.content.ContentResolver$CursorWrapperInner
android.content.ContentResolver$ParcelFileDescriptorInner
@@ -264,11 +466,17 @@
android.content.Intent$1
android.content.IntentFilter
android.content.IntentFilter$1
+android.content.IntentFilter$MalformedMimeTypeException
+android.content.IntentSender$SendIntentException
+android.content.OperationApplicationException
android.content.ServiceConnection
android.content.SharedPreferences
android.content.SharedPreferences$Editor
android.content.SharedPreferences$OnSharedPreferenceChangeListener
android.content.SyncContext
+android.content.SyncRequest
+android.content.SyncRequest$1
+android.content.SyncRequest$Builder
android.content.SyncResult
android.content.SyncResult$1
android.content.SyncStats
@@ -281,6 +489,8 @@
android.content.pm.ComponentInfo
android.content.pm.ConfigurationInfo
android.content.pm.ConfigurationInfo$1
+android.content.pm.FeatureGroupInfo
+android.content.pm.FeatureGroupInfo$1
android.content.pm.FeatureInfo
android.content.pm.FeatureInfo$1
android.content.pm.IPackageManager
@@ -293,6 +503,7 @@
android.content.pm.PackageItemInfo
android.content.pm.PackageManager
android.content.pm.PackageManager$NameNotFoundException
+android.content.pm.PackageParser$PackageParserException
android.content.pm.PathPermission
android.content.pm.PathPermission$1
android.content.pm.PermissionInfo
@@ -322,9 +533,10 @@
android.content.res.ObbInfo$1
android.content.res.ObbScanner
android.content.res.Resources
+android.content.res.Resources$NotFoundException
android.content.res.Resources$Theme
+android.content.res.ResourcesKey
android.content.res.StringBlock
-android.content.res.StringBlock$StyleIDs
android.content.res.TypedArray
android.content.res.XmlBlock
android.content.res.XmlBlock$Parser
@@ -361,6 +573,7 @@
android.database.IContentObserver$Stub$Proxy
android.database.MatrixCursor
android.database.Observable
+android.database.SQLException
android.database.sqlite.DatabaseObjectNotClosedException
android.database.sqlite.SQLiteClosable
android.database.sqlite.SQLiteConnection
@@ -376,12 +589,13 @@
android.database.sqlite.SQLiteCustomFunction
android.database.sqlite.SQLiteDatabase
android.database.sqlite.SQLiteDatabase$1
-android.database.sqlite.SQLiteDatabase$2
android.database.sqlite.SQLiteDatabaseConfiguration
+android.database.sqlite.SQLiteDatabaseCorruptException
+android.database.sqlite.SQLiteDatabaseLockedException
android.database.sqlite.SQLiteDebug
-android.database.sqlite.SQLiteDebug$DbStats
android.database.sqlite.SQLiteDebug$PagerStats
android.database.sqlite.SQLiteDirectCursorDriver
+android.database.sqlite.SQLiteException
android.database.sqlite.SQLiteGlobal
android.database.sqlite.SQLiteOpenHelper
android.database.sqlite.SQLiteProgram
@@ -400,13 +614,13 @@
android.ddm.DdmHandleThread
android.ddm.DdmHandleViewDebug
android.ddm.DdmRegister
-android.drm.DrmManagerClient
android.emoji.EmojiFactory
android.graphics.AvoidXfermode
android.graphics.Bitmap
android.graphics.Bitmap$1
android.graphics.Bitmap$2
android.graphics.Bitmap$BitmapFinalizer
+android.graphics.Bitmap$CompressFormat
android.graphics.Bitmap$Config
android.graphics.BitmapFactory
android.graphics.BitmapFactory$Options
@@ -417,6 +631,7 @@
android.graphics.Canvas
android.graphics.Canvas$CanvasFinalizer
android.graphics.Canvas$EdgeType
+android.graphics.CanvasProperty
android.graphics.Color
android.graphics.ColorFilter
android.graphics.ColorMatrixColorFilter
@@ -427,6 +642,12 @@
android.graphics.DiscretePathEffect
android.graphics.DrawFilter
android.graphics.EmbossMaskFilter
+android.graphics.FontFamily
+android.graphics.FontListParser
+android.graphics.FontListParser$Alias
+android.graphics.FontListParser$Config
+android.graphics.FontListParser$Family
+android.graphics.FontListParser$Font
android.graphics.Insets
android.graphics.Interpolator
android.graphics.Interpolator$Result
@@ -439,6 +660,8 @@
android.graphics.Matrix$ScaleToFit
android.graphics.Movie
android.graphics.NinePatch
+android.graphics.NinePatch$InsetStruct
+android.graphics.Outline
android.graphics.Paint
android.graphics.Paint$Align
android.graphics.Paint$Cap
@@ -485,12 +708,17 @@
android.graphics.Xfermode
android.graphics.YuvImage
android.graphics.drawable.Animatable
+android.graphics.drawable.AnimatedStateListDrawable
+android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState
+android.graphics.drawable.AnimatedStateListDrawable$AnimationDrawableTransition
+android.graphics.drawable.AnimatedStateListDrawable$FrameInterpolator
+android.graphics.drawable.AnimatedStateListDrawable$Transition
+android.graphics.drawable.AnimatedVectorDrawable
+android.graphics.drawable.AnimatedVectorDrawable$AnimatedVectorDrawableState
android.graphics.drawable.AnimationDrawable
android.graphics.drawable.AnimationDrawable$AnimationState
android.graphics.drawable.BitmapDrawable
android.graphics.drawable.BitmapDrawable$BitmapState
-android.graphics.drawable.ClipDrawable
-android.graphics.drawable.ClipDrawable$ClipState
android.graphics.drawable.ColorDrawable
android.graphics.drawable.ColorDrawable$ColorState
android.graphics.drawable.Drawable
@@ -498,15 +726,26 @@
android.graphics.drawable.Drawable$ConstantState
android.graphics.drawable.DrawableContainer
android.graphics.drawable.DrawableContainer$DrawableContainerState
+android.graphics.drawable.DrawableContainer$DrawableContainerState$ConstantStateFuture
android.graphics.drawable.GradientDrawable
android.graphics.drawable.GradientDrawable$1
android.graphics.drawable.GradientDrawable$GradientState
android.graphics.drawable.GradientDrawable$Orientation
+android.graphics.drawable.InsetDrawable
+android.graphics.drawable.InsetDrawable$InsetState
android.graphics.drawable.LayerDrawable
android.graphics.drawable.LayerDrawable$ChildDrawable
android.graphics.drawable.LayerDrawable$LayerState
android.graphics.drawable.NinePatchDrawable
android.graphics.drawable.NinePatchDrawable$NinePatchState
+android.graphics.drawable.Ripple
+android.graphics.drawable.Ripple$1
+android.graphics.drawable.Ripple$LogInterpolator
+android.graphics.drawable.RippleBackground
+android.graphics.drawable.RippleBackground$1
+android.graphics.drawable.RippleBackground$2
+android.graphics.drawable.RippleDrawable
+android.graphics.drawable.RippleDrawable$RippleState
android.graphics.drawable.RotateDrawable
android.graphics.drawable.RotateDrawable$RotateState
android.graphics.drawable.ScaleDrawable
@@ -517,21 +756,39 @@
android.graphics.drawable.StateListDrawable$StateListState
android.graphics.drawable.TransitionDrawable
android.graphics.drawable.TransitionDrawable$TransitionState
+android.graphics.drawable.VectorDrawable
+android.graphics.drawable.VectorDrawable$VFullPath
+android.graphics.drawable.VectorDrawable$VGroup
+android.graphics.drawable.VectorDrawable$VPath
+android.graphics.drawable.VectorDrawable$VPathRenderer
+android.graphics.drawable.VectorDrawable$VectorDrawableState
android.graphics.drawable.shapes.RectShape
-android.graphics.drawable.shapes.RoundRectShape
android.graphics.drawable.shapes.Shape
+android.graphics.pdf.PdfDocument
+android.graphics.pdf.PdfEditor
+android.graphics.pdf.PdfRenderer
android.hardware.Camera
android.hardware.Camera$CameraInfo
android.hardware.Camera$Face
+android.hardware.Camera$Parameters
+android.hardware.Camera$PreviewCallback
android.hardware.Sensor
-android.hardware.SensorEvent
android.hardware.SensorEventListener
android.hardware.SensorManager
android.hardware.SerialPort
android.hardware.SystemSensorManager
android.hardware.SystemSensorManager$BaseEventQueue
+android.hardware.camera2.CameraCharacteristics
+android.hardware.camera2.CaptureRequest
+android.hardware.camera2.CaptureResult
+android.hardware.camera2.DngCreator
+android.hardware.camera2.impl.CameraMetadataNative
+android.hardware.camera2.legacy.LegacyCameraDevice
+android.hardware.camera2.legacy.PerfMeasurement
android.hardware.display.DisplayManager
+android.hardware.display.DisplayManager$DisplayListener
android.hardware.display.DisplayManagerGlobal
+android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate
android.hardware.display.DisplayManagerGlobal$DisplayManagerCallback
android.hardware.display.IDisplayManager
android.hardware.display.IDisplayManager$Stub
@@ -543,30 +800,59 @@
android.hardware.input.IInputManager
android.hardware.input.IInputManager$Stub
android.hardware.input.IInputManager$Stub$Proxy
+android.hardware.input.InputDeviceIdentifier
+android.hardware.input.InputDeviceIdentifier$1
android.hardware.input.InputManager
android.hardware.input.InputManager$InputDevicesChangedListener
+android.hardware.soundtrigger.SoundTrigger
+android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
+android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel$1
+android.hardware.soundtrigger.SoundTrigger$Keyphrase
+android.hardware.soundtrigger.SoundTrigger$Keyphrase$1
+android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionEvent
+android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionEvent$1
+android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
+android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra$1
+android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel
+android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel$1
+android.hardware.soundtrigger.SoundTrigger$ModuleProperties
+android.hardware.soundtrigger.SoundTrigger$ModuleProperties$1
+android.hardware.soundtrigger.SoundTrigger$RecognitionConfig
+android.hardware.soundtrigger.SoundTrigger$RecognitionConfig$1
+android.hardware.soundtrigger.SoundTrigger$RecognitionEvent
+android.hardware.soundtrigger.SoundTrigger$RecognitionEvent$1
+android.hardware.soundtrigger.SoundTrigger$SoundModel
+android.hardware.soundtrigger.SoundTrigger$SoundModelEvent
+android.hardware.soundtrigger.SoundTrigger$SoundModelEvent$1
+android.hardware.soundtrigger.SoundTriggerModule
android.hardware.usb.UsbDevice
android.hardware.usb.UsbDeviceConnection
android.hardware.usb.UsbRequest
android.inputmethodservice.ExtractEditText
-android.location.GpsSatellite
-android.location.GpsStatus
-android.location.GpsStatus$1
-android.location.ILocationManager
-android.location.ILocationManager$Stub
-android.location.ILocationManager$Stub$Proxy
android.location.Location
android.location.Location$1
-android.location.LocationManager
-android.location.LocationRequest
-android.location.LocationRequest$1
android.media.AmrInputStream
+android.media.AudioAttributes
+android.media.AudioAttributes$1
+android.media.AudioAttributes$Builder
+android.media.AudioDevicePort
+android.media.AudioDevicePortConfig
android.media.AudioFormat
+android.media.AudioGain
+android.media.AudioGainConfig
+android.media.AudioHandle
android.media.AudioManager
android.media.AudioManager$1
android.media.AudioManager$FocusEventHandlerDelegate
android.media.AudioManager$FocusEventHandlerDelegate$1
android.media.AudioManager$OnAudioFocusChangeListener
+android.media.AudioMixPort
+android.media.AudioMixPortConfig
+android.media.AudioPatch
+android.media.AudioPort
+android.media.AudioPortConfig
+android.media.AudioPortEventHandler
+android.media.AudioPortEventHandler$1
android.media.AudioRecord
android.media.AudioSystem
android.media.AudioTrack
@@ -574,33 +860,43 @@
android.media.CameraProfile
android.media.DecoderCapabilities
android.media.EncoderCapabilities
-android.media.ExifInterface
android.media.IAudioFocusDispatcher
android.media.IAudioFocusDispatcher$Stub
android.media.IAudioService
android.media.IAudioService$Stub
android.media.IAudioService$Stub$Proxy
+android.media.IMediaHTTPConnection
+android.media.IMediaHTTPConnection$Stub
+android.media.Image
+android.media.ImageReader
+android.media.ImageReader$SurfaceImage
android.media.JetPlayer
android.media.MediaCodec
android.media.MediaCodecList
android.media.MediaCrypto
android.media.MediaDrm
android.media.MediaExtractor
+android.media.MediaFormat
+android.media.MediaHTTPConnection
+android.media.MediaMetadata
android.media.MediaMetadataRetriever
android.media.MediaMuxer
android.media.MediaPlayer
android.media.MediaPlayer$OnBufferingUpdateListener
android.media.MediaPlayer$OnCompletionListener
android.media.MediaPlayer$OnErrorListener
-android.media.MediaPlayer$OnInfoListener
android.media.MediaPlayer$OnPreparedListener
android.media.MediaPlayer$OnSeekCompleteListener
+android.media.MediaPlayer$OnVideoSizeChangedListener
android.media.MediaRecorder
android.media.MediaScanner
android.media.RemoteDisplay
android.media.ResampleInputStream
-android.media.SoundPool
+android.media.SoundPool$SoundPoolImpl
+android.media.SubtitleController$Listener
android.media.ToneGenerator
+android.media.audiofx.AudioEffect
+android.media.audiofx.LoudnessEnhancer
android.mtp.MtpDatabase
android.mtp.MtpDevice
android.mtp.MtpDeviceInfo
@@ -630,9 +926,12 @@
android.net.NetworkStats$1
android.net.NetworkUtils
android.net.Proxy
+android.net.ProxyInfo
android.net.SSLCertificateSocketFactory
android.net.SSLCertificateSocketFactory$1
android.net.SSLSessionCache
+android.net.StaticIpConfiguration
+android.net.StaticIpConfiguration$1
android.net.TrafficStats
android.net.Uri
android.net.Uri$1
@@ -651,35 +950,46 @@
android.net.http.AndroidHttpClient
android.net.http.AndroidHttpClient$1
android.net.http.AndroidHttpClient$2
-android.net.http.AndroidHttpClient$CurlLogger
-android.net.http.CertificateChainValidator
android.net.wifi.IWifiManager
android.net.wifi.IWifiManager$Stub
android.net.wifi.IWifiManager$Stub$Proxy
+android.net.wifi.WifiInfo
android.net.wifi.WifiManager
-android.net.wifi.WifiManager$ServiceHandler
+android.net.wifi.WifiManager$WifiLock
android.nfc.IAppCallback
android.nfc.IAppCallback$Stub
android.nfc.INfcAdapter
android.nfc.INfcAdapter$Stub
android.nfc.INfcAdapter$Stub$Proxy
+android.nfc.INfcCardEmulation
+android.nfc.INfcCardEmulation$Stub
+android.nfc.INfcCardEmulation$Stub$Proxy
android.nfc.INfcTag
android.nfc.INfcTag$Stub
android.nfc.INfcTag$Stub$Proxy
+android.nfc.NdefRecord
android.nfc.NfcActivityManager
android.nfc.NfcAdapter
android.nfc.NfcAdapter$1
android.nfc.NfcEvent
android.nfc.NfcManager
android.opengl.EGL14
+android.opengl.EGLConfig
+android.opengl.EGLContext
+android.opengl.EGLDisplay
+android.opengl.EGLExt
+android.opengl.EGLObjectHandle
+android.opengl.EGLSurface
android.opengl.ETC1
android.opengl.GLES10
android.opengl.GLES10Ext
android.opengl.GLES11
android.opengl.GLES11Ext
android.opengl.GLES20
-android.opengl.GLUtils
-android.opengl.ManagedEGLContext
+android.opengl.GLES30
+android.opengl.GLES31
+android.opengl.GLES31Ext
+android.opengl.GLSurfaceView
android.opengl.Matrix
android.opengl.Visibility
android.os.AsyncTask$1
@@ -691,6 +1001,9 @@
android.os.AsyncTask$SerialExecutor$1
android.os.AsyncTask$Status
android.os.AsyncTask$WorkerRunnable
+android.os.BadParcelableException
+android.os.BaseBundle
+android.os.BatteryStats
android.os.Binder
android.os.BinderProxy
android.os.Build
@@ -699,6 +1012,9 @@
android.os.Bundle$1
android.os.CancellationSignal
android.os.CancellationSignal$OnCancelListener
+android.os.CancellationSignal$Transport
+android.os.ConditionVariable
+android.os.DeadObjectException
android.os.Debug
android.os.Debug$MemoryInfo
android.os.Debug$MemoryInfo$1
@@ -718,11 +1034,15 @@
android.os.IInterface
android.os.IMessenger
android.os.IMessenger$Stub
-android.os.IMessenger$Stub$Proxy
+android.os.INetworkManagementService$Stub
+android.os.INetworkManagementService$Stub$Proxy
android.os.IPowerManager
android.os.IPowerManager$Stub
android.os.IPowerManager$Stub$Proxy
android.os.IServiceManager
+android.os.IUserManager
+android.os.IUserManager$Stub
+android.os.IUserManager$Stub$Proxy
android.os.Looper
android.os.MemoryFile
android.os.Message
@@ -760,6 +1080,7 @@
android.os.StrictMode$6
android.os.StrictMode$7
android.os.StrictMode$8
+android.os.StrictMode$9
android.os.StrictMode$AndroidBlockGuardPolicy
android.os.StrictMode$AndroidBlockGuardPolicy$1
android.os.StrictMode$AndroidCloseGuardReporter
@@ -782,48 +1103,80 @@
android.os.UEventObserver
android.os.UserHandle
android.os.UserHandle$1
+android.os.UserManager
+android.os.ZygoteStartFailedEx
android.os.storage.IMountService
android.os.storage.IMountService$Stub
android.os.storage.IMountService$Stub$Proxy
-android.os.storage.StorageManager
android.os.storage.StorageVolume
android.os.storage.StorageVolume$1
-android.preference.CheckBoxPreference
-android.preference.GenericInflater
-android.preference.GenericInflater$Parent
-android.preference.Preference
-android.preference.Preference$OnPreferenceChangeInternalListener
-android.preference.Preference$OnPreferenceChangeListener
+android.preference.ListPreference
android.preference.PreferenceActivity
-android.preference.PreferenceActivity$1
-android.preference.PreferenceFragment
android.preference.PreferenceFragment$OnPreferenceStartFragmentCallback
android.preference.PreferenceFrameLayout
android.preference.PreferenceGroup
-android.preference.PreferenceGroupAdapter
-android.preference.PreferenceGroupAdapter$1
-android.preference.PreferenceGroupAdapter$PreferenceLayout
-android.preference.PreferenceInflater
android.preference.PreferenceManager
android.preference.PreferenceManager$OnPreferenceTreeClickListener
android.preference.PreferenceScreen
-android.preference.TwoStatePreference
android.provider.BaseColumns
+android.provider.CallLog$Calls
android.provider.ContactsContract
+android.provider.ContactsContract$CommonDataKinds$Phone
+android.provider.ContactsContract$ContactCounts
+android.provider.ContactsContract$ContactNameColumns
+android.provider.ContactsContract$ContactOptionsColumns
+android.provider.ContactsContract$ContactStatusColumns
+android.provider.ContactsContract$ContactsColumns
+android.provider.ContactsContract$Data
+android.provider.ContactsContract$DataColumns
+android.provider.ContactsContract$DataColumnsWithJoins
+android.provider.ContactsContract$DataUsageStatColumns
+android.provider.ContactsContract$PhoneLookup
+android.provider.ContactsContract$RawContactsColumns
+android.provider.ContactsContract$StatusColumns
+android.provider.DocumentsProvider
+android.provider.Downloads$Impl
+android.provider.SearchIndexablesContract
+android.provider.Settings
android.provider.Settings$Global
android.provider.Settings$NameValueCache
android.provider.Settings$NameValueTable
android.provider.Settings$Secure
android.provider.Settings$SettingNotFoundException
android.provider.Settings$System
+android.provider.Telephony$Mms
android.renderscript.RenderScript
android.security.AndroidKeyPairGenerator
android.security.AndroidKeyStore
android.security.AndroidKeyStoreProvider
+android.speech.tts.TextToSpeechService
+android.speech.tts.TextToSpeechService$SpeechItemV1
+android.speech.tts.TextToSpeechService$SynthesisSpeechItemV1
+android.speech.tts.TextToSpeechService$SynthesisToFileOutputStreamSpeechItemV1
+android.speech.tts.TextToSpeechService$UtteranceSpeechItem
+android.speech.tts.TtsEngines
+android.system.GaiException
+android.system.Os
+android.system.OsConstants
+android.system.StructAddrinfo
+android.system.StructFlock
+android.system.StructGroupReq
+android.system.StructGroupSourceReq
+android.system.StructLinger
+android.system.StructPasswd
+android.system.StructPollfd
+android.system.StructStatVfs
+android.system.StructTimeval
+android.system.StructUcred
+android.system.StructUtsname
+android.telecom.InCallService
+android.telephony.PhoneNumberUtils
android.telephony.Rlog
+android.telephony.SubscriptionManager
android.telephony.TelephonyManager
android.text.AndroidBidi
android.text.AndroidCharacter
+android.text.BidiFormatter$DirectionalityEstimator
android.text.BoringLayout
android.text.BoringLayout$Metrics
android.text.DynamicLayout
@@ -832,13 +1185,10 @@
android.text.Editable$Factory
android.text.GetChars
android.text.GraphicsOperations
-android.text.Html
android.text.Html$HtmlParser
-android.text.HtmlToSpannedConverter
android.text.InputFilter
android.text.InputType
android.text.Layout
-android.text.Layout$1
android.text.Layout$Alignment
android.text.Layout$Directions
android.text.Layout$Ellipsizer
@@ -877,21 +1227,20 @@
android.text.TextUtils$TruncateAt
android.text.TextWatcher
android.text.format.DateFormat
-android.text.format.DateUtils
android.text.format.Time
+android.text.format.Time$TimeCalculator
android.text.method.AllCapsTransformationMethod
android.text.method.ArrowKeyMovementMethod
android.text.method.BaseKeyListener
android.text.method.BaseMovementMethod
android.text.method.KeyListener
-android.text.method.LinkMovementMethod
android.text.method.MetaKeyKeyListener
android.text.method.MovementMethod
android.text.method.PasswordTransformationMethod
+android.text.method.QwertyKeyListener
android.text.method.ReplacementTransformationMethod
android.text.method.ReplacementTransformationMethod$ReplacementCharSequence
android.text.method.ReplacementTransformationMethod$SpannedReplacementCharSequence
-android.text.method.ScrollingMovementMethod
android.text.method.SingleLineTransformationMethod
android.text.method.TextKeyListener
android.text.method.TextKeyListener$Capitalize
@@ -900,9 +1249,7 @@
android.text.style.AlignmentSpan
android.text.style.CharacterStyle
android.text.style.ClickableSpan
-android.text.style.DynamicDrawableSpan
android.text.style.EasyEditSpan
-android.text.style.ImageSpan
android.text.style.LeadingMarginSpan
android.text.style.LineBackgroundSpan
android.text.style.LineHeightSpan
@@ -913,35 +1260,64 @@
android.text.style.StyleSpan
android.text.style.SuggestionSpan
android.text.style.URLSpan
-android.text.style.UnderlineSpan
android.text.style.UpdateAppearance
android.text.style.UpdateLayout
android.text.style.WrapTogetherSpan
+android.transition.AutoTransition
+android.transition.ChangeBounds
+android.transition.ChangeBounds$1
+android.transition.ChangeClipBounds
+android.transition.ChangeImageTransform
+android.transition.ChangeImageTransform$1
+android.transition.ChangeImageTransform$2
+android.transition.ChangeTransform
+android.transition.ChangeTransform$1
+android.transition.Fade
+android.transition.PathMotion
+android.transition.Transition
+android.transition.Transition$1
+android.transition.TransitionInflater
+android.transition.TransitionManager
+android.transition.TransitionSet
+android.transition.TransitionValuesMaps
+android.transition.Visibility
android.util.AndroidException
android.util.AndroidRuntimeException
+android.util.ArrayMap
+android.util.ArrayMap$1
+android.util.ArraySet
android.util.AttributeSet
android.util.Base64
android.util.Base64$Coder
android.util.Base64$Decoder
android.util.Base64$Encoder
+android.util.ContainerHelpers
android.util.DisplayMetrics
android.util.EventLog
android.util.EventLog$Event
android.util.FloatMath
android.util.FloatProperty
+android.util.IntProperty
android.util.Log
android.util.Log$1
android.util.Log$TerribleFailureHandler
android.util.LongSparseArray
+android.util.LongSparseLongArray
android.util.LruCache
+android.util.MapCollections
+android.util.MapCollections$ArrayIterator
+android.util.MapCollections$KeySet
+android.util.MathUtils
+android.util.MutableInt
+android.util.MutableLong
android.util.Pair
+android.util.PathParser
+android.util.PathParser$ExtractFloatResult
+android.util.PathParser$PathDataNode
android.util.Patterns
android.util.Pools$Pool
android.util.Pools$SimplePool
android.util.Pools$SynchronizedPool
-android.util.PrefixPrinter
-android.util.PrintWriterPrinter
-android.util.Printer
android.util.Property
android.util.Singleton
android.util.Slog
@@ -949,6 +1325,7 @@
android.util.SparseBooleanArray
android.util.SparseIntArray
android.util.StateSet
+android.util.SuperNotCalledException
android.util.TypedValue
android.util.Xml
android.view.AbsSavedState
@@ -964,20 +1341,19 @@
android.view.Choreographer$CallbackRecord
android.view.Choreographer$FrameDisplayEventReceiver
android.view.Choreographer$FrameHandler
-android.view.CollapsibleActionView
android.view.ContextMenu
android.view.ContextMenu$ContextMenuInfo
android.view.ContextThemeWrapper
android.view.Display
+android.view.DisplayAdjustments
android.view.DisplayEventReceiver
android.view.DisplayInfo
android.view.DisplayInfo$1
-android.view.DisplayList
-android.view.DisplayList$DisplayListFinalizer
android.view.FallbackEventHandler
android.view.FocusFinder
android.view.FocusFinder$1
android.view.FocusFinder$SequentialFocusComparator
+android.view.FrameStats
android.view.GLES20Canvas
android.view.GLES20Canvas$CanvasFinalizer
android.view.GLES20RecordingCanvas
@@ -986,11 +1362,16 @@
android.view.GestureDetector$OnDoubleTapListener
android.view.GestureDetector$OnGestureListener
android.view.GestureDetector$SimpleOnGestureListener
+android.view.GraphicBuffer
+android.view.GraphicBuffer$1
android.view.Gravity
android.view.HardwareCanvas
android.view.HardwareLayer
android.view.HardwareRenderer
android.view.HardwareRenderer$HardwareDrawCallbacks
+android.view.IAssetAtlas
+android.view.IAssetAtlas$Stub
+android.view.IAssetAtlas$Stub$Proxy
android.view.IRotationWatcher
android.view.IRotationWatcher$Stub
android.view.IWindow
@@ -1001,6 +1382,9 @@
android.view.IWindowSession
android.view.IWindowSession$Stub
android.view.IWindowSession$Stub$Proxy
+android.view.IWindowSessionCallback
+android.view.IWindowSessionCallback$Stub
+android.view.InflateException
android.view.InputChannel
android.view.InputChannel$1
android.view.InputDevice
@@ -1023,42 +1407,44 @@
android.view.LayoutInflater
android.view.LayoutInflater$Factory
android.view.LayoutInflater$Factory2
+android.view.LayoutInflater$FactoryMerger
android.view.LayoutInflater$Filter
android.view.Menu
android.view.MenuInflater
android.view.MenuInflater$MenuState
android.view.MenuItem
-android.view.MenuItem$OnMenuItemClickListener
+android.view.MenuItem$OnActionExpandListener
android.view.MotionEvent
android.view.MotionEvent$1
android.view.MotionEvent$PointerCoords
android.view.MotionEvent$PointerProperties
android.view.PointerIcon
android.view.PointerIcon$1
+android.view.RenderNode
+android.view.RenderNodeAnimator
+android.view.RenderNodeAnimator$1
android.view.SubMenu
android.view.Surface
android.view.Surface$1
android.view.Surface$CompatibleCanvas
+android.view.Surface$OutOfResourcesException
android.view.SurfaceControl
android.view.SurfaceControl$PhysicalDisplayInfo
-android.view.SurfaceHolder
android.view.SurfaceHolder$Callback
android.view.SurfaceHolder$Callback2
android.view.SurfaceSession
android.view.SurfaceView
-android.view.SurfaceView$1
-android.view.SurfaceView$2
-android.view.SurfaceView$3
-android.view.SurfaceView$4
-android.view.SurfaceView$MyWindow
android.view.TextureView
+android.view.ThreadedRenderer
+android.view.ThreadedRenderer$AtlasInitializer
android.view.VelocityTracker
android.view.VelocityTracker$Estimator
android.view.View
-android.view.View$1
android.view.View$10
android.view.View$11
android.view.View$12
+android.view.View$13
+android.view.View$14
android.view.View$3
android.view.View$4
android.view.View$5
@@ -1071,7 +1457,6 @@
android.view.View$AttachInfo$Callbacks
android.view.View$BaseSavedState
android.view.View$BaseSavedState$1
-android.view.View$CheckForLongPress
android.view.View$CheckForTap
android.view.View$ListenerInfo
android.view.View$MeasureSpec
@@ -1088,8 +1473,6 @@
android.view.View$TransformationInfo
android.view.View$UnsetPressedState
android.view.ViewConfiguration
-android.view.ViewDebug
-android.view.ViewDebug$HierarchyHandler
android.view.ViewGroup
android.view.ViewGroup$3
android.view.ViewGroup$LayoutParams
@@ -1097,13 +1480,21 @@
android.view.ViewGroup$OnHierarchyChangeListener
android.view.ViewGroup$TouchTarget
android.view.ViewManager
+android.view.ViewOutlineProvider
+android.view.ViewOutlineProvider$1
+android.view.ViewOutlineProvider$2
+android.view.ViewOutlineProvider$3
+android.view.ViewOverlay$OverlayViewGroup
android.view.ViewParent
android.view.ViewRootImpl
-android.view.ViewRootImpl$3
+android.view.ViewRootImpl$1
+android.view.ViewRootImpl$4
android.view.ViewRootImpl$AccessibilityInteractionConnectionManager
android.view.ViewRootImpl$AsyncInputStage
+android.view.ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable
android.view.ViewRootImpl$ConsumeBatchedInputRunnable
android.view.ViewRootImpl$EarlyPostImeInputStage
+android.view.ViewRootImpl$HighContrastTextManager
android.view.ViewRootImpl$ImeInputStage
android.view.ViewRootImpl$InputStage
android.view.ViewRootImpl$InvalidateOnAnimationRunnable
@@ -1114,6 +1505,7 @@
android.view.ViewRootImpl$RunQueue$HandlerAction
android.view.ViewRootImpl$SyntheticInputStage
android.view.ViewRootImpl$SyntheticJoystickHandler
+android.view.ViewRootImpl$SyntheticKeyboardHandler
android.view.ViewRootImpl$SyntheticTouchNavigationHandler
android.view.ViewRootImpl$SyntheticTouchNavigationHandler$1
android.view.ViewRootImpl$SyntheticTrackballHandler
@@ -1129,25 +1521,29 @@
android.view.ViewTreeObserver$CopyOnWriteArray
android.view.ViewTreeObserver$CopyOnWriteArray$Access
android.view.ViewTreeObserver$InternalInsetsInfo
-android.view.ViewTreeObserver$OnGlobalFocusChangeListener
android.view.ViewTreeObserver$OnGlobalLayoutListener
android.view.ViewTreeObserver$OnPreDrawListener
android.view.ViewTreeObserver$OnScrollChangedListener
android.view.ViewTreeObserver$OnTouchModeChangeListener
android.view.Window
android.view.Window$Callback
+android.view.Window$OnWindowDismissedCallback
+android.view.WindowAnimationFrameStats
+android.view.WindowContentFrameStats$1
+android.view.WindowInsets
android.view.WindowLeaked
android.view.WindowManager
android.view.WindowManager$LayoutParams
android.view.WindowManager$LayoutParams$1
android.view.WindowManagerGlobal
android.view.WindowManagerGlobal$1
+android.view.WindowManagerGlobal$2
android.view.WindowManagerImpl
android.view.accessibility.AccessibilityEvent
-android.view.accessibility.AccessibilityEventSource
android.view.accessibility.AccessibilityManager
android.view.accessibility.AccessibilityManager$1
android.view.accessibility.AccessibilityManager$AccessibilityStateChangeListener
+android.view.accessibility.AccessibilityManager$HighTextContrastChangeListener
android.view.accessibility.AccessibilityManager$MyHandler
android.view.accessibility.AccessibilityNodeInfo
android.view.accessibility.AccessibilityNodeProvider
@@ -1159,20 +1555,19 @@
android.view.accessibility.IAccessibilityManagerClient$Stub
android.view.animation.AccelerateDecelerateInterpolator
android.view.animation.AccelerateInterpolator
-android.view.animation.AlphaAnimation
android.view.animation.Animation
-android.view.animation.Animation$1
-android.view.animation.Animation$2
-android.view.animation.Animation$3
android.view.animation.Animation$AnimationListener
-android.view.animation.AnimationSet
android.view.animation.AnimationUtils
android.view.animation.DecelerateInterpolator
android.view.animation.Interpolator
android.view.animation.LinearInterpolator
+android.view.animation.PathInterpolator
android.view.animation.Transformation
android.view.inputmethod.BaseInputConnection
android.view.inputmethod.ComposingText
+android.view.inputmethod.CursorAnchorInfo
+android.view.inputmethod.CursorAnchorInfo$1
+android.view.inputmethod.CursorAnchorInfo$Builder
android.view.inputmethod.EditorInfo
android.view.inputmethod.EditorInfo$1
android.view.inputmethod.ExtractedText
@@ -1185,80 +1580,53 @@
android.view.inputmethod.InputMethodManager$H
android.view.inputmethod.InputMethodManager$ImeInputEventSender
android.view.inputmethod.InputMethodManager$PendingEvent
-android.view.textservice.SpellCheckerSubtype
-android.view.textservice.SpellCheckerSubtype$1
-android.webkit.CookieManager
-android.webkit.CookieSyncManager
-android.webkit.GeolocationPermissions
-android.webkit.JavascriptInterface
-android.webkit.URLUtil
-android.webkit.WebBackForwardList
-android.webkit.WebHistoryItem
-android.webkit.WebIconDatabase
-android.webkit.WebSettings
-android.webkit.WebSettings$LayoutAlgorithm
-android.webkit.WebSettings$PluginState
-android.webkit.WebSettings$RenderPriority
-android.webkit.WebSettings$ZoomDensity
-android.webkit.WebStorage
-android.webkit.WebSyncManager
-android.webkit.WebSyncManager$SyncHandler
-android.webkit.WebView
-android.webkit.WebView$PrivateAccess
-android.webkit.WebViewClient
-android.webkit.WebViewDatabase
android.webkit.WebViewFactory
-android.webkit.WebViewFactoryProvider
-android.webkit.WebViewFactoryProvider$Statics
-android.webkit.WebViewProvider
-android.webkit.WebViewProvider$ScrollDelegate
-android.webkit.WebViewProvider$ViewDelegate
android.widget.AbsListView
-android.widget.AbsListView$1
android.widget.AbsListView$AdapterDataSetObserver
android.widget.AbsListView$CheckForTap
android.widget.AbsListView$LayoutParams
android.widget.AbsListView$OnScrollListener
-android.widget.AbsListView$PerformClick
android.widget.AbsListView$RecycleBin
android.widget.AbsListView$SavedState
android.widget.AbsListView$SavedState$1
-android.widget.AbsListView$SelectionBoundsAdjuster
-android.widget.AbsListView$WindowRunnnable
android.widget.AbsSeekBar
android.widget.AbsSpinner
-android.widget.AbsSpinner$RecycleBin
android.widget.AbsoluteLayout
+android.widget.ActionMenuPresenter
+android.widget.ActionMenuPresenter$OverflowMenuButton
+android.widget.ActionMenuPresenter$OverflowMenuButton$1
+android.widget.ActionMenuPresenter$PopupPresenterCallback
+android.widget.ActionMenuView
+android.widget.ActionMenuView$ActionMenuChildView
+android.widget.ActionMenuView$OnMenuItemClickListener
android.widget.Adapter
android.widget.AdapterView
android.widget.AdapterView$AdapterDataSetObserver
android.widget.AdapterView$OnItemClickListener
-android.widget.AdapterView$OnItemLongClickListener
android.widget.AdapterView$OnItemSelectedListener
-android.widget.AdapterView$SelectionNotifier
-android.widget.AdapterViewAnimator
android.widget.ArrayAdapter
android.widget.AutoCompleteTextView
-android.widget.AutoCompleteTextView$DropDownItemClickListener
-android.widget.AutoCompleteTextView$MyWatcher
-android.widget.AutoCompleteTextView$PassThroughClickListener
android.widget.BaseAdapter
android.widget.Button
android.widget.CheckBox
android.widget.Checkable
+android.widget.CheckedTextView
android.widget.CompoundButton
android.widget.CompoundButton$OnCheckedChangeListener
-android.widget.CursorAdapter
-android.widget.CursorAdapter$ChangeObserver
-android.widget.CursorAdapter$MyDataSetObserver
-android.widget.CursorFilter$CursorFilterClient
+android.widget.DatePicker
android.widget.EdgeEffect
android.widget.EditText
android.widget.Editor
-android.widget.Editor$Blink
+android.widget.Editor$CursorAnchorInfoNotifier
+android.widget.Editor$HandleView
android.widget.Editor$InputContentType
android.widget.Editor$InputMethodState
-android.widget.ExpandableListView
+android.widget.Editor$InsertionHandleView
+android.widget.Editor$PositionListener
+android.widget.Editor$SpanController
+android.widget.Editor$TextDisplayList
+android.widget.Editor$TextViewPositionListener
+android.widget.FastScroller
android.widget.Filter
android.widget.Filter$FilterListener
android.widget.Filterable
@@ -1266,16 +1634,18 @@
android.widget.FrameLayout$LayoutParams
android.widget.GridLayout
android.widget.GridView
+android.widget.HeaderViewListAdapter
+android.widget.HorizontalScrollView
android.widget.ImageButton
+android.widget.ImageSwitcher
android.widget.ImageView
android.widget.ImageView$ScaleType
android.widget.LinearLayout
android.widget.LinearLayout$LayoutParams
android.widget.ListAdapter
android.widget.ListPopupWindow
-android.widget.ListPopupWindow$1
-android.widget.ListPopupWindow$2
android.widget.ListPopupWindow$DropDownListView
+android.widget.ListPopupWindow$ForwardingListener
android.widget.ListPopupWindow$ListSelectorHider
android.widget.ListPopupWindow$PopupDataSetObserver
android.widget.ListPopupWindow$PopupScrollListener
@@ -1283,57 +1653,47 @@
android.widget.ListPopupWindow$ResizePopupRunnable
android.widget.ListView
android.widget.ListView$ArrowScrollFocusResult
+android.widget.MediaController
+android.widget.MultiAutoCompleteTextView
android.widget.OverScroller
android.widget.OverScroller$SplineOverScroller
android.widget.PopupWindow
android.widget.PopupWindow$1
-android.widget.PopupWindow$OnDismissListener
android.widget.PopupWindow$PopupViewContainer
android.widget.ProgressBar
android.widget.ProgressBar$SavedState
android.widget.ProgressBar$SavedState$1
+android.widget.QuickContactBadge
+android.widget.RatingBar
android.widget.RelativeLayout
android.widget.RelativeLayout$DependencyGraph
android.widget.RelativeLayout$DependencyGraph$Node
android.widget.RelativeLayout$LayoutParams
android.widget.RemoteViews
android.widget.RemoteViews$1
+android.widget.RemoteViews$3
android.widget.RemoteViews$Action
+android.widget.RemoteViews$ActionException
android.widget.RemoteViews$BitmapCache
android.widget.RemoteViews$MemoryUsageCounter
+android.widget.RemoteViews$MutablePair
android.widget.RemoteViews$OnClickHandler
android.widget.RemoteViews$ReflectionAction
+android.widget.RemoteViews$SetDrawableParameters
+android.widget.RemoteViews$TextViewSizeAction
android.widget.RemoteViewsAdapter$RemoteAdapterConnectionCallback
+android.widget.RtlSpacingHelper
android.widget.ScrollBarDrawable
android.widget.ScrollView
android.widget.Scroller
-android.widget.SearchView
-android.widget.SearchView$1
-android.widget.SearchView$10
-android.widget.SearchView$11
-android.widget.SearchView$2
-android.widget.SearchView$3
-android.widget.SearchView$4
-android.widget.SearchView$5
-android.widget.SearchView$6
-android.widget.SearchView$7
-android.widget.SearchView$8
-android.widget.SearchView$9
-android.widget.SearchView$SearchAutoComplete
-android.widget.Spinner
-android.widget.Spinner$DropDownAdapter
-android.widget.Spinner$DropdownPopup
-android.widget.Spinner$DropdownPopup$1
-android.widget.Spinner$SpinnerPopup
+android.widget.Scroller$ViscousFluidInterpolator
+android.widget.SectionIndexer
+android.widget.SeekBar
+android.widget.SimpleCursorAdapter
android.widget.SpinnerAdapter
+android.widget.Switch
android.widget.TableLayout
-android.widget.TableLayout$LayoutParams
-android.widget.TableLayout$PassThroughHierarchyChangeListener
-android.widget.TableRow
-android.widget.TableRow$ChildrenTracker
-android.widget.TableRow$LayoutParams
android.widget.TextView
-android.widget.TextView$2
android.widget.TextView$4
android.widget.TextView$BufferType
android.widget.TextView$ChangeWatcher
@@ -1342,20 +1702,41 @@
android.widget.TextView$OnEditorActionListener
android.widget.TextView$SavedState
android.widget.TextView$SavedState$1
-android.widget.Toast
-android.widget.Toast$TN
-android.widget.Toast$TN$1
-android.widget.Toast$TN$2
+android.widget.TimePicker
+android.widget.ToggleButton
+android.widget.Toolbar
+android.widget.Toolbar$1
+android.widget.Toolbar$2
+android.widget.Toolbar$ExpandedActionViewMenuPresenter
+android.widget.Toolbar$LayoutParams
+android.widget.ViewAnimator
+android.widget.ViewFlipper
+android.widget.ViewSwitcher
+android.widget.WrapperListAdapter
+com.android.dex.Annotation
+com.android.dex.DexFormat
+com.android.dex.EncodedValue
+com.android.dex.EncodedValueCodec
+com.android.dex.EncodedValueReader
+com.android.dex.Leb128
+com.android.dex.Mutf8
+com.android.dex.util.ByteArrayByteInput
+com.android.i18n.phonenumbers.AsYouTypeFormatter
com.android.i18n.phonenumbers.PhoneNumberMatcher
com.android.i18n.phonenumbers.PhoneNumberUtil
+com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata
com.android.internal.R$styleable
-com.android.internal.app.ActionBarImpl
-com.android.internal.app.ActionBarImpl$1
-com.android.internal.app.ActionBarImpl$2
-com.android.internal.app.AlertController
-com.android.internal.app.AlertController$1
-com.android.internal.app.AlertController$AlertParams
-com.android.internal.app.AlertController$ButtonHandler
+com.android.internal.app.IAppOpsService
+com.android.internal.app.IAppOpsService$Stub
+com.android.internal.app.IAppOpsService$Stub$Proxy
+com.android.internal.app.IBatteryStats$Stub
+com.android.internal.app.IVoiceInteractor
+com.android.internal.app.IVoiceInteractor$Stub
+com.android.internal.app.ResolverActivity$ResolveListAdapter
+com.android.internal.app.WindowDecorActionBar
+com.android.internal.app.WindowDecorActionBar$1
+com.android.internal.app.WindowDecorActionBar$2
+com.android.internal.app.WindowDecorActionBar$3
com.android.internal.appwidget.IAppWidgetService
com.android.internal.appwidget.IAppWidgetService$Stub
com.android.internal.appwidget.IAppWidgetService$Stub$Proxy
@@ -1365,6 +1746,8 @@
com.android.internal.logging.AndroidHandler$1
com.android.internal.net.NetworkStatsFactory
com.android.internal.os.AndroidPrintStream
+com.android.internal.os.BatteryStatsImpl
+com.android.internal.os.BatteryStatsImpl$Uid
com.android.internal.os.BinderInternal
com.android.internal.os.BinderInternal$GcWatcher
com.android.internal.os.IDropBoxManagerService
@@ -1378,17 +1761,18 @@
com.android.internal.os.RuntimeInit$UncaughtHandler
com.android.internal.os.SamplingProfilerIntegration
com.android.internal.os.SomeArgs
+com.android.internal.os.Zygote
com.android.internal.os.ZygoteConnection
com.android.internal.os.ZygoteConnection$Arguments
com.android.internal.os.ZygoteInit
com.android.internal.os.ZygoteInit$MethodAndArgsCaller
+com.android.internal.os.ZygoteSecurityException
com.android.internal.policy.IPolicy
com.android.internal.policy.PolicyManager
com.android.internal.policy.impl.PhoneFallbackEventHandler
com.android.internal.policy.impl.PhoneLayoutInflater
com.android.internal.policy.impl.PhoneWindow
com.android.internal.policy.impl.PhoneWindow$1
-com.android.internal.policy.impl.PhoneWindow$2
com.android.internal.policy.impl.PhoneWindow$ActionMenuPresenterCallback
com.android.internal.policy.impl.PhoneWindow$DecorView
com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback
@@ -1398,6 +1782,9 @@
com.android.internal.policy.impl.PhoneWindow$RotationWatcher
com.android.internal.policy.impl.PhoneWindow$RotationWatcher$1
com.android.internal.policy.impl.Policy
+com.android.internal.telephony.ISub
+com.android.internal.telephony.ISub$Stub
+com.android.internal.telephony.ISub$Stub$Proxy
com.android.internal.telephony.ITelephony
com.android.internal.telephony.ITelephony$Stub
com.android.internal.telephony.ITelephony$Stub$Proxy
@@ -1405,17 +1792,16 @@
com.android.internal.telephony.ITelephonyRegistry$Stub
com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy
com.android.internal.telephony.PhoneConstants$State
-com.android.internal.textservice.ITextServicesManager
-com.android.internal.textservice.ITextServicesManager$Stub
+com.android.internal.transition.ActionBarTransition
com.android.internal.util.ArrayUtils
-com.android.internal.util.AsyncChannel
-com.android.internal.util.AsyncChannel$DeathMonitor
+com.android.internal.util.FastPrintWriter
+com.android.internal.util.FastPrintWriter$1
com.android.internal.util.FastXmlSerializer
-com.android.internal.util.MemInfoReader
+com.android.internal.util.GrowingArrayUtils
com.android.internal.util.Preconditions
+com.android.internal.util.VirtualRefBasePtr
com.android.internal.util.XmlUtils
com.android.internal.view.ActionBarPolicy
-com.android.internal.view.BaseIWindow
com.android.internal.view.IInputConnectionWrapper
com.android.internal.view.IInputConnectionWrapper$MyHandler
com.android.internal.view.IInputConnectionWrapper$SomeArgs
@@ -1435,37 +1821,115 @@
com.android.internal.view.InputBindResult
com.android.internal.view.InputBindResult$1
com.android.internal.view.RootViewSurfaceTaker
+com.android.internal.view.animation.FallbackLUTInterpolator
+com.android.internal.view.animation.HasNativeInterpolator
+com.android.internal.view.animation.NativeInterpolatorFactory
+com.android.internal.view.animation.NativeInterpolatorFactoryHelper
com.android.internal.view.menu.ActionMenuItem
-com.android.internal.view.menu.ActionMenuItemView
com.android.internal.view.menu.BaseMenuPresenter
-com.android.internal.view.menu.ListMenuItemView
com.android.internal.view.menu.MenuBuilder
com.android.internal.view.menu.MenuBuilder$Callback
com.android.internal.view.menu.MenuBuilder$ItemInvoker
com.android.internal.view.menu.MenuItemImpl
-com.android.internal.view.menu.MenuPopupHelper
-com.android.internal.view.menu.MenuPopupHelper$MenuAdapter
com.android.internal.view.menu.MenuPresenter
com.android.internal.view.menu.MenuPresenter$Callback
com.android.internal.view.menu.MenuView
-com.android.internal.view.menu.MenuView$ItemView
-com.android.internal.view.menu.SubMenuBuilder
com.android.internal.widget.AbsActionBarView
com.android.internal.widget.AbsActionBarView$VisibilityAnimListener
com.android.internal.widget.ActionBarContainer
+com.android.internal.widget.ActionBarContainer$ActionBarBackgroundDrawable
com.android.internal.widget.ActionBarContextView
com.android.internal.widget.ActionBarOverlayLayout
+com.android.internal.widget.ActionBarOverlayLayout$1
+com.android.internal.widget.ActionBarOverlayLayout$2
+com.android.internal.widget.ActionBarOverlayLayout$3
+com.android.internal.widget.ActionBarOverlayLayout$4
+com.android.internal.widget.ActionBarOverlayLayout$5
+com.android.internal.widget.ActionBarOverlayLayout$ActionBarVisibilityCallback
com.android.internal.widget.ActionBarOverlayLayout$LayoutParams
-com.android.internal.widget.ActionBarView
-com.android.internal.widget.ActionBarView$1
-com.android.internal.widget.ActionBarView$2
-com.android.internal.widget.ActionBarView$3
-com.android.internal.widget.ActionBarView$ExpandedActionViewMenuPresenter
-com.android.internal.widget.ActionBarView$HomeView
-com.android.internal.widget.ActionBarView$SavedState
-com.android.internal.widget.ActionBarView$SavedState$1
-com.android.internal.widget.DialogTitle
+com.android.internal.widget.BackgroundFallback
+com.android.internal.widget.DecorContentParent
+com.android.internal.widget.DecorToolbar
com.android.internal.widget.EditableInputConnection
+com.android.internal.widget.LockPatternUtils
+com.android.internal.widget.ScrollingTabContainerView
+com.android.internal.widget.ScrollingTabContainerView$TabView
+com.android.internal.widget.ToolbarWidgetWrapper
+com.android.internal.widget.ToolbarWidgetWrapper$1
+com.android.okhttp.Address
+com.android.okhttp.CacheControl
+com.android.okhttp.ConfigAwareConnectionPool
+com.android.okhttp.ConfigAwareConnectionPool$1
+com.android.okhttp.Connection
+com.android.okhttp.ConnectionPool
+com.android.okhttp.ConnectionPool$1
+com.android.okhttp.Dispatcher
+com.android.okhttp.Handshake
+com.android.okhttp.Headers
+com.android.okhttp.Headers$Builder
+com.android.okhttp.HostResolver
+com.android.okhttp.HostResolver$1
+com.android.okhttp.HttpHandler
+com.android.okhttp.HttpsHandler
+com.android.okhttp.OkAuthenticator
+com.android.okhttp.OkHttpClient
+com.android.okhttp.OkResponseCache
+com.android.okhttp.Protocol
+com.android.okhttp.Request
+com.android.okhttp.Request$Builder
+com.android.okhttp.Request$ParsedHeaders
+com.android.okhttp.Response
+com.android.okhttp.Response$Body
+com.android.okhttp.Response$Builder
+com.android.okhttp.ResponseSource
+com.android.okhttp.Route
+com.android.okhttp.RouteDatabase
+com.android.okhttp.TunnelRequest
+com.android.okhttp.internal.Platform
+com.android.okhttp.internal.Util
+com.android.okhttp.internal.Util$1
+com.android.okhttp.internal.http.CacheStrategy
+com.android.okhttp.internal.http.CacheStrategy$1
+com.android.okhttp.internal.http.CacheStrategy$Factory
+com.android.okhttp.internal.http.DelegatingHttpsURLConnection
+com.android.okhttp.internal.http.HttpAuthenticator
+com.android.okhttp.internal.http.HttpAuthenticator$1
+com.android.okhttp.internal.http.HttpConnection
+com.android.okhttp.internal.http.HttpConnection$AbstractSource
+com.android.okhttp.internal.http.HttpConnection$ChunkedSource
+com.android.okhttp.internal.http.HttpConnection$FixedLengthSource
+com.android.okhttp.internal.http.HttpEngine
+com.android.okhttp.internal.http.HttpMethod
+com.android.okhttp.internal.http.HttpTransport
+com.android.okhttp.internal.http.HttpURLConnectionImpl
+com.android.okhttp.internal.http.HttpURLConnectionImpl$Retry
+com.android.okhttp.internal.http.HttpsURLConnectionImpl
+com.android.okhttp.internal.http.OkHeaders
+com.android.okhttp.internal.http.OkHeaders$1
+com.android.okhttp.internal.http.RequestLine
+com.android.okhttp.internal.http.RetryableSink
+com.android.okhttp.internal.http.RouteSelector
+com.android.okhttp.internal.http.StatusLine
+com.android.okhttp.internal.http.Transport
+com.android.okhttp.internal.tls.OkHostnameVerifier
+com.android.okio.BufferedSink
+com.android.okio.BufferedSource
+com.android.okio.ByteString
+com.android.okio.Deadline
+com.android.okio.Deadline$1
+com.android.okio.OkBuffer
+com.android.okio.Okio
+com.android.okio.Okio$1
+com.android.okio.Okio$2
+com.android.okio.RealBufferedSink
+com.android.okio.RealBufferedSink$1
+com.android.okio.RealBufferedSource
+com.android.okio.RealBufferedSource$1
+com.android.okio.Segment
+com.android.okio.SegmentPool
+com.android.okio.Sink
+com.android.okio.Source
+com.android.okio.Util
com.android.org.bouncycastle.asn1.ASN1Boolean
com.android.org.bouncycastle.asn1.ASN1Choice
com.android.org.bouncycastle.asn1.ASN1Encodable
@@ -1496,8 +1960,8 @@
com.android.org.bouncycastle.asn1.DERPrintableString
com.android.org.bouncycastle.asn1.DERSequence
com.android.org.bouncycastle.asn1.DERSet
-com.android.org.bouncycastle.asn1.DERT61String
com.android.org.bouncycastle.asn1.DERTaggedObject
+com.android.org.bouncycastle.asn1.DERUTF8String
com.android.org.bouncycastle.asn1.DERUniversalString
com.android.org.bouncycastle.asn1.DLSequence
com.android.org.bouncycastle.asn1.DLSet
@@ -1516,12 +1980,12 @@
com.android.org.bouncycastle.asn1.x509.Extension
com.android.org.bouncycastle.asn1.x509.GeneralName
com.android.org.bouncycastle.asn1.x509.GeneralNames
+com.android.org.bouncycastle.asn1.x509.PolicyInformation
com.android.org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
com.android.org.bouncycastle.asn1.x509.X509Extension
com.android.org.bouncycastle.asn1.x509.X509Extensions
com.android.org.bouncycastle.asn1.x509.X509Name
com.android.org.bouncycastle.asn1.x509.X509ObjectIdentifiers
-com.android.org.bouncycastle.asn1.x9.X962NamedCurves
com.android.org.bouncycastle.asn1.x9.X9ObjectIdentifiers
com.android.org.bouncycastle.crypto.Digest
com.android.org.bouncycastle.crypto.ExtendedDigest
@@ -1535,6 +1999,7 @@
com.android.org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings
com.android.org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings
com.android.org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings
+com.android.org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi
com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.DSAUtil
com.android.org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi
com.android.org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi
@@ -1549,13 +2014,20 @@
com.android.org.bouncycastle.jcajce.provider.digest.MD5$Mappings
com.android.org.bouncycastle.jcajce.provider.digest.SHA1
com.android.org.bouncycastle.jcajce.provider.digest.SHA1$Mappings
+com.android.org.bouncycastle.jcajce.provider.digest.SHA224
+com.android.org.bouncycastle.jcajce.provider.digest.SHA224$Mappings
com.android.org.bouncycastle.jcajce.provider.digest.SHA256
com.android.org.bouncycastle.jcajce.provider.digest.SHA256$Mappings
com.android.org.bouncycastle.jcajce.provider.digest.SHA384
com.android.org.bouncycastle.jcajce.provider.digest.SHA384$Mappings
com.android.org.bouncycastle.jcajce.provider.digest.SHA512
com.android.org.bouncycastle.jcajce.provider.digest.SHA512$Mappings
+com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings
+com.android.org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings
+com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi
+com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
com.android.org.bouncycastle.jcajce.provider.symmetric.AES
+com.android.org.bouncycastle.jcajce.provider.symmetric.AES$ECB
com.android.org.bouncycastle.jcajce.provider.symmetric.AES$Mappings
com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4
com.android.org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings
@@ -1565,10 +2037,19 @@
com.android.org.bouncycastle.jcajce.provider.symmetric.DES$Mappings
com.android.org.bouncycastle.jcajce.provider.symmetric.DESede
com.android.org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings
+com.android.org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12
+com.android.org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings
+com.android.org.bouncycastle.jcajce.provider.symmetric.RC2
+com.android.org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings
+com.android.org.bouncycastle.jcajce.provider.symmetric.SymmetricAlgorithmProvider
+com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish
+com.android.org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings
com.android.org.bouncycastle.jcajce.provider.util.AlgorithmProvider
com.android.org.bouncycastle.jcajce.provider.util.AsymmetricAlgorithmProvider
com.android.org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter
+com.android.org.bouncycastle.jce.exception.ExtException
com.android.org.bouncycastle.jce.interfaces.BCKeyStore
+com.android.org.bouncycastle.jce.provider.AnnotatedException
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider$1
com.android.org.bouncycastle.jce.provider.BouncyCastleProviderConfiguration
@@ -1577,6 +2058,7 @@
com.android.org.bouncycastle.jce.provider.PKIXCRLUtil
com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
com.android.org.bouncycastle.jce.provider.PKIXNameConstraintValidator
+com.android.org.bouncycastle.jce.provider.PKIXNameConstraintValidatorException
com.android.org.bouncycastle.jce.provider.PKIXPolicyNode
com.android.org.bouncycastle.jce.provider.RFC3280CertPathUtilities
com.android.org.bouncycastle.util.Arrays
@@ -1593,7 +2075,7 @@
com.android.org.conscrypt.ChainStrengthAnalyzer
com.android.org.conscrypt.ClientSessionContext
com.android.org.conscrypt.ClientSessionContext$HostAndPort
-com.android.org.conscrypt.DefaultSSLContextImpl
+com.android.org.conscrypt.CryptoUpcalls
com.android.org.conscrypt.FileClientSessionCache
com.android.org.conscrypt.FileClientSessionCache$Impl
com.android.org.conscrypt.JSSEProvider
@@ -1602,67 +2084,20 @@
com.android.org.conscrypt.NativeCrypto
com.android.org.conscrypt.NativeCrypto$SSLHandshakeCallbacks
com.android.org.conscrypt.OpenSSLBIOInputStream
-com.android.org.conscrypt.OpenSSLCipher
-com.android.org.conscrypt.OpenSSLCipher$AES
-com.android.org.conscrypt.OpenSSLCipher$AES$CBC
-com.android.org.conscrypt.OpenSSLCipher$AES$CBC$NoPadding
com.android.org.conscrypt.OpenSSLCipher$AES$CBC$PKCS5Padding
-com.android.org.conscrypt.OpenSSLCipher$AES$CFB
-com.android.org.conscrypt.OpenSSLCipher$AES$CTR
-com.android.org.conscrypt.OpenSSLCipher$AES$ECB
-com.android.org.conscrypt.OpenSSLCipher$AES$ECB$NoPadding
-com.android.org.conscrypt.OpenSSLCipher$AES$ECB$PKCS5Padding
-com.android.org.conscrypt.OpenSSLCipher$AES$OFB
-com.android.org.conscrypt.OpenSSLCipher$ARC4
-com.android.org.conscrypt.OpenSSLCipher$DESEDE
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$NoPadding
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$CBC$PKCS5Padding
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$CFB
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$NoPadding
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$ECB$PKCS5Padding
-com.android.org.conscrypt.OpenSSLCipher$DESEDE$OFB
-com.android.org.conscrypt.OpenSSLCipherRSA
-com.android.org.conscrypt.OpenSSLCipherRSA$PKCS1
-com.android.org.conscrypt.OpenSSLCipherRSA$Raw
com.android.org.conscrypt.OpenSSLContextImpl
-com.android.org.conscrypt.OpenSSLDSAKeyFactory
-com.android.org.conscrypt.OpenSSLDSAKeyPairGenerator
-com.android.org.conscrypt.OpenSSLECDHKeyAgreement
-com.android.org.conscrypt.OpenSSLECKeyFactory
-com.android.org.conscrypt.OpenSSLECKeyPairGenerator
+com.android.org.conscrypt.OpenSSLDigestContext
com.android.org.conscrypt.OpenSSLKey
com.android.org.conscrypt.OpenSSLKeyHolder
-com.android.org.conscrypt.OpenSSLMac
-com.android.org.conscrypt.OpenSSLMac$HmacMD5
-com.android.org.conscrypt.OpenSSLMac$HmacSHA1
-com.android.org.conscrypt.OpenSSLMac$HmacSHA256
-com.android.org.conscrypt.OpenSSLMac$HmacSHA384
-com.android.org.conscrypt.OpenSSLMac$HmacSHA512
com.android.org.conscrypt.OpenSSLMessageDigestJDK
com.android.org.conscrypt.OpenSSLMessageDigestJDK$MD5
com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA1
+com.android.org.conscrypt.OpenSSLMessageDigestJDK$SHA512
+com.android.org.conscrypt.OpenSSLNativeReference
com.android.org.conscrypt.OpenSSLProvider
-com.android.org.conscrypt.OpenSSLRSAKeyFactory
-com.android.org.conscrypt.OpenSSLRSAKeyPairGenerator
com.android.org.conscrypt.OpenSSLRSAPublicKey
com.android.org.conscrypt.OpenSSLRandom
com.android.org.conscrypt.OpenSSLSessionImpl
-com.android.org.conscrypt.OpenSSLSignature
-com.android.org.conscrypt.OpenSSLSignature$1
-com.android.org.conscrypt.OpenSSLSignature$EngineType
-com.android.org.conscrypt.OpenSSLSignature$MD5RSA
-com.android.org.conscrypt.OpenSSLSignature$SHA1DSA
-com.android.org.conscrypt.OpenSSLSignature$SHA1ECDSA
-com.android.org.conscrypt.OpenSSLSignature$SHA1RSA
-com.android.org.conscrypt.OpenSSLSignature$SHA256ECDSA
-com.android.org.conscrypt.OpenSSLSignature$SHA256RSA
-com.android.org.conscrypt.OpenSSLSignature$SHA384ECDSA
-com.android.org.conscrypt.OpenSSLSignature$SHA384RSA
-com.android.org.conscrypt.OpenSSLSignature$SHA512ECDSA
-com.android.org.conscrypt.OpenSSLSignature$SHA512RSA
-com.android.org.conscrypt.OpenSSLSignatureRawRSA
com.android.org.conscrypt.OpenSSLSocketFactoryImpl
com.android.org.conscrypt.OpenSSLSocketImpl
com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream
@@ -1675,9 +2110,16 @@
com.android.org.conscrypt.OpenSSLX509CertificateFactory$1
com.android.org.conscrypt.OpenSSLX509CertificateFactory$2
com.android.org.conscrypt.OpenSSLX509CertificateFactory$Parser
-com.android.org.conscrypt.ProtocolVersion
+com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException
+com.android.org.conscrypt.PinEntryException
+com.android.org.conscrypt.PinListEntry
+com.android.org.conscrypt.PinManagerException
+com.android.org.conscrypt.Platform
+com.android.org.conscrypt.Platform$OpenSSLMapper
com.android.org.conscrypt.SSLClientSessionCache
com.android.org.conscrypt.SSLParametersImpl
+com.android.org.conscrypt.SSLParametersImpl$AliasChooser
+com.android.org.conscrypt.SSLParametersImpl$PSKCallbacks
com.android.org.conscrypt.ServerSessionContext
com.android.org.conscrypt.TrustManagerFactoryImpl
com.android.org.conscrypt.TrustManagerImpl
@@ -1687,43 +2129,27 @@
com.android.org.conscrypt.TrustedCertificateStore
com.android.org.conscrypt.TrustedCertificateStore$1
com.android.org.conscrypt.TrustedCertificateStore$2
-com.android.org.conscrypt.TrustedCertificateStore$3
com.android.org.conscrypt.TrustedCertificateStore$CertSelector
+com.android.org.conscrypt.util.Arrays
com.android.server.NetworkManagementSocketTagger
com.android.server.NetworkManagementSocketTagger$1
com.android.server.NetworkManagementSocketTagger$SocketTags
-com.android.server.Watchdog
com.google.android.collect.Lists
com.google.android.collect.Maps
-com.google.android.gles_jni.EGLConfigImpl
-com.google.android.gles_jni.EGLContextImpl
-com.google.android.gles_jni.EGLDisplayImpl
com.google.android.gles_jni.EGLImpl
-com.google.android.gles_jni.EGLSurfaceImpl
com.google.android.gles_jni.GLImpl
-dalvik.system.BaseDexClassLoader
dalvik.system.BlockGuard
dalvik.system.BlockGuard$1
dalvik.system.BlockGuard$2
dalvik.system.BlockGuard$BlockGuardPolicyException
dalvik.system.BlockGuard$Policy
-dalvik.system.CloseGuard
-dalvik.system.CloseGuard$DefaultReporter
-dalvik.system.CloseGuard$Reporter
dalvik.system.DalvikLogHandler
dalvik.system.DalvikLogging
-dalvik.system.DexFile
-dalvik.system.DexPathList
-dalvik.system.DexPathList$Element
-dalvik.system.NativeStart
-dalvik.system.PathClassLoader
dalvik.system.SocketTagger
dalvik.system.SocketTagger$1
-dalvik.system.StaleDexCacheError
dalvik.system.VMDebug
dalvik.system.VMRuntime
-dalvik.system.VMStack
-dalvik.system.Zygote
+dalvik.system.ZygoteHooks
java.beans.PropertyChangeEvent
java.beans.PropertyChangeSupport
java.io.BufferedInputStream
@@ -1731,100 +2157,68 @@
java.io.BufferedReader
java.io.BufferedWriter
java.io.ByteArrayInputStream
-java.io.ByteArrayOutputStream
java.io.Closeable
-java.io.Console
-java.io.DataInput
java.io.DataInputStream
-java.io.DataOutput
-java.io.DataOutputStream
+java.io.EOFException
java.io.Externalizable
java.io.File
java.io.FileDescriptor
-java.io.FileFilter
java.io.FileInputStream
java.io.FileNotFoundException
java.io.FileOutputStream
java.io.FileReader
java.io.FilterInputStream
-java.io.FilterOutputStream
-java.io.FilterReader
-java.io.Flushable
java.io.IOException
java.io.InputStream
java.io.InputStreamReader
-java.io.ObjectInput
+java.io.InterruptedIOException
java.io.ObjectInputStream
java.io.ObjectStreamClass
-java.io.ObjectStreamConstants
-java.io.ObjectStreamField
java.io.OutputStream
java.io.OutputStreamWriter
-java.io.PrintStream
java.io.PrintWriter
java.io.PushbackInputStream
-java.io.PushbackReader
java.io.RandomAccessFile
java.io.Reader
java.io.Serializable
java.io.StringReader
java.io.StringWriter
-java.io.Writer
+java.io.UnsupportedEncodingException
java.lang.AbstractMethodError
-java.lang.AbstractStringBuilder
-java.lang.Appendable
-java.lang.ArithmeticException
java.lang.ArrayIndexOutOfBoundsException
-java.lang.ArrayStoreException
-java.lang.AutoCloseable
java.lang.Boolean
-java.lang.BootClassLoader
java.lang.Byte
-java.lang.CaseMapper
java.lang.CharSequence
java.lang.Character
-java.lang.Character$UnicodeBlock
java.lang.Class
java.lang.ClassCastException
-java.lang.ClassCircularityError
-java.lang.ClassFormatError
java.lang.ClassLoader
java.lang.ClassLoader$SystemClassLoader
java.lang.ClassNotFoundException
+java.lang.CloneNotSupportedException
java.lang.Cloneable
java.lang.Comparable
java.lang.Daemons
java.lang.Daemons$Daemon
java.lang.Daemons$FinalizerDaemon
java.lang.Daemons$FinalizerWatchdogDaemon
+java.lang.Daemons$GCDaemon
+java.lang.Daemons$HeapTrimmerDaemon
java.lang.Daemons$ReferenceQueueDaemon
java.lang.Double
java.lang.Enum
-java.lang.Enum$1
java.lang.Error
java.lang.Exception
-java.lang.ExceptionInInitializerError
java.lang.Float
-java.lang.IllegalAccessError
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
-java.lang.IllegalMonitorStateException
java.lang.IllegalStateException
-java.lang.IllegalThreadStateException
-java.lang.IncompatibleClassChangeError
-java.lang.IndexOutOfBoundsException
-java.lang.InstantiationError
java.lang.InstantiationException
java.lang.Integer
-java.lang.IntegralToString
-java.lang.IntegralToString$1
-java.lang.InternalError
java.lang.InterruptedException
java.lang.Iterable
-java.lang.LinkageError
java.lang.Long
java.lang.Math
-java.lang.NegativeArraySizeException
java.lang.NoClassDefFoundError
java.lang.NoSuchFieldError
java.lang.NoSuchFieldException
@@ -1835,69 +2229,47 @@
java.lang.NumberFormatException
java.lang.Object
java.lang.OutOfMemoryError
-java.lang.Readable
-java.lang.RealToString
-java.lang.RealToString$1
java.lang.Runnable
java.lang.Runtime
java.lang.RuntimeException
java.lang.RuntimePermission
java.lang.SecurityException
java.lang.Short
-java.lang.StackOverflowError
-java.lang.StackTraceElement
java.lang.StrictMath
java.lang.String
-java.lang.String$CaseInsensitiveComparator
-java.lang.StringBuffer
java.lang.StringBuilder
-java.lang.StringIndexOutOfBoundsException
-java.lang.StringToReal
java.lang.StringToReal$StringExponentPair
java.lang.System
+java.lang.System$PropertiesWithNonOverrideableDefaults
java.lang.Thread
-java.lang.Thread$State
java.lang.Thread$UncaughtExceptionHandler
-java.lang.ThreadGroup
java.lang.ThreadLocal
-java.lang.ThreadLocal$Values
java.lang.Throwable
-java.lang.TypeNotPresentException
java.lang.UnsatisfiedLinkError
java.lang.UnsupportedOperationException
-java.lang.VMClassLoader
-java.lang.VerifyError
-java.lang.VirtualMachineError
java.lang.Void
java.lang.annotation.Annotation
-java.lang.ref.FinalizerReference
-java.lang.ref.FinalizerReference$Sentinel
-java.lang.ref.Reference
-java.lang.ref.ReferenceQueue
+java.lang.annotation.Inherited
java.lang.ref.SoftReference
java.lang.ref.WeakReference
-java.lang.reflect.AccessibleObject
-java.lang.reflect.AnnotatedElement
-java.lang.reflect.Array
-java.lang.reflect.Constructor
java.lang.reflect.Field
-java.lang.reflect.Field$1
-java.lang.reflect.GenericDeclaration
-java.lang.reflect.InvocationHandler
-java.lang.reflect.Member
+java.lang.reflect.GenericArrayType
+java.lang.reflect.InvocationTargetException
java.lang.reflect.Method
-java.lang.reflect.Method$1
-java.lang.reflect.Modifier
-java.lang.reflect.Proxy
+java.lang.reflect.ParameterizedType
java.lang.reflect.Type
+java.lang.reflect.WildcardType
java.math.BigDecimal
java.math.BigInt
java.math.BigInteger
+java.math.Conversion
+java.math.Multiplication
java.math.NativeBN
java.math.RoundingMode
java.net.AddressCache
java.net.AddressCache$AddressCacheEntry
-java.net.CacheResponse
+java.net.AddressCache$AddressCacheKey
+java.net.ConnectException
java.net.ContentHandler
java.net.CookieHandler
java.net.HttpURLConnection
@@ -1907,9 +2279,8 @@
java.net.InetSocketAddress
java.net.InetUnixAddress
java.net.JarURLConnection
+java.net.MalformedURLException
java.net.PlainSocketImpl
-java.net.PlainSocketImpl$PlainSocketInputStream
-java.net.PlainSocketImpl$PlainSocketOutputStream
java.net.Proxy
java.net.Proxy$Type
java.net.ProxySelector
@@ -1917,35 +2288,30 @@
java.net.ResponseCache
java.net.Socket
java.net.SocketAddress
+java.net.SocketException
java.net.SocketImpl
java.net.SocketOptions
-java.net.URI
-java.net.URI$1
-java.net.URI$PartEncoder
-java.net.URL
+java.net.SocketTimeoutException
+java.net.URISyntaxException
java.net.URLConnection
java.net.URLConnection$DefaultContentHandler
java.net.URLEncoder
java.net.URLEncoder$1
java.net.URLStreamHandler
+java.net.URLStreamHandlerFactory
java.net.UnknownHostException
-java.nio.Buffer
-java.nio.ByteArrayBuffer
-java.nio.ByteBuffer
java.nio.ByteOrder
java.nio.CharArrayBuffer
-java.nio.CharBuffer
java.nio.CharSequenceAdapter
-java.nio.DirectByteBuffer
java.nio.FileChannelImpl
java.nio.FileChannelImpl$1
-java.nio.MappedByteBuffer
-java.nio.MemoryBlock
-java.nio.MemoryBlock$NonMovableHeapBlock
+java.nio.MemoryBlock$UnmanagedBlock
java.nio.NIOAccess
-java.nio.NioUtils
+java.nio.channels.AsynchronousCloseException
java.nio.channels.ByteChannel
java.nio.channels.Channel
+java.nio.channels.ClosedByInterruptException
+java.nio.channels.ClosedChannelException
java.nio.channels.FileChannel
java.nio.channels.GatheringByteChannel
java.nio.channels.InterruptibleChannel
@@ -1956,27 +2322,29 @@
java.nio.channels.spi.AbstractInterruptibleChannel$1
java.nio.charset.Charset
java.nio.charset.CharsetDecoder
-java.nio.charset.CharsetDecoderICU
java.nio.charset.CharsetEncoder
java.nio.charset.CharsetEncoderICU
java.nio.charset.CharsetICU
-java.nio.charset.Charsets
java.nio.charset.CoderResult
-java.nio.charset.CodingErrorAction
java.nio.charset.ModifiedUtf8
+java.nio.charset.StandardCharsets
java.security.AccessController
-java.security.BasicPermission
-java.security.Guard
+java.security.DigestException
+java.security.GeneralSecurityException
+java.security.InvalidAlgorithmParameterException
+java.security.InvalidKeyException
java.security.Key
-java.security.KeyFactory
+java.security.KeyException
java.security.KeyFactorySpi
-java.security.KeyPairGenerator
+java.security.KeyManagementException
java.security.KeyPairGeneratorSpi
java.security.KeyStore
+java.security.KeyStoreException
java.security.KeyStoreSpi
java.security.MessageDigest
-java.security.MessageDigestSpi
-java.security.Permission
+java.security.MessageDigest$MessageDigestImpl
+java.security.NoSuchAlgorithmException
+java.security.NoSuchProviderException
java.security.Principal
java.security.PrivilegedAction
java.security.Provider
@@ -1986,18 +2354,27 @@
java.security.SecureRandomSpi
java.security.Security
java.security.Security$SecurityDoor
-java.security.Signature
-java.security.SignatureSpi
+java.security.UnrecoverableEntryException
+java.security.UnrecoverableKeyException
+java.security.cert.CRLException
java.security.cert.CertPath
+java.security.cert.CertPathBuilderException
java.security.cert.CertPathParameters
java.security.cert.CertPathValidator
+java.security.cert.CertPathValidatorException
java.security.cert.CertPathValidatorResult
java.security.cert.CertPathValidatorSpi
java.security.cert.CertSelector
+java.security.cert.CertStoreException
+java.security.cert.CertStoreParameters
java.security.cert.Certificate
+java.security.cert.CertificateEncodingException
+java.security.cert.CertificateException
+java.security.cert.CertificateExpiredException
java.security.cert.CertificateFactory
java.security.cert.CertificateFactorySpi
-java.security.cert.CertStoreParameters
+java.security.cert.CertificateNotYetValidException
+java.security.cert.CertificateParsingException
java.security.cert.PKIXCertPathChecker
java.security.cert.PKIXCertPathValidatorResult
java.security.cert.PKIXParameters
@@ -2011,15 +2388,10 @@
java.security.interfaces.RSAKey
java.security.interfaces.RSAPublicKey
java.security.spec.AlgorithmParameterSpec
-java.security.spec.EncodedKeySpec
-java.security.spec.KeySpec
-java.security.spec.RSAPublicKeySpec
-java.security.spec.X509EncodedKeySpec
-java.sql.Date
+java.security.spec.InvalidKeySpecException
java.text.AttributedCharacterIterator$Attribute
java.text.Bidi
java.text.Bidi$Run
-java.text.Collator
java.text.DateFormat
java.text.DateFormat$Field
java.text.DateFormatSymbols
@@ -2030,87 +2402,49 @@
java.text.Format$Field
java.text.NumberFormat
java.text.NumberFormat$Field
+java.text.ParseException
java.text.ParsePosition
-java.text.RuleBasedCollator
java.text.SimpleDateFormat
java.util.AbstractCollection
-java.util.AbstractList
-java.util.AbstractList$FullListIterator
-java.util.AbstractList$SimpleListIterator
-java.util.AbstractList$SubAbstractList
-java.util.AbstractList$SubAbstractList$SubAbstractListIterator
-java.util.AbstractList$SubAbstractListRandomAccess
java.util.AbstractMap
-java.util.AbstractQueue
java.util.AbstractSequentialList
java.util.AbstractSet
java.util.ArrayDeque
java.util.ArrayList
-java.util.ArrayList$ArrayListIterator
java.util.Arrays
java.util.Arrays$ArrayList
java.util.BitSet
java.util.Calendar
java.util.Collection
java.util.Collections
-java.util.Collections$1
-java.util.Collections$2
-java.util.Collections$EmptyList
-java.util.Collections$EmptyMap
-java.util.Collections$EmptySet
-java.util.Collections$SingletonList
-java.util.Collections$SynchronizedCollection
-java.util.Collections$SynchronizedMap
-java.util.Collections$SynchronizedSet
-java.util.Collections$UnmodifiableCollection
+java.util.Collections$SingletonSet$1
java.util.Collections$UnmodifiableCollection$1
-java.util.Collections$UnmodifiableList
-java.util.Collections$UnmodifiableMap
java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$1
java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry
-java.util.Collections$UnmodifiableRandomAccessList
-java.util.Collections$UnmodifiableSet
java.util.ComparableTimSort
java.util.Comparator
java.util.Currency
java.util.Date
-java.util.Deque
-java.util.Dictionary
+java.util.DualPivotQuicksort
java.util.EnumMap
java.util.EnumSet
-java.util.Enumeration
java.util.EventObject
java.util.Formattable
-java.util.Formatter
-java.util.Formatter$1
-java.util.Formatter$CachedDecimalFormat
java.util.Formatter$FormatSpecifierParser
java.util.Formatter$FormatToken
java.util.GregorianCalendar
java.util.HashMap
-java.util.HashMap$EntryIterator
-java.util.HashMap$EntrySet
-java.util.HashMap$HashIterator
-java.util.HashMap$HashMapEntry
-java.util.HashMap$KeyIterator
-java.util.HashMap$KeySet
-java.util.HashMap$ValueIterator
-java.util.HashMap$Values
java.util.HashSet
-java.util.Hashtable
-java.util.Hashtable$EntryIterator
-java.util.Hashtable$EntrySet
java.util.Hashtable$HashIterator
-java.util.Hashtable$HashtableEntry
java.util.Hashtable$KeyEnumeration
java.util.Hashtable$ValueIterator
java.util.Hashtable$Values
+java.util.IdentityHashMap
java.util.Iterator
java.util.LinkedHashMap
java.util.LinkedHashMap$EntryIterator
java.util.LinkedHashMap$KeyIterator
-java.util.LinkedHashMap$LinkedEntry
java.util.LinkedHashMap$LinkedHashIterator
java.util.LinkedHashMap$ValueIterator
java.util.LinkedHashSet
@@ -2120,15 +2454,24 @@
java.util.List
java.util.ListIterator
java.util.Locale
+java.util.Locale$Builder
java.util.Map
java.util.Map$Entry
+java.util.MapEntry
+java.util.MapEntry$Type
java.util.MiniEnumSet
+java.util.MiniEnumSet$MiniEnumSetIterator
+java.util.MissingResourceException
java.util.NavigableMap
java.util.NavigableSet
+java.util.NoSuchElementException
+java.util.Objects
+java.util.PriorityQueue
java.util.Properties
java.util.Queue
java.util.Random
java.util.RandomAccess
+java.util.Scanner
java.util.Set
java.util.SimpleTimeZone
java.util.SortedMap
@@ -2171,10 +2514,19 @@
java.util.concurrent.Callable
java.util.concurrent.CancellationException
java.util.concurrent.ConcurrentHashMap
+java.util.concurrent.ConcurrentHashMap$BaseIterator
+java.util.concurrent.ConcurrentHashMap$CollectionView
+java.util.concurrent.ConcurrentHashMap$CounterCell
+java.util.concurrent.ConcurrentHashMap$ForwardingNode
+java.util.concurrent.ConcurrentHashMap$KeyIterator
+java.util.concurrent.ConcurrentHashMap$KeySetView
+java.util.concurrent.ConcurrentHashMap$Node
java.util.concurrent.ConcurrentHashMap$Segment
+java.util.concurrent.ConcurrentHashMap$Traverser
java.util.concurrent.ConcurrentLinkedQueue
java.util.concurrent.ConcurrentLinkedQueue$Node
java.util.concurrent.ConcurrentMap
+java.util.concurrent.ConcurrentSkipListMap
java.util.concurrent.CopyOnWriteArrayList
java.util.concurrent.CopyOnWriteArrayList$CowIterator
java.util.concurrent.CountDownLatch
@@ -2190,10 +2542,19 @@
java.util.concurrent.Future
java.util.concurrent.FutureTask
java.util.concurrent.FutureTask$WaitNode
+java.util.concurrent.LinkedBlockingDeque
java.util.concurrent.LinkedBlockingQueue
java.util.concurrent.LinkedBlockingQueue$Node
java.util.concurrent.RejectedExecutionHandler
java.util.concurrent.RunnableFuture
+java.util.concurrent.ScheduledExecutorService
+java.util.concurrent.Semaphore
+java.util.concurrent.Semaphore$NonfairSync
+java.util.concurrent.Semaphore$Sync
+java.util.concurrent.SynchronousQueue
+java.util.concurrent.SynchronousQueue$TransferStack
+java.util.concurrent.SynchronousQueue$TransferStack$SNode
+java.util.concurrent.SynchronousQueue$Transferer
java.util.concurrent.ThreadFactory
java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ThreadPoolExecutor$AbortPolicy
@@ -2206,8 +2567,10 @@
java.util.concurrent.TimeUnit$5
java.util.concurrent.TimeUnit$6
java.util.concurrent.TimeUnit$7
+java.util.concurrent.TimeoutException
java.util.concurrent.atomic.AtomicBoolean
java.util.concurrent.atomic.AtomicInteger
+java.util.concurrent.atomic.AtomicLong
java.util.concurrent.atomic.AtomicReference
java.util.concurrent.locks.AbstractOwnableSynchronizer
java.util.concurrent.locks.AbstractQueuedSynchronizer
@@ -2226,14 +2589,13 @@
java.util.concurrent.locks.ReentrantReadWriteLock$Sync
java.util.concurrent.locks.ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock
-java.util.jar.Attributes
-java.util.jar.Attributes$Name
java.util.jar.JarEntry
java.util.jar.JarFile
-java.util.jar.JarVerifier
-java.util.jar.Manifest
+java.util.jar.JarFile$JarFileEnumerator
+java.util.jar.StrictJarFile
java.util.logging.ConsoleHandler
java.util.logging.ErrorManager
+java.util.logging.Filter
java.util.logging.Formatter
java.util.logging.Handler
java.util.logging.Level
@@ -2244,54 +2606,42 @@
java.util.logging.LoggingPermission
java.util.logging.SimpleFormatter
java.util.logging.StreamHandler
-java.util.regex.MatchResult
-java.util.regex.Matcher
java.util.regex.Pattern
java.util.regex.PatternSyntaxException
-java.util.regex.Splitter
-java.util.zip.Adler32
java.util.zip.CRC32
-java.util.zip.Checksum
java.util.zip.Deflater
java.util.zip.DeflaterOutputStream
java.util.zip.GZIPInputStream
java.util.zip.GZIPOutputStream
java.util.zip.Inflater
java.util.zip.InflaterInputStream
-java.util.zip.ZipConstants
-java.util.zip.ZipEntry
-java.util.zip.ZipFile
java.util.zip.ZipFile$1
java.util.zip.ZipFile$RAFStream
-java.util.zip.ZipFile$ZipInflaterInputStream
-javax.crypto.Cipher
-javax.crypto.CipherSpi
-javax.crypto.KeyAgreementSpi
-javax.crypto.MacSpi
-javax.crypto.SecretKey
+javax.crypto.BadPaddingException
+javax.crypto.IllegalBlockSizeException
+javax.crypto.NoSuchPaddingException
javax.crypto.spec.GCMParameterSpec
-javax.crypto.spec.IvParameterSpec
-javax.crypto.spec.SecretKeySpec
javax.microedition.khronos.egl.EGL
javax.microedition.khronos.egl.EGL10
-javax.microedition.khronos.egl.EGLConfig
-javax.microedition.khronos.egl.EGLContext
-javax.microedition.khronos.egl.EGLDisplay
-javax.microedition.khronos.egl.EGLSurface
javax.microedition.khronos.opengles.GL
javax.microedition.khronos.opengles.GL10
javax.microedition.khronos.opengles.GL10Ext
javax.microedition.khronos.opengles.GL11
javax.microedition.khronos.opengles.GL11Ext
javax.microedition.khronos.opengles.GL11ExtensionPack
+javax.net.DefaultSocketFactory
javax.net.SocketFactory
javax.net.ssl.DefaultHostnameVerifier
+javax.net.ssl.DistinguishedNameParser
javax.net.ssl.HostnameVerifier
javax.net.ssl.HttpsURLConnection
javax.net.ssl.KeyManager
javax.net.ssl.KeyManagerFactory
javax.net.ssl.KeyManagerFactorySpi
javax.net.ssl.SSLContextSpi
+javax.net.ssl.SSLException
+javax.net.ssl.SSLPeerUnverifiedException
+javax.net.ssl.SSLProtocolException
javax.net.ssl.SSLSession
javax.net.ssl.SSLSessionContext
javax.net.ssl.SSLSocket
@@ -2303,8 +2653,11 @@
javax.net.ssl.X509KeyManager
javax.net.ssl.X509TrustManager
javax.security.auth.x500.X500Principal
+javax.security.cert.CertificateException
+javax.xml.parsers.ParserConfigurationException
libcore.icu.AlphabeticIndex
libcore.icu.AlphabeticIndex$ImmutableIndex
+libcore.icu.DateIntervalFormat
libcore.icu.ICU
libcore.icu.LocaleData
libcore.icu.NativeBreakIterator
@@ -2315,86 +2668,56 @@
libcore.icu.NativeIDN
libcore.icu.NativeNormalizer
libcore.icu.NativePluralRules
-libcore.icu.RuleBasedCollatorICU
libcore.icu.TimeZoneNames
libcore.icu.Transliterator
libcore.internal.StringPool
libcore.io.AsynchronousCloseMonitor
-libcore.io.BlockGuardOs
libcore.io.BufferIterator
libcore.io.DropBox
libcore.io.DropBox$DefaultReporter
libcore.io.DropBox$Reporter
-libcore.io.ErrnoException
libcore.io.EventLogger
libcore.io.EventLogger$DefaultReporter
libcore.io.EventLogger$Reporter
-libcore.io.ForwardingOs
-libcore.io.GaiException
libcore.io.HeapBufferIterator
libcore.io.IoBridge
-libcore.io.IoUtils
-libcore.io.Libcore
-libcore.io.Memory
+libcore.io.IoUtils$FileReader
libcore.io.MemoryMappedFile
libcore.io.NioBufferIterator
-libcore.io.Os
-libcore.io.OsConstants
-libcore.io.Posix
libcore.io.Streams
-libcore.io.StructAddrinfo
-libcore.io.StructFlock
-libcore.io.StructGroupReq
-libcore.io.StructLinger
-libcore.io.StructPasswd
-libcore.io.StructPollfd
-libcore.io.StructStat
-libcore.io.StructTimeval
-libcore.io.StructUcred
-libcore.io.StructUtsname
libcore.math.MathUtils
libcore.net.MimeUtils
-libcore.net.UriCodec
-libcore.net.http.HttpDate
-libcore.net.http.HttpDate$1
+libcore.net.event.NetworkEventDispatcher
+libcore.net.event.NetworkEventListener
libcore.net.url.FileHandler
libcore.net.url.FileURLConnection
+libcore.net.url.FileURLConnection$1
libcore.net.url.JarHandler
libcore.net.url.JarURLConnectionImpl
libcore.net.url.JarURLConnectionImpl$JarURLConnectionInputStream
libcore.net.url.UrlUtils
-libcore.util.BasicLruCache
-libcore.util.CollectionUtils
-libcore.util.CollectionUtils$1
-libcore.util.CollectionUtils$1$1
-libcore.util.EmptyArray
-libcore.util.MutableInt
-libcore.util.MutableLong
-libcore.util.Objects
+libcore.reflect.AnnotationFactory
+libcore.reflect.AnnotationMember
+libcore.reflect.AnnotationMember$DefaultValues
+libcore.reflect.ListOfVariables
+libcore.reflect.ParameterizedTypeImpl
libcore.util.ZoneInfo
+libcore.util.ZoneInfo$CheckedArithmeticException
+libcore.util.ZoneInfo$WallTime
libcore.util.ZoneInfoDB
+libcore.util.ZoneInfoDB$TzData
+libcore.util.ZoneInfoDB$TzData$1
org.apache.commons.logging.Log
org.apache.commons.logging.LogFactory
org.apache.commons.logging.impl.Jdk14Logger
org.apache.commons.logging.impl.WeakHashtable
-org.apache.harmony.crypto.internal.NullCipherSpi
org.apache.harmony.dalvik.NativeTestTarget
-org.apache.harmony.dalvik.ddmc.Chunk
-org.apache.harmony.dalvik.ddmc.ChunkHandler
-org.apache.harmony.dalvik.ddmc.DdmServer
+org.apache.harmony.dalvik.ddmc.DdmVmInternal
org.apache.harmony.luni.internal.util.TimezoneGetter
org.apache.harmony.security.asn1.ASN1Any
-org.apache.harmony.security.asn1.ASN1BitString
-org.apache.harmony.security.asn1.ASN1BitString$ASN1NamedBitList
-org.apache.harmony.security.asn1.ASN1Boolean
org.apache.harmony.security.asn1.ASN1Choice
org.apache.harmony.security.asn1.ASN1Constants
org.apache.harmony.security.asn1.ASN1Constructed
-org.apache.harmony.security.asn1.ASN1Explicit
-org.apache.harmony.security.asn1.ASN1GeneralizedTime
-org.apache.harmony.security.asn1.ASN1Implicit
-org.apache.harmony.security.asn1.ASN1Integer
-org.apache.harmony.security.asn1.ASN1OctetString
org.apache.harmony.security.asn1.ASN1Oid
org.apache.harmony.security.asn1.ASN1Oid$1
org.apache.harmony.security.asn1.ASN1Primitive
@@ -2410,24 +2733,22 @@
org.apache.harmony.security.asn1.ASN1StringType$6
org.apache.harmony.security.asn1.ASN1StringType$7
org.apache.harmony.security.asn1.ASN1StringType$ASN1StringUTF8Type
-org.apache.harmony.security.asn1.ASN1Time
org.apache.harmony.security.asn1.ASN1Type
org.apache.harmony.security.asn1.ASN1TypeCollection
-org.apache.harmony.security.asn1.ASN1UTCTime
org.apache.harmony.security.asn1.ASN1ValueCollection
org.apache.harmony.security.asn1.BerInputStream
org.apache.harmony.security.asn1.BerOutputStream
-org.apache.harmony.security.asn1.BitString
org.apache.harmony.security.asn1.DerInputStream
org.apache.harmony.security.asn1.DerOutputStream
-org.apache.harmony.security.asn1.ObjectIdentifier
-org.apache.harmony.security.fortress.Engine
org.apache.harmony.security.fortress.Engine$ServiceCacheEntry
org.apache.harmony.security.fortress.Engine$SpiAndProvider
org.apache.harmony.security.fortress.SecurityAccess
org.apache.harmony.security.fortress.Services
+org.apache.harmony.security.pkcs7.ContentInfo$1
+org.apache.harmony.security.pkcs7.SignedData
org.apache.harmony.security.provider.crypto.CryptoProvider
org.apache.harmony.security.utils.AlgNameMapper
+org.apache.harmony.security.utils.AlgNameMapperSource
org.apache.harmony.security.utils.ObjectIdentifier
org.apache.harmony.security.x501.AttributeTypeAndValue
org.apache.harmony.security.x501.AttributeTypeAndValue$1
@@ -2438,43 +2759,11 @@
org.apache.harmony.security.x501.DirectoryString$1
org.apache.harmony.security.x501.Name
org.apache.harmony.security.x501.Name$1
-org.apache.harmony.security.x509.AlgorithmIdentifier
-org.apache.harmony.security.x509.AlgorithmIdentifier$1
-org.apache.harmony.security.x509.BasicConstraints
-org.apache.harmony.security.x509.BasicConstraints$1
-org.apache.harmony.security.x509.Certificate
-org.apache.harmony.security.x509.Certificate$1
-org.apache.harmony.security.x509.EDIPartyName
-org.apache.harmony.security.x509.EDIPartyName$1
-org.apache.harmony.security.x509.ExtendedKeyUsage
-org.apache.harmony.security.x509.ExtendedKeyUsage$1
-org.apache.harmony.security.x509.Extension
-org.apache.harmony.security.x509.Extension$1
-org.apache.harmony.security.x509.Extension$2
-org.apache.harmony.security.x509.ExtensionValue
-org.apache.harmony.security.x509.Extensions
-org.apache.harmony.security.x509.Extensions$1
-org.apache.harmony.security.x509.GeneralName
-org.apache.harmony.security.x509.GeneralName$1
-org.apache.harmony.security.x509.GeneralName$2
-org.apache.harmony.security.x509.GeneralNames
-org.apache.harmony.security.x509.GeneralNames$1
-org.apache.harmony.security.x509.KeyUsage
-org.apache.harmony.security.x509.ORAddress
-org.apache.harmony.security.x509.ORAddress$1
-org.apache.harmony.security.x509.ORAddress$2
-org.apache.harmony.security.x509.OtherName
-org.apache.harmony.security.x509.OtherName$1
-org.apache.harmony.security.x509.SubjectPublicKeyInfo
-org.apache.harmony.security.x509.SubjectPublicKeyInfo$1
org.apache.harmony.security.x509.TBSCertificate
-org.apache.harmony.security.x509.TBSCertificate$1
-org.apache.harmony.security.x509.Time
-org.apache.harmony.security.x509.Time$1
-org.apache.harmony.security.x509.Validity
-org.apache.harmony.security.x509.Validity$1
org.apache.harmony.xml.ExpatAttributes
org.apache.harmony.xml.ExpatParser
+org.apache.harmony.xml.dom.DocumentImpl
+org.apache.harmony.xml.dom.InnerNodeImpl
org.apache.http.ConnectionReuseStrategy
org.apache.http.FormattedHeader
org.apache.http.Header
@@ -2486,6 +2775,7 @@
org.apache.http.HttpConnectionMetrics
org.apache.http.HttpEntity
org.apache.http.HttpEntityEnclosingRequest
+org.apache.http.HttpException
org.apache.http.HttpHost
org.apache.http.HttpInetConnection
org.apache.http.HttpMessage
@@ -2496,6 +2786,8 @@
org.apache.http.HttpResponseInterceptor
org.apache.http.HttpVersion
org.apache.http.NameValuePair
+org.apache.http.ParseException
+org.apache.http.ProtocolException
org.apache.http.ProtocolVersion
org.apache.http.ReasonPhraseCatalog
org.apache.http.RequestLine
@@ -2503,6 +2795,7 @@
org.apache.http.auth.AuthSchemeFactory
org.apache.http.auth.AuthSchemeRegistry
org.apache.http.auth.AuthState
+org.apache.http.auth.AuthenticationException
org.apache.http.client.AuthenticationHandler
org.apache.http.client.CookieStore
org.apache.http.client.CredentialsProvider
@@ -2529,6 +2822,7 @@
org.apache.http.conn.ClientConnectionManager
org.apache.http.conn.ClientConnectionOperator
org.apache.http.conn.ClientConnectionRequest
+org.apache.http.conn.ConnectTimeoutException
org.apache.http.conn.ConnectionKeepAliveStrategy
org.apache.http.conn.ConnectionReleaseTrigger
org.apache.http.conn.EofSensorInputStream
@@ -2562,13 +2856,9 @@
org.apache.http.conn.ssl.StrictHostnameVerifier
org.apache.http.conn.ssl.X509HostnameVerifier
org.apache.http.conn.util.InetAddressUtils
-org.apache.http.cookie.CookieAttributeHandler
-org.apache.http.cookie.CookieIdentityComparator
-org.apache.http.cookie.CookieOrigin
-org.apache.http.cookie.CookiePathComparator
-org.apache.http.cookie.CookieSpec
org.apache.http.cookie.CookieSpecFactory
org.apache.http.cookie.CookieSpecRegistry
+org.apache.http.cookie.MalformedCookieException
org.apache.http.entity.AbstractHttpEntity
org.apache.http.entity.BasicHttpEntity
org.apache.http.entity.ByteArrayEntity
@@ -2576,7 +2866,9 @@
org.apache.http.entity.HttpEntityWrapper
org.apache.http.impl.AbstractHttpClientConnection
org.apache.http.impl.DefaultConnectionReuseStrategy
+org.apache.http.impl.DefaultHttpClientConnection
org.apache.http.impl.DefaultHttpResponseFactory
+org.apache.http.impl.DefaultHttpServerConnection
org.apache.http.impl.EnglishReasonPhraseCatalog
org.apache.http.impl.HttpConnectionMetricsImpl
org.apache.http.impl.SocketHttpClientConnection
@@ -2584,7 +2876,6 @@
org.apache.http.impl.auth.DigestSchemeFactory
org.apache.http.impl.client.AbstractAuthenticationHandler
org.apache.http.impl.client.AbstractHttpClient
-org.apache.http.impl.client.BasicCookieStore
org.apache.http.impl.client.BasicCredentialsProvider
org.apache.http.impl.client.ClientParamsStack
org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy
@@ -2598,6 +2889,7 @@
org.apache.http.impl.client.EntityEnclosingRequestWrapper
org.apache.http.impl.client.RequestWrapper
org.apache.http.impl.client.RoutedRequest
+org.apache.http.impl.client.TunnelRefusedException
org.apache.http.impl.conn.AbstractClientConnAdapter
org.apache.http.impl.conn.AbstractPoolEntry
org.apache.http.impl.conn.AbstractPooledConnAdapter
@@ -2621,29 +2913,12 @@
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1
org.apache.http.impl.conn.tsccm.WaitingThreadAborter
-org.apache.http.impl.cookie.AbstractCookieAttributeHandler
-org.apache.http.impl.cookie.AbstractCookieSpec
-org.apache.http.impl.cookie.BasicCommentHandler
-org.apache.http.impl.cookie.BasicExpiresHandler
-org.apache.http.impl.cookie.BasicMaxAgeHandler
-org.apache.http.impl.cookie.BasicPathHandler
-org.apache.http.impl.cookie.BasicSecureHandler
-org.apache.http.impl.cookie.BestMatchSpec
org.apache.http.impl.cookie.BestMatchSpecFactory
org.apache.http.impl.cookie.BrowserCompatSpecFactory
-org.apache.http.impl.cookie.CookieSpecBase
+org.apache.http.impl.cookie.DateParseException
org.apache.http.impl.cookie.NetscapeDraftSpecFactory
-org.apache.http.impl.cookie.RFC2109DomainHandler
-org.apache.http.impl.cookie.RFC2109Spec
org.apache.http.impl.cookie.RFC2109SpecFactory
-org.apache.http.impl.cookie.RFC2109VersionHandler
-org.apache.http.impl.cookie.RFC2965CommentUrlAttributeHandler
-org.apache.http.impl.cookie.RFC2965DiscardAttributeHandler
-org.apache.http.impl.cookie.RFC2965DomainAttributeHandler
-org.apache.http.impl.cookie.RFC2965PortAttributeHandler
-org.apache.http.impl.cookie.RFC2965Spec
org.apache.http.impl.cookie.RFC2965SpecFactory
-org.apache.http.impl.cookie.RFC2965VersionAttributeHandler
org.apache.http.impl.entity.EntityDeserializer
org.apache.http.impl.entity.EntitySerializer
org.apache.http.impl.entity.LaxContentLengthStrategy
@@ -2705,20 +2980,11 @@
org.apache.http.util.ByteArrayBuffer
org.apache.http.util.CharArrayBuffer
org.apache.http.util.LangUtils
-org.ccil.cowan.tagsoup.AttributesImpl
-org.ccil.cowan.tagsoup.AutoDetector
-org.ccil.cowan.tagsoup.Element
-org.ccil.cowan.tagsoup.ElementType
-org.ccil.cowan.tagsoup.HTMLModels
org.ccil.cowan.tagsoup.HTMLScanner
-org.ccil.cowan.tagsoup.HTMLSchema
org.ccil.cowan.tagsoup.Parser
-org.ccil.cowan.tagsoup.Parser$1
-org.ccil.cowan.tagsoup.ScanHandler
-org.ccil.cowan.tagsoup.Scanner
-org.ccil.cowan.tagsoup.Schema
org.json.JSON
org.json.JSONArray
+org.json.JSONException
org.json.JSONObject
org.json.JSONObject$1
org.json.JSONStringer
@@ -2733,9 +2999,11 @@
org.xml.sax.ErrorHandler
org.xml.sax.InputSource
org.xml.sax.Locator
+org.xml.sax.SAXException
+org.xml.sax.SAXNotRecognizedException
+org.xml.sax.SAXNotSupportedException
org.xml.sax.XMLReader
-org.xml.sax.ext.LexicalHandler
org.xml.sax.helpers.DefaultHandler
org.xmlpull.v1.XmlPullParser
+org.xmlpull.v1.XmlPullParserException
org.xmlpull.v1.XmlSerializer
-sun.misc.Unsafe
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index be3fc47..aff64e3 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -67,6 +67,7 @@
import android.util.Pools.SimplePool;
import android.util.Slog;
import android.util.SparseArray;
+import android.view.AccessibilityManagerInternal;
import android.view.Display;
import android.view.IWindow;
import android.view.InputDevice;
@@ -91,6 +92,7 @@
import com.android.internal.R;
import com.android.internal.content.PackageMonitor;
import com.android.internal.statusbar.IStatusBarService;
+import com.android.internal.widget.LockPatternUtils;
import com.android.server.LocalServices;
import org.xmlpull.v1.XmlPullParserException;
@@ -202,6 +204,8 @@
private final UserManager mUserManager;
+ private final LockPatternUtils mLockPatternUtils;
+
private int mCurrentUserId = UserHandle.USER_OWNER;
//TODO: Remove this hack
@@ -225,9 +229,11 @@
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
mSecurityPolicy = new SecurityPolicy();
mMainHandler = new MainHandler(mContext.getMainLooper());
+ mLockPatternUtils = new LockPatternUtils(context);
registerBroadcastReceivers();
new AccessibilityContentObserver(mMainHandler).register(
context.getContentResolver());
+ LocalServices.addService(AccessibilityManagerInternal.class, new LocalService());
}
private UserState getUserStateLocked(int userId) {
@@ -758,6 +764,35 @@
.getAccessibilityFocusClickPointInScreenNotLocked(outPoint);
}
+ /**
+ * Gets the bounds of the active window.
+ *
+ * @param outBounds The output to which to write the bounds.
+ */
+ boolean getActiveWindowBounds(Rect outBounds) {
+ // TODO: This should be refactored to work with accessibility
+ // focus in multiple windows.
+ IBinder token;
+ synchronized (mLock) {
+ final int windowId = mSecurityPolicy.mActiveWindowId;
+ token = mGlobalWindowTokens.get(windowId);
+ if (token == null) {
+ token = getCurrentUserStateLocked().mWindowTokens.get(windowId);
+ }
+ }
+ mWindowManagerService.getWindowFrame(token, outBounds);
+ if (!outBounds.isEmpty()) {
+ return true;
+ }
+ return false;
+ }
+
+ boolean accessibilityFocusOnlyInActiveWindow() {
+ synchronized (mLock) {
+ return mWindowsForAccessibilityCallback == null;
+ }
+ }
+
int getActiveWindowId() {
return mSecurityPolicy.getActiveWindowId();
}
@@ -1294,6 +1329,7 @@
updateTouchExplorationLocked(userState);
updateEnhancedWebAccessibilityLocked(userState);
updateDisplayColorAdjustmentSettingsLocked(userState);
+ updateEncryptionState(userState);
scheduleUpdateInputFilter(userState);
scheduleUpdateClientsIfNeededLocked(userState);
}
@@ -1570,6 +1606,26 @@
DisplayAdjustmentUtils.applyAdjustments(mContext, userState.mUserId);
}
+ private void updateEncryptionState(UserState userState) {
+ if (userState.mUserId != UserHandle.USER_OWNER) {
+ return;
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ if (hasRunningServicesLocked(userState) && LockPatternUtils.isDeviceEncrypted()) {
+ // If there are running accessibility services we do not have encryption as
+ // the user needs the accessibility layer to be running to authenticate.
+ mLockPatternUtils.clearEncryptionPassword();
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ private boolean hasRunningServicesLocked(UserState userState) {
+ return !userState.mBoundServices.isEmpty() || !userState.mBindingServices.isEmpty();
+ }
+
private MagnificationSpec getCompatibleMagnificationSpecLocked(int windowId) {
IBinder windowToken = mGlobalWindowTokens.get(windowId);
if (windowToken == null) {
@@ -1982,7 +2038,15 @@
} else {
userState.mBindingServices.add(mComponentName);
mService = userState.mUiAutomationServiceClient.asBinder();
- onServiceConnected(mComponentName, mService);
+ mMainHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ // Simulate asynchronous connection since in onServiceConnected
+ // we may modify the state data in case of an error but bind is
+ // called while iterating over the data and bad things can happen.
+ onServiceConnected(mComponentName, mService);
+ }
+ });
userState.mUiAutomationService = this;
}
return false;
@@ -2087,7 +2151,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return null;
}
@@ -2118,7 +2182,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return null;
}
@@ -2151,7 +2215,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2203,7 +2267,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2255,7 +2319,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2307,7 +2371,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2360,7 +2424,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2411,7 +2475,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2450,7 +2514,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -2497,7 +2561,7 @@
// performs the current profile parent resolution.
final int resolvedUserId = mSecurityPolicy
.resolveCallingUserIdEnforcingPermissionsLocked(
- UserHandle.getCallingUserId());
+ UserHandle.USER_CURRENT);
if (resolvedUserId != mCurrentUserId) {
return false;
}
@@ -3177,6 +3241,13 @@
point.y = (int) (point.y * (1 / spec.scale));
}
+ // Make sure the point is within the window.
+ Rect windowBounds = mTempRect;
+ getActiveWindowBounds(windowBounds);
+ if (!windowBounds.contains(point.x, point.y)) {
+ return false;
+ }
+
// Make sure the point is within the screen.
Point screenSize = mTempPoint;
mDefaultDisplay.getRealSize(screenSize);
@@ -3536,6 +3607,9 @@
}
private void notifyWindowsChanged() {
+ if (mWindowsForAccessibilityCallback == null) {
+ return;
+ }
final long identity = Binder.clearCallingIdentity();
try {
// Let the client know the windows changed.
@@ -3591,6 +3665,12 @@
if (callingUserId == userId) {
return resolveProfileParentLocked(userId);
}
+ final int callingUserParentId = resolveProfileParentLocked(callingUserId);
+ if (callingUserParentId == mCurrentUserId &&
+ (userId == UserHandle.USER_CURRENT
+ || userId == UserHandle.USER_CURRENT_OR_SELF)) {
+ return mCurrentUserId;
+ }
if (!hasPermission(Manifest.permission.INTERACT_ACROSS_USERS)
&& !hasPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL)) {
throw new SecurityException("Call from user " + callingUserId + " as user "
@@ -3614,6 +3694,10 @@
}
private boolean isRetrievalAllowingWindow(int windowId) {
+ // The system gets to interact with any window it wants.
+ if (Binder.getCallingUid() == Process.SYSTEM_UID) {
+ return true;
+ }
if (windowId == mActiveWindowId) {
return true;
}
@@ -3883,4 +3967,14 @@
}
}
}
+
+ private final class LocalService extends AccessibilityManagerInternal {
+ @Override
+ public boolean isNonDefaultEncryptionPasswordAllowed() {
+ synchronized (mLock) {
+ UserState userState = getCurrentUserStateLocked();
+ return !hasRunningServicesLocked(userState);
+ }
+ }
+ }
}
diff --git a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
index 94befad..b9ed89b 100644
--- a/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
+++ b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
@@ -205,6 +205,9 @@
// The long pressing pointer Y if coordinate remapping is needed.
private int mLongPressingPointerDeltaY;
+ // The id of the last touch explored window.
+ private int mLastTouchedWindowId;
+
// Whether touch exploration is in progress.
private boolean mTouchExplorationInProgress;
@@ -365,6 +368,11 @@
mInjectedPointerTracker.mLastInjectedHoverEventForClick.recycle();
mInjectedPointerTracker.mLastInjectedHoverEventForClick = null;
}
+ mLastTouchedWindowId = -1;
+ } break;
+ case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER:
+ case AccessibilityEvent.TYPE_VIEW_HOVER_EXIT: {
+ mLastTouchedWindowId = event.getWindowId();
} break;
}
if (mNext != null) {
@@ -1208,6 +1216,24 @@
MAX_DRAGGING_ANGLE_COS);
}
+ private boolean computeClickLocation(Point outLocation) {
+ MotionEvent lastExploreEvent = mInjectedPointerTracker.getLastInjectedHoverEventForClick();
+ if (lastExploreEvent != null) {
+ final int lastExplorePointerIndex = lastExploreEvent.getActionIndex();
+ outLocation.x = (int) lastExploreEvent.getX(lastExplorePointerIndex);
+ outLocation.y = (int) lastExploreEvent.getY(lastExplorePointerIndex);
+ if (!mAms.accessibilityFocusOnlyInActiveWindow()
+ || mLastTouchedWindowId == mAms.getActiveWindowId()) {
+ mAms.getAccessibilityFocusClickPointInScreen(outLocation);
+ }
+ return true;
+ }
+ if (mAms.getAccessibilityFocusClickPointInScreen(outLocation)) {
+ return true;
+ }
+ return false;
+ }
+
/**
* Gets the symbolic name of a state.
*
@@ -1284,10 +1310,12 @@
return;
}
+ int clickLocationX;
+ int clickLocationY;
+
final int pointerId = mEvent.getPointerId(mEvent.getActionIndex());
final int pointerIndex = mEvent.findPointerIndex(pointerId);
-
Point clickLocation = mTempPoint;
if (!computeClickLocation(clickLocation)) {
return;
@@ -1311,27 +1339,6 @@
}
}
- private boolean computeClickLocation(Point outPoint) {
- // Try to click on the accessiblity focused view and if that
- // fails try the last touch explored location, if such.
- Point point = mTempPoint;
- if (mAms.getAccessibilityFocusClickPointInScreen(point)) {
- outPoint.x = point.x;
- outPoint.y = point.y;
- return true;
- } else {
- MotionEvent lastExploreEvent =
- mInjectedPointerTracker.getLastInjectedHoverEventForClick();
- if (lastExploreEvent != null) {
- final int lastExplorePointerIndex = lastExploreEvent.getActionIndex();
- outPoint.x = (int) lastExploreEvent.getX(lastExplorePointerIndex);
- outPoint.y = (int) lastExploreEvent.getY(lastExplorePointerIndex);
- return true;
- }
- }
- return false;
- }
-
/**
* Class for delayed sending of hover enter and move events.
*/
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 47396bd..8b524dd 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -58,6 +58,7 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.Locale;
import java.util.TimeZone;
@@ -141,6 +142,25 @@
private final SparseArray<AlarmManager.AlarmClockInfo> mHandlerSparseAlarmClockArray =
new SparseArray<>();
+ // Alarm delivery ordering bookkeeping
+ static final int PRIO_TICK = 0;
+ static final int PRIO_WAKEUP = 1;
+ static final int PRIO_NORMAL = 2;
+
+ class PriorityClass {
+ int seq;
+ int priority;
+
+ PriorityClass() {
+ seq = mCurrentSeq - 1;
+ priority = PRIO_NORMAL;
+ }
+ }
+
+ final HashMap<String, PriorityClass> mPriorities =
+ new HashMap<String, PriorityClass>();
+ int mCurrentSeq = 0;
+
class WakeupEvent {
public long when;
public int uid;
@@ -356,22 +376,62 @@
final Comparator<Alarm> mAlarmDispatchComparator = new Comparator<Alarm>() {
@Override
public int compare(Alarm lhs, Alarm rhs) {
- if ((!lhs.operation.getCreatorPackage().equals(rhs.operation.getCreatorPackage()))
- && lhs.wakeup != rhs.wakeup) {
- // We want to put wakeup alarms before non-wakeup alarms, since they are
- // the things that drive most activity in the alarm manager. However,
- // alarms from the same package should always be ordered strictly by time.
- return lhs.wakeup ? -1 : 1;
+ // priority class trumps everything. TICK < WAKEUP < NORMAL
+ if (lhs.priorityClass.priority < rhs.priorityClass.priority) {
+ return -1;
+ } else if (lhs.priorityClass.priority > rhs.priorityClass.priority) {
+ return 1;
}
+
+ // within each class, sort by nominal delivery time
if (lhs.whenElapsed < rhs.whenElapsed) {
return -1;
} else if (lhs.whenElapsed > rhs.whenElapsed) {
return 1;
}
+
+ // same priority class + same target delivery time
return 0;
}
};
+ void calculateDeliveryPriorities(ArrayList<Alarm> alarms) {
+ final int N = alarms.size();
+ for (int i = 0; i < N; i++) {
+ Alarm a = alarms.get(i);
+
+ final int alarmPrio;
+ if (Intent.ACTION_TIME_TICK.equals(a.operation.getIntent().getAction())) {
+ alarmPrio = PRIO_TICK;
+ } else if (a.wakeup) {
+ alarmPrio = PRIO_WAKEUP;
+ } else {
+ alarmPrio = PRIO_NORMAL;
+ }
+
+ PriorityClass packagePrio = a.priorityClass;
+ if (packagePrio == null) packagePrio = mPriorities.get(a.operation.getCreatorPackage());
+ if (packagePrio == null) {
+ packagePrio = a.priorityClass = new PriorityClass(); // lowest prio & stale sequence
+ mPriorities.put(a.operation.getCreatorPackage(), packagePrio);
+ }
+ a.priorityClass = packagePrio;
+
+ if (packagePrio.seq != mCurrentSeq) {
+ // first alarm we've seen in the current delivery generation from this package
+ packagePrio.priority = alarmPrio;
+ packagePrio.seq = mCurrentSeq;
+ } else {
+ // Multiple alarms from this package being delivered in this generation;
+ // bump the package's delivery class if it's warranted.
+ // TICK < WAKEUP < NORMAL
+ if (alarmPrio < packagePrio.priority) {
+ packagePrio.priority = alarmPrio;
+ }
+ }
+ }
+ }
+
// minimum recurrence period or alarm futurity for us to be able to fuzz it
static final long MIN_FUZZABLE_INTERVAL = 10000;
static final BatchTimeOrder sBatchOrder = new BatchTimeOrder();
@@ -1381,6 +1441,10 @@
}
}
+ // This is a new alarm delivery set; bump the sequence number to indicate that
+ // all apps' alarm delivery classes should be recalculated.
+ mCurrentSeq++;
+ calculateDeliveryPriorities(triggerList);
Collections.sort(triggerList, mAlarmDispatchComparator);
if (localLOGV) {
@@ -1423,6 +1487,7 @@
public long repeatInterval;
public final AlarmManager.AlarmClockInfo alarmClock;
public final int userId;
+ public PriorityClass priorityClass;
public Alarm(int _type, long _when, long _whenElapsed, long _windowLength, long _maxWhen,
long _interval, PendingIntent _op, WorkSource _ws,
@@ -1676,6 +1741,7 @@
rescheduleKernelAlarmsLocked();
updateNextAlarmClockLocked();
if (mPendingNonWakeupAlarms.size() > 0) {
+ calculateDeliveryPriorities(mPendingNonWakeupAlarms);
triggerList.addAll(mPendingNonWakeupAlarms);
Collections.sort(triggerList, mAlarmDispatchComparator);
final long thisDelayTime = nowELAPSED - mStartCurrentDelayTime;
@@ -1889,6 +1955,7 @@
if (pkgList != null && (pkgList.length > 0)) {
for (String pkg : pkgList) {
removeLocked(pkg);
+ mPriorities.remove(pkg);
for (int i=mBroadcastStats.size()-1; i>=0; i--) {
ArrayMap<String, BroadcastStats> uidStats = mBroadcastStats.valueAt(i);
if (uidStats.remove(pkg) != null) {
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 0b1a627..b29cdf4 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -90,6 +90,7 @@
import android.os.AsyncTask;
import android.os.Binder;
import android.os.Build;
+import android.os.Bundle;
import android.os.FileUtils;
import android.os.Handler;
import android.os.HandlerThread;
@@ -137,6 +138,7 @@
import com.android.server.connectivity.NetworkAgentInfo;
import com.android.server.connectivity.NetworkMonitor;
import com.android.server.connectivity.PacManager;
+import com.android.server.connectivity.PermissionMonitor;
import com.android.server.connectivity.Tethering;
import com.android.server.connectivity.Vpn;
import com.android.server.net.BaseNetworkObserver;
@@ -170,6 +172,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Random;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -225,6 +228,8 @@
private Tethering mTethering;
+ private final PermissionMonitor mPermissionMonitor;
+
private KeyStore mKeyStore;
@GuardedBy("mVpns")
@@ -400,7 +405,7 @@
private ArrayList mInetLog;
// track the current default http proxy - tell the world if we get a new one (real change)
- private ProxyInfo mDefaultProxy = null;
+ private volatile ProxyInfo mDefaultProxy = null;
private Object mProxyLock = new Object();
private boolean mDefaultProxyDisabled = false;
@@ -516,11 +521,13 @@
return;
}
- if (list.isEmpty() || isDefaultNetwork(nai)) {
+ list.add(nai);
+
+ // Send a broadcast if this is the first network of its type or if it's the default.
+ if (list.size() == 1 || isDefaultNetwork(nai)) {
maybeLogBroadcast(nai, true, type);
sendLegacyNetworkBroadcast(nai, true, type);
}
- list.add(nai);
}
/** Removes the given network from the specified legacy type list. */
@@ -700,6 +707,8 @@
mTethering = new Tethering(mContext, mNetd, statsService, mHandler.getLooper());
+ mPermissionMonitor = new PermissionMonitor(mContext, mNetd);
+
//set up the listener for user state for creating user VPNs
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_USER_STARTING);
@@ -1482,6 +1491,8 @@
}
mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
+
+ mPermissionMonitor.startMonitoring();
}
private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() {
@@ -1783,6 +1794,10 @@
return false;
}
+ private boolean isRequest(NetworkRequest request) {
+ return mNetworkRequests.get(request).isRequest;
+ }
+
// must be stateless - things change under us.
private class NetworkStateTrackerHandler extends Handler {
public NetworkStateTrackerHandler(Looper looper) {
@@ -1886,6 +1901,9 @@
loge("EVENT_SET_EXPLICITLY_SELECTED from unknown NetworkAgent");
break;
}
+ if (nai.created && !nai.networkMisc.explicitlySelected) {
+ loge("ERROR: created network explicitly selected.");
+ }
nai.networkMisc.explicitlySelected = true;
break;
}
@@ -1895,8 +1913,14 @@
boolean valid = (msg.arg1 == NetworkMonitor.NETWORK_TEST_RESULT_VALID);
if (valid) {
if (DBG) log("Validated " + nai.name());
+ final boolean previouslyValidated = nai.validated;
+ final int previousScore = nai.getCurrentScore();
nai.validated = true;
- rematchNetworkAndRequests(nai);
+ rematchNetworkAndRequests(nai, !previouslyValidated);
+ // If score has changed, rebroadcast to NetworkFactories. b/17726566
+ if (nai.getCurrentScore() != previousScore) {
+ sendUpdatedScoreToFactories(nai);
+ }
}
updateInetCondition(nai, valid);
// Let the NetworkAgent know the state of its network
@@ -2069,6 +2093,7 @@
}
// Since we've lost the network, go through all the requests that
// it was satisfying and see if any other factory can satisfy them.
+ // TODO: This logic may be better replaced with a call to rematchAllNetworksAndRequests
final ArrayList<NetworkAgentInfo> toActivate = new ArrayList<NetworkAgentInfo>();
for (int i = 0; i < nai.networkRequests.size(); i++) {
NetworkRequest request = nai.networkRequests.valueAt(i);
@@ -2104,7 +2129,9 @@
requestNetworkTransitionWakelock(nai.name());
}
for (NetworkAgentInfo networkToActivate : toActivate) {
+ networkToActivate.networkLingered.clear();
networkToActivate.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED);
+ rematchNetworkAndRequests(networkToActivate, false);
}
}
}
@@ -2142,6 +2169,7 @@
bestNetwork.networkLingered.clear();
bestNetwork.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED);
}
+ // TODO: This logic may be better replaced with a call to rematchNetworkAndRequests
bestNetwork.addRequest(nri.request);
mNetworkForRequestId.put(nri.request.requestId, bestNetwork);
notifyNetworkCallback(bestNetwork, nri);
@@ -2186,7 +2214,7 @@
boolean keep = nai.isVPN();
for (int i = 0; i < nai.networkRequests.size() && !keep; i++) {
NetworkRequest r = nai.networkRequests.valueAt(i);
- if (mNetworkRequests.get(r).isRequest) keep = true;
+ if (isRequest(r)) keep = true;
}
if (!keep) {
if (DBG) log("no live requests for " + nai.name() + "; disconnecting");
@@ -2470,6 +2498,10 @@
if (nai == null) return;
if (DBG) log("reportBadNetwork(" + nai.name() + ") by " + uid);
synchronized (nai) {
+ // Validating an uncreated network could result in a call to rematchNetworkAndRequests()
+ // which isn't meant to work on uncreated networks.
+ if (!nai.created) return;
+
if (isNetworkBlocked(nai, uid)) return;
nai.networkMonitor.sendMessage(NetworkMonitor.CMD_FORCE_REEVALUATION, uid);
@@ -2528,12 +2560,12 @@
} finally {
Binder.restoreCallingIdentity(token);
}
- }
- if (mGlobalProxy == null) {
- proxyProperties = mDefaultProxy;
+ if (mGlobalProxy == null) {
+ proxyProperties = mDefaultProxy;
+ }
+ sendProxyBroadcast(proxyProperties);
}
- sendProxyBroadcast(proxyProperties);
}
private void loadGlobalProxy() {
@@ -3531,6 +3563,10 @@
updateDnses(newLp, oldLp, netId, flushDns);
updateClat(newLp, oldLp, networkAgent);
if (isDefaultNetwork(networkAgent)) handleApplyDefaultProxy(newLp.getHttpProxy());
+ // TODO - move this check to cover the whole function
+ if (!Objects.equals(newLp, oldLp)) {
+ notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
+ }
}
private void updateClat(LinkProperties newLp, LinkProperties oldLp, NetworkAgentInfo na) {
@@ -3668,10 +3704,22 @@
private void updateCapabilities(NetworkAgentInfo networkAgent,
NetworkCapabilities networkCapabilities) {
- // TODO - what else here? Verify still satisfies everybody?
- // Check if satisfies somebody new? call callbacks?
- synchronized (networkAgent) {
- networkAgent.networkCapabilities = networkCapabilities;
+ // TODO - turn this on in MR1 when we have more dogfooding time.
+ // rematchAllNetworksAndRequests();
+ if (!Objects.equals(networkAgent.networkCapabilities, networkCapabilities)) {
+ synchronized (networkAgent) {
+ networkAgent.networkCapabilities = networkCapabilities;
+ }
+ notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_CAP_CHANGED);
+ }
+ }
+
+ private void sendUpdatedScoreToFactories(NetworkAgentInfo nai) {
+ for (int i = 0; i < nai.networkRequests.size(); i++) {
+ NetworkRequest nr = nai.networkRequests.valueAt(i);
+ // Don't send listening requests to factories. b/17393458
+ if (!isRequest(nr)) continue;
+ sendUpdatedScoreToFactories(nr, nai.getCurrentScore());
}
}
@@ -3686,37 +3734,32 @@
private void callCallbackForRequest(NetworkRequestInfo nri,
NetworkAgentInfo networkAgent, int notificationType) {
if (nri.messenger == null) return; // Default request has no msgr
- Object o;
- int a1 = 0;
- int a2 = 0;
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(NetworkRequest.class.getSimpleName(),
+ new NetworkRequest(nri.request));
+ Message msg = Message.obtain();
+ if (notificationType != ConnectivityManager.CALLBACK_UNAVAIL &&
+ notificationType != ConnectivityManager.CALLBACK_RELEASED) {
+ bundle.putParcelable(Network.class.getSimpleName(), networkAgent.network);
+ }
switch (notificationType) {
- case ConnectivityManager.CALLBACK_LOSING:
- a1 = 30 * 1000; // TODO - read this from NetworkMonitor
- // fall through
- case ConnectivityManager.CALLBACK_PRECHECK:
- case ConnectivityManager.CALLBACK_AVAILABLE:
- case ConnectivityManager.CALLBACK_LOST:
- case ConnectivityManager.CALLBACK_CAP_CHANGED:
+ case ConnectivityManager.CALLBACK_LOSING: {
+ msg.arg1 = 30 * 1000; // TODO - read this from NetworkMonitor
+ break;
+ }
+ case ConnectivityManager.CALLBACK_CAP_CHANGED: {
+ bundle.putParcelable(NetworkCapabilities.class.getSimpleName(),
+ new NetworkCapabilities(networkAgent.networkCapabilities));
+ break;
+ }
case ConnectivityManager.CALLBACK_IP_CHANGED: {
- o = new NetworkRequest(nri.request);
- a2 = networkAgent.network.netId;
+ bundle.putParcelable(LinkProperties.class.getSimpleName(),
+ new LinkProperties(networkAgent.linkProperties));
break;
}
- case ConnectivityManager.CALLBACK_UNAVAIL:
- case ConnectivityManager.CALLBACK_RELEASED: {
- o = new NetworkRequest(nri.request);
- break;
- }
- default: {
- loge("Unknown notificationType " + notificationType);
- return;
- }
}
- Message msg = Message.obtain();
- msg.arg1 = a1;
- msg.arg2 = a2;
- msg.obj = o;
msg.what = notificationType;
+ msg.setData(bundle);
try {
if (VDBG) {
log("sending notification " + notifyTypeToName(notificationType) +
@@ -3729,22 +3772,24 @@
}
}
+ private void teardownUnneededNetwork(NetworkAgentInfo nai) {
+ for (int i = 0; i < nai.networkRequests.size(); i++) {
+ NetworkRequest nr = nai.networkRequests.valueAt(i);
+ // Ignore listening requests.
+ if (!isRequest(nr)) continue;
+ loge("Dead network still had at least " + nr);
+ break;
+ }
+ nai.asyncChannel.disconnect();
+ }
+
private void handleLingerComplete(NetworkAgentInfo oldNetwork) {
if (oldNetwork == null) {
loge("Unknown NetworkAgentInfo in handleLingerComplete");
return;
}
- if (DBG) {
- log("handleLingerComplete for " + oldNetwork.name());
- for (int i = 0; i < oldNetwork.networkRequests.size(); i++) {
- NetworkRequest nr = oldNetwork.networkRequests.valueAt(i);
- // Ignore listening requests.
- if (mNetworkRequests.get(nr).isRequest == false) continue;
- loge("Dead network still had at least " + nr);
- break;
- }
- }
- oldNetwork.asyncChannel.disconnect();
+ if (DBG) log("handleLingerComplete for " + oldNetwork.name());
+ teardownUnneededNetwork(oldNetwork);
}
private void makeDefault(NetworkAgentInfo newNetwork) {
@@ -3766,21 +3811,32 @@
// satisfied by newNetwork, and reassigns to newNetwork
// any such requests for which newNetwork is the best.
//
- // - Tears down any Networks that as a result are no longer
+ // - Lingers any Networks that as a result are no longer
// needed. A network is needed if it is the best network for
// one or more NetworkRequests, or if it is a VPN.
//
- // - Tears down newNetwork if it is validated but turns out to be
- // unneeded. Does not tear down newNetwork if it is
- // unvalidated, because future validation may improve
- // newNetwork's score enough that it is needed.
+ // - Tears down newNetwork if it just became validated
+ // (i.e. nascent==true) but turns out to be unneeded.
+ // Does not tear down newNetwork if it is unvalidated,
+ // because future validation may improve newNetwork's
+ // score enough that it is needed.
//
// NOTE: This function only adds NetworkRequests that "newNetwork" could satisfy,
// it does not remove NetworkRequests that other Networks could better satisfy.
// If you need to handle decreases in score, use {@link rematchAllNetworksAndRequests}.
// This function should be used when possible instead of {@code rematchAllNetworksAndRequests}
// as it performs better by a factor of the number of Networks.
- private void rematchNetworkAndRequests(NetworkAgentInfo newNetwork) {
+ //
+ // @param nascent indicates if newNetwork just became validated, in which case it should be
+ // torn down if unneeded. If nascent is false, no action is taken if newNetwork
+ // is found to be unneeded by this call. Presumably, in this case, either:
+ // - newNetwork is unvalidated (and left alive), or
+ // - the NetworkRequests keeping newNetwork alive have been transitioned to
+ // another higher scoring network by another call to rematchNetworkAndRequests()
+ // and this other call also lingered newNetwork.
+ private void rematchNetworkAndRequests(NetworkAgentInfo newNetwork, boolean nascent) {
+ if (!newNetwork.created) loge("ERROR: uncreated network being rematched.");
+ if (nascent && !newNetwork.validated) loge("ERROR: nascent network not validated.");
boolean keep = newNetwork.isVPN();
boolean isNewDefault = false;
if (DBG) log("rematching " + newNetwork.name());
@@ -3866,11 +3922,11 @@
}
// Linger any networks that are no longer needed.
for (NetworkAgentInfo nai : affectedNetworks) {
- boolean teardown = !nai.isVPN();
+ boolean teardown = !nai.isVPN() && nai.validated;
for (int i = 0; i < nai.networkRequests.size() && teardown; i++) {
NetworkRequest nr = nai.networkRequests.valueAt(i);
try {
- if (mNetworkRequests.get(nr).isRequest) {
+ if (isRequest(nr)) {
teardown = false;
}
} catch (Exception e) {
@@ -3925,20 +3981,16 @@
}
notifyNetworkCallbacks(newNetwork, ConnectivityManager.CALLBACK_AVAILABLE);
- } else if (newNetwork.validated) {
- // Only tear down validated networks here. Leave unvalidated to either become
+ } else if (nascent) {
+ // Only tear down newly validated networks here. Leave unvalidated to either become
// validated (and get evaluated against peers, one losing here) or
// NetworkMonitor reports a bad network and we tear it down then.
+ // Networks that have been up for a while and are validated should be torn down via
+ // the lingering process so communication on that network is given time to wrap up.
// TODO: Could teardown unvalidated networks when their NetworkCapabilities
// satisfy no NetworkRequests.
- if (DBG && newNetwork.networkRequests.size() != 0) {
- loge("tearing down network with live requests:");
- for (int i=0; i < newNetwork.networkRequests.size(); i++) {
- loge(" " + newNetwork.networkRequests.valueAt(i));
- }
- }
if (DBG) log("Validated network turns out to be unwanted. Tear it down.");
- newNetwork.asyncChannel.disconnect();
+ teardownUnneededNetwork(newNetwork);
}
}
@@ -3960,10 +4012,10 @@
// can only add more NetworkRequests satisfied by "changed", and this is exactly what
// rematchNetworkAndRequests() handles.
if (changed != null && oldScore < changed.getCurrentScore()) {
- rematchNetworkAndRequests(changed);
+ rematchNetworkAndRequests(changed, false);
} else {
for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
- rematchNetworkAndRequests(nai);
+ rematchNetworkAndRequests(nai, false);
}
}
}
@@ -4037,14 +4089,7 @@
// TODO: support proxy per network.
}
// Consider network even though it is not yet validated.
- // TODO: All the if-statement conditions can be removed now that validation only confers
- // a score increase.
- if (mNetworkForRequestId.get(mDefaultRequest.requestId) == null &&
- networkAgent.isVPN() == false &&
- mDefaultRequest.networkCapabilities.satisfiedByNetworkCapabilities(
- networkAgent.networkCapabilities)) {
- rematchNetworkAndRequests(networkAgent);
- }
+ rematchNetworkAndRequests(networkAgent, false);
} else if (state == NetworkInfo.State.DISCONNECTED ||
state == NetworkInfo.State.SUSPENDED) {
networkAgent.asyncChannel.disconnect();
@@ -4074,12 +4119,7 @@
if (nai.created) rematchAllNetworksAndRequests(nai, oldScore);
- for (int i = 0; i < nai.networkRequests.size(); i++) {
- NetworkRequest nr = nai.networkRequests.valueAt(i);
- // Don't send listening requests to factories. b/17393458
- if (mNetworkRequests.get(nr).isRequest == false) continue;
- sendUpdatedScoreToFactories(nr, score);
- }
+ sendUpdatedScoreToFactories(nai);
}
// notify only this one new request of the current state
@@ -4191,6 +4231,7 @@
NetworkInfo result = new NetworkInfo(
networkType, 0, ConnectivityManager.getNetworkTypeName(networkType), "");
result.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED, null, null);
+ result.setIsAvailable(true);
return result;
}
}
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index 7f24d07..b0535b3 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -63,6 +63,7 @@
import android.util.Slog;
import android.util.Xml;
+import android.view.AccessibilityManagerInternal;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IMediaContainerService;
@@ -557,6 +558,8 @@
private final Handler mHandler;
+ private final AccessibilityManagerInternal mAccessibilityManagerInternal;
+
void waitForAsecScan() {
waitForLatch(mAsecsScanned);
}
@@ -1454,6 +1457,9 @@
hthread.start();
mHandler = new MountServiceHandler(hthread.getLooper());
+ mAccessibilityManagerInternal = LocalServices.getService(
+ AccessibilityManagerInternal.class);
+
// Watch for user changes
final IntentFilter userFilter = new IntentFilter();
userFilter.addAction(Intent.ACTION_USER_ADDED);
@@ -2254,8 +2260,15 @@
final NativeDaemonEvent event;
try {
+ // The accessibility layer may veto having a non-default encryption
+ // password because if there are enabled accessibility services the
+ // user cannot authenticate as the latter need access to the data.
+ if (!TextUtils.isEmpty(password)
+ && !mAccessibilityManagerInternal.isNonDefaultEncryptionPasswordAllowed()) {
+ return getEncryptionState();
+ }
event = mConnector.execute("cryptfs", "changepw", CRYPTO_TYPES[type],
- new SensitiveArg(toHex(password)));
+ new SensitiveArg(toHex(password)));
return Integer.parseInt(event.getMessage());
} catch (NativeDaemonConnectorException e) {
// Encryption failed
@@ -2302,7 +2315,7 @@
* @return The type, one of the CRYPT_TYPE_XXX consts from StorageManager.
*/
@Override
- public int getPasswordType() throws RemoteException {
+ public int getPasswordType() {
waitForReady();
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 822007a..020c951 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -16,7 +16,6 @@
package com.android.server;
-import static android.Manifest.permission.CHANGE_NETWORK_STATE;
import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
import static android.Manifest.permission.DUMP;
import static android.Manifest.permission.SHUTDOWN;
@@ -2059,20 +2058,26 @@
}
@Override
- public void setPermission(boolean internal, boolean changeNetState, int[] uids) {
+ public void setPermission(String permission, int[] uids) {
mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
- final Command cmd = new Command("network", "permission", "user", "set");
- if (internal) cmd.appendArg(CONNECTIVITY_INTERNAL);
- if (changeNetState) cmd.appendArg(CHANGE_NETWORK_STATE);
- for (int i=0; i<uids.length; i++) {
- cmd.appendArg(uids[i]);
- }
-
- try {
- mConnector.execute(cmd);
- } catch (NativeDaemonConnectorException e) {
- throw e.rethrowAsParcelableException();
+ Object[] argv = new Object[4 + MAX_UID_RANGES_PER_COMMAND];
+ argv[0] = "permission";
+ argv[1] = "user";
+ argv[2] = "set";
+ argv[3] = permission;
+ int argc = 4;
+ // Avoid overly long commands by limiting number of UIDs per command.
+ for (int i = 0; i < uids.length; ++i) {
+ argv[argc++] = uids[i];
+ if (i == uids.length - 1 || argc == argv.length) {
+ try {
+ mConnector.execute("network", Arrays.copyOf(argv, argc));
+ } catch (NativeDaemonConnectorException e) {
+ throw e.rethrowAsParcelableException();
+ }
+ argc = 4;
+ }
}
}
@@ -2080,15 +2085,22 @@
public void clearPermission(int[] uids) {
mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
- final Command cmd = new Command("network", "permission", "user", "clear");
- for (int i=0; i<uids.length; i++) {
- cmd.appendArg(uids[i]);
- }
-
- try {
- mConnector.execute(cmd);
- } catch (NativeDaemonConnectorException e) {
- throw e.rethrowAsParcelableException();
+ Object[] argv = new Object[3 + MAX_UID_RANGES_PER_COMMAND];
+ argv[0] = "permission";
+ argv[1] = "user";
+ argv[2] = "clear";
+ int argc = 3;
+ // Avoid overly long commands by limiting number of UIDs per command.
+ for (int i = 0; i < uids.length; ++i) {
+ argv[argc++] = uids[i];
+ if (i == uids.length - 1 || argc == argv.length) {
+ try {
+ mConnector.execute("network", Arrays.copyOf(argv, argc));
+ } catch (NativeDaemonConnectorException e) {
+ throw e.rethrowAsParcelableException();
+ }
+ argc = 3;
+ }
}
}
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index 01e80b7..f430c56 100755
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -1468,6 +1468,7 @@
app.services.remove(r);
r.app = null;
scheduleServiceRestartLocked(r, false);
+ return;
}
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 12c98c1..4a10b73 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1192,7 +1192,7 @@
static final int SYSTEM_USER_START_MSG = 42;
static final int SYSTEM_USER_CURRENT_MSG = 43;
static final int ENTER_ANIMATION_COMPLETE_MSG = 44;
- static final int ENABLE_SCREEN_AFTER_BOOT_MSG = 45;
+ static final int FINISH_BOOTING_MSG = 45;
static final int START_USER_SWITCH_MSG = 46;
static final int SEND_LOCALE_TO_MOUNT_DAEMON_MSG = 47;
@@ -1877,8 +1877,13 @@
}
break;
}
- case ENABLE_SCREEN_AFTER_BOOT_MSG: {
- enableScreenAfterBoot();
+ case FINISH_BOOTING_MSG: {
+ if (msg.arg1 != 0) {
+ finishBooting();
+ }
+ if (msg.arg2 != 0) {
+ enableScreenAfterBoot();
+ }
break;
}
case SEND_LOCALE_TO_MOUNT_DAEMON_MSG: {
@@ -2025,7 +2030,7 @@
@Override
public void onPackageModified(String packageName) {
final int eventUserId = getChangingUserId();
- final PackageManager pm = mContext.getPackageManager();
+ final IPackageManager pm = AppGlobals.getPackageManager();
final ArrayList<Pair<Intent, Integer>> recentTaskIntents =
new ArrayList<Pair<Intent, Integer>>();
final HashSet<ComponentName> componentsKnownToExist = new HashSet<ComponentName>();
@@ -2050,13 +2055,15 @@
continue;
}
try {
- ActivityInfo info = pm.getActivityInfo(cn, eventUserId);
- if (info != null && info.isEnabled()) {
+ ActivityInfo info = pm.getActivityInfo(cn, 0, eventUserId);
+ if (info != null) {
componentsKnownToExist.add(cn);
} else {
tasksToRemove.add(p.second);
}
- } catch (Exception e) {}
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to query activity info for component: " + cn, e);
+ }
}
}
// Prune all the tasks with removed components from the list of recent tasks
@@ -4950,7 +4957,7 @@
}
}
} catch (InterruptedException e) {
- Log.wtf(TAG, e);
+ Slog.wtf(TAG, e);
}
}
@@ -4990,7 +4997,7 @@
observer.wait(200); // Wait for write-close, give up after 200msec
}
} catch (InterruptedException e) {
- Log.wtf(TAG, e);
+ Slog.wtf(TAG, e);
}
}
@@ -6258,8 +6265,9 @@
Binder.restoreCallingIdentity(origId);
}
- void postEnableScreenAfterBootLocked() {
- mHandler.sendEmptyMessage(ENABLE_SCREEN_AFTER_BOOT_MSG);
+ void postFinishBooting(boolean finishBooting, boolean enableScreen) {
+ mHandler.sendMessage(mHandler.obtainMessage(FINISH_BOOTING_MSG,
+ finishBooting? 1 : 0, enableScreen ? 1 : 0));
}
void enableScreenAfterBoot() {
@@ -6324,7 +6332,7 @@
startProcessLocked(procs.get(ip), "on-hold", null);
}
}
-
+
if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
// Start looking for apps that are abusing wake locks.
Message nmsg = mHandler.obtainMessage(CHECK_EXCESSIVE_WAKE_LOCKS_MSG);
@@ -6564,7 +6572,7 @@
throw new IllegalArgumentException("File descriptors passed in options");
}
}
-
+
synchronized(this) {
int callingUid = Binder.getCallingUid();
int origUserId = userId;
@@ -6594,7 +6602,7 @@
return getIntentSenderLocked(type, packageName, callingUid, userId,
token, resultWho, requestCode, intents, resolvedTypes, flags, options);
-
+
} catch (RemoteException e) {
throw new SecurityException(e);
}
@@ -6852,7 +6860,7 @@
"setProcessForeground()");
synchronized(this) {
boolean changed = false;
-
+
synchronized (mPidsSelfLocked) {
ProcessRecord pr = mPidsSelfLocked.get(pid);
if (pr == null && isForeground) {
@@ -6888,13 +6896,13 @@
}
}
}
-
+
if (changed) {
updateOomAdjLocked();
}
}
}
-
+
// =========================================================
// PERMISSIONS
// =========================================================
@@ -6956,7 +6964,7 @@
* permission is automatically denied. (Internally a null permission
* string is used when calling {@link #checkComponentPermission} in cases
* when only uid-based security is needed.)
- *
+ *
* This can be called with or without the global lock held.
*/
@Override
@@ -7213,12 +7221,12 @@
if (DEBUG_URI_PERMISSION) Slog.v(TAG,
"Checking grant " + targetPkg + " permission to " + grantUri);
}
-
+
final IPackageManager pm = AppGlobals.getPackageManager();
// If this is not a content: uri, we can't do anything with it.
if (!ContentResolver.SCHEME_CONTENT.equals(grantUri.uri.getScheme())) {
- if (DEBUG_URI_PERMISSION) Slog.v(TAG,
+ if (DEBUG_URI_PERMISSION) Slog.v(TAG,
"Can't grant URI permission for non-content URI: " + grantUri);
return -1;
}
@@ -7346,7 +7354,7 @@
// to the uri, and the target doesn't. Let's now give this to
// the target.
- if (DEBUG_URI_PERMISSION) Slog.v(TAG,
+ if (DEBUG_URI_PERMISSION) Slog.v(TAG,
"Granting " + targetPkg + "/" + targetUid + " permission to " + grantUri);
final String authority = grantUri.uri.getAuthority();
@@ -7548,7 +7556,7 @@
final ArrayMap<GrantUri, UriPermission> perms = mGrantedUriPermissions.get(
perm.targetUid);
if (perms != null) {
- if (DEBUG_URI_PERMISSION) Slog.v(TAG,
+ if (DEBUG_URI_PERMISSION) Slog.v(TAG,
"Removing " + perm.targetUid + " permission to " + perm.uri);
perms.remove(perm.uri);
@@ -7909,9 +7917,9 @@
} catch (FileNotFoundException e) {
// Missing grants is okay
} catch (IOException e) {
- Log.wtf(TAG, "Failed reading Uri grants", e);
+ Slog.wtf(TAG, "Failed reading Uri grants", e);
} catch (XmlPullParserException e) {
- Log.wtf(TAG, "Failed reading Uri grants", e);
+ Slog.wtf(TAG, "Failed reading Uri grants", e);
} finally {
IoUtils.closeQuietly(fis);
}
@@ -8117,7 +8125,7 @@
outInfo.foregroundAppThreshold = mProcessList.getMemLevel(
ProcessList.FOREGROUND_APP_ADJ);
}
-
+
// =========================================================
// TASK MANAGEMENT
// =========================================================
@@ -8519,7 +8527,7 @@
}
}
}
-
+
/**
* TODO: Add mController hook
*/
@@ -8595,7 +8603,7 @@
/**
* Moves an activity, and all of the other activities within the same task, to the bottom
* of the history stack. The activity's order within the task is unchanged.
- *
+ *
* @param token A reference to the activity we wish to move
* @param nonRoot If false then this only works if the activity is the root
* of a task; if true it will work for any activity in a task.
@@ -9016,7 +9024,7 @@
== PackageManager.PERMISSION_GRANTED) {
return null;
}
-
+
PathPermission[] pps = cpi.pathPermissions;
if (pps != null) {
int i = pps.length;
@@ -9349,6 +9357,7 @@
checkTime(startTime, "getContentProviderImpl: after getProviderByClass");
final boolean firstClass = cpr == null;
if (firstClass) {
+ final long ident = Binder.clearCallingIdentity();
try {
checkTime(startTime, "getContentProviderImpl: before getApplicationInfo");
ApplicationInfo ai =
@@ -9366,6 +9375,8 @@
cpr = new ContentProviderRecord(this, cpi, ai, comp, singleton);
} catch (RemoteException ex) {
// pm is in same process, this will never happen.
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
}
@@ -9597,7 +9608,7 @@
}
}
}
-
+
public final void publishContentProviders(IApplicationThread caller,
List<ContentProviderHolder> providers) {
if (providers == null) {
@@ -10075,7 +10086,7 @@
return timedout;
}
-
+
public final void activitySlept(IBinder token) {
if (localLOGV) Slog.v(TAG, "Activity slept: token=" + token);
@@ -10150,7 +10161,7 @@
throw new SecurityException("Requires permission "
+ android.Manifest.permission.STOP_APP_SWITCHES);
}
-
+
synchronized(this) {
mAppSwitchesAllowedTime = SystemClock.uptimeMillis()
+ APP_SWITCH_DELAY_TIME;
@@ -10160,14 +10171,14 @@
mHandler.sendMessageDelayed(msg, APP_SWITCH_DELAY_TIME);
}
}
-
+
public void resumeAppSwitches() {
if (checkCallingPermission(android.Manifest.permission.STOP_APP_SWITCHES)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires permission "
+ android.Manifest.permission.STOP_APP_SWITCHES);
}
-
+
synchronized(this) {
// Note that we don't execute any pending app switches... we will
// let those wait until either the timeout, or the next start
@@ -10175,7 +10186,7 @@
mAppSwitchesAllowedTime = 0;
}
}
-
+
boolean checkAppSwitchAllowedLocked(int sourcePid, int sourceUid,
int callingPid, int callingUid, String name) {
if (mAppSwitchesAllowedTime < SystemClock.uptimeMillis()) {
@@ -10203,7 +10214,7 @@
Slog.w(TAG, name + " request from " + sourceUid + " stopped");
return false;
}
-
+
public void setDebugApp(String packageName, boolean waitForDebugger,
boolean persistent) {
enforceCallingPermission(android.Manifest.permission.SET_DEBUG_APP,
@@ -11177,7 +11188,7 @@
}
}
}
-
+
synchronized(this) {
if (procsToKill != null) {
for (int i=procsToKill.size()-1; i>=0; i--) {
@@ -11186,20 +11197,20 @@
removeProcessLocked(proc, true, false, "system update done");
}
}
-
+
// Now that we have cleaned up any update processes, we
// are ready to start launching real processes and know that
// we won't trample on them any more.
mProcessesReady = true;
}
-
+
Slog.i(TAG, "System now ready");
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_AMS_READY,
SystemClock.uptimeMillis());
synchronized(this) {
// Make sure we have no pre-ready processes sitting around.
-
+
if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL) {
ResolveInfo ri = mContext.getPackageManager()
.resolveActivity(new Intent(Intent.ACTION_FACTORY_TEST),
@@ -11272,6 +11283,7 @@
// Start up initial activity.
mBooting = true;
+ startHomeActivityLocked(mCurrentUserId);
try {
if (AppGlobals.getPackageManager().hasSystemUidErrors()) {
@@ -11333,12 +11345,12 @@
startAppProblemLocked(app);
app.stopFreezingAllLocked();
}
-
+
/**
* Generate a process error record, suitable for attachment to a ProcessRecord.
- *
+ *
* @param app The ProcessRecord in which the error occurred.
- * @param condition Crashing, Application Not Responding, etc. Values are defined in
+ * @param condition Crashing, Application Not Responding, etc. Values are defined in
* ActivityManager.AppErrorStateInfo
* @param activity The activity associated with the crash, if known.
* @param shortMsg Short message describing the crash.
@@ -11347,7 +11359,7 @@
*
* @return Returns a fully-formed AppErrorStateInfo record.
*/
- private ActivityManager.ProcessErrorStateInfo generateProcessError(ProcessRecord app,
+ private ActivityManager.ProcessErrorStateInfo generateProcessError(ProcessRecord app,
int condition, String activity, String shortMsg, String longMsg, String stackTrace) {
ActivityManager.ProcessErrorStateInfo report = new ActivityManager.ProcessErrorStateInfo();
@@ -11700,17 +11712,10 @@
* @param crashInfo describing the context of the error
* @return true if the process should exit immediately (WTF is fatal)
*/
- public boolean handleApplicationWtf(IBinder app, final String tag, boolean system,
+ public boolean handleApplicationWtf(final IBinder app, final String tag, boolean system,
final ApplicationErrorReport.CrashInfo crashInfo) {
- final ProcessRecord r = findAppProcess(app, "WTF");
- final String processName = app == null ? "system_server"
- : (r == null ? "unknown" : r.processName);
-
- EventLog.writeEvent(EventLogTags.AM_WTF,
- UserHandle.getUserId(Binder.getCallingUid()), Binder.getCallingPid(),
- processName,
- r == null ? -1 : r.info.flags,
- tag, crashInfo.exceptionMessage);
+ final int callingUid = Binder.getCallingUid();
+ final int callingPid = Binder.getCallingPid();
if (system) {
// If this is coming from the system, we could very well have low-level
@@ -11718,14 +11723,14 @@
// never want this to become fatal, so there is that too.
mHandler.post(new Runnable() {
@Override public void run() {
- addErrorToDropBox("wtf", r, processName, null, null, tag, null, null,
- crashInfo);
+ handleApplicationWtfInner(callingUid, callingPid, app, tag, crashInfo);
}
});
return false;
}
- addErrorToDropBox("wtf", r, processName, null, null, tag, null, null, crashInfo);
+ final ProcessRecord r = handleApplicationWtfInner(callingUid, callingPid, app, tag,
+ crashInfo);
if (r != null && r.pid != Process.myPid() &&
Settings.Global.getInt(mContext.getContentResolver(),
@@ -11737,6 +11742,20 @@
}
}
+ ProcessRecord handleApplicationWtfInner(int callingUid, int callingPid, IBinder app, String tag,
+ final ApplicationErrorReport.CrashInfo crashInfo) {
+ final ProcessRecord r = findAppProcess(app, "WTF");
+ final String processName = app == null ? "system_server"
+ : (r == null ? "unknown" : r.processName);
+
+ EventLog.writeEvent(EventLogTags.AM_WTF, UserHandle.getUserId(callingUid), callingPid,
+ processName, r == null ? -1 : r.info.flags, tag, crashInfo.exceptionMessage);
+
+ addErrorToDropBox("wtf", r, processName, null, null, tag, null, null, crashInfo);
+
+ return r;
+ }
+
/**
* @param app object of some object (as stored in {@link com.android.internal.os.RuntimeInit})
* @return the corresponding {@link ProcessRecord} object, or null if none could be found
@@ -12104,14 +12123,14 @@
} else if (app.notResponding) {
report = app.notRespondingReport;
}
-
+
if (report != null) {
if (errList == null) {
errList = new ArrayList<ActivityManager.ProcessErrorStateInfo>(1);
}
errList.add(report);
} else {
- Slog.w(TAG, "Missing app error report, app = " + app.processName +
+ Slog.w(TAG, "Missing app error report, app = " + app.processName +
" crashing = " + app.crashing +
" notResponding = " + app.notResponding);
}
@@ -12170,7 +12189,7 @@
}
if ((app.thread != null) && (!app.crashing && !app.notResponding)) {
// Generate process state info for running application
- ActivityManager.RunningAppProcessInfo currApp =
+ ActivityManager.RunningAppProcessInfo currApp =
new ActivityManager.RunningAppProcessInfo(app.processName,
app.pid, app.getPackageList());
fillInProcMemInfo(app, currApp);
@@ -12252,7 +12271,7 @@
boolean dumpAll = false;
boolean dumpClient = false;
String dumpPackage = null;
-
+
int opti = 0;
while (opti < args.length) {
String opt = args[opti];
@@ -12505,7 +12524,7 @@
boolean printedAnything = false;
- if (mRecentTasks.size() > 0) {
+ if (mRecentTasks != null && mRecentTasks.size() > 0) {
boolean printedHeader = false;
final int N = mRecentTasks.size();
@@ -12625,12 +12644,12 @@
}
}
}
-
+
if (mForegroundProcesses.size() > 0) {
synchronized (mPidsSelfLocked) {
boolean printed = false;
for (int i=0; i<mForegroundProcesses.size(); i++) {
- ProcessRecord r = mPidsSelfLocked.get(
+ ProcessRecord r = mPidsSelfLocked.get(
mForegroundProcesses.valueAt(i).pid);
if (dumpPackage != null && (r == null
|| !r.pkgList.containsKey(dumpPackage))) {
@@ -12648,7 +12667,7 @@
}
}
}
-
+
if (mPersistentStartingProcesses.size() > 0) {
if (needSep) pw.println();
needSep = true;
@@ -12666,7 +12685,7 @@
dumpProcessList(pw, this, mRemovedProcesses, " ",
"Removed Norm", "Removed PERS", dumpPackage);
}
-
+
if (mProcessesOnHold.size() > 0) {
if (needSep) pw.println();
needSep = true;
@@ -12677,7 +12696,7 @@
}
needSep = dumpProcessesToGc(fd, pw, args, opti, needSep, dumpAll, dumpPackage);
-
+
if (mProcessCrashTimes.getMap().size() > 0) {
boolean printed = false;
long now = SystemClock.uptimeMillis();
@@ -12904,10 +12923,12 @@
if (dumpAll) {
pw.println(" Total persistent processes: " + numPers);
pw.println(" mProcessesReady=" + mProcessesReady
- + " mSystemReady=" + mSystemReady);
- pw.println(" mBooting=" + mBooting
+ + " mSystemReady=" + mSystemReady
+ " mBooted=" + mBooted
+ " mFactoryTest=" + mFactoryTest);
+ pw.println(" mBooting=" + mBooting
+ + " mCallFinishBooting=" + mCallFinishBooting
+ + " mBootAnimationComplete=" + mBootAnimationComplete);
pw.print(" mLastPowerCheckRealtime=");
TimeUtils.formatDuration(mLastPowerCheckRealtime, pw);
pw.println("");
@@ -13047,7 +13068,7 @@
ArrayList<String> strings;
ArrayList<Integer> objects;
boolean all;
-
+
ItemMatcher() {
all = true;
}
@@ -13132,7 +13153,7 @@
protected boolean dumpActivity(FileDescriptor fd, PrintWriter pw, String name, String[] args,
int opti, boolean dumpAll) {
ArrayList<ActivityRecord> activities;
-
+
synchronized (this) {
activities = mStackSupervisor.getDumpActivitiesLocked(name);
}
@@ -13255,7 +13276,7 @@
}
needSep = true;
-
+
if (!onlyHistory && mStickyBroadcasts != null && dumpPackage == null) {
for (int user=0; user<mStickyBroadcasts.size(); user++) {
if (needSep) {
@@ -13290,7 +13311,7 @@
}
}
}
-
+
if (!onlyHistory && dumpAll) {
pw.println();
for (BroadcastQueue queue : mBroadcastQueues) {
@@ -13302,7 +13323,7 @@
needSep = true;
printedAnything = true;
}
-
+
if (!printedAnything) {
pw.println(" (nothing)");
}
@@ -13638,7 +13659,7 @@
long realtime = SystemClock.elapsedRealtime();
pw.println("Applications Graphics Acceleration Info:");
pw.println("Uptime: " + uptime + " Realtime: " + realtime);
-
+
for (int i = procs.size() - 1 ; i >= 0 ; i--) {
ProcessRecord r = procs.get(i);
if (r.thread != null) {
@@ -13832,7 +13853,7 @@
boolean oomOnly = false;
boolean isCompact = false;
boolean localOnly = false;
-
+
int opti = 0;
while (opti < args.length) {
String opt = args[opti];
@@ -13866,7 +13887,7 @@
pw.println("Unknown argument: " + opt + "; use -h for help");
}
}
-
+
final boolean isCheckinRequest = scanArgs(args, "--checkin");
long uptime = SystemClock.uptimeMillis();
long realtime = SystemClock.elapsedRealtime();
@@ -14551,7 +14572,7 @@
}
return restart;
}
-
+
// =========================================================
// SERVICES
// =========================================================
@@ -14633,7 +14654,7 @@
return mServices.peekServiceLocked(service, resolvedType);
}
}
-
+
@Override
public boolean stopServiceToken(ComponentName className, IBinder token,
int startId) {
@@ -14855,11 +14876,11 @@
mServices.serviceDoneExecutingLocked((ServiceRecord)token, type, startId, res);
}
}
-
+
// =========================================================
// BACKUP AND RESTORE
// =========================================================
-
+
// Cause the target app to be launched if necessary and its backup agent
// instantiated. The backup agent will invoke backupAgentCreated() on the
// activity manager to announce its creation.
@@ -14922,7 +14943,7 @@
// mBackupAppName describe the app, so that when it binds back to the AM we
// know that it's scheduled for a backup-agent operation.
}
-
+
return true;
}
@@ -15225,7 +15246,7 @@
mReceiverResolver.removeFilter(rl.get(i));
}
}
-
+
private final void sendPackageBroadcastLocked(int cmd, String[] packages, int userId) {
for (int i = mLruProcesses.size() - 1 ; i >= 0 ; i--) {
ProcessRecord r = mLruProcesses.get(i);
@@ -15631,10 +15652,10 @@
final boolean replacePending =
(intent.getFlags()&Intent.FLAG_RECEIVER_REPLACE_PENDING) != 0;
-
+
if (DEBUG_BROADCAST) Slog.v(TAG, "Enqueing broadcast: " + intent.getAction()
+ " replacePending=" + replacePending);
-
+
int NR = registeredReceivers != null ? registeredReceivers.size() : 0;
if (!ordered && NR > 0) {
// If we are not serializing this broadcast, then send the
@@ -15742,7 +15763,7 @@
int seq = r.intent.getIntExtra("seq", -1);
Slog.i(TAG, "Enqueueing broadcast " + r.intent.getAction() + " seq=" + seq);
}
- boolean replaced = replacePending && queue.replaceOrderedBroadcastLocked(r);
+ boolean replaced = replacePending && queue.replaceOrderedBroadcastLocked(r);
if (!replaced) {
queue.enqueueOrderedBroadcastLocked(r);
queue.scheduleBroadcastsLocked();
@@ -15908,7 +15929,7 @@
Binder.restoreCallingIdentity(origId);
}
}
-
+
// =========================================================
// INSTRUMENTATION
// =========================================================
@@ -15978,17 +15999,17 @@
return true;
}
-
+
/**
- * Report errors that occur while attempting to start Instrumentation. Always writes the
+ * Report errors that occur while attempting to start Instrumentation. Always writes the
* error to the logs, but if somebody is watching, send the report there too. This enables
* the "am" command to report errors with more information.
- *
+ *
* @param watcher The IInstrumentationWatcher. Null if there isn't one.
* @param cn The component name of the instrumentation.
* @param report The error report.
*/
- private void reportStartInstrumentationFailure(IInstrumentationWatcher watcher,
+ private void reportStartInstrumentationFailure(IInstrumentationWatcher watcher,
ComponentName cn, String report) {
Slog.w(TAG, report);
try {
@@ -16058,7 +16079,7 @@
// =========================================================
// CONFIGURATION
// =========================================================
-
+
public ConfigurationInfo getDeviceConfigurationInfo() {
ConfigurationInfo config = new ConfigurationInfo();
synchronized (this) {
@@ -16148,11 +16169,11 @@
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) {
Slog.i(TAG, "Updating configuration to: " + values);
}
-
+
EventLog.writeEvent(EventLogTags.CONFIGURATION_CHANGED, changes);
if (values.locale != null && !initLocale) {
- saveLocaleLocked(values.locale,
+ saveLocaleLocked(values.locale,
!values.locale.equals(mConfiguration.locale),
values.userSetLocale);
}
@@ -16168,7 +16189,7 @@
//mUsageStatsService.noteStartConfig(newConfig);
final Configuration configCopy = new Configuration(mConfiguration);
-
+
// TODO: If our config changes, should we auto dismiss any currently
// showing dialogs?
mShowDialogs = shouldShowDialogs(newConfig);
@@ -16267,7 +16288,7 @@
if(isDiff) {
SystemProperties.set("user.language", l.getLanguage());
SystemProperties.set("user.region", l.getCountry());
- }
+ }
if(isPersist) {
SystemProperties.set("persist.sys.language", l.getLanguage());
@@ -16955,7 +16976,7 @@
}
app.curRawAdj = adj;
-
+
//Slog.i(TAG, "OOM ADJ " + app + ": pid=" + app.pid +
// " adj=" + adj + " curAdj=" + app.curAdj + " maxAdj=" + app.maxAdj);
if (adj > app.maxAdj) {
@@ -17038,7 +17059,7 @@
// whatever.
}
}
-
+
/**
* Returns true if things are idle enough to perform GCs.
*/
@@ -17052,7 +17073,7 @@
return !processingBroadcasts
&& (isSleeping() || mStackSupervisor.allResumedActivitiesIdle());
}
-
+
/**
* Perform GCs on all processes that are waiting for it, but only
* if things are idle.
@@ -17081,11 +17102,11 @@
}
}
}
-
+
scheduleAppGcsLocked();
}
}
-
+
/**
* If all looks good, perform GCs on all processes waiting for them.
*/
@@ -17103,12 +17124,12 @@
*/
final void scheduleAppGcsLocked() {
mHandler.removeMessages(GC_BACKGROUND_PROCESSES_MSG);
-
+
if (mProcessesToGc.size() > 0) {
// Schedule a GC for the time to the next process.
ProcessRecord proc = mProcessesToGc.get(0);
Message msg = mHandler.obtainMessage(GC_BACKGROUND_PROCESSES_MSG);
-
+
long when = proc.lastRequestedGc + GC_MIN_INTERVAL;
long now = SystemClock.uptimeMillis();
if (when < (now+GC_TIMEOUT)) {
@@ -17117,7 +17138,7 @@
mHandler.sendMessageAtTime(msg, when);
}
}
-
+
/**
* Add a process to the array of processes waiting to be GCed. Keeps the
* list in sorted order by the last GC time. The process can't already be
@@ -17137,7 +17158,7 @@
mProcessesToGc.add(0, proc);
}
}
-
+
/**
* Set up to ask a process to GC itself. This will either do it
* immediately, or put it on the list of processes to gc the next
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 0646cce..e1b8278 100755
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -1105,6 +1105,11 @@
invalidateLastScreenshot();
}
next.returningOptions = null;
+
+ if (mActivityContainer.mActivityDisplay.mVisibleBehindActivity == next) {
+ // When resuming an activity, require it to call requestVisibleBehind() again.
+ mActivityContainer.mActivityDisplay.setVisibleBehindActivity(null);
+ }
}
private void setVisibile(ActivityRecord r, boolean visible) {
@@ -1482,6 +1487,11 @@
final boolean resumeTopActivityInnerLocked(ActivityRecord prev, Bundle options) {
if (ActivityManagerService.DEBUG_LOCKSCREEN) mService.logLockScreen("");
+ if (!mService.mBooting && !mService.mBooted) {
+ // Not ready yet!
+ return false;
+ }
+
ActivityRecord parent = mActivityContainer.mParentActivity;
if ((parent != null && parent.state != ActivityState.RESUMED) ||
!mActivityContainer.isAttachedLocked()) {
@@ -3291,6 +3301,11 @@
if (hasVisibleBehindActivity() &&
!mHandler.hasMessages(RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG)) {
final ActivityRecord r = getVisibleBehindActivity();
+ if (r == topRunningActivityLocked(null)) {
+ // Don't release the top activity if it has requested to run behind the next
+ // activity.
+ return;
+ }
if (DEBUG_STATES) Slog.d(TAG, "releaseBackgroundResources activtyDisplay=" +
mActivityContainer.mActivityDisplay + " visibleBehind=" + r + " app=" + r.app +
" thread=" + r.app.thread);
@@ -3606,6 +3621,10 @@
final TaskRecord task = mResumedActivity != null ? mResumedActivity.task : null;
if (task == tr && tr.isOverHomeStack() || numTasks <= 1 && isOnHomeDisplay()) {
+ if (!mService.mBooting && !mService.mBooted) {
+ // Not ready yet!
+ return false;
+ }
final int taskToReturnTo = tr.getTaskToReturnTo();
tr.setTaskToReturnTo(APPLICATION_ACTIVITY_TYPE);
return mStackSupervisor.resumeHomeStackTask(taskToReturnTo, null);
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 83a8d45..bbfb62a 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -421,6 +421,11 @@
}
boolean resumeHomeStackTask(int homeStackTaskType, ActivityRecord prev) {
+ if (!mService.mBooting && !mService.mBooted) {
+ // Not ready yet!
+ return false;
+ }
+
if (homeStackTaskType == RECENTS_ACTIVITY_TYPE) {
mWindowManager.showRecentApps();
return false;
@@ -2238,9 +2243,13 @@
r.idle = true;
//Slog.i(TAG, "IDLE: mBooted=" + mBooted + ", fromTimeout=" + fromTimeout);
- if (!mService.mBooted && isFrontStack(r.task.stack)) {
- mService.mBooted = true;
- enableScreen = true;
+ if (isFrontStack(r.task.stack) || fromTimeout) {
+ booting = mService.mBooting;
+ mService.mBooting = false;
+ if (!mService.mBooted) {
+ mService.mBooted = true;
+ enableScreen = true;
+ }
}
}
@@ -2268,9 +2277,6 @@
mFinishingActivities.clear();
}
- booting = mService.mBooting;
- mService.mBooting = false;
-
if (mStartingUsers.size() > 0) {
startingUsers = new ArrayList<UserStartedState>(mStartingUsers);
mStartingUsers.clear();
@@ -2295,9 +2301,7 @@
activityRemoved |= r.task.stack.destroyActivityLocked(r, true, "finish-idle");
}
- if (booting) {
- mService.finishBooting();
- } else {
+ if (!booting) {
// Complete user switch
if (startingUsers != null) {
for (int i = 0; i < startingUsers.size(); i++) {
@@ -2318,8 +2322,8 @@
//dump();
//mWindowManager.dump();
- if (enableScreen) {
- mService.postEnableScreenAfterBootLocked();
+ if (booting || enableScreen) {
+ mService.postFinishBooting(booting, enableScreen);
}
if (activityRemoved) {
@@ -2584,7 +2588,6 @@
r.mLaunchTaskBehind);
}
}
- resumeHomeStackTask(HOME_ACTIVITY_TYPE, null);
}
void moveTaskToStack(int taskId, int stackId, boolean toTop) {
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 4e554eb..e01b983 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -901,7 +901,7 @@
Slog.w(TAG, "Exception when sending broadcast to "
+ r.curComponent, e);
} catch (RuntimeException e) {
- Log.wtf(TAG, "Failed sending broadcast to "
+ Slog.wtf(TAG, "Failed sending broadcast to "
+ r.curComponent + " with " + r.intent, e);
// If some unexpected exception happened, just skip
// this broadcast. At this point we are not in the call
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 5022b28..0ea66b9 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -166,14 +166,14 @@
// These are the low-end OOM level limits. This is appropriate for an
// HVGA or smaller phone with less than 512MB. Values are in KB.
private final int[] mOomMinFreeLow = new int[] {
- 8192, 12288, 16384,
- 24576, 28672, 32768
+ 12288, 18432, 24576,
+ 36864, 43008, 49152
};
// These are the high-end OOM level limits. This is appropriate for a
// 1280x800 or larger screen with around 1GB RAM. Values are in KB.
private final int[] mOomMinFreeHigh = new int[] {
- 49152, 61440, 73728,
- 86016, 98304, 122880
+ 73728, 92160, 110592,
+ 129024, 147456, 184320
};
// The actual OOM killer memory levels we are using.
private final int[] mOomMinFree = new int[mOomAdj.length];
@@ -231,7 +231,11 @@
Slog.i("XXXXXX", "minfree_adj=" + minfree_adj + " minfree_abs=" + minfree_abs);
}
- final boolean is64bit = Build.SUPPORTED_64_BIT_ABIS.length > 0;
+ // We've now baked in the increase to the basic oom values above, since
+ // they seem to be useful more generally for devices that are tight on
+ // memory than just for 64 bit. This should probably have some more
+ // tuning done, so not deleting it quite yet...
+ final boolean is64bit = false; //Build.SUPPORTED_64_BIT_ABIS.length > 0;
for (int i=0; i<mOomAdj.length; i++) {
int low = mOomMinFreeLow[i];
diff --git a/services/core/java/com/android/server/am/UriPermission.java b/services/core/java/com/android/server/am/UriPermission.java
index 91daf77..650a837 100644
--- a/services/core/java/com/android/server/am/UriPermission.java
+++ b/services/core/java/com/android/server/am/UriPermission.java
@@ -257,7 +257,7 @@
*/
void removeReadOwner(UriPermissionOwner owner) {
if (!mReadOwners.remove(owner)) {
- Log.wtf(TAG, "Unknown read owner " + owner + " in " + this);
+ Slog.wtf(TAG, "Unknown read owner " + owner + " in " + this);
}
if (mReadOwners.size() == 0) {
mReadOwners = null;
@@ -282,7 +282,7 @@
*/
void removeWriteOwner(UriPermissionOwner owner) {
if (!mWriteOwners.remove(owner)) {
- Log.wtf(TAG, "Unknown write owner " + owner + " in " + this);
+ Slog.wtf(TAG, "Unknown write owner " + owner + " in " + this);
}
if (mWriteOwners.size() == 0) {
mWriteOwners = null;
diff --git a/services/core/java/com/android/server/connectivity/PermissionMonitor.java b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
new file mode 100644
index 0000000..238402f
--- /dev/null
+++ b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
@@ -0,0 +1,277 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.connectivity;
+
+import static android.Manifest.permission.CHANGE_NETWORK_STATE;
+import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
+import static android.content.pm.ApplicationInfo.FLAG_SYSTEM;
+import static android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
+import static android.content.pm.PackageManager.GET_PERMISSIONS;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.UserInfo;
+import android.net.Uri;
+import android.os.INetworkManagementService;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * A utility class to inform Netd of UID permisisons.
+ * Does a mass update at boot and then monitors for app install/remove.
+ *
+ * @hide
+ */
+public class PermissionMonitor {
+ private static final String TAG = "PermissionMonitor";
+ private static final boolean DBG = true;
+ private static final boolean SYSTEM = true;
+ private static final boolean NETWORK = false;
+
+ private final Context mContext;
+ private final PackageManager mPackageManager;
+ private final UserManager mUserManager;
+ private final INetworkManagementService mNetd;
+ private final BroadcastReceiver mIntentReceiver;
+
+ // Values are User IDs.
+ private final Set<Integer> mUsers = new HashSet<Integer>();
+
+ // Keys are App IDs. Values are true for SYSTEM permission and false for NETWORK permission.
+ private final Map<Integer, Boolean> mApps = new HashMap<Integer, Boolean>();
+
+ public PermissionMonitor(Context context, INetworkManagementService netd) {
+ mContext = context;
+ mPackageManager = context.getPackageManager();
+ mUserManager = UserManager.get(context);
+ mNetd = netd;
+ mIntentReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ int user = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
+ int appUid = intent.getIntExtra(Intent.EXTRA_UID, -1);
+ Uri appData = intent.getData();
+ String appName = appData != null ? appData.getSchemeSpecificPart() : null;
+
+ if (Intent.ACTION_USER_ADDED.equals(action)) {
+ onUserAdded(user);
+ } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
+ onUserRemoved(user);
+ } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
+ onAppAdded(appName, appUid);
+ } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
+ onAppRemoved(appUid);
+ }
+ }
+ };
+ }
+
+ // Intended to be called only once at startup, after the system is ready. Installs a broadcast
+ // receiver to monitor ongoing UID changes, so this shouldn't/needn't be called again.
+ public synchronized void startMonitoring() {
+ log("Monitoring");
+
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Intent.ACTION_USER_ADDED);
+ intentFilter.addAction(Intent.ACTION_USER_REMOVED);
+ mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+
+ intentFilter = new IntentFilter();
+ intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
+ intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ intentFilter.addDataScheme("package");
+ mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+
+ List<PackageInfo> apps = mPackageManager.getInstalledPackages(GET_PERMISSIONS);
+ if (apps == null) {
+ loge("No apps");
+ return;
+ }
+
+ for (PackageInfo app : apps) {
+ int uid = app.applicationInfo != null ? app.applicationInfo.uid : -1;
+ if (uid < 0) {
+ continue;
+ }
+
+ boolean isNetwork = hasNetworkPermission(app);
+ boolean isSystem = hasSystemPermission(app);
+
+ if (isNetwork || isSystem) {
+ Boolean permission = mApps.get(uid);
+ // If multiple packages share a UID (cf: android:sharedUserId) and ask for different
+ // permissions, don't downgrade (i.e., if it's already SYSTEM, leave it as is).
+ if (permission == null || permission == NETWORK) {
+ mApps.put(uid, isSystem);
+ }
+ }
+ }
+
+ List<UserInfo> users = mUserManager.getUsers(true); // exclude dying users
+ if (users != null) {
+ for (UserInfo user : users) {
+ mUsers.add(user.id);
+ }
+ }
+
+ log("Users: " + mUsers.size() + ", Apps: " + mApps.size());
+ update(mUsers, mApps, true);
+ }
+
+ private boolean hasPermission(PackageInfo app, String permission) {
+ if (app.requestedPermissions != null) {
+ for (String p : app.requestedPermissions) {
+ if (permission.equals(p)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean hasNetworkPermission(PackageInfo app) {
+ return hasPermission(app, CHANGE_NETWORK_STATE);
+ }
+
+ private boolean hasSystemPermission(PackageInfo app) {
+ int flags = app.applicationInfo != null ? app.applicationInfo.flags : 0;
+ if ((flags & FLAG_SYSTEM) != 0 || (flags & FLAG_UPDATED_SYSTEM_APP) != 0) {
+ return true;
+ }
+ return hasPermission(app, CONNECTIVITY_INTERNAL);
+ }
+
+ private int[] toIntArray(List<Integer> list) {
+ int[] array = new int[list.size()];
+ for (int i = 0; i < list.size(); i++) {
+ array[i] = list.get(i);
+ }
+ return array;
+ }
+
+ private void update(Set<Integer> users, Map<Integer, Boolean> apps, boolean add) {
+ List<Integer> network = new ArrayList<Integer>();
+ List<Integer> system = new ArrayList<Integer>();
+ for (Entry<Integer, Boolean> app : apps.entrySet()) {
+ List<Integer> list = app.getValue() ? system : network;
+ for (int user : users) {
+ list.add(UserHandle.getUid(user, app.getKey()));
+ }
+ }
+ try {
+ if (add) {
+ mNetd.setPermission(CHANGE_NETWORK_STATE, toIntArray(network));
+ mNetd.setPermission(CONNECTIVITY_INTERNAL, toIntArray(system));
+ } else {
+ mNetd.clearPermission(toIntArray(network));
+ mNetd.clearPermission(toIntArray(system));
+ }
+ } catch (RemoteException e) {
+ loge("Exception when updating permissions: " + e);
+ }
+ }
+
+ private synchronized void onUserAdded(int user) {
+ if (user < 0) {
+ loge("Invalid user in onUserAdded: " + user);
+ return;
+ }
+ mUsers.add(user);
+
+ Set<Integer> users = new HashSet<Integer>();
+ users.add(user);
+ update(users, mApps, true);
+ }
+
+ private synchronized void onUserRemoved(int user) {
+ if (user < 0) {
+ loge("Invalid user in onUserRemoved: " + user);
+ return;
+ }
+ mUsers.remove(user);
+
+ Set<Integer> users = new HashSet<Integer>();
+ users.add(user);
+ update(users, mApps, false);
+ }
+
+ private synchronized void onAppAdded(String appName, int appUid) {
+ if (TextUtils.isEmpty(appName) || appUid < 0) {
+ loge("Invalid app in onAppAdded: " + appName + " | " + appUid);
+ return;
+ }
+
+ try {
+ PackageInfo app = mPackageManager.getPackageInfo(appName, GET_PERMISSIONS);
+ boolean isNetwork = hasNetworkPermission(app);
+ boolean isSystem = hasSystemPermission(app);
+ if (isNetwork || isSystem) {
+ Boolean permission = mApps.get(appUid);
+ // If multiple packages share a UID (cf: android:sharedUserId) and ask for different
+ // permissions, don't downgrade (i.e., if it's already SYSTEM, leave it as is).
+ if (permission == null || permission == NETWORK) {
+ mApps.put(appUid, isSystem);
+
+ Map<Integer, Boolean> apps = new HashMap<Integer, Boolean>();
+ apps.put(appUid, isSystem);
+ update(mUsers, apps, true);
+ }
+ }
+ } catch (NameNotFoundException e) {
+ loge("NameNotFoundException in onAppAdded: " + e);
+ }
+ }
+
+ private synchronized void onAppRemoved(int appUid) {
+ if (appUid < 0) {
+ loge("Invalid app in onAppRemoved: " + appUid);
+ return;
+ }
+ mApps.remove(appUid);
+
+ Map<Integer, Boolean> apps = new HashMap<Integer, Boolean>();
+ apps.put(appUid, NETWORK); // doesn't matter which permission we pick here
+ update(mUsers, apps, false);
+ }
+
+ private static void log(String s) {
+ if (DBG) {
+ Log.d(TAG, s);
+ }
+ }
+
+ private static void loge(String s) {
+ Log.e(TAG, s);
+ }
+}
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index 9292d45..6dcbc42 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -16,7 +16,6 @@
package com.android.server.content;
-import android.Manifest;
import android.accounts.Account;
import android.accounts.AccountAndUser;
import android.accounts.AccountManager;
@@ -311,7 +310,9 @@
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.v(TAG, "Reconnection detected: clearing all backoffs");
}
- mSyncStorageEngine.clearAllBackoffs(mSyncQueue);
+ synchronized (mSyncQueue) {
+ mSyncStorageEngine.clearAllBackoffsLocked(mSyncQueue);
+ }
}
sendCheckAlarmsMessage();
}
@@ -479,7 +480,7 @@
mContext.registerReceiverAsUser(mAccountsUpdatedReceiver,
UserHandle.ALL,
new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION),
- Manifest.permission.ACCOUNT_MANAGER, null);
+ null, null);
}
// Pick a random second in a day to seed all periodic syncs
diff --git a/services/core/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java
index 9499370..0d5f240 100644
--- a/services/core/java/com/android/server/content/SyncStorageEngine.java
+++ b/services/core/java/com/android/server/content/SyncStorageEngine.java
@@ -834,17 +834,16 @@
return changed;
}
- public void clearAllBackoffs(SyncQueue syncQueue) {
+ public void clearAllBackoffsLocked(SyncQueue syncQueue) {
boolean changed = false;
synchronized (mAuthorities) {
- synchronized (syncQueue) {
// Clear backoff for all sync adapters.
for (AccountInfo accountInfo : mAccounts.values()) {
for (AuthorityInfo authorityInfo : accountInfo.authorities.values()) {
if (authorityInfo.backoffTime != NOT_IN_BACKOFF_MODE
|| authorityInfo.backoffDelay != NOT_IN_BACKOFF_MODE) {
if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "clearAllBackoffs:"
+ Log.v(TAG, "clearAllBackoffsLocked:"
+ " authority:" + authorityInfo.target
+ " account:" + accountInfo.accountAndUser.account.name
+ " user:" + accountInfo.accountAndUser.userId
@@ -868,7 +867,6 @@
authorityInfo.backoffDelay = NOT_IN_BACKOFF_MODE;
}
}
- }
syncQueue.clearBackoffs();
}
}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 43c01cd..97748e8 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -448,7 +448,7 @@
mWifiDisplayAdapter.requestStopScanLocked();
}
} else if (mWifiDisplayScanRequestCount < 0) {
- Log.wtf(TAG, "mWifiDisplayScanRequestCount became negative: "
+ Slog.wtf(TAG, "mWifiDisplayScanRequestCount became negative: "
+ mWifiDisplayScanRequestCount);
mWifiDisplayScanRequestCount = 0;
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index e2a548a..2d5b99e 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -227,6 +227,9 @@
// turning off the screen.
private boolean mPendingScreenOff;
+ // True if we have unfinished business and are holding a suspend blocker.
+ private boolean mUnfinishedBusiness;
+
// The elapsed real time when the screen on was blocked.
private long mScreenOnBlockStartRealTime;
@@ -560,6 +563,12 @@
state = Display.STATE_OFF;
}
+ // Animate the screen state change unless already animating.
+ // The transition may be deferred, so after this point we will use the
+ // actual state instead of the desired one.
+ animateScreenStateChange(state, performScreenOffTransition);
+ state = mPowerState.getScreenState();
+
// Use zero brightness when screen is off.
if (state == Display.STATE_OFF) {
brightness = PowerManager.BRIGHTNESS_OFF;
@@ -633,22 +642,38 @@
mAppliedLowPower = true;
}
- // Animate the screen brightness when the screen is on.
- if (state != Display.STATE_OFF) {
- animateScreenBrightness(brightness, slowChange
- ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
+ // Animate the screen brightness when the screen is on or dozing.
+ // Skip the animation when the screen is off or suspended.
+ if (state == Display.STATE_ON || state == Display.STATE_DOZE) {
+ animateScreenBrightness(brightness,
+ slowChange ? BRIGHTNESS_RAMP_RATE_SLOW : BRIGHTNESS_RAMP_RATE_FAST);
+ } else {
+ animateScreenBrightness(brightness, 0);
}
- // Animate the screen state change unless already animating.
- animateScreenStateChange(state, performScreenOffTransition);
-
- // Report whether the display is ready for use and all changes have been applied.
- if (mustNotify
- && mPendingScreenOnUnblocker == null
+ // Determine whether the display is ready for use in the newly requested state.
+ // Note that we do not wait for the brightness ramp animation to complete before
+ // reporting the display is ready because we only need to ensure the screen is in the
+ // right power state even as it continues to converge on the desired brightness.
+ final boolean ready = mPendingScreenOnUnblocker == null
&& !mColorFadeOnAnimator.isStarted()
&& !mColorFadeOffAnimator.isStarted()
- && !mScreenBrightnessRampAnimator.isAnimating()
- && mPowerState.waitUntilClean(mCleanListener)) {
+ && mPowerState.waitUntilClean(mCleanListener);
+ final boolean finished = ready
+ && !mScreenBrightnessRampAnimator.isAnimating();
+
+ // Grab a wake lock if we have unfinished business.
+ if (!finished && !mUnfinishedBusiness) {
+ if (DEBUG) {
+ Slog.d(TAG, "Unfinished business...");
+ }
+ mCallbacks.acquireSuspendBlocker();
+ mUnfinishedBusiness = true;
+ }
+
+ // Notify the power manager when ready.
+ if (ready && mustNotify) {
+ // Send state change.
synchronized (mLock) {
if (!mPendingRequestChangedLocked) {
mDisplayReadyLocked = true;
@@ -660,6 +685,15 @@
}
sendOnStateChangedWithWakelock();
}
+
+ // Release the wake lock when we have no unfinished business.
+ if (finished && mUnfinishedBusiness) {
+ if (DEBUG) {
+ Slog.d(TAG, "Finished business...");
+ }
+ mUnfinishedBusiness = false;
+ mCallbacks.releaseSuspendBlocker();
+ }
}
@Override
@@ -723,6 +757,9 @@
}
private void animateScreenBrightness(int target, int rate) {
+ if (DEBUG) {
+ Slog.d(TAG, "Animating brightness: target=" + target +", rate=" + rate);
+ }
if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
try {
mBatteryStats.noteScreenBrightness(target);
diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java
index a7651e4..fc068af 100644
--- a/services/core/java/com/android/server/display/DisplayPowerState.java
+++ b/services/core/java/com/android/server/display/DisplayPowerState.java
@@ -80,6 +80,7 @@
mBacklight = backlight;
mColorFade = electronBeam;
mPhotonicModulator = new PhotonicModulator();
+ mPhotonicModulator.start();
// At boot time, we know that the screen is on and the electron beam
// animation is not playing. We don't know the screen's brightness though,
@@ -336,7 +337,7 @@
/**
* Updates the state of the screen and backlight asynchronously on a separate thread.
*/
- private final class PhotonicModulator {
+ private final class PhotonicModulator extends Thread {
private static final int INITIAL_SCREEN_STATE = Display.STATE_OFF; // unknown, assume off
private static final int INITIAL_BACKLIGHT = -1; // unknown
@@ -361,7 +362,7 @@
if (!mChangeInProgress) {
mChangeInProgress = true;
- AsyncTask.THREAD_POOL_EXECUTOR.execute(mTask);
+ mLock.notifyAll();
}
}
return !mChangeInProgress;
@@ -369,75 +370,78 @@
}
public void dump(PrintWriter pw) {
- pw.println();
- pw.println("Photonic Modulator State:");
- pw.println(" mPendingState=" + Display.stateToString(mPendingState));
- pw.println(" mPendingBacklight=" + mPendingBacklight);
- pw.println(" mActualState=" + Display.stateToString(mActualState));
- pw.println(" mActualBacklight=" + mActualBacklight);
- pw.println(" mChangeInProgress=" + mChangeInProgress);
+ synchronized (mLock) {
+ pw.println();
+ pw.println("Photonic Modulator State:");
+ pw.println(" mPendingState=" + Display.stateToString(mPendingState));
+ pw.println(" mPendingBacklight=" + mPendingBacklight);
+ pw.println(" mActualState=" + Display.stateToString(mActualState));
+ pw.println(" mActualBacklight=" + mActualBacklight);
+ pw.println(" mChangeInProgress=" + mChangeInProgress);
+ }
}
- private final Runnable mTask = new Runnable() {
- @Override
- public void run() {
- // Apply pending changes until done.
- for (;;) {
- final int state;
- final boolean stateChanged;
- final int backlight;
- final boolean backlightChanged;
- synchronized (mLock) {
- state = mPendingState;
- stateChanged = (state != mActualState);
- backlight = mPendingBacklight;
- backlightChanged = (backlight != mActualBacklight);
- if (!stateChanged && !backlightChanged) {
- mChangeInProgress = false;
- break;
- }
- mActualState = state;
- mActualBacklight = backlight;
+ @Override
+ public void run() {
+ for (;;) {
+ // Get pending change.
+ final int state;
+ final boolean stateChanged;
+ final int backlight;
+ final boolean backlightChanged;
+ synchronized (mLock) {
+ state = mPendingState;
+ stateChanged = (state != mActualState);
+ backlight = mPendingBacklight;
+ backlightChanged = (backlight != mActualBacklight);
+ if (!stateChanged && !backlightChanged) {
+ // All changed applied, notify outer class and wait for more.
+ mChangeInProgress = false;
+ postScreenUpdateThreadSafe();
+ try {
+ mLock.wait();
+ } catch (InterruptedException ex) { }
+ continue;
}
-
- if (DEBUG) {
- Slog.d(TAG, "Updating screen state: state="
- + Display.stateToString(state) + ", backlight=" + backlight);
- }
- boolean suspending = Display.isSuspendedState(state);
- if (stateChanged && !suspending) {
- requestDisplayState(state);
- }
- if (backlightChanged) {
- setBrightness(backlight);
- }
- if (stateChanged && suspending) {
- requestDisplayState(state);
- }
+ mActualState = state;
+ mActualBacklight = backlight;
}
- // Let the outer class know that all changes have been applied.
- postScreenUpdateThreadSafe();
- }
-
- private void requestDisplayState(int state) {
- Trace.traceBegin(Trace.TRACE_TAG_POWER, "requestDisplayState("
- + Display.stateToString(state) + ")");
- try {
- mBlanker.requestDisplayState(state);
- } finally {
- Trace.traceEnd(Trace.TRACE_TAG_POWER);
+ // Apply pending change.
+ if (DEBUG) {
+ Slog.d(TAG, "Updating screen state: state="
+ + Display.stateToString(state) + ", backlight=" + backlight);
+ }
+ boolean suspending = Display.isSuspendedState(state);
+ if (stateChanged && !suspending) {
+ requestDisplayState(state);
+ }
+ if (backlightChanged) {
+ setBrightness(backlight);
+ }
+ if (stateChanged && suspending) {
+ requestDisplayState(state);
}
}
+ }
- private void setBrightness(int backlight) {
- Trace.traceBegin(Trace.TRACE_TAG_POWER, "setBrightness(" + backlight + ")");
- try {
- mBacklight.setBrightness(backlight);
- } finally {
- Trace.traceEnd(Trace.TRACE_TAG_POWER);
- }
+ private void requestDisplayState(int state) {
+ Trace.traceBegin(Trace.TRACE_TAG_POWER, "requestDisplayState("
+ + Display.stateToString(state) + ")");
+ try {
+ mBlanker.requestDisplayState(state);
+ } finally {
+ Trace.traceEnd(Trace.TRACE_TAG_POWER);
}
- };
+ }
+
+ private void setBrightness(int backlight) {
+ Trace.traceBegin(Trace.TRACE_TAG_POWER, "setBrightness(" + backlight + ")");
+ try {
+ mBacklight.setBrightness(backlight);
+ } finally {
+ Trace.traceEnd(Trace.TRACE_TAG_POWER);
+ }
+ }
}
}
diff --git a/services/core/java/com/android/server/display/RampAnimator.java b/services/core/java/com/android/server/display/RampAnimator.java
index ad1e857..d71269f 100644
--- a/services/core/java/com/android/server/display/RampAnimator.java
+++ b/services/core/java/com/android/server/display/RampAnimator.java
@@ -50,20 +50,32 @@
/**
* Starts animating towards the specified value.
*
- * If this is the first time the property is being set, the value jumps
- * directly to the target.
+ * If this is the first time the property is being set or if the rate is 0,
+ * the value jumps directly to the target.
*
* @param target The target value.
- * @param rate The convergence rate, in units per second.
+ * @param rate The convergence rate in units per second, or 0 to set the value immediately.
* @return True if the target differs from the previous target.
*/
public boolean animateTo(int target, int rate) {
// Immediately jump to the target the first time.
- if (mFirstTime) {
- mFirstTime = false;
- mProperty.setValue(mObject, target);
- mCurrentValue = target;
- return true;
+ if (mFirstTime || rate <= 0) {
+ if (mFirstTime || target != mCurrentValue) {
+ mFirstTime = false;
+ mRate = 0;
+ mTargetValue = target;
+ mCurrentValue = target;
+ mProperty.setValue(mObject, target);
+ if (mAnimating) {
+ mAnimating = false;
+ cancelAnimationCallback();
+ }
+ if (mListener != null) {
+ mListener.onAnimationEnd();
+ }
+ return true;
+ }
+ return false;
}
// Adjust the rate based on the closest target.
@@ -88,7 +100,7 @@
mAnimating = true;
mAnimatedValue = mCurrentValue;
mLastFrameTimeNanos = System.nanoTime();
- postCallback();
+ postAnimationCallback();
}
return changed;
@@ -108,11 +120,15 @@
mListener = listener;
}
- private void postCallback() {
- mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
+ private void postAnimationCallback() {
+ mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mAnimationCallback, null);
}
- private final Runnable mCallback = new Runnable() {
+ private void cancelAnimationCallback() {
+ mChoreographer.removeCallbacks(Choreographer.CALLBACK_ANIMATION, mAnimationCallback, null);
+ }
+
+ private final Runnable mAnimationCallback = new Runnable() {
@Override // Choreographer callback
public void run() {
final long frameTimeNanos = mChoreographer.getFrameTimeNanos();
@@ -144,7 +160,7 @@
}
if (mTargetValue != mCurrentValue) {
- postCallback();
+ postAnimationCallback();
} else {
mAnimating = false;
if (mListener != null) {
diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java
index 5097927..a0ec1d5 100644
--- a/services/core/java/com/android/server/media/MediaSessionRecord.java
+++ b/services/core/java/com/android/server/media/MediaSessionRecord.java
@@ -23,6 +23,7 @@
import android.content.pm.ParceledListSlice;
import android.media.AudioManager;
import android.media.AudioManagerInternal;
+import android.media.AudioSystem;
import android.media.MediaDescription;
import android.media.MediaMetadata;
import android.media.Rating;
@@ -237,6 +238,7 @@
*/
public void adjustVolume(int direction, int flags, String packageName, int uid,
boolean useSuggested) {
+ int previousFlagPlaySound = flags & AudioManager.FLAG_PLAY_SOUND;
if (isPlaybackActive(false) || hasFlag(MediaSession.FLAG_EXCLUSIVE_GLOBAL_PRIORITY)) {
flags &= ~AudioManager.FLAG_PLAY_SOUND;
}
@@ -248,8 +250,15 @@
if (mVolumeType == PlaybackInfo.PLAYBACK_TYPE_LOCAL) {
int stream = AudioAttributes.toLegacyStreamType(mAudioAttrs);
if (useSuggested) {
- mAudioManagerInternal.adjustSuggestedStreamVolumeForUid(stream, direction, flags,
- packageName, uid);
+ if (AudioSystem.isStreamActive(stream, 0)) {
+ mAudioManagerInternal.adjustSuggestedStreamVolumeForUid(stream, direction,
+ flags, packageName, uid);
+ } else {
+ flags |= previousFlagPlaySound;
+ mAudioManagerInternal.adjustSuggestedStreamVolumeForUid(
+ AudioManager.USE_DEFAULT_STREAM_TYPE, direction, flags, packageName,
+ uid);
+ }
} else {
mAudioManagerInternal.adjustStreamVolumeForUid(stream, direction, flags,
packageName, uid);
@@ -615,7 +624,10 @@
}
private PlaybackState getStateWithUpdatedPosition() {
- PlaybackState state = mPlaybackState;
+ PlaybackState state;
+ synchronized (mLock) {
+ state = mPlaybackState;
+ }
long duration = -1;
if (mMetadata != null && mMetadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) {
duration = mMetadata.getLong(MediaMetadata.METADATA_KEY_DURATION);
@@ -674,7 +686,8 @@
@Override
public void sendEvent(String event, Bundle data) {
- mHandler.post(MessageHandler.MSG_SEND_EVENT, event, data);
+ mHandler.post(MessageHandler.MSG_SEND_EVENT, event,
+ data == null ? null : new Bundle(data));
}
@Override
@@ -712,7 +725,11 @@
@Override
public void setMetadata(MediaMetadata metadata) {
- mMetadata = metadata;
+ // Make a copy of the metadata as the underlying bundle may be
+ // modified on this thread.
+ synchronized (mLock) {
+ mMetadata = metadata == null ? null : new MediaMetadata.Builder(metadata).build();
+ }
mHandler.post(MessageHandler.MSG_UPDATE_METADATA);
}
@@ -723,14 +740,18 @@
if (MediaSession.isActiveState(oldState) && newState == PlaybackState.STATE_PAUSED) {
mLastActiveTime = SystemClock.elapsedRealtime();
}
- mPlaybackState = state;
+ synchronized (mLock) {
+ mPlaybackState = state;
+ }
mService.onSessionPlaystateChange(MediaSessionRecord.this, oldState, newState);
mHandler.post(MessageHandler.MSG_UPDATE_PLAYBACK_STATE);
}
@Override
public void setQueue(ParceledListSlice queue) {
- mQueue = queue;
+ synchronized (mLock) {
+ mQueue = queue;
+ }
mHandler.post(MessageHandler.MSG_UPDATE_QUEUE);
}
@@ -742,7 +763,9 @@
@Override
public void setExtras(Bundle extras) {
- mExtras = extras;
+ synchronized (mLock) {
+ mExtras = extras == null ? null : new Bundle(extras);
+ }
mHandler.post(MessageHandler.MSG_UPDATE_EXTRAS);
}
@@ -1118,7 +1141,9 @@
@Override
public MediaMetadata getMetadata() {
- return mMetadata;
+ synchronized (mLock) {
+ return mMetadata;
+ }
}
@Override
@@ -1128,7 +1153,9 @@
@Override
public ParceledListSlice getQueue() {
- return mQueue;
+ synchronized (mLock) {
+ return mQueue;
+ }
}
@Override
@@ -1138,7 +1165,9 @@
@Override
public Bundle getExtras() {
- return mExtras;
+ synchronized (mLock) {
+ return mExtras;
+ }
}
@Override
diff --git a/services/core/java/com/android/server/notification/DowntimeConditionProvider.java b/services/core/java/com/android/server/notification/DowntimeConditionProvider.java
index b71bad8..efe47c3 100644
--- a/services/core/java/com/android/server/notification/DowntimeConditionProvider.java
+++ b/services/core/java/com/android/server/notification/DowntimeConditionProvider.java
@@ -193,7 +193,8 @@
}
private boolean isInDowntime(int daysOffset, long time, long start, long end) {
- final int day = ((getDayOfWeek(time) + daysOffset - 1) % Calendar.SATURDAY) + 1;
+ final int n = Calendar.SATURDAY;
+ final int day = ((getDayOfWeek(time) - 1) + (daysOffset % n) + n) % n + 1;
start = addDays(start, daysOffset);
end = addDays(end, daysOffset);
return mDays.contains(day) && time >= start && time < end;
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index d8e5a98..22f060f 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -75,6 +75,7 @@
import android.service.notification.NotificationRankingUpdate;
import android.service.notification.StatusBarNotification;
import android.service.notification.ZenModeConfig;
+import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -187,6 +188,7 @@
boolean mSystemReady;
private boolean mDisableNotificationEffects;
+ private int mCallState;
NotificationRecord mSoundNotification;
NotificationRecord mVibrateNotification;
@@ -490,7 +492,7 @@
synchronized (mNotificationList) {
mDisableNotificationEffects =
(status & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) != 0;
- if (disableNotificationEffects()) {
+ if (disableNotificationEffects(null) != null) {
// cancel whatever's going on
long identity = Binder.clearCallingIdentity();
try {
@@ -875,6 +877,7 @@
mZenModeHelper.updateZenMode();
mUserProfiles.updateCache(getContext());
+ listenForCallState();
// register for various Intents
IntentFilter filter = new IntentFilter();
@@ -1510,8 +1513,17 @@
return keys.toArray(new String[keys.size()]);
}
- private boolean disableNotificationEffects() {
- return mDisableNotificationEffects || (mListenerHints & HINT_HOST_DISABLE_EFFECTS) != 0;
+ private String disableNotificationEffects(NotificationRecord record) {
+ if (mDisableNotificationEffects) {
+ return "booleanState";
+ }
+ if ((mListenerHints & HINT_HOST_DISABLE_EFFECTS) != 0) {
+ return "listenerHints";
+ }
+ if (mCallState != TelephonyManager.CALL_STATE_IDLE && !mZenModeHelper.isCall(record)) {
+ return "callState";
+ }
+ return null;
}
void dumpImpl(PrintWriter pw, DumpFilter filter) {
@@ -1563,6 +1575,7 @@
pw.println(" mSoundNotification=" + mSoundNotification);
pw.println(" mVibrateNotification=" + mVibrateNotification);
pw.println(" mDisableNotificationEffects=" + mDisableNotificationEffects);
+ pw.println(" mCallState=" + callStateToString(mCallState));
pw.println(" mSystemReady=" + mSystemReady);
}
pw.println(" mArchive=" + mArchive.toString());
@@ -1839,7 +1852,11 @@
}
// If we're not supposed to beep, vibrate, etc. then don't.
- if (!disableNotificationEffects()
+ final String disableEffects = disableNotificationEffects(record);
+ if (disableEffects != null) {
+ ZenLog.traceDisableEffects(record, disableEffects);
+ }
+ if (disableEffects == null
&& (!(record.isUpdate
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))
&& (record.getUserId() == UserHandle.USER_ALL ||
@@ -2657,6 +2674,26 @@
}
}
+ private static String callStateToString(int state) {
+ switch (state) {
+ case TelephonyManager.CALL_STATE_IDLE: return "CALL_STATE_IDLE";
+ case TelephonyManager.CALL_STATE_RINGING: return "CALL_STATE_RINGING";
+ case TelephonyManager.CALL_STATE_OFFHOOK: return "CALL_STATE_OFFHOOK";
+ default: return "CALL_STATE_UNKNOWN_" + state;
+ }
+ }
+
+ private void listenForCallState() {
+ TelephonyManager.from(getContext()).listen(new PhoneStateListener() {
+ @Override
+ public void onCallStateChanged(int state, String incomingNumber) {
+ if (mCallState == state) return;
+ if (DBG) Slog.d(TAG, "Call state changed: " + callStateToString(state));
+ mCallState = state;
+ }
+ }, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+
/**
* Generates a NotificationRankingUpdate from 'sbns', considering only
* notifications visible to the given listener.
diff --git a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
index 6e2a8ad..11d00cf 100644
--- a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
+++ b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
@@ -231,7 +231,7 @@
if (lookupResult == null || lookupResult.isExpired()) {
pendingLookups.add(handle);
} else {
- if (DEBUG) Slog.d(TAG, "using cached lookupResult: " + lookupResult.mId);
+ if (DEBUG) Slog.d(TAG, "using cached lookupResult");
}
if (lookupResult != null) {
affinity = Math.max(affinity, lookupResult.getAffinity());
@@ -336,11 +336,14 @@
Cursor c = null;
try {
c = context.getContentResolver().query(lookupUri, LOOKUP_PROJECTION, null, null, null);
- if (c != null && c.getCount() > 0) {
- c.moveToFirst();
- lookupResult.readContact(c);
+ if (c == null) {
+ Slog.w(TAG, "Null cursor from contacts query.");
+ return lookupResult;
}
- } catch(Throwable t) {
+ while (c.moveToNext()) {
+ lookupResult.mergeContact(c);
+ }
+ } catch (Throwable t) {
Slog.w(TAG, "Problem getting content resolver or performing contacts query.", t);
} finally {
if (c != null) {
@@ -352,61 +355,54 @@
private static class LookupResult {
private static final long CONTACT_REFRESH_MILLIS = 60 * 60 * 1000; // 1hr
- public static final int INVALID_ID = -1;
private final long mExpireMillis;
- private int mId;
- private boolean mStarred;
+ private float mAffinity = NONE;
public LookupResult() {
- mId = INVALID_ID;
- mStarred = false;
mExpireMillis = System.currentTimeMillis() + CONTACT_REFRESH_MILLIS;
}
- public void readContact(Cursor cursor) {
+ public void mergeContact(Cursor cursor) {
+ mAffinity = Math.max(mAffinity, VALID_CONTACT);
+
+ // Contact ID
+ int id;
final int idIdx = cursor.getColumnIndex(Contacts._ID);
if (idIdx >= 0) {
- mId = cursor.getInt(idIdx);
- if (DEBUG) Slog.d(TAG, "contact _ID is: " + mId);
+ id = cursor.getInt(idIdx);
+ if (DEBUG) Slog.d(TAG, "contact _ID is: " + id);
} else {
- if (DEBUG) Slog.d(TAG, "invalid cursor: no _ID");
+ id = -1;
+ Slog.i(TAG, "invalid cursor: no _ID");
}
+
+ // Starred
final int starIdx = cursor.getColumnIndex(Contacts.STARRED);
if (starIdx >= 0) {
- mStarred = cursor.getInt(starIdx) != 0;
- if (DEBUG) Slog.d(TAG, "contact STARRED is: " + mStarred);
+ boolean isStarred = cursor.getInt(starIdx) != 0;
+ if (isStarred) {
+ mAffinity = Math.max(mAffinity, STARRED_CONTACT);
+ }
+ if (DEBUG) Slog.d(TAG, "contact STARRED is: " + isStarred);
} else {
if (DEBUG) Slog.d(TAG, "invalid cursor: no STARRED");
}
}
- public boolean isExpired() {
+ private boolean isExpired() {
return mExpireMillis < System.currentTimeMillis();
}
- public boolean isInvalid() {
- return mId == INVALID_ID || isExpired();
+ private boolean isInvalid() {
+ return mAffinity == NONE || isExpired();
}
public float getAffinity() {
if (isInvalid()) {
return NONE;
- } else if (mStarred) {
- return STARRED_CONTACT;
- } else {
- return VALID_CONTACT;
}
- }
-
- public LookupResult setStarred(boolean starred) {
- mStarred = starred;
- return this;
- }
-
- public LookupResult setId(int id) {
- mId = id;
- return this;
+ return mAffinity;
}
}
diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java
index f84409e..6cc5e0e 100644
--- a/services/core/java/com/android/server/notification/ZenLog.java
+++ b/services/core/java/com/android/server/notification/ZenLog.java
@@ -55,6 +55,7 @@
private static final int TYPE_CONFIG = 10;
private static final int TYPE_FOLLOW_RINGER_MODE = 11;
private static final int TYPE_NOT_INTERCEPTED = 12;
+ private static final int TYPE_DISABLE_EFFECTS = 13;
private static int sNext;
private static int sSize;
@@ -106,6 +107,10 @@
+ zenModeToString(oldZen) + " -> " + zenModeToString(newZen));
}
+ public static void traceDisableEffects(NotificationRecord record, String reason) {
+ append(TYPE_DISABLE_EFFECTS, record.getKey() + "," + reason);
+ }
+
private static String subscribeResult(IConditionProvider provider, RemoteException e) {
return provider == null ? "no provider" : e != null ? e.getMessage() : "ok";
}
@@ -124,6 +129,7 @@
case TYPE_CONFIG: return "config";
case TYPE_FOLLOW_RINGER_MODE: return "follow_ringer_mode";
case TYPE_NOT_INTERCEPTED: return "not_intercepted";
+ case TYPE_DISABLE_EFFECTS: return "disable_effects";
default: return "unknown";
}
}
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 557a44e..5bc1ff9 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -150,48 +150,50 @@
}
public boolean shouldIntercept(NotificationRecord record) {
- if (mZenMode != Global.ZEN_MODE_OFF) {
- if (isSystem(record)) {
- return false;
- }
- if (isAlarm(record)) {
- if (mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS) {
- ZenLog.traceIntercepted(record, "alarm");
- return true;
+ if (isSystem(record)) {
+ return false;
+ }
+ switch (mZenMode) {
+ case Global.ZEN_MODE_NO_INTERRUPTIONS:
+ // #notevenalarms
+ ZenLog.traceIntercepted(record, "none");
+ return true;
+ case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
+ if (isAlarm(record)) {
+ // Alarms are always priority
+ return false;
}
- return false;
- }
- // allow user-prioritized packages through in priority mode
- if (mZenMode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS) {
+ // allow user-prioritized packages through in priority mode
if (record.getPackagePriority() == Notification.PRIORITY_MAX) {
ZenLog.traceNotIntercepted(record, "priorityApp");
return false;
}
- }
- if (isCall(record)) {
- if (!mConfig.allowCalls) {
- ZenLog.traceIntercepted(record, "!allowCalls");
- return true;
+ if (isCall(record)) {
+ if (!mConfig.allowCalls) {
+ ZenLog.traceIntercepted(record, "!allowCalls");
+ return true;
+ }
+ return shouldInterceptAudience(record);
}
- return shouldInterceptAudience(record);
- }
- if (isMessage(record)) {
- if (!mConfig.allowMessages) {
- ZenLog.traceIntercepted(record, "!allowMessages");
- return true;
+ if (isMessage(record)) {
+ if (!mConfig.allowMessages) {
+ ZenLog.traceIntercepted(record, "!allowMessages");
+ return true;
+ }
+ return shouldInterceptAudience(record);
}
- return shouldInterceptAudience(record);
- }
- if (isEvent(record)) {
- if (!mConfig.allowEvents) {
- ZenLog.traceIntercepted(record, "!allowEvents");
- return true;
+ if (isEvent(record)) {
+ if (!mConfig.allowEvents) {
+ ZenLog.traceIntercepted(record, "!allowEvents");
+ return true;
+ }
+ return false;
}
- }
- ZenLog.traceIntercepted(record, "!allowed");
- return true;
+ ZenLog.traceIntercepted(record, "!priority");
+ return true;
+ default:
+ return false;
}
- return false;
}
private boolean shouldInterceptAudience(NotificationRecord record) {
@@ -348,9 +350,9 @@
return record.isCategory(Notification.CATEGORY_EVENT);
}
- private boolean isCall(NotificationRecord record) {
- return isDefaultPhoneApp(record.sbn.getPackageName())
- || record.isCategory(Notification.CATEGORY_CALL);
+ public boolean isCall(NotificationRecord record) {
+ return record != null && (isDefaultPhoneApp(record.sbn.getPackageName())
+ || record.isCategory(Notification.CATEGORY_CALL));
}
private boolean isDefaultPhoneApp(String pkg) {
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index dcc4f8d..d787919 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -254,7 +254,7 @@
try {
IPackageManager pm = AppGlobals.getPackageManager();
ActivityInfo info = pm.getActivityInfo(component, 0, user.getIdentifier());
- return info != null && info.isEnabled();
+ return info != null;
} finally {
Binder.restoreCallingIdentity(ident);
}
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index c106546..d5858a5 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -325,9 +325,9 @@
} catch (FileNotFoundException e) {
// Missing sessions are okay, probably first boot
} catch (IOException e) {
- Log.wtf(TAG, "Failed reading install sessions", e);
+ Slog.wtf(TAG, "Failed reading install sessions", e);
} catch (XmlPullParserException e) {
- Log.wtf(TAG, "Failed reading install sessions", e);
+ Slog.wtf(TAG, "Failed reading install sessions", e);
} finally {
IoUtils.closeQuietly(fis);
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 05f2d4a..2d6c2ee 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4789,6 +4789,18 @@
return dexCodeInstructionSets.toArray(new String[dexCodeInstructionSets.size()]);
}
+ /**
+ * Returns deduplicated list of supported instructions for dex code.
+ */
+ public static String[] getAllDexCodeInstructionSets() {
+ String[] supportedInstructionSets = new String[Build.SUPPORTED_ABIS.length];
+ for (int i = 0; i < supportedInstructionSets.length; i++) {
+ String abi = Build.SUPPORTED_ABIS[i];
+ supportedInstructionSets[i] = VMRuntime.getInstructionSet(abi);
+ }
+ return getDexCodeInstructionSets(supportedInstructionSets);
+ }
+
@Override
public void forceDexOpt(String packageName) {
enforceSystemOrRoot("forceDexOpt");
@@ -6008,11 +6020,19 @@
if (bp != null && !Objects.equals(bp.sourcePackage, p.info.packageName)) {
final boolean currentOwnerIsSystem = (bp.perm != null
&& isSystemApp(bp.perm.owner));
- if (isSystemApp(p.owner) && !currentOwnerIsSystem) {
- String msg = "New decl " + p.owner + " of permission "
- + p.info.name + " is system; overriding " + bp.sourcePackage;
- reportSettingsProblem(Log.WARN, msg);
- bp = null;
+ if (isSystemApp(p.owner)) {
+ if (bp.type == BasePermission.TYPE_BUILTIN && bp.perm == null) {
+ // It's a built-in permission and no owner, take ownership now
+ bp.packageSetting = pkgSetting;
+ bp.perm = p;
+ bp.uid = pkg.applicationInfo.uid;
+ bp.sourcePackage = p.info.packageName;
+ } else if (!currentOwnerIsSystem) {
+ String msg = "New decl " + p.owner + " of permission "
+ + p.info.name + " is system; overriding " + bp.sourcePackage;
+ reportSettingsProblem(Log.WARN, msg);
+ bp = null;
+ }
}
}
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 4e33ca8..9473495 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -1178,12 +1178,14 @@
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR,
"Error reading stopped packages: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages",
+ e);
} catch (java.io.IOException e) {
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages",
+ e);
}
}
@@ -1272,7 +1274,8 @@
// might have been corrupted.
if (!backupFile.exists()) {
if (!userPackagesStateFile.renameTo(backupFile)) {
- Log.wtf(PackageManagerService.TAG, "Unable to backup user packages state file, "
+ Slog.wtf(PackageManagerService.TAG,
+ "Unable to backup user packages state file, "
+ "current changes will be lost at reboot");
return;
}
@@ -1379,7 +1382,7 @@
// Done, all is good!
return;
} catch(java.io.IOException e) {
- Log.wtf(PackageManagerService.TAG,
+ Slog.wtf(PackageManagerService.TAG,
"Unable to write package manager user packages state, "
+ " current changes will be lost at reboot", e);
}
@@ -1485,12 +1488,14 @@
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR,
"Error reading stopped packages: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages",
+ e);
} catch (java.io.IOException e) {
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager stopped packages",
+ e);
}
}
@@ -1507,7 +1512,8 @@
// might have been corrupted.
if (!mBackupSettingsFilename.exists()) {
if (!mSettingsFilename.renameTo(mBackupSettingsFilename)) {
- Log.wtf(PackageManagerService.TAG, "Unable to backup package manager settings, "
+ Slog.wtf(PackageManagerService.TAG,
+ "Unable to backup package manager settings, "
+ " current changes will be lost at reboot");
return;
}
@@ -1698,7 +1704,7 @@
str.close();
journal.commit();
} catch (Exception e) {
- Log.wtf(TAG, "Failed to write packages.list", e);
+ Slog.wtf(TAG, "Failed to write packages.list", e);
IoUtils.closeQuietly(str);
journal.rollback();
}
@@ -1707,16 +1713,16 @@
return;
} catch(XmlPullParserException e) {
- Log.wtf(PackageManagerService.TAG, "Unable to write package manager settings, "
+ Slog.wtf(PackageManagerService.TAG, "Unable to write package manager settings, "
+ "current changes will be lost at reboot", e);
} catch(java.io.IOException e) {
- Log.wtf(PackageManagerService.TAG, "Unable to write package manager settings, "
+ Slog.wtf(PackageManagerService.TAG, "Unable to write package manager settings, "
+ "current changes will be lost at reboot", e);
}
// Clean up partially written files
if (mSettingsFilename.exists()) {
if (!mSettingsFilename.delete()) {
- Log.wtf(PackageManagerService.TAG, "Failed to clean up mangled file: "
+ Slog.wtf(PackageManagerService.TAG, "Failed to clean up mangled file: "
+ mSettingsFilename);
}
}
@@ -1984,7 +1990,7 @@
mReadMessages.append("No start tag found in settings file\n");
PackageManagerService.reportSettingsProblem(Log.WARN,
"No start tag found in package manager settings");
- Log.wtf(PackageManagerService.TAG,
+ Slog.wtf(PackageManagerService.TAG,
"No start tag found in package manager settings");
return false;
}
@@ -2097,12 +2103,12 @@
} catch (XmlPullParserException e) {
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
} catch (java.io.IOException e) {
mReadMessages.append("Error reading: " + e.toString());
PackageManagerService.reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
- Log.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
+ Slog.wtf(PackageManagerService.TAG, "Error reading package manager settings", e);
}
final int N = mPendingPackages.size();
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 4f41bee..52807c0 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -142,10 +142,12 @@
// Summarizes the user activity state.
private static final int USER_ACTIVITY_SCREEN_BRIGHT = 1 << 0;
private static final int USER_ACTIVITY_SCREEN_DIM = 1 << 1;
+ private static final int USER_ACTIVITY_SCREEN_DREAM = 1 << 2;
// Default timeout in milliseconds. This is only used until the settings
// provider populates the actual default value (R.integer.def_screen_off_timeout).
private static final int DEFAULT_SCREEN_OFF_TIMEOUT = 15 * 1000;
+ private static final int DEFAULT_SLEEP_TIMEOUT = -1;
// Power hints defined in hardware/libhardware/include/hardware/power.h.
private static final int POWER_HINT_INTERACTION = 2;
@@ -214,7 +216,6 @@
private long mLastInteractivePowerHintTime;
// A bitfield that summarizes the effect of the user activity timer.
- // A zero value indicates that the user activity timer has expired.
private int mUserActivitySummary;
// The desired display power state. The actual state may lag behind the
@@ -340,6 +341,9 @@
// The screen off timeout setting value in milliseconds.
private int mScreenOffTimeoutSetting;
+ // The sleep timeout setting value in milliseconds.
+ private int mSleepTimeoutSetting;
+
// The maximum allowable screen off timeout according to the device
// administration policy. Overrides other settings.
private int mMaximumScreenOffTimeoutFromDeviceAdmin = Integer.MAX_VALUE;
@@ -543,6 +547,9 @@
resolver.registerContentObserver(Settings.System.getUriFor(
Settings.System.SCREEN_OFF_TIMEOUT),
false, mSettingsObserver, UserHandle.USER_ALL);
+ resolver.registerContentObserver(Settings.Secure.getUriFor(
+ Settings.Secure.SLEEP_TIMEOUT),
+ false, mSettingsObserver, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.Global.getUriFor(
Settings.Global.STAY_ON_WHILE_PLUGGED_IN),
false, mSettingsObserver, UserHandle.USER_ALL);
@@ -624,6 +631,9 @@
mScreenOffTimeoutSetting = Settings.System.getIntForUser(resolver,
Settings.System.SCREEN_OFF_TIMEOUT, DEFAULT_SCREEN_OFF_TIMEOUT,
UserHandle.USER_CURRENT);
+ mSleepTimeoutSetting = Settings.Secure.getIntForUser(resolver,
+ Settings.Secure.SLEEP_TIMEOUT, DEFAULT_SLEEP_TIMEOUT,
+ UserHandle.USER_CURRENT);
mStayOnWhilePluggedInSetting = Settings.Global.getInt(resolver,
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, BatteryManager.BATTERY_PLUGGED_AC);
@@ -1431,7 +1441,8 @@
if (mWakefulness == WAKEFULNESS_AWAKE
|| mWakefulness == WAKEFULNESS_DREAMING
|| mWakefulness == WAKEFULNESS_DOZING) {
- final int screenOffTimeout = getScreenOffTimeoutLocked();
+ final int sleepTimeout = getSleepTimeoutLocked();
+ final int screenOffTimeout = getScreenOffTimeoutLocked(sleepTimeout);
final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout);
mUserActivitySummary = 0;
@@ -1439,11 +1450,11 @@
nextTimeout = mLastUserActivityTime
+ screenOffTimeout - screenDimDuration;
if (now < nextTimeout) {
- mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT;
+ mUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
} else {
nextTimeout = mLastUserActivityTime + screenOffTimeout;
if (now < nextTimeout) {
- mUserActivitySummary |= USER_ACTIVITY_SCREEN_DIM;
+ mUserActivitySummary = USER_ACTIVITY_SCREEN_DIM;
}
}
}
@@ -1458,7 +1469,22 @@
}
}
}
- if (mUserActivitySummary != 0) {
+ if (mUserActivitySummary == 0) {
+ if (sleepTimeout >= 0) {
+ final long anyUserActivity = Math.max(mLastUserActivityTime,
+ mLastUserActivityTimeNoChangeLights);
+ if (anyUserActivity >= mLastWakeTime) {
+ nextTimeout = anyUserActivity + sleepTimeout;
+ if (now < nextTimeout) {
+ mUserActivitySummary = USER_ACTIVITY_SCREEN_DREAM;
+ }
+ }
+ } else {
+ mUserActivitySummary = USER_ACTIVITY_SCREEN_DREAM;
+ nextTimeout = -1;
+ }
+ }
+ if (mUserActivitySummary != 0 && nextTimeout >= 0) {
Message msg = mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT);
msg.setAsynchronous(true);
mHandler.sendMessageAtTime(msg, nextTimeout);
@@ -1495,7 +1521,15 @@
}
}
- private int getScreenOffTimeoutLocked() {
+ private int getSleepTimeoutLocked() {
+ int timeout = mSleepTimeoutSetting;
+ if (timeout <= 0) {
+ return -1;
+ }
+ return Math.max(timeout, mMinimumScreenOffTimeoutConfig);
+ }
+
+ private int getScreenOffTimeoutLocked(int sleepTimeout) {
int timeout = mScreenOffTimeoutSetting;
if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {
timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);
@@ -1503,6 +1537,9 @@
if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {
timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);
}
+ if (sleepTimeout >= 0) {
+ timeout = Math.min(timeout, sleepTimeout);
+ }
return Math.max(timeout, mMinimumScreenOffTimeoutConfig);
}
@@ -1619,8 +1656,7 @@
mSandmanScheduled = false;
wakefulness = mWakefulness;
if (mSandmanSummoned && mDisplayReady) {
- startDreaming = ((wakefulness == WAKEFULNESS_DREAMING && canDreamLocked())
- || wakefulness == WAKEFULNESS_DOZING);
+ startDreaming = canDreamLocked() || canDozeLocked();
mSandmanSummoned = false;
} else {
startDreaming = false;
@@ -1708,13 +1744,14 @@
/**
* Returns true if the device is allowed to dream in its current state.
- * This function is not called when dozing.
*/
private boolean canDreamLocked() {
if (mWakefulness != WAKEFULNESS_DREAMING
|| !mDreamsSupportedConfig
|| !mDreamsEnabledSetting
|| !mDisplayPowerRequest.isBrightOrDim()
+ || (mUserActivitySummary & (USER_ACTIVITY_SCREEN_BRIGHT
+ | USER_ACTIVITY_SCREEN_DIM | USER_ACTIVITY_SCREEN_DREAM)) == 0
|| !mBootCompleted) {
return false;
}
@@ -1737,6 +1774,13 @@
}
/**
+ * Returns true if the device is allowed to doze in its current state.
+ */
+ private boolean canDozeLocked() {
+ return mWakefulness == WAKEFULNESS_DOZING;
+ }
+
+ /**
* Updates the display power state asynchronously.
* When the update is finished, mDisplayReady will be set to true. The display
* controller posts a message to tell us when the actual display power state
@@ -2126,7 +2170,7 @@
t.start();
t.join();
} catch (InterruptedException e) {
- Log.wtf(TAG, e);
+ Slog.wtf(TAG, e);
}
}
@@ -2343,6 +2387,7 @@
pw.println(" mMaximumScreenDimDurationConfig=" + mMaximumScreenDimDurationConfig);
pw.println(" mMaximumScreenDimRatioConfig=" + mMaximumScreenDimRatioConfig);
pw.println(" mScreenOffTimeoutSetting=" + mScreenOffTimeoutSetting);
+ pw.println(" mSleepTimeoutSetting=" + mSleepTimeoutSetting);
pw.println(" mMaximumScreenOffTimeoutFromDeviceAdmin="
+ mMaximumScreenOffTimeoutFromDeviceAdmin + " (enforced="
+ isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked() + ")");
@@ -2367,9 +2412,11 @@
pw.println(" mScreenBrightnessSettingMaximum=" + mScreenBrightnessSettingMaximum);
pw.println(" mScreenBrightnessSettingDefault=" + mScreenBrightnessSettingDefault);
- final int screenOffTimeout = getScreenOffTimeoutLocked();
+ final int sleepTimeout = getSleepTimeoutLocked();
+ final int screenOffTimeout = getScreenOffTimeoutLocked(sleepTimeout);
final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout);
pw.println();
+ pw.println("Sleep timeout: " + sleepTimeout + " ms");
pw.println("Screen off timeout: " + screenOffTimeout + " ms");
pw.println("Screen dim duration: " + screenDimDuration + " ms");
diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
index 468a344..111c09b 100644
--- a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
+++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
@@ -18,6 +18,7 @@
import com.android.server.EventLogTags;
import com.android.server.SystemService;
+import com.android.server.pm.PackageManagerService;
import android.app.Notification;
import android.app.NotificationManager;
@@ -51,6 +52,8 @@
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import dalvik.system.VMRuntime;
+
/**
* This class implements a service to monitor the amount of disk
* storage space on the device. If the free storage on device is less
@@ -89,6 +92,7 @@
private long mLastReportedFreeMemTime;
boolean mLowMemFlag=false;
private boolean mMemFullFlag=false;
+ private final boolean mIsBootImageOnDisk;
private final ContentResolver mResolver;
private final long mTotalMemory; // on /data
private final StatFs mDataFileStats;
@@ -285,6 +289,10 @@
mLowMemFlag = false;
}
}
+ if (!mLowMemFlag && !mIsBootImageOnDisk) {
+ Slog.i(TAG, "No boot image on disk due to lack of space. Sending notification");
+ sendNotification();
+ }
if (mFreeMem < mMemFullThreshold) {
if (!mMemFullFlag) {
sendFullNotification();
@@ -314,6 +322,7 @@
super(context);
mLastReportedFreeMemTime = 0;
mResolver = context.getContentResolver();
+ mIsBootImageOnDisk = isBootImageOnDisk();
//create StatFs object
mDataFileStats = new StatFs(DATA_PATH.getAbsolutePath());
mSystemFileStats = new StatFs(SYSTEM_PATH.getAbsolutePath());
@@ -331,6 +340,15 @@
mStorageNotFullIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
}
+ private static boolean isBootImageOnDisk() {
+ for (String instructionSet : PackageManagerService.getAllDexCodeInstructionSets()) {
+ if (!VMRuntime.isBootClassPathOnDisk(instructionSet)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* Initializes the disk space threshold value and posts an empty message to
* kickstart the process.
@@ -364,7 +382,7 @@
@Override
public boolean isMemoryLow() {
- return mLowMemFlag;
+ return mLowMemFlag || !mIsBootImageOnDisk;
}
@Override
@@ -409,6 +427,7 @@
pw.print(" mLowMemFlag="); pw.print(mLowMemFlag);
pw.print(" mMemFullFlag="); pw.println(mMemFullFlag);
+ pw.print(" mIsBootImageOnDisk="); pw.print(mIsBootImageOnDisk);
pw.print(" mClearSucceeded="); pw.print(mClearSucceeded);
pw.print(" mClearingCache="); pw.println(mClearingCache);
@@ -445,19 +464,25 @@
Context.NOTIFICATION_SERVICE);
CharSequence title = context.getText(
com.android.internal.R.string.low_internal_storage_view_title);
- CharSequence details = context.getText(
- com.android.internal.R.string.low_internal_storage_view_text);
+ CharSequence details = context.getText(mIsBootImageOnDisk
+ ? com.android.internal.R.string.low_internal_storage_view_text
+ : com.android.internal.R.string.low_internal_storage_view_text_no_boot);
PendingIntent intent = PendingIntent.getActivityAsUser(context, 0, lowMemIntent, 0,
null, UserHandle.CURRENT);
- Notification notification = new Notification();
- notification.icon = com.android.internal.R.drawable.stat_notify_disk_full;
- notification.tickerText = title;
+ Notification notification = new Notification.Builder(context)
+ .setSmallIcon(com.android.internal.R.drawable.stat_notify_disk_full)
+ .setTicker(title)
+ .setColor(context.getResources().getColor(
+ com.android.internal.R.color.system_notification_accent_color))
+ .setContentTitle(title)
+ .setContentText(details)
+ .setContentIntent(intent)
+ .setStyle(new Notification.BigTextStyle()
+ .bigText(details))
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setCategory(Notification.CATEGORY_SYSTEM)
+ .build();
notification.flags |= Notification.FLAG_NO_CLEAR;
- notification.color = context.getResources().getColor(
- com.android.internal.R.color.system_notification_accent_color);
- notification.setLatestEventInfo(context, title, details, intent);
- notification.visibility = Notification.VISIBILITY_PUBLIC;
- notification.category = Notification.CATEGORY_SYSTEM;
mNotificationMgr.notifyAsUser(null, LOW_MEMORY_NOTIFICATION_ID, notification,
UserHandle.ALL);
context.sendStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 0c51160..30589b1 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -162,7 +162,7 @@
}
TaskStack getHomeStack() {
- if (mHomeStack == null) {
+ if (mHomeStack == null && mDisplayId == Display.DEFAULT_DISPLAY) {
Slog.e(TAG, "getHomeStack: Returning null from this=" + this);
}
return mHomeStack;
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index da5cfda..69d3191 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -632,7 +632,7 @@
mService.mWatermark.drawIfNeeded();
}
} catch (RuntimeException e) {
- Log.wtf(TAG, "Unhandled exception in Window Manager", e);
+ Slog.wtf(TAG, "Unhandled exception in Window Manager", e);
} finally {
SurfaceControl.closeTransaction();
if (WindowManagerService.SHOW_TRANSACTIONS) Slog.i(
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 999649b..467b9a4 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -2712,9 +2712,10 @@
if (atoken != null) {
if (atoken.startingWindow == win) {
- if (DEBUG_STARTING_WINDOW) Slog.v(TAG, "Nulling startingWindow " + win);
- atoken.startingWindow = null;
- } else if (atoken.allAppWindows.size() == 0 && atoken.startingData != null) {
+ if (DEBUG_STARTING_WINDOW) Slog.v(TAG, "Notify removed startingWindow " + win);
+ scheduleRemoveStartingWindowLocked(atoken);
+ } else
+ if (atoken.allAppWindows.size() == 0 && atoken.startingData != null) {
// If this is the last window and we had requested a starting
// transition window, well there is no point now.
if (DEBUG_STARTING_WINDOW) Slog.v(TAG, "Nulling last startingWindow");
@@ -2722,7 +2723,7 @@
} else if (atoken.allAppWindows.size() == 1 && atoken.startingView != null) {
// If this is the last window except for a starting transition
// window, we need to get rid of the starting transition.
- scheduleRemoveStartingWindow(atoken);
+ scheduleRemoveStartingWindowLocked(atoken);
}
}
@@ -4329,7 +4330,7 @@
synchronized (mWindowMap) {
AppWindowToken wtoken = mTokenMap.get(token).appWindowToken;
if (wtoken.startingWindow != null) {
- scheduleRemoveStartingWindow(wtoken);
+ scheduleRemoveStartingWindowLocked(wtoken);
}
}
}
@@ -4791,14 +4792,19 @@
if (!delayed && wtoken != null) {
wtoken.updateReportedVisibilityLocked();
}
+
+ // Will only remove if startingToken non null.
+ scheduleRemoveStartingWindowLocked(startingToken);
}
Binder.restoreCallingIdentity(origId);
- // Will only remove if startingToken non null.
- scheduleRemoveStartingWindow(startingToken);
}
- void scheduleRemoveStartingWindow(AppWindowToken wtoken) {
+ void scheduleRemoveStartingWindowLocked(AppWindowToken wtoken) {
+ if (mH.hasMessages(H.REMOVE_STARTING, wtoken)) {
+ // Already scheduled.
+ return;
+ }
if (wtoken != null && wtoken.startingWindow != null) {
if (DEBUG_STARTING_WINDOW) Slog.v(TAG, Debug.getCallers(1) +
": Schedule remove starting " + wtoken + (wtoken != null ?
@@ -8646,7 +8652,7 @@
}
}
} catch (RuntimeException e) {
- Log.wtf(TAG, "Unhandled exception while force removing for memory", e);
+ Slog.wtf(TAG, "Unhandled exception while force removing for memory", e);
}
try {
@@ -8671,7 +8677,7 @@
}
} catch (RuntimeException e) {
mInLayout = false;
- Log.wtf(TAG, "Unhandled exception while laying out windows", e);
+ Slog.wtf(TAG, "Unhandled exception while laying out windows", e);
}
Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
@@ -9093,6 +9099,11 @@
// gotten drawn.
wtoken.allDrawn = true;
wtoken.deferClearAllDrawn = false;
+ // Ensure that apps that are mid-starting are also scheduled to have their
+ // starting windows removed after the animation is complete
+ if (wtoken.startingWindow != null && !wtoken.startingWindow.mExiting) {
+ scheduleRemoveStartingWindowLocked(wtoken);
+ }
if (animLp != null) {
int layer = -1;
@@ -9751,7 +9762,7 @@
mDisplayManagerInternal.performTraversalInTransactionFromWindowManager();
} catch (RuntimeException e) {
- Log.wtf(TAG, "Unhandled exception in Window Manager", e);
+ Slog.wtf(TAG, "Unhandled exception in Window Manager", e);
} finally {
SurfaceControl.closeTransaction();
if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
@@ -10236,7 +10247,7 @@
winAnimator.mSurfaceShown = false;
winAnimator.mSurfaceControl = null;
winAnimator.mWin.mHasSurface = false;
- scheduleRemoveStartingWindow(winAnimator.mWin.mAppToken);
+ scheduleRemoveStartingWindowLocked(winAnimator.mWin.mAppToken);
}
try {
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 5b007d4..0c727f3 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -515,6 +515,7 @@
static class SurfaceTrace extends SurfaceControl {
private final static String SURFACE_TAG = "SurfaceTrace";
+ private final static boolean logSurfaceTrace = DEBUG_SURFACE_TRACE;
final static ArrayList<SurfaceTrace> sSurfaces = new ArrayList<SurfaceTrace>();
private float mSurfaceTraceAlpha = 0;
@@ -534,7 +535,7 @@
super(s, name, w, h, format, flags);
mName = name != null ? name : "Not named";
mSize.set(w, h);
- Slog.v(SURFACE_TAG, "ctor: " + this + ". Called by "
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "ctor: " + this + ". Called by "
+ Debug.getCallers(3));
synchronized (sSurfaces) {
sSurfaces.add(0, this);
@@ -544,8 +545,8 @@
@Override
public void setAlpha(float alpha) {
if (mSurfaceTraceAlpha != alpha) {
- Slog.v(SURFACE_TAG, "setAlpha(" + alpha + "): OLD:" + this + ". Called by "
- + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setAlpha(" + alpha + "): OLD:" + this +
+ ". Called by " + Debug.getCallers(3));
mSurfaceTraceAlpha = alpha;
}
super.setAlpha(alpha);
@@ -554,8 +555,8 @@
@Override
public void setLayer(int zorder) {
if (zorder != mLayer) {
- Slog.v(SURFACE_TAG, "setLayer(" + zorder + "): OLD:" + this + ". Called by "
- + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setLayer(" + zorder + "): OLD:" + this
+ + ". Called by " + Debug.getCallers(3));
mLayer = zorder;
}
super.setLayer(zorder);
@@ -576,8 +577,8 @@
@Override
public void setPosition(float x, float y) {
if (x != mPosition.x || y != mPosition.y) {
- Slog.v(SURFACE_TAG, "setPosition(" + x + "," + y + "): OLD:" + this
- + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setPosition(" + x + "," + y + "): OLD:"
+ + this + ". Called by " + Debug.getCallers(3));
mPosition.set(x, y);
}
super.setPosition(x, y);
@@ -586,8 +587,8 @@
@Override
public void setSize(int w, int h) {
if (w != mSize.x || h != mSize.y) {
- Slog.v(SURFACE_TAG, "setSize(" + w + "," + h + "): OLD:" + this + ". Called by "
- + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setSize(" + w + "," + h + "): OLD:"
+ + this + ". Called by " + Debug.getCallers(3));
mSize.set(w, h);
}
super.setSize(w, h);
@@ -597,8 +598,9 @@
public void setWindowCrop(Rect crop) {
if (crop != null) {
if (!crop.equals(mWindowCrop)) {
- Slog.v(SURFACE_TAG, "setWindowCrop(" + crop.toShortString() + "): OLD:" + this
- + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setWindowCrop("
+ + crop.toShortString() + "): OLD:" + this + ". Called by "
+ + Debug.getCallers(3));
mWindowCrop.set(crop);
}
}
@@ -608,8 +610,8 @@
@Override
public void setLayerStack(int layerStack) {
if (layerStack != mLayerStack) {
- Slog.v(SURFACE_TAG, "setLayerStack(" + layerStack + "): OLD:" + this
- + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setLayerStack(" + layerStack + "): OLD:"
+ + this + ". Called by " + Debug.getCallers(3));
mLayerStack = layerStack;
}
super.setLayerStack(layerStack);
@@ -618,8 +620,8 @@
@Override
public void setOpaque(boolean isOpaque) {
if (isOpaque != mIsOpaque) {
- Slog.v(SURFACE_TAG, "setOpaque(" + isOpaque + "): OLD:" + this
- + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setOpaque(" + isOpaque + "): OLD:"
+ + this + ". Called by " + Debug.getCallers(3));
mIsOpaque = isOpaque;
}
super.setOpaque(isOpaque);
@@ -628,8 +630,9 @@
@Override
public void setMatrix(float dsdx, float dtdx, float dsdy, float dtdy) {
if (dsdx != mDsdx || dtdx != mDtdx || dsdy != mDsdy || dtdy != mDtdy) {
- Slog.v(SURFACE_TAG, "setMatrix(" + dsdx + "," + dtdx + "," + dsdy + "," + dtdy +
- "): OLD:" + this + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "setMatrix(" + dsdx + "," + dtdx + ","
+ + dsdy + "," + dtdy + "): OLD:" + this + ". Called by "
+ + Debug.getCallers(3));
mDsdx = dsdx;
mDtdx = dtdx;
mDsdy = dsdy;
@@ -641,7 +644,8 @@
@Override
public void hide() {
if (mShown) {
- Slog.v(SURFACE_TAG, "hide: OLD:" + this + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "hide: OLD:" + this + ". Called by "
+ + Debug.getCallers(3));
mShown = false;
}
super.hide();
@@ -650,7 +654,8 @@
@Override
public void show() {
if (!mShown) {
- Slog.v(SURFACE_TAG, "show: OLD:" + this + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "show: OLD:" + this + ". Called by "
+ + Debug.getCallers(3));
mShown = true;
}
super.show();
@@ -659,7 +664,8 @@
@Override
public void destroy() {
super.destroy();
- Slog.v(SURFACE_TAG, "destroy: " + this + ". Called by " + Debug.getCallers(3));
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "destroy: " + this + ". Called by "
+ + Debug.getCallers(3));
synchronized (sSurfaces) {
sSurfaces.remove(this);
}
@@ -668,7 +674,7 @@
@Override
public void release() {
super.release();
- Slog.v(SURFACE_TAG, "release: " + this + ". Called by "
+ if (logSurfaceTrace) Slog.v(SURFACE_TAG, "release: " + this + ". Called by "
+ Debug.getCallers(3));
synchronized (sSurfaces) {
sSurfaces.remove(this);
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index f339dba..92ad1ad 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -272,7 +272,7 @@
private void reportWtf(String msg, Throwable e) {
Slog.w(TAG, "***********************************************");
- Log.wtf(TAG, "BOOT FAILURE " + msg, e);
+ Slog.wtf(TAG, "BOOT FAILURE " + msg, e);
}
private void performPendingShutdown() {
diff --git a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
index 972c929..cfa4436 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
@@ -382,6 +382,10 @@
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
+ String path = f.getPath();
+ if (path.endsWith(".bak")) {
+ f = new File(path.substring(0, path.length() - 4));
+ }
long beginTime = Long.parseLong(f.getName());
if (beginTime < expiryTime) {
new AtomicFile(f).delete();
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index e47d9d1..b7b98bf 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -18,6 +18,7 @@
import android.annotation.SystemApi;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -37,6 +38,8 @@
public void onDisconnected(Conference conference, DisconnectCause disconnectCause) {}
public void onConnectionAdded(Conference conference, Connection connection) {}
public void onConnectionRemoved(Conference conference, Connection connection) {}
+ public void onConferenceableConnectionsChanged(
+ Conference conference, List<Connection> conferenceableConnections) {}
public void onDestroyed(Conference conference) {}
public void onCapabilitiesChanged(Conference conference, int capabilities) {}
}
@@ -45,6 +48,9 @@
private final List<Connection> mChildConnections = new CopyOnWriteArrayList<>();
private final List<Connection> mUnmodifiableChildConnections =
Collections.unmodifiableList(mChildConnections);
+ private final List<Connection> mConferenceableConnections = new ArrayList<>();
+ private final List<Connection> mUnmodifiableConferenceableConnections =
+ Collections.unmodifiableList(mConferenceableConnections);
private PhoneAccountHandle mPhoneAccount;
private AudioState mAudioState;
@@ -53,6 +59,15 @@
private int mCapabilities;
private String mDisconnectMessage;
+ private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
+ @Override
+ public void onDestroyed(Connection c) {
+ if (mConferenceableConnections.remove(c)) {
+ fireOnConferenceableConnectionsChanged();
+ }
+ }
+ };
+
/**
* Constructs a new Conference with a mandatory {@link PhoneAccountHandle}
*
@@ -120,6 +135,13 @@
public void onSeparate(Connection connection) {}
/**
+ * Invoked when the specified {@link Connection} should merged with the conference call.
+ *
+ * @param connection The {@code Connection} to merge.
+ */
+ public void onMerge(Connection connection) {}
+
+ /**
* Invoked when the conference should be put on hold.
*/
public void onHold() {}
@@ -238,6 +260,37 @@
}
/**
+ * Sets the connections with which this connection can be conferenced.
+ *
+ * @param conferenceableConnections The set of connections this connection can conference with.
+ */
+ public final void setConferenceableConnections(List<Connection> conferenceableConnections) {
+ clearConferenceableList();
+ for (Connection c : conferenceableConnections) {
+ // If statement checks for duplicates in input. It makes it N^2 but we're dealing with a
+ // small amount of items here.
+ if (!mConferenceableConnections.contains(c)) {
+ c.addConnectionListener(mConnectionDeathListener);
+ mConferenceableConnections.add(c);
+ }
+ }
+ fireOnConferenceableConnectionsChanged();
+ }
+
+ private final void fireOnConferenceableConnectionsChanged() {
+ for (Listener l : mListeners) {
+ l.onConferenceableConnectionsChanged(this, getConferenceableConnections());
+ }
+ }
+
+ /**
+ * Returns the connections with which this connection can be conferenced.
+ */
+ public final List<Connection> getConferenceableConnections() {
+ return mUnmodifiableConferenceableConnections;
+ }
+
+ /**
* Tears down the conference object and any of its current connections.
*/
public final void destroy() {
@@ -313,4 +366,11 @@
}
}
}
+
+ private final void clearConferenceableList() {
+ for (Connection c : mConferenceableConnections) {
+ c.removeConnectionListener(mConnectionDeathListener);
+ }
+ mConferenceableConnections.clear();
+ }
}
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 13acc59..b5f6692 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -870,7 +870,7 @@
}
/**
- * Obtains the connections with which this connection can be conferenced.
+ * Returns the connections with which this connection can be conferenced.
*/
public final List<Connection> getConferenceableConnections() {
return mUnmodifiableConferenceableConnections;
@@ -1100,7 +1100,7 @@
private final void fireOnConferenceableConnectionsChanged() {
for (Listener l : mListeners) {
- l.onConferenceableConnectionsChanged(this, mConferenceableConnections);
+ l.onConferenceableConnectionsChanged(this, getConferenceableConnections());
}
}
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index ed9251b7..efd311e 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -360,6 +360,14 @@
}
@Override
+ public void onConferenceableConnectionsChanged(
+ Conference conference, List<Connection> conferenceableConnections) {
+ mAdapter.setConferenceableConnections(
+ mIdByConference.get(conference),
+ createConnectionIdList(conferenceableConnections));
+ }
+
+ @Override
public void onDestroyed(Conference conference) {
removeConference(conference);
}
@@ -638,19 +646,25 @@
private void conference(String callId1, String callId2) {
Log.d(this, "conference %s, %s", callId1, callId2);
- Connection connection1 = findConnectionForAction(callId1, "conference");
- if (connection1 == getNullConnection()) {
- Log.w(this, "Connection1 missing in conference request %s.", callId1);
- return;
- }
-
Connection connection2 = findConnectionForAction(callId2, "conference");
if (connection2 == getNullConnection()) {
Log.w(this, "Connection2 missing in conference request %s.", callId2);
return;
}
- onConference(connection1, connection2);
+ Connection connection1 = findConnectionForAction(callId1, "conference");
+ if (connection1 == getNullConnection()) {
+ Conference conference1 = findConferenceForAction(callId1, "addConnection");
+ if (conference1 == getNullConference()) {
+ Log.w(this,
+ "Connection1 or Conference1 missing in conference request %s.",
+ callId1);
+ } else {
+ conference1.onMerge(connection2);
+ }
+ } else {
+ onConference(connection1, connection2);
+ }
}
private void splitFromConference(String callId) {
diff --git a/telecomm/java/android/telecom/RemoteConference.java b/telecomm/java/android/telecom/RemoteConference.java
index b18cb96..b548274 100644
--- a/telecomm/java/android/telecom/RemoteConference.java
+++ b/telecomm/java/android/telecom/RemoteConference.java
@@ -21,6 +21,7 @@
import android.annotation.SystemApi;
import android.os.RemoteException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -40,6 +41,9 @@
public void onConnectionAdded(RemoteConference conference, RemoteConnection connection) {}
public void onConnectionRemoved(RemoteConference conference, RemoteConnection connection) {}
public void onCapabilitiesChanged(RemoteConference conference, int capabilities) {}
+ public void onConferenceableConnectionsChanged(
+ RemoteConference conference,
+ List<RemoteConnection> conferenceableConnections) {}
public void onDestroyed(RemoteConference conference) {}
}
@@ -50,6 +54,9 @@
private final List<RemoteConnection> mChildConnections = new CopyOnWriteArrayList<>();
private final List<RemoteConnection> mUnmodifiableChildConnections =
Collections.unmodifiableList(mChildConnections);
+ private final List<RemoteConnection> mConferenceableConnections = new ArrayList<>();
+ private final List<RemoteConnection> mUnmodifiableConferenceableConnections =
+ Collections.unmodifiableList(mConferenceableConnections);
private int mState = Connection.STATE_NEW;
private DisconnectCause mDisconnectCause;
@@ -127,6 +134,15 @@
}
}
+ /** @hide */
+ void setConferenceableConnections(List<RemoteConnection> conferenceableConnections) {
+ mConferenceableConnections.clear();
+ mConferenceableConnections.addAll(conferenceableConnections);
+ for (Callback c : mCallbacks) {
+ c.onConferenceableConnectionsChanged(this, mUnmodifiableConferenceableConnections);
+ }
+ }
+
/** {@hide} */
void setDisconnected(DisconnectCause disconnectCause) {
if (mState != Connection.STATE_DISCONNECTED) {
@@ -219,6 +235,10 @@
}
}
+ public List<RemoteConnection> getConferenceableConnections() {
+ return mUnmodifiableConferenceableConnections;
+ }
+
public final void registerCallback(Callback callback) {
mCallbacks.add(callback);
}
diff --git a/telecomm/java/android/telecom/RemoteConnectionService.java b/telecomm/java/android/telecom/RemoteConnectionService.java
index d959e50..328dc86 100644
--- a/telecomm/java/android/telecom/RemoteConnectionService.java
+++ b/telecomm/java/android/telecom/RemoteConnectionService.java
@@ -278,8 +278,13 @@
}
}
- findConnectionForAction(callId, "setConferenceableConnections")
- .setConferenceableConnections(conferenceable);
+ if (hasConnection(callId)) {
+ findConnectionForAction(callId, "setConferenceableConnections")
+ .setConferenceableConnections(conferenceable);
+ } else {
+ findConferenceForAction(callId, "setConferenceableConnections")
+ .setConferenceableConnections(conferenceable);
+ }
}
};
@@ -358,6 +363,10 @@
}
}
+ private boolean hasConnection(String callId) {
+ return mConferenceById.containsKey(callId);
+ }
+
private RemoteConnection findConnectionForAction(
String callId, String action) {
if (mConnectionById.containsKey(callId)) {
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 89d2dc0..b4d429a 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -584,6 +584,7 @@
* @param account The complete {@link PhoneAccount}.
* @hide
*/
+ @SystemApi
public void registerPhoneAccount(PhoneAccount account) {
try {
if (isServiceConnected()) {
@@ -600,6 +601,7 @@
* @param accountHandle A {@link PhoneAccountHandle} for the {@link PhoneAccount} to unregister.
* @hide
*/
+ @SystemApi
public void unregisterPhoneAccount(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
@@ -800,6 +802,7 @@
* {@link ConnectionService#onCreateIncomingConnection}.
* @hide
*/
+ @SystemApi
public void addNewIncomingCall(PhoneAccountHandle phoneAccount, Bundle extras) {
try {
if (isServiceConnected()) {
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 1ee390f..8e43772 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -146,6 +146,8 @@
* @hide
*/
public static final int RIL_RADIO_TECHNOLOGY_GSM = 16;
+ /** @hide */
+ public static final int RIL_RADIO_TECHNOLOGY_TD_SCDMA = 17;
/**
* Available registration states for GSM, UMTS and CDMA.
@@ -859,6 +861,7 @@
|| radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_0
|| radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_A
|| radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_B
- || radioTechnology == RIL_RADIO_TECHNOLOGY_EHRPD;
+ || radioTechnology == RIL_RADIO_TECHNOLOGY_EHRPD
+ || radioTechnology == RIL_RADIO_TECHNOLOGY_TD_SCDMA;
}
}
diff --git a/tests/Compatibility/src/com/android/compatibilitytest/AppCompatibility.java b/tests/Compatibility/src/com/android/compatibilitytest/AppCompatibility.java
index 5794b2b..dd823ae 100644
--- a/tests/Compatibility/src/com/android/compatibilitytest/AppCompatibility.java
+++ b/tests/Compatibility/src/com/android/compatibilitytest/AppCompatibility.java
@@ -155,16 +155,12 @@
homeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent intent;
if (isleanback) {
- Log.d(TAG, "Leanback and relax!");
+ Log.d(TAG, "Leanback and relax! " + packageName);
intent = mPackageManager.getLeanbackLaunchIntentForPackage(packageName);
} else {
intent = mPackageManager.getLaunchIntentForPackage(packageName);
}
- // Skip if the apk does not have a launch intent.
- if (intent == null) {
- Log.d(TAG, "Skipping " + packageName + "; missing launch intent");
- return null;
- }
+ assertNotNull("Skipping " + packageName + "; missing launch intent", intent);
String processName = getProcessName(packageName);
diff --git a/tools/aapt/CacheUpdater.h b/tools/aapt/CacheUpdater.h
index 0e65589..efb2453 100644
--- a/tools/aapt/CacheUpdater.h
+++ b/tools/aapt/CacheUpdater.h
@@ -12,6 +12,9 @@
#include <sys/stat.h>
#include <stdio.h>
#include "Images.h"
+#ifdef HAVE_MS_C_RUNTIME
+#include <direct.h>
+#endif
using namespace android;
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 77d3beb..c003fa6 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -4357,13 +4357,15 @@
continue;
}
- entriesToAdd[i].value->getPos()
- .printf("using v%d attributes; synthesizing resource %s:%s/%s for configuration %s.",
- SDK_L,
- String8(p->getName()).string(),
- String8(t->getName()).string(),
- String8(entriesToAdd[i].value->getName()).string(),
- entriesToAdd[i].key.toString().string());
+ if (bundle->getVerbose()) {
+ entriesToAdd[i].value->getPos()
+ .printf("using v%d attributes; synthesizing resource %s:%s/%s for configuration %s.",
+ SDK_L,
+ String8(p->getName()).string(),
+ String8(t->getName()).string(),
+ String8(entriesToAdd[i].value->getName()).string(),
+ entriesToAdd[i].key.toString().string());
+ }
sp<Entry> newEntry = t->getEntry(c->getName(),
entriesToAdd[i].value->getPos(),
@@ -4437,13 +4439,15 @@
resPath.convertToResPath();
// Add a resource table entry.
- SourcePos(target->getSourceFile(), -1).printf(
- "using v%d attributes; synthesizing resource %s:%s/%s for configuration %s.",
- SDK_L,
- mAssets->getPackage().string(),
- newFile->getResourceType().string(),
- String8(resourceName).string(),
- newConfig.toString().string());
+ if (bundle->getVerbose()) {
+ SourcePos(target->getSourceFile(), -1).printf(
+ "using v%d attributes; synthesizing resource %s:%s/%s for configuration %s.",
+ SDK_L,
+ mAssets->getPackage().string(),
+ newFile->getResourceType().string(),
+ String8(resourceName).string(),
+ newConfig.toString().string());
+ }
addEntry(SourcePos(),
String16(mAssets->getPackage()),
@@ -4466,12 +4470,14 @@
sp<XMLNode> node = attrsToRemove[i].key;
size_t attrIndex = attrsToRemove[i].value;
const XMLNode::attribute_entry& ae = node->getAttributes()[attrIndex];
- SourcePos(node->getFilename(), node->getStartLineNumber()).printf(
- "removing attribute %s%s%s from <%s>",
- String8(ae.ns).string(),
- (ae.ns.size() == 0 ? "" : ":"),
- String8(ae.name).string(),
- String8(node->getElementName()).string());
+ if (bundle->getVerbose()) {
+ SourcePos(node->getFilename(), node->getStartLineNumber()).printf(
+ "removing attribute %s%s%s from <%s>",
+ String8(ae.ns).string(),
+ (ae.ns.size() == 0 ? "" : ":"),
+ String8(ae.name).string(),
+ String8(node->getElementName()).string());
+ }
node->removeAttribute(attrIndex);
}
diff --git a/tools/aidl/aidl.cpp b/tools/aidl/aidl.cpp
index 9c1867e..45dd23b 100644
--- a/tools/aidl/aidl.cpp
+++ b/tools/aidl/aidl.cpp
@@ -16,6 +16,7 @@
#ifdef HAVE_MS_C_RUNTIME
#include <io.h>
+#include <direct.h>
#include <sys/stat.h>
#endif
diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
index aaba545..28a109d 100644
--- a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java
@@ -23,7 +23,6 @@
import com.android.ide.common.rendering.api.StyleResourceValue;
import com.android.internal.util.XmlUtils;
import com.android.layoutlib.bridge.Bridge;
-import com.android.layoutlib.bridge.BridgeConstants;
import com.android.layoutlib.bridge.android.BridgeContext;
import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
import com.android.layoutlib.bridge.impl.ParserFactory;
@@ -142,16 +141,8 @@
*/
@Override
public CharSequence getText(int index) {
- if (index < 0 || index >= mResourceData.length) {
- return null;
- }
-
- if (mResourceData[index] != null) {
- // FIXME: handle styled strings!
- return mResourceData[index].getValue();
- }
-
- return null;
+ // FIXME: handle styled strings!
+ return getString(index);
}
/**
@@ -164,15 +155,14 @@
*/
@Override
public String getString(int index) {
- if (index < 0 || index >= mResourceData.length) {
+ if (!hasValue(index)) {
return null;
}
-
- if (mResourceData[index] != null) {
- return mResourceData[index].getValue();
- }
-
- return null;
+ // As unfortunate as it is, it's possible to use enums with all attribute formats,
+ // not just integers/enums. So, we need to search the enums always. In case
+ // enums are used, the returned value is an integer.
+ Integer v = resolveEnumAttribute(index);
+ return v == null ? mResourceData[index].getValue() : String.valueOf((int) v);
}
/**
@@ -185,20 +175,9 @@
*/
@Override
public boolean getBoolean(int index, boolean defValue) {
- if (index < 0 || index >= mResourceData.length) {
- return defValue;
- }
+ String s = getString(index);
+ return s == null ? defValue : XmlUtils.convertValueToBoolean(s, defValue);
- if (mResourceData[index] == null) {
- return defValue;
- }
-
- String s = mResourceData[index].getValue();
- if (s != null) {
- return XmlUtils.convertValueToBoolean(s, defValue);
- }
-
- return defValue;
}
/**
@@ -211,75 +190,18 @@
*/
@Override
public int getInt(int index, int defValue) {
- if (index < 0 || index >= mResourceData.length) {
- return defValue;
- }
-
- if (mResourceData[index] == null) {
- return defValue;
- }
-
- String s = mResourceData[index].getValue();
-
- if (s == null || s.length() == 0) {
- return defValue;
- }
-
+ String s = getString(index);
try {
- return XmlUtils.convertValueToInt(s, defValue);
+ if (s != null) {
+ return XmlUtils.convertValueToInt(s, defValue);
+ }
} catch (NumberFormatException e) {
- // pass
+ Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+ String.format("\"%1$s\" in attribute \"%2$s\" is not a valid integer",
+ s, mNames[index]),
+ null);
+ return defValue;
}
-
- // Field is not null and is not an integer.
- // Check for possible constants and try to find them.
- return (int) resolveEnumAttribute(index, defValue);
- }
-
- /**
- * Searches for the string in the attributes (flag or enums) and returns the integer.
- * If found, it will return an integer matching the value. However, if the value is not found,
- * it returns {@code defValue} which may be a float.
- *
- * @param index Index of attribute to retrieve.
- * @param defValue Value to return if the attribute is not found.
- *
- * @return Attribute int value, or defValue if not defined.
- */
- private float resolveEnumAttribute(int index, float defValue) {
- // Get the map of attribute-constant -> IntegerValue
- Map<String, Integer> map = null;
- if (mIsFramework[index]) {
- map = Bridge.getEnumValues(mNames[index]);
- } else {
- // get the styleable matching the resolved name
- RenderResources res = mContext.getRenderResources();
- ResourceValue attr = res.getProjectResource(ResourceType.ATTR, mNames[index]);
- if (attr instanceof AttrResourceValue) {
- map = ((AttrResourceValue) attr).getAttributeValues();
- }
- }
-
- if (map != null) {
- // accumulator to store the value of the 1+ constants.
- int result = 0;
-
- // split the value in case this is a mix of several flags.
- String[] keywords = mResourceData[index].getValue().split("\\|");
- for (String keyword : keywords) {
- Integer i = map.get(keyword.trim());
- if (i != null) {
- result |= i;
- } else {
- Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
- String.format(
- "\"%s\" in attribute \"%2$s\" is not a valid value",
- keyword, mNames[index]), null);
- }
- }
- return result;
- }
-
return defValue;
}
@@ -292,27 +214,16 @@
*/
@Override
public float getFloat(int index, float defValue) {
- if (index < 0 || index >= mResourceData.length) {
- return defValue;
- }
-
- if (mResourceData[index] == null) {
- return defValue;
- }
-
- String s = mResourceData[index].getValue();
-
- if (s != null) {
- try {
- return Float.parseFloat(s);
- } catch (NumberFormatException e) {
- Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
- String.format(
- "\"%s\" in attribute \"%2$s\" cannot be converted to float.",
- s, mNames[index]), null);
-
- // we'll return the default value below.
+ String s = getString(index);
+ try {
+ if (s != null) {
+ return Float.parseFloat(s);
}
+ } catch (NumberFormatException e) {
+ Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+ String.format("\"%1$s\" in attribute \"%2$s\" cannot be converted to float.",
+ s, mNames[index]),
+ null);
}
return defValue;
}
@@ -359,11 +270,7 @@
*/
@Override
public ColorStateList getColorStateList(int index) {
- if (index < 0 || index >= mResourceData.length) {
- return null;
- }
-
- if (mResourceData[index] == null) {
+ if (!hasValue(index)) {
return null;
}
@@ -443,27 +350,25 @@
*/
@Override
public float getDimension(int index, float defValue) {
- if (index < 0 || index >= mResourceData.length) {
- return defValue;
- }
-
- if (mResourceData[index] == null) {
- return defValue;
- }
-
- String s = mResourceData[index].getValue();
-
+ String s = getString(index);
if (s == null) {
return defValue;
}
+ // Check if the value is a magic constant that doesn't require a unit.
+ try {
+ int i = Integer.parseInt(s);
+ if (i == LayoutParams.MATCH_PARENT || i == LayoutParams.WRAP_CONTENT) {
+ return i;
+ }
+ } catch (NumberFormatException ignored) {
+ // pass
+ }
if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true)) {
return mValue.getDimension(mBridgeResources.getDisplayMetrics());
}
- // looks like we were unable to resolve the dimension value. Check if it is an attribute
- // constant.
- return resolveEnumAttribute(index, defValue);
+ return defValue;
}
/**
@@ -511,16 +416,13 @@
try {
return getDimension(index);
} catch (RuntimeException e) {
- if (mResourceData[index] != null) {
- String s = mResourceData[index].getValue();
+ String s = getString(index);
- if (s != null) {
- // looks like we were unable to resolve the dimension value
- Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
- String.format(
- "\"%1$s\" in attribute \"%2$s\" is not a valid format.",
+ if (s != null) {
+ // looks like we were unable to resolve the dimension value
+ Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
+ String.format("\"%1$s\" in attribute \"%2$s\" is not a valid format.",
s, mNames[index]), null);
- }
}
return defValue;
@@ -563,21 +465,19 @@
}
private int getDimension(int index) {
- if (mResourceData[index] == null) {
- throw new RuntimeException();
- }
-
- String s = mResourceData[index].getValue();
-
+ String s = getString(index);
if (s == null) {
throw new RuntimeException();
- } else if (s.equals(BridgeConstants.MATCH_PARENT) ||
- s.equals(BridgeConstants.FILL_PARENT)) {
- return LayoutParams.MATCH_PARENT;
- } else if (s.equals(BridgeConstants.WRAP_CONTENT)) {
- return LayoutParams.WRAP_CONTENT;
}
-
+ // Check if the value is a magic constant that doesn't require a unit.
+ try {
+ int i = Integer.parseInt(s);
+ if (i == LayoutParams.MATCH_PARENT || i == LayoutParams.WRAP_CONTENT) {
+ return i;
+ }
+ } catch (NumberFormatException ignored) {
+ // pass
+ }
if (ResourceHelper.parseFloatAttribute(mNames[index], s, mValue, true)) {
float f = mValue.getDimension(mBridgeResources.getDisplayMetrics());
@@ -607,15 +507,7 @@
*/
@Override
public float getFraction(int index, int base, int pbase, float defValue) {
- if (index < 0 || index >= mResourceData.length) {
- return defValue;
- }
-
- if (mResourceData[index] == null) {
- return defValue;
- }
-
- String value = mResourceData[index].getValue();
+ String value = getString(index);
if (value == null) {
return defValue;
}
@@ -766,20 +658,11 @@
*/
@Override
public Drawable getDrawable(int index) {
- if (index < 0 || index >= mResourceData.length) {
- return null;
- }
-
- if (mResourceData[index] == null) {
+ if (!hasValue(index)) {
return null;
}
ResourceValue value = mResourceData[index];
- String stringValue = value.getValue();
- if (stringValue == null) {
- return null;
- }
-
return ResourceHelper.getDrawable(value, mContext);
}
@@ -796,15 +679,7 @@
*/
@Override
public CharSequence[] getTextArray(int index) {
- if (index < 0 || index >= mResourceData.length) {
- return null;
- }
-
- if (mResourceData[index] == null) {
- return null;
- }
-
- String value = mResourceData[index].getValue();
+ String value = getString(index);
if (value != null) {
return new CharSequence[] { value };
}
@@ -837,17 +712,8 @@
*/
@Override
public boolean getValue(int index, TypedValue outValue) {
- if (index < 0 || index >= mResourceData.length) {
- return false;
- }
-
- if (mResourceData[index] == null) {
- return false;
- }
-
- String s = mResourceData[index].getValue();
-
- return ResourceHelper.parseFloatAttribute(mNames[index], s, outValue, false);
+ String s = getString(index);
+ return s != null && ResourceHelper.parseFloatAttribute(mNames[index], s, outValue, false);
}
/**
@@ -859,12 +725,7 @@
*/
@Override
public boolean hasValue(int index) {
- //noinspection SimplifiableIfStatement
- if (index < 0 || index >= mResourceData.length) {
- return false;
- }
-
- return mResourceData[index] != null;
+ return index >= 0 && index < mResourceData.length && mResourceData[index] != null;
}
/**
@@ -912,6 +773,52 @@
return Arrays.toString(mResourceData);
}
+ /**
+ * Searches for the string in the attributes (flag or enums) and returns the integer.
+ * If found, it will return an integer matching the value.
+ *
+ * @param index Index of attribute to retrieve.
+ *
+ * @return Attribute int value, or null if not defined.
+ */
+ private Integer resolveEnumAttribute(int index) {
+ // Get the map of attribute-constant -> IntegerValue
+ Map<String, Integer> map = null;
+ if (mIsFramework[index]) {
+ map = Bridge.getEnumValues(mNames[index]);
+ } else {
+ // get the styleable matching the resolved name
+ RenderResources res = mContext.getRenderResources();
+ ResourceValue attr = res.getProjectResource(ResourceType.ATTR, mNames[index]);
+ if (attr instanceof AttrResourceValue) {
+ map = ((AttrResourceValue) attr).getAttributeValues();
+ }
+ }
+
+ if (map != null) {
+ // accumulator to store the value of the 1+ constants.
+ int result = 0;
+ boolean found = false;
+
+ // split the value in case this is a mix of several flags.
+ String[] keywords = mResourceData[index].getValue().split("\\|");
+ for (String keyword : keywords) {
+ Integer i = map.get(keyword.trim());
+ if (i != null) {
+ result |= i;
+ found = true;
+ }
+ // TODO: We should act smartly and log a warning for incorrect keywords. However,
+ // this method is currently called even if the resourceValue is not an enum.
+ }
+ if (found) {
+ return result;
+ }
+ }
+
+ return null;
+ }
+
static TypedArray obtain(Resources res, int len) {
return res instanceof BridgeResources ?
new BridgeTypedArray(((BridgeResources) res), null, len, true) : null;
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
index 16b54f1..82a5130 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
@@ -73,8 +73,7 @@
public static String getTime(int platformVersion) {
if (platformVersion == 0) {
- // TODO: revisit when the version is selected.
- return "4:57";
+ return "5:00";
}
if (platformVersion < GINGERBREAD) {
return "2:20";
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
index 99ae7c9..22f8e1c 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java
@@ -16,6 +16,7 @@
package com.android.layoutlib.bridge.impl;
+import com.android.annotations.NonNull;
import com.android.ide.common.rendering.api.DensityBasedResourceValue;
import com.android.ide.common.rendering.api.LayoutLog;
import com.android.ide.common.rendering.api.RenderResources;
@@ -358,7 +359,7 @@
* @param requireUnit whether the value is expected to contain a unit.
* @return true if success.
*/
- public static boolean parseFloatAttribute(String attribute, String value,
+ public static boolean parseFloatAttribute(String attribute, @NonNull String value,
TypedValue outValue, boolean requireUnit) {
assert !requireUnit || attribute != null;
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 4f5f31a..53756d2 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -1072,7 +1072,7 @@
sbuf.append(",ipfail=");
sbuf.append(result.numIpConfigFailures);
}
- sbuf.append(result.autoJoinStatus).append("} ");
+ sbuf.append(",").append(result.autoJoinStatus).append("} ");
}
sbuf.append('\n');
}
@@ -1222,18 +1222,15 @@
if (allowCached && mCachedConfigKey != null) {
key = mCachedConfigKey;
} else {
- key = this.SSID;
- if (key == null)
- key = "";
- if (this.wepKeys[0] != null) {
- key = key + "-WEP";
- }
- if (this.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
- key = key + "-" + KeyMgmt.strings[KeyMgmt.WPA_PSK];
- }
- if (this.allowedKeyManagement.get(KeyMgmt.WPA_EAP) ||
- this.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
- key = key + "-" + KeyMgmt.strings[KeyMgmt.WPA_EAP];
+ if (allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
+ key = SSID + KeyMgmt.strings[KeyMgmt.WPA_PSK];
+ } else if (allowedKeyManagement.get(KeyMgmt.WPA_EAP) ||
+ allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
+ key = SSID + KeyMgmt.strings[KeyMgmt.WPA_EAP];
+ } else if (wepKeys[0] != null) {
+ key = SSID + "WEP";
+ } else {
+ key = SSID + KeyMgmt.strings[KeyMgmt.NONE];
}
mCachedConfigKey = key;
}