Merge "Update RemoteController info when enabling/disabling it" into klp-dev
diff --git a/api/current.txt b/api/current.txt
index 548433e..9251d39 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -7255,6 +7255,7 @@
method public abstract java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(java.lang.String, int);
method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
+ method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
method public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
method public abstract deprecated void removePackageFromPreferred(java.lang.String);
@@ -7420,6 +7421,7 @@
ctor public ProviderInfo();
ctor public ProviderInfo(android.content.pm.ProviderInfo);
method public int describeContents();
+ method public void dump(android.util.Printer, java.lang.String);
field public static final android.os.Parcelable.Creator CREATOR;
field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
field public java.lang.String authority;
@@ -7453,6 +7455,7 @@
field public java.lang.CharSequence nonLocalizedLabel;
field public int preferredOrder;
field public int priority;
+ field public android.content.pm.ProviderInfo providerInfo;
field public java.lang.String resolvePackageName;
field public android.content.pm.ServiceInfo serviceInfo;
field public int specificIndex;
@@ -20982,6 +20985,7 @@
field public static final java.lang.String EXTRA_ERROR = "error";
field public static final java.lang.String EXTRA_INFO = "info";
field public static final java.lang.String EXTRA_LOADING = "loading";
+ field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
}
public static final class DocumentsContract.Document {
@@ -24477,6 +24481,7 @@
method public java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(java.lang.String, int);
method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
method public java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
method public java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
method public void removePackageFromPreferred(java.lang.String);
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 55c66726..b505d4f 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -585,6 +585,22 @@
}
@Override
+ public List<ResolveInfo> queryIntentContentProvidersAsUser(
+ Intent intent, int flags, int userId) {
+ try {
+ return mPM.queryIntentContentProviders(intent,
+ intent.resolveTypeIfNeeded(mContext.getContentResolver()), flags, userId);
+ } catch (RemoteException e) {
+ throw new RuntimeException("Package manager has died", e);
+ }
+ }
+
+ @Override
+ public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
+ return queryIntentContentProvidersAsUser(intent, flags, mContext.getUserId());
+ }
+
+ @Override
public ProviderInfo resolveContentProvider(String name,
int flags) {
try {
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index acd4ffa..267fb2a 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -123,6 +123,9 @@
List<ResolveInfo> queryIntentServices(in Intent intent,
String resolvedType, int flags, int userId);
+ List<ResolveInfo> queryIntentContentProviders(in Intent intent,
+ String resolvedType, int flags, int userId);
+
/**
* This implements getInstalledPackages via a "last returned row"
* mechanism that is not exposed in the API. This is to get around the IPC
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index b63db8a..8b8c58b 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -2210,6 +2210,24 @@
public abstract List<ResolveInfo> queryIntentServicesAsUser(Intent intent,
int flags, int userId);
+ /** {@hide} */
+ public abstract List<ResolveInfo> queryIntentContentProvidersAsUser(
+ Intent intent, int flags, int userId);
+
+ /**
+ * Retrieve all providers that can match the given intent.
+ *
+ * @param intent An intent containing all of the desired specification
+ * (action, data, type, category, and/or component).
+ * @param flags Additional option flags.
+ * @return A List<ResolveInfo> containing one entry for each matching
+ * ProviderInfo. These are ordered from best to worst match. If
+ * there are no matching providers, an empty list is returned.
+ * @see #GET_INTENT_FILTERS
+ * @see #GET_RESOLVED_FILTER
+ */
+ public abstract List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags);
+
/**
* Find a single content provider by its base path name.
*
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index b489ee9e..17d13e5 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -2819,7 +2819,14 @@
continue;
}
- if (parser.getName().equals("meta-data")) {
+ if (parser.getName().equals("intent-filter")) {
+ ProviderIntentInfo intent = new ProviderIntentInfo(outInfo);
+ if (!parseIntent(res, parser, attrs, true, intent, outError)) {
+ return false;
+ }
+ outInfo.intents.add(intent);
+
+ } else if (parser.getName().equals("meta-data")) {
if ((outInfo.metaData=parseMetaData(res, parser, attrs,
outInfo.metaData, outError)) == null) {
return false;
@@ -3982,7 +3989,7 @@
return si;
}
- public final static class Provider extends Component {
+ public final static class Provider extends Component<ProviderIntentInfo> {
public final ProviderInfo info;
public boolean syncable;
@@ -4116,6 +4123,24 @@
}
}
+ public static final class ProviderIntentInfo extends IntentInfo {
+ public final Provider provider;
+
+ public ProviderIntentInfo(Provider provider) {
+ this.provider = provider;
+ }
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder(128);
+ sb.append("ProviderIntentInfo{");
+ sb.append(Integer.toHexString(System.identityHashCode(this)));
+ sb.append(' ');
+ provider.appendComponentShortName(sb);
+ sb.append('}');
+ return sb.toString();
+ }
+ }
+
/**
* @hide
*/
diff --git a/core/java/android/content/pm/ProviderInfo.java b/core/java/android/content/pm/ProviderInfo.java
index a534176..f6ea058 100644
--- a/core/java/android/content/pm/ProviderInfo.java
+++ b/core/java/android/content/pm/ProviderInfo.java
@@ -19,6 +19,7 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PatternMatcher;
+import android.util.Printer;
/**
* Holds information about a specific
@@ -112,7 +113,13 @@
flags = orig.flags;
isSyncable = orig.isSyncable;
}
-
+
+ public void dump(Printer pw, String prefix) {
+ super.dumpFront(pw, prefix);
+ pw.println(prefix + "authority=" + authority);
+ pw.println(prefix + "flags=0x" + Integer.toHexString(flags));
+ }
+
public int describeContents() {
return 0;
}
diff --git a/core/java/android/content/pm/ResolveInfo.java b/core/java/android/content/pm/ResolveInfo.java
index e360e40..1ff41c0 100644
--- a/core/java/android/content/pm/ResolveInfo.java
+++ b/core/java/android/content/pm/ResolveInfo.java
@@ -23,6 +23,7 @@
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Printer;
+import android.util.Slog;
import java.text.Collator;
import java.util.Comparator;
@@ -34,20 +35,30 @@
* <intent> tags.
*/
public class ResolveInfo implements Parcelable {
+ private static final String TAG = "ResolveInfo";
+
/**
- * The activity or broadcast receiver that corresponds to this resolution match,
- * if this resolution is for an activity or broadcast receiver. One and only one of this and
- * serviceInfo must be non-null.
+ * The activity or broadcast receiver that corresponds to this resolution
+ * match, if this resolution is for an activity or broadcast receiver.
+ * Exactly one of {@link #activityInfo}, {@link #serviceInfo}, or
+ * {@link #providerInfo} will be non-null.
*/
public ActivityInfo activityInfo;
/**
- * The service that corresponds to this resolution match, if this
- * resolution is for a service. One and only one of this and
- * activityInfo must be non-null.
+ * The service that corresponds to this resolution match, if this resolution
+ * is for a service. Exactly one of {@link #activityInfo},
+ * {@link #serviceInfo}, or {@link #providerInfo} will be non-null.
*/
public ServiceInfo serviceInfo;
-
+
+ /**
+ * The provider that corresponds to this resolution match, if this
+ * resolution is for a provider. Exactly one of {@link #activityInfo},
+ * {@link #serviceInfo}, or {@link #providerInfo} will be non-null.
+ */
+ public ProviderInfo providerInfo;
+
/**
* The IntentFilter that was matched for this ResolveInfo.
*/
@@ -120,6 +131,13 @@
*/
public boolean system;
+ private ComponentInfo getComponentInfo() {
+ if (activityInfo != null) return activityInfo;
+ if (serviceInfo != null) return serviceInfo;
+ if (providerInfo != null) return providerInfo;
+ throw new IllegalStateException("Missing ComponentInfo!");
+ }
+
/**
* Retrieve the current textual label associated with this resolution. This
* will call back on the given PackageManager to load the label from
@@ -142,7 +160,7 @@
return label.toString().trim();
}
}
- ComponentInfo ci = activityInfo != null ? activityInfo : serviceInfo;
+ ComponentInfo ci = getComponentInfo();
ApplicationInfo ai = ci.applicationInfo;
if (labelRes != 0) {
label = pm.getText(ci.packageName, labelRes, ai);
@@ -176,7 +194,7 @@
return dr;
}
}
- ComponentInfo ci = activityInfo != null ? activityInfo : serviceInfo;
+ ComponentInfo ci = getComponentInfo();
ApplicationInfo ai = ci.applicationInfo;
if (icon != 0) {
dr = pm.getDrawable(ci.packageName, icon, ai);
@@ -196,8 +214,8 @@
*/
public final int getIconResource() {
if (icon != 0) return icon;
- if (activityInfo != null) return activityInfo.getIconResource();
- if (serviceInfo != null) return serviceInfo.getIconResource();
+ final ComponentInfo ci = getComponentInfo();
+ if (ci != null) return ci.getIconResource();
return 0;
}
@@ -225,6 +243,9 @@
} else if (serviceInfo != null) {
pw.println(prefix + "ServiceInfo:");
serviceInfo.dump(pw, prefix + " ");
+ } else if (providerInfo != null) {
+ pw.println(prefix + "ProviderInfo:");
+ providerInfo.dump(pw, prefix + " ");
}
}
@@ -234,6 +255,7 @@
public ResolveInfo(ResolveInfo orig) {
activityInfo = orig.activityInfo;
serviceInfo = orig.serviceInfo;
+ providerInfo = orig.providerInfo;
filter = orig.filter;
priority = orig.priority;
preferredOrder = orig.preferredOrder;
@@ -247,7 +269,7 @@
}
public String toString() {
- ComponentInfo ci = activityInfo != null ? activityInfo : serviceInfo;
+ final ComponentInfo ci = getComponentInfo();
StringBuilder sb = new StringBuilder(128);
sb.append("ResolveInfo{");
sb.append(Integer.toHexString(System.identityHashCode(this)));
@@ -278,6 +300,9 @@
} else if (serviceInfo != null) {
dest.writeInt(2);
serviceInfo.writeToParcel(dest, parcelableFlags);
+ } else if (providerInfo != null) {
+ dest.writeInt(3);
+ providerInfo.writeToParcel(dest, parcelableFlags);
} else {
dest.writeInt(0);
}
@@ -309,18 +334,21 @@
};
private ResolveInfo(Parcel source) {
+ activityInfo = null;
+ serviceInfo = null;
+ providerInfo = null;
switch (source.readInt()) {
case 1:
activityInfo = ActivityInfo.CREATOR.createFromParcel(source);
- serviceInfo = null;
break;
case 2:
serviceInfo = ServiceInfo.CREATOR.createFromParcel(source);
- activityInfo = null;
+ break;
+ case 3:
+ providerInfo = ProviderInfo.CREATOR.createFromParcel(source);
break;
default:
- activityInfo = null;
- serviceInfo = null;
+ Slog.w(TAG, "Missing ComponentInfo!");
break;
}
if (source.readInt() != 0) {
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index 85fa7d6..4fe2c4d 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -487,6 +487,12 @@
* Gain factor from electrons to raw units when
* ISO=100
* </p>
+ *
+ * <b>Optional</b> - This value may be null on some devices.
+ *
+ * <b>{@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL}</b> -
+ * Present on all devices that report being FULL level hardware devices in the
+ * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL HARDWARE_LEVEL} key.
*/
public static final Key<Rational> SENSOR_BASE_GAIN_FACTOR =
new Key<Rational>("android.sensor.baseGainFactor", Rational.class);
@@ -502,6 +508,12 @@
* values above this, it can be a mix of analog and
* digital
* </p>
+ *
+ * <b>Optional</b> - This value may be null on some devices.
+ *
+ * <b>{@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL}</b> -
+ * Present on all devices that report being FULL level hardware devices in the
+ * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL HARDWARE_LEVEL} key.
*/
public static final Key<Integer> SENSOR_MAX_ANALOG_SENSITIVITY =
new Key<Integer>("android.sensor.maxAnalogSensitivity", int.class);
diff --git a/core/java/android/hardware/camera2/CameraDevice.java b/core/java/android/hardware/camera2/CameraDevice.java
index a9a72b0..7095e4d 100644
--- a/core/java/android/hardware/camera2/CameraDevice.java
+++ b/core/java/android/hardware/camera2/CameraDevice.java
@@ -197,26 +197,33 @@
* if the format is user-visible, it must be one of android.scaler.availableFormats;
* and the size must be one of android.scaler.available[Processed|Jpeg]Sizes).</p>
*
- * <p>To change the output, the camera device must be idle. The device is considered
- * to be idle once all in-flight and pending capture requests have been processed,
- * and all output image buffers from the captures have been sent to their destination
- * Surfaces.</p>
+ * <p>When this method is called with valid Surfaces, the device will transition to the {@link
+ * StateListener#onBusy busy state}. Once configuration is complete, the device will transition
+ * into the {@link StateListener#onIdle idle state}. Capture requests using the newly-configured
+ * Surfaces may then be submitted with {@link #capture}, {@link #captureBurst}, {@link
+ * #setRepeatingRequest}, or {@link #setRepeatingBurst}.</p>
*
- * <p>To reach an idle state without cancelling any submitted captures, first
- * stop any repeating request/burst with {@link #stopRepeating}, and then
- * wait for the {@link StateListener#onIdle} callback to be
- * called. To idle as fast as possible, use {@link #flush} and wait for the
- * idle callback.</p>
+ * <p>If this method is called while the camera device is still actively processing previously
+ * submitted captures, then the following sequence of events occurs: The device transitions to
+ * the busy state and calls the {@link StateListener#onBusy} callback. Second, if a repeating
+ * request is set it is cleared. Third, the device finishes up all in-flight and pending
+ * requests. Finally, once the device is idle, it then reconfigures its outputs, and calls the
+ * {@link StateListener#onIdle} method once it is again ready to accept capture
+ * requests. Therefore, no submitted work is discarded. To idle as fast as possible, use {@link
+ * #flush} and wait for the idle callback before calling configureOutputs. This will discard
+ * work, but reaches the new configuration sooner.</p>
*
* <p>Using larger resolution outputs, or more outputs, can result in slower
* output rate from the device.</p>
*
- * <p>Configuring the outputs with an empty or null list will transition
- * the camera into an {@link StateListener#onUnconfigured unconfigured state}.
- * </p>
+ * <p>Configuring the outputs with an empty or null list will transition the camera into an
+ * {@link StateListener#onUnconfigured unconfigured state} instead of the {@link
+ * StateListener#onIdle idle state}. </p>
*
* <p>Calling configureOutputs with the same arguments as the last call to
- * configureOutputs has no effect.</p>
+ * configureOutputs has no effect, and the {@link StateListener#onBusy busy}
+ * and {@link StateListener#onIdle idle} state transitions will happen
+ * immediately.</p>
*
* @param outputs The new set of Surfaces that should be made available as
* targets for captured image data.
@@ -228,7 +235,10 @@
* @throws IllegalStateException if the camera device is not idle, or
* if the camera device has been closed
*
+ * @see StateListener#onBusy
* @see StateListener#onIdle
+ * @see StateListener#onActive
+ * @see StateListener#onUnconfigured
* @see #stopRepeating
* @see #flush
*/
@@ -516,31 +526,6 @@
public void waitUntilIdle() throws CameraAccessException;
/**
- * Set the listener object to call when an asynchronous device event occurs,
- * such as errors or idle notifications.
- *
- * <p>The events reported here are device-wide; notifications about
- * individual capture requests or capture results are reported through
- * {@link CaptureListener}.</p>
- *
- * <p>If the camera device is idle when the listener is set, then the
- * {@link StateListener#onIdle} method will be immediately called,
- * even if the device has never been active before.
- * </p>
- *
- * @param listener the CameraDeviceListener to send device-level event
- * notifications to. Setting this to null will stop notifications.
- * @param handler the handler on which the listener should be invoked, or
- * {@code null} to use the current thread's {@link android.os.Looper looper}.
- *
- * @throws IllegalArgumentException if handler is null, the listener is
- * not null, and the calling thread has no looper
- *
- * @hide
- */
- public void setDeviceListener(StateListener listener, Handler handler);
-
- /**
* Flush all captures currently pending and in-progress as fast as
* possible.
*
@@ -577,13 +562,24 @@
public void flush() throws CameraAccessException;
/**
- * Close the connection to this camera device. After this call, all calls to
+ * Close the connection to this camera device.
+ *
+ * <p>After this call, all calls to
* the camera device interface will throw a {@link IllegalStateException},
- * except for calls to close().
+ * except for calls to close(). Once the device has fully shut down, the
+ * {@link StateListener#onClosed} callback will be called, and the camera is
+ * free to be re-opened.</p>
+ *
+ * <p>After this call, besides the final {@link StateListener#onClosed} call, no calls to the
+ * device's {@link StateListener} will occur, and any remaining submitted capture requests will
+ * not fire their {@link CaptureListener} callbacks.</p>
+ *
+ * <p>To shut down as fast as possible, call the {@link #flush} method and then {@link #close}
+ * once the flush completes. This will discard some capture requests, but results in faster
+ * shutdown.</p>
*/
@Override
public void close();
- // TODO: We should decide on the behavior of in-flight requests should be on close.
/**
* <p>A listener for tracking the progress of a {@link CaptureRequest}
@@ -713,6 +709,9 @@
* A listener for notifications about the state of a camera
* device.
*
+ * <p>A listener must be provided to the {@link CameraManager#openCamera}
+ * method to open a camera device.</p>
+ *
* <p>These events include notifications about the device becoming idle (
* allowing for {@link #configureOutputs} to be called), about device
* disconnection, and about unexpected device errors.</p>
@@ -722,7 +721,7 @@
* the {@link #capture}, {@link #captureBurst}, {@link
* #setRepeatingRequest}, or {@link #setRepeatingBurst} methods.
*
- * @see #setDeviceListener
+ * @see CameraManager#openCamera
*/
public static abstract class StateListener {
/**
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index f5ee367..65b6c7a 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -197,6 +197,8 @@
* {@link #openCamera}.
*
* @param cameraId The unique identifier of the camera device to open
+ * @param listener The listener for the camera. Must not be null.
+ * @param handler The handler to call the listener on. Must not be null.
*
* @throws CameraAccessException if the camera is disabled by device policy,
* or too many camera devices are already open, or the cameraId does not match
@@ -204,11 +206,14 @@
*
* @throws SecurityException if the application does not have permission to
* access the camera
+ * @throws IllegalArgumentException if listener or handler is null.
*
* @see #getCameraIdList
* @see android.app.admin.DevicePolicyManager#setCameraDisabled
*/
- private CameraDevice openCamera(String cameraId) throws CameraAccessException {
+ private void openCameraDeviceUserAsync(String cameraId,
+ CameraDevice.StateListener listener, Handler handler)
+ throws CameraAccessException {
try {
synchronized (mLock) {
@@ -216,7 +221,10 @@
ICameraDeviceUser cameraUser;
android.hardware.camera2.impl.CameraDevice device =
- new android.hardware.camera2.impl.CameraDevice(cameraId);
+ new android.hardware.camera2.impl.CameraDevice(
+ cameraId,
+ listener,
+ handler);
BinderHolder holder = new BinderHolder();
mCameraService.connectDevice(device.getCallbacks(),
@@ -225,10 +233,9 @@
cameraUser = ICameraDeviceUser.Stub.asInterface(holder.getBinder());
// TODO: factor out listener to be non-nested, then move setter to constructor
+ // For now, calling setRemoteDevice will fire initial
+ // onOpened/onUnconfigured callbacks.
device.setRemoteDevice(cameraUser);
-
- return device;
-
}
} catch (NumberFormatException e) {
@@ -238,7 +245,6 @@
throw e.asChecked();
} catch (RemoteException e) {
// impossible
- return null;
}
}
@@ -303,16 +309,7 @@
}
}
- final CameraDevice camera = openCamera(cameraId);
- camera.setDeviceListener(listener, handler);
-
- // TODO: make truly async in the camera service
- handler.post(new Runnable() {
- @Override
- public void run() {
- listener.onOpened(camera);
- }
- });
+ openCameraDeviceUserAsync(cameraId, listener, handler);
}
/**
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index c9626f1..dbd0457 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -60,11 +60,6 @@
@Override
public <T> T get(Key<T> key) {
- if (key == STATISTICS_FACES) { // Don't throw IllegalArgumentException
- // TODO: Implement android.statistics.faces
- return null;
- }
-
return mResults.get(key);
}
@@ -727,6 +722,12 @@
* The thermal diode being queried should be inside the sensor PCB, or
* somewhere close to it.
* </p>
+ *
+ * <b>Optional</b> - This value may be null on some devices.
+ *
+ * <b>{@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL}</b> -
+ * Present on all devices that report being FULL level hardware devices in the
+ * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL HARDWARE_LEVEL} key.
*/
public static final Key<Float> SENSOR_TEMPERATURE =
new Key<Float>("android.sensor.temperature", float.class);
diff --git a/core/java/android/hardware/camera2/Face.java b/core/java/android/hardware/camera2/Face.java
index ef068ca..ded8839d 100644
--- a/core/java/android/hardware/camera2/Face.java
+++ b/core/java/android/hardware/camera2/Face.java
@@ -58,6 +58,9 @@
* Create a new face with all fields set.
*
* <p>The id, leftEyePosition, rightEyePosition, and mouthPosition are considered optional.
+ * They are only required when the {@link CaptureResult} reports that the value of key
+ * {@link CaptureResult#STATISTICS_FACE_DETECT_MODE} is
+ * {@link CameraMetadata#STATISTICS_FACE_DETECT_MODE_FULL}.
* If the id is {@value #ID_UNSUPPORTED} then the leftEyePosition, rightEyePosition, and
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
* rightEyePosition, and mouthPosition may be independently null or not-null.</p>
@@ -107,7 +110,11 @@
* <p>The id, leftEyePosition, rightEyePosition, and mouthPosition are considered optional.
* If the id is {@value #ID_UNSUPPORTED} then the leftEyePosition, rightEyePosition, and
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
- * rightEyePosition, and mouthPosition may be independently null or not-null.</p>
+ * rightEyePosition, and mouthPosition may be independently null or not-null. When devices
+ * report the value of key {@link CaptureResult#STATISTICS_FACE_DETECT_MODE} as
+ * {@link CameraMetadata#STATISTICS_FACE_DETECT_MODE_SIMPLE} in {@link CaptureResult},
+ * the face id of each face is expected to be {@value #ID_UNSUPPORTED}, the leftEyePosition,
+ * rightEyePosition, and mouthPositions are expected to be {@code null} for each face.</p>
*
* @param bounds Bounds of the face.
* @param score Confidence level between {@value #SCORE_MIN}-{@value #SCORE_MAX}.
@@ -168,7 +175,10 @@
* <p>This is an optional field, may not be supported on all devices.
* If the id is {@value #ID_UNSUPPORTED} then the leftEyePosition, rightEyePosition, and
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
- * rightEyePosition, and mouthPosition may be independently null or not-null.</p>
+ * rightEyePosition, and mouthPosition may be independently null or not-null. When devices
+ * report the value of key {@link CaptureResult#STATISTICS_FACE_DETECT_MODE} as
+ * {@link CameraMetadata#STATISTICS_FACE_DETECT_MODE_SIMPLE} in {@link CaptureResult},
+ * the face id of each face is expected to be {@value #ID_UNSUPPORTED}.</p>
*
* <p>This value will either be {@value #ID_UNSUPPORTED} or
* otherwise greater than {@code 0}.</p>
@@ -219,7 +229,7 @@
* field, may not be supported on all devices. If not
* supported, the value will always be set to null.
* This value will always be null only if {@link #getId()} returns
- * {@value #ID_UNSUPPORTED}.</p> them are.
+ * {@value #ID_UNSUPPORTED}.</p>
* </p>
*
* @return The mouth position, or {@code null} if unknown.
diff --git a/core/java/android/hardware/camera2/impl/CameraDevice.java b/core/java/android/hardware/camera2/impl/CameraDevice.java
index 463063c..c5d0999 100644
--- a/core/java/android/hardware/camera2/impl/CameraDevice.java
+++ b/core/java/android/hardware/camera2/impl/CameraDevice.java
@@ -55,8 +55,10 @@
private final Object mLock = new Object();
private final CameraDeviceCallbacks mCallbacks = new CameraDeviceCallbacks();
- private StateListener mDeviceListener;
- private Handler mDeviceHandler;
+ private final StateListener mDeviceListener;
+ private final Handler mDeviceHandler;
+
+ private boolean mIdle = true;
private final SparseArray<CaptureListenerHolder> mCaptureListenerMap =
new SparseArray<CaptureListenerHolder>();
@@ -67,8 +69,72 @@
private final String mCameraId;
- public CameraDevice(String cameraId) {
+ // Runnables for all state transitions, except error, which needs the
+ // error code argument
+
+ private final Runnable mCallOnOpened = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onOpened(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnUnconfigured = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onUnconfigured(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnActive = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onActive(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnBusy = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onBusy(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnClosed = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onClosed(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnIdle = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onIdle(CameraDevice.this);
+ }
+ }
+ };
+
+ private final Runnable mCallOnDisconnected = new Runnable() {
+ public void run() {
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onDisconnected(CameraDevice.this);
+ }
+ }
+ };
+
+ public CameraDevice(String cameraId, StateListener listener, Handler handler) {
+ if (cameraId == null || listener == null || handler == null) {
+ throw new IllegalArgumentException("Null argument given");
+ }
mCameraId = cameraId;
+ mDeviceListener = listener;
+ mDeviceHandler = handler;
TAG = String.format("CameraDevice-%s-JV", mCameraId);
DEBUG = Log.isLoggable(TAG, Log.DEBUG);
}
@@ -79,7 +145,12 @@
public void setRemoteDevice(ICameraDeviceUser remoteDevice) {
// TODO: Move from decorator to direct binder-mediated exceptions
- mRemoteDevice = CameraBinderDecorator.newInstance(remoteDevice);
+ synchronized(mLock) {
+ mRemoteDevice = CameraBinderDecorator.newInstance(remoteDevice);
+
+ mDeviceHandler.post(mCallOnOpened);
+ mDeviceHandler.post(mCallOnUnconfigured);
+ }
}
@Override
@@ -89,7 +160,13 @@
@Override
public void configureOutputs(List<Surface> outputs) throws CameraAccessException {
+ // Treat a null input the same an empty list
+ if (outputs == null) {
+ outputs = new ArrayList<Surface>();
+ }
synchronized (mLock) {
+ checkIfCameraClosed();
+
HashSet<Surface> addSet = new HashSet<Surface>(outputs); // Streams to create
List<Integer> deleteList = new ArrayList<Integer>(); // Streams to delete
@@ -105,9 +182,13 @@
}
}
- try {
- // TODO: mRemoteDevice.beginConfigure
+ mDeviceHandler.post(mCallOnBusy);
+ stopRepeating();
+ try {
+ mRemoteDevice.waitUntilIdle();
+
+ // TODO: mRemoteDevice.beginConfigure
// Delete all streams first (to free up HW resources)
for (Integer streamId : deleteList) {
mRemoteDevice.deleteStream(streamId);
@@ -126,7 +207,7 @@
} catch (CameraRuntimeException e) {
if (e.getReason() == CAMERA_IN_USE) {
throw new IllegalStateException("The camera is currently busy." +
- " You must call waitUntilIdle before trying to reconfigure.");
+ " You must wait until the previous operation completes.");
}
throw e.asChecked();
@@ -134,6 +215,12 @@
// impossible
return;
}
+
+ if (outputs.size() > 0) {
+ mDeviceHandler.post(mCallOnIdle);
+ } else {
+ mDeviceHandler.post(mCallOnUnconfigured);
+ }
}
}
@@ -141,6 +228,7 @@
public CaptureRequest.Builder createCaptureRequest(int templateType)
throws CameraAccessException {
synchronized (mLock) {
+ checkIfCameraClosed();
CameraMetadataNative templatedRequest = new CameraMetadataNative();
@@ -188,7 +276,7 @@
}
synchronized (mLock) {
-
+ checkIfCameraClosed();
int requestId;
try {
@@ -208,6 +296,11 @@
mRepeatingRequestIdStack.add(requestId);
}
+ if (mIdle) {
+ mDeviceHandler.post(mCallOnActive);
+ }
+ mIdle = false;
+
return requestId;
}
}
@@ -233,7 +326,7 @@
public void stopRepeating() throws CameraAccessException {
synchronized (mLock) {
-
+ checkIfCameraClosed();
while (!mRepeatingRequestIdStack.isEmpty()) {
int requestId = mRepeatingRequestIdStack.pop();
@@ -270,20 +363,11 @@
}
@Override
- public void setDeviceListener(StateListener listener, Handler handler) {
- synchronized (mLock) {
- if (listener != null) {
- handler = checkHandler(handler);
- }
-
- mDeviceListener = listener;
- mDeviceHandler = handler;
- }
- }
-
- @Override
public void flush() throws CameraAccessException {
synchronized (mLock) {
+ checkIfCameraClosed();
+
+ mDeviceHandler.post(mCallOnBusy);
try {
mRemoteDevice.flush();
} catch (CameraRuntimeException e) {
@@ -297,9 +381,6 @@
@Override
public void close() {
-
- // TODO: every method should throw IllegalStateException after close has been called
-
synchronized (mLock) {
try {
@@ -312,8 +393,11 @@
// impossible
}
- mRemoteDevice = null;
+ if (mRemoteDevice != null) {
+ mDeviceHandler.post(mCallOnClosed);
+ }
+ mRemoteDevice = null;
}
}
@@ -399,49 +483,44 @@
@Override
public void onCameraError(final int errorCode) {
- synchronized (mLock) {
- if (CameraDevice.this.mDeviceListener == null) return;
- final StateListener listener = CameraDevice.this.mDeviceListener;
- Runnable r = null;
+ Runnable r = null;
+ if (isClosed()) return;
+
+ synchronized(mLock) {
switch (errorCode) {
case ERROR_CAMERA_DISCONNECTED:
- r = new Runnable() {
- public void run() {
- listener.onDisconnected(CameraDevice.this);
- }
- };
+ r = mCallOnDisconnected;
break;
+ default:
+ Log.e(TAG, "Unknown error from camera device: " + errorCode);
+ // no break
case ERROR_CAMERA_DEVICE:
case ERROR_CAMERA_SERVICE:
r = new Runnable() {
public void run() {
- listener.onError(CameraDevice.this, errorCode);
+ if (!CameraDevice.this.isClosed()) {
+ mDeviceListener.onError(CameraDevice.this, errorCode);
+ }
}
};
break;
- default:
- Log.e(TAG, "Unknown error from camera device: " + errorCode);
}
- if (r != null) {
- CameraDevice.this.mDeviceHandler.post(r);
- }
+ CameraDevice.this.mDeviceHandler.post(r);
}
}
@Override
public void onCameraIdle() {
+ if (isClosed()) return;
+
if (DEBUG) {
Log.d(TAG, "Camera now idle");
}
synchronized (mLock) {
- if (CameraDevice.this.mDeviceListener == null) return;
- final StateListener listener = CameraDevice.this.mDeviceListener;
- Runnable r = new Runnable() {
- public void run() {
- listener.onIdle(CameraDevice.this);
- }
- };
- CameraDevice.this.mDeviceHandler.post(r);
+ if (!CameraDevice.this.mIdle) {
+ CameraDevice.this.mDeviceHandler.post(mCallOnIdle);
+ }
+ CameraDevice.this.mIdle = true;
}
}
@@ -461,14 +540,18 @@
return;
}
+ if (isClosed()) return;
+
// Dispatch capture start notice
holder.getHandler().post(
new Runnable() {
public void run() {
- holder.getListener().onCaptureStarted(
- CameraDevice.this,
- holder.getRequest(),
- timestamp);
+ if (!CameraDevice.this.isClosed()) {
+ holder.getListener().onCaptureStarted(
+ CameraDevice.this,
+ holder.getRequest(),
+ timestamp);
+ }
}
});
}
@@ -503,6 +586,8 @@
return;
}
+ if (isClosed()) return;
+
final CaptureRequest request = holder.getRequest();
final CaptureResult resultAsCapture = new CaptureResult(result, request, requestId);
@@ -510,10 +595,12 @@
new Runnable() {
@Override
public void run() {
- holder.getListener().onCaptureCompleted(
- CameraDevice.this,
- request,
- resultAsCapture);
+ if (!CameraDevice.this.isClosed()){
+ holder.getListener().onCaptureCompleted(
+ CameraDevice.this,
+ request,
+ resultAsCapture);
+ }
}
});
}
@@ -541,4 +628,10 @@
throw new IllegalStateException("CameraDevice was already closed");
}
}
+
+ private boolean isClosed() {
+ synchronized(mLock) {
+ return (mRemoteDevice == null);
+ }
+ }
}
diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
index 89ffd93..adccbc5 100644
--- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
+++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
@@ -16,7 +16,13 @@
package android.hardware.camera2.impl;
+import android.graphics.ImageFormat;
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraMetadata;
+import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.Face;
import android.hardware.camera2.Rational;
import android.os.Parcelable;
import android.os.Parcel;
@@ -36,6 +42,8 @@
private static final String TAG = "CameraMetadataJV";
private static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
+ // this should be in sync with HAL_PIXEL_FORMAT_BLOB defined in graphics.h
+ private static final int NATIVE_JPEG_FORMAT = 0x21;
public CameraMetadataNative() {
super();
@@ -84,16 +92,21 @@
@SuppressWarnings("unchecked")
@Override
public <T> T get(Key<T> key) {
- int tag = key.getTag();
- byte[] values = readValues(tag);
- if (values == null) {
+
+ if (key == CaptureResult.STATISTICS_FACES) {
+ /**
+ * FIXME: Workaround for HAL bug that's missing FACE_DETECT_MODE
+ */
+ Log.w(TAG, "Expected non-null android.statistics.faceDetectMode");
return null;
}
- int nativeType = getNativeType(tag);
+ T value = getOverride(key);
+ if (value != null) {
+ return value;
+ }
- ByteBuffer buffer = ByteBuffer.wrap(values).order(ByteOrder.nativeOrder());
- return unpackSingle(buffer, key.getType(), nativeType);
+ return getBase(key);
}
public void readFromParcel(Parcel in) {
@@ -110,24 +123,11 @@
* type to the key.
*/
public <T> void set(Key<T> key, T value) {
- int tag = key.getTag();
-
- if (value == null) {
- writeValues(tag, null);
+ if (setOverride(key, value)) {
return;
}
- int nativeType = getNativeType(tag);
-
- int size = packSingle(value, null, key.getType(), nativeType, /* sizeOnly */true);
-
- // TODO: Optimization. Cache the byte[] and reuse if the size is big enough.
- byte[] values = new byte[size];
-
- ByteBuffer buffer = ByteBuffer.wrap(values).order(ByteOrder.nativeOrder());
- packSingle(value, buffer, key.getType(), nativeType, /*sizeOnly*/false);
-
- writeValues(tag, values);
+ setBase(key, value);
}
// Keep up-to-date with camera_metadata.h
@@ -435,6 +435,157 @@
return (T) array;
}
+ private <T> T getBase(Key<T> key) {
+ int tag = key.getTag();
+ byte[] values = readValues(tag);
+ if (values == null) {
+ return null;
+ }
+
+ int nativeType = getNativeType(tag);
+
+ ByteBuffer buffer = ByteBuffer.wrap(values).order(ByteOrder.nativeOrder());
+ return unpackSingle(buffer, key.getType(), nativeType);
+ }
+
+ // Need overwrite some metadata that has different definitions between native
+ // and managed sides.
+ @SuppressWarnings("unchecked")
+ private <T> T getOverride(Key<T> key) {
+ if (key == CameraCharacteristics.SCALER_AVAILABLE_FORMATS) {
+ return (T) getAvailableFormats();
+ } else if (key == CaptureResult.STATISTICS_FACES) {
+ return (T) getFaces();
+ }
+
+ // For other keys, get() falls back to getBase()
+ return null;
+ }
+
+ private int[] getAvailableFormats() {
+ int[] availableFormats = getBase(CameraCharacteristics.SCALER_AVAILABLE_FORMATS);
+ for (int i = 0; i < availableFormats.length; i++) {
+ // JPEG has different value between native and managed side, need override.
+ if (availableFormats[i] == NATIVE_JPEG_FORMAT) {
+ availableFormats[i] = ImageFormat.JPEG;
+ }
+ }
+ return availableFormats;
+ }
+
+ private Face[] getFaces() {
+ final int FACE_LANDMARK_SIZE = 6;
+
+ Integer faceDetectMode = getBase(CaptureResult.STATISTICS_FACE_DETECT_MODE);
+ if (faceDetectMode == null) {
+ throw new AssertionError("Expect non-null face detect mode");
+ }
+
+ if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_OFF) {
+ return new Face[0];
+ }
+ if (faceDetectMode != CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE &&
+ faceDetectMode != CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL) {
+ throw new AssertionError("Unknown face detect mode: " + faceDetectMode);
+ }
+
+ // Face scores and rectangles are required by SIMPLE and FULL mode.
+ byte[] faceScores = getBase(CaptureResult.STATISTICS_FACE_SCORES);
+ Rect[] faceRectangles = getBase(CaptureResult.STATISTICS_FACE_RECTANGLES);
+ if (faceScores == null || faceRectangles == null) {
+ throw new AssertionError("Expect face scores and rectangles to be non-null");
+ } else if (faceScores.length != faceRectangles.length) {
+ throw new AssertionError(
+ String.format("Face score size(%d) doesn match face rectangle size(%d)!",
+ faceScores.length, faceRectangles.length));
+ }
+
+ // Face id and landmarks are only required by FULL mode.
+ int[] faceIds = getBase(CaptureResult.STATISTICS_FACE_IDS);
+ int[] faceLandmarks = getBase(CaptureResult.STATISTICS_FACE_LANDMARKS);
+ int numFaces = faceScores.length;
+ if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL) {
+ if (faceIds == null || faceLandmarks == null) {
+ throw new AssertionError("Expect face ids and landmarks to be non-null for " +
+ "FULL mode");
+ } else if (faceIds.length != numFaces ||
+ faceLandmarks.length != numFaces * FACE_LANDMARK_SIZE) {
+ throw new AssertionError(
+ String.format("Face id size(%d), or face landmark size(%d) don't match " +
+ "face number(%d)!",
+ faceIds.length, faceLandmarks.length * FACE_LANDMARK_SIZE,
+ numFaces));
+ }
+ }
+
+ Face[] faces = new Face[numFaces];
+ if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE) {
+ for (int i = 0; i < numFaces; i++) {
+ faces[i] = new Face(faceRectangles[i], faceScores[i]);
+ }
+ } else {
+ // CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL
+ for (int i = 0; i < numFaces; i++) {
+ Point leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
+ Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
+ Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
+ faces[i] = new Face(faceRectangles[i], faceScores[i], faceIds[i],
+ leftEye, rightEye, mouth);
+ }
+ }
+ return faces;
+ }
+
+ private <T> void setBase(Key<T> key, T value) {
+ int tag = key.getTag();
+
+ if (value == null) {
+ writeValues(tag, null);
+ return;
+ }
+
+ int nativeType = getNativeType(tag);
+
+ int size = packSingle(value, null, key.getType(), nativeType, /* sizeOnly */true);
+
+ // TODO: Optimization. Cache the byte[] and reuse if the size is big enough.
+ byte[] values = new byte[size];
+
+ ByteBuffer buffer = ByteBuffer.wrap(values).order(ByteOrder.nativeOrder());
+ packSingle(value, buffer, key.getType(), nativeType, /*sizeOnly*/false);
+
+ writeValues(tag, values);
+ }
+
+ // Set the camera metadata override.
+ private <T> boolean setOverride(Key<T> key, T value) {
+ if (key == CameraCharacteristics.SCALER_AVAILABLE_FORMATS) {
+ return setAvailableFormats((int[]) value);
+ }
+
+ // For other keys, set() falls back to setBase().
+ return false;
+ }
+
+ private boolean setAvailableFormats(int[] value) {
+ int[] availableFormat = value;
+ if (value == null) {
+ // Let setBase() to handle the null value case.
+ return false;
+ }
+
+ int[] newValues = new int[availableFormat.length];
+ for (int i = 0; i < availableFormat.length; i++) {
+ newValues[i] = availableFormat[i];
+ if (availableFormat[i] == ImageFormat.JPEG) {
+ newValues[i] = NATIVE_JPEG_FORMAT;
+ }
+ }
+
+ setBase(CameraCharacteristics.SCALER_AVAILABLE_FORMATS, newValues);
+ return true;
+ }
+
private long mMetadataPtr; // native CameraMetadata*
private native long nativeAllocate();
@@ -538,7 +689,7 @@
* @hide
*/
public byte[] readValues(int tag) {
- // TODO: Optimization. Native code returns a ByteBuffer instead.
+ // TODO: Optimization. Native code returns a ByteBuffer instead.
return nativeReadValues(tag);
}
diff --git a/core/java/android/print/PrintAttributes.java b/core/java/android/print/PrintAttributes.java
index ec979b3..e1a9cb7 100644
--- a/core/java/android/print/PrintAttributes.java
+++ b/core/java/android/print/PrintAttributes.java
@@ -282,7 +282,7 @@
*/
public static final MediaSize UNKNOWN_PORTRAIT =
new MediaSize("UNKNOWN_PORTRAIT", "android",
- R.string.mediasize_unknown_portrait, Integer.MAX_VALUE, 1);
+ R.string.mediasize_unknown_portrait, 1, Integer.MAX_VALUE);
/**
* Unknown media size in landscape mode.
@@ -293,7 +293,7 @@
*/
public static final MediaSize UNKNOWN_LANDSCAPE =
new MediaSize("UNKNOWN_LANDSCAPE", "android",
- R.string.mediasize_unknown_landscape, 1, Integer.MAX_VALUE);
+ R.string.mediasize_unknown_landscape, Integer.MAX_VALUE, 1);
// ISO sizes
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index 631a8d4..1c14c38 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -70,8 +70,14 @@
}
/** {@hide} */
+ @Deprecated
public static final String META_DATA_DOCUMENT_PROVIDER = "android.content.DOCUMENT_PROVIDER";
+ /**
+ * Intent action used to identify {@link DocumentsProvider} instances.
+ */
+ public static final String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
+
/** {@hide} */
public static final String ACTION_MANAGE_ROOT = "android.provider.action.MANAGE_ROOT";
/** {@hide} */
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 989e287..50777fd 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2441,9 +2441,7 @@
SCREEN_BRIGHTNESS_MODE,
SCREEN_AUTO_BRIGHTNESS_ADJ,
VIBRATE_INPUT_DEVICES,
- MODE_RINGER, // moved to global
MODE_RINGER_STREAMS_AFFECTED,
- MUTE_STREAMS_AFFECTED,
VOLUME_VOICE,
VOLUME_SYSTEM,
VOLUME_RING,
@@ -5940,7 +5938,6 @@
public static final String[] SETTINGS_TO_BACKUP = {
BUGREPORT_IN_POWER_MENU,
STAY_ON_WHILE_PLUGGED_IN,
- MODE_RINGER,
AUTO_TIME,
AUTO_TIME_ZONE,
POWER_SOUNDS_ENABLED,
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index 3e53b91..9e35a23 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -27,6 +27,7 @@
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.RectF;
+import android.graphics.Xfermode;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
@@ -73,6 +74,7 @@
// these are applied to the drawable
private ColorFilter mColorFilter;
+ private Xfermode mXfermode;
private int mAlpha = 255;
private int mViewAlphaScale = 256;
private boolean mColorMod = false;
@@ -1125,6 +1127,18 @@
}
/**
+ * @hide Candidate for future API inclusion
+ */
+ public final void setXfermode(Xfermode mode) {
+ if (mXfermode != mode) {
+ mXfermode = mode;
+ mColorMod = true;
+ applyColorMod();
+ invalidate();
+ }
+ }
+
+ /**
* Returns the active color filter for this ImageView.
*
* @return the active color filter for this ImageView
@@ -1200,6 +1214,7 @@
if (mDrawable != null && mColorMod) {
mDrawable = mDrawable.mutate();
mDrawable.setColorFilter(mColorFilter);
+ mDrawable.setXfermode(mXfermode);
mDrawable.setAlpha(mAlpha * mViewAlphaScale >> 8);
}
}
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 995b4af..4a39904 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -609,7 +609,7 @@
<string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"Блютүүт тохиргоонд хандах"</string>
<string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Апп нь дотоод блютүүт таблетын тохиргоог харах боломжтой ба хос болох төхөөрөмжтэй холболтыг зөвшөөрөх болон хийх боломжтой"</string>
<string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Апп нь утасны дотоод блютүүтыг тохируулах боломжтой ба гадаад төхөөрөмжийг олох болон хос үүсгэх боломжтой."</string>
- <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Аппликешнд Блютүүт хоallow Bluetooth pairing by Application"</string>
+ <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Аппликешнд bluetooth хослол хийхийг зөвшөөрнө"</string>
<string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Апп-д хэрэглэгчтэй харьцахгүйгээр зайны төхөөрөмжүүдтэй хослох боломж олгоно."</string>
<string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Апп-д хэрэглэгчтэй харьцахгүйгээр зайны төхөөрөмжүүдтэй хослох боломж олгоно."</string>
<string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-д холбогдох болон салах"</string>
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java
index ef858eb..5b04a91 100644
--- a/graphics/java/android/graphics/Path.java
+++ b/graphics/java/android/graphics/Path.java
@@ -78,7 +78,11 @@
mLastDirection = null;
if (rects != null) rects.setEmpty();
}
+ // We promised not to change this, so preserve it around the native
+ // call, which does now reset fill type.
+ final FillType fillType = getFillType();
native_reset(mNativePath);
+ setFillType(fillType);
}
/**
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 5ceab36..98e3386 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -28,6 +28,7 @@
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.Shader;
+import android.graphics.Xfermode;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.LayoutDirection;
@@ -531,6 +532,14 @@
}
/**
+ * @hide Candidate for future API inclusion
+ */
+ public void setXfermode(Xfermode xfermode) {
+ mBitmapState.mPaint.setXfermode(xfermode);
+ invalidateSelf();
+ }
+
+ /**
* A mutable BitmapDrawable still shares its Bitmap with any other Drawable
* that comes from the same resource.
*
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index 8135716..8a3d940 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -17,6 +17,7 @@
package android.graphics.drawable;
import android.graphics.Insets;
+import android.graphics.Xfermode;
import android.os.Trace;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -428,6 +429,15 @@
public abstract void setColorFilter(ColorFilter cf);
/**
+ * @hide Consider for future API inclusion
+ */
+ public void setXfermode(Xfermode mode) {
+ // Base implementation drops it on the floor for compatibility. Whee!
+ // TODO: For this to be included in the API proper, all framework drawables need impls.
+ // For right now only BitmapDrawable has it.
+ }
+
+ /**
* Specify a color and porterduff mode to be the colorfilter for this
* drawable.
*/
diff --git a/graphics/tests/graphicstests/src/android/graphics/PathTest.java b/graphics/tests/graphicstests/src/android/graphics/PathTest.java
new file mode 100644
index 0000000..96200bc
--- /dev/null
+++ b/graphics/tests/graphicstests/src/android/graphics/PathTest.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.graphics;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import junit.framework.TestCase;
+
+
+public class PathTest extends TestCase {
+
+ @SmallTest
+ public void testResetPreservesFillType() throws Exception {
+ Path path = new Path();
+
+ final Path.FillType defaultFillType = path.getFillType();
+ final Path.FillType fillType = Path.FillType.INVERSE_EVEN_ODD;
+ assertFalse(fillType.equals(defaultFillType)); // Sanity check for the test itself.
+
+ path.setFillType(fillType);
+ path.reset();
+ assertEquals(path.getFillType(), fillType);
+ }
+}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
index 874e078..3f17aa9 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/CameraMetadataTest.java
@@ -18,9 +18,11 @@
import android.os.Parcel;
import android.test.suitebuilder.annotation.SmallTest;
-import android.graphics.ImageFormat;
+import android.graphics.Point;
import android.graphics.Rect;
-import android.hardware.camera2.CameraMetadata;
+import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.Face;
import android.hardware.camera2.Rational;
import android.hardware.camera2.Size;
import android.hardware.camera2.impl.CameraMetadataNative;
@@ -30,9 +32,6 @@
import java.lang.reflect.Array;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
-import java.nio.IntBuffer;
-
-import static org.junit.Assert.assertArrayEquals;
/**
* <pre>
@@ -57,6 +56,7 @@
// Tags
static final int ANDROID_COLOR_CORRECTION_MODE = ANDROID_COLOR_CORRECTION_START;
static final int ANDROID_COLOR_CORRECTION_TRANSFORM = ANDROID_COLOR_CORRECTION_START + 1;
+ static final int ANDROID_COLOR_CORRECTION_GAINS = ANDROID_COLOR_CORRECTION_START + 2;
static final int ANDROID_CONTROL_AE_ANTIBANDING_MODE = ANDROID_CONTROL_START;
static final int ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION = ANDROID_CONTROL_START + 1;
@@ -131,7 +131,8 @@
@SmallTest
public void testGetTypeFromTag() {
assertEquals(TYPE_BYTE, CameraMetadataNative.getNativeType(ANDROID_COLOR_CORRECTION_MODE));
- assertEquals(TYPE_FLOAT, CameraMetadataNative.getNativeType(ANDROID_COLOR_CORRECTION_TRANSFORM));
+ assertEquals(TYPE_RATIONAL, CameraMetadataNative.getNativeType(ANDROID_COLOR_CORRECTION_TRANSFORM));
+ assertEquals(TYPE_FLOAT, CameraMetadataNative.getNativeType(ANDROID_COLOR_CORRECTION_GAINS));
assertEquals(TYPE_BYTE, CameraMetadataNative.getNativeType(ANDROID_CONTROL_AE_ANTIBANDING_MODE));
assertEquals(TYPE_INT32,
CameraMetadataNative.getNativeType(ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION));
@@ -187,30 +188,30 @@
assertEquals(false, mMetadata.isEmpty());
//
- // android.colorCorrection.transform (3x3 matrix)
+ // android.colorCorrection.colorCorrectionGains (float x 4 array)
//
- final float[] transformMatrix = new float[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
- byte[] transformMatrixAsByteArray = new byte[transformMatrix.length * 4];
- ByteBuffer transformMatrixByteBuffer =
- ByteBuffer.wrap(transformMatrixAsByteArray).order(ByteOrder.nativeOrder());
- for (float f : transformMatrix)
- transformMatrixByteBuffer.putFloat(f);
+ final float[] colorCorrectionGains = new float[] { 1.0f, 2.0f, 3.0f, 4.0f};
+ byte[] colorCorrectionGainsAsByteArray = new byte[colorCorrectionGains.length * 4];
+ ByteBuffer colorCorrectionGainsByteBuffer =
+ ByteBuffer.wrap(colorCorrectionGainsAsByteArray).order(ByteOrder.nativeOrder());
+ for (float f : colorCorrectionGains)
+ colorCorrectionGainsByteBuffer.putFloat(f);
// Read
- assertNull(mMetadata.readValues(ANDROID_COLOR_CORRECTION_TRANSFORM));
- mMetadata.writeValues(ANDROID_COLOR_CORRECTION_TRANSFORM, transformMatrixAsByteArray);
+ assertNull(mMetadata.readValues(ANDROID_COLOR_CORRECTION_GAINS));
+ mMetadata.writeValues(ANDROID_COLOR_CORRECTION_GAINS, colorCorrectionGainsAsByteArray);
// Write
- assertArrayEquals(transformMatrixAsByteArray,
- mMetadata.readValues(ANDROID_COLOR_CORRECTION_TRANSFORM));
+ assertArrayEquals(colorCorrectionGainsAsByteArray,
+ mMetadata.readValues(ANDROID_COLOR_CORRECTION_GAINS));
assertEquals(2, mMetadata.getEntryCount());
assertEquals(false, mMetadata.isEmpty());
// Erase
- mMetadata.writeValues(ANDROID_COLOR_CORRECTION_TRANSFORM, null);
- assertNull(mMetadata.readValues(ANDROID_COLOR_CORRECTION_TRANSFORM));
+ mMetadata.writeValues(ANDROID_COLOR_CORRECTION_GAINS, null);
+ assertNull(mMetadata.readValues(ANDROID_COLOR_CORRECTION_GAINS));
assertEquals(1, mMetadata.getEntryCount());
}
@@ -279,7 +280,7 @@
@SmallTest
public void testReadWritePrimitiveArray() {
// int32 (n)
- checkKeyGetAndSetArray("android.sensor.info.availableSensitivities", int[].class,
+ checkKeyGetAndSetArray("android.sensor.info.sensitivityRange", int[].class,
new int[] {
0xC0FFEE, 0xDEADF00D
});
@@ -379,7 +380,9 @@
new AvailableFormat[] {
AvailableFormat.RAW_SENSOR,
AvailableFormat.YV12,
- AvailableFormat.IMPLEMENTATION_DEFINED
+ AvailableFormat.IMPLEMENTATION_DEFINED,
+ AvailableFormat.YCbCr_420_888,
+ AvailableFormat.BLOB
});
}
@@ -431,12 +434,13 @@
AvailableFormat.RAW_SENSOR,
AvailableFormat.YV12,
AvailableFormat.IMPLEMENTATION_DEFINED,
- AvailableFormat.YCbCr_420_888
+ AvailableFormat.YCbCr_420_888,
+ AvailableFormat.BLOB
});
- Key<AeAntibandingMode> availableFormatsKey =
- new Key<AeAntibandingMode>("android.scaler.availableFormats",
- AeAntibandingMode.class);
+ Key<AvailableFormat[]> availableFormatsKey =
+ new Key<AvailableFormat[]>("android.scaler.availableFormats",
+ AvailableFormat[].class);
byte[] availableFormatValues = mMetadata.readValues(CameraMetadataNative
.getTag(availableFormatsKey.getName()));
@@ -444,7 +448,8 @@
0x20,
0x32315659,
0x22,
- 0x23
+ 0x23,
+ 0x21
};
ByteBuffer bf = ByteBuffer.wrap(availableFormatValues).order(ByteOrder.nativeOrder());
@@ -523,4 +528,115 @@
<T> void compareGeneric(T expected, T actual) {
assertEquals(expected, actual);
}
+
+ @SmallTest
+ public void testReadWriteOverride() {
+ //
+ // android.scaler.availableFormats (int x n array)
+ //
+ int[] availableFormats = new int[] {
+ 0x20, // RAW_SENSOR
+ 0x32315659, // YV12
+ 0x11, // YCrCb_420_SP
+ 0x100, // ImageFormat.JPEG
+ 0x22, // IMPLEMENTATION_DEFINED
+ 0x23, // YCbCr_420_888
+ };
+ int[] expectedIntValues = new int[] {
+ 0x20, // RAW_SENSOR
+ 0x32315659, // YV12
+ 0x11, // YCrCb_420_SP
+ 0x21, // BLOB
+ 0x22, // IMPLEMENTATION_DEFINED
+ 0x23, // YCbCr_420_888
+ };
+ int availableFormatTag = CameraMetadataNative.getTag("android.scaler.availableFormats");
+
+ // Write
+ mMetadata.set(CameraCharacteristics.SCALER_AVAILABLE_FORMATS, availableFormats);
+
+ byte[] availableFormatValues = mMetadata.readValues(availableFormatTag);
+
+ ByteBuffer bf = ByteBuffer.wrap(availableFormatValues).order(ByteOrder.nativeOrder());
+
+ assertEquals(expectedIntValues.length * 4, availableFormatValues.length);
+ for (int i = 0; i < expectedIntValues.length; ++i) {
+ assertEquals(expectedIntValues[i], bf.getInt());
+ }
+ // Read
+ byte[] availableFormatsAsByteArray = new byte[expectedIntValues.length * 4];
+ ByteBuffer availableFormatsByteBuffer =
+ ByteBuffer.wrap(availableFormatsAsByteArray).order(ByteOrder.nativeOrder());
+ for (int value : expectedIntValues) {
+ availableFormatsByteBuffer.putInt(value);
+ }
+ mMetadata.writeValues(availableFormatTag, availableFormatsAsByteArray);
+
+ int[] resultFormats = mMetadata.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS);
+ assertNotNull("result available formats shouldn't be null", resultFormats);
+ assertArrayEquals(availableFormats, resultFormats);
+
+ //
+ // android.statistics.faces (Face x n array)
+ //
+ int[] expectedFaceIds = new int[] {1, 2, 3, 4, 5};
+ byte[] expectedFaceScores = new byte[] {10, 20, 30, 40, 50};
+ int numFaces = expectedFaceIds.length;
+ Rect[] expectedRects = new Rect[numFaces];
+ for (int i = 0; i < numFaces; i++) {
+ expectedRects[i] = new Rect(i*4 + 1, i * 4 + 2, i * 4 + 3, i * 4 + 4);
+ }
+ int[] expectedFaceLM = new int[] {
+ 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30,
+ };
+ Point[] expectedFaceLMPoints = new Point[numFaces * 3];
+ for (int i = 0; i < numFaces; i++) {
+ expectedFaceLMPoints[i*3] = new Point(expectedFaceLM[i*6], expectedFaceLM[i*6+1]);
+ expectedFaceLMPoints[i*3+1] = new Point(expectedFaceLM[i*6+2], expectedFaceLM[i*6+3]);
+ expectedFaceLMPoints[i*3+2] = new Point(expectedFaceLM[i*6+4], expectedFaceLM[i*6+5]);
+ }
+
+ /**
+ * Read - FACE_DETECT_MODE == FULL
+ */
+ mMetadata.set(CaptureResult.STATISTICS_FACE_DETECT_MODE,
+ CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_IDS, expectedFaceIds);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_SCORES, expectedFaceScores);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_RECTANGLES, expectedRects);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_LANDMARKS, expectedFaceLM);
+ Face[] resultFaces = mMetadata.get(CaptureResult.STATISTICS_FACES);
+ assertEquals(numFaces, resultFaces.length);
+ for (int i = 0; i < numFaces; i++) {
+ assertEquals(expectedFaceIds[i], resultFaces[i].getId());
+ assertEquals(expectedFaceScores[i], resultFaces[i].getScore());
+ assertEquals(expectedRects[i], resultFaces[i].getBounds());
+ assertEquals(expectedFaceLMPoints[i*3], resultFaces[i].getLeftEyePosition());
+ assertEquals(expectedFaceLMPoints[i*3+1], resultFaces[i].getRightEyePosition());
+ assertEquals(expectedFaceLMPoints[i*3+2], resultFaces[i].getMouthPosition());
+ }
+
+ /**
+ * Read - FACE_DETECT_MODE == SIMPLE
+ */
+ mMetadata.set(CaptureResult.STATISTICS_FACE_DETECT_MODE,
+ CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_SCORES, expectedFaceScores);
+ mMetadata.set(CaptureResult.STATISTICS_FACE_RECTANGLES, expectedRects);
+ Face[] resultSimpleFaces = mMetadata.get(CaptureResult.STATISTICS_FACES);
+ assertEquals(numFaces, resultSimpleFaces.length);
+ for (int i = 0; i < numFaces; i++) {
+ assertEquals(Face.ID_UNSUPPORTED, resultSimpleFaces[i].getId());
+ assertEquals(expectedFaceScores[i], resultSimpleFaces[i].getScore());
+ assertEquals(expectedRects[i], resultSimpleFaces[i].getBounds());
+ assertNull(resultSimpleFaces[i].getLeftEyePosition());
+ assertNull(resultSimpleFaces[i].getRightEyePosition());
+ assertNull(resultSimpleFaces[i].getMouthPosition());
+ }
+
+ }
}
diff --git a/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml b/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml
index 851061f..adbb9da 100644
--- a/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml
+++ b/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml
@@ -64,7 +64,7 @@
android:layout_weight="0.5"
android:layout_marginEnd="12dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="middle"
android:textAlignment="viewStart"
style="@style/TextAppearance.Medium" />
@@ -83,7 +83,7 @@
android:layout_weight="0.25"
android:layout_marginEnd="12dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
@@ -95,7 +95,7 @@
android:layout_marginEnd="12dp"
android:minWidth="70dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewEnd"
style="@style/TextAppearance.Small" />
@@ -107,7 +107,7 @@
android:layout_marginEnd="12dp"
android:minWidth="70dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewEnd"
style="@style/TextAppearance.Small" />
diff --git a/packages/DocumentsUI/res/layout/item_doc_grid.xml b/packages/DocumentsUI/res/layout/item_doc_grid.xml
index bb5dce1..3aef1cd 100644
--- a/packages/DocumentsUI/res/layout/item_doc_grid.xml
+++ b/packages/DocumentsUI/res/layout/item_doc_grid.xml
@@ -67,7 +67,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="middle"
android:textAlignment="viewStart"
style="@style/TextAppearance.Medium" />
@@ -97,7 +97,7 @@
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
@@ -108,7 +108,7 @@
android:layout_weight="0.5"
android:layout_marginStart="8dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
diff --git a/packages/DocumentsUI/res/layout/item_doc_list.xml b/packages/DocumentsUI/res/layout/item_doc_list.xml
index 9ba46ac..e3a0ddd 100644
--- a/packages/DocumentsUI/res/layout/item_doc_list.xml
+++ b/packages/DocumentsUI/res/layout/item_doc_list.xml
@@ -68,7 +68,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="middle"
android:textAlignment="viewStart"
style="@style/TextAppearance.Medium" />
@@ -95,7 +95,7 @@
android:layout_width="90dp"
android:layout_height="wrap_content"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
@@ -105,7 +105,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
@@ -116,7 +116,7 @@
android:layout_weight="1"
android:layout_marginStart="8dp"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
diff --git a/packages/DocumentsUI/res/layout/item_root.xml b/packages/DocumentsUI/res/layout/item_root.xml
index 9b52d85..f17c261 100644
--- a/packages/DocumentsUI/res/layout/item_root.xml
+++ b/packages/DocumentsUI/res/layout/item_root.xml
@@ -43,7 +43,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Medium" />
@@ -52,7 +52,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="end"
android:textAlignment="viewStart"
style="@style/TextAppearance.Small" />
diff --git a/packages/DocumentsUI/res/layout/item_title.xml b/packages/DocumentsUI/res/layout/item_title.xml
index 58016f1..6e96fb5 100644
--- a/packages/DocumentsUI/res/layout/item_title.xml
+++ b/packages/DocumentsUI/res/layout/item_title.xml
@@ -38,7 +38,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
- android:ellipsize="marquee"
+ android:ellipsize="middle"
android:textAlignment="viewStart"
style="@style/TextAppearance.Medium" />
diff --git a/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
index 1efa2e1..7e09c57 100644
--- a/packages/DocumentsUI/res/values-ms-rMY/strings.xml
+++ b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
@@ -37,7 +37,7 @@
<string name="drawer_close" msgid="7602734368552123318">"Sembunyikan akar"</string>
<string name="save_error" msgid="6167009778003223664">"Gagal menyimpan dokumen"</string>
<string name="create_error" msgid="3735649141335444215">"Gagal membuat folder"</string>
- <string name="query_error" msgid="1222448261663503501">"Gagal menanyakan dokumen."</string>
+ <string name="query_error" msgid="1222448261663503501">"Gagal menanyakan dokumen"</string>
<string name="root_recent" msgid="4470053704320518133">"Terbaharu"</string>
<string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> kosong"</string>
<string name="root_type_service" msgid="2178854894416775409">"Perkhidmatan storan"</string>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
index 4d410d5..1f3901c 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
@@ -295,6 +295,11 @@
updateDisplayState();
+ // When launched into empty recents, show drawer
+ if (mType == TYPE_RECENT_OPEN && mAdapter.isEmpty() && !state.stackTouched) {
+ ((DocumentsActivity) context).setRootsDrawerOpen(true);
+ }
+
// Restore any previous instance state
final SparseArray<Parcelable> container = state.dirState.remove(mStateKey);
if (container != null && !getArguments().getBoolean(EXTRA_IGNORE_STATE, false)) {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
index 3954173..05766f5 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
@@ -109,6 +109,11 @@
public void onLoadFinished(
Loader<List<DocumentStack>> loader, List<DocumentStack> data) {
mAdapter.swapStacks(data);
+
+ // When launched into empty recents, show drawer
+ if (mAdapter.isEmpty() && !state.stackTouched) {
+ ((DocumentsActivity) context).setRootsDrawerOpen(true);
+ }
}
@Override
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
index bad0a96..eb56765 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
@@ -21,9 +21,11 @@
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
+import android.content.pm.ResolveInfo;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
@@ -158,6 +160,9 @@
private class UpdateTask extends AsyncTask<Void, Void, Void> {
private final String mFilterPackage;
+ private final Multimap<String, RootInfo> mTaskRoots = ArrayListMultimap.create();
+ private final HashSet<String> mTaskStoppedAuthorities = Sets.newHashSet();
+
/**
* Update all roots.
*/
@@ -177,54 +182,64 @@
protected Void doInBackground(Void... params) {
final long start = SystemClock.elapsedRealtime();
- final Multimap<String, RootInfo> roots = ArrayListMultimap.create();
- final HashSet<String> stoppedAuthorities = Sets.newHashSet();
-
- roots.put(mRecentsRoot.authority, mRecentsRoot);
+ mTaskRoots.put(mRecentsRoot.authority, mRecentsRoot);
final ContentResolver resolver = mContext.getContentResolver();
final PackageManager pm = mContext.getPackageManager();
- final List<ProviderInfo> providers = pm.queryContentProviders(
+
+ // Pick up provider with action string
+ final Intent intent = new Intent(DocumentsContract.PROVIDER_INTERFACE);
+ final List<ResolveInfo> providers = pm.queryIntentContentProviders(intent, 0);
+ for (ResolveInfo info : providers) {
+ handleDocumentsProvider(info.providerInfo);
+ }
+
+ // Pick up legacy providers
+ final List<ProviderInfo> legacyProviders = pm.queryContentProviders(
null, -1, PackageManager.GET_META_DATA);
- for (ProviderInfo info : providers) {
+ for (ProviderInfo info : legacyProviders) {
if (info.metaData != null && info.metaData.containsKey(
DocumentsContract.META_DATA_DOCUMENT_PROVIDER)) {
- // Ignore stopped packages for now; we might query them
- // later during UI interaction.
- if ((info.applicationInfo.flags & ApplicationInfo.FLAG_STOPPED) != 0) {
- if (LOGD) Log.d(TAG, "Ignoring stopped authority " + info.authority);
- stoppedAuthorities.add(info.authority);
- continue;
- }
-
- // Try using cached roots if filtering
- boolean cacheHit = false;
- if (mFilterPackage != null && !mFilterPackage.equals(info.packageName)) {
- synchronized (mLock) {
- if (roots.putAll(info.authority, mRoots.get(info.authority))) {
- if (LOGD) Log.d(TAG, "Used cached roots for " + info.authority);
- cacheHit = true;
- }
- }
- }
-
- // Cache miss, or loading everything
- if (!cacheHit) {
- roots.putAll(
- info.authority, loadRootsForAuthority(resolver, info.authority));
- }
+ handleDocumentsProvider(info);
}
}
final long delta = SystemClock.elapsedRealtime() - start;
- Log.d(TAG, "Update found " + roots.size() + " roots in " + delta + "ms");
+ Log.d(TAG, "Update found " + mTaskRoots.size() + " roots in " + delta + "ms");
synchronized (mLock) {
- mStoppedAuthorities = stoppedAuthorities;
- mRoots = roots;
+ mRoots = mTaskRoots;
+ mStoppedAuthorities = mTaskStoppedAuthorities;
}
mFirstLoad.countDown();
return null;
}
+
+ private void handleDocumentsProvider(ProviderInfo info) {
+ // Ignore stopped packages for now; we might query them
+ // later during UI interaction.
+ if ((info.applicationInfo.flags & ApplicationInfo.FLAG_STOPPED) != 0) {
+ if (LOGD) Log.d(TAG, "Ignoring stopped authority " + info.authority);
+ mTaskStoppedAuthorities.add(info.authority);
+ return;
+ }
+
+ // Try using cached roots if filtering
+ boolean cacheHit = false;
+ if (mFilterPackage != null && !mFilterPackage.equals(info.packageName)) {
+ synchronized (mLock) {
+ if (mTaskRoots.putAll(info.authority, mRoots.get(info.authority))) {
+ if (LOGD) Log.d(TAG, "Used cached roots for " + info.authority);
+ cacheHit = true;
+ }
+ }
+ }
+
+ // Cache miss, or loading everything
+ if (!cacheHit) {
+ mTaskRoots.putAll(info.authority,
+ loadRootsForAuthority(mContext.getContentResolver(), info.authority));
+ }
+ }
}
/**
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
index 2fb12bb..fdbc3ab 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
@@ -142,9 +142,12 @@
final RootInfo root = ((DocumentsActivity) getActivity()).getCurrentRoot();
for (int i = 0; i < mAdapter.getCount(); i++) {
final Object item = mAdapter.getItem(i);
- if (Objects.equal(item, root)) {
- mList.setItemChecked(i, true);
- return;
+ if (item instanceof RootItem) {
+ final RootInfo testRoot = ((RootItem) item).root;
+ if (Objects.equal(testRoot, root)) {
+ mList.setItemChecked(i, true);
+ return;
+ }
}
}
}
diff --git a/packages/ExternalStorageProvider/AndroidManifest.xml b/packages/ExternalStorageProvider/AndroidManifest.xml
index 7094efc..99a4260 100644
--- a/packages/ExternalStorageProvider/AndroidManifest.xml
+++ b/packages/ExternalStorageProvider/AndroidManifest.xml
@@ -11,9 +11,9 @@
android:grantUriPermissions="true"
android:exported="true"
android:permission="android.permission.MANAGE_DOCUMENTS">
- <meta-data
- android:name="android.content.DOCUMENT_PROVIDER"
- android:value="true" />
+ <intent-filter>
+ <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+ </intent-filter>
</provider>
<!-- TODO: find a better place for tests to live -->
@@ -24,9 +24,9 @@
android:exported="true"
android:permission="android.permission.MANAGE_DOCUMENTS"
android:enabled="false">
- <meta-data
- android:name="android.content.DOCUMENT_PROVIDER"
- android:value="true" />
+ <intent-filter>
+ <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+ </intent-filter>
</provider>
</application>
</manifest>
diff --git a/packages/Keyguard/res/drawable-hdpi/progress_bg_holo_light.9.png b/packages/Keyguard/res/drawable-hdpi/progress_bg_holo_light.9.png
new file mode 100644
index 0000000..2d79280
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/progress_bg_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/progress_primary_holo_light.9.png b/packages/Keyguard/res/drawable-hdpi/progress_primary_holo_light.9.png
new file mode 100644
index 0000000..543cb85
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/progress_secondary_holo_light.9.png b/packages/Keyguard/res/drawable-hdpi/progress_secondary_holo_light.9.png
new file mode 100644
index 0000000..4497058
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_control_disabled_holo.png b/packages/Keyguard/res/drawable-hdpi/scrubber_control_disabled_holo.png
new file mode 100644
index 0000000..ba77899
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_control_focused_holo.png b/packages/Keyguard/res/drawable-hdpi/scrubber_control_focused_holo.png
new file mode 100644
index 0000000..539ee22
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_control_focused_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_control_normal_holo.png b/packages/Keyguard/res/drawable-hdpi/scrubber_control_normal_holo.png
new file mode 100644
index 0000000..9a4ea2f
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_control_normal_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_control_pressed_holo.png b/packages/Keyguard/res/drawable-hdpi/scrubber_control_pressed_holo.png
new file mode 100644
index 0000000..e6b11de
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_control_pressed_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_primary_holo.9.png b/packages/Keyguard/res/drawable-hdpi/scrubber_primary_holo.9.png
new file mode 100644
index 0000000..822e8d11
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_secondary_holo.9.png b/packages/Keyguard/res/drawable-hdpi/scrubber_secondary_holo.9.png
new file mode 100644
index 0000000..be4253e
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-hdpi/scrubber_track_holo_light.9.png b/packages/Keyguard/res/drawable-hdpi/scrubber_track_holo_light.9.png
new file mode 100644
index 0000000..2334e14
--- /dev/null
+++ b/packages/Keyguard/res/drawable-hdpi/scrubber_track_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/progress_bg_holo_light.9.png b/packages/Keyguard/res/drawable-mdpi/progress_bg_holo_light.9.png
new file mode 100644
index 0000000..ff40433
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/progress_bg_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/progress_primary_holo_light.9.png b/packages/Keyguard/res/drawable-mdpi/progress_primary_holo_light.9.png
new file mode 100644
index 0000000..d5f874d
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/progress_secondary_holo_light.9.png b/packages/Keyguard/res/drawable-mdpi/progress_secondary_holo_light.9.png
new file mode 100644
index 0000000..f027007
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_control_disabled_holo.png b/packages/Keyguard/res/drawable-mdpi/scrubber_control_disabled_holo.png
new file mode 100644
index 0000000..981facd
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_control_focused_holo.png b/packages/Keyguard/res/drawable-mdpi/scrubber_control_focused_holo.png
new file mode 100644
index 0000000..d432f42
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_control_focused_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_control_normal_holo.png b/packages/Keyguard/res/drawable-mdpi/scrubber_control_normal_holo.png
new file mode 100644
index 0000000..7bb749e
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_control_normal_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_control_pressed_holo.png b/packages/Keyguard/res/drawable-mdpi/scrubber_control_pressed_holo.png
new file mode 100644
index 0000000..43d826e
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_control_pressed_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_primary_holo.9.png b/packages/Keyguard/res/drawable-mdpi/scrubber_primary_holo.9.png
new file mode 100644
index 0000000..98ac428
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_secondary_holo.9.png b/packages/Keyguard/res/drawable-mdpi/scrubber_secondary_holo.9.png
new file mode 100644
index 0000000..d8b563b
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-mdpi/scrubber_track_holo_light.9.png b/packages/Keyguard/res/drawable-mdpi/scrubber_track_holo_light.9.png
new file mode 100644
index 0000000..47c5dd9
--- /dev/null
+++ b/packages/Keyguard/res/drawable-mdpi/scrubber_track_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/progress_bg_holo_light.9.png b/packages/Keyguard/res/drawable-xhdpi/progress_bg_holo_light.9.png
new file mode 100644
index 0000000..dff0939
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/progress_bg_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/progress_primary_holo_light.9.png b/packages/Keyguard/res/drawable-xhdpi/progress_primary_holo_light.9.png
new file mode 100644
index 0000000..60b8198
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/progress_secondary_holo_light.9.png b/packages/Keyguard/res/drawable-xhdpi/progress_secondary_holo_light.9.png
new file mode 100644
index 0000000..11b31be
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_control_disabled_holo.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_disabled_holo.png
new file mode 100644
index 0000000..ffe913d
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_control_focused_holo.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_focused_holo.png
new file mode 100644
index 0000000..2fccb8f
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_focused_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_control_normal_holo.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_normal_holo.png
new file mode 100644
index 0000000..a638501
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_normal_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_control_pressed_holo.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_pressed_holo.png
new file mode 100644
index 0000000..f0e65ea
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_control_pressed_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_primary_holo.9.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_primary_holo.9.png
new file mode 100644
index 0000000..04f6ae3
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_secondary_holo.9.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_secondary_holo.9.png
new file mode 100644
index 0000000..7fef98d
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xhdpi/scrubber_track_holo_light.9.png b/packages/Keyguard/res/drawable-xhdpi/scrubber_track_holo_light.9.png
new file mode 100644
index 0000000..a712169
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xhdpi/scrubber_track_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/kg_add_widget_pressed.png b/packages/Keyguard/res/drawable-xxhdpi/kg_add_widget_pressed.png
new file mode 100644
index 0000000..0c0838b
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/kg_add_widget_pressed.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/progress_bg_holo_light.9.png b/packages/Keyguard/res/drawable-xxhdpi/progress_bg_holo_light.9.png
new file mode 100644
index 0000000..60a8e22
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/progress_bg_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/progress_primary_holo_light.9.png b/packages/Keyguard/res/drawable-xxhdpi/progress_primary_holo_light.9.png
new file mode 100644
index 0000000..18384d3
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/progress_primary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/progress_secondary_holo_light.9.png b/packages/Keyguard/res/drawable-xxhdpi/progress_secondary_holo_light.9.png
new file mode 100644
index 0000000..82eb615
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/progress_secondary_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_disabled_holo.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_disabled_holo.png
new file mode 100644
index 0000000..d1ac7ae
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_disabled_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_focused_holo.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_focused_holo.png
new file mode 100644
index 0000000..58a2976
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_focused_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_normal_holo.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_normal_holo.png
new file mode 100644
index 0000000..6f696fd
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_normal_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_pressed_holo.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_pressed_holo.png
new file mode 100644
index 0000000..faae4e3
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_control_pressed_holo.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_primary_holo.9.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_primary_holo.9.png
new file mode 100644
index 0000000..82c2b7e
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_primary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_secondary_holo.9.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_secondary_holo.9.png
new file mode 100644
index 0000000..800d95e
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_secondary_holo.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable-xxhdpi/scrubber_track_holo_light.9.png b/packages/Keyguard/res/drawable-xxhdpi/scrubber_track_holo_light.9.png
new file mode 100644
index 0000000..9991f7f
--- /dev/null
+++ b/packages/Keyguard/res/drawable-xxhdpi/scrubber_track_holo_light.9.png
Binary files differ
diff --git a/packages/Keyguard/res/drawable/scrubber_control_selector_holo.xml b/packages/Keyguard/res/drawable/scrubber_control_selector_holo.xml
new file mode 100644
index 0000000..d09b1a5
--- /dev/null
+++ b/packages/Keyguard/res/drawable/scrubber_control_selector_holo.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false" android:drawable="@drawable/scrubber_control_disabled_holo" />
+ <item android:state_pressed="true" android:drawable="@drawable/scrubber_control_pressed_holo" />
+ <item android:state_selected="true" android:drawable="@drawable/scrubber_control_focused_holo" />
+ <item android:drawable="@drawable/scrubber_control_normal_holo" />
+</selector>
diff --git a/packages/Keyguard/res/drawable/scrubber_progress_horizontal_holo_light.xml b/packages/Keyguard/res/drawable/scrubber_progress_horizontal_holo_light.xml
new file mode 100644
index 0000000..f07c742
--- /dev/null
+++ b/packages/Keyguard/res/drawable/scrubber_progress_horizontal_holo_light.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@android:id/background"
+ android:drawable="@drawable/scrubber_track_holo_light" />
+ <item android:id="@android:id/secondaryProgress">
+ <scale android:scaleWidth="100%"
+ android:drawable="@drawable/scrubber_secondary_holo" />
+ </item>
+ <item android:id="@android:id/progress">
+ <scale android:scaleWidth="100%"
+ android:drawable="@drawable/scrubber_primary_holo" />
+ </item>
+</layer-list>
diff --git a/packages/Keyguard/res/layout/keyguard_transport_control_view.xml b/packages/Keyguard/res/layout/keyguard_transport_control_view.xml
index 81c7425..a0b59a7 100644
--- a/packages/Keyguard/res/layout/keyguard_transport_control_view.xml
+++ b/packages/Keyguard/res/layout/keyguard_transport_control_view.xml
@@ -75,7 +75,8 @@
<SeekBar
android:id="@+id/transient_seek_bar"
android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ style="@style/Widget.TransportControl.SeekBar" />
<TextView
android:id="@+id/transient_seek_time_elapsed"
android:layout_width="wrap_content"
diff --git a/packages/Keyguard/res/values-ar/strings.xml b/packages/Keyguard/res/values-ar/strings.xml
index 57125bd..fa778b3 100644
--- a/packages/Keyguard/res/values-ar/strings.xml
+++ b/packages/Keyguard/res/values-ar/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"زر الإيقاف المؤقت"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"زر التشغيل"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"زر الإيقاف"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"رائعة"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"معارضة"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"قلب"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"إلغاء القفل للمتابعة"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"تم إلغاء التشغيل"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"أسقط <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> للحذف."</string>
diff --git a/packages/Keyguard/res/values-bg/strings.xml b/packages/Keyguard/res/values-bg/strings.xml
index 23478c7..468570f 100644
--- a/packages/Keyguard/res/values-bg/strings.xml
+++ b/packages/Keyguard/res/values-bg/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Бутон за пауза"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Бутон за пускане"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Бутон за спиране"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Харесва ми"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Не ми харесва"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Сърце"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Отключете, за да продължите"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Стартирането е анулирано"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Пуснете <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>, за да изтриете."</string>
diff --git a/packages/Keyguard/res/values-cs/strings.xml b/packages/Keyguard/res/values-cs/strings.xml
index 8349703..b4598cb 100644
--- a/packages/Keyguard/res/values-cs/strings.xml
+++ b/packages/Keyguard/res/values-cs/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Tlačítko Pozastavit"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Tlačítko Přehrát"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Tlačítko Zastavit"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Líbí se mi"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Nelíbí se mi"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Srdíčko"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Pokračujte odemknutím"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Spuštění zrušeno"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Uvolněním dotyku widget <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> vymažete."</string>
diff --git a/packages/Keyguard/res/values-da/strings.xml b/packages/Keyguard/res/values-da/strings.xml
index 7f94f63..0cff37c 100644
--- a/packages/Keyguard/res/values-da/strings.xml
+++ b/packages/Keyguard/res/values-da/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Pause-knap"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Afspil-knap"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stop-knap"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Synes om"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Synes ikke om"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Hjerte"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Lås op for at gå videre"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Starten blev annulleret"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Slip <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> for at slette."</string>
diff --git a/packages/Keyguard/res/values-en-rGB/strings.xml b/packages/Keyguard/res/values-en-rGB/strings.xml
index 3ab8ff5..892bab7 100644
--- a/packages/Keyguard/res/values-en-rGB/strings.xml
+++ b/packages/Keyguard/res/values-en-rGB/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Pause button"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Play button"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stop button"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Thumbs up"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Thumbs down"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Heart"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Unlock to continue"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Launch cancelled"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Drop <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> to delete."</string>
diff --git a/packages/Keyguard/res/values-en-rIN/strings.xml b/packages/Keyguard/res/values-en-rIN/strings.xml
index 3ab8ff5..892bab7 100644
--- a/packages/Keyguard/res/values-en-rIN/strings.xml
+++ b/packages/Keyguard/res/values-en-rIN/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Pause button"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Play button"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stop button"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Thumbs up"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Thumbs down"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Heart"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Unlock to continue"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Launch cancelled"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Drop <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> to delete."</string>
diff --git a/packages/Keyguard/res/values-es-rUS/strings.xml b/packages/Keyguard/res/values-es-rUS/strings.xml
index bafd66d..2278efd 100644
--- a/packages/Keyguard/res/values-es-rUS/strings.xml
+++ b/packages/Keyguard/res/values-es-rUS/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Botón de pausa"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Botón de reproducción"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Botón de detención"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Votos a favor"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Votos en contra"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Corazón"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Desbloquea para continuar."</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Se canceló el inicio."</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Suelta <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> para eliminarlo."</string>
diff --git a/packages/Keyguard/res/values-fa/strings.xml b/packages/Keyguard/res/values-fa/strings.xml
index e0eb1e1..4b0bce5 100644
--- a/packages/Keyguard/res/values-fa/strings.xml
+++ b/packages/Keyguard/res/values-fa/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"دکمه توقف موقت"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"دکمه پخش"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"دکمه توقف"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"رأی موافق"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"رأی مخالف"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"قلب"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"برای ادامه قفل را باز کنید"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"راهاندازی لغو شد"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"جهت حذف، <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> را بکشید."</string>
diff --git a/packages/Keyguard/res/values-fi/strings.xml b/packages/Keyguard/res/values-fi/strings.xml
index a719610..68d8227 100644
--- a/packages/Keyguard/res/values-fi/strings.xml
+++ b/packages/Keyguard/res/values-fi/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Tauko-painike"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Toista-painike"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Keskeytä-painike"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Tykkään"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"En tykkää"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Sydän"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Jatka poistamalla lukitus"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Käynnistys peruutettu"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Poista <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> pudottamalla."</string>
diff --git a/packages/Keyguard/res/values-fr-rCA/strings.xml b/packages/Keyguard/res/values-fr-rCA/strings.xml
index 1251f4b..8d07cfd 100644
--- a/packages/Keyguard/res/values-fr-rCA/strings.xml
+++ b/packages/Keyguard/res/values-fr-rCA/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Bouton de pause"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Bouton de lecture"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Bouton d\'arrêt"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"J\'aime"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Je n\'aime pas"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Cœur"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Déverrouiller pour continuer"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Lancement annulé"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Déposez <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> pour supprimer."</string>
diff --git a/packages/Keyguard/res/values-fr/strings.xml b/packages/Keyguard/res/values-fr/strings.xml
index cb78f8d..37fb8fb 100644
--- a/packages/Keyguard/res/values-fr/strings.xml
+++ b/packages/Keyguard/res/values-fr/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Bouton de pause"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Bouton de lecture"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Bouton d\'arrêt"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"J\'aime"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Je n\'aime pas"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Cœur"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Déverrouillez l\'appareil pour continuer."</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Lancement annulé."</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Relâchez le widget \"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>\" pour le supprimer."</string>
diff --git a/packages/Keyguard/res/values-hi/strings.xml b/packages/Keyguard/res/values-hi/strings.xml
index 304f14f..058a2f7 100644
--- a/packages/Keyguard/res/values-hi/strings.xml
+++ b/packages/Keyguard/res/values-hi/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"पॉज़ करें बटन"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"चलाएं बटन"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"रोकें बटन"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"पसंद"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"नापसंद"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"दिल"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"जारी रखने के लिए अनलॉक करें"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"लॉन्च रद्द कर दिया गया"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"हटाने के लिए <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> खींचें."</string>
diff --git a/packages/Keyguard/res/values-hr/strings.xml b/packages/Keyguard/res/values-hr/strings.xml
index 073c4ca..99270a9 100644
--- a/packages/Keyguard/res/values-hr/strings.xml
+++ b/packages/Keyguard/res/values-hr/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Gumb Pauza"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Gumb Reprodukcija"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Gumb Zaustavi"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Palac gore"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Palac dolje"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Srce"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Otključajte za nastavak"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Pokretanje je otkazano"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Ispustite widget <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> da biste ga izbrisali."</string>
diff --git a/packages/Keyguard/res/values-hy-rAM/strings.xml b/packages/Keyguard/res/values-hy-rAM/strings.xml
index db22282..2c10d39 100644
--- a/packages/Keyguard/res/values-hy-rAM/strings.xml
+++ b/packages/Keyguard/res/values-hy-rAM/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Դադարի կոճակ"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Նվագարկման կոճակ"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Կանգի կոճակ"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Լավն է"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Լավը չէ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Սիրտ"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Շարունակելու համար ապակողպեք"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Գործարկումը չեղարկվեց"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g> վիջեթը ջնջելու համար բաց թողեք այն այստեղ:"</string>
diff --git a/packages/Keyguard/res/values-in/strings.xml b/packages/Keyguard/res/values-in/strings.xml
index 380c34e..3b2de3d 100644
--- a/packages/Keyguard/res/values-in/strings.xml
+++ b/packages/Keyguard/res/values-in/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Tombol jeda"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Tombol putar"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Tombol hentikan"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Bagus"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Jelek"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Hati"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Buka kunci untuk melanjutkan"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Peluncuran dibatalkan"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Jatuhkan <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> untuk menghapus."</string>
diff --git a/packages/Keyguard/res/values-ja/strings.xml b/packages/Keyguard/res/values-ja/strings.xml
index 1b19110..c7e0447 100644
--- a/packages/Keyguard/res/values-ja/strings.xml
+++ b/packages/Keyguard/res/values-ja/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"一時停止ボタン"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"再生ボタン"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"停止ボタン"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"グッド"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"イマイチ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"ハート"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"続行するにはロックを解除してください"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"起動をキャンセルしました"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"削除するには<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>をドロップしてください。"</string>
diff --git a/packages/Keyguard/res/values-ka-rGE/strings.xml b/packages/Keyguard/res/values-ka-rGE/strings.xml
index f1fabba..f643178 100644
--- a/packages/Keyguard/res/values-ka-rGE/strings.xml
+++ b/packages/Keyguard/res/values-ka-rGE/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"პაუზის ღილაკი"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"დაკვრის ღილაკი"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stop ღილაკი"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"ზევით აწეული ცერი"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"ქვევით დახრილი ცერი"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"გული"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"განბლოკეთ გასაგრძელებლად"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"გამოძახება გაუქმდა"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"ჩააგდეთ <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> წასაშლელად."</string>
diff --git a/packages/Keyguard/res/values-km-rKH/strings.xml b/packages/Keyguard/res/values-km-rKH/strings.xml
index c88279b..75cebac 100644
--- a/packages/Keyguard/res/values-km-rKH/strings.xml
+++ b/packages/Keyguard/res/values-km-rKH/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"ប៊ូតុងផ្អាក"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"ប៊ូតុងចាក់"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"ប៊ូតុងបញ្ឈប់"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"មេដៃឡើង"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"មេដៃចុះ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"បេះដូង"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"ដោះសោ ដើម្បីបន្ត"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"បានបោះបង់ការចាប់ផ្ដើម"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"ទម្លាក់ <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> ដើម្បីលុប។"</string>
diff --git a/packages/Keyguard/res/values-ko/strings.xml b/packages/Keyguard/res/values-ko/strings.xml
index e01a2e1..a1b5096 100644
--- a/packages/Keyguard/res/values-ko/strings.xml
+++ b/packages/Keyguard/res/values-ko/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"일시중지 버튼"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"재생 버튼"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"중지 버튼"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"좋아요"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"싫어요"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"하트"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"계속하려면 잠금해제합니다."</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"실행 취소됨"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"삭제하려면 <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>을(를) 드롭합니다."</string>
diff --git a/packages/Keyguard/res/values-lo-rLA/strings.xml b/packages/Keyguard/res/values-lo-rLA/strings.xml
index 94d2777..a9ba8ba 100644
--- a/packages/Keyguard/res/values-lo-rLA/strings.xml
+++ b/packages/Keyguard/res/values-lo-rLA/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"ປຸ່ມຢຸດຊົ່ວຄາວ"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"ປຸ່ມຫຼິ້ນ"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"ປຸ່ມຢຸດ"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"ເລື່ອນນິ້ວໂປ້ຂຶ້ນ"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"ເລື່ອນນິ້ວໂປ້ລົງ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"ຫົວໃຈ"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"ປົດລັອກເພື່ອດຳເນີນການຕໍ່"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"ການເປີດໃຊ້ຖືກຍົກເລີກ"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"ວາງ <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> ເພື່ອລຶບ."</string>
diff --git a/packages/Keyguard/res/values-mn-rMN/strings.xml b/packages/Keyguard/res/values-mn-rMN/strings.xml
index 82a9e58..e4c07eb 100644
--- a/packages/Keyguard/res/values-mn-rMN/strings.xml
+++ b/packages/Keyguard/res/values-mn-rMN/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Түр зогсоох товч"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Тоглуулах товч"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Зогсоох товч"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Сайн"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Онцгүй"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Зүрх"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Үргэлжлүүлэхийн тулд түгжээг тайлна уу"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Эхлүүлэхийг цуцалсан"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Устгахын тулд <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>-г тавина уу."</string>
diff --git a/packages/Keyguard/res/values-ms-rMY/strings.xml b/packages/Keyguard/res/values-ms-rMY/strings.xml
index 75213fe..17ec2e6 100644
--- a/packages/Keyguard/res/values-ms-rMY/strings.xml
+++ b/packages/Keyguard/res/values-ms-rMY/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Butang jeda"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Butang main"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Butang berhenti"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Menyukai"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Tidak diterima"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Jantung"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Buka kunci untuk meneruskan"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Pelancaran dibatalkan"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Jatuhkan <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> untuk memadam."</string>
diff --git a/packages/Keyguard/res/values-pt/strings.xml b/packages/Keyguard/res/values-pt/strings.xml
index bf66a99..3c668a0 100644
--- a/packages/Keyguard/res/values-pt/strings.xml
+++ b/packages/Keyguard/res/values-pt/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Botão \"Pausar\""</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Botão \"Reproduzir\""</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Botão \"Parar\""</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Gostei"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Não gostei"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Coração"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Desbloqueie para continuar"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Inicialização cancelada"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Solte <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> para excluir."</string>
diff --git a/packages/Keyguard/res/values-ro/strings.xml b/packages/Keyguard/res/values-ro/strings.xml
index 194861a..cebf0df 100644
--- a/packages/Keyguard/res/values-ro/strings.xml
+++ b/packages/Keyguard/res/values-ro/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Butonul Întrerupeți"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Butonul Redați"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Butonul Opriți"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Vot pozitiv"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Vot negativ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Inimă"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Deblocați pentru a continua"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Lansare anulată"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Eliberați <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> pentru a șterge."</string>
diff --git a/packages/Keyguard/res/values-ru/strings.xml b/packages/Keyguard/res/values-ru/strings.xml
index 2d57be61..d8a457d 100644
--- a/packages/Keyguard/res/values-ru/strings.xml
+++ b/packages/Keyguard/res/values-ru/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Кнопка паузы"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Кнопка воспроизведения"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Кнопка выключения"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Нравится"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Не нравится"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Рейтинг"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Разблокируйте экран, чтобы продолжить."</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Запуск отменен."</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Отпустите виджет \"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>\", чтобы удалить его."</string>
diff --git a/packages/Keyguard/res/values-sk/strings.xml b/packages/Keyguard/res/values-sk/strings.xml
index 8711cb9..bd3f058 100644
--- a/packages/Keyguard/res/values-sk/strings.xml
+++ b/packages/Keyguard/res/values-sk/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Tlačidlo Pozastaviť"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Tlačidlo Prehrať"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Tlačidlo Zastaviť"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Páči sa mi"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Nepáči sa mi"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Srdce"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Odomknite zariadenie a pokračujte"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Spustenie bolo zrušené"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Uvoľnením dotyku miniaplikáciu <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> odstránite."</string>
diff --git a/packages/Keyguard/res/values-sl/strings.xml b/packages/Keyguard/res/values-sl/strings.xml
index d7759a86..7e7d893 100644
--- a/packages/Keyguard/res/values-sl/strings.xml
+++ b/packages/Keyguard/res/values-sl/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Gumb za začasno ustavitev"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Gumb za predvajanje"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Gumb za ustavitev"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Všeč mi je"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Ni mi všeč"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Srce"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Za nadaljevanje odklenite"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Zagon je preklican"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Izpustite pripomoček <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>, da ga izbrišete."</string>
diff --git a/packages/Keyguard/res/values-sr/strings.xml b/packages/Keyguard/res/values-sr/strings.xml
index 19bc74e..c5cc39c 100644
--- a/packages/Keyguard/res/values-sr/strings.xml
+++ b/packages/Keyguard/res/values-sr/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Дугме за паузу"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Дугме за репродукцију"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Дугме за заустављање"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Свиђа ми се"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Не свиђа ми се"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Срце"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Откључајте да бисте наставили"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Покретање је отказано"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Отпустите виџет <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> да бисте га избрисали."</string>
diff --git a/packages/Keyguard/res/values-sv/strings.xml b/packages/Keyguard/res/values-sv/strings.xml
index 83475882..dd82711 100644
--- a/packages/Keyguard/res/values-sv/strings.xml
+++ b/packages/Keyguard/res/values-sv/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Pausknappen"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Uppspelningsknappen"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stoppknappen"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Gillar"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Tummen ned"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Hjärta"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Lås upp om du vill fortsätta"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Lanseringen har avbrutits"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Ta bort genom att släppa <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> här."</string>
diff --git a/packages/Keyguard/res/values-sw/strings.xml b/packages/Keyguard/res/values-sw/strings.xml
index aea2e21..5e2b163 100644
--- a/packages/Keyguard/res/values-sw/strings.xml
+++ b/packages/Keyguard/res/values-sw/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Kitufe cha kusitisha"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Kitufe cha kucheza"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Kitufe cha kusitisha"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Bomba"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Si bomba"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Moyo"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Fungua ili uendelee"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Uzinduzi umeghairiwa"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Dondosha <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> ili ufute."</string>
diff --git a/packages/Keyguard/res/values-th/strings.xml b/packages/Keyguard/res/values-th/strings.xml
index 8d80977..3f2c747 100644
--- a/packages/Keyguard/res/values-th/strings.xml
+++ b/packages/Keyguard/res/values-th/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"ปุ่มหยุดชั่วคราว"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"ปุ่มเล่น"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"ปุ่มหยุด"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"สุดยอด"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"ไม่ชอบ"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"หัวใจ"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"ปลดล็อกเพื่อดำเนินการต่อ"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"ยกเลิกการเปิดใช้งานแล้ว"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"ลาก <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> เพื่อลบ"</string>
diff --git a/packages/Keyguard/res/values-tl/strings.xml b/packages/Keyguard/res/values-tl/strings.xml
index 67d26cb..3a33c9f 100644
--- a/packages/Keyguard/res/values-tl/strings.xml
+++ b/packages/Keyguard/res/values-tl/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Button na I-pause"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Button na I-play"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Button na Ihinto"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Thumbs up"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Thumbs down"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Heart"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"I-unlock upang magpatuloy"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Nakansela ang paglunsad"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"I-drop ang <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> upang tanggalin."</string>
diff --git a/packages/Keyguard/res/values-tr/strings.xml b/packages/Keyguard/res/values-tr/strings.xml
index 71356dc..d9c950f 100644
--- a/packages/Keyguard/res/values-tr/strings.xml
+++ b/packages/Keyguard/res/values-tr/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Duraklat düğmesi"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Oynat düğmesi"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Durdur düğmesi"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Beğen"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Beğenme"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Kalp"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Devam etmek için kilidini açın"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Başlatma iptal edildi"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Silmek için <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> widget\'ını bırakın."</string>
diff --git a/packages/Keyguard/res/values-uk/strings.xml b/packages/Keyguard/res/values-uk/strings.xml
index 3c004ce..01bf687 100644
--- a/packages/Keyguard/res/values-uk/strings.xml
+++ b/packages/Keyguard/res/values-uk/strings.xml
@@ -73,7 +73,7 @@
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Кнопка \"Зупинити\""</string>
<string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Подобається"</string>
<string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Не подобається"</string>
- <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Серце"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Рейтинг"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Розблокуйте, щоб продовжити"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Запуск скасовано"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Відпустіть <xliff:g id="WIDGET_INDEX">%1$s</xliff:g>, щоб видалити."</string>
diff --git a/packages/Keyguard/res/values-vi/strings.xml b/packages/Keyguard/res/values-vi/strings.xml
index d5e52d71..6ae8312 100644
--- a/packages/Keyguard/res/values-vi/strings.xml
+++ b/packages/Keyguard/res/values-vi/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"Nút tạm dừng"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Nút phát"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Nút dừng"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Bài hát được đánh dấu thích"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Bài hát được đánh dấu không thích"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Trái tim"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Mở khóa để tiếp tục"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Quá trình khởi chạy bị hủy"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"Thả <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> để xóa."</string>
diff --git a/packages/Keyguard/res/values-zh-rCN/strings.xml b/packages/Keyguard/res/values-zh-rCN/strings.xml
index a62ffac..06d71ff 100644
--- a/packages/Keyguard/res/values-zh-rCN/strings.xml
+++ b/packages/Keyguard/res/values-zh-rCN/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"暂停按钮"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"播放按钮"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"停止按钮"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"我喜欢"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"不喜欢"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"爱心"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"解锁即可继续"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"启动已取消"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"放下<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>即可将其删除。"</string>
diff --git a/packages/Keyguard/res/values-zh-rHK/strings.xml b/packages/Keyguard/res/values-zh-rHK/strings.xml
index b4238e1..724357f 100644
--- a/packages/Keyguard/res/values-zh-rHK/strings.xml
+++ b/packages/Keyguard/res/values-zh-rHK/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"[暫停] 按鈕"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"[播放] 按鈕"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"[停止] 按鈕"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"喜歡"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"不喜歡"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"心形"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"請解鎖以繼續"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"已取消啟動"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"拖放「<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>」即可刪除。"</string>
diff --git a/packages/Keyguard/res/values-zh-rTW/strings.xml b/packages/Keyguard/res/values-zh-rTW/strings.xml
index 01702f8..f3f1724 100644
--- a/packages/Keyguard/res/values-zh-rTW/strings.xml
+++ b/packages/Keyguard/res/values-zh-rTW/strings.xml
@@ -71,12 +71,9 @@
<string name="keyguard_accessibility_transport_pause_description" msgid="8455979545295224302">"[暫停] 按鈕"</string>
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"[播放] 按鈕"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"[停止] 按鈕"</string>
- <!-- no translation found for keyguard_accessibility_transport_thumbs_up_description (4535938129663903194) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_thumbs_down_description (8101433677192177861) -->
- <skip />
- <!-- no translation found for keyguard_accessibility_transport_heart_description (2336943232474689887) -->
- <skip />
+ <string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"喜歡"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"不喜歡"</string>
+ <string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"愛心"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"先解鎖才能繼續操作"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"已取消啟動"</string>
<string name="keyguard_accessibility_delete_widget_start" msgid="4096550552634391451">"拖放「<xliff:g id="WIDGET_INDEX">%1$s</xliff:g>」即可將其刪除。"</string>
diff --git a/packages/Keyguard/res/values/styles.xml b/packages/Keyguard/res/values/styles.xml
index 44f560f..9fd8f31 100644
--- a/packages/Keyguard/res/values/styles.xml
+++ b/packages/Keyguard/res/values/styles.xml
@@ -68,4 +68,18 @@
<item name="android:textSize">@dimen/widget_big_font_size</item>
</style>
+ <style name="Widget.TransportControl.SeekBar" parent="@android:style/Widget.Holo.SeekBar">
+ <item name="android:indeterminateOnly">false</item>
+ <item name="android:progressDrawable">@drawable/scrubber_progress_horizontal_holo_light</item>
+ <item name="android:indeterminateDrawable">@drawable/scrubber_progress_horizontal_holo_light</item>
+ <item name="android:minHeight">13dip</item>
+ <item name="android:maxHeight">13dip</item>
+ <item name="android:thumb">@drawable/scrubber_control_selector_holo</item>
+ <item name="android:thumbOffset">16dip</item>
+ <item name="android:focusable">true</item>
+ <item name="android:paddingStart">16dip</item>
+ <item name="android:paddingEnd">16dip</item>
+ <item name="android:mirrorForRtl">true</item>
+ </style>
+
</resources>
diff --git a/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
index 03b09b1..c33f174 100644
--- a/packages/Keyguard/src/com/android/keyguard/CarrierText.java
+++ b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
@@ -47,6 +47,14 @@
mSimState = simState;
updateCarrierText(mSimState, mPlmn, mSpn);
}
+
+ public void onScreenTurnedOff(int why) {
+ setSelected(false);
+ };
+
+ public void onScreenTurnedOn() {
+ setSelected(true);
+ };
};
/**
* The status of this lock screen. Primarily used for widgets on LockScreen.
@@ -79,7 +87,8 @@
protected void onFinishInflate() {
super.onFinishInflate();
mSeparator = getResources().getString(R.string.kg_text_message_separator);
- setSelected(true); // Allow marquee to work.
+ final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
+ setSelected(screenOn); // Allow marquee to work.
}
@Override
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
index ad59c02..69075ec 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java
@@ -163,6 +163,12 @@
mBatteryIsLow = status.isBatteryLow();
update();
}
+ public void onScreenTurnedOff(int why) {
+ setSelected(false);
+ };
+ public void onScreenTurnedOn() {
+ setSelected(true);
+ };
};
public KeyguardMessageArea(Context context) {
@@ -174,9 +180,6 @@
mLockPatternUtils = new LockPatternUtils(context);
- // This is required to ensure marquee works
- setSelected(true);
-
// Registering this callback immediately updates the battery state, among other things.
mUpdateMonitor = KeyguardUpdateMonitor.getInstance(getContext());
mUpdateMonitor.registerCallback(mInfoCallback);
@@ -187,6 +190,12 @@
update();
}
+ @Override
+ protected void onFinishInflate() {
+ final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
+ setSelected(screenOn); // This is required to ensure marquee works
+ }
+
public void securityMessageChanged() {
setAlpha(1f);
mShowingMessage = true;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
index ffb619b..3e42c14 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
@@ -21,6 +21,7 @@
import android.graphics.Typeface;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.util.Slog;
import android.view.View;
import android.widget.GridLayout;
@@ -56,6 +57,14 @@
refresh();
}
};
+
+ public void onScreenTurnedOn() {
+ setEnableMarquee(true);
+ };
+
+ public void onScreenTurnedOff(int why) {
+ setEnableMarquee(false);
+ };
};
public KeyguardStatusView(Context context) {
@@ -70,22 +79,18 @@
super(context, attrs, defStyle);
}
+ private void setEnableMarquee(boolean enabled) {
+ if (DEBUG) Log.v(TAG, (enabled ? "Enable" : "Disable") + " transport text marquee");
+ if (mAlarmStatusView != null) mAlarmStatusView.setSelected(enabled);
+ }
+
@Override
protected void onFinishInflate() {
super.onFinishInflate();
-
mAlarmStatusView = (TextView) findViewById(R.id.alarm_status);
mLockPatternUtils = new LockPatternUtils(getContext());
-
- // Required to get Marquee to work.
- final View marqueeViews[] = { mAlarmStatusView };
- for (int i = 0; i < marqueeViews.length; i++) {
- View v = marqueeViews[i];
- if (v == null) {
- throw new RuntimeException("Can't find widget at index " + i);
- }
- v.setSelected(true);
- }
+ final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
+ setEnableMarquee(screenOn);
refresh();
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
index 6d7b743..ca4892d 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
@@ -22,6 +22,8 @@
import android.graphics.Bitmap;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.media.MediaMetadataEditor;
@@ -198,6 +200,16 @@
KeyguardHostView.TransportControlCallback mTransportControlCallback;
+ private final KeyguardUpdateMonitorCallback mUpdateMonitor
+ = new KeyguardUpdateMonitorCallback() {
+ public void onScreenTurnedOff(int why) {
+ setEnableMarquee(false);
+ };
+ public void onScreenTurnedOn() {
+ setEnableMarquee(true);
+ };
+ };
+
public KeyguardTransportControlView(Context context, AttributeSet attrs) {
super(context, attrs);
if (DEBUG) Log.v(TAG, "Create TCV " + this);
@@ -250,6 +262,12 @@
mTransportControlCallback = transportControlCallback;
}
+ private void setEnableMarquee(boolean enabled) {
+ if (DEBUG) Log.v(TAG, (enabled ? "Enable" : "Disable") + " transport text marquee");
+ if (mTrackTitle != null) mTrackTitle.setSelected(enabled);
+ if (mTrackArtistAlbum != null) mTrackTitle.setSelected(enabled);
+ }
+
@Override
public void onFinishInflate() {
super.onFinishInflate();
@@ -257,9 +275,7 @@
mMetadataContainer = (ViewGroup) findViewById(R.id.metadata_container);
mBadge = (ImageView) findViewById(R.id.badge);
mTrackTitle = (TextView) findViewById(R.id.title);
- mTrackTitle.setSelected(true); // enable marquee
mTrackArtistAlbum = (TextView) findViewById(R.id.artist_album);
- mTrackArtistAlbum.setSelected(true);
mTransientSeek = findViewById(R.id.transient_seek);
mTransientSeekBar = (SeekBar) findViewById(R.id.transient_seek_bar);
mTransientSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangeListener);
@@ -273,6 +289,8 @@
view.setOnClickListener(mTransportCommandListener);
view.setOnLongClickListener(mTransportShowSeekBarListener);
}
+ final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
+ setEnableMarquee(screenOn);
}
@Override
@@ -285,6 +303,7 @@
}
if (DEBUG) Log.v(TAG, "Registering TCV " + this);
mAudioManager.registerRemoteController(mRemoteController);
+ KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitor);
}
@Override
@@ -301,6 +320,7 @@
super.onDetachedFromWindow();
if (DEBUG) Log.v(TAG, "Unregistering TCV " + this);
mAudioManager.unregisterRemoteController(mRemoteController);
+ KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitor);
mUserSeeking = false;
}
@@ -310,6 +330,7 @@
final ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
mBadge.setColorFilter(new ColorMatrixColorFilter(cm));
+ mBadge.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SCREEN));
mBadge.setImageAlpha(0xef);
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 76deb77..45cd3d4 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -92,7 +92,8 @@
protected static final int MSG_SET_PLAYBACK_STATE = 316;
protected static final int MSG_USER_INFO_CHANGED = 317;
protected static final int MSG_REPORT_EMERGENCY_CALL_ACTION = 318;
-
+ private static final int MSG_SCREEN_TURNED_ON = 319;
+ private static final int MSG_SCREEN_TURNED_OFF = 320;
private static KeyguardUpdateMonitor sInstance;
@@ -127,6 +128,8 @@
private boolean mSwitchingUser;
+ private boolean mScreenOn;
+
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -185,6 +188,12 @@
case MSG_REPORT_EMERGENCY_CALL_ACTION:
handleReportEmergencyCallAction();
break;
+ case MSG_SCREEN_TURNED_OFF:
+ handleScreenTurnedOff(msg.arg1);
+ break;
+ case MSG_SCREEN_TURNED_ON:
+ handleScreenTurnedOn();
+ break;
}
}
};
@@ -411,6 +420,26 @@
return sInstance;
}
+ protected void handleScreenTurnedOn() {
+ final int count = mCallbacks.size();
+ for (int i = 0; i < count; i++) {
+ KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+ if (cb != null) {
+ cb.onScreenTurnedOn();
+ }
+ }
+ }
+
+ protected void handleScreenTurnedOff(int arg1) {
+ final int count = mCallbacks.size();
+ for (int i = 0; i < count; i++) {
+ KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+ if (cb != null) {
+ cb.onScreenTurnedOff(arg1);
+ }
+ }
+ }
+
/**
* IMPORTANT: Must be called from UI thread.
*/
@@ -1041,4 +1070,24 @@
public DisplayClientState getCachedDisplayClientState() {
return mDisplayClientState;
}
+
+ // TODO: use these callbacks elsewhere in place of the existing notifyScreen*()
+ // (KeyguardViewMediator, KeyguardHostView)
+ public void dispatchScreenTurnedOn() {
+ synchronized (this) {
+ mScreenOn = true;
+ }
+ mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_ON);
+ }
+
+ public void dispatchScreenTurndOff(int why) {
+ synchronized(this) {
+ mScreenOn = false;
+ }
+ mHandler.sendMessage(mHandler.obtainMessage(MSG_SCREEN_TURNED_OFF, why, 0));
+ }
+
+ public boolean isScreenOn() {
+ return mScreenOn;
+ }
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index e6dddab..76f9637 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -19,6 +19,7 @@
import android.app.admin.DevicePolicyManager;
import android.graphics.Bitmap;
import android.media.AudioManager;
+import android.view.WindowManagerPolicy;
import com.android.internal.telephony.IccCardConstants;
@@ -137,7 +138,23 @@
*/
void onEmergencyCallAction() { }
+ /**
+ * Called when the transport background changes.
+ * @param bitmap
+ */
public void onSetBackground(Bitmap bitmap) {
- // THIS SPACE FOR RENT
}
+
+ /**
+ * Called when the screen turns on
+ */
+ public void onScreenTurnedOn() { }
+
+ /**
+ * Called when the screen turns off
+ * @param why {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER},
+ * {@link WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT} or
+ * {@link WindowManagerPolicy#OFF_BECAUSE_OF_PROX_SENSOR}.
+ */
+ public void onScreenTurnedOff(int why) { }
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
index dc28bd0..a37a3a4 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
@@ -599,6 +599,7 @@
doKeyguardLocked(null);
}
}
+ KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurndOff(why);
}
private void doKeyguardLaterLocked() {
@@ -664,6 +665,7 @@
notifyScreenOnLocked(callback);
}
}
+ KeyguardUpdateMonitor.getInstance(mContext).dispatchScreenTurnedOn();
maybeSendUserPresentBroadcast();
}
diff --git a/packages/PrintSpooler/res/values-af/strings.xml b/packages/PrintSpooler/res/values-af/strings.xml
index 133dcfa..f307f2a 100644
--- a/packages/PrintSpooler/res/values-af/strings.xml
+++ b/packages/PrintSpooler/res/values-af/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Drukvoorskou"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installeer PDF-bekyker vir voorskou"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Drukkerprogram het omgeval"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"onbeskikbaar"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Bladsye"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Genereer uitdruktaak"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Stoor as PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Alle drukkers…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Deursoek"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alle drukkers"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Voeg diens by"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Kies drukdiens"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Soek tans vir drukkers"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Druk tans <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Kanselleer tans <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-am/strings.xml b/packages/PrintSpooler/res/values-am/strings.xml
index 1542bab..49928750 100644
--- a/packages/PrintSpooler/res/values-am/strings.xml
+++ b/packages/PrintSpooler/res/values-am/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"የህትመት ቅድመ እይታ"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"ለቅድመ-እይታ የፒ ዲ ኤፍ መመልከቻ ይጫኑ"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"የአታሚ መተግበሪያ ተበላሽቷል"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"አይገኝም"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"የህትመት ስራን በማመንጨት ላይ"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"እንደ ፒ ዲ ኤፍ አስቀምጥ"</string>
<string name="all_printers" msgid="5018829726861876202">"ሁሉም አታሚዎች…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"ፍለጋ"</string>
<string name="all_printers_label" msgid="3178848870161526399">"ሁሉም አታሚዎች"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"አገልግሎት አክል"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"የህትመት አገልግሎት ይምረጡ"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>ን በማተም ላይ"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>ን በመተው ላይ"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"የአታሚ ስህተት <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ar/strings.xml b/packages/PrintSpooler/res/values-ar/strings.xml
index 042cda8..03f62b8 100644
--- a/packages/PrintSpooler/res/values-ar/strings.xml
+++ b/packages/PrintSpooler/res/values-ar/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"معاينة قبل الطباعة"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"تثبيت برنامج عرض PDF للمعاينة"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"تعطّل تطبيق الطباعة"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"غير متوفر"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"جارٍ إنشاء مهمة الطباعة"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"حفظ بتنسيق PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"جميع الطابعات…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"بحث"</string>
<string name="all_printers_label" msgid="3178848870161526399">"جميع الطابعات"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"إضافة خدمة"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"اختر خدمة طباعة"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"جارٍ طباعة <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"جارٍ إلغاء <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"خطا في الطابعة <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-be/arrays.xml b/packages/PrintSpooler/res/values-be/arrays.xml
deleted file mode 100644
index d40278c..0000000
--- a/packages/PrintSpooler/res/values-be/arrays.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<resources>
-
- <string-array name="pdf_printer_media_sizes" translatable="false">
- <item>NA_LETTER</item>
- <item>NA_GOVT_LETTER</item>
- <item>NA_LEGAL</item>
- <item>NA_JUNIOR_LEGAL</item>
- <item>NA_LEDGER</item>
- <item>NA_TABLOID</item>
- <item>NA_INDEX_3X5</item>
- <item>NA_INDEX_4X6</item>
- <item>NA_INDEX_5X8</item>
- <item>NA_MONARCH</item>
- <item>NA_QUARTO</item>
- <item>NA_FOOLSCAP</item>
- </string-array>
-
-</resources>
diff --git a/packages/PrintSpooler/res/values-bg/strings.xml b/packages/PrintSpooler/res/values-bg/strings.xml
index c28cbf1..a4e8f53 100644
--- a/packages/PrintSpooler/res/values-bg/strings.xml
+++ b/packages/PrintSpooler/res/values-bg/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Визуализация за печат"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Инсталиране на визуализатор на PDF"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Получи се срив в приложението за отпечатване"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"няма информация"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Заданието за печат се генерира"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Запазване като PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Всички принтери…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Търсене"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Всички принтери"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Добавяне на услуга"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Избиране на услуга за отпечатване"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"„<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>“ се отпечатва"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"„<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>“ се анулира"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Грешка в принтера при „<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>“"</string>
diff --git a/packages/PrintSpooler/res/values-ca/strings.xml b/packages/PrintSpooler/res/values-ca/strings.xml
index 4385966..d7cc213 100644
--- a/packages/PrintSpooler/res/values-ca/strings.xml
+++ b/packages/PrintSpooler/res/values-ca/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Visualització prèvia impressió"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instal·la un lector de PDF per a visualitz. prèvia"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"L\'aplicació d\'impressió ha fallat"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"no disponible"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generant tasca impressió"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Desa com a PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Totes les impressores…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Cerca"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Totes les impressores"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Afegeix un servei"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Selecció del servei d\'impressió"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"S\'està imprimint <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"S\'està cancel·lant <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Error d\'impressora <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-cs/strings.xml b/packages/PrintSpooler/res/values-cs/strings.xml
index 402c467..f435215 100644
--- a/packages/PrintSpooler/res/values-cs/strings.xml
+++ b/packages/PrintSpooler/res/values-cs/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Náhled tisku"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Nainstalovat prohlížeč PDF (umožní náhled)"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplikace tisku selhala"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nedostupné"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Stránky"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Generování úlohy tisku"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Uložit ve formátu PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Všechny tiskárny…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Hledat"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Všechny tiskárny"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Přidat službu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Zvolte službu tisku"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Vyhledávání tiskáren"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Tisk úlohy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Rušení úlohy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-da/strings.xml b/packages/PrintSpooler/res/values-da/strings.xml
index 872158b..c0dcee4 100644
--- a/packages/PrintSpooler/res/values-da/strings.xml
+++ b/packages/PrintSpooler/res/values-da/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Vis udskrift"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installer et PDF-visningsprog. for at se eksempel"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Udskrivningsapp gik ned"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"utilgængelig"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Udskriften generes"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Gem som PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Alle printere..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Søg"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alle printere"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Tilføj tjeneste"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Vælg udskriftstjeneste"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> udskrives"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> annulleres"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Udskriften <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> mislykkedes"</string>
diff --git a/packages/PrintSpooler/res/values-de/strings.xml b/packages/PrintSpooler/res/values-de/strings.xml
index 4e478be..97c8c0e 100644
--- a/packages/PrintSpooler/res/values-de/strings.xml
+++ b/packages/PrintSpooler/res/values-de/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Vorschau drucken"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"PDF-Viewer für Vorschau installieren"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Druck-App abgestürzt"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nicht verfügbar"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Seiten"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Druckauftrag wird generiert..."</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Als PDF speichern"</string>
<string name="all_printers" msgid="5018829726861876202">"Alle Drucker…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Suchen"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alle Drucker"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Dienst hinzufügen"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Druckdienst auswählen"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Suche nach Druckern…"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> wird gedruckt..."</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> wird abgebrochen..."</string>
diff --git a/packages/PrintSpooler/res/values-el/strings.xml b/packages/PrintSpooler/res/values-el/strings.xml
index 174ead3..6bdf19d 100644
--- a/packages/PrintSpooler/res/values-el/strings.xml
+++ b/packages/PrintSpooler/res/values-el/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Προεπισκόπηση εκτύπωσης"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Εγκαταστήστε το PDF viewer για προεπισκόπηση"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Διακοπή λειτουργίας εφαρμογής εκτύπωσης"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"μη διαθέσιμο"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Δημιουργία εργασίας εκτύπωσης"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Αποθήκευση ως PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Όλοι οι εκτυπωτές…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Αναζήτηση"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Όλοι οι εκτυπωτές"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Προσθήκη υπηρεσίας"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Επιλέξτε υπηρεσία εκτύπωσης"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Εκτύπωση <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Ακύρωση <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Σφάλμα εκτυπωτή <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-en-rGB/strings.xml b/packages/PrintSpooler/res/values-en-rGB/strings.xml
index 43bba24..77f275d 100644
--- a/packages/PrintSpooler/res/values-en-rGB/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rGB/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Print preview"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Install PDF viewer for preview"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Printing app crashed"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"unavailable"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pages"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Generating print job"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Save as PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"All printers…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Search"</string>
<string name="all_printers_label" msgid="3178848870161526399">"All printers"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Add service"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Choose print service"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Printing <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelling <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-en-rIN/strings.xml b/packages/PrintSpooler/res/values-en-rIN/strings.xml
index 43bba24..77f275d 100644
--- a/packages/PrintSpooler/res/values-en-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rIN/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Print preview"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Install PDF viewer for preview"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Printing app crashed"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"unavailable"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pages"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Generating print job"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Save as PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"All printers…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Search"</string>
<string name="all_printers_label" msgid="3178848870161526399">"All printers"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Add service"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Choose print service"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Printing <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelling <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-es-rUS/arrays.xml b/packages/PrintSpooler/res/values-es-rUS/arrays.xml
deleted file mode 100644
index d40278c..0000000
--- a/packages/PrintSpooler/res/values-es-rUS/arrays.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<resources>
-
- <string-array name="pdf_printer_media_sizes" translatable="false">
- <item>NA_LETTER</item>
- <item>NA_GOVT_LETTER</item>
- <item>NA_LEGAL</item>
- <item>NA_JUNIOR_LEGAL</item>
- <item>NA_LEDGER</item>
- <item>NA_TABLOID</item>
- <item>NA_INDEX_3X5</item>
- <item>NA_INDEX_4X6</item>
- <item>NA_INDEX_5X8</item>
- <item>NA_MONARCH</item>
- <item>NA_QUARTO</item>
- <item>NA_FOOLSCAP</item>
- </string-array>
-
-</resources>
diff --git a/packages/PrintSpooler/res/values-es-rUS/strings.xml b/packages/PrintSpooler/res/values-es-rUS/strings.xml
index b2bb402..c3cc9cb 100644
--- a/packages/PrintSpooler/res/values-es-rUS/strings.xml
+++ b/packages/PrintSpooler/res/values-es-rUS/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Vista previa de impresión"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalar visualizador de PDF para vista previa"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"La aplicación de impresión falló"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"no disponible"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generando trabajo de impresión"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Guardar como PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Todas las impresoras…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Buscar"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Todas las impresoras"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Agregar servicio"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Elegir servicio de impresión"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Imprimiendo <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelando <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Error de impresora <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-es/strings.xml b/packages/PrintSpooler/res/values-es/strings.xml
index 4014061..4cd820f 100644
--- a/packages/PrintSpooler/res/values-es/strings.xml
+++ b/packages/PrintSpooler/res/values-es/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Vista previa de impresión"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalar visor PDF para obtener vista previa"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Error de aplicación de impresión"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"no disponible"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Páginas"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Generando trabajo de impresión"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Guardar como PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Todas las impresoras…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Buscar"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Todas las impresoras"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Añadir servicio"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Seleccionar servicio de impresión"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Buscando impresoras"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Imprimiendo <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelando <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-et-rEE/strings.xml b/packages/PrintSpooler/res/values-et-rEE/strings.xml
index f87c9fa..b2e579f 100644
--- a/packages/PrintSpooler/res/values-et-rEE/strings.xml
+++ b/packages/PrintSpooler/res/values-et-rEE/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Prindi eelvaade"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"PDF-vaaturi installimine eelvaate kuvamiseks"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Printimisrakendus jooksis kokku"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"pole teada"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Lehed"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Prinditöö loomine"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Salvesta PDF-ina"</string>
<string name="all_printers" msgid="5018829726861876202">"Kõik printerid …"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Otsing"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Kõik printerid"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Lisa teenus"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Prinditeenuse valimine"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Printerite otsimine"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Prinditöö <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> printimine"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Prinditöö <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> tühistamine"</string>
diff --git a/packages/PrintSpooler/res/values-fa/strings.xml b/packages/PrintSpooler/res/values-fa/strings.xml
index 3bc377f..1846398 100644
--- a/packages/PrintSpooler/res/values-fa/strings.xml
+++ b/packages/PrintSpooler/res/values-fa/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"پیشنمایش چاپ"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"نصب نمایشگر PDF برای پیشنمایش"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"برنامه چاپ خراب شد"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"در دسترس نیست"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"در حال ایجاد کار چاپ"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"ذخیره بهعنوان PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"همه چاپگرها..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"جستجو"</string>
<string name="all_printers_label" msgid="3178848870161526399">"همه چاپگرها"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"افزودن سرویس"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"انتخاب سرویس چاپ"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"در حال چاپ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"در حال لغو <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"خطای چاپگر <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-fi/strings.xml b/packages/PrintSpooler/res/values-fi/strings.xml
index ff79f5c..d6324a6 100644
--- a/packages/PrintSpooler/res/values-fi/strings.xml
+++ b/packages/PrintSpooler/res/values-fi/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Tulostuksen esikatselu"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Asenna PDF-katseluohjelma esikatselua varten"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Tulostussovellus kaatui"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ei käytettävissä"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Sivut"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Luodaan tulostustyö"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Tallenna PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Kaikki tulostimet…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Haku"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Kaikki tulostimet"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Lisää palvelu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Valitse tulostuspalvelu"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Etsitään tulostimia"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Tulostetaan <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Peruutetaan työ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-fr-rCA/strings.xml b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
index aa02b63..06b3096 100644
--- a/packages/PrintSpooler/res/values-fr-rCA/strings.xml
+++ b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Aperçu avant impression"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installer un lecteur PDF pour voir l\'aperçu"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"L\'application à l\'origine de l\'impression a planté"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"non offert"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Génération tâche impression…"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Enregistrer en format PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Toutes les imprimantes…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Rechercher"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Toutes les imprimantes"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Ajouter le service"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Sélectionner le service d\'impression"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Impression de <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> en cours…"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Annulation de « <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> »…"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Erreur impression : « <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> »"</string>
diff --git a/packages/PrintSpooler/res/values-fr/strings.xml b/packages/PrintSpooler/res/values-fr/strings.xml
index cc5aeef..38d7cf6 100644
--- a/packages/PrintSpooler/res/values-fr/strings.xml
+++ b/packages/PrintSpooler/res/values-fr/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Aperçu avant impression"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installer un lecteur PDF pour afficher l\'aperçu"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"L\'application à l\'origine de l\'impression a planté"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"non disponible"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pages"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Génération tâche impression…"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Enregistrer au format .PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Toutes les imprimantes…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Rechercher"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Toutes les imprimantes"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Ajouter un service"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Sélectionner le service d\'impression"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Recherche d\'imprimantes en cours"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Impression de \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" en cours…"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Annulation de \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" en cours…"</string>
diff --git a/packages/PrintSpooler/res/values-hi/strings.xml b/packages/PrintSpooler/res/values-hi/strings.xml
index a80177f..36c8039 100644
--- a/packages/PrintSpooler/res/values-hi/strings.xml
+++ b/packages/PrintSpooler/res/values-hi/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"प्रिंट पूर्वावलोकन"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"पूर्वावलोकन के लिए PDF व्यूअर इंस्टॉल करें"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"प्रिंटिंग एप्लिकेशन क्रैश हो गया"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"अनुपलब्ध"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"पृष्ठ"</string>
<string name="generating_print_job" msgid="3119608742651698916">"प्रिंट कार्य जनरेट हो रहा है"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF के रूप में सहेजें"</string>
<string name="all_printers" msgid="5018829726861876202">"सभी प्रिंटर..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"खोजें"</string>
<string name="all_printers_label" msgid="3178848870161526399">"सभी प्रिंटर"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"सेवा जोड़ें"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"प्रिंट सेवा चुनें"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"प्रिंटर खोज रहा है"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> प्रिंट हो रहा है"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> रद्द हो रहा है"</string>
diff --git a/packages/PrintSpooler/res/values-hr/strings.xml b/packages/PrintSpooler/res/values-hr/strings.xml
index 0aa184a..ff22dfb 100644
--- a/packages/PrintSpooler/res/values-hr/strings.xml
+++ b/packages/PrintSpooler/res/values-hr/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Pregled ispisa"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instaliraj PDF preglednik za pregled"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Srušila se aplikacija za ispis"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nedostupno"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generiranje zadatka ispisa"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Spremi kao PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Svi pisači…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Pretraživanje"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Svi pisači"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Dodaj uslugu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Odaberite uslugu ispisa"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Ispisivanje <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Otkazivanje zadatka <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Pogreška pisača <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-hu/strings.xml b/packages/PrintSpooler/res/values-hu/strings.xml
index d7c7d33..5dcedd8 100644
--- a/packages/PrintSpooler/res/values-hu/strings.xml
+++ b/packages/PrintSpooler/res/values-hu/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Előnézet nyomtatása"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Az előnézethez telepítse a PDF-megtekintőt."</string>
<string name="printing_app_crashed" msgid="854477616686566398">"A nyomtatási alkalmazás összeomlott."</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nem érhető el"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Oldalak"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Nyomtatási feladat létrehozása"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Mentés PDF-ként"</string>
<string name="all_printers" msgid="5018829726861876202">"Az összes nyomtató…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Keresés"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Az összes nyomtató"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Szolgáltatás hozzáadása"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Nyomtatási szolgáltatás kiválasztása"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Nyomtatók keresése"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"A(z) <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> nyomtatása"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"A(z) <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> törlése"</string>
diff --git a/packages/PrintSpooler/res/values-hy-rAM/strings.xml b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
index 3575f6f..8e547f8 100644
--- a/packages/PrintSpooler/res/values-hy-rAM/strings.xml
+++ b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Տպելու նախադիտում"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Նախադիտման համար տեղադրեք PDF դիտարկիչ"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Տպելու ծրագիրը վթարի է ենթարկվել"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"անհասանելի է"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Էջեր"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Ձևավորվում է տպելու աշխատանքը"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Պահել որպես PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Բոլոր տպիչները..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Որոնել"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Բոլոր տպիչները"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Ավելացնել ծառայություն"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Ընտրեք տպելու ծառայությունը"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Տպիչների որոնում"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Տպվում է՝ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>-ը չեղարկվում է"</string>
diff --git a/packages/PrintSpooler/res/values-in/strings.xml b/packages/PrintSpooler/res/values-in/strings.xml
index 6bda2b7..507f09e 100644
--- a/packages/PrintSpooler/res/values-in/strings.xml
+++ b/packages/PrintSpooler/res/values-in/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Pratinjau cetak"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Pasang penampil PDF untuk pratinjau"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplikasi pencetakan mogok"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"tidak tersedia"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Laman"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Membuat tugas pencetakan"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Simpan sebagai PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Semua printer…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Cari"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Semua printer"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Tambahkan layanan"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Pilih layanan cetak"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari printer"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Mencetak <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Membatalkan <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-it/strings.xml b/packages/PrintSpooler/res/values-it/strings.xml
index 71667dd..4bb7c5b1 100644
--- a/packages/PrintSpooler/res/values-it/strings.xml
+++ b/packages/PrintSpooler/res/values-it/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Anteprima di stampa"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installa visualizzatore PDF per anteprima"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Arresto anomalo dell\'app di stampa"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"non disponibile"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pagine"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Generazione processo di stampa"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Salva in PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Tutte le stampanti…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Cerca"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Tutte le stampanti"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Aggiungi servizio"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Scegli servizio di stampa"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Ricerca di stampanti"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Stampa di <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Annullamento di <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-iw/strings.xml b/packages/PrintSpooler/res/values-iw/strings.xml
index 337a4a3..7521339 100644
--- a/packages/PrintSpooler/res/values-iw/strings.xml
+++ b/packages/PrintSpooler/res/values-iw/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"תצוגה מקדימה של הדפסה"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"התקן מציג PDF ליצירת תצוגה מקדימה"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"אפליקציית ההדפסה קרסה"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"לא זמין"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"עמודים"</string>
<string name="generating_print_job" msgid="3119608742651698916">"יוצר עבודת הדפסה"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"שמור כ-PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"כל המדפסות…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"חפש"</string>
<string name="all_printers_label" msgid="3178848870161526399">"כל המדפסות"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"הוסף שירות"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"בחר שירות הדפסה"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"מחפש מדפסות"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"מדפיס את <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"מבטל את <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ja/arrays.xml b/packages/PrintSpooler/res/values-ja/arrays.xml
deleted file mode 100644
index 57088c8..0000000
--- a/packages/PrintSpooler/res/values-ja/arrays.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<resources>
-
- <string-array name="pdf_printer_media_sizes" translatable="false">
- <item>JIS_B10</item>
- <item>JIS_B9</item>
- <item>JIS_B8</item>
- <item>JIS_B7</item>
- <item>JIS_b6</item>
- <item>JIS_b5</item>
- <item>JIS_b4</item>
- <item>JIS_b3</item>
- <item>JIS_b2</item>
- <item>JIS_b1</item>
- <item>JIS_b0</item>
- <item>JIS_EXEC</item>
- <item>JPN_CHOU4</item>
- <item>JPN_CHOU3</item>
- <item>JPN_CHOU2</item>
- <item>JPN_HAGAKI</item>
- <item>JPN_OUFUKU</item>
- <item>JPN_KAHU</item>
- <item>JPN_KAKU2</item>
- <item>JPN_YOU4</item>
-
- </string-array>
-
-</resources>
diff --git a/packages/PrintSpooler/res/values-ja/strings.xml b/packages/PrintSpooler/res/values-ja/strings.xml
index bf28134..7556049 100644
--- a/packages/PrintSpooler/res/values-ja/strings.xml
+++ b/packages/PrintSpooler/res/values-ja/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"印刷プレビュー"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"プレビュー用PDFビューアをインストール"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"印刷アプリでの障害発生"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"不明"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"ページ数"</string>
<string name="generating_print_job" msgid="3119608742651698916">"印刷ジョブを生成しています"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF形式で保存"</string>
<string name="all_printers" msgid="5018829726861876202">"すべてのプリンタ…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"検索"</string>
<string name="all_printers_label" msgid="3178848870161526399">"すべてのプリンタ"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"サービスを追加"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"印刷サービスの選択"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"プリンタの検索中"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>を印刷しています"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>をキャンセルしています"</string>
diff --git a/packages/PrintSpooler/res/values-ka-rGE/strings.xml b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
index 93d36e0..25abd07 100644
--- a/packages/PrintSpooler/res/values-ka-rGE/strings.xml
+++ b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"ნახვა ამობეჭდვამდე"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"გადახედვისთვის დააყენეთ PDF მნახველი"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"ბეჭდვის აპი ავარიულად გაითიშა"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"მიუწვდომელი"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"მიმდინარეობის ბეჭდვის დავალების შექმნა"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF-ად შენახვა"</string>
<string name="all_printers" msgid="5018829726861876202">"ყველა პრინტერი…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"ძიება"</string>
<string name="all_printers_label" msgid="3178848870161526399">"ყველა პრინტერი"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"სერვისის დამატება"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"აირჩიეთ ბეჭდვის სერვისი"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"იბეჭდება <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"მიმდინარეობს <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>-ის გაუქმება"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"ბეჭდვის შეცდომა <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-km-rKH/strings.xml b/packages/PrintSpooler/res/values-km-rKH/strings.xml
index 805ddf9..9125e282a 100644
--- a/packages/PrintSpooler/res/values-km-rKH/strings.xml
+++ b/packages/PrintSpooler/res/values-km-rKH/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"មើលមុនបោះពុម្ព"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"ដំឡើងកម្មវិធីមើល PDF សម្រាប់ការមើលជាមុន"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"កម្មវិធីបោះពុម្ពគាំង"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"មិនមាន"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"ទំព័រ"</string>
<string name="generating_print_job" msgid="3119608742651698916">"បង្កើតការងារបោះពុម្ព"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"រក្សាទុកជា PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"ម៉ាស៊ីនបោះពុម្ពទាំងអស់ ..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"ស្វែងរក"</string>
<string name="all_printers_label" msgid="3178848870161526399">"ម៉ាស៊ីនបោះពុម្ពទាំងអស់"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"បន្ថែមសេវាកម្ម"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"ជ្រើសសេវាបោះពុម្ព"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"ស្វែងរកម៉ាស៊ីនបោះពុម្ព"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"កំពុងបោះពុម្ព <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"ការបោះបង់ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ko/strings.xml b/packages/PrintSpooler/res/values-ko/strings.xml
index 16bfbbbd..0aef672 100644
--- a/packages/PrintSpooler/res/values-ko/strings.xml
+++ b/packages/PrintSpooler/res/values-ko/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"인쇄 미리보기"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"미리보기용 PDF 뷰어 설치"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"인쇄 앱에 오류 발생"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"사용할 수 없음"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"페이지"</string>
<string name="generating_print_job" msgid="3119608742651698916">"인쇄 작업 생성 중"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF로 저장"</string>
<string name="all_printers" msgid="5018829726861876202">"모든 프린터…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"검색"</string>
<string name="all_printers_label" msgid="3178848870161526399">"모든 프린터"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"서비스 추가"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"인쇄 서비스 선택"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"프린터 검색 중"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> 인쇄 중"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> 취소 중"</string>
diff --git a/packages/PrintSpooler/res/values-lo-rLA/strings.xml b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
index be81102..cbbe9b6 100644
--- a/packages/PrintSpooler/res/values-lo-rLA/strings.xml
+++ b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"ເບິ່ງກ່ອນພິມ"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"ຕິດຕັ້ງໂປຼແກຼມເບິ່ງ PDF ເພື່ອເບິ່ງຕົວຢ່າງ"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"ແອັບຯພິມລົ້ມເຫລວ"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ບໍ່ມີຂໍ້ມູນ"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"ໜ້າ"</string>
<string name="generating_print_job" msgid="3119608742651698916">"ກຳລັງສ້າງວຽກພິມ"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"ບັນທຶກເປັນ PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"ທຸກເຄື່ອງພິມ..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"ຊອກຫາ"</string>
<string name="all_printers_label" msgid="3178848870161526399">"ທຸກເຄື່ອງພິມ"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"ເພີ່ມບໍລິການ"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"ເລືອກບໍລິການການພິມ"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"ກຳລັງຊອກຫາເຄື່ອງພິມ"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"ກຳລັງພິມ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"ກຳລັງຍົກເລີກ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-lt/strings.xml b/packages/PrintSpooler/res/values-lt/strings.xml
index 06d79ee..624854f 100644
--- a/packages/PrintSpooler/res/values-lt/strings.xml
+++ b/packages/PrintSpooler/res/values-lt/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Spaudinio peržiūra"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Įdiegti PDF peržiūros priemonę"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Spausdinimo programa užstrigo"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nežinoma"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generuojama spausd. užduotis"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Išsaugoti kaip PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Visi spausdintuvai…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Ieškoti"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Visi spausdintuvai"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Pridėti paslaugą"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Pasirinkite spausdinimo paslaugą"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Spausdinama: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Atšaukiama: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Spausdintuvo klaida: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-lv/strings.xml b/packages/PrintSpooler/res/values-lv/strings.xml
index b5ef76e..a7066fc 100644
--- a/packages/PrintSpooler/res/values-lv/strings.xml
+++ b/packages/PrintSpooler/res/values-lv/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Drukas priekšskatījums"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalēt PDF skatītāju priekšskatīšanai"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Drukas lietotne avarēja"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"Nav zināms"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Ģenerē drukas darbu…"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Saglabāt kā PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Visi printeri…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Meklēt"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Visi printeri"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Pievienot pakalpojumu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Izvēlieties drukāšanas pakalpojumu"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Notiek darba <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> drukāšana…"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Pārtrauc drukas darbu <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>…"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Printera kļūda ar darbu <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-mn-rMN/strings.xml b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
index 5f16746..58dea51 100644
--- a/packages/PrintSpooler/res/values-mn-rMN/strings.xml
+++ b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Хэвлэхээр урьдчилан харах"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Урьдчилан харахын тулд PDF харагчийг суулгах"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Хэвлэгч апп гацсан"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"Байхгүй"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Хуудас"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Хэвлэх ажил үүсгэж байна"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF болгож хадгалах"</string>
<string name="all_printers" msgid="5018829726861876202">"Бүх принтерүүд…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Хайх"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Бүх принтерүүд"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Үйлчилгээ нэмэх"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Хэвлэх үйлчилгээг сонгох"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Принтер хайж байна"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Хэвлэж байна <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Цуцлаж байна <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ms-rMY/strings.xml b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
index 8893e09..90fa63a 100644
--- a/packages/PrintSpooler/res/values-ms-rMY/strings.xml
+++ b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Pratonton cetak"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Pasang pemapar PDF untuk pratonton"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Apl percetakan ranap"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"tidak tersedia"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Halaman"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Menjana kerja cetak"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Simpan sebagai PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Semua pencetak..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Cari"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Semua pencetak"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Tambahkan perkhidmatan"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Pilih perkhidmatan cetak"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari pencetak"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Mencetak <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Membatalkan <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-nb/strings.xml b/packages/PrintSpooler/res/values-nb/strings.xml
index 002068c..44e17acb 100644
--- a/packages/PrintSpooler/res/values-nb/strings.xml
+++ b/packages/PrintSpooler/res/values-nb/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Utskriftsforhåndsvisning"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installer PDF-leser for forhåndsvisning"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Utskriftsappen krasjet"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ikke tilgjengelig"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Genererer utskriftsjobb"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Lagre som PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Alle skrivere"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Søk"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alle skrivere"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Legg til tjeneste"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Velg utskriftstjeneste"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Skriver ut <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Avbryter <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Skriverfeil <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-nl/strings.xml b/packages/PrintSpooler/res/values-nl/strings.xml
index f16922e..9c074df 100644
--- a/packages/PrintSpooler/res/values-nl/strings.xml
+++ b/packages/PrintSpooler/res/values-nl/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Afdrukvoorbeeld"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Pdf-viewer installeren voor voorbeeld"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Afdruk-app gecrasht"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"niet beschikbaar"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Afdruktaak genereren"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Opslaan als pdf"</string>
<string name="all_printers" msgid="5018829726861876202">"Alle printers…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Zoeken"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alle printers"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Service toevoegen"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Afdrukservice kiezen"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> afdrukken"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> annuleren"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Printerfout <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-pl/strings.xml b/packages/PrintSpooler/res/values-pl/strings.xml
index d5db22e..bcd57b2 100644
--- a/packages/PrintSpooler/res/values-pl/strings.xml
+++ b/packages/PrintSpooler/res/values-pl/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Podgląd wydruku"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Zainstaluj przeglądarkę PDF, by zobaczyć podgląd"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplikacja drukująca uległa awarii"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"brak informacji"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generowanie zadania wydruku"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Zapisz jako PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Wszystkie drukarki…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Szukaj"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Wszystkie drukarki"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Dodaj usługę"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Wybierz usługę drukowania"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Drukowanie: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Anulowanie: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Błąd drukarki: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-pt-rPT/strings.xml b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
index a4cb98d..bc7a677 100644
--- a/packages/PrintSpooler/res/values-pt-rPT/strings.xml
+++ b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Pré-visualização de impressão"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalar o leitor de PDF para pré-visualização"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"A aplicação de impressão bloqueou"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"indisponível"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"A gerar tarefa de impressão"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Guardar como PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Todas as impressoras..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Pesquisar"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Todas as impressoras"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Adicionar serviço"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Escolher o serviço de impressão"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"A imprimir <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"A cancelar <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Erro da impressora <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-pt/strings.xml b/packages/PrintSpooler/res/values-pt/strings.xml
index 230e827..6c63502 100644
--- a/packages/PrintSpooler/res/values-pt/strings.xml
+++ b/packages/PrintSpooler/res/values-pt/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Visualização de impressão"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalar o visualizador de PDF"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"O aplicativo de impressão falhou"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"indisponível"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Páginas"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Gerando trabalho de impressão"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Salvar como PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Todas as impressoras…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Pesquisar"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Todas as impressoras"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Adicionar serviço"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Selecione o serviço de impressão"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Procurando impressoras"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Imprimindo <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelando <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ro/strings.xml b/packages/PrintSpooler/res/values-ro/strings.xml
index 37fd6b3..d194d65 100644
--- a/packages/PrintSpooler/res/values-ro/strings.xml
+++ b/packages/PrintSpooler/res/values-ro/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Previzualizați printarea"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Instalați PDF viewer pentru previzualizare"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplicația de printare s-a blocat"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"indisponibil"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Se generează sarcină printare"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Salvați ca PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Toate imprimantele..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Căutați"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Toate imprimantele"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Adăugați un serviciu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Alegeți serviciul de printare"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Se printează <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Se anulează <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Eroare de printare: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-ru/strings.xml b/packages/PrintSpooler/res/values-ru/strings.xml
index 0271587..bbf66fb 100644
--- a/packages/PrintSpooler/res/values-ru/strings.xml
+++ b/packages/PrintSpooler/res/values-ru/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Предварительный просмотр"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Установить средство просмотра PDF"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Сбой приложения печати"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"неизвестно"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Создание задания печати…"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Сохранить как PDF-файл"</string>
<string name="all_printers" msgid="5018829726861876202">"Все принтеры"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Поиск"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Все принтеры"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Добавить службу печати"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Выберите службу печати"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Печать задания \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\"…"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Отмена задания <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>…"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Ошибка задания \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\""</string>
diff --git a/packages/PrintSpooler/res/values-sk/strings.xml b/packages/PrintSpooler/res/values-sk/strings.xml
index 01e6d03..81361ad 100644
--- a/packages/PrintSpooler/res/values-sk/strings.xml
+++ b/packages/PrintSpooler/res/values-sk/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Ukážka pred tlačou"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Inštalovať zobrazovač PDF na zobrazenie ukážky"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplikácia pre tlač zlyhala"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"nie je k dispozícii"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Generuje sa tlačová úloha"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Uložiť ako PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Všetky tlačiarne..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"VYHĽADÁVANIE"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Všetky tlačiarne"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Pridať službu"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Výber tlačovej služby"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Prebieha tlač úlohy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Prebieha zrušenie úlohy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Chyba tlačiarne – úloha <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-sl/strings.xml b/packages/PrintSpooler/res/values-sl/strings.xml
index 61f3dc0..0886831 100644
--- a/packages/PrintSpooler/res/values-sl/strings.xml
+++ b/packages/PrintSpooler/res/values-sl/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Predogled tiskanja"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Za predogled namestite pregledovalnik za PDF-je"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Aplikacija za tiskanje se je zrušila"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ni na voljo"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Št. strani:"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Ustvarjanje zahteve za tisk"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Shrani kot PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Vsi tiskalniki …"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Iskanje"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Vsi tiskalniki"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Dodaj storitev"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Izberite tiskalno storitev"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Iskanje tiskalnikov"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Tiskanje: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Preklic: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-sr/strings.xml b/packages/PrintSpooler/res/values-sr/strings.xml
index 757871f..93ca41f 100644
--- a/packages/PrintSpooler/res/values-sr/strings.xml
+++ b/packages/PrintSpooler/res/values-sr/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Преглед пре штампања"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Инсталирај PDF приказивач за преглед"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Апликација за штампање је отказала"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"недоступно"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Генерисање задатка за штампање"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Сачувај као PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Сви штампачи…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Претражи"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Сви штампачи"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Додај услугу"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Изаберите услугу штампања"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Штампа се <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Отказује се <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Грешка штампача <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-sv/strings.xml b/packages/PrintSpooler/res/values-sv/strings.xml
index 7c28984..000f88e 100644
--- a/packages/PrintSpooler/res/values-sv/strings.xml
+++ b/packages/PrintSpooler/res/values-sv/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Förhandsgranskning"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Installera PDF-läsare för förhandsgranskning"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Utskriftsappen kraschade"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"otillgängligt"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Genererar utskriftsjobb"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Spara som PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Alla skrivare ..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Sök"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Alla skrivare"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Lägg till tjänst"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Välj utskriftstjänst"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Skriver ut <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Avbryter <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Skrivarfel för <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-sw/strings.xml b/packages/PrintSpooler/res/values-sw/strings.xml
index 13ccf46..7e655ee 100644
--- a/packages/PrintSpooler/res/values-sw/strings.xml
+++ b/packages/PrintSpooler/res/values-sw/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Chungulia kwanza kabla ya kuchapisha"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Sakinisha kitazamaji cha PDF kwa onyesho la kuchungulia"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Programu ya kuchapisha imeacha kufanya kazi"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"haipatikani"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Inazanzisha kazi ya kuchapisha"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Hifadhi kama PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Printa zote..."</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Tafuta"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Printa zote"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Ongeza huduma"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Chagua huduma ya printa"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Inachapisha <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Inaghairi <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Hitilafu ya kuchapisha <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-th/strings.xml b/packages/PrintSpooler/res/values-th/strings.xml
index fee7c11..9f6e226 100644
--- a/packages/PrintSpooler/res/values-th/strings.xml
+++ b/packages/PrintSpooler/res/values-th/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"ตัวอย่างก่อนพิมพ์"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"ติดตั้งโปรแกรมดู PDF เพื่อดูหน้าตัวอย่าง"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"แอปการพิมพ์ขัดข้อง"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ไม่มีข้อมูล"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"หน้า"</string>
<string name="generating_print_job" msgid="3119608742651698916">"กำลังสร้างงานพิมพ์"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"บันทึกเป็น PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"เครื่องพิมพ์ทั้งหมด…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"ค้นหา"</string>
<string name="all_printers_label" msgid="3178848870161526399">"เครื่องพิมพ์ทั้งหมด"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"เพิ่มบริการ"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"เลือกบริการพิมพ์"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"กำลังค้นหาเครื่องพิมพ์"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"กำลังพิมพ์ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"กำลังยกเลิก <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-tl/strings.xml b/packages/PrintSpooler/res/values-tl/strings.xml
index 68f74cd..2dc3c39 100644
--- a/packages/PrintSpooler/res/values-tl/strings.xml
+++ b/packages/PrintSpooler/res/values-tl/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Preview sa pag-print"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Mag-install ng PDF viewer para sa pag-preview"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Nag-crash ang app sa pag-print"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"hindi available"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Mga Pahina"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Gumagawa ng pag-print"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"I-save bilang PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Lahat ng printer…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Hanapin"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Lahat ng printer"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Magdagdag ng serbisyo"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Pumili ng serbisyo ng pag-print"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Naghahanap ng mga printer"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Pini-print ang <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Kinakansela ang <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-tr/strings.xml b/packages/PrintSpooler/res/values-tr/strings.xml
index 5cd5f89..bfc80af 100644
--- a/packages/PrintSpooler/res/values-tr/strings.xml
+++ b/packages/PrintSpooler/res/values-tr/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Yazdırmayı önizle"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Önizlemek için PDF görüntüleyici yükleyin"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Yazdırma uygulaması kilitlendi"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"bilinmiyor"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Yazdırma işi oluşturuluyor"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"PDF olarak kaydet"</string>
<string name="all_printers" msgid="5018829726861876202">"Tüm yazıcılar…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Ara"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Tüm yazıcılar"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Hizmet ekle"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Yazdırma hizmetini seçin"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> yazdırılıyor"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> iptal ediliyor"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Yazıcı hatası: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-uk/strings.xml b/packages/PrintSpooler/res/values-uk/strings.xml
index d3bed82..bd8c375 100644
--- a/packages/PrintSpooler/res/values-uk/strings.xml
+++ b/packages/PrintSpooler/res/values-uk/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Версія для друку"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Установити засіб перегляду PDF"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Програма друку аварійно завершила роботу"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"недоступно"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Сторінки"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Створюється завдання друку"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Зберегти як PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Усі принтери…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Пошук"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Усі принтери"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Додати службу"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Вибрати службу друку"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Пошук принтерів"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Завдання \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" друкується"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Завдання \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" скасовується"</string>
diff --git a/packages/PrintSpooler/res/values-vi/strings.xml b/packages/PrintSpooler/res/values-vi/strings.xml
index 3fd6013..6546f0e 100644
--- a/packages/PrintSpooler/res/values-vi/strings.xml
+++ b/packages/PrintSpooler/res/values-vi/strings.xml
@@ -29,15 +29,26 @@
<string name="print_preview" msgid="8010217796057763343">"Xem trước bản in"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Cài đặt trình xem PDF để xem trước"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Ứng dụng in gặp lỗi"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"không có sẵn"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Trang"</string>
<string name="generating_print_job" msgid="3119608742651698916">"Đang tạo lệnh in"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Lưu dưới dạng PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Tất cả máy in…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Tìm kiếm"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Tất cả máy in"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Thêm dịch vụ"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Chọn dịch vụ in"</string>
- <!-- no translation found for print_searching_for_printers (6550424555079932867) -->
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Đang tìm kiếm máy in"</string>
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
<skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"In <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Hủy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rCN/arrays.xml b/packages/PrintSpooler/res/values-zh-rCN/arrays.xml
deleted file mode 100644
index 4fc75db..0000000
--- a/packages/PrintSpooler/res/values-zh-rCN/arrays.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<resources>
-
- <string-array name="pdf_printer_media_sizes" translatable="false">
- <item>ROC_8K</item>
- <item>ROC_16K</item>
- <item>PRC_1</item>
- <item>PRC_2</item>
- <item>PRC_3</item>
- <item>PRC_4</item>
- <item>PRC_5</item>
- <item>PRC_6</item>
- <item>PRC_7</item>
- <item>PRC_8</item>
- <item>PRC_9</item>
- <item>PRC_10</item>
- <item>PRC_16K</item>
- <item>OM_PA_KAI</item>
- <item>OM_DAI_PA_KAI</item>
- <item>OM_JUURO_KU_KAI</item>
- </string-array>
-
-</resources>
diff --git a/packages/PrintSpooler/res/values-zh-rCN/strings.xml b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
index 2dfaa1e..0e9b457 100644
--- a/packages/PrintSpooler/res/values-zh-rCN/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"打印预览"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"安装 PDF 查看器以便预览"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"打印应用崩溃了"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"未知"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"正在生成打印作业"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"保存为 PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"所有打印机…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"搜索"</string>
<string name="all_printers_label" msgid="3178848870161526399">"所有打印机"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"添加服务"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"选择打印服务"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"正在打印“<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>”"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"正在取消打印“<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>”"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"打印机在打印“<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>”时出错"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rHK/strings.xml b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
index 99f17e4..71215c8 100644
--- a/packages/PrintSpooler/res/values-zh-rHK/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"預覽列印"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"安裝預覽所需的 PDF 檢視器"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"列印應用程式當機了"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"頁數不明"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"正在產生列印工作"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"儲存為 PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"所有打印機…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"搜尋"</string>
<string name="all_printers_label" msgid="3178848870161526399">"所有打印機"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"新增服務"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"選擇列印服務"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"正在列印 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"正在取消 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"打印機錯誤:<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rTW/strings.xml b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
index 4e7110b..66ceb41 100644
--- a/packages/PrintSpooler/res/values-zh-rTW/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"列印預覽"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"安裝預覽所需的 PDF 檢視器"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"列印應用程式當機了"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"不明"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"正在產生列印工作"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"儲存為 PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"所有印表機…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"搜尋"</string>
<string name="all_printers_label" msgid="3178848870161526399">"所有印表機"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"新增服務"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"選擇列印服務"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"正在列印 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"正在取消 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"印表機發生錯誤:<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-zu/strings.xml b/packages/PrintSpooler/res/values-zu/strings.xml
index b5278fb..e1cb758 100644
--- a/packages/PrintSpooler/res/values-zu/strings.xml
+++ b/packages/PrintSpooler/res/values-zu/strings.xml
@@ -29,16 +29,29 @@
<string name="print_preview" msgid="8010217796057763343">"Ukubuka kuqala kokuphrinta"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"Faka isibukeli se-PDF ukuze uhlole kuqala"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"Ukuphrinta uhlelo lokusebenza kukhubazekile"</string>
- <string name="page_count_unknown" msgid="7412881437770983864">"ayitholakali"</string>
+ <!-- no translation found for page_count_unknown (6058852665954511124) -->
+ <skip />
<string name="generating_print_job" msgid="3119608742651698916">"Ikhiqiza umsebenzi wokuphrinta"</string>
<string name="save_as_pdf" msgid="5718454119847596853">"Londoloza njenge-PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Wonke amaphrinta…"</string>
+ <!-- no translation found for print_dialog (32628687461331979) -->
+ <skip />
<string name="search" msgid="5421724265322228497">"Sesha"</string>
<string name="all_printers_label" msgid="3178848870161526399">"Wonke amaphrinta"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"Engeza isevisi"</string>
+ <!-- no translation found for print_search_box_shown_utterance (7967404953901376090) -->
+ <skip />
+ <!-- no translation found for print_search_box_hidden_utterance (5727755169343113351) -->
+ <skip />
+ <!-- no translation found for print_add_printer (1088656468360653455) -->
+ <skip />
+ <!-- no translation found for print_search_result_count_utterance:one (4484953260685964252) -->
+ <!-- no translation found for print_search_result_count_utterance:other (6533817036607128241) -->
<string name="choose_print_service" msgid="3740309762324459694">"Khetha isevisi yephrinta"</string>
<!-- no translation found for print_searching_for_printers (6550424555079932867) -->
<skip />
+ <!-- no translation found for print_no_printers (4869403323900054866) -->
+ <skip />
<string name="printing_notification_title_template" msgid="295903957762447362">"Iphrinta i-<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Ikhansela i-<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Iphutha lephrinta ye-<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
index 09f1695..01c27f2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
@@ -514,9 +514,13 @@
private final void updateTelephonySignalStrength() {
if (!hasService()) {
if (CHATTY) Log.d(TAG, "updateTelephonySignalStrength: !hasService()");
- mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
+ if (!mSimState.iccCardExist()) {
+ mPhoneSignalIconId = R.drawable.stat_sys_no_sim;
+ } else {
+ mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
+ }
+ mDataSignalIconId = mPhoneSignalIconId;
mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
- mDataSignalIconId = R.drawable.stat_sys_signal_null;
} else {
if (mSignalStrength == null) {
if (CHATTY) Log.d(TAG, "updateTelephonySignalStrength: mSignalStrength == null");
diff --git a/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml b/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
index 6dc7e35..97d7001 100644
--- a/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
+++ b/packages/WallpaperCropper/res/layout/wallpaper_cropper.xml
@@ -19,7 +19,7 @@
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/wallpaper_cropper"
+ android:id="@+id/wallpaper_root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.android.wallpapercropper.CropView
diff --git a/packages/WallpaperCropper/res/values-sw600dp/config.xml b/packages/WallpaperCropper/res/values-sw600dp/config.xml
new file mode 100644
index 0000000..62342dc
--- /dev/null
+++ b/packages/WallpaperCropper/res/values-sw600dp/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <bool name="allow_rotation">true</bool>
+</resources>
diff --git a/packages/WallpaperCropper/res/values/config.xml b/packages/WallpaperCropper/res/values/config.xml
new file mode 100644
index 0000000..1b24190
--- /dev/null
+++ b/packages/WallpaperCropper/res/values/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <bool name="allow_rotation">false</bool>
+</resources>
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/CropView.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/CropView.java
index ecebd642..b4e715c 100644
--- a/packages/WallpaperCropper/src/com/android/wallpapercropper/CropView.java
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/CropView.java
@@ -22,8 +22,8 @@
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
-import android.view.ViewConfiguration;
import android.view.ScaleGestureDetector.OnScaleGestureListener;
+import android.view.ViewConfiguration;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -44,6 +44,7 @@
public interface TouchCallback {
void onTouchDown();
void onTap();
+ void onTouchUp();
}
public CropView(Context context) {
@@ -140,12 +141,12 @@
public void onScaleEnd(ScaleGestureDetector detector) {
}
- public void moveToUpperLeft() {
+ public void moveToLeft() {
if (getWidth() == 0 || getHeight() == 0) {
final ViewTreeObserver observer = getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
- moveToUpperLeft();
+ moveToLeft();
getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
@@ -154,7 +155,6 @@
getEdgesHelper(edges);
final float scale = mRenderer.scale;
mRenderer.centerX += Math.ceil(edges.left / scale);
- mRenderer.centerY += Math.ceil(edges.top / scale);
}
public void setTouchEnabled(boolean enabled) {
@@ -197,11 +197,13 @@
float squaredDist = (mFirstX - x) * (mFirstX - x) + (mFirstY - y) * (mFirstY - y);
float slop = config.getScaledTouchSlop() * config.getScaledTouchSlop();
long now = System.currentTimeMillis();
- // only do this if it's a small movement
- if (mTouchCallback != null &&
- squaredDist < slop &&
+ if (mTouchCallback != null) {
+ // only do this if it's a small movement
+ if (squaredDist < slop &&
now < mTouchDownTime + ViewConfiguration.getTapTimeout()) {
- mTouchCallback.onTap();
+ mTouchCallback.onTap();
+ }
+ mTouchCallback.onTouchUp();
}
}
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/TranslucentDecor.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/TranslucentDecor.java
new file mode 100644
index 0000000..9ce7331
--- /dev/null
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/TranslucentDecor.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* Copied from Launcher3 */
+package com.android.wallpapercropper;
+
+import android.app.Activity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+public class TranslucentDecor {
+ private static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS = 0x00001000;
+ private static final int SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION = 0x00002000;
+
+ // Replace with SDK constants when available.
+ public static final int FLAG_TRANSLUCENT_STATUS = 0x04000000;
+ public static final int FLAG_TRANSLUCENT_NAVIGATION = 0x08000000;
+
+ // Behave properly on early K builds.
+ public static final boolean SYSUI_SUPPORTED = !hasSystemUiFlag("ALLOW_TRANSIENT") &&
+ hasSystemUiFlag("TRANSPARENT_STATUS") &&
+ hasSystemUiFlag("TRANSPARENT_NAVIGATION");
+
+ public static final boolean WM_SUPPORTED =
+ hasWindowManagerFlag("TRANSLUCENT_STATUS") &&
+ hasWindowManagerFlag("TRANSLUCENT_NAVIGATION");
+
+ private final View mTarget;
+
+ public TranslucentDecor(View target) {
+ mTarget = target;
+ }
+
+ public void requestTranslucentDecor(boolean translucent) {
+ int sysui = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
+ if (WM_SUPPORTED && mTarget.getContext() instanceof Activity) {
+ Window w = ((Activity) mTarget.getContext()).getWindow();
+ int wmFlags = FLAG_TRANSLUCENT_STATUS | FLAG_TRANSLUCENT_NAVIGATION;
+ if (translucent) {
+ w.addFlags(wmFlags);
+ } else {
+ w.clearFlags(wmFlags);
+ }
+ } else if (SYSUI_SUPPORTED) { // Remove when droidfood platform is updated
+ if (translucent) {
+ sysui |= SYSTEM_UI_FLAG_TRANSPARENT_STATUS | SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION;
+ }
+ }
+ mTarget.setSystemUiVisibility(sysui);
+ }
+
+ private static boolean hasWindowManagerFlag(String name) {
+ try {
+ return WindowManager.LayoutParams.class.getField("FLAG_" + name) != null;
+ } catch (NoSuchFieldException e) {
+ return false;
+ }
+ }
+
+ private static boolean hasSystemUiFlag(String name) {
+ try {
+ return View.class.getField("SYSTEM_UI_FLAG_" + name) != null;
+ } catch (NoSuchFieldException e) {
+ return false;
+ }
+ }
+}
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
index af48652..48fbcc5 100644
--- a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
@@ -75,6 +75,9 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
+ if (!enableRotation()) {
+ setRequestedOrientation(Configuration.ORIENTATION_PORTRAIT);
+ }
}
protected void init() {
@@ -99,6 +102,12 @@
cropImageAndSetWallpaper(imageUri, null, finishActivityWhenDone);
}
});
+ TranslucentDecor transparentDecor = new TranslucentDecor(findViewById(R.id.wallpaper_root));
+ transparentDecor.requestTranslucentDecor(true);
+ }
+
+ public boolean enableRotation() {
+ return getResources().getBoolean(R.bool.allow_rotation);
}
public static String getSharedPreferencesKey() {
@@ -162,7 +171,6 @@
}
protected void setWallpaper(String filePath, final boolean finishActivityWhenDone) {
-
BitmapCropTask cropTask = new BitmapCropTask(this,
filePath, null, 0, 0, true, false, null);
final Point bounds = cropTask.getImageBounds();
@@ -200,7 +208,7 @@
}
}
};
- BitmapCropTask cropTask = new BitmapCropTask(res, resId,
+ BitmapCropTask cropTask = new BitmapCropTask(this, res, resId,
crop, outSize.x, outSize.y,
true, false, onEndCrop);
cropTask.execute();
@@ -213,9 +221,11 @@
protected void cropImageAndSetWallpaper(Uri uri,
OnBitmapCroppedHandler onBitmapCroppedHandler, final boolean finishActivityWhenDone) {
- // Get the crop
+ // Get the crop
Point inSize = mCropView.getSourceDimensions();
+ boolean ltr = mCropView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
+
Point minDims = new Point();
Point maxDims = new Point();
Display d = getWindowManager().getDefaultDisplay();
@@ -226,12 +236,12 @@
int maxDim = Math.max(maxDims.x, maxDims.y);
final int minDim = Math.min(minDims.x, minDims.y);
- int defaultWidth;
+ int defaultWallpaperWidth;
if (isScreenLarge(getResources())) {
- defaultWidth = (int) (maxDim *
+ defaultWallpaperWidth = (int) (maxDim *
wallpaperTravelToScreenWidthRatio(maxDim, minDim));
} else {
- defaultWidth = Math.max((int)
+ defaultWallpaperWidth = Math.max((int)
(minDim * WALLPAPER_SCREENS_SPAN), maxDim);
}
@@ -256,12 +266,17 @@
// ADJUST CROP WIDTH
// Extend the crop all the way to the right, for parallax
- float extraSpaceToRight = inSize.x - cropRect.right;
+ // (or all the way to the left, in RTL)
+ float extraSpace = ltr ? inSize.x - cropRect.right : cropRect.left;
// Cap the amount of extra width
- float maxExtraSpace = defaultWidth / cropScale - cropRect.width();
- extraSpaceToRight = Math.min(extraSpaceToRight, maxExtraSpace);
+ float maxExtraSpace = defaultWallpaperWidth / cropScale - cropRect.width();
+ extraSpace = Math.min(extraSpace, maxExtraSpace);
- cropRect.right += extraSpaceToRight;
+ if (ltr) {
+ cropRect.right += extraSpace;
+ } else {
+ cropRect.left -= extraSpace;
+ }
// ADJUST CROP HEIGHT
if (isPortrait) {
@@ -287,7 +302,7 @@
}
}
};
- BitmapCropTask cropTask = new BitmapCropTask(uri,
+ BitmapCropTask cropTask = new BitmapCropTask(this, uri,
cropRect, outWidth, outHeight, true, false, onEndCrop);
if (onBitmapCroppedHandler != null) {
cropTask.setOnBitmapCropped(onBitmapCroppedHandler);
@@ -299,7 +314,7 @@
public void onBitmapCropped(byte[] imageBytes);
}
- protected class BitmapCropTask extends AsyncTask<Void, Void, Boolean> {
+ protected static class BitmapCropTask extends AsyncTask<Void, Void, Boolean> {
Uri mInUri = null;
Context mContext;
String mInFilePath;
@@ -309,7 +324,6 @@
RectF mCropBounds = null;
int mOutWidth, mOutHeight;
int mRotation = 0; // for now
- protected final WallpaperManager mWPManager;
String mOutputFormat = "jpg"; // for now
boolean mSetWallpaper;
boolean mSaveCroppedBitmap;
@@ -324,7 +338,6 @@
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
mContext = c;
mInFilePath = filePath;
- mWPManager = WallpaperManager.getInstance(getApplicationContext());
init(cropBounds, outWidth, outHeight, setWallpaper, saveCroppedBitmap, onEndRunnable);
}
@@ -332,24 +345,23 @@
RectF cropBounds, int outWidth, int outHeight,
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
mInImageBytes = imageBytes;
- mWPManager = WallpaperManager.getInstance(getApplicationContext());
init(cropBounds, outWidth, outHeight, setWallpaper, saveCroppedBitmap, onEndRunnable);
}
- public BitmapCropTask(Uri inUri,
+ public BitmapCropTask(Context c, Uri inUri,
RectF cropBounds, int outWidth, int outHeight,
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
+ mContext = c;
mInUri = inUri;
- mWPManager = WallpaperManager.getInstance(getApplicationContext());
init(cropBounds, outWidth, outHeight, setWallpaper, saveCroppedBitmap, onEndRunnable);
}
- public BitmapCropTask(Resources res, int inResId,
+ public BitmapCropTask(Context c, Resources res, int inResId,
RectF cropBounds, int outWidth, int outHeight,
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
+ mContext = c;
mInResId = inResId;
mResources = res;
- mWPManager = WallpaperManager.getInstance(getApplicationContext());
init(cropBounds, outWidth, outHeight, setWallpaper, saveCroppedBitmap, onEndRunnable);
}
@@ -385,7 +397,7 @@
try {
if (mInUri != null) {
mInStream = new BufferedInputStream(
- getContentResolver().openInputStream(mInUri));
+ mContext.getContentResolver().openInputStream(mInUri));
} else if (mInFilePath != null) {
mInStream = mContext.openFileInput(mInFilePath);
} else if (mInImageBytes != null) {
@@ -426,16 +438,17 @@
regenerateInputStream();
- if (mNoCrop && mInStream != null) {
+ WallpaperManager wallpaperManager = null;
+ if (mSetWallpaper) {
+ wallpaperManager = WallpaperManager.getInstance(mContext.getApplicationContext());
+ }
+ if (mSetWallpaper && mNoCrop && mInStream != null) {
try {
- mWPManager.setStream(mInStream);
+ wallpaperManager.setStream(mInStream);
} catch (IOException e) {
Log.w(LOGTAG, "cannot write stream to wallpaper", e);
failure = true;
}
- if (mOnEndRunnable != null) {
- mOnEndRunnable.run();
- }
return !failure;
}
if (mInStream != null) {
@@ -509,7 +522,9 @@
(int) returnRect.height(), Bitmap.Config.ARGB_8888);
if (tmp != null) {
Canvas c = new Canvas(tmp);
- c.drawBitmap(crop, m, new Paint());
+ Paint p = new Paint();
+ p.setFilterBitmap(true);
+ c.drawBitmap(crop, m, p);
crop = tmp;
}
} else if (mRotation > 0) {
@@ -534,26 +549,18 @@
ByteArrayOutputStream tmpOut = new ByteArrayOutputStream(2048);
if (crop.compress(cf, DEFAULT_COMPRESS_QUALITY, tmpOut)) {
// If we need to set to the wallpaper, set it
- if (mSetWallpaper && mWPManager != null) {
- if (mWPManager == null) {
- Log.w(LOGTAG, "no wallpaper manager");
- failure = true;
- } else {
- try {
- byte[] outByteArray = tmpOut.toByteArray();
- mWPManager.setStream(new ByteArrayInputStream(outByteArray));
- if (mOnBitmapCroppedHandler != null) {
- mOnBitmapCroppedHandler.onBitmapCropped(outByteArray);
- }
- } catch (IOException e) {
- Log.w(LOGTAG, "cannot write stream to wallpaper", e);
- failure = true;
+ if (mSetWallpaper && wallpaperManager != null) {
+ try {
+ byte[] outByteArray = tmpOut.toByteArray();
+ wallpaperManager.setStream(new ByteArrayInputStream(outByteArray));
+ if (mOnBitmapCroppedHandler != null) {
+ mOnBitmapCroppedHandler.onBitmapCropped(outByteArray);
}
+ } catch (IOException e) {
+ Log.w(LOGTAG, "cannot write stream to wallpaper", e);
+ failure = true;
}
}
- if (mOnEndRunnable != null) {
- mOnEndRunnable.run();
- }
} else {
Log.w(LOGTAG, "cannot compress bitmap");
failure = true;
@@ -569,8 +576,9 @@
@Override
protected void onPostExecute(Boolean result) {
- setResult(Activity.RESULT_OK);
- finish();
+ if (mOnEndRunnable != null) {
+ mOnEndRunnable.run();
+ }
}
}
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java
index 27ca7a0..b69a0c8 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/java/com/android/server/am/ActiveServices.java
@@ -25,6 +25,7 @@
import java.util.List;
import android.os.Handler;
+import android.os.Looper;
import android.util.ArrayMap;
import com.android.internal.app.ProcessStats;
import com.android.internal.os.BatteryStatsImpl;
@@ -166,7 +167,8 @@
static final int MSG_BG_START_TIMEOUT = 1;
- ServiceMap(int userId) {
+ ServiceMap(Looper looper, int userId) {
+ super(looper);
mUserId = userId;
}
@@ -255,7 +257,7 @@
private ServiceMap getServiceMap(int callingUser) {
ServiceMap smap = mServiceMap.get(callingUser);
if (smap == null) {
- smap = new ServiceMap(callingUser);
+ smap = new ServiceMap(mAm.mHandler.getLooper(), callingUser);
mServiceMap.put(callingUser, smap);
}
return smap;
@@ -2417,7 +2419,11 @@
int[] users = mAm.getUsersLocked();
if ("all".equals(name)) {
for (int user : users) {
- ArrayMap<ComponentName, ServiceRecord> alls = getServices(user);
+ ServiceMap smap = mServiceMap.get(user);
+ if (smap == null) {
+ continue;
+ }
+ ArrayMap<ComponentName, ServiceRecord> alls = smap.mServicesByName;
for (int i=0; i<alls.size(); i++) {
ServiceRecord r1 = alls.valueAt(i);
services.add(r1);
@@ -2438,7 +2444,11 @@
}
for (int user : users) {
- ArrayMap<ComponentName, ServiceRecord> alls = getServices(user);
+ ServiceMap smap = mServiceMap.get(user);
+ if (smap == null) {
+ continue;
+ }
+ ArrayMap<ComponentName, ServiceRecord> alls = smap.mServicesByName;
for (int i=0; i<alls.size(); i++) {
ServiceRecord r1 = alls.valueAt(i);
if (componentName != null) {
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index fe91b6c..1987d04 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -226,7 +226,7 @@
static final boolean DEBUG_RESULTS = localLOGV || false;
static final boolean DEBUG_SERVICE = localLOGV || false;
static final boolean DEBUG_SERVICE_EXECUTING = localLOGV || false;
- static final boolean DEBUG_STACK = localLOGV || false;
+ static final boolean DEBUG_STACK = localLOGV || true;
static final boolean DEBUG_SWITCH = localLOGV || false;
static final boolean DEBUG_TASKS = localLOGV || false;
static final boolean DEBUG_THUMBNAILS = localLOGV || false;
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index e84f90e..fb6e9edc 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -383,13 +383,12 @@
// All available services, for your resolving pleasure.
final ServiceIntentResolver mServices = new ServiceIntentResolver();
- // Keys are String (provider class name), values are Provider.
- final HashMap<ComponentName, PackageParser.Provider> mProvidersByComponent =
- new HashMap<ComponentName, PackageParser.Provider>();
+ // All available providers, for your resolving pleasure.
+ final ProviderIntentResolver mProviders = new ProviderIntentResolver();
// Mapping from provider base names (first directory in content URI codePath)
// to the provider information.
- final HashMap<String, PackageParser.Provider> mProviders =
+ final HashMap<String, PackageParser.Provider> mProvidersByAuthority =
new HashMap<String, PackageParser.Provider>();
// Mapping from instrumentation class names to info about them.
@@ -2095,7 +2094,7 @@
if (!sUserManager.exists(userId)) return null;
enforceCrossUserPermission(Binder.getCallingUid(), userId, false, "get provider info");
synchronized (mPackages) {
- PackageParser.Provider p = mProvidersByComponent.get(component);
+ PackageParser.Provider p = mProviders.mProviders.get(component);
if (DEBUG_PACKAGE_INFO) Log.v(
TAG, "getProviderInfo " + component + ": " + p);
if (p != null && mSettings.isEnabledLPr(p.info, flags, userId)) {
@@ -3121,6 +3120,43 @@
}
@Override
+ public List<ResolveInfo> queryIntentContentProviders(
+ Intent intent, String resolvedType, int flags, int userId) {
+ if (!sUserManager.exists(userId)) return Collections.emptyList();
+ ComponentName comp = intent.getComponent();
+ if (comp == null) {
+ if (intent.getSelector() != null) {
+ intent = intent.getSelector();
+ comp = intent.getComponent();
+ }
+ }
+ if (comp != null) {
+ final List<ResolveInfo> list = new ArrayList<ResolveInfo>(1);
+ final ProviderInfo pi = getProviderInfo(comp, flags, userId);
+ if (pi != null) {
+ final ResolveInfo ri = new ResolveInfo();
+ ri.providerInfo = pi;
+ list.add(ri);
+ }
+ return list;
+ }
+
+ // reader
+ synchronized (mPackages) {
+ String pkgName = intent.getPackage();
+ if (pkgName == null) {
+ return mProviders.queryIntent(intent, resolvedType, flags, userId);
+ }
+ final PackageParser.Package pkg = mPackages.get(pkgName);
+ if (pkg != null) {
+ return mProviders.queryIntentForPackage(
+ intent, resolvedType, flags, pkg.providers, userId);
+ }
+ return null;
+ }
+ }
+
+ @Override
public ParceledListSlice<PackageInfo> getInstalledPackages(int flags, int userId) {
final boolean listUninstalled = (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;
@@ -3293,7 +3329,7 @@
if (!sUserManager.exists(userId)) return null;
// reader
synchronized (mPackages) {
- final PackageParser.Provider provider = mProviders.get(name);
+ final PackageParser.Provider provider = mProvidersByAuthority.get(name);
PackageSetting ps = provider != null
? mSettings.mPackages.get(provider.owner.packageName)
: null;
@@ -3314,8 +3350,8 @@
public void querySyncProviders(List<String> outNames, List<ProviderInfo> outInfo) {
// reader
synchronized (mPackages) {
- final Iterator<Map.Entry<String, PackageParser.Provider>> i = mProviders.entrySet()
- .iterator();
+ final Iterator<Map.Entry<String, PackageParser.Provider>> i = mProvidersByAuthority
+ .entrySet().iterator();
final int userId = UserHandle.getCallingUserId();
while (i.hasNext()) {
Map.Entry<String, PackageParser.Provider> entry = i.next();
@@ -3341,7 +3377,7 @@
ArrayList<ProviderInfo> finalList = null;
// reader
synchronized (mPackages) {
- final Iterator<PackageParser.Provider> i = mProvidersByComponent.values().iterator();
+ final Iterator<PackageParser.Provider> i = mProviders.mProviders.values().iterator();
final int userId = processName != null ?
UserHandle.getUserId(uid) : UserHandle.getCallingUserId();
while (i.hasNext()) {
@@ -4313,8 +4349,8 @@
if (p.info.authority != null) {
String names[] = p.info.authority.split(";");
for (int j = 0; j < names.length; j++) {
- if (mProviders.containsKey(names[j])) {
- PackageParser.Provider other = mProviders.get(names[j]);
+ if (mProvidersByAuthority.containsKey(names[j])) {
+ PackageParser.Provider other = mProvidersByAuthority.get(names[j]);
Slog.w(TAG, "Can't install because provider name " + names[j] +
" (in package " + pkg.applicationInfo.packageName +
") is already used by "
@@ -4745,8 +4781,7 @@
PackageParser.Provider p = pkg.providers.get(i);
p.info.processName = fixProcessName(pkg.applicationInfo.processName,
p.info.processName, pkg.applicationInfo.uid);
- mProvidersByComponent.put(new ComponentName(p.info.packageName,
- p.info.name), p);
+ mProviders.addProvider(p);
p.syncable = p.info.isSyncable;
if (p.info.authority != null) {
String names[] = p.info.authority.split(";");
@@ -4763,8 +4798,8 @@
p = new PackageParser.Provider(p);
p.syncable = false;
}
- if (!mProviders.containsKey(names[j])) {
- mProviders.put(names[j], p);
+ if (!mProvidersByAuthority.containsKey(names[j])) {
+ mProvidersByAuthority.put(names[j], p);
if (p.info.authority == null) {
p.info.authority = names[j];
} else {
@@ -4777,7 +4812,7 @@
+ p.info.isSyncable);
}
} else {
- PackageParser.Provider other = mProviders.get(names[j]);
+ PackageParser.Provider other = mProvidersByAuthority.get(names[j]);
Slog.w(TAG, "Skipping provider name " + names[j] +
" (in package " + pkg.applicationInfo.packageName +
"): name already used by "
@@ -5108,8 +5143,7 @@
int i;
for (i=0; i<N; i++) {
PackageParser.Provider p = pkg.providers.get(i);
- mProvidersByComponent.remove(new ComponentName(p.info.packageName,
- p.info.name));
+ mProviders.removeProvider(p);
if (p.info.authority == null) {
/* There was another ContentProvider with this authority when
@@ -5120,8 +5154,8 @@
}
String names[] = p.info.authority.split(";");
for (int j = 0; j < names.length; j++) {
- if (mProviders.get(names[j]) == p) {
- mProviders.remove(names[j]);
+ if (mProvidersByAuthority.get(names[j]) == p) {
+ mProvidersByAuthority.remove(names[j]);
if (DEBUG_REMOVE) {
if (chatty)
Log.d(TAG, "Unregistered content provider: " + names[j]
@@ -5962,6 +5996,195 @@
private int mFlags;
};
+ private final class ProviderIntentResolver
+ extends IntentResolver<PackageParser.ProviderIntentInfo, ResolveInfo> {
+ public List<ResolveInfo> queryIntent(Intent intent, String resolvedType,
+ boolean defaultOnly, int userId) {
+ mFlags = defaultOnly ? PackageManager.MATCH_DEFAULT_ONLY : 0;
+ return super.queryIntent(intent, resolvedType, defaultOnly, userId);
+ }
+
+ public List<ResolveInfo> queryIntent(Intent intent, String resolvedType, int flags,
+ int userId) {
+ if (!sUserManager.exists(userId))
+ return null;
+ mFlags = flags;
+ return super.queryIntent(intent, resolvedType,
+ (flags & PackageManager.MATCH_DEFAULT_ONLY) != 0, userId);
+ }
+
+ public List<ResolveInfo> queryIntentForPackage(Intent intent, String resolvedType,
+ int flags, ArrayList<PackageParser.Provider> packageProviders, int userId) {
+ if (!sUserManager.exists(userId))
+ return null;
+ if (packageProviders == null) {
+ return null;
+ }
+ mFlags = flags;
+ final boolean defaultOnly = (flags & PackageManager.MATCH_DEFAULT_ONLY) != 0;
+ final int N = packageProviders.size();
+ ArrayList<PackageParser.ProviderIntentInfo[]> listCut =
+ new ArrayList<PackageParser.ProviderIntentInfo[]>(N);
+
+ ArrayList<PackageParser.ProviderIntentInfo> intentFilters;
+ for (int i = 0; i < N; ++i) {
+ intentFilters = packageProviders.get(i).intents;
+ if (intentFilters != null && intentFilters.size() > 0) {
+ PackageParser.ProviderIntentInfo[] array =
+ new PackageParser.ProviderIntentInfo[intentFilters.size()];
+ intentFilters.toArray(array);
+ listCut.add(array);
+ }
+ }
+ return super.queryIntentFromList(intent, resolvedType, defaultOnly, listCut, userId);
+ }
+
+ public final void addProvider(PackageParser.Provider p) {
+ mProviders.put(p.getComponentName(), p);
+ if (DEBUG_SHOW_INFO) {
+ Log.v(TAG, " "
+ + (p.info.nonLocalizedLabel != null
+ ? p.info.nonLocalizedLabel : p.info.name) + ":");
+ Log.v(TAG, " Class=" + p.info.name);
+ }
+ final int NI = p.intents.size();
+ int j;
+ for (j = 0; j < NI; j++) {
+ PackageParser.ProviderIntentInfo intent = p.intents.get(j);
+ if (DEBUG_SHOW_INFO) {
+ Log.v(TAG, " IntentFilter:");
+ intent.dump(new LogPrinter(Log.VERBOSE, TAG), " ");
+ }
+ if (!intent.debugCheck()) {
+ Log.w(TAG, "==> For Provider " + p.info.name);
+ }
+ addFilter(intent);
+ }
+ }
+
+ public final void removeProvider(PackageParser.Provider p) {
+ mProviders.remove(p.getComponentName());
+ if (DEBUG_SHOW_INFO) {
+ Log.v(TAG, " " + (p.info.nonLocalizedLabel != null
+ ? p.info.nonLocalizedLabel : p.info.name) + ":");
+ Log.v(TAG, " Class=" + p.info.name);
+ }
+ final int NI = p.intents.size();
+ int j;
+ for (j = 0; j < NI; j++) {
+ PackageParser.ProviderIntentInfo intent = p.intents.get(j);
+ if (DEBUG_SHOW_INFO) {
+ Log.v(TAG, " IntentFilter:");
+ intent.dump(new LogPrinter(Log.VERBOSE, TAG), " ");
+ }
+ removeFilter(intent);
+ }
+ }
+
+ @Override
+ protected boolean allowFilterResult(
+ PackageParser.ProviderIntentInfo filter, List<ResolveInfo> dest) {
+ ProviderInfo filterPi = filter.provider.info;
+ for (int i = dest.size() - 1; i >= 0; i--) {
+ ProviderInfo destPi = dest.get(i).providerInfo;
+ if (destPi.name == filterPi.name
+ && destPi.packageName == filterPi.packageName) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ protected PackageParser.ProviderIntentInfo[] newArray(int size) {
+ return new PackageParser.ProviderIntentInfo[size];
+ }
+
+ @Override
+ protected boolean isFilterStopped(PackageParser.ProviderIntentInfo filter, int userId) {
+ if (!sUserManager.exists(userId))
+ return true;
+ PackageParser.Package p = filter.provider.owner;
+ if (p != null) {
+ PackageSetting ps = (PackageSetting) p.mExtras;
+ if (ps != null) {
+ // System apps are never considered stopped for purposes of
+ // filtering, because there may be no way for the user to
+ // actually re-launch them.
+ return (ps.pkgFlags & ApplicationInfo.FLAG_SYSTEM) == 0
+ && ps.getStopped(userId);
+ }
+ }
+ return false;
+ }
+
+ @Override
+ protected boolean isPackageForFilter(String packageName,
+ PackageParser.ProviderIntentInfo info) {
+ return packageName.equals(info.provider.owner.packageName);
+ }
+
+ @Override
+ protected ResolveInfo newResult(PackageParser.ProviderIntentInfo filter,
+ int match, int userId) {
+ if (!sUserManager.exists(userId))
+ return null;
+ final PackageParser.ProviderIntentInfo info = filter;
+ if (!mSettings.isEnabledLPr(info.provider.info, mFlags, userId)) {
+ return null;
+ }
+ final PackageParser.Provider provider = info.provider;
+ if (mSafeMode && (provider.info.applicationInfo.flags
+ & ApplicationInfo.FLAG_SYSTEM) == 0) {
+ return null;
+ }
+ PackageSetting ps = (PackageSetting) provider.owner.mExtras;
+ if (ps == null) {
+ return null;
+ }
+ ProviderInfo pi = PackageParser.generateProviderInfo(provider, mFlags,
+ ps.readUserState(userId), userId);
+ if (pi == null) {
+ return null;
+ }
+ final ResolveInfo res = new ResolveInfo();
+ res.providerInfo = pi;
+ if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) {
+ res.filter = filter;
+ }
+ res.priority = info.getPriority();
+ res.preferredOrder = provider.owner.mPreferredOrder;
+ res.match = match;
+ res.isDefault = info.hasDefault;
+ res.labelRes = info.labelRes;
+ res.nonLocalizedLabel = info.nonLocalizedLabel;
+ res.icon = info.icon;
+ res.system = isSystemApp(res.providerInfo.applicationInfo);
+ return res;
+ }
+
+ @Override
+ protected void sortResults(List<ResolveInfo> results) {
+ Collections.sort(results, mResolvePrioritySorter);
+ }
+
+ @Override
+ protected void dumpFilter(PrintWriter out, String prefix,
+ PackageParser.ProviderIntentInfo filter) {
+ out.print(prefix);
+ out.print(
+ Integer.toHexString(System.identityHashCode(filter.provider)));
+ out.print(' ');
+ filter.provider.printComponentShortName(out);
+ out.print(" filter ");
+ out.println(Integer.toHexString(System.identityHashCode(filter)));
+ }
+
+ private final HashMap<ComponentName, PackageParser.Provider> mProviders
+ = new HashMap<ComponentName, PackageParser.Provider>();
+ private int mFlags;
+ };
+
private static final Comparator<ResolveInfo> mResolvePrioritySorter =
new Comparator<ResolveInfo>() {
public int compare(ResolveInfo r1, ResolveInfo r2) {
@@ -10454,6 +10677,11 @@
dumpState.isOptionEnabled(DumpState.OPTION_SHOW_FILTERS))) {
dumpState.setTitlePrinted(true);
}
+ if (mProviders.dump(pw, dumpState.getTitlePrinted() ? "\nProvider Resolver Table:"
+ : "Provider Resolver Table:", " ", packageName,
+ dumpState.isOptionEnabled(DumpState.OPTION_SHOW_FILTERS))) {
+ dumpState.setTitlePrinted(true);
+ }
}
if (dumpState.isDumping(DumpState.DUMP_PREFERRED)) {
@@ -10498,7 +10726,7 @@
if (dumpState.isDumping(DumpState.DUMP_PROVIDERS)) {
boolean printedSomething = false;
- for (PackageParser.Provider p : mProvidersByComponent.values()) {
+ for (PackageParser.Provider p : mProviders.mProviders.values()) {
if (packageName != null && !packageName.equals(p.info.packageName)) {
continue;
}
@@ -10512,7 +10740,8 @@
pw.print(" "); pw.println(p.toString());
}
printedSomething = false;
- for (Map.Entry<String, PackageParser.Provider> entry : mProviders.entrySet()) {
+ for (Map.Entry<String, PackageParser.Provider> entry :
+ mProvidersByAuthority.entrySet()) {
PackageParser.Provider p = entry.getValue();
if (packageName != null && !packageName.equals(p.info.packageName)) {
continue;
diff --git a/services/java/com/android/server/wm/DisplayContent.java b/services/java/com/android/server/wm/DisplayContent.java
index 2798104..afa4f78 100644
--- a/services/java/com/android/server/wm/DisplayContent.java
+++ b/services/java/com/android/server/wm/DisplayContent.java
@@ -24,6 +24,7 @@
import android.app.ActivityManager.StackBoxInfo;
import android.graphics.Rect;
import android.graphics.Region;
+import android.os.Debug;
import android.util.Slog;
import android.view.Display;
import android.view.DisplayInfo;
@@ -322,7 +323,8 @@
* @return true if a change was made, false otherwise.
*/
boolean moveHomeStackBox(boolean toTop) {
- if (DEBUG_STACK) Slog.d(TAG, "moveHomeStackBox: toTop=" + toTop);
+ if (DEBUG_STACK) Slog.d(TAG, "moveHomeStackBox: toTop=" + toTop + " Callers=" +
+ Debug.getCallers(4));
switch (mStackBoxes.size()) {
case 0: throw new RuntimeException("moveHomeStackBox: No home StackBox!");
case 1: return false; // Only the home StackBox exists.
diff --git a/services/java/com/android/server/wm/FocusedStackFrame.java b/services/java/com/android/server/wm/FocusedStackFrame.java
index 365b277..cc48b86 100644
--- a/services/java/com/android/server/wm/FocusedStackFrame.java
+++ b/services/java/com/android/server/wm/FocusedStackFrame.java
@@ -63,7 +63,7 @@
}
private void draw(Rect bounds, int color) {
- if (DEBUG_STACK) Slog.i(TAG, "draw: bounds=" + bounds.toShortString() +
+ if (false && DEBUG_STACK) Slog.i(TAG, "draw: bounds=" + bounds.toShortString() +
" color=" + Integer.toHexString(color));
mTmpDrawRect.set(bounds);
Canvas c = null;
@@ -100,7 +100,7 @@
}
private void positionSurface(Rect bounds) {
- if (DEBUG_STACK) Slog.i(TAG, "positionSurface: bounds=" + bounds.toShortString());
+ if (false && DEBUG_STACK) Slog.i(TAG, "positionSurface: bounds=" + bounds.toShortString());
mSurfaceControl.setSize(bounds.width(), bounds.height());
mSurfaceControl.setPosition(bounds.left, bounds.top);
}
@@ -108,7 +108,7 @@
// Note: caller responsible for being inside
// Surface.openTransaction() / closeTransaction()
public void setVisibility(boolean on) {
- if (DEBUG_STACK) Slog.i(TAG, "setVisibility: on=" + on +
+ if (false && DEBUG_STACK) Slog.i(TAG, "setVisibility: on=" + on +
" mLastBounds=" + mLastBounds.toShortString() +
" mBounds=" + mBounds.toShortString());
if (mSurfaceControl == null) {
@@ -132,7 +132,7 @@
}
public void setBounds(Rect bounds) {
- if (DEBUG_STACK) Slog.i(TAG, "setBounds: bounds=" + bounds);
+ if (false && DEBUG_STACK) Slog.i(TAG, "setBounds: bounds=" + bounds);
mBounds.set(bounds);
}
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 9bbaf60..0e0d098 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -187,7 +187,7 @@
static final boolean DEBUG_SURFACE_TRACE = false;
static final boolean DEBUG_WINDOW_TRACE = false;
static final boolean DEBUG_TASK_MOVEMENT = false;
- static final boolean DEBUG_STACK = false;
+ static final boolean DEBUG_STACK = true;
static final boolean SHOW_SURFACE_ALLOC = false;
static final boolean SHOW_TRANSACTIONS = false;
static final boolean SHOW_LIGHT_TRANSACTIONS = false || SHOW_TRANSACTIONS;
@@ -2367,10 +2367,10 @@
}
if (localLOGV || DEBUG_FOCUS || DEBUG_FOCUS_LIGHT && win==mCurrentFocus) Slog.v(
- TAG, "Remove " + win + " client="
- + Integer.toHexString(System.identityHashCode(win.mClient.asBinder()))
- + ", surface=" + win.mWinAnimator.mSurfaceControl,
- new RuntimeException("here").fillInStackTrace());
+ TAG, "Remove " + win + " client="
+ + Integer.toHexString(System.identityHashCode(win.mClient.asBinder()))
+ + ", surface=" + win.mWinAnimator.mSurfaceControl + " Callers="
+ + Debug.getCallers(4));
final long origId = Binder.clearCallingIdentity();
diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java
index 5f944f6..661bd41 100644
--- a/test-runner/src/android/test/mock/MockPackageManager.java
+++ b/test-runner/src/android/test/mock/MockPackageManager.java
@@ -282,6 +282,18 @@
throw new UnsupportedOperationException();
}
+ /** @hide */
+ @Override
+ public List<ResolveInfo> queryIntentContentProvidersAsUser(
+ Intent intent, int flags, int userId) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
+ throw new UnsupportedOperationException();
+ }
+
@Override
public ProviderInfo resolveContentProvider(String name, int flags) {
throw new UnsupportedOperationException();
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index 52ebaf0..f2e5254 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -636,6 +636,30 @@
return false;
}
+/*
+ * A simple container that holds a resource type and name. It is ordered first by type then
+ * by name.
+ */
+struct type_ident_pair_t {
+ String16 type;
+ String16 ident;
+
+ type_ident_pair_t() { };
+ type_ident_pair_t(const String16& t, const String16& i) : type(t), ident(i) { }
+ type_ident_pair_t(const type_ident_pair_t& o) : type(o.type), ident(o.ident) { }
+ inline bool operator < (const type_ident_pair_t& o) const {
+ int cmp = compare_type(type, o.type);
+ if (cmp < 0) {
+ return true;
+ } else if (cmp > 0) {
+ return false;
+ } else {
+ return strictly_order_type(ident, o.ident);
+ }
+ }
+};
+
+
status_t parseAndAddEntry(Bundle* bundle,
const sp<AaptFile>& in,
ResXMLTree* block,
@@ -650,6 +674,7 @@
const String16& product,
bool pseudolocalize,
const bool overwrite,
+ KeyedVector<type_ident_pair_t, bool>* skippedResourceNames,
ResourceTable* outTable)
{
status_t err;
@@ -684,6 +709,13 @@
if (bundleProduct[0] == '\0') {
if (strcmp16(String16("default").string(), product.string()) != 0) {
+ /*
+ * This string has a product other than 'default'. Do not add it,
+ * but record it so that if we do not see the same string with
+ * product 'default' or no product, then report an error.
+ */
+ skippedResourceNames->replaceValueFor(
+ type_ident_pair_t(curType, ident), true);
return NO_ERROR;
}
} else {
@@ -797,6 +829,11 @@
DefaultKeyedVector<String16, uint32_t> nextPublicId(0);
+ // Stores the resource names that were skipped. Typically this happens when
+ // AAPT is invoked without a product specified and a resource has no
+ // 'default' product attribute.
+ KeyedVector<type_ident_pair_t, bool> skippedResourceNames;
+
ResXMLTree::event_code_t code;
do {
code = block.next();
@@ -1544,7 +1581,7 @@
err = parseAndAddEntry(bundle, in, &block, curParams, myPackage, curType, ident,
*curTag, curIsStyled, curFormat, curIsFormatted,
- product, false, overwrite, outTable);
+ product, false, overwrite, &skippedResourceNames, outTable);
if (err < NO_ERROR) { // Why err < NO_ERROR instead of err != NO_ERROR?
hasErrors = localHasErrors = true;
@@ -1557,7 +1594,7 @@
err = parseAndAddEntry(bundle, in, &block, pseudoParams, myPackage, curType,
ident, *curTag, curIsStyled, curFormat,
curIsFormatted, product,
- true, overwrite, outTable);
+ true, overwrite, &skippedResourceNames, outTable);
if (err != NO_ERROR) {
hasErrors = localHasErrors = true;
}
@@ -1596,6 +1633,30 @@
}
}
+ // For every resource defined, there must be exist one variant with a product attribute
+ // set to 'default' (or no product attribute at all).
+ // We check to see that for every resource that was ignored because of a mismatched
+ // product attribute, some product variant of that resource was processed.
+ for (size_t i = 0; i < skippedResourceNames.size(); i++) {
+ if (skippedResourceNames[i]) {
+ const type_ident_pair_t& p = skippedResourceNames.keyAt(i);
+ if (!outTable->hasBagOrEntry(myPackage, p.type, p.ident)) {
+ const char* bundleProduct =
+ (bundle->getProduct() == NULL) ? "" : bundle->getProduct();
+ fprintf(stderr, "In resource file %s: %s\n",
+ in->getPrintableSource().string(),
+ curParams.toString().string());
+
+ fprintf(stderr, "\t%s '%s' does not match product %s.\n"
+ "\tYou may have forgotten to include a 'default' product variant"
+ " of the resource.\n",
+ String8(p.type).string(), String8(p.ident).string(),
+ bundleProduct[0] == 0 ? "default" : bundleProduct);
+ return UNKNOWN_ERROR;
+ }
+ }
+ }
+
return hasErrors ? UNKNOWN_ERROR : NO_ERROR;
}
@@ -2483,8 +2544,8 @@
String16 comment(c->getComment());
typeSymbols->appendComment(String8(c->getName()), comment, c->getPos());
- //printf("Type symbol %s comment: %s\n", String8(e->getName()).string(),
- // String8(comment).string());
+ //printf("Type symbol [%08x] %s comment: %s\n", rid,
+ // String8(c->getName()).string(), String8(comment).string());
comment = c->getTypeComment();
typeSymbols->appendTypeComment(String8(c->getName()), comment);
} else {