Merge "Treat dates near epoch as unknown." into klp-dev
diff --git a/Android.mk b/Android.mk
index 0957fae..166db4ee 100644
--- a/Android.mk
+++ b/Android.mk
@@ -165,7 +165,6 @@
core/java/android/print/ILayoutResultCallback.aidl \
core/java/android/print/IPrinterDiscoveryObserver.aidl \
core/java/android/print/IPrintDocumentAdapter.aidl \
- core/java/android/print/IPrintClient.aidl \
core/java/android/print/IPrintJobStateChangeListener.aidl \
core/java/android/print/IPrintManager.aidl \
core/java/android/print/IPrintSpooler.aidl \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 758273b..cfa8be9 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -183,6 +183,8 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/effects/)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/framework-res_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/print/IPrintClient.*)
+
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/api/current.txt b/api/current.txt
index a8b5efd..dc21e90 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -10693,10 +10693,6 @@
method public int getMinFrequency();
}
- public abstract interface FlushCompleteListener {
- method public abstract void onFlushCompleted(android.hardware.Sensor);
- }
-
public class GeomagneticField {
ctor public GeomagneticField(float, float, float, long);
method public float getDeclination();
@@ -10754,6 +10750,10 @@
method public abstract void onSensorChanged(android.hardware.SensorEvent);
}
+ public abstract interface SensorEventListener2 implements android.hardware.SensorEventListener {
+ method public abstract void onFlushCompleted(android.hardware.Sensor);
+ }
+
public abstract deprecated interface SensorListener {
method public abstract void onAccuracyChanged(int, int);
method public abstract void onSensorChanged(int, float[]);
@@ -10761,7 +10761,7 @@
public abstract class SensorManager {
method public boolean cancelTriggerSensor(android.hardware.TriggerEventListener, android.hardware.Sensor);
- method public boolean flush(android.hardware.Sensor);
+ method public boolean flush(android.hardware.SensorEventListener);
method public static float getAltitude(float, float);
method public static void getAngleChange(float[], float[], float[]);
method public android.hardware.Sensor getDefaultSensor(int);
@@ -10775,9 +10775,9 @@
method public deprecated boolean registerListener(android.hardware.SensorListener, int);
method public deprecated boolean registerListener(android.hardware.SensorListener, int, int);
method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int);
- method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, int, int, android.hardware.FlushCompleteListener);
+ method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, int);
method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler);
- method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, int, int, android.os.Handler, android.hardware.FlushCompleteListener);
+ method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, int, android.os.Handler);
method public static boolean remapCoordinateSystem(float[], int, int, float[]);
method public boolean requestTriggerSensor(android.hardware.TriggerEventListener, android.hardware.Sensor);
method public deprecated void unregisterListener(android.hardware.SensorListener);
diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java
index dad0dfb..cd4a7a0 100644
--- a/core/java/android/content/IntentFilter.java
+++ b/core/java/android/content/IntentFilter.java
@@ -83,7 +83,9 @@
* for an IntentFilter to match an Intent, three conditions must hold:
* the <strong>action</strong> and <strong>category</strong> must match, and
* the data (both the <strong>data type</strong> and
- * <strong>data scheme+authority+path</strong> if specified) must match.
+ * <strong>data scheme+authority+path</strong> if specified) must match
+ * (see {@link #match(ContentResolver, Intent, boolean, String)} for more details
+ * on how the data fields match).
*
* <p><strong>Action</strong> matches if any of the given values match the
* Intent action; if the filter specifies no actions, then it will only match
@@ -976,7 +978,11 @@
* Match this filter against an Intent's data (type, scheme and path). If
* the filter does not specify any types and does not specify any
* schemes/paths, the match will only succeed if the intent does not
- * also specify a type or data.
+ * also specify a type or data. If the filter does not specify any schemes,
+ * it will implicitly match intents with no scheme, or the schemes "content:"
+ * or "file:" (basically performing a MIME-type only match). If the filter
+ * does not specify any MIME types, the Intent also must not specify a MIME
+ * type.
*
* <p>Be aware that to match against an authority, you must also specify a base
* scheme the authority is in. To match against a data path, both a scheme
diff --git a/core/java/android/hardware/FlushCompleteListener.java b/core/java/android/hardware/SensorEventListener2.java
similarity index 89%
rename from core/java/android/hardware/FlushCompleteListener.java
rename to core/java/android/hardware/SensorEventListener2.java
index fbdf4c8..4c3b429 100644
--- a/core/java/android/hardware/FlushCompleteListener.java
+++ b/core/java/android/hardware/SensorEventListener2.java
@@ -19,7 +19,7 @@
/**
* Used for receiving a notification when a flush() has been successfully completed.
*/
-public interface FlushCompleteListener {
+public interface SensorEventListener2 extends SensorEventListener {
/**
* Called after flush() is completed. This flush() could have been initiated by this application
* or some other application. All the events in the batch at the point when the flush was called
@@ -28,7 +28,7 @@
*
* @param sensor The {@link android.hardware.Sensor Sensor} on which flush was called.
*
- * @see android.hardware.SensorManager#flush(Sensor)
+ * @see android.hardware.SensorManager#flush(SensorEventListener)
*/
public void onFlushCompleted(Sensor sensor);
}
diff --git a/core/java/android/hardware/SensorManager.java b/core/java/android/hardware/SensorManager.java
index 8a4aa1d..b931313 100644
--- a/core/java/android/hardware/SensorManager.java
+++ b/core/java/android/hardware/SensorManager.java
@@ -533,8 +533,6 @@
*
* @see #unregisterListener(SensorEventListener)
* @see #registerListener(SensorEventListener, Sensor, int)
- *
- * @throws IllegalArgumentException when sensor is a trigger sensor.
*/
public void unregisterListener(SensorEventListener listener, Sensor sensor) {
if (listener == null || sensor == null) {
@@ -601,7 +599,6 @@
* @see #unregisterListener(SensorEventListener)
* @see #unregisterListener(SensorEventListener, Sensor)
*
- * @throws IllegalArgumentException when sensor is null or a trigger sensor
*/
public boolean registerListener(SensorEventListener listener, Sensor sensor, int rateUs) {
return registerListener(listener, sensor, rateUs, null);
@@ -638,7 +635,9 @@
* {@link #requestTriggerSensor(TriggerEventListener, Sensor)} instead. </p>
*
* @param listener A {@link android.hardware.SensorEventListener SensorEventListener} object
- * that will receive the sensor events.
+ * that will receive the sensor events. If the application is interested in receiving
+ * flush complete notifications, it should register with
+ * {@link android.hardware.SensorEventListener SensorEventListener2} instead.
* @param sensor The {@link android.hardware.Sensor Sensor} to register to.
* @param rateUs The desired delay between two consecutive events in microseconds. This is only
* a hint to the system. Events may be received faster or slower than the specified
@@ -651,30 +650,23 @@
* large. If this is set to zero, batch mode is disabled and events are delivered in
* continuous mode as soon as they are available which is equivalent to calling
* {@link #registerListener(SensorEventListener, Sensor, int)}.
- * @param reservedFlags Always set to Zero.
- * @param flushCompleteListener A {@link android.hardware.FlushCompleteListener
- * FlushCompleteListener} object which is called when any application calls flush()
- * on this sensor and all the events in the batch at the time of calling flush() are
- * successfully delivered to the listeners.
- * @return true if batch mode is successfully enabled for this sensor, false otherwise.
+ * @return <code>true</code> if batch mode is successfully enabled for this sensor,
+ * <code>false</code> otherwise.
* @see #registerListener(SensorEventListener, Sensor, int)
* @see #unregisterListener(SensorEventListener)
- * @see #flush(Sensor)
- * @throws IllegalArgumentException when sensor or listener is null or a trigger sensor.
+ * @see #flush(SensorEventListener)
*/
public boolean registerListener(SensorEventListener listener, Sensor sensor, int rateUs,
- int maxBatchReportLatencyUs, int reservedFlags,
- FlushCompleteListener flushCompleteListener) {
+ int maxBatchReportLatencyUs) {
int delay = getDelay(rateUs);
- return registerListenerImpl(listener, sensor, delay, null, maxBatchReportLatencyUs,
- reservedFlags, flushCompleteListener);
+ return registerListenerImpl(listener, sensor, delay, null, maxBatchReportLatencyUs, 0);
}
/**
* Registers a {@link android.hardware.SensorEventListener SensorEventListener} for the given
* sensor. Events are delivered in continuous mode as soon as they are available. To reduce the
- * battery usage, use {@link #registerListener(SensorEventListener, Sensor, int, int, int,
- * FlushCompleteListener)} which enables batch mode for the sensor.
+ * battery usage, use {@link #registerListener(SensorEventListener, Sensor, int, int)} which
+ * enables batch mode for the sensor.
*
* <p class="note"></p>
* Note: Don't use this method with a one shot trigger sensor such as
@@ -706,67 +698,80 @@
* {@link android.hardware.SensorEvent sensor events} will be
* delivered to.
*
- * @return true if the sensor is supported and successfully enabled.
+ * @return <code>true</code> if the sensor is supported and successfully enabled.
*
* @see #registerListener(SensorEventListener, Sensor, int)
* @see #unregisterListener(SensorEventListener)
* @see #unregisterListener(SensorEventListener, Sensor)
- *
- * @throws IllegalArgumentException when sensor is null or a trigger sensor
*/
public boolean registerListener(SensorEventListener listener, Sensor sensor, int rateUs,
Handler handler) {
- if (listener == null || sensor == null) {
- return false;
- }
-
int delay = getDelay(rateUs);
- return registerListenerImpl(listener, sensor, delay, handler, 0, 0, null);
+ return registerListenerImpl(listener, sensor, delay, handler, 0, 0);
}
/**
* Enables batch mode for a sensor with the given rate and maxBatchReportLatency.
- * @param handler
- * The {@link android.os.Handler Handler} the
- * {@link android.hardware.SensorEvent sensor events} will be
- * delivered to.
+ * @param listener A {@link android.hardware.SensorEventListener SensorEventListener} object
+ * that will receive the sensor events. If the application is interested in receiving
+ * flush complete notifications, it should register with
+ * {@link android.hardware.SensorEventListener SensorEventListener2} instead.
+ * @param sensor The {@link android.hardware.Sensor Sensor} to register to.
+ * @param rateUs The desired delay between two consecutive events in microseconds. This is only
+ * a hint to the system. Events may be received faster or slower than the specified
+ * rate. Usually events are received faster. Can be one of
+ * {@link #SENSOR_DELAY_NORMAL}, {@link #SENSOR_DELAY_UI},
+ * {@link #SENSOR_DELAY_GAME}, {@link #SENSOR_DELAY_FASTEST} or the delay in
+ * microseconds.
+ * @param maxBatchReportLatencyUs An event in the batch can be delayed by at most
+ * maxBatchReportLatency microseconds. More events can be batched if this value is
+ * large. If this is set to zero, batch mode is disabled and events are delivered in
+ * continuous mode as soon as they are available which is equivalent to calling
+ * {@link #registerListener(SensorEventListener, Sensor, int)}.
+ * @param handler The {@link android.os.Handler Handler} the
+ * {@link android.hardware.SensorEvent sensor events} will be delivered to.
*
- * @see #registerListener(SensorEventListener, Sensor, int, int, int, FlushCompleteListener)
+ * @return <code>true</code> if batch mode is successfully enabled for this sensor,
+ * <code>false</code> otherwise.
+ * @see #registerListener(SensorEventListener, Sensor, int, int)
*/
public boolean registerListener(SensorEventListener listener, Sensor sensor, int rateUs,
- int maxBatchReportLatencyUs, int reservedFlags, Handler handler,
- FlushCompleteListener flushCompleteListener) {
+ int maxBatchReportLatencyUs, Handler handler) {
int delayUs = getDelay(rateUs);
- return registerListenerImpl(listener, sensor, delayUs, handler, maxBatchReportLatencyUs,
- reservedFlags, flushCompleteListener);
+ return registerListenerImpl(listener, sensor, delayUs, handler, maxBatchReportLatencyUs, 0);
}
/** @hide */
protected abstract boolean registerListenerImpl(SensorEventListener listener, Sensor sensor,
- int delayUs, Handler handler, int maxBatchReportLatencyUs, int reservedFlags,
- FlushCompleteListener flushCompleteListener);
+ int delayUs, Handler handler, int maxBatchReportLatencyUs, int reservedFlags);
/**
- * Flushes the batch FIFO of the given sensor. If there are events in the FIFO of this sensor,
- * they are returned as if the batch timeout has expired. Events are returned in the
- * usual way through the SensorEventListener. This call doesn't effect the batch timeout for
- * this sensor. This call is asynchronous and returns immediately. FlushCompleteListener is
- * called after all the events in the batch at the time of calling this method have been
- * delivered successfully.
- * @param sensor
- * The {@link android.hardware.Sensor Sensor} to flush.
- * @return true if the flush is initiated successfully. false if the sensor isn't active
- * i.e no application is registered for updates from this sensor.
- * @see #registerListener(SensorEventListener, Sensor, int, int, int, FlushCompleteListener)
- * @throws IllegalArgumentException when sensor is null or a trigger sensor.
+ * Flushes the batch FIFO of all the sensors registered for this listener. If there are events
+ * in the FIFO of the sensor, they are returned as if the batch timeout in the FIFO of the
+ * sensors had expired. Events are returned in the usual way through the SensorEventListener.
+ * This call doesn't affect the batch timeout for this sensor. This call is asynchronous and
+ * returns immediately.
+ * {@link android.hardware.SensorEventListener2#onFlushCompleted onFlushCompleted} is called
+ * after all the events in the batch at the time of calling this method have been delivered
+ * successfully. If the hardware doesn't support flush, it still returns true and a trivial
+ * flush complete event is sent after the current event for all the clients registered for this
+ * sensor.
+ *
+ * @param listener A {@link android.hardware.SensorEventListener SensorEventListener} object
+ * which was previously used in a registerListener call.
+ * @return <code>true</code> if the flush is initiated successfully on all the sensors
+ * registered for this listener, false if no sensor is previously registered for this
+ * listener or flush on one of the sensors fails.
+ * @see #registerListener(SensorEventListener, Sensor, int, int)
+ * @throws IllegalArgumentException when listener is null.
*/
- public boolean flush(Sensor sensor) {
- return flushImpl(sensor);
+ public boolean flush(SensorEventListener listener) {
+ return flushImpl(listener);
}
/** @hide */
- protected abstract boolean flushImpl(Sensor sensor);
+ protected abstract boolean flushImpl(SensorEventListener listener);
/**
* <p>
diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java
index 9747f0d..14f67c5 100644
--- a/core/java/android/hardware/SystemSensorManager.java
+++ b/core/java/android/hardware/SystemSensorManager.java
@@ -93,17 +93,20 @@
/** @hide */
@Override
protected boolean registerListenerImpl(SensorEventListener listener, Sensor sensor,
- int delayUs, Handler handler, int maxBatchReportLatencyUs, int reservedFlags,
- FlushCompleteListener flushCompleteListener) {
- if (sensor == null) throw new IllegalArgumentException("sensor cannot be null");
- if (listener == null) throw new IllegalArgumentException("listener cannot be null");
- if (reservedFlags != 0) throw new IllegalArgumentException("reservedFlags should be zero");
- if (delayUs < 0) throw new IllegalArgumentException("rateUs should be positive");
- if (maxBatchReportLatencyUs < 0)
- throw new IllegalArgumentException("maxBatchReportLatencyUs should be positive");
+ int delayUs, Handler handler, int maxBatchReportLatencyUs, int reservedFlags) {
+ if (listener == null || sensor == null) {
+ Log.e(TAG, "sensor or listener is null");
+ return false;
+ }
// Trigger Sensors should use the requestTriggerSensor call.
- if (Sensor.getReportingMode(sensor) == Sensor.REPORTING_MODE_ONE_SHOT)
- throw new IllegalArgumentException("Trigger Sensors cannot use registerListener");
+ if (Sensor.getReportingMode(sensor) == Sensor.REPORTING_MODE_ONE_SHOT) {
+ Log.e(TAG, "Trigger Sensors should use the requestTriggerSensor.");
+ return false;
+ }
+ if (maxBatchReportLatencyUs < 0 || delayUs < 0) {
+ Log.e(TAG, "maxBatchReportLatencyUs and delayUs should be non-negative");
+ return false;
+ }
// Invariants to preserve:
// - one Looper per SensorEventListener
@@ -113,7 +116,7 @@
SensorEventQueue queue = mSensorListeners.get(listener);
if (queue == null) {
Looper looper = (handler != null) ? handler.getLooper() : mMainLooper;
- queue = new SensorEventQueue(listener, looper, this, flushCompleteListener);
+ queue = new SensorEventQueue(listener, looper, this);
if (!queue.addSensor(sensor, delayUs, maxBatchReportLatencyUs, reservedFlags)) {
queue.dispose();
return false;
@@ -200,16 +203,17 @@
}
}
- protected boolean flushImpl(Sensor sensor) {
- if (sensor == null) throw new IllegalArgumentException("sensor cannot be null");
- if(Sensor.getReportingMode(sensor) == Sensor.REPORTING_MODE_ONE_SHOT)
- throw new IllegalArgumentException("Trigger Sensors cannot call flush");
+ protected boolean flushImpl(SensorEventListener listener) {
+ if (listener == null) throw new IllegalArgumentException("listener cannot be null");
- FlushEventQueue queue = new FlushEventQueue(mMainLooper, this);
- if (queue.flushSensor(sensor) != 0) {
- return false;
+ synchronized (mSensorListeners) {
+ SensorEventQueue queue = mSensorListeners.get(listener);
+ if (queue == null) {
+ return false;
+ } else {
+ return (queue.flush() == 0);
+ }
}
- return true;
}
/*
@@ -224,7 +228,7 @@
int maxBatchReportLatencyUs, int reservedFlags);
private static native int nativeDisableSensor(int eventQ, int handle);
private static native void nativeDestroySensorEventQueue(int eventQ);
- private static native int nativeFlushSensor(int eventQ, int handle);
+ private static native int nativeFlushSensor(int eventQ);
private int nSensorEventQueue;
private final SparseBooleanArray mActiveSensors = new SparseBooleanArray();
protected final SparseIntArray mSensorAccuracies = new SparseIntArray();
@@ -291,10 +295,9 @@
return false;
}
- public int flushSensor(Sensor sensor) {
+ public int flush() {
if (nSensorEventQueue == 0) throw new NullPointerException();
- if (sensor == null) throw new NullPointerException();
- return nativeFlushSensor(nSensorEventQueue, sensor.getHandle());
+ return nativeFlushSensor(nSensorEventQueue);
}
public boolean hasSensors() {
@@ -347,14 +350,12 @@
static final class SensorEventQueue extends BaseEventQueue {
private final SensorEventListener mListener;
- private final FlushCompleteListener mFlushCompleteListener;
private final SparseArray<SensorEvent> mSensorsEvents = new SparseArray<SensorEvent>();
public SensorEventQueue(SensorEventListener listener, Looper looper,
- SystemSensorManager manager, FlushCompleteListener flushCompleteListener) {
+ SystemSensorManager manager) {
super(looper, manager);
mListener = listener;
- mFlushCompleteListener = flushCompleteListener;
}
public void addSensorEvent(Sensor sensor) {
@@ -408,9 +409,9 @@
@SuppressWarnings("unused")
protected void dispatchFlushCompleteEvent(int handle) {
- final Sensor sensor = sHandleToSensor.get(handle);
- if (mFlushCompleteListener != null) {
- mFlushCompleteListener.onFlushCompleted(sensor);
+ if (mListener instanceof SensorEventListener2) {
+ final Sensor sensor = sHandleToSensor.get(handle);
+ ((SensorEventListener2)mListener).onFlushCompleted(sensor);
}
return;
}
@@ -464,30 +465,4 @@
protected void dispatchFlushCompleteEvent(int handle) {
}
}
-
- static final class FlushEventQueue extends BaseEventQueue {
- public FlushEventQueue(Looper looper, SystemSensorManager manager) {
- super(looper, manager);
- }
-
- @SuppressWarnings("unused")
- @Override
- protected void dispatchSensorEvent(int handle, float[] values, int accuracy,
- long timestamp) {
- }
-
- @Override
- @SuppressWarnings("unused")
- protected void addSensorEvent(Sensor sensor) {
- }
-
- @Override
- @SuppressWarnings("unused")
- protected void removeSensorEvent(Sensor sensor) {
- }
-
- @SuppressWarnings("unused")
- protected void dispatchFlushCompleteEvent(int handle) {
- }
- }
}
diff --git a/core/java/android/net/ProxyProperties.java b/core/java/android/net/ProxyProperties.java
index 648a4b3..78ac75f 100644
--- a/core/java/android/net/ProxyProperties.java
+++ b/core/java/android/net/ProxyProperties.java
@@ -178,7 +178,7 @@
// If PAC URL is present in either then they must be equal.
// Other parameters will only be for fall back.
if (!TextUtils.isEmpty(mPacFileUrl)) {
- return mPacFileUrl.equals(p.getPacFileUrl());
+ return mPacFileUrl.equals(p.getPacFileUrl()) && mPort == p.mPort;
}
if (!TextUtils.isEmpty(p.getPacFileUrl())) {
return false;
@@ -219,6 +219,7 @@
if (mPacFileUrl != null) {
dest.writeByte((byte)1);
dest.writeString(mPacFileUrl);
+ dest.writeInt(mPort);
return;
} else {
dest.writeByte((byte)0);
@@ -244,7 +245,9 @@
String host = null;
int port = 0;
if (in.readByte() != 0) {
- return new ProxyProperties(in.readString());
+ String url = in.readString();
+ int localPort = in.readInt();
+ return new ProxyProperties(url, localPort);
}
if (in.readByte() != 0) {
host = in.readString();
diff --git a/core/java/android/print/IPrintManager.aidl b/core/java/android/print/IPrintManager.aidl
index 3bd515b..8fa7ab9 100644
--- a/core/java/android/print/IPrintManager.aidl
+++ b/core/java/android/print/IPrintManager.aidl
@@ -16,9 +16,9 @@
package android.print;
+import android.os.Bundle;
import android.print.IPrinterDiscoveryObserver;
import android.print.IPrintDocumentAdapter;
-import android.print.IPrintClient;
import android.print.PrintJobId;
import android.print.IPrintJobStateChangeListener;
import android.print.PrinterId;
@@ -34,9 +34,8 @@
interface IPrintManager {
List<PrintJobInfo> getPrintJobInfos(int appId, int userId);
PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId);
- PrintJobInfo print(String printJobName, in IPrintClient client,
- in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes,
- int appId, int userId);
+ Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter,
+ in PrintAttributes attributes, String packageName, int appId, int userId);
void cancelPrintJob(in PrintJobId printJobId, int appId, int userId);
void restartPrintJob(in PrintJobId printJobId, int appId, int userId);
diff --git a/core/java/android/print/IPrintSpooler.aidl b/core/java/android/print/IPrintSpooler.aidl
index 5f06b83..7b2cf25 100644
--- a/core/java/android/print/IPrintSpooler.aidl
+++ b/core/java/android/print/IPrintSpooler.aidl
@@ -18,8 +18,6 @@
import android.content.ComponentName;
import android.os.ParcelFileDescriptor;
-import android.print.IPrintDocumentAdapter;
-import android.print.IPrintClient;
import android.print.IPrintSpoolerClient;
import android.print.IPrintSpoolerCallbacks;
import android.print.PrinterInfo;
@@ -40,8 +38,7 @@
int state, int appId, int sequence);
void getPrintJobInfo(in PrintJobId printJobId, IPrintSpoolerCallbacks callback,
int appId, int sequence);
- void createPrintJob(in PrintJobInfo printJob, in IPrintClient client,
- in IPrintDocumentAdapter printAdapter);
+ void createPrintJob(in PrintJobInfo printJob);
void setPrintJobState(in PrintJobId printJobId, int status, String stateReason,
IPrintSpoolerCallbacks callback, int sequence);
void setPrintJobTag(in PrintJobId printJobId, String tag, IPrintSpoolerCallbacks callback,
diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java
index 1cb4e8d..1233da2 100644
--- a/core/java/android/print/PrintManager.java
+++ b/core/java/android/print/PrintManager.java
@@ -60,8 +60,47 @@
private static final boolean DEBUG = false;
- private static final int MSG_START_PRINT_JOB_CONFIG_ACTIVITY = 1;
- private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 2;
+ private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 1;
+
+ /**
+ * The action for launching the print dialog activity.
+ *
+ * @hide
+ */
+ public static final String ACTION_PRINT_DIALOG = "android.print.PRINT_DIALOG";
+
+ /**
+ * Extra with the intent for starting the print dialog.
+ * <p>
+ * <strong>Type:</strong> {@link android.content.IntentSender}
+ * </p>
+ *
+ * @hide
+ */
+ public static final String EXTRA_PRINT_DIALOG_INTENT =
+ "android.print.intent.extra.EXTRA_PRINT_DIALOG_INTENT";
+
+ /**
+ * Extra with a print job.
+ * <p>
+ * <strong>Type:</strong> {@link android.print.PrintJobInfo}
+ * </p>
+ *
+ * @hide
+ */
+ public static final String EXTRA_PRINT_JOB =
+ "android.print.intent.extra.EXTRA_PRINT_JOB";
+
+ /**
+ * Extra with the print document adapter to be printed.
+ * <p>
+ * <strong>Type:</strong> {@link android.print.IPrintDocumentAdapter}
+ * </p>
+ *
+ * @hide
+ */
+ public static final String EXTRA_PRINT_DOCUMENT_ADAPTER =
+ "android.print.intent.extra.EXTRA_PRINT_DOCUMENT_ADAPTER";
/** @hide */
public static final int APP_ID_ANY = -2;
@@ -74,8 +113,6 @@
private final int mAppId;
- private final PrintClient mPrintClient;
-
private final Handler mHandler;
private Map<PrintJobStateChangeListener, PrintJobStateChangeListenerWrapper> mPrintJobStateChangeListeners;
@@ -103,24 +140,10 @@
mService = service;
mUserId = userId;
mAppId = appId;
- mPrintClient = new PrintClient(this);
mHandler = new Handler(context.getMainLooper(), null, false) {
@Override
public void handleMessage(Message message) {
switch (message.what) {
- case MSG_START_PRINT_JOB_CONFIG_ACTIVITY: {
- SomeArgs args = (SomeArgs) message.obj;
- Context context = (Context) args.arg1;
- IntentSender intent = (IntentSender) args.arg2;
- args.recycle();
- try {
- context.startIntentSender(intent, null, 0, 0, 0);
- } catch (SendIntentException sie) {
- Log.e(LOG_TAG, "Couldn't start print job config activity.", sie);
- }
- }
- break;
-
case MSG_NOTIFY_PRINT_JOB_STATE_CHANGED: {
SomeArgs args = (SomeArgs) message.obj;
PrintJobStateChangeListener listener =
@@ -128,8 +151,7 @@
PrintJobId printJobId = (PrintJobId) args.arg2;
args.recycle();
listener.onPrintJobStateChanged(printJobId);
- }
- break;
+ } break;
}
}
};
@@ -279,10 +301,20 @@
PrintDocumentAdapterDelegate delegate = new PrintDocumentAdapterDelegate(documentAdapter,
mContext.getMainLooper());
try {
- PrintJobInfo printJob = mService.print(printJobName, mPrintClient, delegate,
- attributes, mAppId, mUserId);
- if (printJob != null) {
- return new PrintJob(printJob, this);
+ Bundle result = mService.print(printJobName, delegate,
+ attributes, mContext.getPackageName(), mAppId, mUserId);
+ if (result != null) {
+ PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB);
+ IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT);
+ if (printJob == null || intent == null) {
+ return null;
+ }
+ try {
+ mContext.startIntentSender(intent, null, 0, 0, 0);
+ return new PrintJob(printJob, this);
+ } catch (SendIntentException sie) {
+ Log.e(LOG_TAG, "Couldn't start print job config activity.", sie);
+ }
}
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error creating a print job", re);
@@ -333,27 +365,6 @@
return new PrinterDiscoverySession(mService, mContext, mUserId);
}
- private static final class PrintClient extends IPrintClient.Stub {
-
- private final WeakReference<PrintManager> mWeakPrintManager;
-
- public PrintClient(PrintManager manager) {
- mWeakPrintManager = new WeakReference<PrintManager>(manager);
- }
-
- @Override
- public void startPrintJobConfigActivity(IntentSender intent) {
- PrintManager manager = mWeakPrintManager.get();
- if (manager != null) {
- SomeArgs args = SomeArgs.obtain();
- args.arg1 = manager.mContext;
- args.arg2 = intent;
- manager.mHandler.obtainMessage(MSG_START_PRINT_JOB_CONFIG_ACTIVITY,
- args).sendToTarget();
- }
- }
- }
-
private static final class PrintDocumentAdapterDelegate extends IPrintDocumentAdapter.Stub {
private final Object mLock = new Object();
diff --git a/core/java/com/android/internal/inputmethod/InputMethodRoot.java b/core/java/com/android/internal/inputmethod/InputMethodRoot.java
index 40a424b..eddea99 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodRoot.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodRoot.java
@@ -40,6 +40,12 @@
}
@Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ requestFitSystemWindows();
+ }
+
+ @Override
protected boolean fitSystemWindows(Rect insets) {
if (mNavigationGuard == null) {
mNavigationGuard = findViewById(com.android.internal.R.id.navigationGuard);
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 23ed019..44e7ec1 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -160,8 +160,7 @@
public View getItemView(final MenuItemImpl item, View convertView, ViewGroup parent) {
View actionView = item.getActionView();
if (actionView == null || item.hasCollapsibleActionView()) {
- // Don't recycle existing item views for action buttons; it interferes with transitions.
- actionView = super.getItemView(item, null, parent);
+ actionView = super.getItemView(item, convertView, parent);
}
actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE);
diff --git a/core/java/com/android/internal/widget/SubtitleView.java b/core/java/com/android/internal/widget/SubtitleView.java
index ccedf63..071193c 100644
--- a/core/java/com/android/internal/widget/SubtitleView.java
+++ b/core/java/com/android/internal/widget/SubtitleView.java
@@ -180,7 +180,9 @@
mInnerPaddingX = (int) (size * INNER_PADDING_RATIO + 0.5f);
mHasMeasurements = false;
- forceLayout();
+
+ requestLayout();
+ invalidate();
}
}
@@ -189,7 +191,9 @@
mTextPaint.setTypeface(typeface);
mHasMeasurements = false;
- forceLayout();
+
+ requestLayout();
+ invalidate();
}
}
@@ -198,7 +202,9 @@
mAlignment = textAlignment;
mHasMeasurements = false;
- forceLayout();
+
+ requestLayout();
+ invalidate();
}
}
diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp
index 4290a6e..793d1bf 100644
--- a/core/jni/android_hardware_SensorManager.cpp
+++ b/core/jni/android_hardware_SensorManager.cpp
@@ -220,9 +220,9 @@
receiver->decStrong((void*)nativeInitSensorEventQueue);
}
-static jint nativeFlushSensor(JNIEnv *env, jclass clazz, jint eventQ, jint handle) {
+static jint nativeFlushSensor(JNIEnv *env, jclass clazz, jint eventQ) {
sp<Receiver> receiver(reinterpret_cast<Receiver *>(eventQ));
- return receiver->getSensorEventQueue()->flushSensor(handle);
+ return receiver->getSensorEventQueue()->flush();
}
//----------------------------------------------------------------------------
@@ -255,7 +255,7 @@
(void*)nativeDestroySensorEventQueue },
{"nativeFlushSensor",
- "(II)I",
+ "(I)I",
(void*)nativeFlushSensor },
};
diff --git a/core/res/res/drawable-hdpi/stat_sys_gps_on.png b/core/res/res/drawable-hdpi/stat_sys_gps_on.png
index cb8a1e8..e0f7740 100644
--- a/core/res/res/drawable-hdpi/stat_sys_gps_on.png
+++ b/core/res/res/drawable-hdpi/stat_sys_gps_on.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/stat_sys_gps_on.png b/core/res/res/drawable-ldpi/stat_sys_gps_on.png
index 8915c59..77776f5 100644
--- a/core/res/res/drawable-ldpi/stat_sys_gps_on.png
+++ b/core/res/res/drawable-ldpi/stat_sys_gps_on.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/stat_sys_gps_on.png b/core/res/res/drawable-mdpi/stat_sys_gps_on.png
index 2c98972..311a1de 100644
--- a/core/res/res/drawable-mdpi/stat_sys_gps_on.png
+++ b/core/res/res/drawable-mdpi/stat_sys_gps_on.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/stat_sys_gps_on.png b/core/res/res/drawable-xhdpi/stat_sys_gps_on.png
index a7408d4..8a6edfb 100644
--- a/core/res/res/drawable-xhdpi/stat_sys_gps_on.png
+++ b/core/res/res/drawable-xhdpi/stat_sys_gps_on.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/stat_sys_gps_on.png b/core/res/res/drawable-xxhdpi/stat_sys_gps_on.png
index 81fb04a..063f614 100755
--- a/core/res/res/drawable-xxhdpi/stat_sys_gps_on.png
+++ b/core/res/res/drawable-xxhdpi/stat_sys_gps_on.png
Binary files differ
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 76f8174..e44a56e 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -440,7 +440,7 @@
<string name="permlab_readContacts" msgid="8348481131899886131">"እውቂያዎችህን አንብብ"</string>
<string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"መተግበሪያው በጡባዊ ተኮህ ስለተከማቹ ዕውቂያዎች ያሉትን ውሂቦች በሙሉ፤ ጥሪ ያደረግክበትን፣ ኢሜይል የላክበትን ወይም ከተወሰኑ ግለሰቦች ጋር በሌላ መንገድ የተገናኘህበትን ድግምግሞሽ ጨምሮ፣ እንዲያነብ ይፈቅድለታል። ይህ ፈቃድ መተግበሪያዎች የእውቂያ ውሂብህን እንዲያስቀምጡ የሚፈቅድላቸው ሲሆን ተንኮል አዘል መተግበሪያዎች የእውቂያህን ውሂብ ሳታውቀው ሊያጋሩት ይችላሉ።"</string>
<string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"መተግበሪያው በስልክህ ስለተከማቹ ዕውቂያዎች ያሉትን ውሂቦች በሙሉ፤ ጥሪ ያደረግክበትን፣ ኢሜይል የላክበትን ወይም ከተወሰኑ ግለሰቦች ጋር በሌላ መንገድ የተገናኘህበትን ድግምግሞሽ ጨምሮ፣ እንዲያነብ ይፈቅድለታል። ይህ ፈቃድ መተግበሪያዎች የእውቂያ ውሂብህን እንዲያስቀምጡ የሚፈቅድላቸው ሲሆን ተንኮል አዘል መተግበሪያዎች የእውቂያህን ውሂብ ሳታውቀው ሊያጋሩት ይችላሉ።"</string>
- <string name="permlab_writeContacts" msgid="5107492086416793544">"ዕውቂያዎችህን አስተካክል"</string>
+ <string name="permlab_writeContacts" msgid="5107492086416793544">"ዕውቂያዎችዎን ያስተካክሉ"</string>
<string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"መተግበሪያው በጡባዊ ቱኮህ ስለተከማቹ የዕውቂያዎችህ ውሂብ በሙሉ፤ ጥሪ ያደረግክበትን፣ ኢሜይል የላክበትን ወይም ከተወሰኑ እውቂያዎች ጋር በሌላ መንገድ የተገናኘህበትን ድግምግሞሽ ጨምሮ፣ እንዲያስተካክል ይፈቅድለታል። ይህ ፈቃድ መተግበሪያዎች የእውቂያ ውሂብ እንዲሰርዙ ይፈቅድላቸዋል።"</string>
<string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"መተግበሪያው በስልክህ ስለተከማቹ የዕውቂያዎችህ ውሂብ በሙሉ፤ ጥሪ ያደረግክበትን፣ ኢሜይል የላክበትን ወይም ከተወሰኑ እውቂያዎች ጋር በሌላ መንገድ የተገናኘህበትን ድግምግሞሽ ጨምሮ፣ እንዲያስተካክል ይፈቅድለታል። ይህ ፈቃድ መተግበሪያዎች የእውቂያ ውሂብ እንዲሰርዙ ይፈቅድላቸዋል።"</string>
<string name="permlab_readCallLog" msgid="3478133184624102739">"የጥሪ ምዝግብ ማስታወሻን አንብብ"</string>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 9ed1162a..4f8f8ed 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -1114,7 +1114,7 @@
<string name="loading" msgid="7933681260296021180">"Բեռնում..."</string>
<string name="capital_on" msgid="1544682755514494298">"I"</string>
<string name="capital_off" msgid="6815870386972805832">"O"</string>
- <string name="whichApplication" msgid="4533185947064773386">"ավարտել գործողությունը` օգտագործելով"</string>
+ <string name="whichApplication" msgid="4533185947064773386">"Ավարտել գործողությունը` օգտագործելով"</string>
<string name="whichHomeApplication" msgid="4616420172727326782">"Ընտրեք հիմնական հավելվածը"</string>
<string name="alwaysUse" msgid="4583018368000610438">"Օգտագործել լռելյայն այս գործողության համար:"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Մաքրել լռելյայնը Համակարգի կարգավորումներ > Ծրագրեր >Ներբեռնված էջից:"</string>
diff --git a/core/res/res/values-mcc234-mnc20/config.xml b/core/res/res/values-mcc234-mnc20/config.xml
new file mode 100644
index 0000000..d602c9f
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc20/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You my obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Configure mobile network MTU. Carrier specific value is set here.
+ -->
+ <integer name="config_mobile_mtu">1440</integer>
+
+</resources>
diff --git a/core/res/res/values-mcc235-mnc94/config.xml b/core/res/res/values-mcc235-mnc94/config.xml
new file mode 100644
index 0000000..d602c9f
--- /dev/null
+++ b/core/res/res/values-mcc235-mnc94/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You my obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Configure mobile network MTU. Carrier specific value is set here.
+ -->
+ <integer name="config_mobile_mtu">1440</integer>
+
+</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 894f10a..7a5fc28 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -260,7 +260,7 @@
<string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"Huruhusu programu kupokea na kuchakata mawasiliano ya dharura. Idhini hii inapatikana tu kwa programu za mfumo."</string>
<string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"soma mawasiliano ya matangazo ya simu"</string>
<string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"Huruhusu programu kusoma mawasiliano ya matangazo ya simu yaliyoingia kwenye kifaa chako. Arifa za matangazo ya simu huwasilishwa katika maeneo mengine ili kukuonya juu ya hali za dharura. Huenda programu hasidi zikatatiza utendajikazi au shughuli ya kifaa chako wakati matangazo ya simu ya dharura yameingia."</string>
- <string name="permlab_sendSms" msgid="5600830612147671529">"tuma ujumbe wa SMS"</string>
+ <string name="permlab_sendSms" msgid="5600830612147671529">"kutuma SMS"</string>
<string name="permdesc_sendSms" msgid="7094729298204937667">"Inaruhusu programu kutuma ujumbe wa SMS. Hii inaweza ikasababisha malipo yasiyotarajiwa. Programu hasidi zinaweza kukugharimu pesa kwa kutuma ujumbe bila uthibitisho wako."</string>
<string name="permlab_sendRespondViaMessageRequest" msgid="8713889105305943200">"tuma matukio ya kujibu-kupitia-ujumbe"</string>
<string name="permdesc_sendRespondViaMessageRequest" msgid="7107648548468778734">"Inaruhusu programu kutuma maombi kwa programu nyingine za ujumbe ili kushughulikia matukio ya kujibu-kupitia-ujumbe kwa simu zinazoingia."</string>
@@ -427,7 +427,7 @@
<string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Inaruhusu programu kurekebisha programu unazopendelea. Programu hasidi zinaweza, polepole, kubadilisha programu zinazoendeshwa, na kuzifanya programu ulizo nazo kukusanya data ya kibinafsi kutoka kwako."</string>
<string name="permlab_writeSettings" msgid="2226195290955224730">"rekebisha mipangilio ya mfumo"</string>
<string name="permdesc_writeSettings" msgid="7775723441558907181">"Inaruhusu programu kurekebisha mipangilio ya mfumo wa data. Programu hasidi zinaweza kuvuruga usanidi wa mfumo wako."</string>
- <string name="permlab_writeSecureSettings" msgid="204676251876718288">"rekebisha mipangilio ya mfumo salama"</string>
+ <string name="permlab_writeSecureSettings" msgid="204676251876718288">"kurekebisha mipangilio ya mfumo salama"</string>
<string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Inaruhusu programu kurekebisha mipagilio ya mfumo wa data salama. Si ya kutumiwa na programu za kawaida."</string>
<string name="permlab_writeGservices" msgid="2149426664226152185">"rekebisha ramani ya Google services"</string>
<string name="permdesc_writeGservices" msgid="1287309437638380229">"Inaruhusu programu kurekebisha ramani ya huduma za Google. Si ya kutumiwa na programu za kawaida."</string>
@@ -578,14 +578,14 @@
<string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Huruhusu programu kubadilisha saa za eneo katika simu."</string>
<string name="permlab_accountManagerService" msgid="4829262349691386986">"tenda kama Huduma ya Meneja wa Akaunti"</string>
<string name="permdesc_accountManagerService" msgid="1948455552333615954">"Huruhusu programu kupiga simu kwa Wathibitishaji Akaunti."</string>
- <string name="permlab_getAccounts" msgid="1086795467760122114">"pata akaunti kwenye kifaa"</string>
+ <string name="permlab_getAccounts" msgid="1086795467760122114">"kupata akaunti kwenye kifaa"</string>
<string name="permdesc_getAccounts" product="tablet" msgid="2741496534769660027">"Inaruhusu programu kupata orodha ya akaunti zinazojulikana kwa kompyuta kibao. Hii inaweza kujumuisha akaunti zozote zilizoundwa na programu ambazo umesakinisha."</string>
<string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"Inaruhusu programu kupata orodha ya akaunti zinazojulikana kwa simu. Hii inaweza kujumuisha akaunti zozote zilizoundwa na programu ambazo umesakinisha."</string>
- <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"fungua akaunti na weka manenosiri"</string>
+ <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"kufungua akaunti na kuweka manenosiri"</string>
<string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Inaruhusu programu kutumia uwezo wa uthibitishaji akaunti wa KidhibitiAkaunti, ikiwa ni pamoja na kufungua akaunti na kupata na kuweka manenosiri ya akaunti hizo."</string>
- <string name="permlab_manageAccounts" msgid="4983126304757177305">"ongeza au uondoe akaunti"</string>
+ <string name="permlab_manageAccounts" msgid="4983126304757177305">"kuongeza au kuondoa akaunti"</string>
<string name="permdesc_manageAccounts" msgid="8698295625488292506">"Inaruhusu programu kutekeleza shughuli kama vile kuongeza na kutoa akaunti, na kufuta manenosiri yazo."</string>
- <string name="permlab_useCredentials" msgid="235481396163877642">"tumia akaunti kwenye kifaa"</string>
+ <string name="permlab_useCredentials" msgid="235481396163877642">"kutumia akaunti zilizo kwenye kifaa"</string>
<string name="permdesc_useCredentials" msgid="7984227147403346422">"Inaruhusu programu kuomba shuhuda za uthibitisho."</string>
<string name="permlab_accessNetworkState" msgid="4951027964348974773">"Kuangalia mitandao"</string>
<string name="permdesc_accessNetworkState" msgid="8318964424675960975">"Inaruhusu programu kuona taarifa kuhusu miunganisho ya mtandao kama vile mitandao ipi iliyopo na imeunganishwa."</string>
@@ -642,8 +642,8 @@
<string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"soma maudhui ya kadi yako ya SD"</string>
<string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Huruhusu programu kusoma maudhui ya hifadhi ya USB."</string>
<string name="permdesc_sdcardRead" product="default" msgid="2607362473654975411">"Huruhusu programu kusoma maudhui ya kadi yako ya SD."</string>
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"rekebisha au ufute maudhui ya hifadhi yako ya USB"</string>
- <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"rekebisha au ufute maudhui ya kadi yako ya SD"</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"kurekebisha au kufuta maudhui ya hifadhi yako ya USB"</string>
+ <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"kurekebisha au kufuta maudhui ya kadi yako ya SD"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Inaruhusu programu kuandikia hifadhi ya USB."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Inaruhusu programu kuandikia kadi ya SD."</string>
<string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"badilisha/futa maudhui ya hifadhi ya media ya ndani."</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index adcb3fb2..cc1cfd3 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1615,7 +1615,7 @@
<java-symbol type="anim" name="push_up_out" />
<java-symbol type="anim" name="lock_screen_wallpaper_behind_enter" />
<java-symbol type="anim" name="lock_screen_behind_enter" />
-
+
<java-symbol type="bool" name="config_alwaysUseCdmaRssi" />
<java-symbol type="dimen" name="status_bar_icon_size" />
<java-symbol type="dimen" name="system_bar_icon_size" />
@@ -1737,6 +1737,7 @@
<!-- From Chromium-WebView -->
<java-symbol type="attr" name="actionModeWebSearchDrawable" />
<java-symbol type="string" name="websearch" />
+ <java-symbol type="drawable" name="ic_media_video_poster" />
<!-- From SubtitleView -->
<java-symbol type="dimen" name="subtitle_corner_radius" />
diff --git a/docs/html/distribute/googleplay/spotlight/games.jd b/docs/html/distribute/googleplay/spotlight/games.jd
index 4e356db..1fbc03f 100644
--- a/docs/html/distribute/googleplay/spotlight/games.jd
+++ b/docs/html/distribute/googleplay/spotlight/games.jd
@@ -102,7 +102,7 @@
width: 78px;
float: left;
margin: 12px 20px 30px 20px;"
- src="//lh5.ggpht.com/l20dR2HYLV8vECoC35q_0NdfaAGTe4lZIFy_wCJRDqZjeQqSgneLRpXi3qOnnCaLXA=w124">
+ src="//lh4.ggpht.com/Q7mQJsdhulW4_s039R9aaRhQkGnyzLkhF00j5EnyhHOivijnyi7P7b5A8qG0xk1r-jQ=w124">
<div style="list-style: none;height:100%;
float: right;
diff --git a/docs/html/distribute/googleplay/spotlight/tablets.jd b/docs/html/distribute/googleplay/spotlight/tablets.jd
index cfea29a..7a98755 100644
--- a/docs/html/distribute/googleplay/spotlight/tablets.jd
+++ b/docs/html/distribute/googleplay/spotlight/tablets.jd
@@ -17,7 +17,90 @@
expand their offering to include Android tablets.</p>
-<div style="margin-bottom:2em;"><!-- START STORY -->
+<div style="margin-bottom:2em;" id="rememberthemilk"><!-- START STORY -->
+
+<h3>Remember The Milk: Lifting installs with tablet design</h3>
+
+ <img alt="" class="screenshot thumbnail" style="-webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px height:78px;
+ width: 78px;
+ float: left;
+ margin: 12px 20px 9px 20px;" src=
+ "//lh3.ggpht.com/xmnal18taauP2mjQFEhr1PhcItQ_W32IRuaD86IoL2U_4E-mfeKiliKtkISgOuA6Ln9n=w124">
+
+ <div style="list-style: none;height:100%;
+ float: right;
+ border-top: 1px solid #9C0;
+ width: 220px;
+ margin: 4px 20px;padding: .5em;">
+
+
+ <h5>About the app</h5>
+
+
+ <ul>
+ <li><a href="//play.google.com/store/apps/details?id=com.rememberthemilk.MobileRTM">Remember The Milk</a></li>
+ <li>A feature-packed to-do list app; never forget the milk (or anything else) again</li>
+ </ul>
+
+ <h5>Tablet Results</h5>
+
+ <ul>
+ <li>83% jump in tablet installs following update </li>
+ <li>Nexus 7 is most popular Android device for app </li>
+ <li>Single APK for phones and tablets</li>
+ </ul>
+
+ <div style="padding:.5em 0 0 1em;">
+ <a href="//play.google.com/store/apps/details?id=com.rememberthemilk.MobileRTM">
+ <img alt="Android app on Google Play"
+ src="//developer.android.com/images/brand/en_generic_rgb_wo_45.png" />
+ </a>
+
+ </div>
+ </div>
+
+ <div style="line-height:1.4em;">
+ <p style="margin-top:0;margin-bottom:12px;">When the Android tablet guidelines
+ came out in 2012, the team at Remember The Milk had already been thinking about
+ a redesign for their <a href="//play.google.com/store/apps/details?id=com.rememberthemilk.MobileRTM">feature-packed
+ to-do list app</a>. Omar Kilani, Co-founder of Remember The Milk, explains how
+ <a href="//blog.rememberthemilk.com/2013/04/the-all-new-remember-the-milk-for-android-and-tablets-too/">updating</a>
+ their app to meet the tablet guidelines lead to an 83% jump in tablet installs: </p>
+
+ <p>“We took this as an opportunity to think about how we were going to approach
+ Android tablets differently from a user experience perspective. The guidelines
+ were a helpful resource, and with the extra screen real estate tablets afford,
+ users have the opportunity to see all of their data in context and drill down
+ on more items. All of this is accomplished using a single APK on Play, even though
+ the phone and tablet versions each capture completely different use cases for us.”</p>
+
+ <p>“In the month after updating, we saw our tablet installs on Google Play jump 83%,
+ and the Nexus 7 is now the most popular Android device amongst our users. For us,
+ designing for tablets was an investment that has really paid off.”</p>
+
+ <p>The team also came out with a number of other goodies — including a new set of
+ widgets and richer notifications, and more ways to provide an immersive experience
+ for their users.</p>
+ </div>
+
+ <div style="clear:both;margin-top:30px;width:auto;">
+
+ <img src="{@docRoot}images/distribute/rememberthemilk.png">
+
+ <div style="width:600px;margin-top:0px;padding:0 90px;">
+ <p class="image-caption"><span style="font-weight:500;">Tablet redesign led to lift
+ in installs</span>: Following the redesign of the Android app, in part to meet the tablet
+ design criteria, Remember The Milk saw an 83% increase in tablet installs.</p>
+ </div>
+
+ </div>
+
+</div> <!-- END STORY -->
+
+
+<div style="margin-bottom:2em;" id="mint"><!-- START STORY -->
<h3>Mint: More screen real estate = more engagement</h3>
@@ -96,7 +179,7 @@
<div style="clear:both;margin-top:40px;width:auto;">
- <a href=""><img src="{@docRoot}images/distribute/mint.png"></a>
+ <img src="{@docRoot}images/distribute/mint.png">
<div style="width:600px;margin-top:0px;padding:0 90px;">
<p class="image-caption"><span style="font-weight:500;">Making the most of tablet screens</span>: Mint used the extra screen area on tablets to offer quick access to additional tools and information.</p>
@@ -184,7 +267,7 @@
<div style="clear:both;margin-top:40px;width:auto;">
- <a href=""><img src="{@docRoot}images/distribute/tinyvillage.png"></a>
+ <img src="{@docRoot}images/distribute/tinyvillage.png">
<div style="width:600px;margin-top:0px;padding:0 90px;">
<p class="image-caption"><span style="font-weight:500;">More monetization
@@ -268,7 +351,7 @@
<div style="clear:both;margin-top:40px;width:auto;">
- <a href=""><img src="{@docRoot}images/distribute/instapaper.png"></a>
+ <img src="{@docRoot}images/distribute/instapaper.png">
<div style="width:600px;margin-top:0px;padding:0 90px;">
<p class="image-caption"><span style="font-weight:500;">Popular with
diff --git a/docs/html/images/distribute/rememberthemilk.png b/docs/html/images/distribute/rememberthemilk.png
new file mode 100644
index 0000000..b170cf3
--- /dev/null
+++ b/docs/html/images/distribute/rememberthemilk.png
Binary files differ
diff --git a/docs/html/training/articles/security-tips.jd b/docs/html/training/articles/security-tips.jd
index 1ac56b9..54aebac 100644
--- a/docs/html/training/articles/security-tips.jd
+++ b/docs/html/training/articles/security-tips.jd
@@ -553,7 +553,7 @@
or an explicit intent to a specific application component.</p>
<p>Note that ordered broadcasts can be “consumed” by a recipient, so they
-may not be delivered to all applications. If you are sending an intent that muse be delivered
+may not be delivered to all applications. If you are sending an intent that must be delivered
to a specific receiver, then you must use an explicit intent that declares the receiver
by nameintent.</p>
diff --git a/packages/DocumentsUI/res/values-bg/strings.xml b/packages/DocumentsUI/res/values-bg/strings.xml
index b703541..c3242b2 100644
--- a/packages/DocumentsUI/res/values-bg/strings.xml
+++ b/packages/DocumentsUI/res/values-bg/strings.xml
@@ -44,7 +44,7 @@
<string name="root_type_shortcut" msgid="3318760609471618093">"Преки пътища"</string>
<string name="root_type_device" msgid="7121342474653483538">"Устройства"</string>
<string name="root_type_apps" msgid="8838065367985945189">"Още приложения"</string>
- <string name="pref_advanced_devices" msgid="903257239609301276">"Показване на устройствата с разширени функции"</string>
+ <string name="pref_advanced_devices" msgid="903257239609301276">"Устройства с разширени ф-ии"</string>
<string name="pref_file_size" msgid="2826879315743961459">"Показване на файловия размер"</string>
<string name="pref_device_size" msgid="3542106883278997222">"Показване на размера на устройството"</string>
<string name="empty" msgid="7858882803708117596">"Няма елементи"</string>
diff --git a/packages/FusedLocation/res/values-af/strings.xml b/packages/FusedLocation/res/values-af/strings.xml
new file mode 100644
index 0000000..a321abe
--- /dev/null
+++ b/packages/FusedLocation/res/values-af/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Saamgesmelte ligging"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-am/strings.xml b/packages/FusedLocation/res/values-am/strings.xml
new file mode 100644
index 0000000..9c4d9d5
--- /dev/null
+++ b/packages/FusedLocation/res/values-am/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"ፍዩዥን አካባቢ"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-ar/strings.xml b/packages/FusedLocation/res/values-ar/strings.xml
new file mode 100644
index 0000000..dfbcf7a
--- /dev/null
+++ b/packages/FusedLocation/res/values-ar/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"الموقع المدمج"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-da/strings.xml b/packages/FusedLocation/res/values-da/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-da/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-de/strings.xml b/packages/FusedLocation/res/values-de/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-de/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-el/strings.xml b/packages/FusedLocation/res/values-el/strings.xml
new file mode 100644
index 0000000..1243b21
--- /dev/null
+++ b/packages/FusedLocation/res/values-el/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Ενοποιημένη τοποθεσία"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-en-rGB/strings.xml b/packages/FusedLocation/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-en-rGB/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-en-rIN/strings.xml b/packages/FusedLocation/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-en-rIN/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-es-rUS/strings.xml b/packages/FusedLocation/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..ec95314
--- /dev/null
+++ b/packages/FusedLocation/res/values-es-rUS/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Ubicación combinada"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-es/strings.xml b/packages/FusedLocation/res/values-es/strings.xml
new file mode 100644
index 0000000..ec95314
--- /dev/null
+++ b/packages/FusedLocation/res/values-es/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Ubicación combinada"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-fr-rCA/strings.xml b/packages/FusedLocation/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-fr-rCA/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-hr/strings.xml b/packages/FusedLocation/res/values-hr/strings.xml
new file mode 100644
index 0000000..b2a2cc9
--- /dev/null
+++ b/packages/FusedLocation/res/values-hr/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Lokacija iz kombiniranih izvora"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-hu/strings.xml b/packages/FusedLocation/res/values-hu/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-hu/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-hy-rAM/strings.xml b/packages/FusedLocation/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-hy-rAM/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-it/strings.xml b/packages/FusedLocation/res/values-it/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-it/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-iw/strings.xml b/packages/FusedLocation/res/values-iw/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-iw/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-km-rKH/strings.xml b/packages/FusedLocation/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..649e4f7
--- /dev/null
+++ b/packages/FusedLocation/res/values-km-rKH/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"ភ្ជាប់ទីតាំង"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-lo-rLA/strings.xml b/packages/FusedLocation/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-lo-rLA/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-lt/strings.xml b/packages/FusedLocation/res/values-lt/strings.xml
new file mode 100644
index 0000000..245c0b0
--- /dev/null
+++ b/packages/FusedLocation/res/values-lt/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Suderinta vietovė"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-lv/strings.xml b/packages/FusedLocation/res/values-lv/strings.xml
new file mode 100644
index 0000000..8c40cb2
--- /dev/null
+++ b/packages/FusedLocation/res/values-lv/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Apvienota atrašanās vieta"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-mn-rMN/strings.xml b/packages/FusedLocation/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..8055ca8
--- /dev/null
+++ b/packages/FusedLocation/res/values-mn-rMN/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Нэгдмэл байршил"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-nb/strings.xml b/packages/FusedLocation/res/values-nb/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-nb/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-nl/strings.xml b/packages/FusedLocation/res/values-nl/strings.xml
new file mode 100644
index 0000000..b3003c8
--- /dev/null
+++ b/packages/FusedLocation/res/values-nl/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Samengestelde locatie"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-pl/strings.xml b/packages/FusedLocation/res/values-pl/strings.xml
new file mode 100644
index 0000000..b3a9e2a
--- /dev/null
+++ b/packages/FusedLocation/res/values-pl/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Przybliżona lokalizacja"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-pt-rPT/strings.xml b/packages/FusedLocation/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-pt-rPT/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-pt/strings.xml b/packages/FusedLocation/res/values-pt/strings.xml
new file mode 100644
index 0000000..cf5f5bf
--- /dev/null
+++ b/packages/FusedLocation/res/values-pt/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Localização fundida"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-sl/strings.xml b/packages/FusedLocation/res/values-sl/strings.xml
new file mode 100644
index 0000000..928c50b
--- /dev/null
+++ b/packages/FusedLocation/res/values-sl/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Kombinirana lokacija"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-sr/strings.xml b/packages/FusedLocation/res/values-sr/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-sr/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-sv/strings.xml b/packages/FusedLocation/res/values-sv/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-sv/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-uk/strings.xml b/packages/FusedLocation/res/values-uk/strings.xml
new file mode 100644
index 0000000..0d2cccc
--- /dev/null
+++ b/packages/FusedLocation/res/values-uk/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Fused Location"</string>
+</resources>
diff --git a/packages/FusedLocation/res/values-zu/strings.xml b/packages/FusedLocation/res/values-zu/strings.xml
new file mode 100644
index 0000000..62d4359
--- /dev/null
+++ b/packages/FusedLocation/res/values-zu/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5379477904423203699">"Indawo ehlanganisiwe"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-af/strings.xml b/packages/InputDevices/res/values-af/strings.xml
new file mode 100644
index 0000000..748bae0
--- /dev/null
+++ b/packages/InputDevices/res/values-af/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Invoertoestelle"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-sleutelbord"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Engels (VK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Engels (VS)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Engels (VS), internasionale styl"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Engels (VS), Colemak-styl"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Engels (VS), Dvorak-styl"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Duits"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Frans"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Frans (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russies"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russies, Mac-styl"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spaans"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Switserse Frans"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Switserse Duits"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgies"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgaars"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiaans"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Deens"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Noors"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Sweeds"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Fins"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroasies"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tsjeggies"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estnies"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Hongaars"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Yslands"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasiliaans"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugees"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slowaaks"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloweens"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turks"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Oekraïens"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-am/strings.xml b/packages/InputDevices/res/values-am/strings.xml
new file mode 100644
index 0000000..d4097f4
--- /dev/null
+++ b/packages/InputDevices/res/values-am/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"የግቤት መሣሪያዎች"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"የAndroid የቁልፍ ሰሌዳ"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"እንግሊዝኛ (ዩኬ)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"እንግሊዘኛ (ዩ.ኤስ.)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"እንግሊዘኛ (ዩ. ኤስ.)፣ አለም አቀፍ ቅጥ"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"እንግሊዘኛ (ዩ. ኤስ.)፣ የኮልማርክ ቅጥ"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"እንግሊዘኛ (ዩ. ኤስ.)፣ የድቮራክ ቅጥ"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"ጀርመን"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"ፈረንሳይኛ"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"ፈረንሳይኛ (ካናዳ)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"ሩስያኛ"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"ሩስያኛ፣ Mac ቅጥ"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"ስፓኒሽ"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"የስዊዝ ፈረንሳይኛ"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"የስዊዝ ጀርመን"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"ቤልጂየምኛ"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"ቡልጋሪኛ"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"ጣሊያንኛ"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"ዴኒሽ"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"ኖርዌጂያን"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"ስዊድንኛ"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"ፊኒሽ"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"ክሮሽያንኛ"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"ቼክ"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"ኤስቶኒያኛ"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"ሀንጋሪያኛ"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"አይስላንድኛ"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"የብራዚል"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"ፖርቹጋልኛ"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"ስሎቫክኛ"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ስሎቪኛ"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ቱርክኛ"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ዩክረኒኛ"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-ar/strings.xml b/packages/InputDevices/res/values-ar/strings.xml
new file mode 100644
index 0000000..abf0967
--- /dev/null
+++ b/packages/InputDevices/res/values-ar/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"أجهزة إدخال بيانات"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"لوحة مفاتيح Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"الإنجليزية (المملكة المتحدة)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"الإنجليزية (الولايات المتحدة)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"الإنجليزية (الولايات المتحدة)، النمط الدولي"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"الإنجليزية (الولايات المتحدة)، نمط Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"الإنجليزية (الولايات المتحدة)، نمط Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"الألمانية"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"الفرنسية"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"الفرنسية (كندا)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"الروسية"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"الروسية، نمط Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"الإسبانية"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"الفرنسية السويسرية"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"الألمانية السويسرية"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"البلجيكية"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"البلغارية"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"الإيطالية"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"الدانماركية"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"النرويجية"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"السويدية"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"الفنلندية"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"الكرواتية"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"التشيكية"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"الإستونية"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"المجرية"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"الأيسلندية"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"البرازيلية"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"البرتغالية"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"السلوفاكية"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"السلوفينية"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"التركية"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"الأوكرانية"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-da/strings.xml b/packages/InputDevices/res/values-da/strings.xml
new file mode 100644
index 0000000..5eb30b17
--- /dev/null
+++ b/packages/InputDevices/res/values-da/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Inputenheder"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-tastatur"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Engelsk (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Engelsk (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Engelsk (USA), international stil"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Engelsk (USA), Colemak-stil"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Engelsk (USA), Dvorak-stil"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Tysk"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Fransk"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Fransk (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russisk"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russisk, Mac-stil"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spansk"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"schweizisk fransk"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"schweizertysk"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgisk"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarsk"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiensk"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dansk"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norsk"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Svensk"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finsk"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatisk"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tjekkisk"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estisk"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungarsk"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandsk"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasiliansk"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugisisk"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovakisk"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovensk"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Tyrkisk"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrainsk"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-de/strings.xml b/packages/InputDevices/res/values-de/strings.xml
new file mode 100644
index 0000000..b5c3b50
--- /dev/null
+++ b/packages/InputDevices/res/values-de/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Eingabegeräte"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-Tastatur"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Englisch (Großbritannien)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Englisch (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Englisch (USA), international"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Englisch (USA), Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Englisch (USA), Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Deutsch"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Französisch"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Französisch (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russisch"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russisch, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spanisch"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Schweizer Französisch"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Schweizerdeutsch"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgisch"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarisch"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italienisch"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dänisch"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norwegisch"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Schwedisch"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finnisch"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatisch"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tschechisch"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estnisch"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungarisch"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Isländisch"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasilianisch"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugiesisch"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slowakisch"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slowenisch"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Türkisch"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainisch"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-el/strings.xml b/packages/InputDevices/res/values-el/strings.xml
new file mode 100644
index 0000000..bcf7b86
--- /dev/null
+++ b/packages/InputDevices/res/values-el/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Συσκευές εισόδου"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Πληκτρολόγιο Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Αγγλικά (Η.Β.)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Αγγλικά (Η.Π.Α.)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Αγγλικά (Η.Π.Α.), τύπου International"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Αγγλικά (Η.Π.Α.), τύπου Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Αγγλικά (Η.Π.Α.), τύπου Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Γερμανικά"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Γαλλικά"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Γαλλικά (Καναδά)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Ρωσικά"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russian, τύπου Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Ισπανικά"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Γαλλικά Ελβετίας"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Γερμανικά Ελβετίας"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Βελγίου"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Βουλγαρικά"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Ιταλικά"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Δανικά"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Νορβηγικά"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Σουηδικά"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Φινλανδικά"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Κροατικά"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Τσεχικά"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Εσθονικά"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ουγγρικά"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Ισλανδικά"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Βραζιλίας"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Πορτογαλικά"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Σλοβακικά"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Σλοβενικά"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Τουρκικά"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ουκρανικά"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-en-rGB/strings.xml b/packages/InputDevices/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..2d794a6
--- /dev/null
+++ b/packages/InputDevices/res/values-en-rGB/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Input Devices"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android keyboard"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"English (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"English (US)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"English (US), International style"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"English (US), Colemak style"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"English (US), Dvorak style"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"German"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"French"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"French (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russian"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russian, Mac style"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spanish"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Swiss French"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Swiss German"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgian"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarian"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italian"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danish"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norwegian"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Swedish"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finnish"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croatian"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Czech"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estonian"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Hungarian"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Icelandic"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brazilian"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portuguese"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovak"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenian"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkish"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainian"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-en-rIN/strings.xml b/packages/InputDevices/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..2d794a6
--- /dev/null
+++ b/packages/InputDevices/res/values-en-rIN/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Input Devices"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android keyboard"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"English (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"English (US)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"English (US), International style"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"English (US), Colemak style"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"English (US), Dvorak style"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"German"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"French"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"French (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russian"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russian, Mac style"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spanish"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Swiss French"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Swiss German"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgian"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarian"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italian"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danish"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norwegian"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Swedish"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finnish"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croatian"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Czech"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estonian"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Hungarian"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Icelandic"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brazilian"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portuguese"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovak"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenian"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkish"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainian"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-es-rUS/strings.xml b/packages/InputDevices/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..2d61b80
--- /dev/null
+++ b/packages/InputDevices/res/values-es-rUS/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Dispositivos de entrada"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Teclado de Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Inglés (Reino Unido)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Inglés (EE. UU.)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Inglés (EE. UU.), internacional"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Inglés (EE. UU.), Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Inglés (EE. UU.), Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Alemán"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francés"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francés (Canadá)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Ruso"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Ruso, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Español"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francés de Suiza"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Alemán de Suiza"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Búlgaro"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiano"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danés"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Noruego"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Sueco"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finlandés"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croata"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Checo"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estonio"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Húngaro"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandés"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasileño"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugués"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Eslovaco"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-es/strings.xml b/packages/InputDevices/res/values-es/strings.xml
new file mode 100644
index 0000000..82ea4d6
--- /dev/null
+++ b/packages/InputDevices/res/values-es/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Dispositivos de entrada"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Teclado de Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Inglés (Reino Unido)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Inglés (EE.UU.)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Inglés (EE.UU.), estilo internacional"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Inglés (EE.UU.), estilo Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Inglés (EE.UU.), estilo Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Alemán"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francés"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francés (Canadá)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Ruso"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Ruso, estilo Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Español"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francés de Suiza"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Alemán suizo"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Búlgaro"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiano"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danés"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Noruego"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Sueco"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finlandés"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croata"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Checo"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estonio"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Húngaro"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandés"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasileño"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugués"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Eslovaco"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-fr-rCA/strings.xml b/packages/InputDevices/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..c947634
--- /dev/null
+++ b/packages/InputDevices/res/values-fr-rCA/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Périphériques d\'entrée"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Clavier Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Anglais (britannique)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Anglais (États-Unis)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Anglais (États-Unis), international"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Anglais (États-Unis), type Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Anglais (États-Unis), type Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Allemand"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Français"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Français (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russe"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russe, type Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Espagnol"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Français (Suisse)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Allemand (Suisse)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belge"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgare"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italien"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danois"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norvégien"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Suédois"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finnois"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croate"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tchèque"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estonien"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Hongrois"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandais"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brésilien"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugais"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovaque"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovène"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turc"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainien"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-hr/strings.xml b/packages/InputDevices/res/values-hr/strings.xml
new file mode 100644
index 0000000..fd3d594
--- /dev/null
+++ b/packages/InputDevices/res/values-hr/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Uređaji za unos"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Androidova tipkovnica"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"engleska (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"engleska (SAD)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"engleska (SAD), međunarodna"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"engleska (SAD), Colemakov raspored"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"engleska (SAD), Dvorakov raspored"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"njemačka"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"francuska"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"francuska (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"ruska"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"ruska, raspored Maca"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"španjolska"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"švicarsko-francuska"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"švicarsko-njemačka"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"belgijska"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"bugarska"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"talijanska"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"danska"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"norveška"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"švedska"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"finska"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"hrvatska"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"češka"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"estonska"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"mađarska"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"islandska"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"brazilska"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"portugalska"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"slovačka"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovenska"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turska"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinska"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-hu/strings.xml b/packages/InputDevices/res/values-hu/strings.xml
new file mode 100644
index 0000000..0cdbfb2
--- /dev/null
+++ b/packages/InputDevices/res/values-hu/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Beviteli eszközök"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-billentyűzet"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"angol (Egyesült Királyság)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"angol (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"angol (USA), nemzetközi stílus"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"angol (USA), Colemak-stílus"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"angol (USA), Dvorak-stílus"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"német"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"francia"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"francia (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"orosz"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"orosz, Mac-stílus"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"spanyol"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"svájci francia"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"svájci német"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"bolgár"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"olasz"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"dán"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"norvég"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"svéd"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"finn"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"horvát"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"cseh"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"észt"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"magyar"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"izlandi"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"brazil"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"portugál"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"szlovák"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"szlovén"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"török"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrán"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-hy-rAM/strings.xml b/packages/InputDevices/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..a73fb89
--- /dev/null
+++ b/packages/InputDevices/res/values-hy-rAM/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Մուտքագրման սարքեր"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android ստեղնաշար"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Անգլերեն (ՄԲ)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Անգլերեն (ԱՄՆ)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Անգլերեն (ԱՄՆ), միջազգային տեսակ"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Անգլերեն (ԱՄՆ), Colemak տեսակ"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Անգլերեն (ԱՄՆ), Dvorak տեսակ"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Գերմաներեն"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"ֆրանսերեն"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Ֆրանսերեն (Կանադա)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Ռուսերեն"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Ռուսերեն, Mac տեսակ"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Իսպաներեն"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Շվեյցարական ֆրանսերեն"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Շվեյցարական գերմաներեն"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Բելգիական"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Բուլղարերեն"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Իտալերեն"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Դանիերեն"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Նորվեգերեն"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Շվեդերեն"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Ֆիններեն"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Խորվաթերեն"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Չեխերեն"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Էստոներեն"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Հունգարերեն"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Իսլանդերեն"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Բրազիլերեն"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Պորտուգալերեն"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Սլովակերեն"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Սլովեներեն"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Թուրքերեն"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ուկրաիներեն"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-it/strings.xml b/packages/InputDevices/res/values-it/strings.xml
new file mode 100644
index 0000000..dbb7301
--- /dev/null
+++ b/packages/InputDevices/res/values-it/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Dispositivi di input"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Tastiera Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Inglese (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Inglese (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Inglese (USA), stile internazionale"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Inglese (USA), stile Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Inglese (USA), stile Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Tedesco"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francese"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francese (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russo"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russo, stile Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spagnolo"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francese svizzero"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Tedesco svizzero"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgaro"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiano"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danese"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norvegese"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Svedese"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finlandese"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croato"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Ceco"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estone"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungherese"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandese"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasiliano"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portoghese"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovacco"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloveno"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraino"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-iw/strings.xml b/packages/InputDevices/res/values-iw/strings.xml
new file mode 100644
index 0000000..5fab322
--- /dev/null
+++ b/packages/InputDevices/res/values-iw/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"התקני קלט"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"מקלדת Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"אנגלית (בריטניה)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"אנגלית (ארה\"ב)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"אנגלית (ארה\"ב), סגנון בינ\"ל"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"אנגלית (ארה\"ב), סגנון Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"אנגלית (ארה\"ב), סגנון Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"גרמנית"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"צרפתית"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"צרפתית (קנדה)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"רוסית"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"רוסית, סגנון Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"ספרדית"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"צרפתית שוויצרית"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"גרמנית שוויצרית"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"בלגית"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"בולגרית"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"איטלקית"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"דנית"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"נורווגית"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"שוודית"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"פינית"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"קרואטית"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"צ\'כית"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"אסטונית"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"הונגרית"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"איסלנדית"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"ברזילאית"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"פורטוגזית"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"סלובקית"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"סלובנית"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"טורקית"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"אוקראינית"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-km-rKH/strings.xml b/packages/InputDevices/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..9a8c99b
--- /dev/null
+++ b/packages/InputDevices/res/values-km-rKH/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"ឧបករណ៍បញ្ចូល"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"ក្ដារចុច Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"អង់គ្លេស (ចក្រភពអង់គ្លេស)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"អង់គ្លេស (សហរដ្ឋអាមេរិក)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"អង់គ្លេស (សហរដ្ឋអាមេរិក), រចនាប័ទ្មអន្តរជាតិ"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"អង់គ្លេស (សហរដ្ឋអាមេរិក), រចនាប័ទ្ម Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"អង់គ្លេស (សហរដ្ឋអាមេរិក), រចនាប័ទ្ម Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"អាល្លឺម៉ង់"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"បារាំង"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"បារាំង (កាណាដា)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"រុស្សី"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"រុស្សី រចនាប័ទ្ម Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"អេស្ប៉ាញ"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"បារាំង ស្វីស"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"អាល្លឺម៉ង់ ស្វីស"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"បែលហ្ស៊ិក"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"ប៊ុលហ្ការី"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"អ៊ីតាលី"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"ដាណឺម៉ាក"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"ន័រវែស"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"ស៊ុយអែដ"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"ហ្វាំងឡង់"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"ក្រូអាត"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"ឆេក"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"អេស្តូនី"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"ហុងគ្រី"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"អ៊ីស្លង់"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"ប្រេស៊ីល"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"ព័រទុយហ្គាល់"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"ស្លូវ៉ាគី"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ស្លូវ៉ានី"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ទួរគី"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"អ៊ុយក្រែន"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-lo-rLA/strings.xml b/packages/InputDevices/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..c5f3ac1
--- /dev/null
+++ b/packages/InputDevices/res/values-lo-rLA/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"ອຸປະກອນປ້ອນຂໍ້ມູນ"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"ແປ້ນພິມ Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"ອັງກິດ (ສະຫະລັດຊະອານາຈັກ)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"ອັງກິດ (ສະຫະລັດຯ)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"ອັງກິດ (ສະຫະລັດຯ), ແບບສາກົນ"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"ອັງກິດ (ສະຫະລັດຯ), ແບບ Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"ອັງກິດ (ສະຫະລັດຯ), ແບບ Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"ເຢຍລະມັນ"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"ຝຣັ່ງ"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"ຝຣັ່ງ (ຄານາດາ)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"ຣັດຊຽນ"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"ຣັດຊຽນ, ແບບ Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"ສະແປນນິດ"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"ສະວິສ ຝຣັ່ງ"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"ສະວິສ ເຢຍລະມັນ"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"ເບວຢ້ຽນ"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"ຮັງກາຣຽນ"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"ອິຕາລຽນ"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"ເດັນນິຊ"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"ນໍເວກຽນ"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"ສະວີດິຊ"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"ຟິນນິຊ"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"ໂຄຣເອທຽນ"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"ເຊກ"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"ເອສໂຕນຽນ"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"ຮັງກາຣຽນ"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"ໄອສແລນດິກ"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"ບຣາຊິລຽນ"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"ປໍຕູກີສ"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"ສະໂລແວັກ"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"ສະໂລເວນຽນ"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"ເຕີກິສ"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ຢູເຄຣນຽນ"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-lt/strings.xml b/packages/InputDevices/res/values-lt/strings.xml
new file mode 100644
index 0000000..177d418
--- /dev/null
+++ b/packages/InputDevices/res/values-lt/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Įvesties įrenginiai"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"„Android“ klaviatūra"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Anglų k. (JK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Anglų k. (JAV)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Anglų k. (JAV), tarptautinis stilius"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Anglų k. (JAV), „Colemak“ stilius"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Anglų k. (JAV), „Dvorak“ stilius"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Vokiečių k."</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Prancūzų k."</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Prancūzų k. (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Rusų k."</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Rusų k., „Mac“ stilius"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Ispanų k."</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Šveicarijos prancūzų k."</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Šveicarijos vokiečių k."</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgų k."</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarų k."</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italų k."</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danų k."</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norvegų k."</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Švedų k."</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Suomių k."</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatų k."</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Čekų k."</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estų k."</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Vengrų k."</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandų k."</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brazilų k."</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugalų k."</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovakų k."</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovėnų k."</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkų k."</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainiečių k."</string>
+</resources>
diff --git a/packages/InputDevices/res/values-lv/strings.xml b/packages/InputDevices/res/values-lv/strings.xml
new file mode 100644
index 0000000..07a8654
--- /dev/null
+++ b/packages/InputDevices/res/values-lv/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Ievadierīces"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android tastatūra"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Angļu (Lielbritānija)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Angļu (ASV)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Angļu (ASV), starptautiska"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Angļu (ASV), Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Angļu (ASV), Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Vācu"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Franču"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Franču (Kanāda)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Krievu"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Krievu, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spāņu"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Franču (Šveice)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Vācu (Šveice)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Beļģu"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgāru"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Itāļu"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dāņu"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norvēģu"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Zviedru"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Somu"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Horvātu"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Čehu"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Igauņu"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungāru"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Īslandiešu"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brazīļu"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugāļu"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovāku"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovēņu"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turku"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraiņu"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-mn-rMN/strings.xml b/packages/InputDevices/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..da6c9b7
--- /dev/null
+++ b/packages/InputDevices/res/values-mn-rMN/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Оруулах Төхөөрөмж"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Андройд гар"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Англи (ИБ)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Англи (АНУ)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Англи (АНУ), Олон улсын стиль"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Англи (АНУ), Колемак стиль"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Англи (АНУ), Дворак стиль"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Герман"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Франц"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Франц (Канад)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Орос"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Орос, Mac стиль"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Испани"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Швейцарийн Франц"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Швейцарийн Герман"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Бельги"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Болгар"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Итали"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Дани"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Норвеги"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Швед"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Финлянд"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Хорват"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Чех"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Эстони"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Унгар"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Исланд"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Бразил"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Португали"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Словак"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Словени"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Турк"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Украйн"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-nb/strings.xml b/packages/InputDevices/res/values-nb/strings.xml
new file mode 100644
index 0000000..b646061
--- /dev/null
+++ b/packages/InputDevices/res/values-nb/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Inndataenheter"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-tastatur"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Engelsk (Storbritannia)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Engelsk (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Engelsk (USA), internasjonal stil"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Engelsk (USA), Colemak-stil"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Engelsk (USA), Dvorak-stil"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Tysk"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Fransk"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Fransk (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russisk"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russisk, Mac-stil"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spansk"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Sveitsisk fransk"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Sveitsisk standardtysk"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgisk"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgarsk"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiensk"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dansk"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norsk"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Svensk"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finsk"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatisk"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tsjekkisk"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estisk"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungarsk"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandsk"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasiliansk"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugisisk"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovakisk"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovensk"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Tyrkisk"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainsk"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-nl/strings.xml b/packages/InputDevices/res/values-nl/strings.xml
new file mode 100644
index 0000000..56d84c9
--- /dev/null
+++ b/packages/InputDevices/res/values-nl/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Invoerapparaten"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-toetsenbord"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Engels (Verenigd Koninkrijk)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Engels (Verenigde Staten)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Engels (VS), internationaal"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Engels (VS), Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Engels (VS), Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Duits"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Frans"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Frans (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russisch"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russisch, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spaans"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Zwitsers Frans"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Zwitsers Duits"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgisch"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgaars"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiaans"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Deens"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Noors"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Zweeds"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Fins"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatisch"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tsjechisch"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estlands"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Hongaars"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"IJslands"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Braziliaans"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugees"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slowaaks"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Sloveens"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turks"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Oekraïens"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-pl/strings.xml b/packages/InputDevices/res/values-pl/strings.xml
new file mode 100644
index 0000000..4522215
--- /dev/null
+++ b/packages/InputDevices/res/values-pl/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Urządzenia wejściowe"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Klawiatura Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Angielski (Wielka Brytania)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Angielski (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Angielski (USA), międzynarodowy"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Angielski (USA), Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Angielski (USA), Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Niemiecki"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francuski"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francuski (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Rosyjski"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Rosyjski, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Hiszpański"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francuski (Szwajcaria)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Niemiecki (Szwajcaria)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgijski"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bułgarski"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Włoski"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Duński"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norweski"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Szwedzki"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Fiński"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Chorwacki"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Czeski"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estoński"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Węgierski"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandzki"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brazylijski"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugalski"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Słowacki"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Słoweński"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turecki"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukraiński"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-pt-rPT/strings.xml b/packages/InputDevices/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..9a639cd
--- /dev/null
+++ b/packages/InputDevices/res/values-pt-rPT/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Dispositivos de entrada"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Teclado do Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Inglês (RU)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Inglês (EUA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Inglês (EUA), est. Internacional"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Inglês (EUA), estilo Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Inglês (EUA), estilo Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Alemão"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francês"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francês (Canadá)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russo"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russo, estilo Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Espanhol"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francês (Suíça)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Alemão (Suíça)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Búlgaro"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiano"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dinamarquês"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norueguês"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Sueco"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finlandês"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croata"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Checo"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estónio"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Húngaro"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandês"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasileiro"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Português"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Eslovaco"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-pt/strings.xml b/packages/InputDevices/res/values-pt/strings.xml
new file mode 100644
index 0000000..05a0cd0
--- /dev/null
+++ b/packages/InputDevices/res/values-pt/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Dispositivos de entrada"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Teclado do Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Inglês (Reino Unido)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Inglês (EUA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Inglês (EUA), estilo internacional"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Inglês (EUA), estilo Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Inglês (EUA), estilo Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Alemão"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Francês"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Francês (Canadá)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Russo"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Russo, estilo Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Espanhol"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Francês suíço"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Alemão suíço"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belga"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Búlgaro"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italiano"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Dinamarquês"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norueguês"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Sueco"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finlandês"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Croata"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tcheco"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estoniano"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Húngaro"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Islandês"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Brasileiro"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Português"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Eslovaco"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Esloveno"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turco"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ucraniano"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-sl/strings.xml b/packages/InputDevices/res/values-sl/strings.xml
new file mode 100644
index 0000000..30ff3c4
--- /dev/null
+++ b/packages/InputDevices/res/values-sl/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Vhodne naprave"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Tipkovnica Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"angleška (Združeno kraljestvo)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"angleška (ZDA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"angleška (ZDA), mednarodni slog"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"angleška (ZDA), slog Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"angleška (ZDA), slog Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"nemška"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"francoska"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"francoska (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"ruska"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"ruska, slog Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"španska"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"švicarska francoska"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"švicarska nemška"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"belgijska"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"bolgarska"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"italijanska"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"danska"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"norveška"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"švedska"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"finska"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"hrvaška"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"češka"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"estonska"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"madžarska"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"islandska"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"brazilska"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"portugalska"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"slovaška"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"slovenska"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"turška"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"ukrajinska"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-sr/strings.xml b/packages/InputDevices/res/values-sr/strings.xml
new file mode 100644
index 0000000..4b7910c
--- /dev/null
+++ b/packages/InputDevices/res/values-sr/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Улазни уређаји"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android тастатура"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"енглески (Уједињено Краљевство)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"енглески (САД)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"енглески (САД), међународни стил"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"енглески (САД), Colemak стил"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"енглески (САД), Dvorak стил"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"немачки"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"француски"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"француски (Канада)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"руски"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"руски, Mac стил"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"шпански"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"швајцарски француски"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"швајцарски немачки"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"белгијски"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"бугарски"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"италијански"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"дански"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"норвешки"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"шведски"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"фински"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"хрватски"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"чешки"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"естонски"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"мађарски"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"исландски"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"бразилски"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"португалски"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"словачки"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словеначки"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турски"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"украјински"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-sv/strings.xml b/packages/InputDevices/res/values-sv/strings.xml
new file mode 100644
index 0000000..25a5ae8
--- /dev/null
+++ b/packages/InputDevices/res/values-sv/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Indataenheter"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Androids tangentbord"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"Engelskt (Storbritannien)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"Engelskt (USA)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"Engelskt (USA), internationellt"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"Engelskt (USA), colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"Engelskt (USA), dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Tyskt"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Franskt"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Franskt (Kanada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Ryskt"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Ryskt, Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Spanskt"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Franskt (Schweiz)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Tyskt (Schweiz)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Belgiskt"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Bulgariskt"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Italienskt"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Danskt"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Norskt"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Svenskt"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Finskt"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Kroatiskt"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Tjeckiskt"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Estniskt"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Ungerskt"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Isländskt"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Portugisiskt (Brasilien)"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Portugisiskt"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Slovakiskt"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Slovenskt"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Turkiskt"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Ukrainskt"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-uk/strings.xml b/packages/InputDevices/res/values-uk/strings.xml
new file mode 100644
index 0000000..ee6ffc7
--- /dev/null
+++ b/packages/InputDevices/res/values-uk/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Пристрої вводу"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Клавіатура Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"англійська (Великобританія)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"англійська (США)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"англійська (США), міжнародна"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"англійська (США), розкладка Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"англійська (США), розкладка Дворака"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"німецька"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"французька"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"французька (Канада)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"російська"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"російська, розкладка Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"іспанська"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"французька (Швейцарія)"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"німецька (Швейцарія)"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"бельгійська"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"болгарська"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"італійська"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"данська"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"норвезька"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"шведська"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"фінська"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"хорватська"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"чеська"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"естонська"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"угорська"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"ісландська"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"бразильська"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"португальська"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"словацька"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"словенська"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"турецька"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"українська"</string>
+</resources>
diff --git a/packages/InputDevices/res/values-zu/strings.xml b/packages/InputDevices/res/values-zu/strings.xml
new file mode 100644
index 0000000..65f584b
--- /dev/null
+++ b/packages/InputDevices/res/values-zu/strings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="8016145283189546017">"Amadivayisi wokufaka"</string>
+ <string name="keyboard_layouts_label" msgid="6688773268302087545">"Ikhibhodi ye-Android"</string>
+ <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"I-English (UK)"</string>
+ <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"I-English (US)"</string>
+ <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"I-English (US), isitayela sakwamanye amazwe"</string>
+ <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"I-English (US), isitayela se-Colemak"</string>
+ <string name="keyboard_layout_english_us_dvorak_label" msgid="793528923171145202">"I-English (US), isitayela se-Dvorak"</string>
+ <string name="keyboard_layout_german_label" msgid="8451565865467909999">"Isi-German"</string>
+ <string name="keyboard_layout_french_label" msgid="813450119589383723">"Isi-French"</string>
+ <string name="keyboard_layout_french_ca_label" msgid="365352601060604832">"Isi-French (Canada)"</string>
+ <string name="keyboard_layout_russian_label" msgid="8724879775815042968">"Isi-Russian"</string>
+ <string name="keyboard_layout_russian_mac_label" msgid="3795866869038264796">"Isi-Russian, isitayela se-Mac"</string>
+ <string name="keyboard_layout_spanish_label" msgid="7091555148131908240">"Isi-Spanish"</string>
+ <string name="keyboard_layout_swiss_french_label" msgid="4659191025396371684">"Isi-Swiss French"</string>
+ <string name="keyboard_layout_swiss_german_label" msgid="2305520941993314258">"Isi-Swiss German"</string>
+ <string name="keyboard_layout_belgian" msgid="2011984572838651558">"Isi-Belgian"</string>
+ <string name="keyboard_layout_bulgarian" msgid="8951224309972028398">"Isi-Bulgarian"</string>
+ <string name="keyboard_layout_italian" msgid="6497079660449781213">"Isi-Italian"</string>
+ <string name="keyboard_layout_danish" msgid="8036432066627127851">"Isi-Danish"</string>
+ <string name="keyboard_layout_norwegian" msgid="9090097917011040937">"Isi-Norwegian"</string>
+ <string name="keyboard_layout_swedish" msgid="732959109088479351">"Isi-Swedish"</string>
+ <string name="keyboard_layout_finnish" msgid="5585659438924315466">"Isi-Finnish"</string>
+ <string name="keyboard_layout_croatian" msgid="4172229471079281138">"Isi-Croatia"</string>
+ <string name="keyboard_layout_czech" msgid="1349256901452975343">"Isi-Czech"</string>
+ <string name="keyboard_layout_estonian" msgid="8775830985185665274">"Isi-Estonian"</string>
+ <string name="keyboard_layout_hungarian" msgid="4154963661406035109">"Isi-Hungarian"</string>
+ <string name="keyboard_layout_icelandic" msgid="5836645650912489642">"Isi-Icelandic"</string>
+ <string name="keyboard_layout_brazilian" msgid="5117896443147781939">"Isi-Brazilian"</string>
+ <string name="keyboard_layout_portuguese" msgid="2888198587329660305">"Isi-Portuguese"</string>
+ <string name="keyboard_layout_slovak" msgid="2469379934672837296">"Isi-Slovak"</string>
+ <string name="keyboard_layout_slovenian" msgid="1735933028924982368">"Isi-Slovenian"</string>
+ <string name="keyboard_layout_turkish" msgid="7736163250907964898">"Isi-Turkish"</string>
+ <string name="keyboard_layout_ukrainian" msgid="8176637744389480417">"Isi-Ukrainian"</string>
+</resources>
diff --git a/packages/Keyguard/res/values-af/strings.xml b/packages/Keyguard/res/values-af/strings.xml
index 3644660..834f2f6 100644
--- a/packages/Keyguard/res/values-af/strings.xml
+++ b/packages/Keyguard/res/values-af/strings.xml
@@ -72,7 +72,7 @@
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"Speel-knoppie"</string>
<string name="keyguard_accessibility_transport_stop_description" msgid="7656358482980912216">"Stop-knoppie"</string>
<string name="keyguard_accessibility_transport_thumbs_up_description" msgid="4535938129663903194">"Laaik baie"</string>
- <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Duim omlaag"</string>
+ <string name="keyguard_accessibility_transport_thumbs_down_description" msgid="8101433677192177861">"Laaik niks"</string>
<string name="keyguard_accessibility_transport_heart_description" msgid="2336943232474689887">"Hart"</string>
<string name="keyguard_accessibility_show_bouncer" msgid="5425837272418176176">"Ontsluit om voort te gaan"</string>
<string name="keyguard_accessibility_hide_bouncer" msgid="7896992171878309358">"Begin gekanselleer"</string>
diff --git a/packages/Keyguard/res/values-km-rKH/strings.xml b/packages/Keyguard/res/values-km-rKH/strings.xml
index 75cebac..08af5dd 100644
--- a/packages/Keyguard/res/values-km-rKH/strings.xml
+++ b/packages/Keyguard/res/values-km-rKH/strings.xml
@@ -72,7 +72,7 @@
<string name="keyguard_accessibility_transport_play_description" msgid="8146417789511154044">"ប៊ូតុងចាក់"</string>
<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_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>
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
index 58ca0b0..d37aaaf 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
@@ -85,6 +85,7 @@
public void onSetBackground(Bitmap bmp) {
mKeyguardHost.setCustomBackground(bmp != null ?
new BitmapDrawable(mContext.getResources(), bmp) : null);
+ updateShowWallpaper(bmp == null);
}
};
@@ -379,6 +380,16 @@
mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
}
+ void updateShowWallpaper(boolean show) {
+ if (show) {
+ mWindowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+ } else {
+ mWindowLayoutParams.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+ }
+
+ mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams);
+ }
+
public void setNeedsInput(boolean needsInput) {
mNeedsInput = needsInput;
if (mWindowLayoutParams != null) {
@@ -489,6 +500,7 @@
lastView.cleanUp();
// Let go of any large bitmaps.
mKeyguardHost.setCustomBackground(null);
+ updateShowWallpaper(true);
mKeyguardHost.removeView(lastView);
}
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewStateManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewStateManager.java
index d1862cd..7039218 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewStateManager.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewStateManager.java
@@ -17,12 +17,14 @@
import android.os.Handler;
import android.os.Looper;
+import android.util.Log;
import android.view.View;
public class KeyguardViewStateManager implements
SlidingChallengeLayout.OnChallengeScrolledListener,
ChallengeLayout.OnBouncerStateChangedListener {
+ private static final String TAG = "KeyguardViewStateManager";
private KeyguardWidgetPager mKeyguardWidgetPager;
private ChallengeLayout mChallengeLayout;
private KeyguardHostView mKeyguardHostView;
@@ -100,18 +102,20 @@
}
public void fadeOutSecurity(int duration) {
- ((View) mKeyguardSecurityContainer).animate().alpha(0).setDuration(duration);
+ ((View) mKeyguardSecurityContainer).animate().alpha(0f).setDuration(duration).start();
}
public void fadeInSecurity(int duration) {
- ((View) mKeyguardSecurityContainer).animate().alpha(1f).setDuration(duration);
+ ((View) mKeyguardSecurityContainer).animate().alpha(1f).setDuration(duration).start();
}
public void onPageBeginMoving() {
if (mChallengeLayout.isChallengeOverlapping() &&
mChallengeLayout instanceof SlidingChallengeLayout) {
SlidingChallengeLayout scl = (SlidingChallengeLayout) mChallengeLayout;
- scl.fadeOutChallenge();
+ if (!mKeyguardWidgetPager.isWarping()) {
+ scl.fadeOutChallenge();
+ }
mPageIndexOnPageBeginMoving = mKeyguardWidgetPager.getCurrentPage();
}
// We use mAppWidgetToShow to show a particular widget after you add it--
@@ -133,7 +137,9 @@
public void onPageSwitching(View newPage, int newPageIndex) {
if (mKeyguardWidgetPager != null && mChallengeLayout instanceof SlidingChallengeLayout) {
boolean isCameraPage = newPage instanceof CameraWidgetFrame;
- ((SlidingChallengeLayout) mChallengeLayout).setChallengeInteractive(!isCameraPage);
+ SlidingChallengeLayout scl = (SlidingChallengeLayout) mChallengeLayout;
+ scl.setChallengeInteractive(!isCameraPage);
+ if (isCameraPage) scl.fadeOutChallenge();
}
// If the page we're settling to is the same as we started on, and the action of
@@ -174,13 +180,15 @@
}
public void onPageBeginWarp() {
- // fadeOutSecurity(WARP_FADE_DURATION);
- // mKeyguardWidgetPager.showNonWarpViews(WARP_FADE_DURATION, false);
+ fadeOutSecurity(SlidingChallengeLayout.CHALLENGE_FADE_OUT_DURATION);
+ View frame = mKeyguardWidgetPager.getPageAt(mKeyguardWidgetPager.getPageWarpIndex());
+ ((KeyguardWidgetFrame)frame).showFrame(this);
}
public void onPageEndWarp() {
- // fadeInSecurity(WARP_FADE_DURATION);
- // mKeyguardWidgetPager.showNonWarpViews(WARP_FADE_DURATION, true);
+ fadeInSecurity(SlidingChallengeLayout.CHALLENGE_FADE_IN_DURATION);
+ View frame = mKeyguardWidgetPager.getPageAt(mKeyguardWidgetPager.getPageWarpIndex());
+ ((KeyguardWidgetFrame)frame).hideFrame(this);
}
private int getChallengeTopRelativeToFrame(KeyguardWidgetFrame frame, int top) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardWidgetPager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardWidgetPager.java
index f8857ab..704af6e 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardWidgetPager.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardWidgetPager.java
@@ -188,11 +188,13 @@
@Override
public void onPageBeginWarp() {
+ showOutlinesAndSidePages();
mViewStateManager.onPageBeginWarp();
}
@Override
public void onPageEndWarp() {
+ hideOutlinesAndSidePages();
mViewStateManager.onPageEndWarp();
}
@@ -495,7 +497,7 @@
}
public float getAlphaForPage(int screenCenter, int index, boolean showSidePages) {
- if (getPageWarpIndex() != -1) {
+ if (isWarping()) {
return index == getPageWarpIndex() ? 1.0f : 0.0f;
}
if (showSidePages) {
@@ -949,17 +951,17 @@
// to keep event dispatch happy.
mCameraEventInProgress = true;
userActivity();
- startWarp(cameraPage);
+ startPageWarp(cameraPage);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
mCameraEventInProgress = false;
- endWarp = true;
+ endWarp = isWarping();
break;
}
dispatchTouchEvent(event);
// This has to happen after the event has been handled by the real widget pager
- if (endWarp) endWarp();
+ if (endWarp) stopPageWarp();
}
endCameraEvent();
}
diff --git a/packages/Keyguard/src/com/android/keyguard/MultiPaneChallengeLayout.java b/packages/Keyguard/src/com/android/keyguard/MultiPaneChallengeLayout.java
index 528f988..4cfc9dc 100644
--- a/packages/Keyguard/src/com/android/keyguard/MultiPaneChallengeLayout.java
+++ b/packages/Keyguard/src/com/android/keyguard/MultiPaneChallengeLayout.java
@@ -195,11 +195,9 @@
// and that the window is LAYOUT_IN_SCREEN.
virtualHeight = mDisplayMetrics.heightPixels - root.getPaddingTop() - mInsets.top;
}
- if (lp.childType == LayoutParams.CHILD_TYPE_WIDGET ||
- lp.childType == LayoutParams.CHILD_TYPE_USER_SWITCHER) {
- // Always measure the widget pager/user switcher as if there were no IME insets
- // on the window. We want to avoid resizing widgets when possible as it can
- // be ugly/expensive. This lets us simply clip them instead.
+ if (lp.childType == LayoutParams.CHILD_TYPE_USER_SWITCHER) {
+ // Always measure the user switcher as if there were no IME insets
+ // on the window.
return virtualHeight - heightUsed;
} else if (lp.childType == LayoutParams.CHILD_TYPE_PAGE_DELETE_DROP_TARGET) {
return height;
diff --git a/packages/Keyguard/src/com/android/keyguard/PagedView.java b/packages/Keyguard/src/com/android/keyguard/PagedView.java
index 666227c..6cf6953 100644
--- a/packages/Keyguard/src/com/android/keyguard/PagedView.java
+++ b/packages/Keyguard/src/com/android/keyguard/PagedView.java
@@ -47,6 +47,7 @@
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.animation.AccelerateInterpolator;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
@@ -60,12 +61,13 @@
* sequential list of "pages"
*/
public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarchyChangeListener {
+ private static final int WARP_SNAP_DURATION = 160;
private static final String TAG = "WidgetPagedView";
private static final boolean DEBUG = false;
private static final boolean DEBUG_WARP = false;
protected static final int INVALID_PAGE = -1;
- private static final int WARP_PEEK_ANIMATION_DURATION = 250;
- private static final float WARP_ANIMATE_AMOUNT = -40.0f; // in dip
+ private static final int WARP_PEEK_ANIMATION_DURATION = 150;
+ private static final float WARP_ANIMATE_AMOUNT = -75.0f; // in dip
// the min drag distance for a fling to register, to prevent random page shifts
private static final int MIN_LENGTH_FOR_FLING = 25;
@@ -261,6 +263,8 @@
private boolean mIsCameraEvent;
private float mWarpPeekAmount;
+ private boolean mAnimatingWarp; // true while warped page is being animated
+ private boolean mFingerDown;
public interface PageSwitchListener {
void onPageSwitching(View newPage, int newPageIndex);
@@ -484,7 +488,7 @@
if (DEBUG_WARP) Log.v(TAG, "pageBeginMoving(" + mIsPageMoving + ")");
if (!mIsPageMoving) {
mIsPageMoving = true;
- if (mPageWarpIndex != -1) {
+ if (isWarping()) {
onPageBeginWarp();
if (mPageSwapIndex != -1) {
swapPages(mPageSwapIndex, mPageWarpIndex);
@@ -498,12 +502,12 @@
if (DEBUG_WARP) Log.v(TAG, "pageEndMoving(" + mIsPageMoving + ")");
if (mIsPageMoving) {
mIsPageMoving = false;
- if (mPageWarpIndex != -1) {
+ if (isWarping()) {
if (mPageSwapIndex != -1) {
swapPages(mPageSwapIndex, mPageWarpIndex);
- resetPageWarp();
}
onPageEndWarp();
+ resetPageWarp();
}
onPageEndMoving();
}
@@ -1124,8 +1128,8 @@
}
case MotionEvent.ACTION_DOWN: {
- if (mIsCameraEvent) {
- animateWarpPageOnScreen();
+ if (mIsCameraEvent && !mAnimatingWarp) {
+ animateWarpPageOnScreen("interceptTouch(): DOWN");
}
// Remember where the motion event started
saveDownState(ev);
@@ -1219,6 +1223,8 @@
mTotalMotionX = 0;
mActivePointerId = ev.getPointerId(0);
+ mFingerDown = true;
+
// Determine if the down event is within the threshold to be an edge swipe
int leftEdgeBoundary = getViewportOffsetX() + mEdgeSwipeRegionSize;
int rightEdgeBoundary = getMeasuredWidth() - getViewportOffsetX() - mEdgeSwipeRegionSize;
@@ -1393,8 +1399,10 @@
if (mTouchState == TOUCH_STATE_SCROLLING) {
pageBeginMoving();
- } else {
- animateWarpPageOnScreen();
+ }
+
+ if (mIsCameraEvent && !mAnimatingWarp) {
+ animateWarpPageOnScreen("onTouch(): DOWN");
}
break;
@@ -1571,7 +1579,8 @@
// move to the left and fling to the right will register as a fling to the right.
if (((isSignificantMove && deltaX > 0 && !isFling) ||
(isFling && velocityX > 0)) && mCurrentPage > 0) {
- finalPage = returnToOriginalPage ? mCurrentPage : mCurrentPage - 1;
+ finalPage = returnToOriginalPage || isWarping()
+ ? mCurrentPage : mCurrentPage - 1;
snapToPageWithVelocity(finalPage, velocityX);
} else if (((isSignificantMove && deltaX < 0 && !isFling) ||
(isFling && velocityX < 0)) &&
@@ -1661,6 +1670,7 @@
setTouchState(TOUCH_STATE_REST);
mActivePointerId = INVALID_POINTER;
mDownEventOnEdge = false;
+ mFingerDown = false;
}
protected void onUnhandledTap(MotionEvent ev) {}
@@ -1790,7 +1800,14 @@
}
protected void snapToDestination() {
- snapToPage(getPageNearestToCenterOfScreen(), PAGE_SNAP_ANIMATION_DURATION);
+ if (isWarping()) {
+ cancelWarpAnimation("snapToDestination");
+ }
+ snapToPage(getPageNearestToCenterOfScreen(), getPageSnapDuration());
+ }
+
+ private int getPageSnapDuration() {
+ return isWarping() ? WARP_SNAP_DURATION : PAGE_SNAP_ANIMATION_DURATION;
}
private static class ScrollInterpolator implements Interpolator {
@@ -1817,6 +1834,10 @@
whichPage = Math.max(0, Math.min(whichPage, getChildCount() - 1));
int halfScreenSize = getViewportWidth() / 2;
+ if (isWarping()) {
+ cancelWarpAnimation("snapToPageWithVelocity");
+ }
+
if (DEBUG) Log.d(TAG, "snapToPage.getChildOffset(): " + getChildOffset(whichPage));
if (DEBUG) Log.d(TAG, "snapToPageWithVelocity.getRelativeChildOffset(): "
+ getViewportWidth() + ", " + getChildWidth(whichPage));
@@ -1827,7 +1848,7 @@
if (Math.abs(velocity) < mMinFlingVelocity) {
// If the velocity is low enough, then treat this more as an automatic page advance
// as opposed to an apparent physical response to flinging
- snapToPage(whichPage, PAGE_SNAP_ANIMATION_DURATION);
+ snapToPage(whichPage, getPageSnapDuration());
return;
}
@@ -1851,10 +1872,10 @@
}
protected void snapToPage(int whichPage) {
- snapToPage(whichPage, PAGE_SNAP_ANIMATION_DURATION);
+ snapToPage(whichPage, getPageSnapDuration());
}
protected void snapToPageImmediately(int whichPage) {
- snapToPage(whichPage, PAGE_SNAP_ANIMATION_DURATION, true);
+ snapToPage(whichPage, getPageSnapDuration(), true);
}
protected void snapToPage(int whichPage, int duration) {
@@ -1884,8 +1905,8 @@
mNextPage = whichPage;
}
- if (mPageWarpIndex != -1) {
- animateWarpPageOffScreen();
+ if (isWarping()) {
+ onPageEndWarp();
resetPageWarp();
}
@@ -1918,6 +1939,10 @@
invalidate();
}
+ protected boolean isWarping() {
+ return mPageWarpIndex != -1;
+ }
+
public void scrollLeft() {
if (mScroller.isFinished()) {
if (mCurrentPage > 0) snapToPage(mCurrentPage - 1);
@@ -2650,21 +2675,53 @@
mIsCameraEvent = false;
}
- private void animateWarpPageOnScreen() {
- if (DEBUG_WARP) Log.v(TAG, "animateWarpPageOnScreen()");
- if (mPageWarpIndex != -1) {
+ AnimatorListenerAdapter mFinishWarpAnimationListener = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mAnimatingWarp = false;
+ if (!mFingerDown) {
+ animateWarpPageOffScreen("animation end", true);
+ }
+ }
+ };
+
+ private void cancelWarpAnimation(String msg) {
+ if (DEBUG_WARP) Log.v(TAG, "cancelWarpAnimation(" + msg + ")");
+ // We're done with the animation, let the scroller take over the positioning
+ KeyguardWidgetFrame v = (KeyguardWidgetFrame) getPageAt(mPageWarpIndex);
+ v.animate().cancel();
+ v.setTranslationX(0f);
+ scrollBy((int) Math.round(v.getTranslationX() - mWarpPeekAmount), 0);
+ }
+
+ private void animateWarpPageOnScreen(String reason) {
+ if (DEBUG_WARP) Log.v(TAG, "animateWarpPageOnScreen(" + reason + ")");
+ if (isWarping()) {
+ onPageBeginWarp();
KeyguardWidgetFrame v = (KeyguardWidgetFrame) getPageAt(mPageWarpIndex);
if (DEBUG_WARP) Log.v(TAG, "moving page on screen: Tx=" + v.getTranslationX());
- v.animate().translationX(mWarpPeekAmount).setDuration(WARP_PEEK_ANIMATION_DURATION);
+ DecelerateInterpolator interp = new DecelerateInterpolator(1.5f);
+ v.animate().translationX(mWarpPeekAmount)
+ .setInterpolator(interp)
+ .setDuration(WARP_PEEK_ANIMATION_DURATION)
+ .setListener(mFinishWarpAnimationListener);
+ mAnimatingWarp = true;
}
}
- private void animateWarpPageOffScreen() {
- if (DEBUG_WARP) Log.v(TAG, "animateWarpPageOffScreen()");
- if (mPageWarpIndex != -1) {
+ private void animateWarpPageOffScreen(String reason, boolean animate) {
+ if (DEBUG_WARP) Log.v(TAG, "animateWarpPageOffScreen(" + reason + " anim:" + animate + ")");
+ if (isWarping()) {
+ onPageEndWarp();
KeyguardWidgetFrame v = (KeyguardWidgetFrame) getPageAt(mPageWarpIndex);
if (DEBUG_WARP) Log.v(TAG, "moving page off screen: Tx=" + v.getTranslationX());
- v.animate().translationX(0.0f).setDuration(WARP_PEEK_ANIMATION_DURATION);
+ AccelerateInterpolator interp = new AccelerateInterpolator(1.5f);
+ v.animate().translationX(0.0f)
+ .setInterpolator(interp)
+ .setDuration(animate ? WARP_PEEK_ANIMATION_DURATION : 0)
+ .setListener(null);
+ } else {
+ if (DEBUG_WARP) Log.e(TAG, "animateWarpPageOffScreen(): not warping", new Exception());
}
}
@@ -2681,7 +2738,7 @@
}
}
- public void startWarp(int pageIndex) {
+ public void startPageWarp(int pageIndex) {
if (DEBUG_WARP) Log.v(TAG, "START WARP");
if (pageIndex != mCurrentPage + 1) {
mPageSwapIndex = mCurrentPage + 1;
@@ -2693,7 +2750,7 @@
return mPageWarpIndex;
}
- public void endWarp() {
+ public void stopPageWarp() {
if (DEBUG_WARP) Log.v(TAG, "END WARP");
// mPageSwapIndex is reset in snapToPage() after the scroll animation completes
}
diff --git a/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java b/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
index 5e7816c..1036c83 100644
--- a/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
+++ b/packages/Keyguard/src/com/android/keyguard/SlidingChallengeLayout.java
@@ -88,8 +88,8 @@
public static final int SCROLL_STATE_SETTLING = 2;
public static final int SCROLL_STATE_FADING = 3;
- private static final int CHALLENGE_FADE_OUT_DURATION = 100;
- private static final int CHALLENGE_FADE_IN_DURATION = 160;
+ public static final int CHALLENGE_FADE_OUT_DURATION = 100;
+ public static final int CHALLENGE_FADE_IN_DURATION = 160;
private static final int MAX_SETTLE_DURATION = 600; // ms
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml
index 1e6954e..48564911 100644
--- a/packages/PrintSpooler/AndroidManifest.xml
+++ b/packages/PrintSpooler/AndroidManifest.xml
@@ -41,8 +41,6 @@
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.START_PRINT_SERVICE_CONFIG_ACTIVITY"/>
- <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"/>
-
<application
android:allowClearUserData="true"
android:label="@string/app_label"
@@ -58,8 +56,13 @@
<activity
android:name=".PrintJobConfigActivity"
android:configChanges="orientation|screenSize"
- android:exported="false"
+ android:permission="android.permission.BIND_PRINT_SPOOLER_SERVICE"
android:theme="@style/PrintJobConfigActivityTheme">
+ <intent-filter>
+ <action android:name="android.print.PRINT_DILAOG" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="printjob" android:pathPattern="*" />
+ </intent-filter>
</activity>
<activity
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml b/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml
index 98b5cfe..d503216 100644
--- a/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml
+++ b/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml
@@ -15,9 +15,12 @@
-->
<com.android.printspooler.PrintDialogFrame xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/content_container"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:background="@color/container_background">
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent">
+ <FrameLayout
+ android:id="@+id/content_container"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:background="@color/container_background">
+ </FrameLayout>
</com.android.printspooler.PrintDialogFrame>
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity_content_error.xml b/packages/PrintSpooler/res/layout/print_job_config_activity_content_error.xml
new file mode 100644
index 0000000..222b5b6
--- /dev/null
+++ b/packages/PrintSpooler/res/layout/print_job_config_activity_content_error.xml
@@ -0,0 +1,65 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/content_generating"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:background="@color/editable_background"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dip"
+ android:layout_marginEnd="16dip"
+ android:layout_marginTop="32dip"
+ android:layout_marginBottom="32dip"
+ android:layout_gravity="center"
+ style="?android:attr/buttonBarButtonStyle"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:text="@string/print_error_default_message"
+ android:textColor="@color/important_text"
+ android:textSize="16sp">
+ </TextView>
+
+ <View
+ android:layout_width="fill_parent"
+ android:layout_height="1dip"
+ android:background="@color/separator">
+ </View>
+
+ </LinearLayout>
+
+ <Button
+ android:id="@+id/ok_button"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="fill_horizontal"
+ style="?android:attr/buttonBarButtonStyle"
+ android:text="@android:string/ok"
+ android:textSize="16sp"
+ android:textColor="@color/important_text">
+ </Button>
+
+</LinearLayout>
diff --git a/packages/PrintSpooler/res/values-af/strings.xml b/packages/PrintSpooler/res/values-af/strings.xml
index f307f2a..00aa315 100644
--- a/packages/PrintSpooler/res/values-af/strings.xml
+++ b/packages/PrintSpooler/res/values-af/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Drukdialoog"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Soekkassie vertoon"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Soekkassie weggesteek"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Voeg drukker by"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> drukker gekry"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> drukkers gekry"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Kies drukdiens"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Soek tans vir drukkers"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Geen drukkers gekry nie"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Drukkerfout by <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Drukker het <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> geblokkeer"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Kanselleer"</string>
<string name="restart" msgid="2472034227037808749">"Herbegin"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Geen verbinding met drukker nie"</string>
diff --git a/packages/PrintSpooler/res/values-am/strings.xml b/packages/PrintSpooler/res/values-am/strings.xml
index 49928750..e6ccbcc 100644
--- a/packages/PrintSpooler/res/values-am/strings.xml
+++ b/packages/PrintSpooler/res/values-am/strings.xml
@@ -29,33 +29,30 @@
<string name="print_preview" msgid="8010217796057763343">"የህትመት ቅድመ እይታ"</string>
<string name="install_for_print_preview" msgid="6366303997385509332">"ለቅድመ-እይታ የፒ ዲ ኤፍ መመልከቻ ይጫኑ"</string>
<string name="printing_app_crashed" msgid="854477616686566398">"የአታሚ መተግበሪያ ተበላሽቷል"</string>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"ገፆች"</string>
<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="print_dialog" msgid="32628687461331979">"የህትመት መገናኛ"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"የፍለጋ ሳጥን ይታያል"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"የፍለጋ ሳጥን ተደብቋል"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"አታሚ አክል"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> አታሚ ተገኝቷል"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> አታሚዎች ተገኝተዋል"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"አታሚዎችን በመፈለግ ላይ"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"ምንም አታሚዎች አልተገኙም"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"አታሚ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>ን አግዷል"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"ሰርዝ"</string>
<string name="restart" msgid="2472034227037808749">"እንደገና ጀምር"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"ከአታሚ ጋር ምንም ግንኙነት የለም"</string>
diff --git a/packages/PrintSpooler/res/values-ar/strings.xml b/packages/PrintSpooler/res/values-ar/strings.xml
index 03f62b8..860a40d 100644
--- a/packages/PrintSpooler/res/values-ar/strings.xml
+++ b/packages/PrintSpooler/res/values-ar/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"مربع حوار الطباعة"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"تم إظهار مربع البحث"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"تم إخفاء مربع البحث"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"إضافة طابعة"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"تم العثور على <xliff:g id="COUNT">%1$s</xliff:g> طابعة"</item>
+ <item quantity="other" msgid="6533817036607128241">"تم العثور على <xliff:g id="COUNT">%1$s</xliff:g> من الطابعات"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"البحث عن طابعات"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"لم يتم العثور على طابعات"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"رفضت الطابعة <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"إلغاء"</string>
<string name="restart" msgid="2472034227037808749">"إعادة تشغيل"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"لا يوجد اتصال بالطابعة"</string>
diff --git a/packages/PrintSpooler/res/values-be/arrays.xml b/packages/PrintSpooler/res/values-be/arrays.xml
new file mode 100644
index 0000000..d40278c
--- /dev/null
+++ b/packages/PrintSpooler/res/values-be/arrays.xml
@@ -0,0 +1,33 @@
+<?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 a4e8f53..00c457c 100644
--- a/packages/PrintSpooler/res/values-bg/strings.xml
+++ b/packages/PrintSpooler/res/values-bg/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"Диалогов прозорец за отпечатване"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Полето за търсене е показано"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Полето за търсене е скрито"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Добавяне на принтер"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Намерен е <xliff:g id="COUNT">%1$s</xliff:g> принтер"</item>
+ <item quantity="other" msgid="6533817036607128241">"Намерени са <xliff:g id="COUNT">%1$s</xliff:g> принтера"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Търсят се принтери"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Няма намерени принтери"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Принтерът блокира при „<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>“"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Отказ"</string>
<string name="restart" msgid="2472034227037808749">"Рестартиране"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Няма връзка с принтера"</string>
diff --git a/packages/PrintSpooler/res/values-ca/arrays.xml b/packages/PrintSpooler/res/values-ca/arrays.xml
new file mode 100644
index 0000000..d40278c
--- /dev/null
+++ b/packages/PrintSpooler/res/values-ca/arrays.xml
@@ -0,0 +1,33 @@
+<?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-ca/donottranslate.xml b/packages/PrintSpooler/res/values-ca/donottranslate.xml
new file mode 100644
index 0000000..7537aa5
--- /dev/null
+++ b/packages/PrintSpooler/res/values-ca/donottranslate.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.
+-->
+
+<resources>
+
+ <string name="mediasize_default">NA_LETTER</string>
+ <string name="mediasize_standard">@string/mediasize_standard_north_america</string>
+
+</resources>
diff --git a/packages/PrintSpooler/res/values-ca/strings.xml b/packages/PrintSpooler/res/values-ca/strings.xml
index d7cc213..e576b29 100644
--- a/packages/PrintSpooler/res/values-ca/strings.xml
+++ b/packages/PrintSpooler/res/values-ca/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pàgines"</string>
<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="print_dialog" msgid="32628687461331979">"Diàleg d\'impressió"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Es mostra el quadre de cerca"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"S\'ha amagat el quadre de cerca"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Afegeix una impressora"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"S\'ha trobat <xliff:g id="COUNT">%1$s</xliff:g> impressora"</item>
+ <item quantity="other" msgid="6533817036607128241">"S\'han trobat <xliff:g id="COUNT">%1$s</xliff:g> impressores"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Cerca d\'impressores"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"No s\'ha trobat cap impressora"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Impressora bloquejada <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancel·la"</string>
<string name="restart" msgid="2472034227037808749">"Reinicia"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"No hi ha connexió amb la impressora"</string>
diff --git a/packages/PrintSpooler/res/values-cs/strings.xml b/packages/PrintSpooler/res/values-cs/strings.xml
index f435215..4cf7588 100644
--- a/packages/PrintSpooler/res/values-cs/strings.xml
+++ b/packages/PrintSpooler/res/values-cs/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Dialog tisku"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Vyhledávací pole se zobrazuje"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Vyhledávací pole je skryto"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Přidat tiskárnu"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Počet nalezených tiskáren: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ <item quantity="other" msgid="6533817036607128241">"Počet nalezených tiskáren: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Zvolte službu tisku"</string>
<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="print_no_printers" msgid="4869403323900054866">"Nebyly nalezeny žádné tiskárny"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Chyba tiskárny u úlohy <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Tiskárna blokuje úlohu <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Zrušit"</string>
<string name="restart" msgid="2472034227037808749">"Restartovat"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nelze se připojit k tiskárně"</string>
diff --git a/packages/PrintSpooler/res/values-da/strings.xml b/packages/PrintSpooler/res/values-da/strings.xml
index c0dcee4..4d58e2d 100644
--- a/packages/PrintSpooler/res/values-da/strings.xml
+++ b/packages/PrintSpooler/res/values-da/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Sider"</string>
<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="print_dialog" msgid="32628687461331979">"Udskriftsdialog"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Søgefeltet vises"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Søgefeltet er skjult"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Tilføj printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Der blev fundet <xliff:g id="COUNT">%1$s</xliff:g> printer"</item>
+ <item quantity="other" msgid="6533817036607128241">"Der blev fundet <xliff:g id="COUNT">%1$s</xliff:g> printere"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Søger efter printere"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Der blev ikke fundet nogen printere"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printeren har blokeret <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Annuller"</string>
<string name="restart" msgid="2472034227037808749">"Genstart"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Ingen forbindelse til printer"</string>
diff --git a/packages/PrintSpooler/res/values-de/strings.xml b/packages/PrintSpooler/res/values-de/strings.xml
index 97c8c0e..140f8d8 100644
--- a/packages/PrintSpooler/res/values-de/strings.xml
+++ b/packages/PrintSpooler/res/values-de/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Druckdialogfeld"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Suchfeld angezeigt"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Suchfeld ausgeblendet"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Drucker hinzufügen"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> Drucker gefunden"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> Drucker gefunden"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Druckdienst auswählen"</string>
- <string name="print_searching_for_printers" msgid="6550424555079932867">"Suche nach Druckern…"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_searching_for_printers" msgid="6550424555079932867">"Suche nach Druckern"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Keine Drucker gefunden"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Druckerfehler <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Drucker hat <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> blockiert."</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Abbrechen"</string>
<string name="restart" msgid="2472034227037808749">"Neu starten"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Keine Verbindung zum Drucker"</string>
diff --git a/packages/PrintSpooler/res/values-el/strings.xml b/packages/PrintSpooler/res/values-el/strings.xml
index 6bdf19d..e8e2d13 100644
--- a/packages/PrintSpooler/res/values-el/strings.xml
+++ b/packages/PrintSpooler/res/values-el/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"Πλαίσιο διαλόγου εκτύπωσης"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Εμφάνιση πλαισίου αναζήτησης"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Απόκρυψη πλαισίου αναζήτησης"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Προσθήκη εκτυπωτή"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Βρέθηκε <xliff:g id="COUNT">%1$s</xliff:g> εκτυπωτής"</item>
+ <item quantity="other" msgid="6533817036607128241">"Βρέθηκαν <xliff:g id="COUNT">%1$s</xliff:g> εκτυπωτές"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Αναζήτηση για εκτυπωτές"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Δεν βρέθηκαν εκτυπωτές"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Ο εκτυπωτής απέκλεισε <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Ακύρωση"</string>
<string name="restart" msgid="2472034227037808749">"Επανεκκίνηση"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Δεν υπάρχει σύνδεση με εκτυπωτή"</string>
diff --git a/packages/PrintSpooler/res/values-en-rGB/strings.xml b/packages/PrintSpooler/res/values-en-rGB/strings.xml
index 77f275d..339de19 100644
--- a/packages/PrintSpooler/res/values-en-rGB/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rGB/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Print dialogue"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Search box shown"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Search box hidden"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Add printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> printer found"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> printers found"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Choose print service"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"No printers found"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Printer error <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printer blocked <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancel"</string>
<string name="restart" msgid="2472034227037808749">"Restart"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"No connection to printer"</string>
diff --git a/packages/PrintSpooler/res/values-en-rIN/strings.xml b/packages/PrintSpooler/res/values-en-rIN/strings.xml
index 77f275d..339de19 100644
--- a/packages/PrintSpooler/res/values-en-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rIN/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Print dialogue"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Search box shown"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Search box hidden"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Add printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> printer found"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> printers found"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Choose print service"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"No printers found"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Printer error <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printer blocked <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancel"</string>
<string name="restart" msgid="2472034227037808749">"Restart"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"No connection to printer"</string>
diff --git a/packages/PrintSpooler/res/values-es-rUS/arrays.xml b/packages/PrintSpooler/res/values-es-rUS/arrays.xml
new file mode 100644
index 0000000..d40278c
--- /dev/null
+++ b/packages/PrintSpooler/res/values-es-rUS/arrays.xml
@@ -0,0 +1,33 @@
+<?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 c3cc9cbf2..02003c6 100644
--- a/packages/PrintSpooler/res/values-es-rUS/strings.xml
+++ b/packages/PrintSpooler/res/values-es-rUS/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"Cuadro de diálogo de impresión"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Cuadro de búsqueda visible"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Cuadro de búsqueda oculto"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Agregar impresora"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Se encontró <xliff:g id="COUNT">%1$s</xliff:g> impresora."</item>
+ <item quantity="other" msgid="6533817036607128241">"Se encontraron <xliff:g id="COUNT">%1$s</xliff:g> impresoras."</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Buscando impresoras"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"No se encontraron impresoras"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"La impresora bloqueó <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>."</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancelar"</string>
<string name="restart" msgid="2472034227037808749">"Reiniciar"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"No hay conexión con la impresora."</string>
diff --git a/packages/PrintSpooler/res/values-es/strings.xml b/packages/PrintSpooler/res/values-es/strings.xml
index 4cd820f..389314d 100644
--- a/packages/PrintSpooler/res/values-es/strings.xml
+++ b/packages/PrintSpooler/res/values-es/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Cuadro de diálogo de impresión"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Cuadro de búsqueda visible"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Cuadro de búsqueda oculto"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Añadir impresora"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Se ha encontrado <xliff:g id="COUNT">%1$s</xliff:g> impresora"</item>
+ <item quantity="other" msgid="6533817036607128241">"Se han encontrado <xliff:g id="COUNT">%1$s</xliff:g> impresoras"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Seleccionar servicio de impresión"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Buscando impresoras"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"No se encontraron impresoras"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"La impresora ha bloqueado <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancelar"</string>
<string name="restart" msgid="2472034227037808749">"Volver a empezar"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"No hay conexión con la impresora"</string>
diff --git a/packages/PrintSpooler/res/values-et-rEE/strings.xml b/packages/PrintSpooler/res/values-et-rEE/strings.xml
index b2e579f..4ffcfd3 100644
--- a/packages/PrintSpooler/res/values-et-rEE/strings.xml
+++ b/packages/PrintSpooler/res/values-et-rEE/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Printimisdialoog"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Otsingukast on kuvatud"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Otsingukast on peidetud"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Lisa printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Leiti <xliff:g id="COUNT">%1$s</xliff:g> printer"</item>
+ <item quantity="other" msgid="6533817036607128241">"Leiti <xliff:g id="COUNT">%1$s</xliff:g> printerit"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Prinditeenuse valimine"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Printerite otsimine"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Printereid ei leitud"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Printeri viga: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printer blokeeris töö <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Tühista"</string>
<string name="restart" msgid="2472034227037808749">"Taaskäivita"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Printeriühendus puudub"</string>
diff --git a/packages/PrintSpooler/res/values-fa/strings.xml b/packages/PrintSpooler/res/values-fa/strings.xml
index 1846398..0f2d859 100644
--- a/packages/PrintSpooler/res/values-fa/strings.xml
+++ b/packages/PrintSpooler/res/values-fa/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"چاپ گفتگو"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"کادر جستجو نمایان شد"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"کادر جستجو پنهان شد"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"افزودن چاپگر"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> چاپگر یافت شد"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> چاپگر یافت شد"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"در حال جستجو برای چاپگرها"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"هیچ چاپگری یافت نشد"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"چاپگر، کار <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> را مسدود کرد"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"لغو"</string>
<string name="restart" msgid="2472034227037808749">"راهاندازی مجدد"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"اتصال با چاپگر برقرار نیست"</string>
diff --git a/packages/PrintSpooler/res/values-fi/strings.xml b/packages/PrintSpooler/res/values-fi/strings.xml
index d6324a6..d9e9681 100644
--- a/packages/PrintSpooler/res/values-fi/strings.xml
+++ b/packages/PrintSpooler/res/values-fi/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Tulostusikkuna"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Hakukenttä näkyvissä"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Hakukenttä piilotettu"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Lisää tulostin"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Löytyi <xliff:g id="COUNT">%1$s</xliff:g> tulostin"</item>
+ <item quantity="other" msgid="6533817036607128241">"Löytyi <xliff:g id="COUNT">%1$s</xliff:g> tulostinta"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Valitse tulostuspalvelu"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Etsitään tulostimia"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Tulostimia ei löydy"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Tulostinvirhe työlle <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Tulostin esti työn <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Peruuta"</string>
<string name="restart" msgid="2472034227037808749">"Käynnistä uudelleen"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Ei yhteyttä tulostimeen"</string>
diff --git a/packages/PrintSpooler/res/values-fr-rCA/strings.xml b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
index 06b3096..b2f0ccb 100644
--- a/packages/PrintSpooler/res/values-fr-rCA/strings.xml
+++ b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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 en format PDF"</string>
<string name="all_printers" msgid="5018829726861876202">"Toutes les imprimantes…"</string>
- <!-- no translation found for print_dialog (32628687461331979) -->
- <skip />
+ <string name="print_dialog" msgid="32628687461331979">"Boîte de dialogue d\'impression"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Champ de recherche affiché"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Champ de recherche masqué"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Ajouter une imprimante"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> imprimante trouvée"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> imprimantes trouvées"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Recherche d\'imprimantes en cours..."</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Aucune imprimante trouvée"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Impression de « <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> » bloquée"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Annuler"</string>
<string name="restart" msgid="2472034227037808749">"Recommencer"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Aucune connexion à l\'imprimante"</string>
diff --git a/packages/PrintSpooler/res/values-fr/strings.xml b/packages/PrintSpooler/res/values-fr/strings.xml
index 38d7cf6..b3f6896f 100644
--- a/packages/PrintSpooler/res/values-fr/strings.xml
+++ b/packages/PrintSpooler/res/values-fr/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Boîte de dialogue d\'impression"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Champ de recherche affiché."</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Champ de recherche masqué."</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Ajouter une imprimante"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> imprimante trouvée."</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> imprimantes trouvées."</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Sélectionner le service d\'impression"</string>
<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="print_no_printers" msgid="4869403323900054866">"Aucune imprimante trouvée"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Erreur impression pour \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\""</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Impression de \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" bloquée"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Annuler"</string>
<string name="restart" msgid="2472034227037808749">"Redémarrer"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Aucune connexion à l\'imprimante."</string>
diff --git a/packages/PrintSpooler/res/values-hi/strings.xml b/packages/PrintSpooler/res/values-hi/strings.xml
index 36c8039..a9c62bc 100644
--- a/packages/PrintSpooler/res/values-hi/strings.xml
+++ b/packages/PrintSpooler/res/values-hi/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"प्रिंट संवाद"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"खोज बॉक्स प्रदर्शित है"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"खोज बॉक्स छिपा हुआ है"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"प्रिंटर जोड़ें"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> प्रिंटर मिला"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> प्रिंटर मिले"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"प्रिंट सेवा चुनें"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"प्रिंटर खोज रहा है"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"कोई प्रिंटर नहीं मिले"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"प्रिंटर अवरोधित <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"रद्द करें"</string>
<string name="restart" msgid="2472034227037808749">"पुन: आरंभ करें"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"प्रिंटर के लिए कोई कनेक्शन नहीं"</string>
diff --git a/packages/PrintSpooler/res/values-hr/strings.xml b/packages/PrintSpooler/res/values-hr/strings.xml
index ff22dfb..7034144 100644
--- a/packages/PrintSpooler/res/values-hr/strings.xml
+++ b/packages/PrintSpooler/res/values-hr/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Stranice"</string>
<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="print_dialog" msgid="32628687461331979">"Dijaloški okvir za ispis"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Okvir za pretraživanje prikazan je"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Okvir za pretraživanje skriven je"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Dodaj pisač"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Pronađen je <xliff:g id="COUNT">%1$s</xliff:g> pisač"</item>
+ <item quantity="other" msgid="6533817036607128241">"Pronađen je sljedeći broj pisača: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Traženje pisača"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nije pronađen nijedan pisač"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Pisač je blokirao <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Odustani"</string>
<string name="restart" msgid="2472034227037808749">"Ponovo pokreni"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nema veze s pisačem"</string>
diff --git a/packages/PrintSpooler/res/values-hu/strings.xml b/packages/PrintSpooler/res/values-hu/strings.xml
index 5dcedd8..b3be787 100644
--- a/packages/PrintSpooler/res/values-hu/strings.xml
+++ b/packages/PrintSpooler/res/values-hu/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Nyomtatási párbeszédablak"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Keresőmező megjelenítve"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Keresőmező elrejtve"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Nyomtató hozzáadása"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> nyomtató észlelve"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> nyomtató észlelve"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Nyomtatási szolgáltatás kiválasztása"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Nyomtatók keresése"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Nem található nyomtató"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Nyomtatási hiba: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"A(z) <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> letiltva."</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Mégse"</string>
<string name="restart" msgid="2472034227037808749">"Újraindítás"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nincs kapcsolat a nyomtatóval"</string>
diff --git a/packages/PrintSpooler/res/values-hy-rAM/strings.xml b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
index 8e547f8..86161cf 100644
--- a/packages/PrintSpooler/res/values-hy-rAM/strings.xml
+++ b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Տպելու երկխոսության պատուհան"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Որոնման վանդակը ցուցադրված է"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Որոնման վանդակը թաքցվել է"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Ավելացնել տպիչ"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> տպիչ է գտնվել"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> տպիչ է գտնվել"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Ընտրեք տպելու ծառայությունը"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Տպիչների որոնում"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Տպիչներ չեն գտնվել"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Տպիչն արգելափակել է <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>-ը"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Չեղարկել"</string>
<string name="restart" msgid="2472034227037808749">"Վերագործարկել"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Տպիչի հետ կապ չկա"</string>
diff --git a/packages/PrintSpooler/res/values-in/strings.xml b/packages/PrintSpooler/res/values-in/strings.xml
index 507f09e..dc19b8d 100644
--- a/packages/PrintSpooler/res/values-in/strings.xml
+++ b/packages/PrintSpooler/res/values-in/strings.xml
@@ -29,31 +29,30 @@
<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="6058852665954511124">"Laman"</string>
+ <string name="page_count_unknown" msgid="6058852665954511124">"Halaman"</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="print_dialog" msgid="32628687461331979">"Cetak dialog"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Kotak telusur ditampilkan"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Kotak telusur disembunyikan"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Tambahkan printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> printer ditemukan"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> printer ditemukan"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Pilih layanan cetak"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari printer"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Tidak ditemukan printer"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Ada kesalahan printer <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printer memblokir <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Batal"</string>
<string name="restart" msgid="2472034227037808749">"Mulai Ulang"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Tidak ada sambungan ke printer"</string>
diff --git a/packages/PrintSpooler/res/values-it/strings.xml b/packages/PrintSpooler/res/values-it/strings.xml
index 4bb7c5b1..da575dc 100644
--- a/packages/PrintSpooler/res/values-it/strings.xml
+++ b/packages/PrintSpooler/res/values-it/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Finestra di dialogo Stampa"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Casella di ricerca visualizzata"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Casella di ricerca nascosta"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Aggiungi stampante"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> stampante trovata"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> stampanti trovate"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Scegli servizio di stampa"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Ricerca di stampanti"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Nessuna stampante trovata"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Errore della stampante: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"La stampante ha bloccato <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Annulla"</string>
<string name="restart" msgid="2472034227037808749">"Riavvia"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nessun collegamento alla stampante"</string>
diff --git a/packages/PrintSpooler/res/values-iw/strings.xml b/packages/PrintSpooler/res/values-iw/strings.xml
index 7521339..c33955e 100644
--- a/packages/PrintSpooler/res/values-iw/strings.xml
+++ b/packages/PrintSpooler/res/values-iw/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"תיבת דו שיח של מדפסת"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"תיבת החיפוש מוצגת"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"תיבת החיפוש מוסתרת"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"הוסף מדפסת"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"נמצאה מדפסת <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ <item quantity="other" msgid="6533817036607128241">"נמצאו <xliff:g id="COUNT">%1$s</xliff:g> מדפסות"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"בחר שירות הדפסה"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"מחפש מדפסות"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"לא נמצאו מדפסות"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"המדפסת חסמה את <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"בטל"</string>
<string name="restart" msgid="2472034227037808749">"הפעל מחדש"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"אין חיבור למדפסת"</string>
diff --git a/packages/PrintSpooler/res/values-ja/arrays.xml b/packages/PrintSpooler/res/values-ja/arrays.xml
new file mode 100644
index 0000000..3187cbe
--- /dev/null
+++ b/packages/PrintSpooler/res/values-ja/arrays.xml
@@ -0,0 +1,41 @@
+<?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 7556049..2b34556a 100644
--- a/packages/PrintSpooler/res/values-ja/strings.xml
+++ b/packages/PrintSpooler/res/values-ja/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"印刷ダイアログ"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"検索ボックスは表示されています"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"検索ボックスは表示されていません"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"プリンタを追加"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g>台のプリンタが見つかりました"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g>台のプリンタが見つかりました"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"印刷サービスの選択"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"プリンタの検索中"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"プリンタが見つかりません"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>をブロックしました"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"キャンセル"</string>
<string name="restart" msgid="2472034227037808749">"再起動"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"プリンタに接続されていません"</string>
diff --git a/packages/PrintSpooler/res/values-ka-rGE/strings.xml b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
index 25abd07..6cd2628 100644
--- a/packages/PrintSpooler/res/values-ka-rGE/strings.xml
+++ b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"ბეჭდვის სარკმელი"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"საძიებო ველი ნაჩვენებია"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"საძიებო ველი დამალულია"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"პრინტერის დამატება"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"ნაპოვნია <xliff:g id="COUNT">%1$s</xliff:g> პრინტერი"</item>
+ <item quantity="other" msgid="6533817036607128241">"ნაპოვნია <xliff:g id="COUNT">%1$s</xliff:g> პრინტერი"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"მიმდინარეობს პრინტერების ძიება"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"პრინტერები ვერ მოიძებნა"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"პრინტერმა დაბლოკა <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"გაუქმება"</string>
<string name="restart" msgid="2472034227037808749">"გადატვირთვა"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"პრინტერთან კავშირი არ არის"</string>
diff --git a/packages/PrintSpooler/res/values-km-rKH/strings.xml b/packages/PrintSpooler/res/values-km-rKH/strings.xml
index 9125e282a..89c291b 100644
--- a/packages/PrintSpooler/res/values-km-rKH/strings.xml
+++ b/packages/PrintSpooler/res/values-km-rKH/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"ប្រអប់បោះពុម្ព"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"បានបង្ហាញប្រអប់ស្វែងរក"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"បានលាក់ប្រអប់ស្វែងរក"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"បន្ថែមម៉ាស៊ីនបោះពុម្ព"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"រកឃើញម៉ាស៊ីនបោះពុម្ព <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ <item quantity="other" msgid="6533817036607128241">"រកឃើញម៉ាស៊ីនបោះពុម្ព <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"ជ្រើសសេវាបោះពុម្ព"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"ស្វែងរកម៉ាស៊ីនបោះពុម្ព"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"រកមិនឃើញម៉ាស៊ីនបោះពុម្ព"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"ម៉ាស៊ីនបោះពុម្ពបានទប់ស្កាត់ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"បោះបង់"</string>
<string name="restart" msgid="2472034227037808749">"ចាប់ផ្ដើមឡើងវិញ"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"គ្មានការភ្ជាប់ទៅម៉ាស៊ីនបោះពុម្ព"</string>
diff --git a/packages/PrintSpooler/res/values-ko/strings.xml b/packages/PrintSpooler/res/values-ko/strings.xml
index 0aef672..d10064e 100644
--- a/packages/PrintSpooler/res/values-ko/strings.xml
+++ b/packages/PrintSpooler/res/values-ko/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"인쇄 대화상자"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"검색창 표시됨"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"검색창 숨겨짐"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"프린터 추가"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"프린터 <xliff:g id="COUNT">%1$s</xliff:g>대 검색됨"</item>
+ <item quantity="other" msgid="6533817036607128241">"프린터 <xliff:g id="COUNT">%1$s</xliff:g>대 검색됨"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"인쇄 서비스 선택"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"프린터 검색 중"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"프린터 없음"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"차단된 프린터: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"취소"</string>
<string name="restart" msgid="2472034227037808749">"다시 시작"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"프린터와 연결되지 않음"</string>
diff --git a/packages/PrintSpooler/res/values-lo-rLA/strings.xml b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
index cbbe9b6..74ab5a3 100644
--- a/packages/PrintSpooler/res/values-lo-rLA/strings.xml
+++ b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"ໜ້າຕ່າງການພິມ"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"ກ່ອງຊອກຫາຖືກສະແດງ"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"ກ່ອງຊອກຫາຖືກເຊື່ອງ"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"ເພີ່ມເຄື່ອງພິມ"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"ພົບ <xliff:g id="COUNT">%1$s</xliff:g> ເຄື່ອງພິມ"</item>
+ <item quantity="other" msgid="6533817036607128241">"ພົບ <xliff:g id="COUNT">%1$s</xliff:g> ເຄື່ອງພິມ"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"ເລືອກບໍລິການການພິມ"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"ກຳລັງຊອກຫາເຄື່ອງພິມ"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"ບໍ່ພົບເຄື່ອງພິມ"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"ເຄື່ອງພິມຖືກບລອກ <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"ຍົກເລີກ"</string>
<string name="restart" msgid="2472034227037808749">"ປິດເປີດໃໝ່"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"ບໍ່ມີການເຊື່ອມຕໍ່ຫາເຄື່ອງພິມ"</string>
diff --git a/packages/PrintSpooler/res/values-lt/strings.xml b/packages/PrintSpooler/res/values-lt/strings.xml
index 624854f..40bb3f9 100644
--- a/packages/PrintSpooler/res/values-lt/strings.xml
+++ b/packages/PrintSpooler/res/values-lt/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Puslapiai"</string>
<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="print_dialog" msgid="32628687461331979">"Spausdinimo dialogo langas"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Paieškos laukelis rodomas"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Paieškos laukelis paslėptas"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Pridėti spausdintuvą"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Rasta spausdintuvų: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ <item quantity="other" msgid="6533817036607128241">"Rasta spausdintuvų: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Ieškoma spausdintuvų"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nerasta spausdintuvų"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Spausdintuvas užblokavo: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Atšaukti"</string>
<string name="restart" msgid="2472034227037808749">"Paleisti iš naujo"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nėra ryšio su spausdintuvu"</string>
diff --git a/packages/PrintSpooler/res/values-lv/strings.xml b/packages/PrintSpooler/res/values-lv/strings.xml
index a7066fc5..938ea05 100644
--- a/packages/PrintSpooler/res/values-lv/strings.xml
+++ b/packages/PrintSpooler/res/values-lv/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Lapas"</string>
<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="print_dialog" msgid="32628687461331979">"Drukāšanas dialoglodziņš"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Meklēšanas lodziņš ir redzams."</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Meklēšanas lodziņš ir paslēpts."</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Pievienot printeri"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Atrasts <xliff:g id="COUNT">%1$s</xliff:g> printeris"</item>
+ <item quantity="other" msgid="6533817036607128241">"Atrasti <xliff:g id="COUNT">%1$s</xliff:g> printeri"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Printeru meklēšana"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Netika atrasts neviens printeris."</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printeris bloķēja darbu <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Atcelt"</string>
<string name="restart" msgid="2472034227037808749">"Restartēt"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nav savienojuma ar printeri"</string>
diff --git a/packages/PrintSpooler/res/values-mn-rMN/strings.xml b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
index 58dea51..dea2c97 100644
--- a/packages/PrintSpooler/res/values-mn-rMN/strings.xml
+++ b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Хэвлэх диалоги"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Хайлтын нүдийг гаргах"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Хайлтын нүдийг далдлах"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Принтер нэмэх"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> принтер олдсон"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> принтер олдсон"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Хэвлэх үйлчилгээг сонгох"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Принтер хайж байна"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Принтер олдсонгүй"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Принтер хориглогдсон <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Цуцлах"</string>
<string name="restart" msgid="2472034227037808749">"Дахин эхлүүлэх"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Принтер холбогдоогүй байна"</string>
diff --git a/packages/PrintSpooler/res/values-ms-rMY/strings.xml b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
index 90fa63a..d4e4402 100644
--- a/packages/PrintSpooler/res/values-ms-rMY/strings.xml
+++ b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Dialog cetakan"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Kotak carian ditunjukkan"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Kotak carian tersembunyi"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Tambah pencetak"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> pencetak ditemui"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> pencetak ditemui"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Pilih perkhidmatan cetak"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari pencetak"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Tiada pencetak ditemui"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Ralat pencetak <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Pencetak disekat <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Batal"</string>
<string name="restart" msgid="2472034227037808749">"Mulakan semula"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Tiada sambungan ke pencetak"</string>
diff --git a/packages/PrintSpooler/res/values-nb/strings.xml b/packages/PrintSpooler/res/values-nb/strings.xml
index 44e17acb..c0d2111 100644
--- a/packages/PrintSpooler/res/values-nb/strings.xml
+++ b/packages/PrintSpooler/res/values-nb/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Sider"</string>
<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="print_dialog" msgid="32628687461331979">"Skriv ut dialog"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Søkefeltet vises"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Søkefeltet er skjult"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Legg til skriver"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> skriver ble funnet"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> skrivere ble funnet"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Søker etter skrivere"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Fant ingen skrivere"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Skriveren blokkerte <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Avbryt"</string>
<string name="restart" msgid="2472034227037808749">"Start på nytt"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Ingen forbindelse med skriveren"</string>
diff --git a/packages/PrintSpooler/res/values-nl/strings.xml b/packages/PrintSpooler/res/values-nl/strings.xml
index 9c074df..664f553 100644
--- a/packages/PrintSpooler/res/values-nl/strings.xml
+++ b/packages/PrintSpooler/res/values-nl/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pagina\'s"</string>
<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="print_dialog" msgid="32628687461331979">"Afdrukdialoogvenster"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Zoekvak weergegeven"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Zoekvak verborgen"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Printer toevoegen"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> printer gevonden"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> printers gevonden"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Printers zoeken"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Geen printers gevonden"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> geblokkeerd door printer"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Annuleren"</string>
<string name="restart" msgid="2472034227037808749">"Opnieuw starten"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Geen verbinding met printer"</string>
diff --git a/packages/PrintSpooler/res/values-pl/strings.xml b/packages/PrintSpooler/res/values-pl/strings.xml
index bcd57b2..e241b4f 100644
--- a/packages/PrintSpooler/res/values-pl/strings.xml
+++ b/packages/PrintSpooler/res/values-pl/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Strony"</string>
<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="print_dialog" msgid="32628687461331979">"Okno drukowania"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Pole wyszukiwania jest widoczne"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Pole wyszukiwania jest ukryte"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Dodaj drukarkę"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Znaleziono <xliff:g id="COUNT">%1$s</xliff:g> drukarkę"</item>
+ <item quantity="other" msgid="6533817036607128241">"Znalezione drukarki: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Szukanie drukarek"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nie znaleziono drukarek"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Drukarka zablokowała <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Anuluj"</string>
<string name="restart" msgid="2472034227037808749">"Od nowa"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Brak połączenia z drukarką"</string>
diff --git a/packages/PrintSpooler/res/values-pt-rPT/strings.xml b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
index bc7a677..7560fd2 100644
--- a/packages/PrintSpooler/res/values-pt-rPT/strings.xml
+++ b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Páginas"</string>
<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="print_dialog" msgid="32628687461331979">"Caixa de diálogo de impressão"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Caixa de pesquisa apresentada"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Caixa de pesquisa ocultada"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Adicionar impressora"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> impressora encontrada"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> impressoras encontradas"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"A procurar impressoras"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nenhuma impressora encontrada"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"A impressora bloqueou <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancelar"</string>
<string name="restart" msgid="2472034227037808749">"Reiniciar"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Sem ligação à impressora"</string>
diff --git a/packages/PrintSpooler/res/values-pt/strings.xml b/packages/PrintSpooler/res/values-pt/strings.xml
index 6c63502..5ff2b9f 100644
--- a/packages/PrintSpooler/res/values-pt/strings.xml
+++ b/packages/PrintSpooler/res/values-pt/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Diálogo de impressão"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Caixa de pesquisa exibida"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Caixa de pesquisa oculta"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Adicionar impressora"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> impressora encontrada"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> impressoras encontradas"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Selecione o serviço de impressão"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Procurando impressoras"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Nenhuma impressora encontrada"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Erro ao imprimir <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"A impressora bloqueou <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Cancelar"</string>
<string name="restart" msgid="2472034227037808749">"Reiniciar"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Sem conexão com a impressora"</string>
diff --git a/packages/PrintSpooler/res/values-ro/strings.xml b/packages/PrintSpooler/res/values-ro/strings.xml
index d194d65..c4dba1a 100644
--- a/packages/PrintSpooler/res/values-ro/strings.xml
+++ b/packages/PrintSpooler/res/values-ro/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Pagini"</string>
<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="print_dialog" msgid="32628687461331979">"Caseta de dialog de printare"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Caseta de căutare este afișată"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Caseta de căutare este ascunsă"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Adăugați o imprimantă"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> imprimantă găsită"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> (de) imprimante găsite"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Se caută imprimante"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nu au fost găsite imprimante"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printare blocată: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Anulați"</string>
<string name="restart" msgid="2472034227037808749">"Reporniți"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Nu există conexiune la o imprimantă"</string>
diff --git a/packages/PrintSpooler/res/values-ru/strings.xml b/packages/PrintSpooler/res/values-ru/strings.xml
index bbf66fb..2281d7f 100644
--- a/packages/PrintSpooler/res/values-ru/strings.xml
+++ b/packages/PrintSpooler/res/values-ru/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"Диалоговое окно печати"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Открыто окно поиска"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Окно поиска скрыто"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Добавить принтер"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Найден <xliff:g id="COUNT">%1$s</xliff:g> принтер"</item>
+ <item quantity="other" msgid="6533817036607128241">"Найдено несколько принтеров (<xliff:g id="COUNT">%1$s</xliff:g>)"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Поиск принтеров…"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Ничего не найдено"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Задание \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" заблокировано"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Отмена"</string>
<string name="restart" msgid="2472034227037808749">"Повторить"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Нет связи с принтером"</string>
diff --git a/packages/PrintSpooler/res/values-sk/strings.xml b/packages/PrintSpooler/res/values-sk/strings.xml
index 81361ad..a88ab2c 100644
--- a/packages/PrintSpooler/res/values-sk/strings.xml
+++ b/packages/PrintSpooler/res/values-sk/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Strany"</string>
<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="print_dialog" msgid="32628687461331979">"Dialógové okno tlače"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Vyhľadávacie pole sa zobrazuje"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Vyhľadávacie pole je skryté"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Pridať tlačiareň"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Našla sa <xliff:g id="COUNT">%1$s</xliff:g> tlačiareň"</item>
+ <item quantity="other" msgid="6533817036607128241">"Počet nájdených tlačiarní: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Vyhľadávanie tlačiarní"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Nenašli sa žiadne tlačiarne"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Tlačiareň zablok. úlohu <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Zrušiť"</string>
<string name="restart" msgid="2472034227037808749">"Spustiť znova"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Žiadne pripojenie k tlačiarni"</string>
diff --git a/packages/PrintSpooler/res/values-sl/strings.xml b/packages/PrintSpooler/res/values-sl/strings.xml
index 0886831..f5f04b2 100644
--- a/packages/PrintSpooler/res/values-sl/strings.xml
+++ b/packages/PrintSpooler/res/values-sl/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Pogovorno okno za tiskanje"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Iskalno polje je prikazano"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Iskalno polje je skrito"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Dodajanje tiskalnika"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Najden <xliff:g id="COUNT">%1$s</xliff:g> tiskalnik"</item>
+ <item quantity="other" msgid="6533817036607128241">"Število najdenih tiskalnikov: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Izberite tiskalno storitev"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Iskanje tiskalnikov"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Tiskalnikov ni mogoče najti"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Napaka tiskalnika: <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Tiskalnik je blokiral <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Prekliči"</string>
<string name="restart" msgid="2472034227037808749">"Začni znova"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Ni povezave s tiskalnikom"</string>
diff --git a/packages/PrintSpooler/res/values-sr/strings.xml b/packages/PrintSpooler/res/values-sr/strings.xml
index 93ca41f..b04cd08 100644
--- a/packages/PrintSpooler/res/values-sr/strings.xml
+++ b/packages/PrintSpooler/res/values-sr/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"Дијалог за штампање"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Оквир за претрагу се приказује"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Оквир за претрагу је сакривен"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Додај штампач"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Пронађен је <xliff:g id="COUNT">%1$s</xliff:g> штампач"</item>
+ <item quantity="other" msgid="6533817036607128241">"Пронађено је <xliff:g id="COUNT">%1$s</xliff:g> штампача"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Претрага штампача"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Није пронађен ниједан штампач"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Штампач је блокирао <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Откажи"</string>
<string name="restart" msgid="2472034227037808749">"Поново покрени"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Нема везе са штампачем"</string>
diff --git a/packages/PrintSpooler/res/values-sv/strings.xml b/packages/PrintSpooler/res/values-sv/strings.xml
index 000f88e..dd06950 100644
--- a/packages/PrintSpooler/res/values-sv/strings.xml
+++ b/packages/PrintSpooler/res/values-sv/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Sidor"</string>
<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="print_dialog" msgid="32628687461331979">"Dialogrutan Skriv ut"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Sökrutan visas"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Sökrutan är dold"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Lägg till skrivare"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> skrivare hittades"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> skrivare hittades"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Söker efter skrivare"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Det gick inte att hitta några skrivare"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Skrivaren har blockerat <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Avbryt"</string>
<string name="restart" msgid="2472034227037808749">"Starta om"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Ingen anslutning till skrivaren"</string>
diff --git a/packages/PrintSpooler/res/values-sw/strings.xml b/packages/PrintSpooler/res/values-sw/strings.xml
index 7e655ee..ea4a1ee 100644
--- a/packages/PrintSpooler/res/values-sw/strings.xml
+++ b/packages/PrintSpooler/res/values-sw/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Kurasa"</string>
<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="print_dialog" msgid="32628687461331979">"Chapisha mazungumzo"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Kisanduku cha kutafutia kimeonyeshwa"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Kisanduku cha kutafutia kimefichwa"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Ongeza printa"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Printa <xliff:g id="COUNT">%1$s</xliff:g> imepatikana"</item>
+ <item quantity="other" msgid="6533817036607128241">"Printa <xliff:g id="COUNT">%1$s</xliff:g> zimepatikana"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Inatafuta printa"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Hakuna printa zilizopatikana"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Printa imefungwa <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Ghairi"</string>
<string name="restart" msgid="2472034227037808749">"Anzisha upya"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Hakuna muunganisho kwa printa"</string>
diff --git a/packages/PrintSpooler/res/values-th/strings.xml b/packages/PrintSpooler/res/values-th/strings.xml
index 9f6e226..b7f002c 100644
--- a/packages/PrintSpooler/res/values-th/strings.xml
+++ b/packages/PrintSpooler/res/values-th/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"ช่องโต้ตอบการพิมพ์"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"แสดงช่องค้นหาอยู่"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"ซ่อนช่องค้นหาอยู่"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"เพิ่มเครื่องพิมพ์"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"พบเครื่องพิมพ์ <xliff:g id="COUNT">%1$s</xliff:g> เครื่อง"</item>
+ <item quantity="other" msgid="6533817036607128241">"พบเครื่องพิมพ์ <xliff:g id="COUNT">%1$s</xliff:g> เครื่อง"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"เลือกบริการพิมพ์"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"กำลังค้นหาเครื่องพิมพ์"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"ไม่พบเครื่องพิมพ์"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"เครื่องพิมพ์ได้บล็อก <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"ยกเลิก"</string>
<string name="restart" msgid="2472034227037808749">"เริ่มต้นใหม่"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"ไม่มีการเชื่อมต่อไปยังเครื่องพิมพ์"</string>
diff --git a/packages/PrintSpooler/res/values-tl/strings.xml b/packages/PrintSpooler/res/values-tl/strings.xml
index 2dc3c39..572b3af 100644
--- a/packages/PrintSpooler/res/values-tl/strings.xml
+++ b/packages/PrintSpooler/res/values-tl/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Dialog ng pag-print"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Ipinapakita ang box para sa paghahanap"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Nakatago ang box para sa paghahanap"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Magdagdag ng printer"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> printer ang nakita"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> (na) printer ang nakita"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Pumili ng serbisyo ng pag-print"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Naghahanap ng mga printer"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Walang mga printer na nakita"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Error sa printer <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Naka-block ang Printer <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Kanselahin"</string>
<string name="restart" msgid="2472034227037808749">"I-restart"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Hindi nakakonekta sa printer"</string>
diff --git a/packages/PrintSpooler/res/values-tr/strings.xml b/packages/PrintSpooler/res/values-tr/strings.xml
index bfc80af..89b3db0 100644
--- a/packages/PrintSpooler/res/values-tr/strings.xml
+++ b/packages/PrintSpooler/res/values-tr/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Sayfa"</string>
<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="print_dialog" msgid="32628687461331979">"Yazdırma iletişim kutusu"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Arama kutusu gösteriliyor"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Arama kutusu gizli"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Yazıcı ekle"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> yazıcı bulundu"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> yazıcı bulundu"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Yazıcılar aranıyor"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Yazıcı bulunamadı"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Yazıcı <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> işini engelledi"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"İptal"</string>
<string name="restart" msgid="2472034227037808749">"Yeniden başlat"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Yazıcı bağlantısı yok"</string>
diff --git a/packages/PrintSpooler/res/values-uk/strings.xml b/packages/PrintSpooler/res/values-uk/strings.xml
index bd8c375..bef2b76 100644
--- a/packages/PrintSpooler/res/values-uk/strings.xml
+++ b/packages/PrintSpooler/res/values-uk/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Діалогове вікно друку"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Вікно пошуку показано"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Вікно пошуку сховано"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Додати принтер"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Знайдено принтерів: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ <item quantity="other" msgid="6533817036607128241">"Знайдено принтерів: <xliff:g id="COUNT">%1$s</xliff:g>"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Вибрати службу друку"</string>
<string name="print_searching_for_printers" msgid="6550424555079932867">"Пошук принтерів"</string>
- <!-- no translation found for print_no_printers (4869403323900054866) -->
- <skip />
+ <string name="print_no_printers" msgid="4869403323900054866">"Принтери не знайдено"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Завдання \"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>\" заблоковано"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Скасувати"</string>
<string name="restart" msgid="2472034227037808749">"Перезапустити"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Немає з’єднання з принтером"</string>
diff --git a/packages/PrintSpooler/res/values-vi/strings.xml b/packages/PrintSpooler/res/values-vi/strings.xml
index 6546f0e..42c045b 100644
--- a/packages/PrintSpooler/res/values-vi/strings.xml
+++ b/packages/PrintSpooler/res/values-vi/strings.xml
@@ -33,27 +33,26 @@
<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="print_dialog" msgid="32628687461331979">"Hộp thoại in"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Hiển thị hộp tìm kiếm"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Ẩn hộp tìm kiếm"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Thêm máy in"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"Đã tìm thấy <xliff:g id="COUNT">%1$s</xliff:g> máy in"</item>
+ <item quantity="other" msgid="6533817036607128241">"Đã tìm thấy <xliff:g id="COUNT">%1$s</xliff:g> máy in"</item>
+ </plurals>
<string name="choose_print_service" msgid="3740309762324459694">"Chọn dịch vụ in"</string>
<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="print_no_printers" msgid="4869403323900054866">"Không tìm thấy máy in"</string>
<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>
<string name="failed_notification_title_template" msgid="2256217208186530973">"Lỗi máy in <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Máy in đã chặn <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Hủy"</string>
<string name="restart" msgid="2472034227037808749">"Bắt đầu lại"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Không có kết nối nào với máy in"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rCN/arrays.xml b/packages/PrintSpooler/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000..4fc75db
--- /dev/null
+++ b/packages/PrintSpooler/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,37 @@
+<?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 0e9b457..d7eedde 100644
--- a/packages/PrintSpooler/res/values-zh-rCN/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"打印对话框"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"搜索框已显示"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"搜索框已隐藏"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"添加打印机"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"找到<xliff:g id="COUNT">%1$s</xliff:g>台打印机"</item>
+ <item quantity="other" msgid="6533817036607128241">"找到<xliff:g id="COUNT">%1$s</xliff:g>台打印机"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"正在搜索打印机"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"找不到打印机"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"打印机拒绝打印“<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>”"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"取消"</string>
<string name="restart" msgid="2472034227037808749">"重新开始"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"未与打印机建立连接"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rHK/strings.xml b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
index 71215c8..3d1f659 100644
--- a/packages/PrintSpooler/res/values-zh-rHK/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"列印對話方塊"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"搜尋框已顯示"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"搜尋框已隱藏"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"新增打印機"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"找到 <xliff:g id="COUNT">%1$s</xliff:g> 部打印機"</item>
+ <item quantity="other" msgid="6533817036607128241">"找到 <xliff:g id="COUNT">%1$s</xliff:g> 部打印機"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"正在搜尋打印機"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"找不到打印機"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"打印機已封鎖 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"取消"</string>
<string name="restart" msgid="2472034227037808749">"重新開始"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"尚未與打印機連線"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rTW/strings.xml b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
index 66ceb41..b835b07 100644
--- a/packages/PrintSpooler/res/values-zh-rTW/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <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="print_dialog" msgid="32628687461331979">"列印對話方塊"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"搜尋框已顯示"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"搜尋框已隱藏"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"新增印表機"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"找到 <xliff:g id="COUNT">%1$s</xliff:g> 台印表機"</item>
+ <item quantity="other" msgid="6533817036607128241">"找到 <xliff:g id="COUNT">%1$s</xliff:g> 台印表機"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"正在搜尋印表機"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"找不到印表機"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"印表機封鎖了 <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"取消"</string>
<string name="restart" msgid="2472034227037808749">"重新開始"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"尚未與印表機建立連線"</string>
diff --git a/packages/PrintSpooler/res/values-zu/strings.xml b/packages/PrintSpooler/res/values-zu/strings.xml
index e1cb758..a43fd79 100644
--- a/packages/PrintSpooler/res/values-zu/strings.xml
+++ b/packages/PrintSpooler/res/values-zu/strings.xml
@@ -29,33 +29,30 @@
<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>
- <!-- no translation found for page_count_unknown (6058852665954511124) -->
- <skip />
+ <string name="page_count_unknown" msgid="6058852665954511124">"Amakhasi"</string>
<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="print_dialog" msgid="32628687461331979">"Ingxoxo yokuphrinta"</string>
<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="print_search_box_shown_utterance" msgid="7967404953901376090">"Ibhokisi lokuhlola libonisiwe"</string>
+ <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Ibhokisi lokusesha lifihliwe"</string>
+ <string name="print_add_printer" msgid="1088656468360653455">"Engeza iphrinta"</string>
+ <plurals name="print_search_result_count_utterance">
+ <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> iphrinta itholiwe"</item>
+ <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> amaphrinta atholiwe"</item>
+ </plurals>
<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="print_searching_for_printers" msgid="6550424555079932867">"Isesha amaphrinta"</string>
+ <string name="print_no_printers" msgid="4869403323900054866">"Awekho amaphrinta atholiwe"</string>
<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>
<string name="blocked_notification_title_template" msgid="1175435827331588646">"Iphrinta engu-<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> ivinjelwe"</string>
+ <!-- no translation found for composite_notification_title_template:one (5866624638054847057) -->
+ <!-- no translation found for composite_notification_title_template:other (8746611264734222865) -->
<string name="cancel" msgid="4373674107267141885">"Khansela"</string>
<string name="restart" msgid="2472034227037808749">"Qala kabusha"</string>
<string name="no_connection_to_printer" msgid="2159246915977282728">"Akukho ukuxhumana kuphrinta"</string>
diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml
index 67c455d..d74b414 100644
--- a/packages/PrintSpooler/res/values/strings.xml
+++ b/packages/PrintSpooler/res/values/strings.xml
@@ -44,7 +44,7 @@
<string name="label_pages">Pages (<xliff:g id="page_count" example="5">%1$s</xliff:g>)</string>
<!-- Page range exmple used as a hint of how to specify such. [CHAR LIMIT=20] -->
- <string name="pages_range_example">e.g. 1–5, 8, 11–13</string>
+ <string name="pages_range_example">e.g. 1—5,8,11—13</string>
<!-- Title for the pring preview button .[CHAR LIMIT=30] -->
<string name="print_preview">Print preview</string>
@@ -142,6 +142,9 @@
<!-- Label for a printer that is not available. [CHAR LIMIT=25] -->
<string name="printer_unavailable"><xliff:g id="print_job_name" example="Canon-123GHT">%1$s</xliff:g> – unavailable</string>
+ <!-- Default message of an alert dialog for app error while generating a print job. [CHAR LIMIT=50] -->
+ <string name="print_error_default_message">Couldn\'t generate print job</string>
+
<!-- Arrays -->
<!-- Color mode labels. -->
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintDialogFrame.java b/packages/PrintSpooler/src/com/android/printspooler/PrintDialogFrame.java
index 6dd8aa0a..c1c4d21 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintDialogFrame.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintDialogFrame.java
@@ -24,6 +24,8 @@
public final int mMaxWidth;
+ public int mHeight;
+
public PrintDialogFrame(Context context, AttributeSet attrs) {
super(context, attrs);
mMaxWidth = context.getResources().getDimensionPixelSize(
@@ -32,13 +34,36 @@
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
- if (widthMode == MeasureSpec.AT_MOST) {
- final int receivedWidth = MeasureSpec.getSize(widthMeasureSpec);
- final int computedWidth = Math.min(mMaxWidth, receivedWidth);
- widthMeasureSpec = MeasureSpec.makeMeasureSpec(computedWidth,
- MeasureSpec.EXACTLY);
- }
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+ int measuredWidth = getMeasuredWidth();
+ final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+ switch (widthMode) {
+ case MeasureSpec.UNSPECIFIED: {
+ measuredWidth = mMaxWidth;
+ } break;
+
+ case MeasureSpec.AT_MOST: {
+ final int receivedWidth = MeasureSpec.getSize(widthMeasureSpec);
+ measuredWidth = Math.min(mMaxWidth, receivedWidth);
+ } break;
+ }
+
+ mHeight = Math.max(mHeight, getMeasuredHeight());
+
+ int measuredHeight = getMeasuredHeight();
+ final int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+ switch (heightMode) {
+ case MeasureSpec.UNSPECIFIED: {
+ measuredHeight = mHeight;
+ } break;
+
+ case MeasureSpec.AT_MOST: {
+ final int receivedHeight = MeasureSpec.getSize(heightMeasureSpec);
+ measuredHeight = Math.min(mHeight, receivedHeight);
+ } break;
+ }
+
+ setMeasuredDimension(measuredWidth, measuredHeight);
}
}
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
index d6ebc2d..3ba7369 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
@@ -19,9 +19,11 @@
import android.app.Activity;
import android.app.Dialog;
import android.app.LoaderManager;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.Loader;
+import android.content.ServiceConnection;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.DataSetObserver;
@@ -52,6 +54,7 @@
import android.print.PrinterCapabilitiesInfo;
import android.print.PrinterId;
import android.print.PrinterInfo;
+import android.provider.DocumentsContract;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextUtils.SimpleStringSplitter;
@@ -59,6 +62,7 @@
import android.util.ArrayMap;
import android.util.AttributeSet;
import android.util.Log;
+import android.view.Gravity;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
@@ -67,6 +71,7 @@
import android.view.View.OnClickListener;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
import android.view.ViewPropertyAnimator;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
@@ -75,12 +80,17 @@
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import com.android.printspooler.MediaSizeUtils.MediaSizeComparator;
+import libcore.io.IoUtils;
+
+import libcore.io.IoUtils;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -97,8 +107,6 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import libcore.io.IoUtils;
-
/**
* Activity for configuring a print job.
*/
@@ -108,9 +116,6 @@
private static final boolean DEBUG = false;
- public static final String EXTRA_PRINT_DOCUMENT_ADAPTER = "printDocumentAdapter";
- public static final String EXTRA_PRINT_JOB = "printJob";
-
public static final String INTENT_EXTRA_PRINTER_ID = "INTENT_EXTRA_PRINTER_ID";
private static final int LOADER_ID_PRINTERS_LOADER = 1;
@@ -174,6 +179,10 @@
private Dialog mGeneratingPrintJobDialog;
+ private PrintSpoolerProvider mSpoolerProvider;
+
+ private String mCallingPackageName;
+
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
@@ -182,13 +191,13 @@
Bundle extras = getIntent().getExtras();
- PrintJobInfo printJob = extras.getParcelable(EXTRA_PRINT_JOB);
+ PrintJobInfo printJob = extras.getParcelable(PrintManager.EXTRA_PRINT_JOB);
if (printJob == null) {
throw new IllegalArgumentException("printJob cannot be null");
}
mPrintJobId = printJob.getId();
- mIPrintDocumentAdapter = extras.getBinder(EXTRA_PRINT_DOCUMENT_ADAPTER);
+ mIPrintDocumentAdapter = extras.getBinder(PrintManager.EXTRA_PRINT_DOCUMENT_ADAPTER);
if (mIPrintDocumentAdapter == null) {
throw new IllegalArgumentException("PrintDocumentAdapter cannot be null");
}
@@ -198,13 +207,9 @@
mCurrPrintAttributes.copyFrom(attributes);
}
- setContentView(R.layout.print_job_config_activity_container);
+ mCallingPackageName = extras.getString(DocumentsContract.EXTRA_PACKAGE_NAME);
- mDocument = new Document();
- mController = new PrintController(new RemotePrintDocumentAdapter(
- IPrintDocumentAdapter.Stub.asInterface(mIPrintDocumentAdapter),
- PrintSpoolerService.peekInstance().generateFileForPrintJob(mPrintJobId)));
- mEditor = new Editor();
+ setContentView(R.layout.print_job_config_activity_container);
try {
mIPrintDocumentAdapter.linkToDeath(mDeathRecipient, 0);
@@ -213,14 +218,31 @@
return;
}
- mController.initialize();
- mEditor.initialize();
+ mDocument = new Document();
+ mEditor = new Editor();
+
+ mSpoolerProvider = new PrintSpoolerProvider(this,
+ new Runnable() {
+ @Override
+ public void run() {
+ // We got the spooler so unleash the UI.
+ mController = new PrintController(new RemotePrintDocumentAdapter(
+ IPrintDocumentAdapter.Stub.asInterface(mIPrintDocumentAdapter),
+ mSpoolerProvider.getSpooler().generateFileForPrintJob(mPrintJobId)));
+ mController.initialize();
+
+ mEditor.initialize();
+ mEditor.postCreate();
+ }
+ });
}
@Override
public void onResume() {
super.onResume();
- mEditor.refreshCurrentPrinter();
+ if (mSpoolerProvider.getSpooler() != null) {
+ mEditor.refreshCurrentPrinter();
+ }
}
@Override
@@ -232,10 +254,10 @@
mController.finish();
}
if (mEditor.isPrintConfirmed() && mController.isFinished()) {
- PrintSpoolerService.peekInstance().setPrintJobState(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobState(mPrintJobId,
PrintJobInfo.STATE_QUEUED, null);
} else {
- PrintSpoolerService.peekInstance().setPrintJobState(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobState(mPrintJobId,
PrintJobInfo.STATE_CANCELED, null);
}
mIPrintDocumentAdapter.unlinkToDeath(mDeathRecipient, 0);
@@ -243,6 +265,7 @@
mGeneratingPrintJobDialog.dismiss();
mGeneratingPrintJobDialog = null;
}
+ mSpoolerProvider.destroy();
super.onDestroy();
}
@@ -336,6 +359,10 @@
return mControllerState >= CONTROLLER_STATE_LAYOUT_COMPLETED;
}
+ public boolean isPerformingLayout() {
+ return mControllerState == CONTROLLER_STATE_LAYOUT_STARTED;
+ }
+
public boolean isWorking() {
return mControllerState == CONTROLLER_STATE_LAYOUT_STARTED
|| mControllerState == CONTROLLER_STATE_WRITE_STARTED;
@@ -351,9 +378,18 @@
if (!mController.hasStarted()) {
mController.start();
}
+
+ // If the print attributes are the same and we are performing
+ // a layout, then we have to wait for it to completed which will
+ // trigger writing of the necessary pages.
+ final boolean printAttributesChanged = printAttributesChanged();
+ if (!printAttributesChanged && isPerformingLayout()) {
+ return;
+ }
+
// If print is confirmed we always do a layout since the previous
// ones were for preview and this one is for printing.
- if (!printAttributesChanged() && !mEditor.isPrintConfirmed()) {
+ if (!printAttributesChanged && !mEditor.isPrintConfirmed()) {
if (mDocument.info == null) {
// We are waiting for the result of a layout, so do nothing.
return;
@@ -364,7 +400,7 @@
// we handle writing as usual.
handleOnLayoutFinished(mDocument.info, false, mRequestCounter.get());
} else {
- PrintSpoolerService.peekInstance().setPrintJobAttributesNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobAttributesNoPersistence(
mPrintJobId, mCurrPrintAttributes);
mMetadata.putBoolean(PrintDocumentAdapter.EXTRA_PRINT_PREVIEW,
@@ -409,7 +445,7 @@
if (infoChanged) {
mDocument.info = info;
// Set the info.
- PrintSpoolerService.peekInstance().setPrintJobPrintDocumentInfoNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobPrintDocumentInfoNoPersistence(
mPrintJobId, info);
}
@@ -417,7 +453,7 @@
// drop the pages since we have to fetch them again.
if (infoChanged || layoutChanged) {
mDocument.pages = null;
- PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobPagesNoPersistence(
mPrintJobId, null);
}
@@ -471,14 +507,20 @@
mRequestCounter.incrementAndGet());
}
- private void handleOnLayoutFailed(CharSequence error, int sequence) {
+ private void handleOnLayoutFailed(final CharSequence error, int sequence) {
if (mRequestCounter.get() != sequence) {
return;
}
mControllerState = CONTROLLER_STATE_FAILED;
- // TODO: We need some UI for announcing an error.
- Log.e(LOG_TAG, "Error during layout: " + error);
- PrintJobConfigActivity.this.finish();
+ mEditor.showUi(Editor.UI_ERROR, new Runnable() {
+ @Override
+ public void run() {
+ if (!TextUtils.isEmpty(error)) {
+ TextView messageView = (TextView) findViewById(R.id.message);
+ messageView.setText(error);
+ }
+ }
+ });
}
private void handleOnWriteFinished(PageRange[] pages, int sequence) {
@@ -496,12 +538,12 @@
mControllerState = CONTROLLER_STATE_WRITE_COMPLETED;
// Update the document size.
- File file = PrintSpoolerService.peekInstance()
+ File file = mSpoolerProvider.getSpooler()
.generateFileForPrintJob(mPrintJobId);
mDocument.info.setDataSize(file.length());
// Update the print job with the updated info.
- PrintSpoolerService.peekInstance().setPrintJobPrintDocumentInfoNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobPrintDocumentInfoNoPersistence(
mPrintJobId, mDocument.info);
// Update which pages we have fetched.
@@ -525,12 +567,12 @@
if (Arrays.equals(writtenPages, requestedPages)) {
// We got a document with exactly the pages we wanted. Hence,
// the printer has to print all pages in the data.
- PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobPagesNoPersistence(mPrintJobId,
ALL_PAGES_ARRAY);
} else if (Arrays.equals(writtenPages, ALL_PAGES_ARRAY)) {
// We requested specific pages but got all of them. Hence,
// the printer has to print only the requested pages.
- PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobPagesNoPersistence(mPrintJobId,
requestedPages);
} else if (PageRangeUtils.contains(writtenPages, requestedPages)) {
// We requested specific pages and got more but not all pages.
@@ -540,7 +582,7 @@
final int offset = -writtenPages[0].getStart();
PageRange[] offsetPages = Arrays.copyOf(requestedPages, requestedPages.length);
PageRangeUtils.offset(offsetPages, offset);
- PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobPagesNoPersistence(mPrintJobId,
offsetPages);
} else if (Arrays.equals(requestedPages, ALL_PAGES_ARRAY)
&& writtenPages.length == 1 && writtenPages[0].getStart() == 0
@@ -548,7 +590,7 @@
// We requested all pages via the special constant and got all
// of them as an explicit enumeration. Hence, the printer has
// to print only the requested pages.
- PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(mPrintJobId,
+ mSpoolerProvider.getSpooler().setPrintJobPagesNoPersistence(mPrintJobId,
writtenPages);
} else {
// We did not get the pages we requested, then the application
@@ -563,24 +605,32 @@
private void requestCreatePdfFileOrFinish() {
if (mEditor.isPrintingToPdf()) {
- PrintJobInfo printJob = PrintSpoolerService.peekInstance()
+ PrintJobInfo printJob = mSpoolerProvider.getSpooler()
.getPrintJobInfo(mPrintJobId, PrintManager.APP_ID_ANY);
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.setType("application/pdf");
intent.putExtra(Intent.EXTRA_TITLE, printJob.getLabel());
+ intent.putExtra(DocumentsContract.EXTRA_PACKAGE_NAME, mCallingPackageName);
startActivityForResult(intent, ACTIVITY_REQUEST_CREATE_FILE);
} else {
PrintJobConfigActivity.this.finish();
}
}
- private void handleOnWriteFailed(CharSequence error, int sequence) {
+ private void handleOnWriteFailed(final CharSequence error, int sequence) {
if (mRequestCounter.get() != sequence) {
return;
}
mControllerState = CONTROLLER_STATE_FAILED;
- Log.e(LOG_TAG, "Error during write: " + error);
- PrintJobConfigActivity.this.finish();
+ mEditor.showUi(Editor.UI_ERROR, new Runnable() {
+ @Override
+ public void run() {
+ if (!TextUtils.isEmpty(error)) {
+ TextView messageView = (TextView) findViewById(R.id.message);
+ messageView.setText(error);
+ }
+ }
+ });
}
private boolean equalsIgnoreSize(PrintDocumentInfo lhs, PrintDocumentInfo rhs) {
@@ -738,12 +788,12 @@
InputStream in = null;
OutputStream out = null;
try {
- PrintJobInfo printJob = PrintSpoolerService.peekInstance()
+ PrintJobInfo printJob = mSpoolerProvider.getSpooler()
.getPrintJobInfo(mPrintJobId, PrintManager.APP_ID_ANY);
if (printJob == null) {
return null;
}
- File file = PrintSpoolerService.peekInstance()
+ File file = mSpoolerProvider.getSpooler()
.generateFileForPrintJob(mPrintJobId);
in = new FileInputStream(file);
out = getContentResolver().openOutputStream(uri);
@@ -778,6 +828,7 @@
private static final int UI_NONE = 0;
private static final int UI_EDITING_PRINT_JOB = 1;
private static final int UI_GENERATING_PRINT_JOB = 2;
+ private static final int UI_ERROR = 3;
private EditText mCopiesEditText;
@@ -786,21 +837,21 @@
private EditText mPageRangeEditText;
private Spinner mDestinationSpinner;
- private final DestinationAdapter mDestinationSpinnerAdapter;
+ private DestinationAdapter mDestinationSpinnerAdapter;
private Spinner mMediaSizeSpinner;
- private final ArrayAdapter<SpinnerItem<MediaSize>> mMediaSizeSpinnerAdapter;
+ private ArrayAdapter<SpinnerItem<MediaSize>> mMediaSizeSpinnerAdapter;
private Spinner mColorModeSpinner;
- private final ArrayAdapter<SpinnerItem<Integer>> mColorModeSpinnerAdapter;
+ private ArrayAdapter<SpinnerItem<Integer>> mColorModeSpinnerAdapter;
private Spinner mOrientationSpinner;
- private final ArrayAdapter<SpinnerItem<Integer>> mOrientationSpinnerAdapter;
+ private ArrayAdapter<SpinnerItem<Integer>> mOrientationSpinnerAdapter;
private Spinner mRangeOptionsSpinner;
- private final ArrayAdapter<SpinnerItem<Integer>> mRangeOptionsSpinnerAdapter;
+ private ArrayAdapter<SpinnerItem<Integer>> mRangeOptionsSpinnerAdapter;
- private final SimpleStringSplitter mStringCommaSplitter =
+ private SimpleStringSplitter mStringCommaSplitter =
new SimpleStringSplitter(',');
private View mContentContainer;
@@ -811,7 +862,7 @@
private PrinterInfo mCurrentPrinter;
- private final MediaSizeComparator mMediaSizeComparator;
+ private MediaSizeComparator mMediaSizeComparator;
private final OnItemSelectedListener mOnItemSelectedListener =
new AdapterView.OnItemSelectedListener() {
@@ -823,6 +874,11 @@
return;
}
+ if (position == AdapterView.INVALID_POSITION) {
+ updateUi();
+ return;
+ }
+
if (id == DEST_ADAPTER_ITEM_ID_ALL_PRINTERS) {
startSelectPrinterActivity();
return;
@@ -833,7 +889,7 @@
mCurrentPrinter = (PrinterInfo) mDestinationSpinnerAdapter
.getItem(position);
- PrintSpoolerService.peekInstance().setPrintJobPrinterNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobPrinterNoPersistence(
mPrintJobId, mCurrentPrinter);
if (mCurrentPrinter.getStatus() == PrinterInfo.STATUS_UNAVAILABLE) {
@@ -1050,7 +1106,7 @@
}
mCopiesEditText.setError(null);
- PrintSpoolerService.peekInstance().setPrintJobCopiesNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobCopiesNoPersistence(
mPrintJobId, copies);
updateUi();
@@ -1142,6 +1198,10 @@
private boolean mFavoritePrinterSelected;
public Editor() {
+ showUi(UI_EDITING_PRINT_JOB, null);
+ }
+
+ public void postCreate() {
// Destination.
mMediaSizeComparator = new MediaSizeComparator(PrintJobConfigActivity.this);
mDestinationSpinnerAdapter = new DestinationAdapter();
@@ -1279,6 +1339,21 @@
updateUi();
}
+ public void reselectCurrentPrinter() {
+ if (mCurrentPrinter != null) {
+ // TODO: While the data did not change and we set the adapter
+ // to a newly inflated spinner, the latter does not show the
+ // current item unless we poke the adapter. This requires more
+ // investigation. Maybe an optimization in AdapterView does not
+ // call into the adapter if the view is not visible which is the
+ // case when we set the adapter.
+ mDestinationSpinnerAdapter.notifyDataSetChanged();
+ final int position = mDestinationSpinnerAdapter.getPrinterIndex(
+ mCurrentPrinter.getId());
+ mDestinationSpinner.setSelection(position);
+ }
+ }
+
public void refreshCurrentPrinter() {
PrinterInfo printer = (PrinterInfo) mDestinationSpinner.getSelectedItem();
if (printer != null) {
@@ -1376,7 +1451,10 @@
return;
}
- switch (mCurrentUi) {
+ final int oldUi = mCurrentUi;
+ mCurrentUi = ui;
+
+ switch (oldUi) {
case UI_NONE: {
switch (ui) {
case UI_EDITING_PRINT_JOB: {
@@ -1409,7 +1487,24 @@
postSwitchCallback.run();
}
}
- });
+ },
+ new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
+ } break;
+
+ case UI_ERROR: {
+ animateUiSwitch(R.layout.print_job_config_activity_content_error,
+ new Runnable() {
+ @Override
+ public void run() {
+ registerOkButtonClickListener();
+ if (postSwitchCallback != null) {
+ postSwitchCallback.run();
+ }
+ }
+ },
+ new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
} break;
}
} break;
@@ -1426,13 +1521,47 @@
postSwitchCallback.run();
}
}
- });
+ },
+ new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER));
+ } break;
+
+ case UI_ERROR: {
+ animateUiSwitch(R.layout.print_job_config_activity_content_error,
+ new Runnable() {
+ @Override
+ public void run() {
+ registerOkButtonClickListener();
+ if (postSwitchCallback != null) {
+ postSwitchCallback.run();
+ }
+ }
+ },
+ new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
+ } break;
+ }
+ } break;
+
+ case UI_ERROR: {
+ switch (ui) {
+ case UI_EDITING_PRINT_JOB: {
+ animateUiSwitch(R.layout.print_job_config_activity_content_editing,
+ new Runnable() {
+ @Override
+ public void run() {
+ registerPrintButtonClickListener();
+ if (postSwitchCallback != null) {
+ postSwitchCallback.run();
+ }
+ }
+ },
+ new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER));
} break;
}
} break;
}
-
- mCurrentUi = ui;
}
private void registerPrintButtonClickListener() {
@@ -1468,13 +1597,34 @@
});
}
+ private void registerOkButtonClickListener() {
+ Button okButton = (Button) findViewById(R.id.ok_button);
+ okButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mEditor.showUi(Editor.UI_EDITING_PRINT_JOB, new Runnable() {
+ @Override
+ public void run() {
+ // Start over with a clean slate.
+ mOldPrintAttributes.clear();
+ mController.initialize();
+ mEditor.initialize();
+ mEditor.bindUi();
+ mEditor.reselectCurrentPrinter();
+ }
+ });
+ }
+ });
+ }
+
private void doUiSwitch(int showLayoutId) {
ViewGroup contentContainer = (ViewGroup) findViewById(R.id.content_container);
contentContainer.removeAllViews();
getLayoutInflater().inflate(showLayoutId, contentContainer, true);
}
- private void animateUiSwitch(int showLayoutId, final Runnable postAnimateCommand) {
+ private void animateUiSwitch(int showLayoutId, final Runnable beforeShowNewUiAction,
+ final LayoutParams containerParams) {
// Find everything we will shuffle around.
final ViewGroup contentContainer = (ViewGroup) findViewById(R.id.content_container);
final View hidingView = contentContainer.getChildAt(0);
@@ -1502,7 +1652,7 @@
/ (float) contentContainer.getHeight();
// Second animation - resize the container.
- AutoCancellingAnimator.animate(contentContainer).scaleY(scaleY).withLayer()
+ AutoCancellingAnimator.animate(contentContainer).scaleY(scaleY)
.withEndAction(new Runnable() {
@Override
public void run() {
@@ -1511,14 +1661,12 @@
contentContainer.setScaleY(1.0f);
contentContainer.addView(showingView);
+ contentContainer.setLayoutParams(containerParams);
+
+ beforeShowNewUiAction.run();
+
// Third animation - show the new content.
- AutoCancellingAnimator.animate(showingView).withLayer().alpha(1.0f)
- .withEndAction(new Runnable() {
- @Override
- public void run() {
- postAnimateCommand.run();
- }
- });
+ AutoCancellingAnimator.animate(showingView).alpha(1.0f);
}
});
}
@@ -1611,7 +1759,7 @@
if (!TextUtils.equals(mCopiesEditText.getText(), MIN_COPIES_STRING)) {
mIgnoreNextCopiesChange = true;
}
- PrintSpoolerService.peekInstance().setPrintJobCopiesNoPersistence(
+ mSpoolerProvider.getSpooler().setPrintJobCopiesNoPersistence(
mPrintJobId, MIN_COPIES);
// Destination.
@@ -1619,7 +1767,7 @@
mDestinationSpinner.setDropDownWidth(ViewGroup.LayoutParams.MATCH_PARENT);
mDestinationSpinner.setAdapter(mDestinationSpinnerAdapter);
mDestinationSpinner.setOnItemSelectedListener(mOnItemSelectedListener);
- if (mDestinationSpinnerAdapter.getCount() > 0 && mController.hasStarted()) {
+ if (mDestinationSpinnerAdapter.getCount() > 0) {
mIgnoreNextDestinationChange = true;
}
@@ -2079,10 +2227,13 @@
@Override
public long getItemId(int position) {
if (mPrinters.isEmpty()) {
- if (position == 0 && mFakePdfPrinter != null) {
- return DEST_ADAPTER_ITEM_ID_SAVE_AS_PDF;
- }
- if (position == 1) {
+ if (position == 0) {
+ if (mFakePdfPrinter != null) {
+ return DEST_ADAPTER_ITEM_ID_SAVE_AS_PDF;
+ } else {
+ return DEST_ADAPTER_ITEM_ID_ALL_PRINTERS;
+ }
+ } else if (position == 1) {
return DEST_ADAPTER_ITEM_ID_ALL_PRINTERS;
}
} else {
@@ -2474,4 +2625,41 @@
}
}
}
+
+ private static final class PrintSpoolerProvider implements ServiceConnection {
+ private final Context mContext;
+ private final Runnable mCallback;
+
+ private PrintSpoolerService mSpooler;
+
+ public PrintSpoolerProvider(Context context, Runnable callback) {
+ mContext = context;
+ mCallback = callback;
+ Intent intent = new Intent(mContext, PrintSpoolerService.class);
+ mContext.bindService(intent, this, 0);
+ }
+
+ public PrintSpoolerService getSpooler() {
+ return mSpooler;
+ }
+
+ public void destroy() {
+ if (mSpooler != null) {
+ mContext.unbindService(this);
+ }
+ }
+
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ mSpooler = ((PrintSpoolerService.PrintSpooler) service).getService();
+ if (mSpooler != null) {
+ mCallback.run();
+ }
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ /* do noting - we are in the same process */
+ }
+ }
}
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
index e1ddb40..98d00a9 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
@@ -16,18 +16,14 @@
package com.android.printspooler;
-import android.app.PendingIntent;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
-import android.content.IntentSender;
import android.os.AsyncTask;
import android.os.IBinder;
import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
-import android.print.IPrintClient;
-import android.print.IPrintDocumentAdapter;
import android.print.IPrintSpooler;
import android.print.IPrintSpoolerCallbacks;
import android.print.IPrintSpoolerClient;
@@ -50,7 +46,6 @@
import android.util.Xml;
import com.android.internal.os.HandlerCaller;
-import com.android.internal.os.SomeArgs;
import com.android.internal.util.FastXmlSerializer;
import libcore.io.IoUtils;
@@ -132,110 +127,7 @@
@Override
public IBinder onBind(Intent intent) {
- return new IPrintSpooler.Stub() {
- @Override
- public void getPrintJobInfos(IPrintSpoolerCallbacks callback,
- ComponentName componentName, int state, int appId, int sequence)
- throws RemoteException {
- List<PrintJobInfo> printJobs = null;
- try {
- printJobs = PrintSpoolerService.this.getPrintJobInfos(
- componentName, state, appId);
- } finally {
- callback.onGetPrintJobInfosResult(printJobs, sequence);
- }
- }
-
- @Override
- public void getPrintJobInfo(PrintJobId printJobId, IPrintSpoolerCallbacks callback,
- int appId, int sequence) throws RemoteException {
- PrintJobInfo printJob = null;
- try {
- printJob = PrintSpoolerService.this.getPrintJobInfo(printJobId, appId);
- } finally {
- callback.onGetPrintJobInfoResult(printJob, sequence);
- }
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public void createPrintJob(PrintJobInfo printJob, IPrintClient client,
- IPrintDocumentAdapter printAdapter) throws RemoteException {
- PrintSpoolerService.this.createPrintJob(printJob);
-
- Intent intent = new Intent(printJob.getId().flattenToString());
- intent.setClass(PrintSpoolerService.this, PrintJobConfigActivity.class);
- intent.putExtra(PrintJobConfigActivity.EXTRA_PRINT_DOCUMENT_ADAPTER,
- printAdapter.asBinder());
- intent.putExtra(PrintJobConfigActivity.EXTRA_PRINT_JOB, printJob);
-
- IntentSender sender = PendingIntent.getActivity(
- PrintSpoolerService.this, 0, intent, PendingIntent.FLAG_ONE_SHOT
- | PendingIntent.FLAG_CANCEL_CURRENT).getIntentSender();
-
- Message message = mHandlerCaller.obtainMessageO(
- HandlerCallerCallback.MSG_ON_PRINT_JOB_STATE_CHANGED,
- printJob);
- mHandlerCaller.executeOrSendMessage(message);
-
- message = mHandlerCaller.obtainMessageOO(
- HandlerCallerCallback.MSG_START_PRINT_JOB_CONFIG_ACTIVITY,
- client, sender);
- mHandlerCaller.executeOrSendMessage(message);
-
- printJob.setCreationTime(System.currentTimeMillis());
- }
-
- @Override
- public void setPrintJobState(PrintJobId printJobId, int state, String error,
- IPrintSpoolerCallbacks callback, int sequece) throws RemoteException {
- boolean success = false;
- try {
- success = PrintSpoolerService.this.setPrintJobState(
- printJobId, state, error);
- } finally {
- callback.onSetPrintJobStateResult(success, sequece);
- }
- }
-
- @Override
- public void setPrintJobTag(PrintJobId printJobId, String tag,
- IPrintSpoolerCallbacks callback, int sequece) throws RemoteException {
- boolean success = false;
- try {
- success = PrintSpoolerService.this.setPrintJobTag(printJobId, tag);
- } finally {
- callback.onSetPrintJobTagResult(success, sequece);
- }
- }
-
- @Override
- public void writePrintJobData(ParcelFileDescriptor fd, PrintJobId printJobId) {
- PrintSpoolerService.this.writePrintJobData(fd, printJobId);
- }
-
- @Override
- public void setClient(IPrintSpoolerClient client) {
- Message message = mHandlerCaller.obtainMessageO(
- HandlerCallerCallback.MSG_SET_CLIENT, client);
- mHandlerCaller.executeOrSendMessage(message);
- }
-
- @Override
- public void removeObsoletePrintJobs() {
- PrintSpoolerService.this.removeObsoletePrintJobs();
- }
-
- @Override
- protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
- PrintSpoolerService.this.dump(fd, writer, args);
- }
-
- @Override
- public void setPrintJobCancelling(PrintJobId printJobId, boolean cancelling) {
- PrintSpoolerService.this.setPrintJobCancelling(printJobId, cancelling);
- }
- };
+ return new PrintSpooler();
}
@Override
@@ -286,12 +178,11 @@
private final class HandlerCallerCallback implements HandlerCaller.Callback {
public static final int MSG_SET_CLIENT = 1;
- public static final int MSG_START_PRINT_JOB_CONFIG_ACTIVITY = 2;
- public static final int MSG_ON_PRINT_JOB_QUEUED = 3;
- public static final int MSG_ON_ALL_PRINT_JOBS_FOR_SERIVICE_HANDLED = 4;
- public static final int MSG_ON_ALL_PRINT_JOBS_HANDLED = 5;
- public static final int MSG_CHECK_ALL_PRINTJOBS_HANDLED = 6;
- public static final int MSG_ON_PRINT_JOB_STATE_CHANGED = 7;
+ public static final int MSG_ON_PRINT_JOB_QUEUED = 2;
+ public static final int MSG_ON_ALL_PRINT_JOBS_FOR_SERIVICE_HANDLED = 3;
+ public static final int MSG_ON_ALL_PRINT_JOBS_HANDLED = 4;
+ public static final int MSG_CHECK_ALL_PRINTJOBS_HANDLED = 5;
+ public static final int MSG_ON_PRINT_JOB_STATE_CHANGED = 6;
@Override
public void executeMessage(Message message) {
@@ -308,18 +199,6 @@
}
} break;
- case MSG_START_PRINT_JOB_CONFIG_ACTIVITY: {
- SomeArgs args = (SomeArgs) message.obj;
- IPrintClient client = (IPrintClient) args.arg1;
- IntentSender sender = (IntentSender) args.arg2;
- args.recycle();
- try {
- client.startPrintJobConfigActivity(sender);
- } catch (RemoteException re) {
- Slog.i(LOG_TAG, "Error starting print job config activity!", re);
- }
- } break;
-
case MSG_ON_PRINT_JOB_QUEUED: {
PrintJobInfo printJob = (PrintJobInfo) message.obj;
if (mClient != null) {
@@ -426,6 +305,11 @@
synchronized (mLock) {
addPrintJobLocked(printJob);
setPrintJobState(printJob.getId(), PrintJobInfo.STATE_CREATED, null);
+
+ Message message = mHandlerCaller.obtainMessageO(
+ HandlerCallerCallback.MSG_ON_PRINT_JOB_STATE_CHANGED,
+ printJob);
+ mHandlerCaller.executeOrSendMessage(message);
}
}
@@ -1277,4 +1161,89 @@
return true;
}
}
+
+ final class PrintSpooler extends IPrintSpooler.Stub {
+ @Override
+ public void getPrintJobInfos(IPrintSpoolerCallbacks callback,
+ ComponentName componentName, int state, int appId, int sequence)
+ throws RemoteException {
+ List<PrintJobInfo> printJobs = null;
+ try {
+ printJobs = PrintSpoolerService.this.getPrintJobInfos(
+ componentName, state, appId);
+ } finally {
+ callback.onGetPrintJobInfosResult(printJobs, sequence);
+ }
+ }
+
+ @Override
+ public void getPrintJobInfo(PrintJobId printJobId, IPrintSpoolerCallbacks callback,
+ int appId, int sequence) throws RemoteException {
+ PrintJobInfo printJob = null;
+ try {
+ printJob = PrintSpoolerService.this.getPrintJobInfo(printJobId, appId);
+ } finally {
+ callback.onGetPrintJobInfoResult(printJob, sequence);
+ }
+ }
+
+ @Override
+ public void createPrintJob(PrintJobInfo printJob) {
+ PrintSpoolerService.this.createPrintJob(printJob);
+ }
+
+ @Override
+ public void setPrintJobState(PrintJobId printJobId, int state, String error,
+ IPrintSpoolerCallbacks callback, int sequece) throws RemoteException {
+ boolean success = false;
+ try {
+ success = PrintSpoolerService.this.setPrintJobState(
+ printJobId, state, error);
+ } finally {
+ callback.onSetPrintJobStateResult(success, sequece);
+ }
+ }
+
+ @Override
+ public void setPrintJobTag(PrintJobId printJobId, String tag,
+ IPrintSpoolerCallbacks callback, int sequece) throws RemoteException {
+ boolean success = false;
+ try {
+ success = PrintSpoolerService.this.setPrintJobTag(printJobId, tag);
+ } finally {
+ callback.onSetPrintJobTagResult(success, sequece);
+ }
+ }
+
+ @Override
+ public void writePrintJobData(ParcelFileDescriptor fd, PrintJobId printJobId) {
+ PrintSpoolerService.this.writePrintJobData(fd, printJobId);
+ }
+
+ @Override
+ public void setClient(IPrintSpoolerClient client) {
+ Message message = mHandlerCaller.obtainMessageO(
+ HandlerCallerCallback.MSG_SET_CLIENT, client);
+ mHandlerCaller.executeOrSendMessage(message);
+ }
+
+ @Override
+ public void removeObsoletePrintJobs() {
+ PrintSpoolerService.this.removeObsoletePrintJobs();
+ }
+
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
+ PrintSpoolerService.this.dump(fd, writer, args);
+ }
+
+ @Override
+ public void setPrintJobCancelling(PrintJobId printJobId, boolean cancelling) {
+ PrintSpoolerService.this.setPrintJobCancelling(printJobId, cancelling);
+ }
+
+ public PrintSpoolerService getService() {
+ return PrintSpoolerService.this;
+ }
+ }
}
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
index 9befc34..d43d1dc 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
index 2e24f6f..61d7511 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
index a7f0017..192d3f7 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
index ad34d49..1e5f15f 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 9ccf7c3..39d73c3 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -147,7 +147,7 @@
<string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"已删除<xliff:g id="APP">%s</xliff:g>"</string>
<string name="accessibility_notification_dismissed" msgid="854211387186306927">"已关闭通知。"</string>
<string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知栏。"</string>
- <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快速设置。"</string>
+ <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快捷设置。"</string>
<string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"最近使用的应用。"</string>
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"用户:<xliff:g id="USER">%s</xliff:g>。"</string>
<string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>,<xliff:g id="NETWORK">%2$s</xliff:g>"</string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 3ddcb1b..0e52605 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -343,7 +343,7 @@
public void start() {
mDisplay = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay();
- mDisplay.getSize(mCurrentDisplaySize);
+ updateDisplaySize();
super.start(); // calls createAndAddWindows()
@@ -2304,6 +2304,7 @@
// called by makeStatusbar and also by PhoneStatusBarView
void updateDisplaySize() {
mDisplay.getMetrics(mDisplayMetrics);
+ mDisplay.getSize(mCurrentDisplaySize);
if (DEBUG_GESTURES) {
mGestureRec.tag("display",
String.format("%dx%d", mDisplayMetrics.widthPixels, mDisplayMetrics.heightPixels));
@@ -2475,7 +2476,7 @@
if (DEBUG) {
Log.v(TAG, "configuration changed: " + mContext.getResources().getConfiguration());
}
- mDisplay.getSize(mCurrentDisplaySize);
+ updateDisplaySize(); // populates mDisplayMetrics
updateResources();
repositionNavigationBar();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index 6747d50..e6823ac 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -504,9 +504,11 @@
}
void refreshRssiTile() {
- // We reinflate the original view due to potential styling changes that may have
- // taken place due to a configuration change.
- mRSSITile.reinflateContent(LayoutInflater.from(mContext));
+ if (mRSSITile != null) {
+ // We reinflate the original view due to potential styling changes that may have
+ // taken place due to a configuration change.
+ mRSSITile.reinflateContent(LayoutInflater.from(mContext));
+ }
}
// Bluetooth
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 225bb94..448925b 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -2737,7 +2737,7 @@
- mNavigationBarHeightForRotation[displayRotation];
mTmpNavigationFrame.set(0, top, displayWidth, displayHeight - overscanBottom);
mStableBottom = mStableFullscreenBottom = mTmpNavigationFrame.top;
- if (transientNavBarShowing || navTranslucent) {
+ if (transientNavBarShowing) {
mNavigationBarController.setBarShowingLw(true);
} else if (navVisible) {
mNavigationBarController.setBarShowingLw(true);
@@ -2761,7 +2761,7 @@
- mNavigationBarWidthForRotation[displayRotation];
mTmpNavigationFrame.set(left, 0, displayWidth - overscanRight, displayHeight);
mStableRight = mStableFullscreenRight = mTmpNavigationFrame.left;
- if (transientNavBarShowing || navTranslucent) {
+ if (transientNavBarShowing) {
mNavigationBarController.setBarShowingLw(true);
} else if (navVisible) {
mNavigationBarController.setBarShowingLw(true);
@@ -3074,8 +3074,9 @@
+ mOverscanScreenHeight;
} else if (canHideNavigationBar()
&& (sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
- && attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
- && attrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW) {
+ && (attrs.type == WindowManager.LayoutParams.TYPE_KEYGUARD || (
+ attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
+ && attrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW))) {
// Asking for layout as if the nav bar is hidden, lets the
// application extend into the unrestricted overscan screen area. We
// only do this for application windows to ensure no window that
@@ -3518,7 +3519,9 @@
| FINISH_LAYOUT_REDO_CONFIG
| FINISH_LAYOUT_REDO_WALLPAPER;
}
- mKeyguardDelegate.setHidden(true);
+ if (!mShowingDream) {
+ mKeyguardDelegate.setHidden(true);
+ }
} else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) {
// This is the case of keyguard isSecure() and not mHideLockScreen.
if (mDismissKeyguard == DISMISS_KEYGUARD_START) {
@@ -3559,9 +3562,8 @@
}
public boolean allowAppAnimationsLw() {
- if (mKeyguard != null && mKeyguard.isVisibleLw() && !mKeyguard.isAnimatingLw()) {
- // If keyguard is currently visible, no reason to animate
- // behind it.
+ if (mKeyguard != null && mKeyguard.isVisibleLw() || mShowingDream) {
+ // If keyguard or dreams is currently visible, no reason to animate behind it.
return false;
}
return true;
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 5695ee5..70418e8 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -353,6 +353,11 @@
*/
private static final int EVENT_SAMPLE_INTERVAL_ELAPSED = 15;
+ /**
+ * PAC manager has received new port.
+ */
+ private static final int EVENT_PROXY_HAS_CHANGED = 16;
+
/** Handler used for internal events. */
private InternalHandler mHandler;
/** Handler used for incoming {@link NetworkStateTracker} events. */
@@ -679,7 +684,7 @@
},
new IntentFilter(filter));
- mPacManager = new PacManager(mContext);
+ mPacManager = new PacManager(mContext, mHandler, EVENT_PROXY_HAS_CHANGED);
filter = new IntentFilter();
filter.addAction(CONNECTED_TO_PROVISIONING_NETWORK_ACTION);
@@ -3124,6 +3129,10 @@
handleNetworkSamplingTimeout();
break;
}
+ case EVENT_PROXY_HAS_CHANGED: {
+ handleApplyDefaultProxy((ProxyProperties)msg.obj);
+ break;
+ }
}
}
}
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index aae4cb8..456a0a7 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -6640,6 +6640,10 @@
return list;
}
+ TaskRecord getMostRecentTask() {
+ return mRecentTasks.get(0);
+ }
+
@Override
public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
int flags, int userId) {
@@ -14267,6 +14271,8 @@
}
}
+ boolean mayBeTop = false;
+
for (int is = app.services.size()-1;
is >= 0 && (adj > ProcessList.FOREGROUND_APP_ADJ
|| schedGroup == Process.THREAD_GROUP_BG_NONINTERACTIVE
@@ -14427,18 +14433,27 @@
if (client.curSchedGroup == Process.THREAD_GROUP_DEFAULT) {
schedGroup = Process.THREAD_GROUP_DEFAULT;
}
- if (clientProcState <=
- ActivityManager.PROCESS_STATE_PERSISTENT_UI &&
- clientProcState >=
- ActivityManager.PROCESS_STATE_PERSISTENT) {
- // Persistent processes don't allow us to become top.
- // However the top process DOES allow us to become top,
- // because in that case we are running because the current
- // top process wants us, so we should be counted as part
- // of the top set and not just running for some random
- // unknown reason in the background.
- clientProcState =
- ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+ if (clientProcState <= ActivityManager.PROCESS_STATE_TOP) {
+ if (clientProcState == ActivityManager.PROCESS_STATE_TOP) {
+ // Special handling of clients who are in the top state.
+ // We *may* want to consider this process to be in the
+ // top state as well, but only if there is not another
+ // reason for it to be running. Being on the top is a
+ // special state, meaning you are specifically running
+ // for the current top app. If the process is already
+ // running in the background for some other reason, it
+ // is more important to continue considering it to be
+ // in the background state.
+ mayBeTop = true;
+ clientProcState = ActivityManager.PROCESS_STATE_CACHED_EMPTY;
+ } else {
+ // Special handling for above-top states (persistent
+ // processes). These should not bring the current process
+ // into the top state, since they are not on top. Instead
+ // give them the best state after that.
+ clientProcState =
+ ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+ }
}
} else {
if (clientProcState <
@@ -14526,18 +14541,27 @@
app.adjSourceOom = clientAdj;
app.adjTarget = cpr.name;
}
- if (clientProcState <=
- ActivityManager.PROCESS_STATE_PERSISTENT_UI &&
- clientProcState >=
- ActivityManager.PROCESS_STATE_PERSISTENT) {
- // Persistent processes don't allow us to become top.
- // However the top process DOES allow us to become top,
- // because in that case we are running because the current
- // top process wants us, so we should be counted as part
- // of the top set and not just running for some random
- // unknown reason in the background.
- clientProcState =
- ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+ if (clientProcState <= ActivityManager.PROCESS_STATE_TOP) {
+ if (clientProcState == ActivityManager.PROCESS_STATE_TOP) {
+ // Special handling of clients who are in the top state.
+ // We *may* want to consider this process to be in the
+ // top state as well, but only if there is not another
+ // reason for it to be running. Being on the top is a
+ // special state, meaning you are specifically running
+ // for the current top app. If the process is already
+ // running in the background for some other reason, it
+ // is more important to continue considering it to be
+ // in the background state.
+ mayBeTop = true;
+ clientProcState = ActivityManager.PROCESS_STATE_CACHED_EMPTY;
+ } else {
+ // Special handling for above-top states (persistent
+ // processes). These should not bring the current process
+ // into the top state, since they are not on top. Instead
+ // give them the best state after that.
+ clientProcState =
+ ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+ }
}
if (procState > clientProcState) {
procState = clientProcState;
@@ -14564,6 +14588,28 @@
}
}
+ if (mayBeTop && procState > ActivityManager.PROCESS_STATE_TOP) {
+ // A client of one of our services or providers is in the top state. We
+ // *may* want to be in the top state, but not if we are already running in
+ // the background for some other reason. For the decision here, we are going
+ // to pick out a few specific states that we want to remain in when a client
+ // is top (states that tend to be longer-term) and otherwise allow it to go
+ // to the top state.
+ switch (procState) {
+ case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND:
+ case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND:
+ case ActivityManager.PROCESS_STATE_SERVICE:
+ // These all are longer-term states, so pull them up to the top
+ // of the background states, but not all the way to the top state.
+ procState = ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND;
+ break;
+ default:
+ // Otherwise, top is a better choice, so take it.
+ procState = ActivityManager.PROCESS_STATE_TOP;
+ break;
+ }
+ }
+
if (adj == ProcessList.SERVICE_ADJ) {
if (doingAll) {
app.serviceb = mNewNumAServiceProcs > (mNumServiceProcs/3);
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index fc83f05..066989b 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -674,8 +674,8 @@
}
TaskRecord tr = who.task;
- if (tr.intent != null && (tr.intent.getFlags()
- &Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) != 0) {
+ if (mService.getMostRecentTask() != tr && tr.intent != null &&
+ (tr.intent.getFlags() & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) != 0) {
// If this task is being excluded from recents, we don't want to take
// the expense of capturing a thumbnail, since we will never show it.
return null;
diff --git a/services/java/com/android/server/am/ProcessStatsService.java b/services/java/com/android/server/am/ProcessStatsService.java
index a6375e1..50a7b5c 100644
--- a/services/java/com/android/server/am/ProcessStatsService.java
+++ b/services/java/com/android/server/am/ProcessStatsService.java
@@ -473,11 +473,11 @@
current.setDataPosition(0);
ProcessStats stats = ProcessStats.CREATOR.createFromParcel(current);
current.recycle();
- int i = 0;
- while (i < files.size() && (stats.mTimePeriodEndRealtime
+ int i = files.size()-1;
+ while (i >= 0 && (stats.mTimePeriodEndRealtime
- stats.mTimePeriodStartRealtime) < minTime) {
AtomicFile file = new AtomicFile(new File(files.get(i)));
- i++;
+ i--;
ProcessStats moreStats = new ProcessStats(false);
readLocked(moreStats, file);
if (moreStats.mReadError == null) {
@@ -490,7 +490,7 @@
- moreStats.mTimePeriodStartRealtime, sb);
Slog.i(TAG, sb.toString());
} else {
- Slog.w(TAG, "Failure reading " + files.get(i-1) + "; "
+ Slog.w(TAG, "Failure reading " + files.get(i+1) + "; "
+ moreStats.mReadError);
continue;
}
diff --git a/services/java/com/android/server/connectivity/PacManager.java b/services/java/com/android/server/connectivity/PacManager.java
index 1cb2fe3..837fb05 100644
--- a/services/java/com/android/server/connectivity/PacManager.java
+++ b/services/java/com/android/server/connectivity/PacManager.java
@@ -27,6 +27,7 @@
import android.net.Proxy;
import android.net.ProxyProperties;
import android.os.Binder;
+import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -89,6 +90,9 @@
private boolean mHasSentBroadcast;
private boolean mHasDownloaded;
+ private Handler mConnectivityHandler;
+ private int mProxyMessage;
+
/**
* Used for locking when setting mProxyService and all references to mPacUrl or mCurrentPac.
*/
@@ -128,7 +132,7 @@
}
}
- public PacManager(Context context) {
+ public PacManager(Context context, Handler handler, int proxyMessage) {
mContext = context;
mLastPort = -1;
@@ -136,6 +140,8 @@
context, 0, new Intent(ACTION_PAC_REFRESH), 0);
context.registerReceiver(new PacRefreshIntentReceiver(),
new IntentFilter(ACTION_PAC_REFRESH));
+ mConnectivityHandler = handler;
+ mProxyMessage = proxyMessage;
}
private AlarmManager getAlarmManager() {
@@ -156,6 +162,10 @@
*/
public synchronized boolean setCurrentProxyScriptUrl(ProxyProperties proxy) {
if (!TextUtils.isEmpty(proxy.getPacFileUrl())) {
+ if (proxy.getPacFileUrl().equals(mPacUrl)) {
+ // Allow to send broadcast, nothing to do.
+ return false;
+ }
synchronized (mProxyLock) {
mPacUrl = proxy.getPacFileUrl();
}
@@ -356,16 +366,7 @@
}
private void sendPacBroadcast(ProxyProperties proxy) {
- Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
- intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
- Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
- intent.putExtra(Proxy.EXTRA_PROXY_INFO, proxy);
- final long ident = Binder.clearCallingIdentity();
- try {
- mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
+ mConnectivityHandler.sendMessage(mConnectivityHandler.obtainMessage(mProxyMessage, proxy));
}
private synchronized void sendProxyIfNeeded() {
diff --git a/services/java/com/android/server/print/PrintManagerService.java b/services/java/com/android/server/print/PrintManagerService.java
index b8e1b04..7538caf 100644
--- a/services/java/com/android/server/print/PrintManagerService.java
+++ b/services/java/com/android/server/print/PrintManagerService.java
@@ -31,10 +31,10 @@
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Binder;
+import android.os.Bundle;
import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
-import android.print.IPrintClient;
import android.print.IPrintDocumentAdapter;
import android.print.IPrintJobStateChangeListener;
import android.print.IPrintManager;
@@ -45,6 +45,7 @@
import android.print.PrinterId;
import android.printservice.PrintServiceInfo;
import android.provider.Settings;
+import android.text.TextUtils;
import android.util.SparseArray;
import com.android.internal.R;
@@ -96,19 +97,19 @@
}
@Override
- public PrintJobInfo print(String printJobName, final IPrintClient client,
- final IPrintDocumentAdapter documentAdapter, PrintAttributes attributes,
- int appId, int userId) {
+ public Bundle print(String printJobName, IPrintDocumentAdapter adapter,
+ PrintAttributes attributes, String packageName, int appId, int userId) {
final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ String resolvedPackageName = resolveCallingPackageNameEnforcingSecurity(packageName);
final UserState userState;
synchronized (mLock) {
userState = getOrCreateUserStateLocked(resolvedUserId);
}
final long identity = Binder.clearCallingIdentity();
try {
- return userState.print(printJobName, client, documentAdapter,
- attributes, resolvedAppId);
+ return userState.print(printJobName, adapter, attributes,
+ resolvedPackageName, resolvedAppId);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -605,6 +606,21 @@
+ "UserHandle.USER_CURRENT or UserHandle.USER_CURRENT_OR_SELF.");
}
+ private String resolveCallingPackageNameEnforcingSecurity(String packageName) {
+ if (TextUtils.isEmpty(packageName)) {
+ return null;
+ }
+ String[] packages = mContext.getPackageManager().getPackagesForUid(
+ Binder.getCallingUid());
+ final int packageCount = packages.length;
+ for (int i = 0; i < packageCount; i++) {
+ if (packageName.equals(packages[i])) {
+ return packageName;
+ }
+ }
+ return null;
+ }
+
private void showEnableInstalledPrintServiceNotification(ComponentName component,
String label) {
Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
diff --git a/services/java/com/android/server/print/RemotePrintSpooler.java b/services/java/com/android/server/print/RemotePrintSpooler.java
index 4866f57..ffe9806 100644
--- a/services/java/com/android/server/print/RemotePrintSpooler.java
+++ b/services/java/com/android/server/print/RemotePrintSpooler.java
@@ -26,8 +26,6 @@
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserHandle;
-import android.print.IPrintClient;
-import android.print.IPrintDocumentAdapter;
import android.print.IPrintSpooler;
import android.print.IPrintSpoolerCallbacks;
import android.print.IPrintSpoolerClient;
@@ -130,15 +128,14 @@
return null;
}
- public final void createPrintJob(PrintJobInfo printJob, IPrintClient client,
- IPrintDocumentAdapter documentAdapter) {
+ public final void createPrintJob(PrintJobInfo printJob) {
throwIfCalledOnMainThread();
synchronized (mLock) {
throwIfDestroyedLocked();
mCanUnbind = false;
}
try {
- getRemoteInstanceLazy().createPrintJob(printJob, client, documentAdapter);
+ getRemoteInstanceLazy().createPrintJob(printJob);
} catch (RemoteException re) {
Slog.e(LOG_TAG, "Error creating print job.", re);
} catch (TimeoutException te) {
diff --git a/services/java/com/android/server/print/UserState.java b/services/java/com/android/server/print/UserState.java
index b6c7853..1b373ed 100644
--- a/services/java/com/android/server/print/UserState.java
+++ b/services/java/com/android/server/print/UserState.java
@@ -16,16 +16,20 @@
package com.android.server.print;
+import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.IntentSender;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Binder;
+import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.IBinder.DeathRecipient;
@@ -33,7 +37,6 @@
import android.os.Message;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
-import android.print.IPrintClient;
import android.print.IPrintDocumentAdapter;
import android.print.IPrintJobStateChangeListener;
import android.print.IPrinterDiscoveryObserver;
@@ -44,6 +47,7 @@
import android.print.PrinterId;
import android.print.PrinterInfo;
import android.printservice.PrintServiceInfo;
+import android.provider.DocumentsContract;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.TextUtils.SimpleStringSplitter;
@@ -158,9 +162,9 @@
mSpooler.removeObsoletePrintJobs();
}
- public PrintJobInfo print(String printJobName, final IPrintClient client,
- final IPrintDocumentAdapter documentAdapter, PrintAttributes attributes,
- int appId) {
+ @SuppressWarnings("deprecation")
+ public Bundle print(String printJobName, IPrintDocumentAdapter adapter,
+ PrintAttributes attributes, String packageName, int appId) {
// Create print job place holder.
final PrintJobInfo printJob = new PrintJobInfo();
printJob.setId(new PrintJobId());
@@ -169,9 +173,10 @@
printJob.setAttributes(attributes);
printJob.setState(PrintJobInfo.STATE_CREATED);
printJob.setCopies(1);
+ printJob.setCreationTime(System.currentTimeMillis());
// Track this job so we can forget it when the creator dies.
- if (!mPrintJobForAppCache.onPrintJobCreated(client.asBinder(), appId,
+ if (!mPrintJobForAppCache.onPrintJobCreated(adapter.asBinder(), appId,
printJob)) {
// Not adding a print job means the client is dead - done.
return null;
@@ -181,12 +186,31 @@
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
- mSpooler.createPrintJob(printJob, client, documentAdapter);
+ mSpooler.createPrintJob(printJob);
return null;
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null);
- return printJob;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Intent intent = new Intent(PrintManager.ACTION_PRINT_DIALOG);
+ intent.setData(Uri.fromParts("printjob", printJob.getId().flattenToString(), null));
+ intent.putExtra(PrintManager.EXTRA_PRINT_DOCUMENT_ADAPTER, adapter.asBinder());
+ intent.putExtra(PrintManager.EXTRA_PRINT_JOB, printJob);
+ intent.putExtra(DocumentsContract.EXTRA_PACKAGE_NAME, packageName);
+
+ IntentSender intentSender = PendingIntent.getActivity(
+ mContext, 0, intent, PendingIntent.FLAG_ONE_SHOT
+ | PendingIntent.FLAG_CANCEL_CURRENT).getIntentSender();
+
+ Bundle result = new Bundle();
+ result.putParcelable(PrintManager.EXTRA_PRINT_JOB, printJob);
+ result.putParcelable(PrintManager.EXTRA_PRINT_DIALOG_INTENT, intentSender);
+
+ return result;
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
public List<PrintJobInfo> getPrintJobInfos(int appId) {
diff --git a/services/java/com/android/server/wm/AppTransition.java b/services/java/com/android/server/wm/AppTransition.java
index cd3daaa..756e06a 100644
--- a/services/java/com/android/server/wm/AppTransition.java
+++ b/services/java/com/android/server/wm/AppTransition.java
@@ -722,7 +722,7 @@
@Override
public void dump(PrintWriter pw) {
pw.print(" " + this);
- pw.print(" mAppTransitionState="); pw.println(appStateToString());
+ pw.print(" mAppTransitionState="); pw.println(appStateToString());
if (mNextAppTransitionType != NEXT_TRANSIT_TYPE_NONE) {
pw.print(" mNextAppTransitionType="); pw.println(transitTypeToString());
}
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index aa8851c..8216769 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -8502,6 +8502,8 @@
// example, when this transition is being done behind
// the lock screen.
if (!mPolicy.allowAppAnimationsLw()) {
+ if (DEBUG_APP_TRANSITIONS) Slog.v(TAG,
+ "Animations disallowed by keyguard or dream.");
animLp = null;
}
@@ -8544,8 +8546,7 @@
NN = mClosingApps.size();
for (i=0; i<NN; i++) {
AppWindowToken wtoken = mClosingApps.get(i);
- if (DEBUG_APP_TRANSITIONS) Slog.v(TAG,
- "Now closing app " + wtoken);
+ if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "Now closing app " + wtoken);
wtoken.mAppAnimator.clearThumbnail();
wtoken.inPendingTransaction = false;
wtoken.mAppAnimator.animation = null;
@@ -10394,7 +10395,7 @@
}
pw.println();
if (dumpAll) {
- pw.print(" mSystemDecorLayer="); pw.print(mSystemDecorLayer);
+ pw.print(" mSystemDecorLayer="); pw.print(mSystemDecorLayer);
pw.print(" mScreenRect="); pw.println(mScreenRect.toShortString());
if (mLastStatusBarVisibility != 0) {
pw.print(" mLastStatusBarVisibility=0x");
diff --git a/telephony/java/com/android/internal/telephony/ISms.aidl b/telephony/java/com/android/internal/telephony/ISms.aidl
index 647f014..3e8db06 100644
--- a/telephony/java/com/android/internal/telephony/ISms.aidl
+++ b/telephony/java/com/android/internal/telephony/ISms.aidl
@@ -215,4 +215,26 @@
* Requires system permission.
*/
void setPremiumSmsPermission(String packageName, int permission);
+
+ /**
+ * SMS over IMS is supported if IMS is registered and SMS is supported
+ * on IMS.
+ *
+ * @return true if SMS over IMS is supported, false otherwise
+ *
+ * @see #getImsSmsFormat()
+ */
+ boolean isImsSmsSupported();
+
+ /**
+ * Gets SMS format supported on IMS. SMS over IMS format is
+ * either 3GPP or 3GPP2.
+ *
+ * @return android.telephony.SmsMessage.FORMAT_3GPP,
+ * android.telephony.SmsMessage.FORMAT_3GPP2
+ * or android.telephony.SmsMessage.FORMAT_UNKNOWN
+ *
+ * @see #isImsSmsSupported()
+ */
+ String getImsSmsFormat();
}
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 923fef2..821a11c 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -263,6 +263,8 @@
int RIL_REQUEST_GET_CELL_INFO_LIST = 109;
int RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE = 110;
int RIL_REQUEST_SET_INITIAL_ATTACH_APN = 111;
+ int RIL_REQUEST_IMS_REGISTRATION_STATE = 112;
+ int RIL_REQUEST_IMS_SEND_SMS = 113;
int RIL_UNSOL_RESPONSE_BASE = 1000;
int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000;
int RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED = 1001;
@@ -301,4 +303,5 @@
int RIL_UNSOL_RIL_CONNECTED = 1034;
int RIL_UNSOL_VOICE_RADIO_TECH_CHANGED = 1035;
int RIL_UNSOL_CELL_INFO_LIST = 1036;
+ int RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED = 1037;
}
diff --git a/telephony/java/com/android/internal/telephony/SmsConstants.java b/telephony/java/com/android/internal/telephony/SmsConstants.java
index 1ccdc3b..2449108 100644
--- a/telephony/java/com/android/internal/telephony/SmsConstants.java
+++ b/telephony/java/com/android/internal/telephony/SmsConstants.java
@@ -62,6 +62,12 @@
}
/**
+ * Indicates unknown format SMS message.
+ * @hide pending API council approval
+ */
+ public static final String FORMAT_UNKNOWN = "unknown";
+
+ /**
* Indicates a 3GPP format SMS message.
* @hide pending API council approval
*/