diff options
148 files changed, 2031 insertions, 575 deletions
diff --git a/api/current.xml b/api/current.xml index b3f03a6..3bcac93 100644 --- a/api/current.xml +++ b/api/current.xml @@ -215899,8 +215899,6 @@ deprecated="not deprecated" visibility="public" > -<parameter name="visibility" type="int"> -</parameter> </method> <method name="getTag" return="java.lang.Object" diff --git a/core/java/android/animation/LayoutTransition.java b/core/java/android/animation/LayoutTransition.java index e405df5..f13d940 100644 --- a/core/java/android/animation/LayoutTransition.java +++ b/core/java/android/animation/LayoutTransition.java @@ -34,15 +34,16 @@ import java.util.List; * custom animations, use the {@link LayoutTransition#setAnimator(int, Animator) * setAnimator()} method. * - * <p>One of the core concepts of these transition animations is that there are two core + * <p>One of the core concepts of these transition animations is that there are two types of * changes that cause the transition and four different animations that run because of * those changes. The changes that trigger the transition are items being added to a container * (referred to as an "appearing" transition) or removed from a container (also known as - * "disappearing"). The animations that run due to those events are one that animates + * "disappearing"). Setting the visibility of views (between GONE and VISIBLE) will trigger + * the same add/remove logic. The animations that run due to those events are one that animates * items being added, one that animates items being removed, and two that animate the other * items in the container that change due to the add/remove occurrence. Users of * the transition may want different animations for the changing items depending on whether - * they are changing due to anappearing or disappearing event, so there is one animation for + * they are changing due to an appearing or disappearing event, so there is one animation for * each of these variations of the changing event. Most of the API of this class is concerned * with setting up the basic properties of the animations used in these four situations, * or with setting up custom animations for any or all of the four.</p> @@ -62,6 +63,18 @@ import java.util.List; * values when the transition begins. Custom animations will be similarly populated with * the target and values being animated, assuming they use ObjectAnimator objects with * property names that are known on the target object.</p> + * + * <p>This class, and the associated XML flag for containers, animateLayoutChanges="true", + * provides a simple utility meant for automating changes in straightforward situations. + * Using LayoutTransition at multiple levels of a nested view hierarchy may not work due to the + * interrelationship of the various levels of layout. Also, a container that is being scrolled + * at the same time as items are being added or removed is probably not a good candidate for + * this utility, because the before/after locations calculated by LayoutTransition + * may not match the actual locations when the animations finish due to the container + * being scrolled as the animations are running. You can work around that + * particular issue by disabling the 'changing' animations by setting the CHANGE_APPEARING + * and CHANGE_DISAPPEARING animations to null, and setting the startDelay of the + * other animations appropriately.</p> */ public class LayoutTransition { diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index f35a438..255eb6c 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -49,6 +49,7 @@ import android.view.Window; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.view.inputmethod.CompletionInfo; +import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputBinding; @@ -56,7 +57,6 @@ import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputMethod; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; -import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.FrameLayout; import android.widget.LinearLayout; @@ -1024,7 +1024,7 @@ public class InputMethodService extends AbstractInputMethodService { * there is no hard keyboard or the keyboard is hidden. If you change what * this returns, you will need to call {@link #updateInputViewShown()} * yourself whenever the returned value may have changed to have it - * re-evalauted and applied. + * re-evaluated and applied. */ public boolean onEvaluateInputViewShown() { Configuration config = getResources().getConfiguration(); diff --git a/core/java/android/view/DisplayList.java b/core/java/android/view/DisplayList.java index 959fae4..4484d59 100644 --- a/core/java/android/view/DisplayList.java +++ b/core/java/android/view/DisplayList.java @@ -21,9 +21,11 @@ package android.view; * them later. Display lists are usually built by recording operations on a * {@link android.graphics.Canvas}. Replaying the operations from a display list * avoids executing views drawing code on every frame, and is thus much more - * efficient. + * efficient. + * + * @hide */ -abstract class DisplayList { +public abstract class DisplayList { /** * Starts recording the display list. All operations performed on the * returned canvas are recorded and stored in this display list. diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java index f6c5e0b..dce1a6c 100644 --- a/core/java/android/view/GLES20Canvas.java +++ b/core/java/android/view/GLES20Canvas.java @@ -220,6 +220,13 @@ class GLES20Canvas extends HardwareCanvas { private native void nAcquireContext(int renderer); @Override + public boolean callDrawGLFunction(int drawGLFunction) { + return nCallDrawGLFunction(mRenderer, drawGLFunction); + } + + private native boolean nCallDrawGLFunction(int renderer, int drawGLFunction); + + @Override public void releaseContext() { if (mContextLocked) { nReleaseContext(mRenderer); @@ -246,11 +253,11 @@ class GLES20Canvas extends HardwareCanvas { private static native void nDestroyDisplayList(int displayList); @Override - public void drawDisplayList(DisplayList displayList) { - nDrawDisplayList(mRenderer, ((GLES20DisplayList) displayList).mNativeDisplayList); + public boolean drawDisplayList(DisplayList displayList) { + return nDrawDisplayList(mRenderer, ((GLES20DisplayList) displayList).mNativeDisplayList); } - private native void nDrawDisplayList(int renderer, int displayList); + private native boolean nDrawDisplayList(int renderer, int displayList); /////////////////////////////////////////////////////////////////////////// // Hardware layer @@ -306,7 +313,7 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean clipRect(int left, int top, int right, int bottom) { - return nClipRect(mRenderer, left, top, right, bottom, Region.Op.INTERSECT.nativeInt); + return nClipRect(mRenderer, left, top, right, bottom, Region.Op.INTERSECT.nativeInt); } private native boolean nClipRect(int renderer, int left, int top, int right, int bottom, int op); diff --git a/core/java/android/view/GLES20DisplayList.java b/core/java/android/view/GLES20DisplayList.java index e813bc9..262eb81 100644 --- a/core/java/android/view/GLES20DisplayList.java +++ b/core/java/android/view/GLES20DisplayList.java @@ -16,6 +16,8 @@ package android.view; +import java.lang.ref.WeakReference; + /** * An implementation of display list for OpenGL ES 2.0. */ @@ -27,12 +29,24 @@ class GLES20DisplayList extends DisplayList { private boolean mValid = false; int mNativeDisplayList; + WeakReference<View> hostView; // The native display list will be destroyed when this object dies. // DO NOT overwrite this reference once it is set. @SuppressWarnings("unused") private DisplayListFinalizer mFinalizer; + public GLES20DisplayList(View view) { + hostView = new WeakReference<View>(view); + } + + public void invalidateView() { + View v = hostView.get(); + if (v != null) { + v.invalidate(); + } + } + @Override HardwareCanvas start() { if (mStarted) { diff --git a/core/java/android/view/HardwareCanvas.java b/core/java/android/view/HardwareCanvas.java index 2273238..a4d36b7 100644 --- a/core/java/android/view/HardwareCanvas.java +++ b/core/java/android/view/HardwareCanvas.java @@ -21,9 +21,11 @@ import android.graphics.Canvas; import android.graphics.Paint; /** - * Hardware accelerated canvas. + * Hardware accelerated canvas. + * + * @hide */ -abstract class HardwareCanvas extends Canvas { +public abstract class HardwareCanvas extends Canvas { @Override public boolean isHardwareAccelerated() { return true; @@ -49,7 +51,7 @@ abstract class HardwareCanvas extends Canvas { * * @param displayList The display list to replay. */ - abstract void drawDisplayList(DisplayList displayList); + abstract boolean drawDisplayList(DisplayList displayList); /** * Draws the specified layer onto this canvas. @@ -59,5 +61,18 @@ abstract class HardwareCanvas extends Canvas { * @param y The top coordinate of the layer * @param paint The paint used to draw the layer */ - abstract void drawHardwareLayer(HardwareLayer layer, float x, float y, Paint paint); + abstract void drawHardwareLayer(HardwareLayer layer, float x, float y, Paint paint); + + /** + * Calls the function specified with the drawGLFunction function pointer. This is + * functionality used by webkit for calling into their renderer from our display lists. + * This function may return true if an invalidation is needed after the call. + * + * @param drawGLFunction A native function pointer + * @return true if an invalidate is needed after the call, false otherwise + */ + public boolean callDrawGLFunction(int drawGLFunction) { + // Noop - this is done in the display list recorder subclass + return false; + } } diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java index addd1b3..c82184a 100644 --- a/core/java/android/view/HardwareRenderer.java +++ b/core/java/android/view/HardwareRenderer.java @@ -120,7 +120,7 @@ public abstract class HardwareRenderer { * * @return A new display list. */ - abstract DisplayList createDisplayList(); + abstract DisplayList createDisplayList(View v); /** * Creates a new hardware layer. @@ -506,19 +506,32 @@ public abstract class HardwareRenderer { if (checkCurrent()) { onPreDraw(); - Canvas canvas = mCanvas; + HardwareCanvas canvas = mCanvas; + attachInfo.mHardwareCanvas = canvas; int saveCount = canvas.save(); callbacks.onHardwarePreDraw(canvas); - + try { - view.draw(canvas); + view.mRecreateDisplayList = + (view.mPrivateFlags & View.INVALIDATED) == View.INVALIDATED; + view.mPrivateFlags &= ~View.INVALIDATED; + DisplayList displayList = view.getDisplayList(); + if (displayList != null) { + if (canvas.drawDisplayList(displayList)) { + view.invalidate(); + } + } else { + // Shouldn't reach here + view.draw(canvas); + } } finally { callbacks.onHardwarePostDraw(canvas); canvas.restoreToCount(saveCount); + view.mRecreateDisplayList = false; } - + onPostDraw(); - + if (ViewDebug.DEBUG_PROFILE_DRAWING) { EventLog.writeEvent(60000, SystemClock.elapsedRealtime() - startTime); } @@ -704,8 +717,8 @@ public abstract class HardwareRenderer { } @Override - DisplayList createDisplayList() { - return new GLES20DisplayList(); + DisplayList createDisplayList(View v) { + return new GLES20DisplayList(v); } @Override diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java index db2cd50..b95de64 100644 --- a/core/java/android/view/MotionEvent.java +++ b/core/java/android/view/MotionEvent.java @@ -1569,7 +1569,7 @@ public final class MotionEvent extends InputEvent implements Parcelable { + " device=" + mDeviceId + " source=0x" + Integer.toHexString(mSource) + (getPointerCount() > 1 ? - " pointerId2=" + getPointerId(1) + " x2=" + getX(2) + " y2=" + getY(2) : "") + " pointerId2=" + getPointerId(1) + " x2=" + getX(1) + " y2=" + getY(1) : "") + "}"; } diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 6d5fd2c..8af2549 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -1509,6 +1509,17 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility /*package*/ int mMeasuredHeight; /** + * Flag to indicate that this view was marked INVALIDATED, or had its display list + * invalidated, prior to the current drawing iteration. If true, the view must re-draw + * its display list. This flag, used only when hw accelerated, allows us to clear the + * flag while retaining this information until it's needed (at getDisplayList() time and + * in drawChild(), when we decide to draw a view's children's display lists into our own). + * + * {@hide} + */ + boolean mRecreateDisplayList = false; + + /** * The view's identifier. * {@hide} * @@ -1672,6 +1683,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility static final int ACTIVATED = 0x40000000; /** + * Indicates that this view was specifically invalidated, not just dirtied because some + * child view was invalidated. The flag is used to determine when we need to recreate + * a view's display list (as opposed to just returning a reference to its existing + * display list). + * + * @hide + */ + static final int INVALIDATED = 0x80000000; + + /** * Always allow a user to over-scroll this view, provided it is a * view that can scroll. * @@ -5295,6 +5316,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility if ((changed & VISIBILITY_MASK) != 0) { if (mParent instanceof ViewGroup) { ((ViewGroup)mParent).onChildVisibilityChanged(this, (flags & VISIBILITY_MASK)); + ((View) mParent).invalidate(); } dispatchVisibilityChanged(this, (flags & VISIBILITY_MASK)); } @@ -5306,6 +5328,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility if ((changed & DRAWING_CACHE_ENABLED) != 0) { destroyDrawingCache(); mPrivateFlags &= ~DRAWING_CACHE_VALID; + invalidateParentIfAccelerated(); } if ((changed & DRAWING_CACHE_QUALITY_MASK) != 0) { @@ -5666,6 +5689,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5699,6 +5723,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5732,6 +5757,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5767,6 +5793,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5802,6 +5829,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5843,6 +5871,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5883,6 +5912,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -5922,6 +5952,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mPrivateFlags &= ~ALPHA_SET; invalidate(false); } + invalidateParentIfAccelerated(); } /** @@ -6241,6 +6272,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -6274,6 +6306,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mMatrixDirty = true; mPrivateFlags |= DRAWN; // force another invalidation with the new orientation invalidate(false); + invalidateParentIfAccelerated(); } } @@ -6490,6 +6523,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility int oldY = mScrollY; mScrollX = x; mScrollY = y; + invalidateParentIfAccelerated(); onScrollChanged(mScrollX, mScrollY, oldX, oldY); if (!awakenScrollBars()) { invalidate(); @@ -6690,8 +6724,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility } if ((mPrivateFlags & (DRAWN | HAS_BOUNDS)) == (DRAWN | HAS_BOUNDS) || - (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) { + (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID || + (mPrivateFlags & INVALIDATED) != INVALIDATED) { mPrivateFlags &= ~DRAWING_CACHE_VALID; + mPrivateFlags |= INVALIDATED; final ViewParent p = mParent; final AttachInfo ai = mAttachInfo; if (p != null && ai != null && ai.mHardwareAccelerated) { @@ -6728,8 +6764,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility } if ((mPrivateFlags & (DRAWN | HAS_BOUNDS)) == (DRAWN | HAS_BOUNDS) || - (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) { + (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID || + (mPrivateFlags & INVALIDATED) != INVALIDATED) { mPrivateFlags &= ~DRAWING_CACHE_VALID; + mPrivateFlags |= INVALIDATED; final ViewParent p = mParent; final AttachInfo ai = mAttachInfo; if (p != null && ai != null && ai.mHardwareAccelerated) { @@ -6776,10 +6814,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility boolean opaque = isOpaque(); if ((mPrivateFlags & (DRAWN | HAS_BOUNDS)) == (DRAWN | HAS_BOUNDS) || (invalidateCache && (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) || - opaque != mLastIsOpaque) { + opaque != mLastIsOpaque || (mPrivateFlags & INVALIDATED) != INVALIDATED) { mLastIsOpaque = opaque; mPrivateFlags &= ~DRAWN; if (invalidateCache) { + mPrivateFlags |= INVALIDATED; mPrivateFlags &= ~DRAWING_CACHE_VALID; } final AttachInfo ai = mAttachInfo; @@ -6802,6 +6841,20 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility } /** + * Used to indicate that the parent of this view should be invalidated. This functionality + * is used to force the parent to rebuild its display list (when hardware-accelerated), + * which is necessary when various parent-managed properties of the view change, such as + * alpha, translationX/Y, scrollX/Y, scaleX/Y, and rotation/X/Y. + * + * @hide + */ + protected void invalidateParentIfAccelerated() { + if (isHardwareAccelerated() && mParent instanceof View) { + ((View) mParent).invalidate(); + } + } + + /** * Indicates whether this View is opaque. An opaque View guarantees that it will * draw all the pixels overlapping its bounds using a fully opaque color. * @@ -7630,6 +7683,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mHardwareLayer = null; } + if (mDisplayList != null) { + mDisplayList.invalidate(); + } + if (mAttachInfo != null) { mAttachInfo.mHandler.removeMessages(AttachInfo.INVALIDATE_MSG, this); mAttachInfo.mHandler.removeMessages(AttachInfo.INVALIDATE_RECT_MSG, this); @@ -7953,7 +8010,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility throw new IllegalArgumentException("Layer type can only be one of: LAYER_TYPE_NONE, " + "LAYER_TYPE_SOFTWARE or LAYER_TYPE_HARDWARE"); } - + if (layerType == mLayerType) { if (layerType != LAYER_TYPE_NONE && paint != mLayerPaint) { mLayerPaint = paint == null ? new Paint() : paint; @@ -8041,7 +8098,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mHardwareLayer.resize(width, height); } - final HardwareCanvas canvas = mHardwareLayer.start(currentCanvas); + final HardwareCanvas canvas = mHardwareLayer.start(mAttachInfo.mHardwareCanvas); try { canvas.setViewport(width, height); canvas.onPreDraw(); @@ -8064,7 +8121,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility canvas.restoreToCount(restoreCount); } finally { canvas.onPostDraw(); - mHardwareLayer.end(currentCanvas); + mHardwareLayer.end(mAttachInfo.mHardwareCanvas); } } @@ -8081,9 +8138,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * * <p>Enabling the drawing cache is similar to * {@link #setLayerType(int, android.graphics.Paint) setting a layer} when hardware - * acceleration is turned off. When hardware acceleration is turned on enabling the - * drawing cache has either no effect or the cache used at drawing time is not a bitmap. - * This API can however be used to manually generate a bitmap copy of this view.</p> + * acceleration is turned off. When hardware acceleration is turned on, enabling the + * drawing cache has no effect on rendering because the system uses a different mechanism + * for acceleration which ignores the flag. If you want to use a Bitmap for the view, even + * when hardware acceleration is enabled, see {@link #setLayerType(int, android.graphics.Paint)} + * for information on how to enable software and hardware layers.</p> + * + * <p>This API can be used to manually generate + * a bitmap copy of this view, by setting the flag to <code>true</code> and calling + * {@link #getDrawingCache()}.</p> * * @param enabled true to enable the drawing cache, false otherwise * @@ -8110,25 +8173,76 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility } /** + * Debugging utility which recursively outputs the dirty state of a view and its + * descendants. + * + * @hide + */ + public void outputDirtyFlags(String indent, boolean clear, int clearMask) { + Log.d("View", indent + this + " DIRTY(" + (mPrivateFlags & View.DIRTY_MASK) + + ") DRAWN(" + (mPrivateFlags & DRAWN) + ")" + " CACHE_VALID(" + + (mPrivateFlags & View.DRAWING_CACHE_VALID) + + ") INVALIDATED(" + (mPrivateFlags & INVALIDATED) + ")"); + if (clear) { + mPrivateFlags &= clearMask; + } + if (this instanceof ViewGroup) { + ViewGroup parent = (ViewGroup) this; + final int count = parent.getChildCount(); + for (int i = 0; i < count; i++) { + final View child = (View) parent.getChildAt(i); + child.outputDirtyFlags(indent + " ", clear, clearMask); + } + } + } + + /** + * This method is used by ViewGroup to cause its children to restore or recreate their + * display lists. It is called by getDisplayList() when the parent ViewGroup does not need + * to recreate its own display list, which would happen if it went through the normal + * draw/dispatchDraw mechanisms. + * + * @hide + */ + protected void dispatchGetDisplayList() {} + + /** * <p>Returns a display list that can be used to draw this view again * without executing its draw method.</p> * * @return A DisplayList ready to replay, or null if caching is not enabled. + * + * @hide */ - DisplayList getDisplayList() { - if ((mViewFlags & WILL_NOT_CACHE_DRAWING) == WILL_NOT_CACHE_DRAWING) { - return null; - } + public DisplayList getDisplayList() { if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) { return null; } - if ((mViewFlags & DRAWING_CACHE_ENABLED) == DRAWING_CACHE_ENABLED && - ((mPrivateFlags & DRAWING_CACHE_VALID) == 0 || - mDisplayList == null || !mDisplayList.isValid())) { + if (((mPrivateFlags & DRAWING_CACHE_VALID) == 0 || + mDisplayList == null || !mDisplayList.isValid() || + mRecreateDisplayList)) { + // Don't need to recreate the display list, just need to tell our + // children to restore/recreate theirs + if (mDisplayList != null && mDisplayList.isValid() && + !mRecreateDisplayList) { + mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID; + mPrivateFlags &= ~DIRTY_MASK; + dispatchGetDisplayList(); + + return mDisplayList; + } + + // If we got here, we're recreating it. Mark it as such to ensure that + // we copy in child display lists into ours in drawChild() + mRecreateDisplayList = true; if (mDisplayList == null) { - mDisplayList = mAttachInfo.mHardwareRenderer.createDisplayList(); + mDisplayList = mAttachInfo.mHardwareRenderer.createDisplayList(this); + // If we're creating a new display list, make sure our parent gets invalidated + // since they will need to recreate their display list to account for this + // new child display list. + invalidateParentIfAccelerated(); } final HardwareCanvas canvas = mDisplayList.start(); @@ -8141,6 +8255,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility final int restoreCount = canvas.save(); + computeScroll(); + canvas.translate(-mScrollX, -mScrollY); mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID; // Fast path for layouts with no backgrounds @@ -8229,9 +8345,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mUnscaledDrawingCache.recycle(); mUnscaledDrawingCache = null; } - if (mDisplayList != null) { - mDisplayList.invalidate(); - } } /** @@ -10480,6 +10593,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility animation.setStartTime(Animation.START_ON_FIRST_FRAME); setAnimation(animation); invalidate(); + invalidateParentIfAccelerated(); } /** @@ -10490,6 +10604,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility mCurrentAnimation.detach(); } mCurrentAnimation = null; + invalidateParentIfAccelerated(); } /** @@ -10660,7 +10775,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility /** * Returns the status bar visibility that this view has requested. */ - public int getSystemUiVisibility(int visibility) { + public int getSystemUiVisibility() { return mSystemUiVisibility; } @@ -11495,6 +11610,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility final Callbacks mRootCallbacks; + Canvas mHardwareCanvas; + /** * The top view of the hierarchy. */ diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java index d5c440c..c19a107 100644 --- a/core/java/android/view/ViewDebug.java +++ b/core/java/android/view/ViewDebug.java @@ -998,22 +998,27 @@ public class ViewDebug { new ViewOperation<Object>() { public Object[] pre() { final DisplayMetrics metrics = - view.getResources().getDisplayMetrics(); - final Bitmap bitmap = + (view != null && view.getResources() != null) ? + view.getResources().getDisplayMetrics() : null; + final Bitmap bitmap = metrics != null ? Bitmap.createBitmap(metrics.widthPixels, - metrics.heightPixels, Bitmap.Config.RGB_565); - final Canvas canvas = new Canvas(bitmap); + metrics.heightPixels, Bitmap.Config.RGB_565) : null; + final Canvas canvas = bitmap != null ? new Canvas(bitmap) : null; return new Object[] { bitmap, canvas }; } public void run(Object... data) { - view.draw((Canvas) data[1]); + if (data[1] != null) { + view.draw((Canvas) data[1]); + } } public void post(Object... data) { - ((Bitmap) data[0]).recycle(); + if (data[0] != null) { + ((Bitmap) data[0]).recycle(); + } } }) : 0; out.write(String.valueOf(durationMeasure)); diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index d6c8ad6..c73cbe6 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -2206,6 +2206,27 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } /** + * This method is used to cause children of this ViewGroup to restore or recreate their + * display lists. It is called by getDisplayList() when the parent ViewGroup does not need + * to recreate its own display list, which would happen if it went through the normal + * draw/dispatchDraw mechanisms. + * + * @hide + */ + @Override + protected void dispatchGetDisplayList() { + final int count = mChildrenCount; + final View[] children = mChildren; + for (int i = 0; i < count; i++) { + final View child = children[i]; + child.mRecreateDisplayList = (child.mPrivateFlags & INVALIDATED) == INVALIDATED; + child.mPrivateFlags &= ~INVALIDATED; + child.getDisplayList(); + child.mRecreateDisplayList = false; + } + } + + /** * Draw one child of this View Group. This method is responsible for getting * the canvas in the right state. This includes clipping, translating so * that the child's scrolled origin is at 0, 0, and applying any animation @@ -2247,7 +2268,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager caching = true; if (mAttachInfo != null) scalingRequired = mAttachInfo.mScalingRequired; } else { - caching = layerType != LAYER_TYPE_NONE; + caching = (layerType != LAYER_TYPE_NONE) || canvas.isHardwareAccelerated(); } if (a != null) { @@ -2329,6 +2350,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return more; } + if (canvas.isHardwareAccelerated()) { + // Clear INVALIDATED flag to allow invalidation to occur during rendering, but + // retain the flag's value temporarily in the mRecreateDisplayList flag + child.mRecreateDisplayList = (child.mPrivateFlags & INVALIDATED) == INVALIDATED; + child.mPrivateFlags &= ~INVALIDATED; + } + child.computeScroll(); final int sx = child.mScrollX; @@ -2347,7 +2375,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager if (layerType == LAYER_TYPE_SOFTWARE) { child.buildDrawingCache(true); cache = child.getDrawingCache(true); - } else { + } else if (layerType == LAYER_TYPE_NONE) { displayList = child.getDisplayList(); } } @@ -2357,7 +2385,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final boolean hasNoCache = cache == null || hasDisplayList; final int restoreTo = canvas.save(); - if (hasNoCache) { + if (cache == null && !hasDisplayList) { canvas.translate(cl - sx, ct - sy); } else { canvas.translate(cl, ct); @@ -2375,7 +2403,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager int transX = 0; int transY = 0; - if (hasNoCache) { + if (cache == null && !hasDisplayList) { transX = -sx; transY = -sy; } @@ -2435,10 +2463,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } if ((flags & FLAG_CLIP_CHILDREN) == FLAG_CLIP_CHILDREN) { - if (hasNoCache) { + if (cache == null && !hasDisplayList) { canvas.clipRect(sx, sy, sx + (cr - cl), sy + (cb - ct)); } else { - if (!scalingRequired) { + if (!scalingRequired || cache == null) { canvas.clipRect(0, 0, cr - cl, cb - ct); } else { canvas.clipRect(0, 0, cache.getWidth(), cache.getHeight()); @@ -2473,7 +2501,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } } else { child.mPrivateFlags &= ~DIRTY_MASK; - ((HardwareCanvas) canvas).drawDisplayList(displayList); + // Skip drawing the display list into ours if we were just refreshing + // it's content; we already have a reference to it in our display list + if (mRecreateDisplayList || mLayerType != LAYER_TYPE_NONE) { + ((HardwareCanvas) canvas).drawDisplayList(displayList); + } } } } else if (cache != null) { @@ -2503,6 +2535,15 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager finishAnimatingView(child, a); } + if (more && canvas.isHardwareAccelerated()) { + // invalidation is the trigger to recreate display lists, so if we're using + // display lists to render, force an invalidate to allow the animation to + // continue drawing another frame + invalidate(); + } + + child.mRecreateDisplayList = false; + return more; } @@ -2743,7 +2784,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // addViewInner() will call child.requestLayout() when setting the new LayoutParams // therefore, we call requestLayout() on ourselves before, so that the child's request // will be blocked at our level - child.mPrivateFlags &= ~DIRTY_MASK; requestLayout(); invalidate(); addViewInner(child, index, params, false); @@ -3425,10 +3465,20 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final boolean drawAnimation = (child.mPrivateFlags & DRAW_ANIMATION) == DRAW_ANIMATION; if (dirty == null) { + if (child.mLayerType != LAYER_TYPE_NONE) { + mPrivateFlags |= INVALIDATED; + mPrivateFlags &= ~DRAWING_CACHE_VALID; + } do { View view = null; if (parent instanceof View) { view = (View) parent; + if (view.mLayerType != LAYER_TYPE_NONE && + view.getParent() instanceof View) { + final View grandParent = (View) view.getParent(); + grandParent.mPrivateFlags |= INVALIDATED; + grandParent.mPrivateFlags &= ~DRAWING_CACHE_VALID; + } if ((view.mPrivateFlags & DIRTY_MASK) != 0) { // already marked dirty - we're done break; diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index d932141..ba671c0 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -597,7 +597,7 @@ public final class ViewRoot extends Handler implements ViewParent, dirty.inset(-1, -1); } } - if (!mDirty.isEmpty()) { + if (!mDirty.isEmpty() && !mDirty.contains(dirty)) { mAttachInfo.mIgnoreDirtyState = true; } mDirty.union(dirty); diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index d310237..7edfd7b 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -16,6 +16,15 @@ package android.view.inputmethod; +import com.android.internal.os.HandlerCaller; +import com.android.internal.view.IInputConnectionWrapper; +import com.android.internal.view.IInputContext; +import com.android.internal.view.IInputMethodCallback; +import com.android.internal.view.IInputMethodClient; +import com.android.internal.view.IInputMethodManager; +import com.android.internal.view.IInputMethodSession; +import com.android.internal.view.InputBindResult; + import android.content.Context; import android.graphics.Rect; import android.os.Bundle; @@ -27,23 +36,12 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; import android.util.Log; -import android.util.Pair; import android.util.PrintWriterPrinter; import android.util.Printer; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewRoot; -import android.view.inputmethod.InputMethodSubtype; - -import com.android.internal.os.HandlerCaller; -import com.android.internal.view.IInputConnectionWrapper; -import com.android.internal.view.IInputContext; -import com.android.internal.view.IInputMethodCallback; -import com.android.internal.view.IInputMethodClient; -import com.android.internal.view.IInputMethodManager; -import com.android.internal.view.IInputMethodSession; -import com.android.internal.view.InputBindResult; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -96,7 +94,7 @@ import java.util.concurrent.TimeUnit; * be aware of are:</p> * * <ul> - * <li> Properly set the {@link android.R.attr#inputType} if your editable + * <li> Properly set the {@link android.R.attr#inputType} in your editable * text views, so that the input method will have enough context to help the * user in entering text into them. * <li> Deal well with losing screen space when the input method is @@ -389,6 +387,7 @@ public final class InputMethodManager { super(mainLooper, conn); } + @Override public boolean isActive() { return mActive; } @@ -804,7 +803,7 @@ public final class InputMethodManager { public static final int HIDE_NOT_ALWAYS = 0x0002; /** - * Synonym for {@link #hideSoftInputFromWindow(IBinder, int, ResultReceiver) + * Synonym for {@link #hideSoftInputFromWindow(IBinder, int, ResultReceiver)} * without a result: request to hide the soft input window from the * context of the window that is currently accepting input. * diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 3102ee9..ca45e68 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -16,6 +16,7 @@ package android.webkit; +import android.view.HardwareCanvas; import com.android.internal.R; import android.annotation.Widget; @@ -353,7 +354,7 @@ public class WebView extends AbsoluteLayout private ZoomManager mZoomManager; - private Rect mGLRectViewport; + private Rect mGLRectViewport = new Rect(); /** * Transportation object for returning WebView across thread boundaries. @@ -497,9 +498,6 @@ public class WebView extends AbsoluteLayout // default is not set, the UI will continue handle them. private boolean mDeferTouchProcess; - // if true, multi-touch events will be passed to webkit directly before UI - private boolean mDeferMultitouch = false; - // Currently, multi-touch events are sent to WebKit first then back to // WebView while single-touch events are handled in WebView first. // So there is a chance that a single-touch move event is handled in WebView @@ -4079,20 +4077,8 @@ public class WebView extends AbsoluteLayout } if (canvas.isHardwareAccelerated()) { - try { - if (canvas.acquireContext()) { - Rect rect = new Rect(mGLRectViewport.left, - mGLRectViewport.top, - mGLRectViewport.right, - mGLRectViewport.bottom - - getVisibleTitleHeight()); - if (nativeDrawGL(rect, getScale(), extras)) { - invalidate(); - } - } - } finally { - canvas.releaseContext(); - } + int functor = nativeGetDrawGLFunction(mGLRectViewport, getScale(), extras); + ((HardwareCanvas) canvas).callDrawGLFunction(functor); } else { DrawFilter df = null; if (mZoomManager.isZoomAnimating() || UIAnimationsRunning) { @@ -5173,18 +5159,16 @@ public class WebView extends AbsoluteLayout void setGLRectViewport() { // Use the getGlobalVisibleRect() to get the intersection among the parents - Rect webViewRect = new Rect(); - boolean visible = getGlobalVisibleRect(webViewRect); + getGlobalVisibleRect(mGLRectViewport); // Then need to invert the Y axis, just for GL View rootView = getRootView(); int rootViewHeight = rootView.getHeight(); - int savedWebViewBottom = webViewRect.bottom; - webViewRect.bottom = rootViewHeight - webViewRect.top; - webViewRect.top = rootViewHeight - savedWebViewBottom; + int savedWebViewBottom = mGLRectViewport.bottom; + mGLRectViewport.bottom = rootViewHeight - mGLRectViewport.top - getVisibleTitleHeight(); + mGLRectViewport.top = rootViewHeight - savedWebViewBottom; - // Store the viewport - mGLRectViewport = webViewRect; + nativeUpdateDrawGLFunction(mGLRectViewport); } /** @@ -8179,17 +8163,6 @@ public class WebView extends AbsoluteLayout } /** - * Toggle whether multi touch events should be sent to webkit - * no matter if UI wants to handle it first. - * - * @hide This is only used by the webkit layout test. - */ - public void setDeferMultiTouch(boolean value) { - mDeferMultitouch = value; - Log.v(LOGTAG, "set mDeferMultitouch to " + value); - } - - /** * Update our cache with updatedText. * @param updatedText The new text to put in our cache. */ @@ -8239,6 +8212,8 @@ public class WebView extends AbsoluteLayout boolean splitIfNeeded); private native void nativeDumpDisplayTree(String urlOrNull); private native boolean nativeEvaluateLayersAnimations(); + private native int nativeGetDrawGLFunction(Rect rect, float scale, int extras); + private native void nativeUpdateDrawGLFunction(Rect rect); private native boolean nativeDrawGL(Rect rect, float scale, int extras); private native void nativeExtendSelection(int x, int y); private native int nativeFindAll(String findLower, String findUpper, diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 665f9e7..6d66bbc 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -1098,7 +1098,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te if (childCount == 0) return true; if (childCount != mItemCount) return false; - return getChildAt(0).getTop() >= 0 && getChildAt(childCount - 1).getBottom() <= mBottom; + return getChildAt(0).getTop() >= mListPadding.top && + getChildAt(childCount - 1).getBottom() <= getHeight() - mListPadding.bottom; } /** @@ -2357,6 +2358,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } if (mScrollY != 0) { mScrollY = 0; + invalidateParentIfAccelerated(); finishGlows(); invalidate(); } @@ -2733,6 +2735,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te if (mScrollY != 0) { mScrollY = 0; + invalidateParentIfAccelerated(); finishGlows(); invalidate(); } @@ -2951,6 +2954,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // Coming back to 'real' list scrolling incrementalDeltaY = -newScroll; mScrollY = 0; + invalidateParentIfAccelerated(); // No need to do all this work if we're not going to move anyway if (incrementalDeltaY != 0) { @@ -3244,6 +3248,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { mScrollY = scrollY; + invalidateParentIfAccelerated(); if (clampedY) { // Velocity is broken by hitting the limit; don't start a fling off of this. diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 707b92d..e8ce4e9 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -116,6 +116,10 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe // Set to true when text is set directly and no filtering shall be performed private boolean mBlockCompletion; + // When set, an update in the underlying adapter will update the result list popup. + // Set to false when the list is hidden to prevent asynchronous updates to popup the list again. + private boolean mPopupCanBeUpdated = true; + private PassThroughClickListener mPassThroughClickListener; private PopupDataSetObserver mObserver; @@ -722,21 +726,20 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe return; } - updateList(); - } - - private void updateList() { // the drop down is shown only when a minimum number of characters // was typed in the text view if (enoughToFilter()) { if (mFilter != null) { + mPopupCanBeUpdated = true; performFiltering(getText(), mLastKeyCode); buildImeCompletions(); } } else { // drop down is automatically dismissed when enough characters // are deleted from the text view - if (!mPopup.isDropDownAlwaysVisible()) dismissDropDown(); + if (!mPopup.isDropDownAlwaysVisible()) { + dismissDropDown(); + } if (mFilter != null) { mFilter.filter(null); } @@ -908,10 +911,10 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe /** {@inheritDoc} */ public void onFilterComplete(int count) { - updateDropDownForFilter(count, true); + updateDropDownForFilter(count); } - private void updateDropDownForFilter(int count, boolean forceShow) { + private void updateDropDownForFilter(int count) { // Not attached to window, don't update drop-down if (getWindowVisibility() == View.GONE) return; @@ -924,11 +927,15 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe final boolean dropDownAlwaysVisible = mPopup.isDropDownAlwaysVisible(); if ((count > 0 || dropDownAlwaysVisible) && enoughToFilter()) { - if (hasFocus() && hasWindowFocus() && (forceShow || isPopupShowing())) { + if (hasFocus() && hasWindowFocus() && mPopupCanBeUpdated) { showDropDown(); } - } else if (!dropDownAlwaysVisible) { + } else if (!dropDownAlwaysVisible && isPopupShowing()) { dismissDropDown(); + // When the filter text is changed, the first update from the adapter may show an empty + // count (when the query is being performed on the network). Future updates when some + // content has been retrieved should still be able to update the list. + mPopupCanBeUpdated = true; } } @@ -984,6 +991,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe imm.displayCompletions(this, null); } mPopup.dismiss(); + mPopupCanBeUpdated = false; } @Override @@ -1194,7 +1202,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe if (adapter != null) { // This will re-layout, thus resetting mDataChanged, so that the // listView click listener stays responsive - updateDropDownForFilter(adapter.getCount(), false); + updateDropDownForFilter(adapter.getCount()); } } }); diff --git a/core/java/android/widget/CalendarView.java b/core/java/android/widget/CalendarView.java index 7ef61a8..899e872 100644 --- a/core/java/android/widget/CalendarView.java +++ b/core/java/android/widget/CalendarView.java @@ -440,11 +440,18 @@ public class CalendarView extends FrameLayout { return; } mMinDate.setTimeInMillis(minDate); + // make sure the current date is not earlier than + // the new min date since the latter is used for + // calculating the indices in the adapter thus + // avoiding out of bounds error + Calendar date = mAdapter.mSelectedDate; + if (date.before(mMinDate)) { + mAdapter.setSelectedDay(mMinDate); + } // reinitialize the adapter since its range depends on min date mAdapter.init(); - Calendar date = mAdapter.mSelectedDate; if (date.before(mMinDate)) { - setDate(mMinDate.getTimeInMillis()); + setDate(mTempDate.getTimeInMillis()); } else { // we go to the current date to force the ListView to query its // adapter for the shown views since we have changed the adapter @@ -753,7 +760,13 @@ public class CalendarView extends FrameLayout { mFirstDayOfMonth.set(Calendar.DAY_OF_MONTH, 1); setMonthDisplayed(mFirstDayOfMonth); - position = getWeeksSinceMinDate(mFirstDayOfMonth); + + // the earliest time we can scroll to is the min date + if (mFirstDayOfMonth.before(mMinDate)) { + position = 0; + } else { + position = getWeeksSinceMinDate(mFirstDayOfMonth); + } mPreviousScrollState = OnScrollListener.SCROLL_STATE_FLING; if (animate) { diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java index f1786e2..ea868a6 100644 --- a/core/java/android/widget/DatePicker.java +++ b/core/java/android/widget/DatePicker.java @@ -34,6 +34,7 @@ import android.widget.NumberPicker.OnValueChangeListener; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Calendar; import java.util.Locale; import java.util.TimeZone; @@ -156,8 +157,34 @@ public class DatePicker extends FrameLayout { OnValueChangeListener onChangeListener = new OnValueChangeListener() { public void onValueChange(NumberPicker picker, int oldVal, int newVal) { - updateDate(mYearSpinner.getValue(), mMonthSpinner.getValue(), mDaySpinner - .getValue()); + mTempDate.setTimeInMillis(mCurrentDate.getTimeInMillis()); + // take care of wrapping of days and months to update greater fields + if (picker == mDaySpinner) { + int maxDayOfMonth = mTempDate.getActualMaximum(Calendar.DAY_OF_MONTH); + if (oldVal == maxDayOfMonth && newVal == 1) { + mTempDate.add(Calendar.DAY_OF_MONTH, 1); + } else if (oldVal == 1 && newVal == maxDayOfMonth) { + mTempDate.add(Calendar.DAY_OF_MONTH, -1); + } else { + mTempDate.add(Calendar.DAY_OF_MONTH, newVal - oldVal); + } + } else if (picker == mMonthSpinner) { + if (oldVal == 11 && newVal == 0) { + mTempDate.add(Calendar.MONTH, 1); + } else if (oldVal == 0 && newVal == 11) { + mTempDate.add(Calendar.MONTH, -1); + } else { + mTempDate.add(Calendar.MONTH, newVal - oldVal); + } + } else if (picker == mYearSpinner) { + mTempDate.set(Calendar.YEAR, newVal); + } else { + throw new IllegalArgumentException(); + } + // now set the date to the adjusted one + setDate(mTempDate.get(Calendar.YEAR), mTempDate.get(Calendar.MONTH), + mTempDate.get(Calendar.DAY_OF_MONTH)); + notifyDateChanged(); } }; @@ -167,7 +194,8 @@ public class DatePicker extends FrameLayout { mCalendarView = (CalendarView) findViewById(R.id.calendar_view); mCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { public void onSelectedDayChange(CalendarView view, int year, int month, int monthDay) { - updateDate(year, month, monthDay); + setDate(year, month, monthDay); + notifyDateChanged(); } }); @@ -260,10 +288,12 @@ public class DatePicker extends FrameLayout { return; } mMinDate.setTimeInMillis(minDate); - mYearSpinner.setMinValue(mMinDate.get(Calendar.YEAR)); - mYearSpinner.setMaxValue(mMaxDate.get(Calendar.YEAR)); mCalendarView.setMinDate(minDate); - updateSpinners(mYearSpinner.getValue(), mMonthSpinner.getValue(), mDaySpinner.getValue()); + if (mCurrentDate.before(mMinDate)) { + mCurrentDate.setTimeInMillis(mMinDate.getTimeInMillis()); + updateCalendarView(); + } + updateSpinners(); } /** @@ -294,10 +324,12 @@ public class DatePicker extends FrameLayout { return; } mMaxDate.setTimeInMillis(maxDate); - mYearSpinner.setMinValue(mMinDate.get(Calendar.YEAR)); - mYearSpinner.setMaxValue(mMaxDate.get(Calendar.YEAR)); mCalendarView.setMaxDate(maxDate); - updateSpinners(mYearSpinner.getValue(), mMonthSpinner.getValue(), mDaySpinner.getValue()); + if (mCurrentDate.after(mMaxDate)) { + mCurrentDate.setTimeInMillis(mMaxDate.getTimeInMillis()); + updateCalendarView(); + } + updateSpinners(); } @Override @@ -433,13 +465,11 @@ public class DatePicker extends FrameLayout { * @param dayOfMonth The day of the month. */ public void updateDate(int year, int month, int dayOfMonth) { - if (mCurrentDate.get(Calendar.YEAR) != year - || mCurrentDate.get(Calendar.MONTH) != dayOfMonth - || mCurrentDate.get(Calendar.DAY_OF_MONTH) != month) { - updateSpinners(year, month, dayOfMonth); - updateCalendarView(); - notifyDateChanged(); + if (!isNewDate(year, month, dayOfMonth)) { + return; } + setDate(year, month, dayOfMonth); + notifyDateChanged(); } // Override so we are in complete control of save / restore for this widget. @@ -451,15 +481,14 @@ public class DatePicker extends FrameLayout { @Override protected Parcelable onSaveInstanceState() { Parcelable superState = super.onSaveInstanceState(); - return new SavedState(superState, mYearSpinner.getValue(), mMonthSpinner.getValue(), - mDaySpinner.getValue()); + return new SavedState(superState, getYear(), getMonth(), getDayOfMonth()); } @Override protected void onRestoreInstanceState(Parcelable state) { SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); - updateSpinners(ss.mYear, ss.mMonth, ss.mDay); + setDate(ss.mYear, ss.mMonth, ss.mDay); } /** @@ -474,10 +503,7 @@ public class DatePicker extends FrameLayout { */ public void init(int year, int monthOfYear, int dayOfMonth, OnDateChangedListener onDateChangedListener) { - // make sure there is no callback - mOnDateChangedListener = null; - updateDate(year, monthOfYear, dayOfMonth); - // register the callback after updating the date + setDate(year, monthOfYear, dayOfMonth); mOnDateChangedListener = onDateChangedListener; } @@ -514,104 +540,94 @@ public class DatePicker extends FrameLayout { } } - /** - * Updates the spinners with the given <code>year</code>, <code>month</code> - * , and <code>dayOfMonth</code>. If the provided values designate an - * inconsistent date the values are normalized before updating the spinners. - */ - private void updateSpinners(int year, int month, int dayOfMonth) { - // compute the deltas before modifying the current date - int deltaMonths = getDelataMonth(month); - int deltaDays = getDelataDayOfMonth(dayOfMonth); - mCurrentDate.set(Calendar.YEAR, year); - mCurrentDate.add(Calendar.MONTH, deltaMonths); - mCurrentDate.add(Calendar.DAY_OF_MONTH, deltaDays); + private boolean isNewDate(int year, int month, int dayOfMonth) { + return (mCurrentDate.get(Calendar.YEAR) != year + || mCurrentDate.get(Calendar.MONTH) != dayOfMonth + || mCurrentDate.get(Calendar.DAY_OF_MONTH) != month); + } + private void setDate(int year, int month, int dayOfMonth) { + mCurrentDate.set(year, month, dayOfMonth); if (mCurrentDate.before(mMinDate)) { mCurrentDate.setTimeInMillis(mMinDate.getTimeInMillis()); } else if (mCurrentDate.after(mMaxDate)) { mCurrentDate.setTimeInMillis(mMaxDate.getTimeInMillis()); } - - mYearSpinner.setValue(mCurrentDate.get(Calendar.YEAR)); - mMonthSpinner.setValue(mCurrentDate.get(Calendar.MONTH)); - mDaySpinner.setMinValue(1); - mDaySpinner.setMaxValue(mCurrentDate.getActualMaximum(Calendar.DAY_OF_MONTH)); - mDaySpinner.setValue(mCurrentDate.get(Calendar.DAY_OF_MONTH)); + updateSpinners(); + updateCalendarView(); } - /** - * @return The delta days of moth from the current date and the given - * <code>dayOfMonth</code>. - */ - private int getDelataDayOfMonth(int dayOfMonth) { - int prevDayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH); - if (prevDayOfMonth == dayOfMonth) { - return 0; - } - int maxDayOfMonth = mCurrentDate.getActualMaximum(Calendar.DAY_OF_MONTH); - if (dayOfMonth == 1 && prevDayOfMonth == maxDayOfMonth) { - return 1; - } - if (dayOfMonth == maxDayOfMonth && prevDayOfMonth == 1) { - return -1; + private void updateSpinners() { + // set the spinner ranges respecting the min and max dates + if (mCurrentDate.equals(mMinDate)) { + mDaySpinner.setMinValue(mCurrentDate.get(Calendar.DAY_OF_MONTH)); + mDaySpinner.setMaxValue(mCurrentDate.getActualMaximum(Calendar.DAY_OF_MONTH)); + mDaySpinner.setWrapSelectorWheel(false); + mMonthSpinner.setDisplayedValues(null); + mMonthSpinner.setMinValue(mCurrentDate.get(Calendar.MONTH)); + mMonthSpinner.setMaxValue(mCurrentDate.getActualMaximum(Calendar.MONTH)); + mMonthSpinner.setWrapSelectorWheel(false); + } else if (mCurrentDate.equals(mMaxDate)) { + mDaySpinner.setMinValue(mCurrentDate.getActualMinimum(Calendar.DAY_OF_MONTH)); + mDaySpinner.setMaxValue(mCurrentDate.get(Calendar.DAY_OF_MONTH)); + mDaySpinner.setWrapSelectorWheel(false); + mMonthSpinner.setDisplayedValues(null); + mMonthSpinner.setMinValue(mCurrentDate.getActualMinimum(Calendar.MONTH)); + mMonthSpinner.setMaxValue(mCurrentDate.get(Calendar.MONTH)); + mMonthSpinner.setWrapSelectorWheel(false); + } else { + mDaySpinner.setMinValue(1); + mDaySpinner.setMaxValue(mCurrentDate.getActualMaximum(Calendar.DAY_OF_MONTH)); + mDaySpinner.setWrapSelectorWheel(true); + mMonthSpinner.setDisplayedValues(null); + mMonthSpinner.setMinValue(0); + mMonthSpinner.setMaxValue(11); + mMonthSpinner.setWrapSelectorWheel(true); } - return dayOfMonth - prevDayOfMonth; - } - /** - * @return The delta months from the current date and the given - * <code>month</code>. - */ - private int getDelataMonth(int month) { - int prevMonth = mCurrentDate.get(Calendar.MONTH); - if (prevMonth == month) { - return 0; - } - if (month == 0 && prevMonth == 11) { - return 1; - } - if (month == 11 && prevMonth == 0) { - return -1; - } - return month - prevMonth; + // make sure the month names are a zero based array + // with the months in the month spinner + String[] displayedValues = Arrays.copyOfRange(getShortMonths(), + mMonthSpinner.getMinValue(), mMonthSpinner.getMaxValue() + 1); + mMonthSpinner.setDisplayedValues(displayedValues); + + // year spinner range does not change based on the current date + mYearSpinner.setMinValue(mMinDate.get(Calendar.YEAR)); + mYearSpinner.setMaxValue(mMaxDate.get(Calendar.YEAR)); + mYearSpinner.setWrapSelectorWheel(false); + + // set the spinner values + mYearSpinner.setValue(mCurrentDate.get(Calendar.YEAR)); + mMonthSpinner.setValue(mCurrentDate.get(Calendar.MONTH)); + mDaySpinner.setValue(mCurrentDate.get(Calendar.DAY_OF_MONTH)); } /** - * Updates the calendar view with the given year, month, and day selected by - * the number spinners. + * Updates the calendar view with the current date. */ private void updateCalendarView() { - mTempDate.setTimeInMillis(mCalendarView.getDate()); - if (mTempDate.get(Calendar.YEAR) != mYearSpinner.getValue() - || mTempDate.get(Calendar.MONTH) != mMonthSpinner.getValue() - || mTempDate.get(Calendar.DAY_OF_MONTH) != mDaySpinner.getValue()) { - mTempDate.clear(); - mTempDate.set(mYearSpinner.getValue(), mMonthSpinner.getValue(), - mDaySpinner.getValue()); - mCalendarView.setDate(mTempDate.getTimeInMillis(), false, false); - } + mCalendarView.setDate(mCurrentDate.getTimeInMillis(), false, false); } /** * @return The selected year. */ public int getYear() { - return mYearSpinner.getValue(); + return mCurrentDate.get(Calendar.YEAR); } /** * @return The selected month. */ public int getMonth() { - return mMonthSpinner.getValue(); + return mCurrentDate.get(Calendar.MONTH); } /** * @return The selected day of month. */ public int getDayOfMonth() { - return mDaySpinner.getValue(); + return mCurrentDate.get(Calendar.DAY_OF_MONTH); } /** @@ -619,8 +635,7 @@ public class DatePicker extends FrameLayout { */ private void notifyDateChanged() { if (mOnDateChangedListener != null) { - mOnDateChangedListener.onDateChanged(DatePicker.this, mYearSpinner.getValue(), - mMonthSpinner.getValue(), mDaySpinner.getValue()); + mOnDateChangedListener.onDateChanged(this, getYear(), getMonth(), getDayOfMonth()); } } diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index db22a0c..ff6677f 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -647,6 +647,7 @@ public class HorizontalScrollView extends FrameLayout { if (!mScroller.isFinished()) { mScrollX = scrollX; mScrollY = scrollY; + invalidateParentIfAccelerated(); if (clampedX) { mScroller.springBack(mScrollX, mScrollY, 0, getScrollRange(), 0, 0); } diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index 08db207..c5161bc 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -917,6 +917,8 @@ public class NumberPicker extends LinearLayout { // force the selector indices array to be reinitialized mSelectorIndices[SELECTOR_MIDDLE_ITEM_INDEX] = Integer.MAX_VALUE; mWrapSelectorWheel = wrapSelector; + // force redraw since we might look different + updateIncrementAndDecrementButtonsVisibilityState(); } } @@ -972,7 +974,6 @@ public class NumberPicker extends LinearLayout { setWrapSelectorWheel(wrapSelectorWheel); resetSelectorWheelIndices(); updateInputTextView(); - updateIncrementAndDecrementButtonsVisibilityState(); } /** @@ -1004,7 +1005,6 @@ public class NumberPicker extends LinearLayout { setWrapSelectorWheel(wrapSelectorWheel); resetSelectorWheelIndices(); updateInputTextView(); - updateIncrementAndDecrementButtonsVisibilityState(); } /** diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index ce6da72..fc049cc 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -644,6 +644,7 @@ public class ScrollView extends FrameLayout { if (!mScroller.isFinished()) { mScrollX = scrollX; mScrollY = scrollY; + invalidateParentIfAccelerated(); if (clampedY) { mScroller.springBack(mScrollX, mScrollY, 0, 0, 0, getScrollRange()); } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index aac57ed..ae6ecfb 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -372,7 +372,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mTextPaint.density = getResources().getDisplayMetrics().density; mTextPaint.setCompatibilityScaling( getResources().getCompatibilityInfo().applicationScale); - + // If we get the paint from the skin, we should set it to left, since // the layout always wants it to be left. // mTextPaint.setTextAlign(Paint.Align.LEFT); @@ -4334,7 +4334,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener selStart = getSelectionStart(); selEnd = getSelectionEnd(); - if ((mCursorVisible || mTextIsSelectable) && selStart >= 0 && isEnabled()) { + if ((isCursorVisible() || mTextIsSelectable) && selStart >= 0 && isEnabled()) { if (mHighlightPath == null) mHighlightPath = new Path(); @@ -6272,6 +6272,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (mScroller.computeScrollOffset()) { mScrollX = mScroller.getCurrX(); mScrollY = mScroller.getCurrY(); + invalidateParentIfAccelerated(); postInvalidate(); // So we draw again } } @@ -6490,6 +6491,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener prepareCursorControllers(); } + private boolean isCursorVisible() { + return mCursorVisible && isTextEditable(); + } + private boolean canMarquee() { int width = (mRight - mLeft - getCompoundPaddingLeft() - getCompoundPaddingRight()); return width > 0 && mLayout.getLineWidth(0) > width; @@ -6978,7 +6983,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void makeBlink() { - if (!mCursorVisible || !isTextEditable()) { + if (!isCursorVisible()) { if (mBlink != null) { mBlink.removeCallbacks(mBlink); } @@ -7125,11 +7130,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener super.onFocusChanged(focused, direction, previouslyFocusedRect); - // After super.onFocusChanged so that this TextView is registered and can ask for the IME - // Showing the IME while focus is moved using the D-Pad is a bad idea, however this does - // not happen in that case (using the arrows on a bluetooth keyboard). - if (focused) { - onTouchFinished(null); + // Performed after super.onFocusChanged so that this TextView is registered and can ask for + // the IME. Showing the IME while focus is moved using the D-Pad is a bad idea, however this + // does not happen in that case (using the arrows on a bluetooth keyboard). + if (focused && isTextEditable()) { + final InputMethodManager imm = (InputMethodManager) + getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + + imm.showSoftInput(this, 0, null); } } @@ -7321,7 +7329,19 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener csr = new CommitSelectionReceiver(oldSelStart, oldSelEnd); } - handled = onTouchFinished(csr); + // Show the IME, except when selecting in read-only text. + if (!mTextIsSelectable) { + final InputMethodManager imm = (InputMethodManager) + getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + + handled |= imm.showSoftInput(this, 0, csr) && (csr != null); + } + + stopSelectionActionMode(); + boolean selectAllGotFocus = mSelectAllOnFocus && mTouchFocusSelected; + if (hasInsertionController() && !selectAllGotFocus) { + getInsertionController().show(); + } } } @@ -7333,35 +7353,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return superResult; } - /** Shows the IME if applicable, ends selection mode and displays the selection controller. - * - * This method is called at the end of a touch event, when the finger is lifted up. - * It is also called when the TextField gains focus indirectly through a dispatched event from - * one of its parents. We want to have the same behavior in that case. - * - * @param csr A (possibly null) callback called if the IME has been displayed - * @return true if the event was properly sent to the csr - */ - private boolean onTouchFinished(CommitSelectionReceiver csr) { - boolean handled = false; - - // Show the IME, except when selecting in read-only text. - if (!mTextIsSelectable) { - final InputMethodManager imm = (InputMethodManager) - getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - - handled = imm.showSoftInput(this, 0, csr) && (csr != null); - } - - stopSelectionActionMode(); - boolean selectAllGotFocus = mSelectAllOnFocus && mTouchFocusSelected; - if (hasInsertionController() && !selectAllGotFocus) { - getInsertionController().show(); - } - - return handled; - } - private void prepareCursorControllers() { boolean windowSupportsHandles = false; @@ -7372,8 +7363,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener || windowParams.type > WindowManager.LayoutParams.LAST_SUB_WINDOW; } - mInsertionControllerEnabled = windowSupportsHandles && isTextEditable() && mCursorVisible && - mLayout != null; + mInsertionControllerEnabled = windowSupportsHandles && isCursorVisible() && mLayout != null; mSelectionControllerEnabled = windowSupportsHandles && textCanBeSelected() && mLayout != null; diff --git a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java index d49902e..78688ee 100644 --- a/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java +++ b/core/java/com/android/internal/service/wallpaper/ImageWallpaper.java @@ -187,33 +187,36 @@ public class ImageWallpaper extends WallpaperService { } SurfaceHolder sh = getSurfaceHolder(); + final Rect frame = sh.getSurfaceFrame(); + final Drawable background = mBackground; + final int dw = frame.width(); + final int dh = frame.height(); + final int bw = background != null ? background.getIntrinsicWidth() : 0; + final int bh = background != null ? background.getIntrinsicHeight() : 0; + final int availw = dw - bw; + final int availh = dh - bh; + int xPixels = availw < 0 ? (int)(availw * mXOffset + .5f) : (availw / 2); + int yPixels = availh < 0 ? (int)(availh * mYOffset + .5f) : (availh / 2); + + mOffsetsChanged = false; + if (!mRedrawNeeded + && xPixels == mLastXTranslation && yPixels == mLastYTranslation) { + if (DEBUG) { + Log.d(TAG, "Suppressed drawFrame since the image has not " + + "actually moved an integral number of pixels."); + } + return; + } + mRedrawNeeded = false; + mLastXTranslation = xPixels; + mLastYTranslation = yPixels; + Canvas c = sh.lockCanvas(); if (c != null) { try { - final Rect frame = sh.getSurfaceFrame(); - final Drawable background = mBackground; - final int dw = frame.width(); - final int dh = frame.height(); - final int bw = background != null ? background.getIntrinsicWidth() : 0; - final int bh = background != null ? background.getIntrinsicHeight() : 0; - final int availw = dw-bw; - final int availh = dh-bh; - int xPixels = availw < 0 ? (int)(availw*mXOffset+.5f) : (availw/2); - int yPixels = availh < 0 ? (int)(availh*mYOffset+.5f) : (availh/2); - - mOffsetsChanged = false; - if (!mRedrawNeeded) { - if (xPixels == mLastXTranslation && yPixels == mLastYTranslation) { - if (DEBUG) { - Log.d(TAG, "Suppressed drawFrame since the image has not " - + "actually moved an integral number of pixels."); - } - return; - } + if (DEBUG) { + Log.d(TAG, "Redrawing: xPixels=" + xPixels + ", yPixels=" + yPixels); } - mRedrawNeeded = false; - mLastXTranslation = xPixels; - mLastYTranslation = yPixels; c.translate(xPixels, yPixels); if (availw < 0 || availh < 0) { diff --git a/core/java/com/android/internal/view/menu/ActionMenuView.java b/core/java/com/android/internal/view/menu/ActionMenuView.java index 30d6878..ff15e44 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuView.java @@ -53,7 +53,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo private Drawable mDivider; - private Runnable mShowOverflow = new Runnable() { + private final Runnable mShowOverflow = new Runnable() { public void run() { showOverflowMenu(); } @@ -128,6 +128,10 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo if (mOverflowPopup != null && mOverflowPopup.isShowing()) { mOverflowPopup.dismiss(); } + removeCallbacks(mShowOverflow); + if (mPostedOpenRunnable != null) { + removeCallbacks(mPostedOpenRunnable); + } } private int getMaxActionButtons() { diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 6fbae94..305115f 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java @@ -690,6 +690,7 @@ public final class MenuItemImpl implements MenuItem { public MenuItem setActionView(View view) { mActionView = view; + mMenu.onItemActionRequestChanged(this); return this; } diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index 8d074af..e4a89d7 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -117,6 +117,11 @@ static void android_view_GLES20Canvas_acquireContext(JNIEnv* env, jobject canvas renderer->acquireContext(); } +static bool android_view_GLES20Canvas_callDrawGLFunction(JNIEnv* env, jobject canvas, + OpenGLRenderer* renderer, Functor *functor) { + return renderer->callDrawGLFunction(functor); +} + static void android_view_GLES20Canvas_releaseContext(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer) { renderer->releaseContext(); @@ -482,9 +487,9 @@ static void android_view_GLES20Canvas_destroyDisplayList(JNIEnv* env, delete displayList; } -static void android_view_GLES20Canvas_drawDisplayList(JNIEnv* env, +static bool android_view_GLES20Canvas_drawDisplayList(JNIEnv* env, jobject canvas, OpenGLRenderer* renderer, DisplayList* displayList) { - renderer->drawDisplayList(displayList); + return renderer->drawDisplayList(displayList); } // ---------------------------------------------------------------------------- @@ -577,6 +582,8 @@ static JNINativeMethod gMethods[] = { { "nPrepare", "(IZ)V", (void*) android_view_GLES20Canvas_prepare }, { "nFinish", "(I)V", (void*) android_view_GLES20Canvas_finish }, { "nAcquireContext", "(I)V", (void*) android_view_GLES20Canvas_acquireContext }, + { "nCallDrawGLFunction", "(II)Z", + (void*) android_view_GLES20Canvas_callDrawGLFunction }, { "nReleaseContext", "(I)V", (void*) android_view_GLES20Canvas_releaseContext }, { "nSave", "(II)I", (void*) android_view_GLES20Canvas_save }, @@ -639,7 +646,7 @@ static JNINativeMethod gMethods[] = { { "nGetDisplayList", "(I)I", (void*) android_view_GLES20Canvas_getDisplayList }, { "nDestroyDisplayList", "(I)V", (void*) android_view_GLES20Canvas_destroyDisplayList }, { "nGetDisplayListRenderer", "(I)I", (void*) android_view_GLES20Canvas_getDisplayListRenderer }, - { "nDrawDisplayList", "(II)V", (void*) android_view_GLES20Canvas_drawDisplayList }, + { "nDrawDisplayList", "(II)Z", (void*) android_view_GLES20Canvas_drawDisplayList }, { "nInterrupt", "(I)V", (void*) android_view_GLES20Canvas_interrupt }, { "nResume", "(I)V", (void*) android_view_GLES20Canvas_resume }, diff --git a/core/res/res/drawable-hdpi/btn_check_off.png b/core/res/res/drawable-hdpi/btn_check_off.png Binary files differindex bb62e6f..3928b7d 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_off.png +++ b/core/res/res/drawable-hdpi/btn_check_off.png diff --git a/core/res/res/drawable-hdpi/btn_check_off_disable.png b/core/res/res/drawable-hdpi/btn_check_off_disable.png Binary files differindex b346381..922737e 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_off_disable.png +++ b/core/res/res/drawable-hdpi/btn_check_off_disable.png diff --git a/core/res/res/drawable-hdpi/btn_check_off_disable_focused.png b/core/res/res/drawable-hdpi/btn_check_off_disable_focused.png Binary files differindex 8663369..992f0fe 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_off_disable_focused.png +++ b/core/res/res/drawable-hdpi/btn_check_off_disable_focused.png diff --git a/core/res/res/drawable-hdpi/btn_check_off_pressed.png b/core/res/res/drawable-hdpi/btn_check_off_pressed.png Binary files differindex 67e49df..c6195ab 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_off_pressed.png +++ b/core/res/res/drawable-hdpi/btn_check_off_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_check_off_selected.png b/core/res/res/drawable-hdpi/btn_check_off_selected.png Binary files differindex 1791d1f..d467769 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_off_selected.png +++ b/core/res/res/drawable-hdpi/btn_check_off_selected.png diff --git a/core/res/res/drawable-hdpi/btn_check_on.png b/core/res/res/drawable-hdpi/btn_check_on.png Binary files differindex 15cd25e..91d8ba9 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_on.png +++ b/core/res/res/drawable-hdpi/btn_check_on.png diff --git a/core/res/res/drawable-hdpi/btn_check_on_disable.png b/core/res/res/drawable-hdpi/btn_check_on_disable.png Binary files differindex e3fe323..6472087 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_on_disable.png +++ b/core/res/res/drawable-hdpi/btn_check_on_disable.png diff --git a/core/res/res/drawable-hdpi/btn_check_on_disable_focused.png b/core/res/res/drawable-hdpi/btn_check_on_disable_focused.png Binary files differindex fa41bb7..58ba72d 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_on_disable_focused.png +++ b/core/res/res/drawable-hdpi/btn_check_on_disable_focused.png diff --git a/core/res/res/drawable-hdpi/btn_check_on_pressed.png b/core/res/res/drawable-hdpi/btn_check_on_pressed.png Binary files differindex 906e283..42b8edc 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_on_pressed.png +++ b/core/res/res/drawable-hdpi/btn_check_on_pressed.png diff --git a/core/res/res/drawable-hdpi/btn_check_on_selected.png b/core/res/res/drawable-hdpi/btn_check_on_selected.png Binary files differindex eb496a8..7c94adf 100755..100644 --- a/core/res/res/drawable-hdpi/btn_check_on_selected.png +++ b/core/res/res/drawable-hdpi/btn_check_on_selected.png diff --git a/core/res/res/drawable-hdpi/toast_frame.9.png b/core/res/res/drawable-hdpi/toast_frame.9.png Binary files differindex 7f830bc..8f5d811 100644 --- a/core/res/res/drawable-hdpi/toast_frame.9.png +++ b/core/res/res/drawable-hdpi/toast_frame.9.png diff --git a/core/res/res/drawable-hdpi/toast_frame_holo.9.png b/core/res/res/drawable-hdpi/toast_frame_holo.9.png Binary files differnew file mode 100644 index 0000000..7f830bc --- /dev/null +++ b/core/res/res/drawable-hdpi/toast_frame_holo.9.png diff --git a/core/res/res/drawable-mdpi/btn_check_off.png b/core/res/res/drawable-mdpi/btn_check_off.png Binary files differindex 251ddff..b0541d9 100644 --- a/core/res/res/drawable-mdpi/btn_check_off.png +++ b/core/res/res/drawable-mdpi/btn_check_off.png diff --git a/core/res/res/drawable-mdpi/btn_check_off_disable.png b/core/res/res/drawable-mdpi/btn_check_off_disable.png Binary files differindex 45e6804..5ec8d03 100644 --- a/core/res/res/drawable-mdpi/btn_check_off_disable.png +++ b/core/res/res/drawable-mdpi/btn_check_off_disable.png diff --git a/core/res/res/drawable-mdpi/btn_check_off_disable_focused.png b/core/res/res/drawable-mdpi/btn_check_off_disable_focused.png Binary files differindex 193acd2..341ffb9 100644 --- a/core/res/res/drawable-mdpi/btn_check_off_disable_focused.png +++ b/core/res/res/drawable-mdpi/btn_check_off_disable_focused.png diff --git a/core/res/res/drawable-mdpi/btn_check_off_pressed.png b/core/res/res/drawable-mdpi/btn_check_off_pressed.png Binary files differindex 807901c..5e77a77 100644 --- a/core/res/res/drawable-mdpi/btn_check_off_pressed.png +++ b/core/res/res/drawable-mdpi/btn_check_off_pressed.png diff --git a/core/res/res/drawable-mdpi/btn_check_off_selected.png b/core/res/res/drawable-mdpi/btn_check_off_selected.png Binary files differindex dbc3beb..4e40f207 100644 --- a/core/res/res/drawable-mdpi/btn_check_off_selected.png +++ b/core/res/res/drawable-mdpi/btn_check_off_selected.png diff --git a/core/res/res/drawable-mdpi/btn_check_on.png b/core/res/res/drawable-mdpi/btn_check_on.png Binary files differindex 4c83e2e..23304a1 100644 --- a/core/res/res/drawable-mdpi/btn_check_on.png +++ b/core/res/res/drawable-mdpi/btn_check_on.png diff --git a/core/res/res/drawable-mdpi/btn_check_on_disable.png b/core/res/res/drawable-mdpi/btn_check_on_disable.png Binary files differindex f1bf178..817745c 100644 --- a/core/res/res/drawable-mdpi/btn_check_on_disable.png +++ b/core/res/res/drawable-mdpi/btn_check_on_disable.png diff --git a/core/res/res/drawable-mdpi/btn_check_on_disable_focused.png b/core/res/res/drawable-mdpi/btn_check_on_disable_focused.png Binary files differindex ea232ee..13d13b6 100644 --- a/core/res/res/drawable-mdpi/btn_check_on_disable_focused.png +++ b/core/res/res/drawable-mdpi/btn_check_on_disable_focused.png diff --git a/core/res/res/drawable-mdpi/btn_check_on_pressed.png b/core/res/res/drawable-mdpi/btn_check_on_pressed.png Binary files differindex 0de8a4c..9cdc796 100644 --- a/core/res/res/drawable-mdpi/btn_check_on_pressed.png +++ b/core/res/res/drawable-mdpi/btn_check_on_pressed.png diff --git a/core/res/res/drawable-mdpi/btn_check_on_selected.png b/core/res/res/drawable-mdpi/btn_check_on_selected.png Binary files differindex 20294f3..b2c3727 100644 --- a/core/res/res/drawable-mdpi/btn_check_on_selected.png +++ b/core/res/res/drawable-mdpi/btn_check_on_selected.png diff --git a/core/res/res/drawable-mdpi/toast_frame.9.png b/core/res/res/drawable-mdpi/toast_frame.9.png Binary files differindex 911f86d..08c4f86 100755 --- a/core/res/res/drawable-mdpi/toast_frame.9.png +++ b/core/res/res/drawable-mdpi/toast_frame.9.png diff --git a/core/res/res/drawable-mdpi/toast_frame_holo.9.png b/core/res/res/drawable-mdpi/toast_frame_holo.9.png Binary files differnew file mode 100755 index 0000000..911f86d --- /dev/null +++ b/core/res/res/drawable-mdpi/toast_frame_holo.9.png diff --git a/core/res/res/layout/transient_notification.xml b/core/res/res/layout/transient_notification.xml index 12b67f1..21d58aa 100644 --- a/core/res/res/layout/transient_notification.xml +++ b/core/res/res/layout/transient_notification.xml @@ -22,7 +22,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:background="@drawable/toast_frame"> + android:background="?android:attr/toastFrameBackground"> <TextView android:id="@android:id/message" diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 8a506a3..7b13a75 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"وضع الطائرة"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"وضع الطائرة قيد التشغيل"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"وضع الطائرة متوقف"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"+100"</string> <string name="safeMode" msgid="2788228061547930246">"الوضع الآمن"</string> <string name="android_system_label" msgid="6577375335728551336">"نظام Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"الخدمات التي تكلفك المال"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لطريقة الإرسال. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"الالتزام بخلفية ما"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"للسماح للمالك بالالتزام بواجهة المستوى العلوي للخلفية. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"التفاعل مع مشرف الجهاز"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"للسماح للمالك بإرسال الأهداف إلى أحد مشرفي الجهاز. لا يجب استخدامه على الإطلاق للتطبيقات العادية."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"تغيير اتجاه الشاشة"</string> @@ -466,7 +469,7 @@ <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"للسماح لتطبيق ما بالكتابة على وحدة تخزين USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"للسماح لتطبيق ما بالكتابة إلى بطاقة SD."</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"تعديل/حذف محتويات وحدة تخزين الوسائط الداخلية"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"للسماح لتطبيق ما بتعديل محتويات وحدة تخزين الوسائط الداخلية."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"للسماح لأحد التطبيقات بتعديل محتويات وحدة تخزين الوسائط الداخلية."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"الدخول إلى نظام ملفات ذاكرة التخزين المؤقت"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"للسماح لتطبيق ما بقراءة نظام ملفات ذاكرة التخزين المؤقت والكتابة به."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"إجراء/تلقي مكالمات عبر الإنترنت"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"العمل"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"غير ذلك"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"أدخل رقم التعريف الشخصي"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"أدخل كلمة المرور لإلغاء التأمين"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"أدخل رقم التعريف الشخصي (PIN) لإلغاء القفل"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"كود PIN غير صحيح!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"كلمة المرور"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"تسجيل الدخول"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"اسم المستخدم غير صحيح أو كلمة المرور غير صحيحة."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"جارٍ التحقق..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"إلغاء تأمين"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"تشغيل الصوت"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 2736269..7c8a7f5 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Самолетен режим"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Самолетният режим е ВКЛЮЧЕН"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Самолетният режим е ИЗКЛЮЧЕН"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Безопасен режим"</string> <string name="android_system_label" msgid="6577375335728551336">"Системно от Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Услуги, които ви струват пари"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Разрешава на притежателя да се обвърже с интерфейса от най-високото ниво на метод на въвеждане. Нормалните приложения би трябвало никога да не се нуждаят от това."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"обвързване с тапет"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Разрешава на притежателя да се обвърже с интерфейса от най-високото ниво на тапет. Нормалните приложения би трябвало никога да не се нуждаят от това."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"взаимодействие с администратор на устройството"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Разрешава на притежателя да изпраща намерения до администратор на устройството. Нормалните приложения би трябвало никога да не се нуждаят от това."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"промяна на ориентацията на екрана"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"промяна/изтриване на съдържанието на SD картата"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Разрешава на приложението да записва в USB хранилището."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Разрешава на приложението да записва върху SD картата."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"промяна/изтриване на съдържанието на вътрешното мултимедийно хранилище"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"пром./изтр. на съдърж. на вътр. мултим. хранил."</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Разрешава на приложението да променя съдържанието на вътрешното мултимедийно хранилище."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"достъп до файловата система на кеша"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Разрешава на приложението да чете и записва във файловата система на кеша."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Служебен"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Друг"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Въведете PIN кода"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Въведете паролата, за да отключите"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Въведете PIN за отключване"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Неправилен PIN код!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Парола"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Вход"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Потребителското име или паролата са невалидни."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Проверява се…"</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Отключване"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Включване на звука"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index ba93303..1f2cde0 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Mode d\'avió"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Mode d\'avió activat"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Mode d\'avió desactivat"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"+100"</string> <string name="safeMode" msgid="2788228061547930246">"Mode segur"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Serveis de pagament"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permet al titular vincular amb la interfície de nivell superior d\'un mètode d\'entrada. No s\'hauria de necessitar mai per a les aplicacions normals."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"vincular a un empaperat"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permet al titular vincular amb la interfície de nivell superior d\'un empaperat. No s\'hauria de necessitar mai per a les aplicacions normals."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar amb un administrador del dispositiu"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permet al titular enviar intencions a un administrador del sistema. No s\'hauria de necessitar mai per a les aplicacions normals."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"canviar l\'orientació de la pantalla"</string> @@ -465,8 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificar/suprimir el contingut de les targetes SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Permet que una aplicació gravii a l\'emmagatzematge USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Permet a una aplicació escriure a la targeta SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modifica/suprimeix el contingut d\'emmagatzematge de mitjans interns"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permet que una aplicació modifiqui el contingut de l\'emmagatzematge de mitjans interns."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"mod./sup. cont. emm. mult. in."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permet que una aplicació modifiqui el contingut de l\'emmagatzematge multimèdia intern."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accedir al sistema de fitxers de la memòria cau"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permet a una aplicació llegir el sistema de fitxers de la memòria cau i escriure-hi."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"fes/rep trucades per Internet"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Feina"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Altres"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Introduïu el codi PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Introduïu la contrasenya per desbloquejar-lo"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Introdueix el PIN per desbloquejar"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Codi PIN incorrecte."</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Contrasenya"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Inicia la sessió"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nom d\'usuari o contrasenya no vàlids."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"S\'està comprovant..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Desbloqueja"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"So activat"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 7495a66..22d3357 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Režim V letadle"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Režim V letadle je ZAPNUTÝ"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Režim V letadle je VYPNUTÝ"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Nouzový režim"</string> <string name="android_system_label" msgid="6577375335728551336">"Systém Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Zpoplatněné služby"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Umožňuje držiteli vázat se na nejvyšší úroveň rozhraní pro zadávání dat. Běžné aplikace by toto nastavení nikdy neměly využívat."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"vazba na tapetu"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Umožňuje držiteli navázat se na nejvyšší úroveň rozhraní tapety. Běžné aplikace by toto oprávnění nikdy neměly potřebovat."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"komunikovat se správcem zařízení"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Umožňuje držiteli oprávnění odesílat informace správci zařízení. Běžné aplikace by toto oprávnění nikdy neměly požadovat."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"změna orientace obrazovky"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"změna/smazání obsahu karty SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Umožní zápis do úložiště USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Umožní aplikaci zápis na kartu SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"Upravit/smazat interní úlož."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Povoluje aplikaci upravovat obsah interního úložiště médií."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"přistupovat do souborového systému mezipaměti"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Umožňuje aplikaci číst a zapisovat do souborového systému mezipaměti."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"uskutečňovat a přijímat internetové hovory"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Práce"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Jiné"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Zadejte kód PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Zadejte heslo pro odblokování"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Zadejte kód PIN pro odblokování"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Nesprávný kód PIN"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Heslo"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Přihlásit se"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Neplatné uživatelské jméno nebo heslo."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Probíhá kontrola..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Odemknout"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Zapnout zvuk"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 0c9aefd..a9a2614 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Flytilstand"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Flytilstand er TIL"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Flytilstand er slået FRA"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Sikker tilstand"</string> <string name="android_system_label" msgid="6577375335728551336">"Android-system"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Tjenester, der koster dig penge"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Tillader, at brugeren forpligter sig til en inputmetodes grænseflade på øverste niveau. Bør aldrig være nødvendig til normale programmer."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"forpligt til et tapet"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Tillader, at brugeren forpligter sig til et tapets grænseflade på øverste niveau. Bør aldrig være nødvendig til normale programmer."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommunikere med en enhedsadministrator"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Tillader brugeren at sende hensigter til en enhedsadministrator. Bør aldrig være nødvendigt for almindelige programmer."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"skift skærmretning"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"ret/slet indholdet på SD-kortet"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Tillad skriv til USB-lager."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Tillader, at et program skriver til SD-kortet."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"Rediger/slet internt medielagringsindhold"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Tillader, at applikationen ændrer indholdet af det interne medielagringsindhold."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"få adgang til cache-filsystemet"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Tillader, at et program læser og skriver til cache-filsystemet."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"foretage/modtage internetopkald"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbejde"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Andre"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Indtast PIN-kode"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Indtast adgangskode for at låse op"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Indtast pinkode for at låse op"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Forkert PIN-kode!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Adgangskode"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Log ind"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ugyldigt brugernavn eller ugyldig adgangskode."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Kontrollerer ..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Lås op"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Lyd slået til"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 7856aaf..596affd 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -257,6 +257,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Ermöglicht dem Halter, sich an die Oberfläche einer Eingabemethode auf oberster Ebene zu binden. Sollte nie für normale Anwendungen benötigt werden."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"An einen Hintergrund binden"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Ermöglicht dem Halter, sich an die Oberfläche einer Eingabemethode auf oberster Ebene zu binden. Sollte nie für normale Anwendungen benötigt werden."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"Interaktion mit einem Geräteadministrator"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Ermöglicht dem Halter, Intents an einen Geräteadministrator zu senden. Sollte nie für normale Anwendungen benötigt werden."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"Bildschirmausrichtung ändern"</string> @@ -608,6 +612,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Geschäftlich"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Sonstige"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"PIN-Code eingeben"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Passwort zum Entsperren eingeben"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"PIN zum Entsperren eingeben"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Falscher PIN-Code!"</string> @@ -651,6 +657,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Passwort"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Anmelden"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ungültiger Nutzername oder ungültiges Passwort."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Überprüfung..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Entsperren"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Ton ein"</string> @@ -1030,4 +1038,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 7dc9747..146e81f 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Λειτουργία πτήσης"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Η λειτουργία πτήσης είναι ενεργοποιημένη."</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Η λειτουργία πτήσης είναι απενεργοποιημένη"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Ασφαλής λειτουργία"</string> <string name="android_system_label" msgid="6577375335728551336">"Σύστημα Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Υπηρεσίες επί πληρωμή"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Επιτρέπει στον κάτοχο τη δέσμευση στη διεπαφή ανωτάτου επιπέδου μιας μεθόδου εισόδου. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"δέσμευση σε ταπετσαρία"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Επιτρέπει στον κάτοχο τη δέσμευση στη διεπαφή ανωτάτου επιπέδου μιας ταπετσαρίας. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"επικοινωνία με έναν διαχειριστή συσκευής"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Επιτρέπει στον κάτοχο την αποστολή στόχων σε έναν διαχειριστή συσκευής. Δεν θα χρειαστεί ποτέ για κανονικές εφαρμογές."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"αλλαγή προσανατολισμού οθόνης"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"τροποποίηση/διαγραφή περιεχομένων κάρτας SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Επ. εγγρ. εφ. σε απ. χώρο USB"</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Επιτρέπει στην εφαρμογή την εγγραφή στην κάρτα SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"τροπ./διαγ. περ. απ. εσ. μνήμ."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Επιτρέπει σε μια εφαρμογή την τροποποίηση περιεχομένων της αποθήκευσης εσωτερικής μνήμης."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"πρόσβαση στο σύστημα αρχείων προσωρινής μνήμης"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Επιτρέπει σε μια εφαρμογή την ανάγνωση και την εγγραφή του συστήματος αρχείων προσωρινής μνήμης."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"πραγματοποίηση/λήψη κλήσεων μέσω Διαδικτύου"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Εργασία"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Άλλο"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Πληκτρολογήστε τον κωδικό αριθμό PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Εισαγάγετε τον κωδικό πρόσβασης για ξεκλείδωμα"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Εισαγάγετε το PIN για ξεκλείδωμα"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Εσφαλμένος κωδικός αριθμός PIN!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Κωδικός πρόσβασης"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Σύνδεση"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Έλεγχος..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Ξεκλείδωμα"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Ενεργοποίηση ήχου"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index a63e2c4..e7ed95f 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Airplane mode"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Aiplane mode is ON"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Airplane mode is OFF"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Safe mode"</string> <string name="android_system_label" msgid="6577375335728551336">"Android System"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Services that cost you money"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Allows the holder to bind to the top-level interface of an input method. Should never be needed for normal applications."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"bind to wallpaper"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Allows the holder to bind to the top-level interface of wallpaper. Should never be needed for normal applications."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interact with device admin"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Allows the holder to send intents to a device administrator. Should never be needed for normal applications."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"change screen orientation"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Work"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Other"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Enter PIN code"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Enter password to unlock"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Enter PIN to unlock"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Incorrect PIN code!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Password"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Sign in"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Invalid username or password."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Checking..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Unlock"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Sound on"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-es-rUS-xlarge/strings.xml b/core/res/res/values-es-rUS-xlarge/strings.xml index 81b3f1a..dc184b3 100644 --- a/core/res/res/values-es-rUS-xlarge/strings.xml +++ b/core/res/res/values-es-rUS-xlarge/strings.xml @@ -38,6 +38,8 @@ <!-- XL --> <string name="global_actions_airplane_mode_on_status" msgid="7272433204482202219">"El modo avión está ENCENDIDO"</string> <!-- XL --> + <string name="status_bar_notification_info_overflow" msgid="1081154808901480710">"100+"</string> + <!-- XL --> <string name="android_system_label" msgid="844561213652704593">"Sistema Androide"</string> <!-- XL --> <string name="permgroupdesc_costMoney" msgid="4836624191696189469">"Admitir que las aplicaciones realicen actividades que se cobran."</string> @@ -303,16 +305,10 @@ <!-- XL --> <string name="websearch" msgid="904596193450917688">"Búsqueda web"</string> <!-- XL --> - <string name="status_bar_notification_info_overflow" msgid="1081154808901480710">"100+"</string> - <!-- XL --> <string name="permlab_accessMtp" msgid="2385215229145694622">"implementar protocolo MTP"</string> <!-- XL --> <string name="permdesc_accessMtp" msgid="4707854877711083465">"Permite acceso al driver kernel MTP para implementar el protocolo MTP USB."</string> <!-- XL --> - <string name="permlab_mediaStorageWrite" product="default" msgid="5585262071354704256">"modificar/eliminar los contenidos del almacenamientos de medios internos"</string> - <!-- XL --> - <string name="permdesc_mediaStorageWrite" product="default" msgid="2372999661142345443">"Permite que una aplicación modifique los contenidos del almacenamiento interno de medios."</string> - <!-- XL --> <string name="policylab_encryptedStorage" msgid="488196329176602372">"Establecer la encriptación del almacenamiento"</string> <!-- XL --> <string name="policydesc_encryptedStorage" msgid="6111889605506443825">"Requiere que los datos almacenados de la aplicación estén encriptados"</string> @@ -321,6 +317,8 @@ <!-- XL --> <string name="autofill_address_summary_format" msgid="8398158823767723887">"$1$2$3"</string> <!-- XL --> + <string name="configure_input_methods" msgid="8093308517599282222">"Configurar métodos de entrada"</string> + <!-- XL --> <string name="gpsNotifTicker" msgid="6612390321359669319">"Solicitud de ubicación de <xliff:g id="NAME">%s</xliff:g>"</string> <!-- XL --> <string name="gpsNotifTitle" msgid="7533028619350196545">"Solicitud de ubicación"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 5d1a25f..de964c1 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modo avión"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"El modo avión está Encendido"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"El modo avión está Apagado"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100 +"</string> <string name="safeMode" msgid="2788228061547930246">"Modo seguro"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Servicios que te cuestan dinero"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite al propietario vincularse a la interfaz de nivel superior de un método de entrada. Se debe evitar utilizarlo en aplicaciones normales."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"vincular a un fondo de pantalla"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite al propietario vincularse a la interfaz de nivel superior de un fondo de pantalla. Se debe evitar utilizarlo en aplicaciones normales."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar con un administrador de dispositivo"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permite que el propietario envíe sus intentos a un administrador de dispositivos. No se necesita para las aplicaciones normales."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar la orientación de la pantalla"</string> @@ -465,10 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificar/suprimir el contenido de la tarjeta SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Permite que una aplicación escriba en el almacenamiento USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Admite que una aplicación escriba en la tarjeta SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modificar/eliminar los contenidos del almacenamientos de medios internos"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permite que una aplicación modifique los contenidos del almacenamiento interno de medios."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"Acceder al sistema de archivos caché"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permite que una aplicación lea y escriba el sistema de archivos caché."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"realizar o recibir llamadas por Internet"</string> @@ -607,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Trabajo"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Otro"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Ingresar el código de PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Ingresar la contraseña para desbloquear"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Ingresa el PIN para desbloquear"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"¡Código de PIN incorrecto!"</string> @@ -650,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Contraseña"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Inicia sesión"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nombre de usuario o contraseña incorrecta."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Comprobando..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Desbloquear"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Sonido encendido"</string> @@ -1028,4 +1033,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index a4d6545..ccc7dab 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modo avión"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Modo avión activado. Desactivar."</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Modo avión desactivado. Activar."</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"+100"</string> <string name="safeMode" msgid="2788228061547930246">"Modo seguro"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Servicios por los que tienes que pagar"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite enlazar con la interfaz de nivel superior de un método de introducción de texto. No debe ser necesario para las aplicaciones normales."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"enlazar con un fondo de pantalla"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite enlazar con la interfaz de nivel superior de un fondo de pantalla. No debe ser necesario para las aplicaciones normales."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactuar con el administrador de un dispositivo"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permite enviar intentos a un administrador de dispositivos. Este permiso nunca debería ser necesario para las aplicaciones normales."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar orientación de la pantalla"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificar/eliminar contenido de la tarjeta SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Permite escribir en USB"</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Permite que una aplicación escriba en la tarjeta SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"Cambiar/borrar almac interno"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permite que una aplicación modifique el contenido del almacenamiento interno de medios."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"acceder al sistema de archivos almacenado en caché"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permite que una aplicación lea y escriba el sistema de archivos almacenado en caché."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"realizar/recibir llamadas por Internet"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Trabajo"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Otro"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Introduce el código PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Introducir contraseña para desbloquear"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Introducir PIN para desbloquear"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"El código PIN es incorrecto."</string> @@ -630,7 +633,7 @@ <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Falta la tarjeta SIM"</string> <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No se ha insertado ninguna tarjeta SIM en la tableta."</string> <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"No se ha insertado ninguna tarjeta SIM en el teléfono."</string> - <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"Inserta una tarjeta SIM."</string> + <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"Inserta una tarjeta SIM"</string> <string name="emergency_calls_only" msgid="6733978304386365407">"Solo llamadas de emergencia"</string> <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Bloqueada para la red"</string> <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La tarjeta SIM está bloqueada con el código PUK."</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Contraseña"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Acceder"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nombre de usuario o contraseña no válido"</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Comprobando..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Desbloquear"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Activar sonido"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 767655d..d3eac2d 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"حالت هواپیما"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"حالت هواپیما روشن است"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"حالت هواپیما خاموش است"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"حالت ایمن"</string> <string name="android_system_label" msgid="6577375335728551336">"سیستم Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"سرویس های غیر رایگان"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"به نگهدارنده اجازه می دهد به رابط سطح بالای یک روش ورودی متصل شود. هرگز برای برنامه های معمولی مورد نیاز نیست."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"پیوند شده به تصویر زمینه"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"به نگهدارنده اجازه می دهد که به رابط سطح بالای تصویر زمینه متصل شود. هرگز برای برنامه های معمولی مورد نیاز نیست."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"تعامل با یک سرپرست دستگاه"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"به نگهدارنده اجازه می دهد مفاد را به یک سرپرست دستگاه ارسال کند. هرگز برای برنامه های معمولی مورد نیاز نیست."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"تغییر جهت صفحه"</string> @@ -465,8 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"اصلاح کردن/حذف محتویات کارت SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"به یک برنامه کاربردی اجازه می دهد تا دستگاه USB را بنویسید."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"به یک برنامه کاربردی اجازه می دهد در کارت SD رایت کند."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"اصلاح/حذف محتواهای ذخیره سازی رسانه داخلی"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"به یک برنامه کاربردی برای اصلاح محتواهای حافظه رسانه داخلی اجازه می دهد."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"تغییر/حذف محتواهای حافظه رسانه داخلی"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"به یک برنامه کاربردی برای تغییر محتواهای حافظه رسانه داخلی اجازه می دهد."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"دسترسی به سیستم فایل حافظه پنهان"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"به یک برنامه کاربردی امکان می دهد سیستم فایل حافظه پنهان را بخواند و بنویسد."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"علامتگذاری/دریافت تماس های اینترنتی"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"محل کار"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"سایر موارد"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"کد پین را وارد کنید"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"رمز ورود را برای بازگشایی قفل وارد کنید"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"کد پین را برای بازگشایی قفل وارد کنید"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"پین کد اشتباه است!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"رمز ورود"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"ورود به سیستم"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"نام کاربر یا رمز ورود نامعتبر است."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"در حال بررسی..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"بازگشایی قفل"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"صدا روشن"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index d8d13ef..0e12063 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Lentokonetila"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Lentokonetila on KÄYTÖSSÄ"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Lentokonetila on POIS KÄYTÖSTÄ"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Suojattu tila"</string> <string name="android_system_label" msgid="6577375335728551336">"Android-järjestelmä"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Maksulliset palvelut"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Antaa sovelluksen sitoutua syöttötavan ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"sido taustakuvaan"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Antaa sovelluksen sitoutua taustakuvan ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommunikoi laitteen järjestelmänvalvojan kanssa"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Antaa sovelluksen lähettää kyselyitä laitteen järjestelmänvalvojalle. Ei tavallisten sovelluksien käyttöön."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"muuta näytön suuntaa"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"muokkaa/poista SD-kortin sisältöä"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Antaa sovelluksen kirjoittaa USB-tallennustilaan."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Antaa sovelluksen kirjoittaa SD-kortille."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"muokkaa/poista säilytystilan sisältöä"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"muokkaa/poista sisäisen säilytystilan sisältöä"</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Antaa sovelluksen muokata sisäisen tallennustilan sisältöä."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"käytä välimuistin tiedostojärjestelmää"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Antaa sovelluksen lukea välimuistin tiedostojärjestelmää ja kirjoittaa sinne."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Työ"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Muu"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Anna PIN-koodi"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Poista lukitus antamalla salasana"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Poista lukitus antamalla PIN-koodi"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Virheellinen PIN-koodi!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Salasana"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Kirjaudu sisään"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Virheellinen käyttäjänimi tai salasana."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Tarkistetaan..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Poista lukitus"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Ääni käytössä"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index c3fb6eb..194f23f 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -257,6 +257,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permet au support de se connecter à l\'interface de plus haut niveau d\'un mode de saisie. Les applications normales ne devraient jamais avoir recours à cette fonctionnalité."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"Se fixer sur un fond d\'écran"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permet au support de se fixer sur l\'interface de plus haut niveau d\'un fond d\'écran. Les applications normales ne devraient jamais avoir recours à cette fonctionnalité."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir avec l\'administrateur du périphérique"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permet à l\'application d\'envoyer des intentions à l\'administrateur du périphérique. Les applications standard ne devraient jamais avoir recours à cette fonctionnalité."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"Changement d\'orientation de l\'écran"</string> @@ -608,6 +612,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Professionnelle"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Autre"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Saisissez le code PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Saisissez le mot de passe pour procéder au déverrouillage."</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Saisissez le code PIN pour procéder au déverrouillage."</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Le code PIN est incorrect !"</string> @@ -651,6 +657,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Mot de passe"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Se connecter"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nom d\'utilisateur ou mot de passe incorrect."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Vérification..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Débloquer"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Son activé"</string> @@ -1030,4 +1038,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index fe9f319..43a1c28 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -256,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Nositelju omogućuje da se veže uz sučelje najviše razine za metodu unosa. Nikad ne bi trebalo koristiti za uobičajene aplikacije."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"povezano s pozadinskom slikom"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Nositelju omogućuje da se veže uz sučelje najviše razine za pozadinsku sliku. Nikad ne bi trebalo koristiti za uobičajene aplikacije."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcija s administratorom uređaja"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Nositelju omogućuje slanje namjera administratoru uređaja. Nikad ne bi trebalo koristiti za uobičajene aplikacije."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"promjena orijentacije zaslona"</string> @@ -605,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Posao"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Drugo"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Unesite PIN kôd"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Unesite zaporku za otključavanje"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Unesite PIN za otključavanje"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Netočan PIN kôd!"</string> @@ -648,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Zaporka"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Prijava"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nevažeće korisničko ime ili zaporka."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Provjera..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Otključaj"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Zvuk je uključen"</string> @@ -1024,4 +1032,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index a090f0b..c4ee0ff 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Repülőgép üzemmód"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Repülőgép üzemmód bekapcsolva"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Repülőgép üzemmód kikapcsolva"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Biztonsági üzemmód"</string> <string name="android_system_label" msgid="6577375335728551336">"Android rendszer"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Fizetős szolgáltatások"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Lehetővé teszi a használó számára a beviteli módszer legfelső szintű kezelőfelületéhez való csatlakozást. A normál alkalmazások soha nem használják ezt."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"összekapcsolás háttérképpel"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Lehetővé teszi a használó számára, hogy csatlakozzon egy háttérkép legfelső szintű kezelőfelületéhez. A normál alkalmazásoknak erre soha nincs szüksége."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"az eszközkezelő használata"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Lehetővé teszi a használó számára, hogy célokat küldjön egy eszközkezelőnek. A normál alkalmazásoknak erre soha nincs szüksége."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"képernyő irányának módosítása"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"az SD-kártya tartalmának módosítása és törlése"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Lehetővé teszi az alkalmazások számára, hogy írjanak az USB-tárra."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Lehetővé teszi egy alkalmazás számára, hogy írjon az SD-kártyára."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"a belső médiatároló tartalmának módosítása és törlése"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"belső tár tartalmának módosítása/törlése"</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Lehetővé teszi az alkalmazások számára, hogy módosítsák a belső tárhely tartalmát."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"hozzáférés a gyorsítótár fájlrendszeréhez"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Lehetővé teszi egy alkalmazás számára a gyorsítótár fájlrendszerének olvasását és írását."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Munkahely"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Egyéb"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Adja meg a PIN-kódot"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"A feloldáshoz írja be a jelszót"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Feloldáshoz írja be a PIN kódot"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Helytelen PIN-kód."</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Jelszó"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Bejelentkezés"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Érvénytelen felhasználónév vagy jelszó."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Ellenőrzés..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Feloldás"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Hang bekapcsolása"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 8f738d6..537ae5f 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Mode pesawat"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Mode pesawat HIDUP"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Mode pesawat MATI"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Mode aman"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistem Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Layanan berbayar"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi pada suatu metode masukan. Tidak diperlukan untuk aplikasi normal."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"mengikat ke wallpaper"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Mengizinkan pemegang mengikat antarmuka tingkat tinggi dari suatu wallpaper. Tidak diperlukan untuk aplikasi normal."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"berinteraksi dengan admin perangkat"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Mengizinkan pemegang mengirimkan tujuan kepada administrator perangkat. Tidak diperlukan untuk aplikasi normal."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"ubah orientasi layar"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Kerjaan"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Lainnya"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Masukkan kode PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Masukkan sandi untuk membuka"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Masukkan PIN untuk membuka kunci"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Kode PIN salah!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Sandi"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Masuk"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nama pengguna atau sandi tidak valid."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Memeriksa..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Buka kunci"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Suara hidup"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 887a96d..0d24924 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modalità aereo"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Modalità aereo attiva"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Modalità aereo non attiva"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Modalità provvisoria"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Servizi che prevedono un costo"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Consente l\'associazione all\'interfaccia principale di un metodo di inserimento. Non dovrebbe essere mai necessario per le normali applicazioni."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"associazione a sfondo"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Consente l\'associazione di uno sfondo all\'interfaccia principale. Non dovrebbe mai essere necessario per le normali applicazioni."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interazione con un amministratore dispositivo"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Consente l\'invio di intent a un amministratore del dispositivo. L\'autorizzazione non deve mai essere necessaria per le normali applicazioni."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"modifica orientamento dello schermo"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificare/eliminare i contenuti della scheda SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Consente di scrivere nell\'archivio USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Consente a un\'applicazione di scrivere sulla scheda SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modifica/eliminaz. contenuti archivio media int."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Consente a un\'applicazione di modificare i contenuti dell\'archivio media interno."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accesso al filesystem nella cache"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Consente a un\'applicazione di leggere e scrivere il filesystem nella cache."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"effettuazione/ricezione chiamate Internet"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Lavoro"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Altro"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Inserisci il PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Inserisci password per sbloccare"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Inserisci PIN per sbloccare"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Codice PIN errato."</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Password"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Accedi"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Password o nome utente non valido."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Controllo in corso..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Sblocca"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Audio attivato"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index eab8673..387073c 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"מצב טיסה"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"מצב טיסה מופעל"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"מצב טיסה כבוי"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"מצב בטוח"</string> <string name="android_system_label" msgid="6577375335728551336">"מערכת Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"שירותים שעולים לך כסף"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"מאפשר למחזיק להכפיף לממשק ברמה עליונה של שיטת קלט. לא אמור להידרש לעולם ביישומים רגילים."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"קשור לטפט"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"מאפשר למחזיק לקשור לממשק ברמה עליונה של טפט. לא אמור להידרש לעולם ביישומים רגילים."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"קיים אינטראקציה עם מנהל מכשיר"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"מאפשר למשתמש לשלוח כוונות למנהל התקן. לא אמור להידרש לעולם ביישומים רגילים."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"שנה את כיוון המסך"</string> @@ -465,8 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"שנה/מחק את התוכן של כרטיס SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"מאפשר ליישום לכתוב לאמצעי אחסון מסוג USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"מאפשר ליישום לכתובת לכרטיס ה-SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"שנה/מחק תכנים של מדיית אחסון פנימית"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"מאפשר ליישום לשנות את התכנים של אחסון המדיה הפנימי."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"שנה/מחק תוכן של מדיית אחסון פנימית"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"מאפשר ליישום לשנות את התוכן של מדיית האחסון הפנימית."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"גישה למערכת הקבצים של הקובץ השמור"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"מאפשר ליישום לקרוא ולכתוב במערכת הקבצים של הקובץ השמור."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"בצע/קבל שיחות אינטרנט"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"עבודה"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"אחר"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"הזן קוד PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"הזן סיסמה לביטול הנעילה"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"הזן PIN לביטול נעילה"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"קוד PIN שגוי!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"סיסמה"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"כניסה"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"שם משתמש או סיסמה לא חוקיים."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"בודק..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"בטל נעילה"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"קול פועל"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index c1b9f5d..f9b5c7d 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -257,6 +257,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"入力方法のトップレベルインターフェースに関連付けることを所有者に許可します。通常のアプリケーションにはまったく必要ありません。"</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"壁紙にバインド"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"壁紙のトップレベルインターフェースへのバインドを所有者に許可します。通常のアプリケーションでは不要です。"</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"デバイス管理者との通信"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"デバイス管理者へのintentの送信を所有者に許可します。通常のアプリケーションでは不要です。"</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"画面の向きの変更"</string> @@ -608,6 +612,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"勤務先"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"その他"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"PINコードを入力"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"ロックを解除するにはパスワードを入力"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"ロックを解除するにはPINを入力"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PINコードが正しくありません。"</string> @@ -651,6 +657,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"パスワード"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"ログイン"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"ユーザー名またはパスワードが正しくありません。"</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"確認中..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"ロック解除"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"サウンドON"</string> @@ -1030,4 +1038,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index eda018d..5ab9684 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"비행기 모드"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"비행기 모드 사용"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"비행기 모드 사용 안함"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"안전 모드"</string> <string name="android_system_label" msgid="6577375335728551336">"Android 시스템"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"요금이 부과되는 서비스"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"권한을 가진 프로그램이 입력 방법에 대한 최상위 인터페이스를 사용하도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"배경화면 연결"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"권한을 가진 프로그램이 배경화면에 대한 최상위 인터페이스를 사용하도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"기기 관리자와 상호 작용"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"보유자가 기기 관리자에게 인텐트를 보낼 수 있도록 합니다. 일반 애플리케이션에는 절대로 필요하지 않습니다."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"화면 방향 변경"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"SD 카드 콘텐츠 수정/삭제"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"애플리케이션에서 USB 저장소의 정보를 변경할 수 있습니다."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"애플리케이션이 SD 카드에 쓸 수 있도록 합니다."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"내부 미디어 저장소 콘텐츠 수정/삭제"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"애플리케이션이 내부 미디어 저장소의 콘텐츠를 수정할 수 있도록 합니다."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"캐시 파일시스템 액세스"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"애플리케이션이 캐시 파일시스템을 읽고 쓸 수 있도록 합니다."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"인터넷 전화 걸기/받기"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"직장"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"기타"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"PIN 코드 입력"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"잠금을 해제하려면 비밀번호 입력"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"잠금을 해제하려면 PIN 입력"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PIN 코드가 잘못되었습니다."</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"비밀번호"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"로그인"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"사용자 이름 또는 비밀번호가 잘못되었습니다."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"확인 중..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"잠금해제"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"사운드 켜기"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index f9f01e4..d979c4c 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Lėktuvo režimas"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"ĮJUNGTAS lėktuvo režimas"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"lėktuvo režimas IŠJUNGTAS"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Saugos režimas"</string> <string name="android_system_label" msgid="6577375335728551336">"„Android“ sistema"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Paslaugos, už kurias mokėjote"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Leidžia savininkui susisaistyti su įvesties būdo aukščiausio lygio sąsaja. Neturėtų reikėti įprastoms programoms."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"susaistyti su darbalaukio fonu"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Leidžia savininkui susisaistyti su aukščiausio lygio darbalaukio fono sąsaja. Neturėtų reikėti įprastose programose."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"sąveikauti su įrenginio administratoriumi"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Leidžia savininkui siųsti tikslus įrenginio administratoriui. Neturėtų reikėti įprastose programose."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"keisti ekrano padėtį"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"keisti / ištrinti SD kortelės turinį"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Leidžiama programai įrašyti į USB atmintinę."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Leidžia programai rašyti į SD kortelę."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"keisti / ištrinti vidinės medijos atmintinės turinį"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"keisti / ištr. vid. med. atm. tur."</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Leidžiama programai keisti vidinės medijos atmintinės turinį."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"pasiekti talpyklos failų sistemą"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Leidžia programai skaityti ir rašyti į talpyklos failų sistemą."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Darbas"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Kita"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Įveskite PIN kodą"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Įveskite slaptažodį, kad atrakintumėte"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Jei norite atrakinti, įveskite PIN kodą"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Neteisingas PIN kodas!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Slaptažodis"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Prisijungti"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Neteisingas naudotojo vardas ar slaptažodis."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Tikrinama..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Atblokuoti"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Garsas įjungtas"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 6d25c54..ad108ff 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Lidojuma režīms"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Lidojuma režīms ir IESLĒGTS."</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Lidojuma režīms ir IZSLĒGTS."</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Drošais režīms"</string> <string name="android_system_label" msgid="6577375335728551336">"Android sistēma"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Maksas pakalpojumi"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Ļauj īpašniekam saistīt ar ievades metodes augšējā līmeņa saskarni. Parastajām lietojumprogrammām nekad nav nepieciešama."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"saistīt ar tapeti"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Ļauj īpašniekam saistīties ar tapetes augšējā līmeņa saskarni. Parastajās lietojumprogrammās nekad nav nepieciešama."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"mijiedarboties ar ierīces administratoru"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Ļauj īpašniekam sūtīt nolūkus ierīces administratoram. Nekad nav nepieciešams parastajām lietojumprogrammām."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"mainīt ekrāna orientāciju"</string> @@ -465,8 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"pārveidot/dzēst SD kartes saturu"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Ļauj lietoj. rakstīt USB kr."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Ļauj lietojumprogrammai rakstīt SD kartē."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"pārveidot/dzēst datu nesēja iekšējās krātuves saturu"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Ļauj lietojumprogrammai pārveidot iekšējas datu nesēja krātuves saturu."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"pārv./dz.datu n.iekš.atm.sat."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Ļauj lietojumprogrammai pārveidot datu nesēja iekšējas atmiņas saturu."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"piekļūt kešatmiņas failu sistēmai"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Ļauj lietojumprogrammai lasīt kešatmiņas failu sistēmu un rakstīt tajā."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"veikt/saņemt interneta zvanus"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Darbs"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Cits"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Ievadiet PIN kodu"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Lai atbloķētu, ievadiet paroli."</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Lai atbloķētu, ievadiet PIN"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PIN kods nav pareizs."</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Parole"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Pierakstīties"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Lietotājvārds vai parole nav derīga."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Notiek pārbaude..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Atbloķēt"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Skaņa ir ieslēgta"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index aed9163..5a67d6f 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Flymodus"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Flymodus er på"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Flymodus er av"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"Over 100"</string> <string name="safeMode" msgid="2788228061547930246">"Sikkermodus"</string> <string name="android_system_label" msgid="6577375335728551336">"Android-system"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Betaltjenester"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Lar applikasjonen binde til toppnivågrensesnittet for en inndatametode. Vanlige applikasjoner bør aldri trenge dette."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"bind til bakgrunnsbilde"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Lar innehaveren binde det øverste nivået av grensesnittet til en bakgrunnsbilder. Skal ikke være nødvendig for vanlige programmer."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"kommuniser med enhetsadministrator"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Tillater innehaveren å sende hensikter til enhetsadministrator. Bør aldri være nødvendig for normale programmer."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"snu skjermen"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"redigere/slette innhold på minnekort"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Prog. skriver til USB-lagr."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Lar applikasjonen skrive til minnekortet."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"endre eller slette innhold på interne medier"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Tillater et program til å endre innholdet i interne medier."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"tilgang til bufrede filer"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Tillater et program å lese og skrive til bufrede filer."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"foreta/motta Internett-anrop"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbeid"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Annen"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Skriv inn PIN-kode:"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Skriv inn passord for å låse opp"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Skriv inn personlig kode for å låse opp"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Gal PIN-kode!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Passord"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Logg på"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ugyldig brukernavn eller passord."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Kontrollerer ..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Lås opp"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Lyd på"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 062caee..979b9a3 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Vliegmodus"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Vliegmodus is AAN"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Vliegmodus is UIT"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Veilige modus"</string> <string name="android_system_label" msgid="6577375335728551336">"Android-systeem"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Services waarvoor u moet betalen"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Hiermee staat u de houder toe zich te verbinden met de hoofdinterface van een invoermethode. Nooit vereist voor normale toepassingen."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"verbinden met een achtergrond"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Hiermee staat u de houder toe zich te verbinden met de hoofdinterface van een achtergrond. Nooit vereist voor normale toepassingen."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interactie met apparaatbeheer"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Staat de houder toe intenties te verzenden naar een apparaatbeheerder. Nooit vereist voor normale toepassingen."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"schermstand wijzigen"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"inhoud op de SD-kaart aanpassen/verwijderen"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Hiermee kan een toepassing schrijven naar de USB-opslag."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Hiermee kan een toepassing schrijven naar de SD-kaart."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"inh. mediaopsl. wijz./verw."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Hiermee kan een toepassing de inhoud van interne mediaopslag aanpassen."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"het cachebestandssysteem openen"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Staat een toepassing toe het cachebestandssysteem te lezen en te schrijven."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"internetoproepen starten/ontvangen"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Werk"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Overig"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"PIN-code invoeren"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Voer het wachtwoord in om te ontgrendelen"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Voer de PIN-code in om te ontgrendelen"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Onjuiste PIN-code!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Wachtwoord"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Aanmelden"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Gebruikersnaam of wachtwoord ongeldig."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Controleren..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Ontgrendelen"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Geluid aan"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 868f168..85aeaf4 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Tryb samolotowy"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Tryb samolotowy jest włączony"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Tryb samolotowy jest wyłączony"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Tryb awaryjny"</string> <string name="android_system_label" msgid="6577375335728551336">"System Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Usługi płatne"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Pozwala na tworzenie powiązania z interfejsem najwyższego poziomu metody wejściowej. To uprawnienie nie powinno być nigdy wymagane przez zwykłe aplikacje."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"powiązanie z tapetą"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Umożliwia posiadaczowi powiązać interfejs najwyższego poziomu dla tapety. Nie powinno być nigdy potrzebne w przypadku zwykłych aplikacji."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcja z administratorem urządzenia"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Zezwala posiadaczowi na wysyłanie informacji o zamiarach do administratora urządzenia. Opcja nie powinna być nigdy potrzebna w przypadku zwykłych aplikacji."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"zmienianie orientacji ekranu"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modyfikowanie/usuwanie zawartości karty SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Umożliwia zapis na nośnik USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Umożliwia aplikacji zapis na karcie SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modyf./usuw. zawartości pam. wewn."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Zezwala aplikacji na modyfikowanie zawartości pamięci wewnętrznej."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"dostęp do systemu plików pamięci podręcznej"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Zezwala aplikacji na odczyt i zapis w systemie plików pamięci podręcznej."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"nawiązywanie/odbieranie połączeń przez internet"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Służbowy"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Inny"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Wprowadź kod PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Wprowadź hasło, aby odblokować"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Wprowadź kod PIN, aby odblokować"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Błędny kod PIN!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Hasło"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Zaloguj się"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Błędna nazwa użytkownika lub hasło."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Trwa sprawdzanie..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Odblokuj"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Włącz dźwięk"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index f306b8d..bd1cb56 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modo de avião"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"O modo de voo está activado"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"O modo de voo está desactivado"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Modo seguro"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Serviços que implicam pagamento"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite ao titular vincular a interface de nível superior a um método de entrada de som. Nunca deve ser necessário para aplicações normais."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"vincular a uma imagem de fundo"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite ao titular vincular a interface de nível superior de uma imagem de fundo. Nunca deverá ser necessário para aplicações normais."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir com um administrador do dispositivo"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permite ao titular enviar intenções para um administrador do dispositivo. Nunca deverá ser necessário para aplicações normais."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"mudar orientação do ecrã"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificar/eliminar conteúdo do cartão SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Permite que uma aplicação escreva no armaz. USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Permite que uma aplicação escreva no cartão SD."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modificar/eliminar conteúdo de suportes de armazenamento interno"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permite à aplicação modificar o conteúdo dos suportes de armazenamento interno."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"aceder ao sistema de ficheiros da cache"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permite a uma aplicação ler e escrever no sistema de ficheiros da cache."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"fazer/receber chamadas pela internet"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Emprego"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Outro"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Introduzir código PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Introduza a palavra-passe para desbloquear"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Introduza o PIN para desbloquear"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Código PIN incorrecto!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Palavra-passe"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Iniciar sessão"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nome de utilizador ou palavra-passe inválidos."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"A verificar..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Desbloquear"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Som activado"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 7cd6cc4..6cf4404 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -257,6 +257,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite que o detentor se sujeite à interface de nível superior de um método de entrada. Aplicativos normais não devem precisar disso em momento algum."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"sujeitar-se a um plano de fundo"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite que o detentor se sujeite à interface de nível superior de um plano de fundo. Aplicativos normais não devem precisar disso em momento algum."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interagir com o administrador de um dispositivo"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permite que o detentor envie tentativas ao administrador de um dispositivo. Não é necessário para aplicativos normais."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"alterar orientação da tela"</string> @@ -608,6 +612,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Comercial"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Outros"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Digite o código PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Digite a senha para desbloquear"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Digite o PIN para desbloquear"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Código PIN incorreto!"</string> @@ -651,6 +657,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Senha"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Fazer login"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nome de usuário ou senha inválidos."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Verificando..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Desbloquear"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Som ativado"</string> @@ -1030,4 +1038,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml index a3d8191..54fb39e 100644 --- a/core/res/res/values-rm/strings.xml +++ b/core/res/res/values-rm/strings.xml @@ -259,6 +259,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permetta da sa fixar al nivel d\'interfatscha pli aut dad ina metoda d\'endataziun. Betg previs per applicaziuns normalas."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"sa fixar vid in fund davos"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permetta da sa fixar al nivel d\'interfatscha pli aut dad ina metoda d\'endataziun. Betg previs per applicaziuns normalas."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interacziun cun in administratur dad apparats"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permetta al possessur da trametter intenziuns a l\'administratur dal apparat periferic. Betg previs per applicaziuns normalas."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"midar l\'orientaziun dal visur"</string> @@ -636,6 +640,8 @@ <!-- no translation found for sipAddressTypeOther (4408436162950119849) --> <skip /> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Endatar il code PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Endatai il pled-clav per debloccar."</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Endatar il PIN per debloccar"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Code PIN nuncorrect!"</string> @@ -681,6 +687,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Pled-clav"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"S\'annunziar"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Num d\'utilisader u pled-clav nunvalid."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Verifitgar..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Debloccar"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Tun activà"</string> @@ -1089,4 +1097,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 07a6213..52f30c2 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Mod Avion"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Modul Avion este ACTIVAT"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Modul avion este DEZACTIVAT"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100 +"</string> <string name="safeMode" msgid="2788228061547930246">"Mod sigur"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistemul Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Servicii cu plată"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Permite deţinătorului să se conecteze la interfaţa de nivel superior a unei metode de intrare. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"conectare la o imagine de fundal"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Permite proprietarului să se conecteze la interfaţa de nivel superior a unei imagini de fundal. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interacţionare cu administratorul unui dispozitiv"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Permite proprietarului să trimită intenţii către un administrator al dispozitivului. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"modificare orientare ecran"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modificare/ştergere conţinut card SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Permite unei apl. să scrie în stoc. USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Permite unei aplicaţii să scrie pe cardul SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modificare/ştergere a conţinutului din stocarea media internă"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"mod./şt. con. stoc. media int."</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permite unei aplicaţii să modifice conţinutul stocării media interne."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accesare sistem de fişiere cache"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permite unei aplicaţii să scrie şi să citească sistemul de fişiere cache."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Serviciu"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Altul"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Introduceţi codul PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Introduceţi parola pentru a debloca"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Introduceţi PIN pentru deblocare"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Cod PIN incorect!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Parolă"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Conectaţi-vă"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nume de utilizator sau parolă nevalide."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Se verifică..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Deblocaţi"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Sunet activat"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index dfc5d08..46261d1 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Режим полета"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Режим полета ВКЛЮЧЕН"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Режим полета ВЫКЛЮЧЕН"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Безопасный режим"</string> <string name="android_system_label" msgid="6577375335728551336">"Система Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Платные услуги"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Позволяет выполнять привязку к интерфейсу ввода верхнего уровня. Не требуется для обычных приложений."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"связать с фоновым рисунком"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Разрешает выполнять привязку к интерфейсу фонового рисунка верхнего уровня. Не требуется для обычных приложений."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"взаимодействовать с администратором устройства"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Позволяет владельцу отправлять целевые значения администратору устройства. Никогда не используется обычными приложениями."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"изменять ориентацию экрана"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"изменять/удалять содержимое SD-карты"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Разрешает приложению запись на USB-накопитель."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Разрешает приложению запись на SD-карту"</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"изм./удал. содерж. мультимедиа"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Позволяет приложению изменять содержание внутреннего хранилища мультимедиа."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"получать доступ к кэшу файловой системы"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Разрешает программам доступ для записи и чтения к кэшу файловой системы."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"совершать и принимать интернет-вызовы"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Рабочий"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Другой"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Введите PIN-код"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Введите пароль для разблокировки"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Введите PIN-код для разблокировки"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Неверный PIN-код!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Пароль"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Вход"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Неверное имя пользователя или пароль."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Проверка..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Разблокировать"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Вкл. звук"</string> @@ -669,7 +674,7 @@ <string name="js_dialog_before_unload" msgid="1901675448179653089">"Перейти с этой страницы?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Нажмите \"ОК\", чтобы продолжить, или \"Отмена\", чтобы остаться на текущей странице."</string> <string name="save_password_label" msgid="6860261758665825069">"Подтвердите"</string> <string name="double_tap_toast" msgid="1068216937244567247">"Совет: нажмите дважды, чтобы увеличить и уменьшить масштаб."</string> - <string name="autofill_this_form" msgid="1272247532604569872">"Автозап."</string> + <string name="autofill_this_form" msgid="1272247532604569872">"Автозаполнение"</string> <string name="setup_autofill" msgid="8154593408885654044">"Нужна настройка"</string> <string name="autofill_address_name_separator" msgid="2504700673286691795">" "</string> <!-- no translation found for autofill_address_summary_name_format (3268041054899214945) --> @@ -692,7 +697,7 @@ <string name="save_password_never" msgid="8274330296785855105">"Никогда"</string> <string name="open_permission_deny" msgid="5661861460947222274">"У вас нет разрешения на открытие этой страницы."</string> <string name="text_copied" msgid="4985729524670131385">"Текст скопирован в буфер обмена."</string> - <string name="more_item_label" msgid="4650918923083320495">"Дополнительно"</string> + <string name="more_item_label" msgid="4650918923083320495">"Ещё"</string> <string name="prepend_shortcut_label" msgid="2572214461676015642">"Меню+"</string> <string name="menu_space_shortcut_label" msgid="2410328639272162537">"пробел"</string> <string name="menu_enter_shortcut_label" msgid="2743362785111309668">"ввод"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index e7bbaf6..0722bc9 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Režim V lietadle"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Režim V lietadle je ZAPNUTÝ"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Režim V lietadle je VYPNUTÝ"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Núdzový režim"</string> <string name="android_system_label" msgid="6577375335728551336">"Systém Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Spoplatnené služby"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Umožňuje držiteľovi viazať sa na najvyššiu úroveň rozhrania metódy vstupu. Bežné aplikácie by toto nastavenie nemali vôbec využívať."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"väzba na tapetu"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Umožňuje držiteľovi viazať sa na najvyššiu úroveň rozhrania tapety. Bežné aplikácie by toto nastavenie vôbec nemali využívať."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"komunikovať so správcom zariadenia"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Umožňuje držiteľovi odosielať informácie správcovi zariadenia. Bežné aplikácie by toto oprávnenie nemali nikdy požadovať."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"zmena orientácie obrazovky"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Práca"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Iné"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Zadajte kód PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Zadajte heslo pre odomknutie"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Zadajte kód PIN pre odomknutie"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Nesprávny kód PIN"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Heslo"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Prihlásiť sa"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Neplatné používateľské meno alebo heslo."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Prebieha kontrola..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Odomknúť"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Zapnúť zvuk"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index c6b4302..1587d2e 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Način za letalo"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Način za letalo je VKLOPLJEN"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Način za letalo je IZKLOPLJEN"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100 +"</string> <string name="safeMode" msgid="2788228061547930246">"Varni način"</string> <string name="android_system_label" msgid="6577375335728551336">"Sistem Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Plačljive storitve"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Dovoljuje lastniku, da se poveže z vmesnikom načina vnosa najvišje ravni. Tega nikoli ni treba uporabiti za navadne programe."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"povezovanje z ozadjem"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Dovoljuje, da se lastnik poveže z vmesnikom ozadja najvišje ravni. Tega nikoli ni treba uporabiti za navadne programe."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"interakcija s skrbnikom naprave"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Dovoljuje lastniku, da pošlje namere skrbniku naprave. Nikoli se ne uporablja za navadne programe."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"spreminjanje usmerjenosti zaslona"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Služba"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Drugo"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Vnesite kodo PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Vnesite geslo za odklop"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Vnesite PIN za odklepanje"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Nepravilna koda PIN."</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Geslo"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Prijava"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Neveljavno uporabniško ime ali geslo."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Preverjanje ..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Odkleni"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Vklopi zvok"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 0493685..dcf9f1a 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Режим рада у авиону"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Режим рада у авиону је УКЉУЧЕН"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Режим рада у авиону је ИСКЉУЧЕН"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Безбедни режим"</string> <string name="android_system_label" msgid="6577375335728551336">"Android систем"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Услуге које се плаћају"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Омогућава власнику да се обавеже на интерфејс методе уноса највишег нивоа. Обичне апликације никада не би требало да је користе."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"обавезивање на позадину"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Омогућава власнику да се обавеже на интерфејс позадине највишег нивоа. Обичне апликације никада не би требало да је користе."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"интеракција са администратором уређаја"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Омогућава власнику да шаље своје намере администратору уређаја. Обичне апликације никада не би требало да је користе."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"промена положаја екрана"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Посао"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Други"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Унесите PIN кôд"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Унесите лозинку за откључавање"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Унесите PIN да бисте откључали тастатуру"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PIN кôд је нетачан!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Лозинка"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Пријави ме"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Неважеће корисничко име или лозинка."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Проверавање..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Откључај"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Укључи звук"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index a60e7f9..13cd84c 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Flygplansläge"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Flygplansläge är AKTIVERAT"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Flygplansläge är INAKTIVERAT"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">">100"</string> <string name="safeMode" msgid="2788228061547930246">"Säkert läge"</string> <string name="android_system_label" msgid="6577375335728551336">"Android-system"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Tjänster som kostar pengar"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Innehavaren tillåts att binda till den översta nivåns gränssnitt för en inmatningsmetod. Ska inte behövas för vanliga program."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"binda till en bakgrund"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Innehavaren tillåts att binda till den översta nivåns gränssnitt för en bakgrund. Ska inte behövas för vanliga program."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"arbeta med en enhetsadministratör"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Tillåter att innehavaren skickar avsikter till en enhetsadministratör. Vanliga program behöver aldrig göra detta."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"ändra bildskärmens rikting"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"ändra/ta bort innehåll på SD-kortet"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Får skriva till USB-enheten."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Tillåter att ett program skriver till SD-kortet."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"ändra/ta bort innehåll"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Tillåter att en app ändrar innehållet på den interna lagringsenheten."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"åtkomst till cachefilsystemet"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Tillåter att ett program läser och skriver till cachefilsystemet."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"ringa/ta emot Internetsamtal"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Arbete"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Övrigt"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Ange PIN-kod"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Ange lösenord för att låsa upp"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Ange PIN-kod för att låsa upp"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Fel PIN-kod!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Lösenord"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Logga in"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ogiltigt användarnamn eller lösenord."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Kontrollerar ..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Lås upp"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Ljud på"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index f192c6d..30a5ee7 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"โหมดใช้งานบนเครื่องบิน"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"เปิดโหมดใช้งานบนเครื่องบิน"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"โหมดใช้งานบนเครื่องบินปิดทำงานอยู่"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"โหมดปลอดภัย"</string> <string name="android_system_label" msgid="6577375335728551336">"ระบบ Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"บริการที่ต้องเสียค่าใช้จ่าย"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"อนุญาตให้ผู้ถือเชื่อมโยงกับอินเทอร์เฟซระดับสูงสุดของวิธีป้อนข้อมูล ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"เชื่อมโยงกับวอลเปเปอร์"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"อนุญาตให้ผู้ถือเชื่อมโยงกับอินเทอร์เฟซระดับสูงสุดของวอลเปเปอร์ ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"ติดต่อกับผู้ดูแลอุปกรณ์"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"อนุญาตให้ผู้ถือส่งเนื้อหาไปยังโปรแกรมควบคุมอุปกรณ์ ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"เปลี่ยนการวางแนวหน้าจอ"</string> @@ -465,7 +468,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"แก้ไข/ลบข้อมูลการ์ด SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"อนุญาตให้แอปพลิเคชันเขียนไปยังที่เก็บข้อมูล USB"</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"อนุญาตให้แอปพลิเคชันเขียนลงบนการ์ด SD"</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"แก้ไข/ลบเนื้อหาของที่เก็บข้อมูลสื่อภายใน"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"แก้/ลบเนื้อหาข้อมูลสื่อภายใน"</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"อนุญาตให้แอปพลิเคชันแก้ไขเนื้อหาของที่เก็บข้อมูลสื่อภายใน"</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"เข้าถึงระบบไฟล์แคช"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"อนุญาตให้แอปพลิเคชันอ่านและเขียนระบบไฟล์แคช"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"ที่ทำงาน"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"อื่นๆ"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"ป้อนรหัส PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"ป้อนรหัสผ่านเพื่อปลดล็อก"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"ป้อน PIN เพื่อปลดล็อก"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"รหัส PIN ไม่ถูกต้อง!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"รหัสผ่าน"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"ลงชื่อเข้าใช้"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"กำลังตรวจสอบ..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"ปลดล็อก"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"เปิดเสียง"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index d42ef28..577accb 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Airplane mode"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Naka-ON ang airplane mode"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Naka-OFF ang airplane mode"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Safe mode"</string> <string name="android_system_label" msgid="6577375335728551336">"Android System"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Mga serbisyong ginagastusan mo"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Pinapayagan ang holder na sumailalim sa nangungunang antas na interface ng pamamaraan ng pag-input. Hindi dapat kailanmang kailanganin para sa mga normal na application."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"sumailalim sa wallpaper"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Pinapayagan ang holder na sumailalim sa interface na nasa nangungunang antas ng wallpaper. Hindi kailanman dapat na kailanganin para sa mga normal na application."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"makipag-ugnay sa tagapangasiwa ng device"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Pinapayagan ang holder na magpadala ng mga intensyon sa administrator ng device. Hindi kailanman dapat kailanganin para sa mga normal na application."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"baguhin ang orientation ng screen"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Trabaho"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Iba pa"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Ipasok ang PIN code"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Ipasok ang password upang i-unlock"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Ipasok ang PIN upang i-unlock"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Maling PIN code!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Password"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Mag-sign in"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Di-wastong username o password."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Sinusuri..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"I-unlock"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"I-on ang tunog"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 8b338dd..45bc2b2 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Uçak modu"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Uçak modu AÇIK"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Uçak modu KAPALI"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Güvenli mod"</string> <string name="android_system_label" msgid="6577375335728551336">"Android Sistemi"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Size maliyet getiren hizmetler"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Tutucunun bir giriş yönteminin en üst düzey arayüzüne bağlanmasına izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"bir duvar kağıdına tabi kıl"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Hesap sahibine bir duvar kağıdının en üst düzey arayüzüne bağlanma izni verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"bir cihaz yöneticisi ile etkileşimde bulun"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Cihazın sahibinin cihaz yöneticisine amaç göndermesine izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmamalıdır."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"ekran yönünü değiştir"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"SD kart içeriklerini değiştir/sil"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Uygulamanın USB dep birimine yazmasına izni verir."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Bir uygulamaya SD karta yazma izni verir."</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"dahili medya depolama birimi içeriğini değiştir/sil"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Uygulamaya, dahili medya depolama içeriğini değiştirme izni verir."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"önbellek dosya sistemine eriş"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Bir uygulamanın önbellek dosya sisteminde okuma yazma yapmasına izin verir."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"İnternet çağrılar yap/alma"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"İş"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Diğer"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"PIN kodunu gir"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Kilidi açmak için şifreyi girin"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Kilidi açmak için PIN\'i girin"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Yanlış PIN kodu!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Şifre"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Oturum aç"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Geçersiz kullanıcı adı veya şifre."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Kontrol ediliyor..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Kilit Aç"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Sesi aç"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 6e5fdaa..7d5a8f5 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Режим польоту"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Режим польоту ВВІМК."</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Режим польоту ВИМК."</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Безп. режим"</string> <string name="android_system_label" msgid="6577375335728551336">"Система Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Служби, які потребують оплати"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Дозволяє власнику прив\'язувати до інтерфейсу верхнього рівня методу введення. Ніколи не потрібний для звичайних програм."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"прив\'зати до фон. мал."</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Дозволяє власнику прив\'язувати до інтерфейсу верхнього рівня фон. малюнка. Ніколи не потрібний для звичайних програм."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"взаємодіяти з адмін. пристрою"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Дозволяє власнику надсилати цілі адміністратору пристрою. Ніколи не потрібний для звичайних програм."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"змінювати орієнтацію екрана"</string> @@ -465,8 +468,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"змінювати/видал. вміст карти SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Дозволяє програмі записувати на носій USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Дозволяє програмі записувати на карту SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"змін./видаляти вміст внутр. сховища медіа-файлів"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Дозволяє програмі змінювати вміст внутрішнього сховища медіа-файлів."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"змінювати/видаляти вміст внутр. сховища даних"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Дозволяє програмі змінювати вміст внутрішнього сховища даних."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"отр. дост. до файл. сист. кешу"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Дозволяє програмі зчитувати та записувати файлову сист. кешу."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"здійсн./отрим. Інтернет-дзвін."</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Робоча"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Інша"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Введіть PIN-код"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Введіть пароль, щоб розбл."</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Введ. PIN для розблок."</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Неправильний PIN-код!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Пароль"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Увійти"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Недійсне ім\'я корист. чи пароль."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Перевірка..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Розблок."</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Увімк. звук"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 08c8990..9f0a4f5 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -151,8 +151,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Chế độ trên máy bay"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Chế độ trên máy bay BẬT"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Chế độ trên máy bay TẮT"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"Chế độ an toàn"</string> <string name="android_system_label" msgid="6577375335728551336">"Hệ thống Android"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Dịch vụ tính tiền của bạn"</string> @@ -256,6 +255,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Cho phép chủ nhân ràng buộc với giao diện cấp cao nhất của phương thức nhập. Không cần thiết cho các ứng dụng thông thường."</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"liên kết với hình nền"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Cho phép chủ nhân ràng buộc với giao diện cấp cao nhất của hình nền. Không cần thiết cho các ứng dụng thông thường."</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"tương tác với quản trị viên thiết bị"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Cho phép chủ nhân gửi các ý định đến quản trị viên thiết bị. Không cần thiết cho các ứng dụng thông thường."</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"thay đổi hướng màn hình"</string> @@ -466,7 +469,7 @@ <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"C.phép ứ.dụng ghi vào b.nhớ USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Cho phép ứng dụng ghi vào thẻ SD."</string> <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"sửa đổi/xóa nội dung trên bộ nhớ phương tiện cục bộ"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Cho phép ứng dụng sửa đổi nội dung của bộ nhớ phương tiện nội bộ."</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Cho phép ứng dụng sửa đổi nội dung của bộ nhớ phương tiện cục bộ."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"truy cập hệ thống tệp bộ nhớ cache"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Cho phép ứng dụng đọc và ghi hệ thống tệp bộ nhớ cache."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"thực hiện/nhận cuộc gọi qua Internet"</string> @@ -605,6 +608,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"Cơ quan"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Khác"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Nhập mã PIN"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"Nhập mật khẩu để mở khoá"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"Nhập PIN để mở khóa"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Mã PIN không chính xác!"</string> @@ -648,6 +653,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Mật khẩu"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Đăng nhập"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Tên người dùng hoặc mật khẩu không hợp lệ."</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"Đang kiểm tra..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"Mở khoá"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Bật âm thanh"</string> @@ -1024,4 +1031,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index ecfdd63..f69f965 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -257,6 +257,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"允许手机用户绑定至输入法的顶级界面。普通应用程序从不需要使用此权限。"</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"绑定到壁纸"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"允许手机用户绑定到壁纸的顶级界面。应该从不需要将此权限授予普通应用程序。"</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"与设备管理器交互"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"允许持有对象将意向发送到设备管理器。普通的应用程序一律无需此权限。"</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕显示方向"</string> @@ -608,6 +612,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"单位"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"其他"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"输入 PIN 码"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"输入密码进行解锁"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"输入 PIN 进行解锁"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PIN 码不正确!"</string> @@ -651,6 +657,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"密码"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"登录"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"用户名或密码无效。"</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"正在检查..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"解锁"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"打开声音"</string> @@ -1030,4 +1038,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 28cb8b2..a584cd3 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -152,8 +152,7 @@ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"飛航模式"</string> <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"飛航模式為 [開啟]"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"飛航模式為 [關閉]"</string> - <!-- no translation found for status_bar_notification_info_overflow (5833510281787786290) --> - <skip /> + <string name="status_bar_notification_info_overflow" msgid="5833510281787786290">"100+"</string> <string name="safeMode" msgid="2788228061547930246">"安全模式"</string> <string name="android_system_label" msgid="6577375335728551336">"Android 系統"</string> <string name="permgrouplab_costMoney" msgid="5429808217861460401">"需要額外費用的服務。"</string> @@ -257,6 +256,10 @@ <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"允許擁有人連結至輸入法的最頂層介面。一般應用程式不需使用此選項。"</string> <string name="permlab_bindWallpaper" msgid="8716400279937856462">"連結至桌布"</string> <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"允許擁有人連結至桌布的最頂層介面,一般應用程式不需使用此選項。"</string> + <!-- no translation found for permlab_bindRemoteViews (5697987759897367099) --> + <skip /> + <!-- no translation found for permdesc_bindRemoteViews (2930855984822926963) --> + <skip /> <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"與裝置管理員互動"</string> <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"允許應用程式將調用請求 (intent) 傳送至裝置管理員;一般應用程式不需使用此選項。"</string> <string name="permlab_setOrientation" msgid="3365947717163866844">"變更螢幕顯示方向"</string> @@ -466,10 +469,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"修改/刪除 SD 卡的內容"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"允許應用程式寫入 USB 儲存裝置。"</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"允許應用程式寫入 SD 卡。"</string> - <!-- no translation found for permlab_mediaStorageWrite (6859839199706879015) --> - <skip /> - <!-- no translation found for permdesc_mediaStorageWrite (8232008512478316233) --> - <skip /> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"修改/刪除內部媒體儲存裝置內容"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"允許應用程式修改內部媒體儲存裝置內容。"</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"存取快取檔案系統"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"允許應用程式讀取及寫入快取檔案系統。"</string> <string name="permlab_use_sip" msgid="5986952362795870502">"撥打/接聽網路電話"</string> @@ -608,6 +609,8 @@ <string name="sipAddressTypeWork" msgid="6920725730797099047">"公司"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"其他"</string> <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"輸入 PIN 碼"</string> + <!-- no translation found for keyguard_password_entry_touch_hint (7906561917570259833) --> + <skip /> <string name="keyguard_password_enter_password_code" msgid="9138158344813213754">"輸入密碼即可解鎖"</string> <string name="keyguard_password_enter_pin_password_code" msgid="638347075625491514">"輸入 PIN 進行解鎖"</string> <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"PIN 碼錯誤!"</string> @@ -651,6 +654,8 @@ <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"密碼"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"登入"</string> <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"使用者名稱或密碼錯誤。"</string> + <!-- no translation found for lockscreen_glogin_account_recovery_hint (8253152905532900548) --> + <skip /> <string name="lockscreen_glogin_checking_password" msgid="6758890536332363322">"檢查中..."</string> <string name="lockscreen_unlock_label" msgid="737440483220667054">"解除封鎖"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"開啟音效"</string> @@ -1030,4 +1035,12 @@ <skip /> <!-- no translation found for sync_do_nothing (8717589462945226869) --> <skip /> + <!-- no translation found for vpn_notification_title_connected (3197819122581348515) --> + <skip /> + <!-- no translation found for vpn_notification_title_disconnected (4614192702448522822) --> + <skip /> + <!-- no translation found for vpn_notification_hint_disconnected (4689796928510104200) --> + <skip /> + <!-- no translation found for choose_account_label (4191313562041125787) --> + <skip /> </resources> diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index e76692a..c808a07 100755 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -690,6 +690,9 @@ <!-- Style for buttons without an explicit border, often used in groups. --> <attr name="borderlessButtonStyle" format="reference" /> + <!-- Background to use for toasts --> + <attr name="toastFrameBackground" format="reference" /> + <!-- ============================ --> <!-- SearchView styles and assets --> <!-- ============================ --> diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index 00d4b95..08542bf 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -149,6 +149,8 @@ <item name="alertDialogTheme">@android:style/Theme.Dialog.Alert</item> <item name="alertDialogCenterButtons">true</item> <item name="alertDialogIcon">@android:drawable/ic_dialog_alert</item> + + <item name="toastFrameBackground">@android:drawable/toast_frame</item> <!-- Panel attributes --> <item name="panelBackground">@android:drawable/menu_background</item> @@ -863,6 +865,8 @@ <item name="alertDialogTheme">@android:style/Theme.Holo.Dialog.Alert</item> <item name="alertDialogCenterButtons">false</item> <item name="alertDialogIcon">@android:drawable/ic_dialog_alert_holo_dark</item> + + <item name="toastFrameBackground">@android:drawable/toast_frame_holo</item> <!-- Panel attributes --> <item name="panelBackground">@android:drawable/menu_background</item> @@ -1132,6 +1136,8 @@ <item name="alertDialogCenterButtons">false</item> <item name="alertDialogTheme">@android:style/Theme.Holo.Light.Dialog.Alert</item> <item name="alertDialogIcon">@android:drawable/ic_dialog_alert_holo_light</item> + + <item name="toastFrameBackground">@android:drawable/toast_frame_holo</item> <!-- Panel attributes --> <item name="panelBackground">@android:drawable/menu_background</item> diff --git a/include/utils/Functor.h b/include/utils/Functor.h new file mode 100644 index 0000000..3955bc3 --- /dev/null +++ b/include/utils/Functor.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2011 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. + */ + +#ifndef ANDROID_FUNCTOR_H +#define ANDROID_FUNCTOR_H + +#include <utils/Errors.h> + +namespace android { + +class Functor { +public: + Functor() {} + virtual ~Functor() {} + virtual status_t operator ()() { return true; } +}; + +}; // namespace android + +#endif // ANDROID_FUNCTOR_H diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index ffd3be4..a768efe 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -117,7 +117,8 @@ const char* DisplayList::OP_NAMES[] = { "ResetColorFilter", "SetupColorFilter", "ResetShadow", - "SetupShadow" + "SetupShadow", + "DrawGLFunction" }; DisplayList::DisplayList(const DisplayListRenderer& recorder) { @@ -212,7 +213,8 @@ void DisplayList::init() { mPathHeap = NULL; } -void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { +bool DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { + bool needsInvalidate = false; TextContainer text; mReader.rewind(); @@ -229,87 +231,165 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { int saveCount = renderer.getSaveCount() - 1; while (!mReader.eof()) { int op = mReader.readInt(); - DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); switch (op) { + case DrawGLFunction: { + Functor *functor = (Functor *) getInt(); + DISPLAY_LIST_LOGD("%s%s %p", (char*) indent, OP_NAMES[op], functor); + needsInvalidate |= renderer.callDrawGLFunction(functor); + } + break; case AcquireContext: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.acquireContext(); } break; case ReleaseContext: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.releaseContext(); } break; case Save: { - renderer.save(getInt()); + int rendererNum = getInt(); + DISPLAY_LIST_LOGD("%s%s %d", (char*) indent, OP_NAMES[op], rendererNum); + renderer.save(rendererNum); } break; case Restore: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.restore(); } break; case RestoreToCount: { - renderer.restoreToCount(saveCount + getInt()); + int restoreCount = saveCount + getInt(); + DISPLAY_LIST_LOGD("%s%s %d", (char*) indent, OP_NAMES[op], restoreCount); + renderer.restoreToCount(restoreCount); } break; case SaveLayer: { - renderer.saveLayer(getFloat(), getFloat(), getFloat(), getFloat(), - getPaint(), getInt()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + SkPaint* paint = getPaint(); + int flags = getInt(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %p, 0x%x", (char*) indent, + OP_NAMES[op], f1, f2, f3, f4, paint, flags); + renderer.saveLayer(f1, f2, f3, f4, paint, flags); } break; case SaveLayerAlpha: { - renderer.saveLayerAlpha(getFloat(), getFloat(), getFloat(), getFloat(), - getInt(), getInt()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + int alpha = getInt(); + int flags = getInt(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %d, 0x%x", (char*) indent, + OP_NAMES[op], f1, f2, f3, f4, alpha, flags); + renderer.saveLayerAlpha(f1, f2, f3, f4, alpha, flags); } break; case Translate: { - renderer.translate(getFloat(), getFloat()); + float f1 = getFloat(); + float f2 = getFloat(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f", (char*) indent, OP_NAMES[op], f1, f2); + renderer.translate(f1, f2); } break; case Rotate: { - renderer.rotate(getFloat()); + float rotation = getFloat(); + DISPLAY_LIST_LOGD("%s%s %.2f", (char*) indent, OP_NAMES[op], rotation); + renderer.rotate(rotation); } break; case Scale: { - renderer.scale(getFloat(), getFloat()); + float sx = getFloat(); + float sy = getFloat(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f", (char*) indent, OP_NAMES[op], sx, sy); + renderer.scale(sx, sy); } break; case Skew: { - renderer.skew(getFloat(), getFloat()); + float sx = getFloat(); + float sy = getFloat(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f", (char*) indent, OP_NAMES[op], sx, sy); + renderer.skew(sx, sy); } break; case SetMatrix: { - renderer.setMatrix(getMatrix()); + SkMatrix* matrix = getMatrix(); + DISPLAY_LIST_LOGD("%s%s %p", (char*) indent, OP_NAMES[op], matrix); + renderer.setMatrix(matrix); } break; case ConcatMatrix: { - renderer.concatMatrix(getMatrix()); + SkMatrix* matrix = getMatrix(); + DISPLAY_LIST_LOGD("%s%s %p", (char*) indent, OP_NAMES[op], matrix); + renderer.concatMatrix(matrix); } break; case ClipRect: { - renderer.clipRect(getFloat(), getFloat(), getFloat(), getFloat(), - (SkRegion::Op) getInt()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + int regionOp = getInt(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %d", (char*) indent, OP_NAMES[op], + f1, f2, f3, f4, regionOp); + renderer.clipRect(f1, f2, f3, f4, (SkRegion::Op) regionOp); } break; case DrawDisplayList: { - renderer.drawDisplayList(getDisplayList(), level + 1); + DisplayList* displayList = getDisplayList(); + DISPLAY_LIST_LOGD("%s%s %p, %d", (char*) indent, OP_NAMES[op], + displayList, level + 1); + needsInvalidate |= renderer.drawDisplayList(displayList, level + 1); } break; case DrawLayer: { - renderer.drawLayer((Layer*) getInt(), getFloat(), getFloat(), getPaint()); + Layer* layer = (Layer*) getInt(); + float x = getFloat(); + float y = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %p, %.2f, %.2f, %p", (char*) indent, OP_NAMES[op], + layer, x, y, paint); + renderer.drawLayer(layer, x, y, paint); } break; case DrawBitmap: { - renderer.drawBitmap(getBitmap(), getFloat(), getFloat(), getPaint()); + SkBitmap* bitmap = getBitmap(); + float x = getFloat(); + float y = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %p, %.2f, %.2f, %p", (char*) indent, OP_NAMES[op], + bitmap, x, y, paint); + renderer.drawBitmap(bitmap, x, y, paint); } break; case DrawBitmapMatrix: { - renderer.drawBitmap(getBitmap(), getMatrix(), getPaint()); + SkBitmap* bitmap = getBitmap(); + SkMatrix* matrix = getMatrix(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %p, %p, %p", (char*) indent, OP_NAMES[op], + bitmap, matrix, paint); + renderer.drawBitmap(bitmap, matrix, paint); } break; case DrawBitmapRect: { - renderer.drawBitmap(getBitmap(), getFloat(), getFloat(), getFloat(), getFloat(), - getFloat(), getFloat(), getFloat(), getFloat(), getPaint()); + SkBitmap* bitmap = getBitmap(); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + float f5 = getFloat(); + float f6 = getFloat(); + float f7 = getFloat(); + float f8 = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %p, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %p", + (char*) indent, OP_NAMES[op], bitmap, f1, f2, f3, f4, f5, f6, f7, f8, paint); + renderer.drawBitmap(bitmap, f1, f2, f3, f4, f5, f6, f7, f8, paint); } break; case DrawBitmapMesh: { @@ -323,6 +403,7 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { bool hasColors = getInt(); int* colors = hasColors ? getInts(colorsCount) : NULL; + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.drawBitmapMesh(bitmap, meshWidth, meshHeight, vertices, colors, getPaint()); } break; @@ -340,80 +421,148 @@ void DisplayList::replay(OpenGLRenderer& renderer, uint32_t level) { yDivs = getInts(yDivsCount); colors = getUInts(numColors); + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.drawPatch(bitmap, xDivs, yDivs, colors, xDivsCount, yDivsCount, numColors, getFloat(), getFloat(), getFloat(), getFloat(), getPaint()); } break; case DrawColor: { - renderer.drawColor(getInt(), (SkXfermode::Mode) getInt()); + int color = getInt(); + int xferMode = getInt(); + DISPLAY_LIST_LOGD("%s%s 0x%x %d", (char*) indent, OP_NAMES[op], color, xferMode); + renderer.drawColor(color, (SkXfermode::Mode) xferMode); } break; case DrawRect: { - renderer.drawRect(getFloat(), getFloat(), getFloat(), getFloat(), getPaint()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %p", (char*) indent, OP_NAMES[op], + f1, f2, f3, f4, paint); + renderer.drawRect(f1, f2, f3, f4, paint); } break; case DrawRoundRect: { - renderer.drawRoundRect(getFloat(), getFloat(), getFloat(), getFloat(), - getFloat(), getFloat(), getPaint()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + float f5 = getFloat(); + float f6 = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %p", + (char*) indent, OP_NAMES[op], f1, f2, f3, f4, f5, f6, paint); + renderer.drawRoundRect(f1, f2, f3, f4, f5, f6, paint); } break; case DrawCircle: { - renderer.drawCircle(getFloat(), getFloat(), getFloat(), getPaint()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %p", + (char*) indent, OP_NAMES[op], f1, f2, f3, paint); + renderer.drawCircle(f1, f2, f3, paint); } break; case DrawOval: { - renderer.drawOval(getFloat(), getFloat(), getFloat(), getFloat(), getPaint()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %p", + (char*) indent, OP_NAMES[op], f1, f2, f3, f4, paint); + renderer.drawOval(f1, f2, f3, f4, paint); } break; case DrawArc: { - renderer.drawArc(getFloat(), getFloat(), getFloat(), getFloat(), - getFloat(), getFloat(), getInt() == 1, getPaint()); + float f1 = getFloat(); + float f2 = getFloat(); + float f3 = getFloat(); + float f4 = getFloat(); + float f5 = getFloat(); + float f6 = getFloat(); + int i1 = getInt(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %d, %p", + (char*) indent, OP_NAMES[op], f1, f2, f3, f4, f5, f6, i1, paint); + renderer.drawArc(f1, f2, f3, f4, f5, f6, i1 == 1, paint); } break; case DrawPath: { - renderer.drawPath(getPath(), getPaint()); + SkPath* path = getPath(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %p, %p", (char*) indent, OP_NAMES[op], path, paint); + renderer.drawPath(path, paint); } break; case DrawLines: { int count = 0; float* points = getFloats(count); + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.drawLines(points, count, getPaint()); } break; case DrawText: { getText(&text); - renderer.drawText(text.text(), text.length(), getInt(), - getFloat(), getFloat(), getPaint()); + int count = getInt(); + float x = getFloat(); + float y = getFloat(); + SkPaint* paint = getPaint(); + DISPLAY_LIST_LOGD("%s%s %s, %d, %d, %.2f, %.2f, %p", (char*) indent, OP_NAMES[op], + text.text(), text.length(), count, x, y, paint); + renderer.drawText(text.text(), text.length(), count, x, y, paint); } break; case ResetShader: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.resetShader(); } break; case SetupShader: { - renderer.setupShader(getShader()); + SkiaShader* shader = getShader(); + DISPLAY_LIST_LOGD("%s%s %p", (char*) indent, OP_NAMES[op], shader); + renderer.setupShader(shader); } break; case ResetColorFilter: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.resetColorFilter(); } break; case SetupColorFilter: { - renderer.setupColorFilter(getColorFilter()); + SkiaColorFilter *colorFilter = getColorFilter(); + DISPLAY_LIST_LOGD("%s%s %p", (char*) indent, OP_NAMES[op], colorFilter); + renderer.setupColorFilter(colorFilter); } break; case ResetShadow: { + DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]); renderer.resetShadow(); } break; case SetupShadow: { - renderer.setupShadow(getFloat(), getFloat(), getFloat(), getInt()); - } - break; + float radius = getFloat(); + float dx = getFloat(); + float dy = getFloat(); + int color = getInt(); + DISPLAY_LIST_LOGD("%s%s %.2f, %.2f, %.2f, 0x%x", (char*) indent, OP_NAMES[op], + radius, dx, dy, color); + renderer.setupShadow(radius, dx, dy, color); + } + break; + default: + DISPLAY_LIST_LOGD("Display List error: op not handled: %s%s", + (char*) indent, OP_NAMES[op]); + break; } } - DISPLAY_LIST_LOGD("%sDone", (char*) indent + 2); + DISPLAY_LIST_LOGD("%sDone, returning %d", (char*) indent + 2, needsInvalidate); + return needsInvalidate; } /////////////////////////////////////////////////////////////////////////////// @@ -493,12 +642,26 @@ void DisplayListRenderer::finish() { OpenGLRenderer::finish(); } +void DisplayListRenderer::interrupt() { + +} +void DisplayListRenderer::resume() { + +} void DisplayListRenderer::acquireContext() { + // TODO: probably noop instead of calling super addOp(DisplayList::AcquireContext); OpenGLRenderer::acquireContext(); } +bool DisplayListRenderer::callDrawGLFunction(Functor *functor) { + addOp(DisplayList::DrawGLFunction); + addInt((int) functor); + return false; // No invalidate needed at record-time +} + void DisplayListRenderer::releaseContext() { + // TODO: probably noop instead of calling super addOp(DisplayList::ReleaseContext); OpenGLRenderer::releaseContext(); } @@ -581,9 +744,10 @@ bool DisplayListRenderer::clipRect(float left, float top, float right, float bot return OpenGLRenderer::clipRect(left, top, right, bottom, op); } -void DisplayListRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { +bool DisplayListRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { addOp(DisplayList::DrawDisplayList); addDisplayList(displayList); + return false; } void DisplayListRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* paint) { diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h index 35bb163..6c8e8f5 100644 --- a/libs/hwui/DisplayListRenderer.h +++ b/libs/hwui/DisplayListRenderer.h @@ -28,6 +28,7 @@ #include <SkTSearch.h> #include "OpenGLRenderer.h" +#include "Functor.h" namespace android { namespace uirenderer { @@ -124,13 +125,14 @@ public: SetupColorFilter, ResetShadow, SetupShadow, + DrawGLFunction, }; static const char* OP_NAMES[]; void initFromDisplayListRenderer(const DisplayListRenderer& recorder); - void replay(OpenGLRenderer& renderer, uint32_t level = 0); + bool replay(OpenGLRenderer& renderer, uint32_t level = 0); private: void init(); @@ -242,9 +244,13 @@ public: void prepare(bool opaque); void finish(); + bool callDrawGLFunction(Functor *functor); void acquireContext(); void releaseContext(); + void interrupt(); + void resume(); + int save(int flags); void restore(); void restoreToCount(int saveCount); @@ -264,7 +270,7 @@ public: bool clipRect(float left, float top, float right, float bottom, SkRegion::Op op); - void drawDisplayList(DisplayList* displayList, uint32_t level = 0); + bool drawDisplayList(DisplayList* displayList, uint32_t level = 0); void drawLayer(Layer* layer, float x, float y, SkPaint* paint); void drawBitmap(SkBitmap* bitmap, float left, float top, SkPaint* paint); void drawBitmap(SkBitmap* bitmap, SkMatrix* matrix, SkPaint* paint); diff --git a/libs/hwui/OpenGLDebugRenderer.cpp b/libs/hwui/OpenGLDebugRenderer.cpp index 29bcde8..58d6c26 100644 --- a/libs/hwui/OpenGLDebugRenderer.cpp +++ b/libs/hwui/OpenGLDebugRenderer.cpp @@ -48,10 +48,10 @@ int OpenGLDebugRenderer::saveLayer(float left, float top, float right, float bot return OpenGLRenderer::saveLayer(left, top, right, bottom, p, flags); } -void OpenGLDebugRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { +bool OpenGLDebugRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { mPrimitivesCount++; StopWatch w("drawDisplayList"); - OpenGLRenderer::drawDisplayList(displayList); + return OpenGLRenderer::drawDisplayList(displayList); } void OpenGLDebugRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* paint) { diff --git a/libs/hwui/OpenGLDebugRenderer.h b/libs/hwui/OpenGLDebugRenderer.h index aefa7bf..76e6a2e 100644 --- a/libs/hwui/OpenGLDebugRenderer.h +++ b/libs/hwui/OpenGLDebugRenderer.h @@ -40,7 +40,7 @@ public: int saveLayer(float left, float top, float right, float bottom, SkPaint* p, int flags); - void drawDisplayList(DisplayList* displayList, uint32_t level = 0); + bool drawDisplayList(DisplayList* displayList, uint32_t level = 0); void drawLayer(Layer* layer, float x, float y, SkPaint* paint); void drawBitmap(SkBitmap* bitmap, float left, float top, SkPaint* paint); void drawBitmap(SkBitmap* bitmap, SkMatrix* matrix, SkPaint* paint); diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index e8dc9f6..98f8fc5 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -213,6 +213,13 @@ void OpenGLRenderer::releaseContext() { resume(); } +bool OpenGLRenderer::callDrawGLFunction(Functor *functor) { + interrupt(); + status_t result = (*functor)(); + resume(); + return (result == 0) ? false : true; +} + /////////////////////////////////////////////////////////////////////////////// // State management /////////////////////////////////////////////////////////////////////////////// @@ -1031,12 +1038,13 @@ void OpenGLRenderer::finishDrawTexture() { // Drawing /////////////////////////////////////////////////////////////////////////////// -void OpenGLRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { +bool OpenGLRenderer::drawDisplayList(DisplayList* displayList, uint32_t level) { // All the usual checks and setup operations (quickReject, setupDraw, etc.) // will be performed by the display list itself if (displayList) { - displayList->replay(*this, level); + return displayList->replay(*this, level); } + return false; } void OpenGLRenderer::drawBitmap(SkBitmap* bitmap, float left, float top, SkPaint* paint) { diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index eec3750..bd29609 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -27,6 +27,7 @@ #include <SkShader.h> #include <SkXfermode.h> +#include <utils/Functor.h> #include <utils/RefBase.h> #include <utils/Vector.h> @@ -65,9 +66,10 @@ public: virtual void finish(); // These two calls must not be recorded in display lists - void interrupt(); - void resume(); + virtual void interrupt(); + virtual void resume(); + virtual bool callDrawGLFunction(Functor *functor); virtual void acquireContext(); virtual void releaseContext(); @@ -95,7 +97,7 @@ public: bool quickReject(float left, float top, float right, float bottom); virtual bool clipRect(float left, float top, float right, float bottom, SkRegion::Op op); - virtual void drawDisplayList(DisplayList* displayList, uint32_t level = 0); + virtual bool drawDisplayList(DisplayList* displayList, uint32_t level = 0); virtual void drawLayer(Layer* layer, float x, float y, SkPaint* paint); virtual void drawBitmap(SkBitmap* bitmap, float left, float top, SkPaint* paint); virtual void drawBitmap(SkBitmap* bitmap, SkMatrix* matrix, SkPaint* paint); diff --git a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java index 122ad4e..54db8cd 100755 --- a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java +++ b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java @@ -1896,7 +1896,9 @@ class MediaArtistNativeHelper { private void onPreviewProgressUpdate(int progress, boolean isFinished) { if (mPreviewProgressListener != null) { mPreviewProgressListener.onProgress(mVideoEditor, progress, isFinished); - mPreviewProgress = progress; + if (progress != 0) { + mPreviewProgress = progress; + } } } @@ -3940,6 +3942,9 @@ class MediaArtistNativeHelper { } } + public void clearPreviewSurface(Surface surface, int width, int height) { + nativeClearSurface(surface,width,height); + } /** Native Methods */ public native Properties getMediaProperties(String file) throws IllegalArgumentException, @@ -3983,7 +3988,10 @@ class MediaArtistNativeHelper { */ public native void release() throws IllegalStateException, RuntimeException; - + /* + * Clear the preview surface + */ + public native void nativeClearSurface(Surface surface, int width, int height); /** diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java index d081e6e..f1ad921 100755 --- a/media/java/android/media/videoeditor/VideoEditor.java +++ b/media/java/android/media/videoeditor/VideoEditor.java @@ -572,4 +572,13 @@ public interface VideoEditor { * milliseconds */ public long stopPreview(); + + /** + * Clears the preview surface + * + * @param surfaceHolder SurfaceHolder where the preview is rendered + * and needs to be cleared. + */ + public void clearSurface(SurfaceHolder surfaceHolder); + } diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java index 885daf2..5b87d16 100755 --- a/media/java/android/media/videoeditor/VideoEditorImpl.java +++ b/media/java/android/media/videoeditor/VideoEditorImpl.java @@ -1816,4 +1816,32 @@ public class VideoEditorImpl implements VideoEditor { } } } + + /** + * Clears the preview surface + * + * @param surfaceHolder SurfaceHolder where the preview is rendered + * and needs to be cleared. + */ + public void clearSurface(SurfaceHolder surfaceHolder) { + + if (surfaceHolder == null) { + throw new IllegalArgumentException(); + } + Rect frame; + int surfaceWidth; + int surfaceHeight; + Surface surface = surfaceHolder.getSurface(); + + if (surface == null) { + Log.e("VideoEditorImpl", + "Surface could not be retrieved from surface holder"); + throw new RuntimeException(); + } + frame = surfaceHolder.getSurfaceFrame(); + surfaceWidth = frame.width(); + surfaceHeight = frame.height(); + mMANativeHelper.clearPreviewSurface(surface,surfaceWidth,surfaceHeight); + } + } diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp index 643f698..1751396 100755 --- a/media/jni/mediaeditor/VideoEditorMain.cpp +++ b/media/jni/mediaeditor/VideoEditorMain.cpp @@ -226,7 +226,7 @@ static int videoEditor_registerManualEditMethods( static void jniPreviewProgressCallback(void* cookie, M4OSA_UInt32 msgType, M4OSA_UInt32 argc); -static int videoEditor_renderMediaItemPreviewFrame(JNIEnv* pEnv, +static int videoEditor_renderMediaItemPreviewFrame(JNIEnv* pEnv, jobject thiz, jobject mSurface, jstring filePath, @@ -259,6 +259,11 @@ videoEditor_generateClip( jobject thiz, jobject settings); +static void videoEditor_clearSurface(JNIEnv* pEnv, + jobject thiz, + jobject surface, + jint width, + jint height); static JNINativeMethod gManualEditMethods[] = { {"getVersion", "()L"VERSION_CLASS_NAME";", @@ -295,6 +300,8 @@ static JNINativeMethod gManualEditMethods[] = { (int *)videoEditor_generateAudioRawFile }, {"nativeGenerateClip", "(L"EDIT_SETTINGS_CLASS_NAME";)I", (void *)videoEditor_generateClip }, + {"nativeClearSurface", "(Landroid/view/Surface;II)V", + (void *)videoEditor_clearSurface }, }; // temp file name of VSS out file @@ -419,6 +426,134 @@ static void videoEditor_stopPreview(JNIEnv* pEnv, pContext->mPreviewController->stopPreview(); } +static void videoEditor_clearSurface(JNIEnv* pEnv, + jobject thiz, + jobject surface, + jint width, + jint height) +{ + bool needToBeLoaded = true; + M4OSA_UInt32 framesizeYuv =0; + M4OSA_ERR result = M4NO_ERROR; + VideoEditor_renderPreviewFrameStr frameStr; + const char* pMessage = NULL; + M4VIFI_ImagePlane *yuvPlane; + ManualEditContext* pContext = M4OSA_NULL; + + // Get the context. + pContext = (ManualEditContext*)videoEditClasses_getContext(&needToBeLoaded, pEnv, thiz); + VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, + "VIDEO_EDITOR","pContext = 0x%x",pContext); + + // Make sure that the context was set. + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (M4OSA_NULL == pContext), + "not initialized"); + + // Make sure that the context was set. + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (M4OSA_NULL == pContext->mPreviewController), + "not initialized"); + + // Validate the surface parameter. + videoEditJava_checkAndThrowIllegalArgumentException(&needToBeLoaded, pEnv, + (NULL == surface), + "surface is null"); + + jclass surfaceClass = pEnv->FindClass("android/view/Surface"); + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (M4OSA_NULL == surfaceClass), + "not initialized"); + + jfieldID surface_native = + pEnv->GetFieldID(surfaceClass, ANDROID_VIEW_SURFACE_JNI_ID, "I"); + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (M4OSA_NULL == surface_native), + "not initialized"); + + Surface* const p = (Surface*)pEnv->GetIntField(surface, surface_native); + sp<Surface> previewSurface = sp<Surface>(p); + + /** + * Allocate output YUV planes + */ + yuvPlane = (M4VIFI_ImagePlane*)M4OSA_malloc(3*sizeof(M4VIFI_ImagePlane), M4VS, + (M4OSA_Char*)"videoEditor_clearSurface Output plane YUV"); + if (yuvPlane == M4OSA_NULL) { + VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR", + "videoEditor_clearSurface() malloc error for yuv plane"); + pMessage = videoEditJava_getErrorName(M4ERR_ALLOC); + jniThrowException(pEnv, "java/lang/RuntimeException", pMessage); + return ; + } + + framesizeYuv = width * height * 1.5; + yuvPlane[0].u_width = width; + yuvPlane[0].u_height = height; + yuvPlane[0].u_topleft = 0; + yuvPlane[0].u_stride = width; + yuvPlane[0].pac_data = (M4VIFI_UInt8 *)M4OSA_malloc(framesizeYuv, M4VS, + (M4OSA_Char*)"videoEditor pixelArray"); + if (yuvPlane[0].pac_data == M4OSA_NULL) { + VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR", + "videoEditor_renderPreviewFrame() malloc error"); + pMessage = videoEditJava_getErrorName(M4ERR_ALLOC); + jniThrowException(pEnv, "java/lang/RuntimeException", pMessage); + return; + } + + /* memset yuvPlane[0].pac_data with 0 for black frame */ + M4OSA_memset((M4OSA_MemAddr8)yuvPlane[0].pac_data,framesizeYuv,0x00); + FILE *p1 = fopen("/mnt/sdcard/black.raw","wb"); + fwrite(yuvPlane[0].pac_data,1,framesizeYuv,p1); + fclose(p1); + + yuvPlane[1].u_width = width>>1; + yuvPlane[1].u_height = height>>1; + yuvPlane[1].u_topleft = 0; + yuvPlane[1].u_stride = width>>1; + yuvPlane[1].pac_data = yuvPlane[0].pac_data + + yuvPlane[0].u_width * yuvPlane[0].u_height; + + M4OSA_memset((M4OSA_MemAddr8)yuvPlane[1].pac_data,yuvPlane[1].u_width * + yuvPlane[1].u_height,128); + yuvPlane[2].u_width = (width)>>1; + yuvPlane[2].u_height = (height)>>1; + yuvPlane[2].u_topleft = 0; + yuvPlane[2].u_stride = (width)>>1; + yuvPlane[2].pac_data = yuvPlane[1].pac_data + + yuvPlane[1].u_width * yuvPlane[1].u_height; + + M4OSA_memset((M4OSA_MemAddr8)yuvPlane[2].pac_data,yuvPlane[2].u_width * + yuvPlane[2].u_height,128); + + /* Fill up the render structure*/ + frameStr.pBuffer = (M4OSA_Void*)yuvPlane[0].pac_data; + + frameStr.timeMs = 0; + frameStr.uiSurfaceWidth = width; + frameStr.uiSurfaceHeight = height; + frameStr.uiFrameWidth = width; + frameStr.uiFrameHeight = height; + frameStr.bApplyEffect = M4OSA_FALSE; + frameStr.clipBeginCutTime = 0; + frameStr.clipEndCutTime = 0; + + /*pContext->mPreviewController->setPreviewFrameRenderingMode( + pContext->pEditSettings->\ + pClipList[iCurrentClipIndex]->xVSS.MediaRendering, + pContext->pEditSettings->xVSS.outputVideoSize); + */ + + result = pContext->mPreviewController->renderPreviewFrame(previewSurface, + &frameStr); + videoEditJava_checkAndThrowRuntimeException(&needToBeLoaded, pEnv, + (M4NO_ERROR != result), result); + + M4OSA_free((M4OSA_MemAddr32)yuvPlane[0].pac_data); + M4OSA_free((M4OSA_MemAddr32)yuvPlane); + } + static int videoEditor_renderPreviewFrame(JNIEnv* pEnv, jobject thiz, jobject mSurface, diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 89b3dab..11ac56c 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -378,11 +378,14 @@ status_t AwesomePlayer::setDataSource_l(const sp<MediaExtractor> &extractor) { } void AwesomePlayer::reset() { + LOGI("reset"); + Mutex::Autolock autoLock(mLock); reset_l(); } void AwesomePlayer::reset_l() { + LOGI("reset_l"); mDisplayWidth = 0; mDisplayHeight = 0; @@ -408,6 +411,10 @@ void AwesomePlayer::reset_l() { } } + if (mFlags & PREPARING) { + LOGI("waiting until preparation is completes."); + } + while (mFlags & PREPARING) { mPreparedCondition.wait(mLock); } @@ -431,6 +438,8 @@ void AwesomePlayer::reset_l() { } mAudioSource.clear(); + LOGI("audio source cleared"); + mTimeSource = NULL; delete mAudioPlayer; @@ -471,6 +480,8 @@ void AwesomePlayer::reset_l() { IPCThreadState::self()->flushCommands(); } + LOGI("video source cleared"); + mDurationUs = -1; mFlags = 0; mExtractorFlags = 0; @@ -487,6 +498,8 @@ void AwesomePlayer::reset_l() { mFileSource.clear(); mBitrate = -1; + + LOGI("reset_l completed"); } void AwesomePlayer::notifyListener_l(int msg, int ext1, int ext2) { diff --git a/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp b/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp index 38778fb..2bdb3ef 100644 --- a/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp +++ b/media/libstagefright/codecs/m4v_h263/dec/M4vH263Decoder.cpp @@ -23,8 +23,8 @@ #include "mp4dec_api.h" #include <OMX_Component.h> +#include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/MediaBufferGroup.h> -#include <media/stagefright/MediaDebug.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MetaData.h> @@ -106,7 +106,7 @@ status_t M4vH263Decoder::start(MetaData *) { int32_t vol_size = 0; if (meta->findData(kKeyESDS, &type, &data, &size)) { ESDS esds((const uint8_t *)data, size); - CHECK_EQ(esds.InitCheck(), OK); + CHECK_EQ(esds.InitCheck(), (status_t)OK); const void *codec_specific_data; size_t codec_specific_data_size; @@ -185,7 +185,7 @@ status_t M4vH263Decoder::read( ReadOptions::SeekMode mode; if (options && options->getSeekTo(&seekTimeUs, &mode)) { seeking = true; - CHECK_EQ(PVResetVideoDecoder(mHandle), PV_TRUE); + CHECK_EQ((int)PVResetVideoDecoder(mHandle), PV_TRUE); } MediaBuffer *inputBuffer = NULL; @@ -223,19 +223,28 @@ status_t M4vH263Decoder::read( return UNKNOWN_ERROR; } - int32_t width, height; - PVGetVideoDimensions(mHandle, &width, &height); - if (width != mWidth || height != mHeight) { + int32_t disp_width, disp_height; + PVGetVideoDimensions(mHandle, &disp_width, &disp_height); + + int32_t buf_width, buf_height; + PVGetBufferDimensions(mHandle, &buf_width, &buf_height); + + if (buf_width != mWidth || buf_height != mHeight) { ++mNumSamplesOutput; // The client will never get to see this frame. inputBuffer->release(); inputBuffer = NULL; - mWidth = width; - mHeight = height; + mWidth = buf_width; + mHeight = buf_height; mFormat->setInt32(kKeyWidth, mWidth); mFormat->setInt32(kKeyHeight, mHeight); + CHECK_LE(disp_width, buf_width); + CHECK_LE(disp_height, buf_height); + + mFormat->setRect(kKeyCropRect, 0, 0, disp_width - 1, disp_height - 1); + return INFO_FORMAT_CHANGED; } diff --git a/media/libstagefright/codecs/m4v_h263/dec/include/mp4dec_api.h b/media/libstagefright/codecs/m4v_h263/dec/include/mp4dec_api.h index ef09900..24a50ce 100644 --- a/media/libstagefright/codecs/m4v_h263/dec/include/mp4dec_api.h +++ b/media/libstagefright/codecs/m4v_h263/dec/include/mp4dec_api.h @@ -159,6 +159,7 @@ extern "C" Bool PVDecodeVopBody(VideoDecControls *decCtrl, int32 buffer_size[]); void PVDecPostProcess(VideoDecControls *decCtrl, uint8 *outputYUV); OSCL_IMPORT_REF void PVGetVideoDimensions(VideoDecControls *decCtrl, int32 *display_width, int32 *display_height); + OSCL_IMPORT_REF void PVGetBufferDimensions(VideoDecControls *decCtrl, int32 *buf_width, int32 *buf_height); OSCL_IMPORT_REF void PVSetPostProcType(VideoDecControls *decCtrl, int mode); uint32 PVGetVideoTimeStamp(VideoDecControls *decoderControl); int PVGetDecBitrate(VideoDecControls *decCtrl); diff --git a/media/libstagefright/codecs/m4v_h263/dec/src/pvdec_api.cpp b/media/libstagefright/codecs/m4v_h263/dec/src/pvdec_api.cpp index 0c354d9..844bd14 100644 --- a/media/libstagefright/codecs/m4v_h263/dec/src/pvdec_api.cpp +++ b/media/libstagefright/codecs/m4v_h263/dec/src/pvdec_api.cpp @@ -722,6 +722,12 @@ OSCL_EXPORT_REF void PVGetVideoDimensions(VideoDecControls *decCtrl, int32 *disp *display_height = video->displayHeight; } +OSCL_EXPORT_REF void PVGetBufferDimensions(VideoDecControls *decCtrl, int32 *width, int32 *height) { + VideoDecData *video = (VideoDecData *)decCtrl->videoDecoderData; + *width = video->width; + *height = video->height; +} + /* ======================================================================== */ /* Function : PVGetVideoTimeStamp() */ /* Date : 04/27/2000, 08/29/2000 */ diff --git a/media/libstagefright/matroska/MatroskaExtractor.cpp b/media/libstagefright/matroska/MatroskaExtractor.cpp index eca9ed6..733de92 100644 --- a/media/libstagefright/matroska/MatroskaExtractor.cpp +++ b/media/libstagefright/matroska/MatroskaExtractor.cpp @@ -707,6 +707,12 @@ void MatroskaExtractor::addTracks() { for (size_t index = 0; index < tracks->GetTracksCount(); ++index) { const mkvparser::Track *track = tracks->GetTrackByIndex(index); + if (track == NULL) { + // Apparently this is currently valid (if unexpected) behaviour + // of the mkv parser lib. + continue; + } + const char *const codecID = track->GetCodecId(); LOGV("codec id = %s", codecID); LOGV("codec name = %s", track->GetCodecNameAsUTF8()); diff --git a/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml b/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml index 5a41421..faae62c 100644 --- a/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml +++ b/packages/SystemUI/res/layout-xlarge/status_bar_notification_area.xml @@ -88,13 +88,12 @@ android:id="@+id/network_text" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginTop="12dp" android:layout_marginRight="6dip" android:layout_marginLeft="6dip" android:gravity="center" android:singleLine="true" android:visibility="gone" - android:textSize="14dip" + android:textSize="16sp" android:textColor="#606060" /> diff --git a/packages/SystemUI/res/layout-xlarge/status_bar_notification_panel.xml b/packages/SystemUI/res/layout-xlarge/status_bar_notification_panel.xml index 4cf28ee..821cf6a 100644 --- a/packages/SystemUI/res/layout-xlarge/status_bar_notification_panel.xml +++ b/packages/SystemUI/res/layout-xlarge/status_bar_notification_panel.xml @@ -31,6 +31,7 @@ android:layout_width="match_parent" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" + android:layout_marginBottom="-27dip" > <include layout="@layout/status_bar_notification_panel_title" diff --git a/packages/SystemUI/res/values-bg-xlarge/strings.xml b/packages/SystemUI/res/values-bg-xlarge/strings.xml index 8dd6d7c..9ddb662 100644 --- a/packages/SystemUI/res/values-bg-xlarge/strings.xml +++ b/packages/SystemUI/res/values-bg-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Изчистване на всичко"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Изч. на вс."</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Няма връзка с интернет"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: има връзка"</string> </resources> diff --git a/packages/SystemUI/res/values-ca-xlarge/strings.xml b/packages/SystemUI/res/values-ca-xlarge/strings.xml index 289a2a3..26b4651 100644 --- a/packages/SystemUI/res/values-ca-xlarge/strings.xml +++ b/packages/SystemUI/res/values-ca-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Esborra-ho tot"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Esborra-ho"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No connexió Internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connectat"</string> </resources> diff --git a/packages/SystemUI/res/values-cs-xlarge/strings.xml b/packages/SystemUI/res/values-cs-xlarge/strings.xml index b257792..47a9e5c 100644 --- a/packages/SystemUI/res/values-cs-xlarge/strings.xml +++ b/packages/SystemUI/res/values-cs-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Vymazat vše"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Žádné připojení"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: připojeno"</string> </resources> diff --git a/packages/SystemUI/res/values-da-xlarge/strings.xml b/packages/SystemUI/res/values-da-xlarge/strings.xml index 78107ab..c99afbd 100644 --- a/packages/SystemUI/res/values-da-xlarge/strings.xml +++ b/packages/SystemUI/res/values-da-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Ryd alt"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen internetforb."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi er forbundet"</string> </resources> diff --git a/packages/SystemUI/res/values-el-xlarge/strings.xml b/packages/SystemUI/res/values-el-xlarge/strings.xml index 41f61e2..bbf7637 100644 --- a/packages/SystemUI/res/values-el-xlarge/strings.xml +++ b/packages/SystemUI/res/values-el-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Διαγ. όλων"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Χωρίς σύνδ. σε Διαδ."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: συνδέθηκε"</string> </resources> diff --git a/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml index 5c9c6fc..00b951e 100644 --- a/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml +++ b/packages/SystemUI/res/values-es-rUS-xlarge/strings.xml @@ -1,18 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright (c) 2010, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + --> + <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- XL xlarge --> - <string name="status_bar_clear_all_button" msgid="4341545325987974494">"Eliminar todos"</string> - <!-- XL --> - <string name="status_bar_no_notifications_title" msgid="2492933749414725897">"No tienes notificaciones"</string> - <!-- XL --> - <string name="status_bar_settings_rotation_lock" msgid="9125161825884157545">"Bloquear orient. de pant."</string> - <!-- XL --> - <string name="recent_tasks_app_label" msgid="5550538721034982973">"Google Apps"</string> - <!-- XL --> - <string name="bluetooth_tethered" msgid="8017158699581472359">"Bluetooth anclado"</string> - <!-- XL xlarge --> - <string name="status_bar_settings_signal_meter_disconnected" msgid="4866302415753953027">"Sin conexión a Internet"</string> - <!-- XL xlarge --> - <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="3832182580451976589">"Wi-Fi conectado"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Eliminar todos"</string> + <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sin conexión a Int."</string> + <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"WiFi conectado"</string> </resources> diff --git a/packages/SystemUI/res/values-es-xlarge/strings.xml b/packages/SystemUI/res/values-es-xlarge/strings.xml index 935fdbc..a544f79 100644 --- a/packages/SystemUI/res/values-es-xlarge/strings.xml +++ b/packages/SystemUI/res/values-es-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Borrar todo"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sin conexión a Internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Con conexión WiFi"</string> </resources> diff --git a/packages/SystemUI/res/values-hu-xlarge/strings.xml b/packages/SystemUI/res/values-hu-xlarge/strings.xml index d49266f..debf906 100644 --- a/packages/SystemUI/res/values-hu-xlarge/strings.xml +++ b/packages/SystemUI/res/values-hu-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Az összes törlése"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Össz.törl."</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nincs internetkapcs."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi csatlakozva"</string> </resources> diff --git a/packages/SystemUI/res/values-it-xlarge/strings.xml b/packages/SystemUI/res/values-it-xlarge/strings.xml index 3b1e302..9130b8d 100644 --- a/packages/SystemUI/res/values-it-xlarge/strings.xml +++ b/packages/SystemUI/res/values-it-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Canc. tutto"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"No connessione Internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: connesso"</string> </resources> diff --git a/packages/SystemUI/res/values-ko-xlarge/strings.xml b/packages/SystemUI/res/values-ko-xlarge/strings.xml index 4962b5e..8c48978 100644 --- a/packages/SystemUI/res/values-ko-xlarge/strings.xml +++ b/packages/SystemUI/res/values-ko-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"모두 지우기"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"인터넷에 연결되지 않음"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi 연결됨"</string> </resources> diff --git a/packages/SystemUI/res/values-lt-xlarge/strings.xml b/packages/SystemUI/res/values-lt-xlarge/strings.xml index f9b3ac1..d3c8fce 100644 --- a/packages/SystemUI/res/values-lt-xlarge/strings.xml +++ b/packages/SystemUI/res/values-lt-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Išvalyti viską"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Išv. viską"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nėra interneto ryšio"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Prisijungta prie „Wi-Fi“"</string> </resources> diff --git a/packages/SystemUI/res/values-lv-xlarge/strings.xml b/packages/SystemUI/res/values-lv-xlarge/strings.xml index af3423f..9bc9aa6 100644 --- a/packages/SystemUI/res/values-lv-xlarge/strings.xml +++ b/packages/SystemUI/res/values-lv-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Notīrīt visu"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Notīr.visu"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Nav interneta sav."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Izv. sav. ar Wi-Fi"</string> </resources> diff --git a/packages/SystemUI/res/values-nb-xlarge/strings.xml b/packages/SystemUI/res/values-nb-xlarge/strings.xml index 726b061..d236f18 100644 --- a/packages/SystemUI/res/values-nb-xlarge/strings.xml +++ b/packages/SystemUI/res/values-nb-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Tøm alt"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen Int.-tilkobl."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: tilkoblet"</string> </resources> diff --git a/packages/SystemUI/res/values-nl-xlarge/strings.xml b/packages/SystemUI/res/values-nl-xlarge/strings.xml index b2946ae..eee7e35 100644 --- a/packages/SystemUI/res/values-nl-xlarge/strings.xml +++ b/packages/SystemUI/res/values-nl-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Wissen"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Geen internetverb."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Verbonden via Wi-Fi"</string> </resources> diff --git a/packages/SystemUI/res/values-pl-xlarge/strings.xml b/packages/SystemUI/res/values-pl-xlarge/strings.xml index 8642ea4..e223b84 100644 --- a/packages/SystemUI/res/values-pl-xlarge/strings.xml +++ b/packages/SystemUI/res/values-pl-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Wyczyść wszystko"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Brak połączenia internetowego"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: połączono"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml index 8ddb2b1..7df815c 100644 --- a/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Limpar tudo"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Sem ligação internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi ligado"</string> </resources> diff --git a/packages/SystemUI/res/values-ro-xlarge/strings.xml b/packages/SystemUI/res/values-ro-xlarge/strings.xml index 07badf4..e6296cd 100644 --- a/packages/SystemUI/res/values-ro-xlarge/strings.xml +++ b/packages/SystemUI/res/values-ro-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Ştergeţi-le pe toate"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Şterg. tot"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Fără conex. internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi conectat"</string> </resources> diff --git a/packages/SystemUI/res/values-ru-xlarge/strings.xml b/packages/SystemUI/res/values-ru-xlarge/strings.xml index 001f95c..5c26e90 100644 --- a/packages/SystemUI/res/values-ru-xlarge/strings.xml +++ b/packages/SystemUI/res/values-ru-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Удалить все"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Нет подключения"</string> - <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi: подключено"</string> + <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi подкл."</string> </resources> diff --git a/packages/SystemUI/res/values-sl-xlarge/strings.xml b/packages/SystemUI/res/values-sl-xlarge/strings.xml index ef50a67..fcc65de 100644 --- a/packages/SystemUI/res/values-sl-xlarge/strings.xml +++ b/packages/SystemUI/res/values-sl-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Počisti vse"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Izbriši vse"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Brez inter. povez."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi – povezano"</string> </resources> diff --git a/packages/SystemUI/res/values-sv-xlarge/strings.xml b/packages/SystemUI/res/values-sv-xlarge/strings.xml index 9379451..db85ee1 100644 --- a/packages/SystemUI/res/values-sv-xlarge/strings.xml +++ b/packages/SystemUI/res/values-sv-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Ta bort alla"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Ingen Internetansl."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi-ansluten"</string> </resources> diff --git a/packages/SystemUI/res/values-th-xlarge/strings.xml b/packages/SystemUI/res/values-th-xlarge/strings.xml index fb4cbae..428e9ab 100644 --- a/packages/SystemUI/res/values-th-xlarge/strings.xml +++ b/packages/SystemUI/res/values-th-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"ล้างทั้งหมด"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"ล้างหมด"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"ไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"เชื่อมต่อ Wi-Fi แล้ว"</string> </resources> diff --git a/packages/SystemUI/res/values-tl-xlarge/strings.xml b/packages/SystemUI/res/values-tl-xlarge/strings.xml index 3560c96..25584b1 100644 --- a/packages/SystemUI/res/values-tl-xlarge/strings.xml +++ b/packages/SystemUI/res/values-tl-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"I-clear ang lahat"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"I-clear lahat"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Wala net connection"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Konektado ang WiFi"</string> </resources> diff --git a/packages/SystemUI/res/values-tr-xlarge/strings.xml b/packages/SystemUI/res/values-tr-xlarge/strings.xml index f7d20b5e..fa937c3 100644 --- a/packages/SystemUI/res/values-tr-xlarge/strings.xml +++ b/packages/SystemUI/res/values-tr-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Tümünü temizle"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"İnternet bağlnts yok"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Kablosuz bağlandı"</string> </resources> diff --git a/packages/SystemUI/res/values-uk-xlarge/strings.xml b/packages/SystemUI/res/values-uk-xlarge/strings.xml index 47242a6..864cb0c 100644 --- a/packages/SystemUI/res/values-uk-xlarge/strings.xml +++ b/packages/SystemUI/res/values-uk-xlarge/strings.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Очистити все"</string> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"Очист. все"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"Інтернет не під\'єдн."</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi під\'єднано"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml index 6a8ef52..82f757e 100644 --- a/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW-xlarge/strings.xml @@ -19,8 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for status_bar_clear_all_button (4722520806446512408) --> - <skip /> + <string name="status_bar_clear_all_button" msgid="4722520806446512408">"全部清除"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="4684094636492991496">"沒有網路連線"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="1456658018593445677">"Wi-Fi 已連線"</string> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java index 9f48b48..092f0b8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java @@ -46,7 +46,10 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel, static final String TAG = "Tablet/NotificationPanel"; static final boolean DEBUG = false; + final static int PANEL_FADE_DURATION = 150; + boolean mShowing; + int mNotificationCount = 0; View mTitleArea; View mModeToggle; View mSettingsButton; @@ -90,6 +93,10 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel, } public void show(boolean show, boolean animate) { + if (show && !mShowing) { + setContentFrameVisible(mNotificationCount > 0, false); + } + if (animate) { if (mShowing != show) { mShowing = show; @@ -150,7 +157,43 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel, } } - final static int PANEL_FADE_DURATION = 150; + public void setNotificationCount(int n) { + Slog.d(TAG, "notificationCount=" + n); + if (!mShowing) { + // just do it, already + setContentFrameVisible(n > 0, false); + } else if (mSettingsView == null) { + // we're looking at the notifications; time to maybe make some changes + if (mNotificationCount == 0 && n > 0) { + setContentFrameVisible(true, true); + } else if (mNotificationCount > 0 && n == 0) { + setContentFrameVisible(false, true); + } + } + mNotificationCount = n; + } + + public void setContentFrameVisible(final boolean showing, boolean animate) { + if (!animate) { + mContentFrame.setVisibility(showing ? View.VISIBLE : View.GONE); + mContentParent.setTranslationY(showing ? 0f : 100f); + return; + } + + mContentFrame.setVisibility(showing ? View.VISIBLE : View.GONE); + AnimatorSet set = new AnimatorSet(); + float adjust = mContentFrame.getBackground().getMinimumHeight() + 8; // fudge factor + set.play(ObjectAnimator.ofFloat( + mContentFrame, "alpha", + showing ? 0f : 1f, + showing ? 1f : 0f)) + .with(ObjectAnimator.ofFloat( + mContentParent, "translationY", + showing ? adjust : 0f, + showing ? 0f : adjust)); + set.setDuration(200); + set.start(); + } public void swapPanels() { final View toShow, toHide; @@ -168,12 +211,22 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel, @Override public void onAnimationEnd(Animator _a) { toHide.setVisibility(View.GONE); - toShow.setVisibility(View.VISIBLE); - ObjectAnimator.ofFloat(toShow, "alpha", 0f, 1f) - .setDuration(PANEL_FADE_DURATION) - .start(); - if (toHide == mSettingsView) { - removeSettingsView(); + if (toShow != null) { + if (mNotificationCount == 0) { + // show the frame for settings, hide for notifications + setContentFrameVisible(toShow == mSettingsView, true); + } + + toShow.setVisibility(View.VISIBLE); + if (toShow == mSettingsView || mNotificationCount > 0) { + ObjectAnimator.ofFloat(toShow, "alpha", 0f, 1f) + .setDuration(PANEL_FADE_DURATION) + .start(); + } + + if (toHide == mSettingsView) { + removeSettingsView(); + } } updatePanelModeButtons(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java index c2f74f0..e26b8ea 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -1219,6 +1219,8 @@ public class TabletStatusBar extends StatusBar implements mPile.addView(toShow.get(i)); } } + + mNotificationPanel.setNotificationCount(N); } void workAroundBadLayerDrawableOpacity(View v) { diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index b5cc5aa..21c1e81 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -121,6 +121,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub private static final String SUBTYPE_MODE_KEYBOARD = "keyboard"; private static final String SUBTYPE_MODE_VOICE = "voice"; + // TODO: Will formalize this value as API + private static final String SUBTYPE_EXTRAVALUE_EXCLUDE_FROM_LAST_IME = + "excludeFromLastInputMethod"; + final Context mContext; final Resources mRes; final Handler mHandler; @@ -1901,12 +1905,26 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } } + private boolean canAddToLastInputMethod(InputMethodSubtype subtype) { + if (subtype == null) return true; + String[] extraValues = subtype.getExtraValue().split(","); + final int N = extraValues.length; + for (int i = 0; i < N; ++i) { + if (SUBTYPE_EXTRAVALUE_EXCLUDE_FROM_LAST_IME.equals(extraValues[i])) { + return false; + } + } + return true; + } + private void saveCurrentInputMethodAndSubtypeToHistory() { String subtypeId = NOT_A_SUBTYPE_ID_STR; if (mCurrentSubtype != null) { subtypeId = String.valueOf(mCurrentSubtype.hashCode()); } - mSettings.addSubtypeToHistory(mCurMethodId, subtypeId); + if (canAddToLastInputMethod(mCurrentSubtype)) { + mSettings.addSubtypeToHistory(mCurMethodId, subtypeId); + } } private void setSelectedInputMethodAndSubtypeLocked(InputMethodInfo imi, int subtypeId, diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java index 9c4fa97..3ea4911 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java @@ -158,10 +158,6 @@ public class TestShellActivity extends Activity implements LayoutTestController // WebView::setJsFlags is noop in JSC build. mWebView.setJsFlags("--expose_gc"); - // Always send multitouch events to Webkit since the layout test - // is only for the Webkit not the browser's UI. - mWebView.setDeferMultiTouch(true); - mHandler = new AsyncHandler(); Intent intent = getIntent(); diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java index ce546ec..d9f5dd4 100644 --- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java +++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java @@ -372,7 +372,6 @@ public class LayoutTestsExecutor extends Activity { webView.setTouchInterval(-1); webView.clearCache(true); - webView.setDeferMultiTouch(true); WebSettings webViewSettings = webView.getSettings(); webViewSettings.setAppCacheEnabled(true); diff --git a/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java b/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java new file mode 100644 index 0000000..3946a2f --- /dev/null +++ b/tools/layoutlib/bridge/src/android/view/LayoutInflater_Delegate.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.view; + +import com.android.layoutlib.bridge.android.BridgeInflater; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import android.util.AttributeSet; + +import java.io.IOException; + +/** + * Delegate used to provide new implementation of a select few methods of {@link LayoutInflater} + * + * Through the layoutlib_create tool, the original methods of LayoutInflater have been replaced + * by calls to methods of the same name in this delegate class. + * + */ +public class LayoutInflater_Delegate { + + /** + * Recursive method used to descend down the xml hierarchy and instantiate + * views, instantiate their children, and then call onFinishInflate(). + */ + /*package*/ static void rInflate(LayoutInflater thisInflater, + XmlPullParser parser, View parent, final AttributeSet attrs, + boolean finishInflate) throws XmlPullParserException, IOException { + + if (finishInflate == false) { + // this is a merge rInflate! + if (thisInflater instanceof BridgeInflater) { + ((BridgeInflater) thisInflater).setIsInMerge(true); + } + } + + // ---- START DEFAULT IMPLEMENTATION. + + final int depth = parser.getDepth(); + int type; + + while (((type = parser.next()) != XmlPullParser.END_TAG || + parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) { + + if (type != XmlPullParser.START_TAG) { + continue; + } + + final String name = parser.getName(); + + if (LayoutInflater.TAG_REQUEST_FOCUS.equals(name)) { + thisInflater.parseRequestFocus(parser, parent); + } else if (LayoutInflater.TAG_INCLUDE.equals(name)) { + if (parser.getDepth() == 0) { + throw new InflateException("<include /> cannot be the root element"); + } + thisInflater.parseInclude(parser, parent, attrs); + } else if (LayoutInflater.TAG_MERGE.equals(name)) { + throw new InflateException("<merge /> must be the root element"); + } else { + final View view = thisInflater.createViewFromTag(parent, name, attrs); + final ViewGroup viewGroup = (ViewGroup) parent; + final ViewGroup.LayoutParams params = viewGroup.generateLayoutParams(attrs); + thisInflater.rInflate(parser, view, attrs, true); + viewGroup.addView(view, params); + } + } + + if (finishInflate) parent.onFinishInflate(); + + // ---- END DEFAULT IMPLEMENTATION. + + if (finishInflate == false) { + // this is a merge rInflate! + if (thisInflater instanceof BridgeInflater) { + ((BridgeInflater) thisInflater).setIsInMerge(false); + } + } + } +} diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeInflater.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeInflater.java index 7fa6fdf..465bf1d 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeInflater.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeInflater.java @@ -18,6 +18,7 @@ package com.android.layoutlib.bridge.android; import com.android.ide.common.rendering.api.IProjectCallback; import com.android.ide.common.rendering.api.LayoutLog; +import com.android.ide.common.rendering.api.MergeCookie; import com.android.ide.common.rendering.api.RenderResources; import com.android.ide.common.rendering.api.ResourceValue; import com.android.layoutlib.bridge.Bridge; @@ -41,6 +42,7 @@ import java.io.FileReader; public final class BridgeInflater extends LayoutInflater { private final IProjectCallback mProjectCallback; + private boolean mIsInMerge = false; /** * List of class prefixes which are tried first by default. @@ -211,8 +213,6 @@ public final class BridgeInflater extends LayoutInflater { return null; } - - private void setupViewInContext(View view, AttributeSet attrs) { if (getContext() instanceof BridgeContext) { BridgeContext bc = (BridgeContext) getContext(); @@ -222,9 +222,11 @@ public final class BridgeInflater extends LayoutInflater { // get the view key Object viewKey = parser.getViewCookie(); - // if there's no view key and the depth is 1 (ie this is the first tag), + // if there's no view key and the depth is 1 (ie this is the first tag), or 2 + // (this is first item in included merge layout) // look for a previous parser in the context, and check if this one has a viewkey. - if (viewKey == null && parser.getDepth() == 1) { + int testDepth = mIsInMerge ? 2 : 1; + if (viewKey == null && parser.getDepth() == testDepth) { BridgeXmlBlockParser previousParser = bc.getPreviousParser(); if (previousParser != null) { viewKey = previousParser.getViewCookie(); @@ -232,12 +234,21 @@ public final class BridgeInflater extends LayoutInflater { } if (viewKey != null) { + if (testDepth == 2) { + // include-merge case + viewKey = new MergeCookie(viewKey); + } + bc.addViewKey(view, viewKey); } } } } + public void setIsInMerge(boolean isInMerge) { + mIsInMerge = isInMerge; + } + @Override public LayoutInflater cloneInContext(Context newContext) { return new BridgeInflater(this, newContext); diff --git a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestDelegates.java b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestDelegates.java index 23b7e94..0ff1925 100644 --- a/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestDelegates.java +++ b/tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/TestDelegates.java @@ -104,7 +104,12 @@ public class TestDelegates extends TestCase { parameters); // check that the method is static - assertTrue((delegateMethod.getModifiers() & Modifier.STATIC) == Modifier.STATIC); + assertTrue( + String.format( + "Delegate method %1$s for class %2$s is not static", + delegateMethod.getName(), + originalClass.getName()), + (delegateMethod.getModifiers() & Modifier.STATIC) == Modifier.STATIC); } catch (NoSuchMethodException e) { // compute a full class name that's long but not too long. StringBuilder sb = new StringBuilder(originalMethod.getName() + "("); diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java index 4198006..e3c5b4b 100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java @@ -96,8 +96,9 @@ public final class CreateInfo implements ICreateInfo { private final static String[] DELEGATE_METHODS = new String[] { "android.app.Fragment#instantiate", //(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;", "android.os.Handler#sendMessageAtTime", + "android.view.LayoutInflater#rInflate", "android.view.View#isInEditMode", - "com.android.internal.util.XmlUtils#convertValueToInt" + "com.android.internal.util.XmlUtils#convertValueToInt", // TODO: comment out once DelegateClass is working // "android.content.res.Resources$Theme#obtainStyledAttributes", }; |
