diff options
138 files changed, 1378 insertions, 1196 deletions
diff --git a/api/17.txt b/api/17.txt index e86de90ab46d..91dc71f58b3a 100644 --- a/api/17.txt +++ b/api/17.txt @@ -16615,6 +16615,8 @@ package android.os { } public class UserManager { + method public long getSerialNumberForUser(android.os.UserHandle); + method public android.os.UserHandle getUserForSerialNumber(long); method public java.lang.String getUserName(); method public boolean isUserAGoat(); } @@ -20340,7 +20342,7 @@ package android.service.dreams { method public boolean dispatchTouchEvent(android.view.MotionEvent); method public boolean dispatchTrackballEvent(android.view.MotionEvent); method public android.view.View findViewById(int); - method public void finish(); + method public final void finish(); method public android.view.Window getWindow(); method public android.view.WindowManager getWindowManager(); method public boolean isFullscreen(); @@ -20355,12 +20357,13 @@ package android.service.dreams { method public boolean onCreatePanelMenu(int, android.view.Menu); method public android.view.View onCreatePanelView(int); method public void onDetachedFromWindow(); + method public void onDreamingStarted(); + method public void onDreamingStopped(); method public boolean onMenuItemSelected(int, android.view.MenuItem); method public boolean onMenuOpened(int, android.view.Menu); method public void onPanelClosed(int, android.view.Menu); method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public boolean onSearchRequested(); - method public void onStart(); method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams); method public void onWindowFocusChanged(boolean); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback); diff --git a/api/current.txt b/api/current.txt index e86de90ab46d..91dc71f58b3a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16615,6 +16615,8 @@ package android.os { } public class UserManager { + method public long getSerialNumberForUser(android.os.UserHandle); + method public android.os.UserHandle getUserForSerialNumber(long); method public java.lang.String getUserName(); method public boolean isUserAGoat(); } @@ -20340,7 +20342,7 @@ package android.service.dreams { method public boolean dispatchTouchEvent(android.view.MotionEvent); method public boolean dispatchTrackballEvent(android.view.MotionEvent); method public android.view.View findViewById(int); - method public void finish(); + method public final void finish(); method public android.view.Window getWindow(); method public android.view.WindowManager getWindowManager(); method public boolean isFullscreen(); @@ -20355,12 +20357,13 @@ package android.service.dreams { method public boolean onCreatePanelMenu(int, android.view.Menu); method public android.view.View onCreatePanelView(int); method public void onDetachedFromWindow(); + method public void onDreamingStarted(); + method public void onDreamingStopped(); method public boolean onMenuItemSelected(int, android.view.MenuItem); method public boolean onMenuOpened(int, android.view.Menu); method public void onPanelClosed(int, android.view.Menu); method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public boolean onSearchRequested(); - method public void onStart(); method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams); method public void onWindowFocusChanged(boolean); method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback); diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index fb02c0a2fb39..7e11c22fd24f 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -178,6 +178,16 @@ public final class PowerManager { /** * Wake lock level: Turns the screen off when the proximity sensor activates. * <p> + * If the proximity sensor detects that an object is nearby, the screen turns off + * immediately. Shortly after the object moves away, the screen turns on again. + * </p><p> + * A proximity wake lock does not prevent the device from falling asleep + * unlike {@link #FULL_WAKE_LOCK}, {@link #SCREEN_BRIGHT_WAKE_LOCK} and + * {@link #SCREEN_DIM_WAKE_LOCK}. If there is no user activity and no other + * wake locks are held, then the device will fall asleep (and lock) as usual. + * However, the device will not fall asleep while the screen has been turned off + * by the proximity sensor because it effectively counts as ongoing user activity. + * </p><p> * Since not all devices have proximity sensors, use {@link #isWakeLockLevelSupported} * to determine whether this wake lock level is supported. * </p> diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 96c96d76a423..83a0c7800c2f 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -98,6 +98,32 @@ public class UserManager { } /** + * Return the serial number for a user. This is a device-unique + * number assigned to that user; if the user is deleted and new users + * created, the new users will not be given the same serial number. + * @param user The user whose serial number is to be retrieved. + * @return The serial number of the given user. + * @see #getUserForSerialNumber(long) + */ + public long getSerialNumberForUser(UserHandle user) { + return getUserSerialNumber(user.getIdentifier()); + } + + /** + * Return the user associated with a serial number previously + * returned by {@link #getSerialNumberForUser(UserHandle)}. + * @param serialNumber The serial number of the user that is being + * retrieved. + * @return Return the user associated with the serial number, or null + * if there is not one. + * @see #getSerialNumberForUser(UserHandle) + */ + public UserHandle getUserForSerialNumber(long serialNumber) { + int ident = getUserHandle((int)serialNumber); + return ident >= 0 ? new UserHandle(ident) : null; + } + + /** * Creates a user with the specified name and options. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * diff --git a/core/java/android/service/dreams/Dream.java b/core/java/android/service/dreams/Dream.java deleted file mode 100644 index 4e8b05bff493..000000000000 --- a/core/java/android/service/dreams/Dream.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.service.dreams; - -/** - * @hide - * Temporarily needed to not break existing apps. - */ -public class Dream extends DreamService { -} diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 03b685b595e2..dd51764e9cdb 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -15,6 +15,9 @@ */ package android.service.dreams; +import java.io.FileDescriptor; +import java.io.PrintWriter; + import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.app.Service; @@ -39,13 +42,24 @@ import android.view.accessibility.AccessibilityEvent; import com.android.internal.policy.PolicyManager; /** - * Extend this class to implement a custom Dream. + * Extend this class to implement a custom Dream (displayed to the user as a "Sleep Mode"). * * <p>Dreams are interactive screensavers launched when a charging device is idle, or docked in a * desk dock. Dreams provide another modality for apps to express themselves, tailored for * an exhibition/lean-back experience.</p> * - * <p>Dreams should be declared in the manifest as follows:</p> + * <p>The Dream lifecycle is as follows:</p> + * <ul> + * <li>onAttachedToWindow</li> + * <li>onDreamingStarted</li> + * <li>onDreamingStopped</li> + * <li>onDetachedFromWindow</li> + * </ul> + * + * <p>In addition, onCreate and onDestroy (from the Service interface) will also be called, but + * initialization and teardown should be done by overriding the hooks above.</p> + * + * <p>To be available to the system, Dreams should be declared in the manifest as follows:</p> * <pre> * <service * android:name=".MyDream" @@ -74,7 +88,6 @@ import com.android.internal.policy.PolicyManager; * </pre> */ public class DreamService extends Service implements Window.Callback { - private final static boolean DEBUG = true; private final String TAG = DreamService.class.getSimpleName() + "[" + getClass().getSimpleName() + "]"; /** @@ -109,17 +122,26 @@ public class DreamService extends Service implements Window.Callback { private boolean mScreenBright = false; private boolean mFinished; + private boolean mDebug = false; + + /** + * @hide + */ + public void setDebug(boolean dbg) { + mDebug = dbg; + } + // begin Window.Callback methods /** {@inheritDoc} */ @Override public boolean dispatchKeyEvent(KeyEvent event) { // TODO: create more flexible version of mInteractive that allows use of KEYCODE_BACK if (!mInteractive) { - if (DEBUG) Slog.v(TAG, "Finishing on keyEvent"); + if (mDebug) Slog.v(TAG, "Finishing on keyEvent"); safelyFinish(); return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { - if (DEBUG) Slog.v(TAG, "Finishing on back key"); + if (mDebug) Slog.v(TAG, "Finishing on back key"); safelyFinish(); return true; } @@ -129,8 +151,8 @@ public class DreamService extends Service implements Window.Callback { /** {@inheritDoc} */ @Override public boolean dispatchKeyShortcutEvent(KeyEvent event) { - if (!mInteractive) { - if (DEBUG) Slog.v(TAG, "Finishing on keyShortcutEvent"); + if (!mInteractive) { + if (mDebug) Slog.v(TAG, "Finishing on keyShortcutEvent"); safelyFinish(); return true; } @@ -140,10 +162,10 @@ public class DreamService extends Service implements Window.Callback { /** {@inheritDoc} */ @Override public boolean dispatchTouchEvent(MotionEvent event) { - // TODO: create more flexible version of mInteractive that allows clicks + // TODO: create more flexible version of mInteractive that allows clicks // but finish()es on any other kind of activity - if (!mInteractive) { - if (DEBUG) Slog.v(TAG, "Finishing on touchEvent"); + if (!mInteractive) { + if (mDebug) Slog.v(TAG, "Finishing on touchEvent"); safelyFinish(); return true; } @@ -154,7 +176,7 @@ public class DreamService extends Service implements Window.Callback { @Override public boolean dispatchTrackballEvent(MotionEvent event) { if (!mInteractive) { - if (DEBUG) Slog.v(TAG, "Finishing on trackballEvent"); + if (mDebug) Slog.v(TAG, "Finishing on trackballEvent"); safelyFinish(); return true; } @@ -164,8 +186,8 @@ public class DreamService extends Service implements Window.Callback { /** {@inheritDoc} */ @Override public boolean dispatchGenericMotionEvent(MotionEvent event) { - if (!mInteractive) { - if (DEBUG) Slog.v(TAG, "Finishing on genericMotionEvent"); + if (!mInteractive) { + if (mDebug) Slog.v(TAG, "Finishing on genericMotionEvent"); safelyFinish(); return true; } @@ -289,7 +311,7 @@ public class DreamService extends Service implements Window.Callback { * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> * * @param layoutResID Resource ID to be inflated. - * + * * @see #setContentView(android.view.View) * @see #setContentView(android.view.View, android.view.ViewGroup.LayoutParams) */ @@ -314,7 +336,7 @@ public class DreamService extends Service implements Window.Callback { /** * Sets a view to be the content view for this Dream. - * Behaves similarly to + * Behaves similarly to * {@link android.app.Activity#setContentView(android.view.View, android.view.ViewGroup.LayoutParams)}. * * <p>Note: Requires a window, do not call before {@link #onAttachedToWindow()}</p> @@ -437,68 +459,105 @@ public class DreamService extends Service implements Window.Callback { } /** - * Called when this Dream is constructed. Place your initialization here. - * - * <p>Subclasses must call through to the superclass implementation.</p> + * Called when this Dream is constructed. */ @Override public void onCreate() { - if (DEBUG) Slog.v(TAG, "onCreate() on thread " + Thread.currentThread().getId()); + if (mDebug) Slog.v(TAG, "onCreate() on thread " + Thread.currentThread().getId()); super.onCreate(); - loadSandman(); } /** - * Called when this Dream is started. The window is created and visible at this point. + * Called when the dream's window has been created and is visible and animation may now begin. + */ + public void onDreamingStarted() { + if (mDebug) Slog.v(TAG, "onDreamingStarted()"); + // hook for subclasses + } + + /** + * Called when this Dream is stopped, either by external request or by calling finish(), + * before the window has been removed. */ - public void onStart() { - if (DEBUG) Slog.v(TAG, "onStart()"); + public void onDreamingStopped() { + if (mDebug) Slog.v(TAG, "onDreamingStopped()"); // hook for subclasses } /** {@inheritDoc} */ @Override public final IBinder onBind(Intent intent) { - if (DEBUG) Slog.v(TAG, "onBind() intent = " + intent); + if (mDebug) Slog.v(TAG, "onBind() intent = " + intent); return new DreamServiceWrapper(); } /** * Stops the dream, detaches from the window, and wakes up. - * - * <p>Subclasses must call through to the superclass implementation.</p> - * - * <p>After this method is called, the service will be stopped.</p> */ - public void finish() { - if (DEBUG) Slog.v(TAG, "finish()"); + public final void finish() { + if (mDebug) Slog.v(TAG, "finish()"); finishInternal(); } /** {@inheritDoc} */ @Override public void onDestroy() { - if (DEBUG) Slog.v(TAG, "onDestroy()"); + if (mDebug) Slog.v(TAG, "onDestroy()"); super.onDestroy(); + // hook for subclasses + } + + // end public api + + private void loadSandman() { + mSandman = IDreamManager.Stub.asInterface(ServiceManager.getService(DREAM_SERVICE)); + } + + /** + * Called when the Dream is about to be unbound and destroyed. + * + * Must run on mHandler. + */ + private final void detach() { + if (mWindow == null) { + Slog.e(TAG, "detach() called when not attached"); + return; + } + + try { + onDreamingStopped(); + } catch (Throwable t) { + Slog.w(TAG, "Crashed in onDreamingStopped()", t); + // we were going to stop anyway + } - if (DEBUG) Slog.v(TAG, "Removing window"); + if (mDebug) Slog.v(TAG, "detach(): Removing window from window manager"); try { mWindowManager.removeView(mWindow.getDecorView()); } catch (Throwable t) { Slog.w(TAG, "Crashed removing window view", t); } - } - // end public api - private void loadSandman() { - mSandman = IDreamManager.Stub.asInterface(ServiceManager.getService(DREAM_SERVICE)); + mWindow = null; + mWindowToken = null; } + /** + * Called when the Dream is ready to be shown. + * + * Must run on mHandler. + * + * @param windowToken A window token that will allow a window to be created in the correct layer. + */ private final void attach(IBinder windowToken) { - if (DEBUG) Slog.v(TAG, "Attached on thread " + Thread.currentThread().getId()); + if (mWindowToken != null) { + Slog.e(TAG, "attach() called when already attached with token=" + mWindowToken); + return; + } + + if (mDebug) Slog.v(TAG, "Attached on thread " + Thread.currentThread().getId()); if (mSandman == null) { - Slog.w(TAG, "No dream manager found, super.onCreate may not have been called"); loadSandman(); } mWindowToken = windowToken; @@ -507,7 +566,7 @@ public class DreamService extends Service implements Window.Callback { mWindow.requestFeature(Window.FEATURE_NO_TITLE); mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000)); - if (DEBUG) Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", + if (mDebug) Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", windowToken, WindowManager.LayoutParams.TYPE_DREAM)); WindowManager.LayoutParams lp = mWindow.getAttributes(); @@ -521,40 +580,35 @@ public class DreamService extends Service implements Window.Callback { ); mWindow.setAttributes(lp); - if (DEBUG) Slog.v(TAG, "Created and attached window: " + mWindow); + if (mDebug) Slog.v(TAG, "Created and attached window: " + mWindow); mWindow.setWindowManager(null, windowToken, "dream", true); mWindowManager = mWindow.getWindowManager(); - // now make it visible (on the ui thread) - mHandler.post(new Runnable(){ - @Override - public void run() { - if (DEBUG) Slog.v(TAG, "Window added on thread " + Thread.currentThread().getId()); - try { - applySystemUiVisibilityFlags( - (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0) - | (mFullscreen ? View.SYSTEM_UI_FLAG_FULLSCREEN : 0), - View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN); - getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); - } catch (Throwable t) { - Slog.w("Crashed adding window view", t); - safelyFinish(); - return; - } + if (mDebug) Slog.v(TAG, "Window added on thread " + Thread.currentThread().getId()); + try { + applySystemUiVisibilityFlags( + (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0) + | (mFullscreen ? View.SYSTEM_UI_FLAG_FULLSCREEN : 0), + View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN); + getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); + } catch (Throwable t) { + Slog.w("Crashed adding window view", t); + safelyFinish(); + return; + } - // start it up - try { - onStart(); - } catch (Throwable t) { - Slog.w("Crashed in onStart()", t); - safelyFinish(); - } - }}); + // start it up + try { + onDreamingStarted(); + } catch (Throwable t) { + Slog.w("Crashed in onDreamingStarted()", t); + safelyFinish(); + } } private void safelyFinish() { - if (DEBUG) Slog.v(TAG, "safelyFinish()"); + if (mDebug) Slog.v(TAG, "safelyFinish()"); try { finish(); } catch (Throwable t) { @@ -570,7 +624,7 @@ public class DreamService extends Service implements Window.Callback { } private void finishInternal() { - if (DEBUG) Slog.v(TAG, "finishInternal() mFinished = " + mFinished); + if (mDebug) Slog.v(TAG, "finishInternal() mFinished = " + mFinished); if (mFinished) return; try { mFinished = true; @@ -616,9 +670,41 @@ public class DreamService extends Service implements Window.Callback { return (oldFlags&~mask) | (flags&mask); } + @Override + protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + super.dump(fd, pw, args); + + pw.print(TAG + ": "); + if (mWindowToken == null) { + pw.println("stopped"); + } else { + pw.println("running (token=" + mWindowToken + ")"); + } + pw.println(" window: " + mWindow); + pw.print(" flags:"); + if (isInteractive()) pw.print(" interactive"); + if (isLowProfile()) pw.print(" lowprofile"); + if (isFullscreen()) pw.print(" fullscreen"); + if (isScreenBright()) pw.print(" bright"); + pw.println(); + } + private class DreamServiceWrapper extends IDreamService.Stub { - public void attach(IBinder windowToken) { - DreamService.this.attach(windowToken); + public void attach(final IBinder windowToken) { + mHandler.post(new Runnable() { + @Override + public void run() { + DreamService.this.attach(windowToken); + } + }); + } + public void detach() { + mHandler.post(new Runnable() { + @Override + public void run() { + DreamService.this.detach(); + } + }); } } diff --git a/core/java/android/service/dreams/IDreamService.aidl b/core/java/android/service/dreams/IDreamService.aidl index 1bb241a3f5db..99dc0b77d208 100644 --- a/core/java/android/service/dreams/IDreamService.aidl +++ b/core/java/android/service/dreams/IDreamService.aidl @@ -21,4 +21,5 @@ package android.service.dreams; */ oneway interface IDreamService { void attach(IBinder windowToken); + void detach(); } diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java index fe056348ad69..fb0415097e4e 100644 --- a/core/java/android/view/DisplayInfo.java +++ b/core/java/android/view/DisplayInfo.java @@ -233,7 +233,7 @@ public final class DisplayInfo implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(layerStack); - dest.writeInt(flags); + dest.writeInt(this.flags); dest.writeString(name); dest.writeInt(appWidth); dest.writeInt(appHeight); diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index a64cbf7123cb..f7ba38ceea3e 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -24,6 +24,7 @@ import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Point; import android.graphics.Rect; +import android.os.Bundle; import android.os.IRemoteCallback; import android.view.IApplicationToken; import android.view.IDisplayContentChangeListener; @@ -209,9 +210,9 @@ interface IWindowManager boolean hasNavigationBar(); /** - * Lock the device immediately. + * Lock the device immediately with the specified options (can be null). */ - void lockNow(); + void lockNow(in Bundle options); /** * Gets the token for the focused window. diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index 82f07c7bbbb5..04b5e11ba77c 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -21,6 +21,7 @@ import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Rect; import android.graphics.RectF; +import android.os.Bundle; import android.os.IBinder; import android.os.Looper; import android.view.animation.Animation; @@ -1096,7 +1097,7 @@ public interface WindowManagerPolicy { /** * Lock the device now. */ - public void lockNow(); + public void lockNow(Bundle options); /** * Set the last used input method window state. This state is used to make IME transition diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 871f7527c51f..33a8531194ac 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -1077,8 +1077,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te checkedStateChanged = true; } else if (mChoiceMode == CHOICE_MODE_SINGLE) { boolean checked = !mCheckStates.get(position, false); - mCheckStates.clear(); if (checked) { + mCheckStates.clear(); mCheckStates.put(position, true); if (mCheckedIdStates != null && mAdapter.hasStableIds()) { mCheckedIdStates.clear(); diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index f987fc55704d..d14b1ee1a13a 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -27,6 +27,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Binder; +import android.os.Bundle; import android.os.IBinder; import android.os.Process; import android.os.RemoteException; @@ -99,6 +100,26 @@ public class LockPatternUtils { public static final int MIN_PATTERN_REGISTER_FAIL = MIN_LOCK_PATTERN_SIZE; /** + * Tells the keyguard to show the user switcher when the keyguard is created. + */ + public static final String KEYGUARD_SHOW_USER_SWITCHER = "showuserswitcher"; + + /** + * Tells the keyguard to show the security challenge when the keyguard is created. + */ + public static final String KEYGUARD_SHOW_SECURITY_CHALLENGE = "showsecuritychallenge"; + + /** + * Options used to lock the device upon user switch. + */ + public static final Bundle USER_SWITCH_LOCK_OPTIONS = new Bundle(); + + static { + USER_SWITCH_LOCK_OPTIONS.putBoolean(KEYGUARD_SHOW_USER_SWITCHER, true); + USER_SWITCH_LOCK_OPTIONS.putBoolean(KEYGUARD_SHOW_SECURITY_CHALLENGE, true); + } + + /** * The bit in LOCK_BIOMETRIC_WEAK_FLAGS to be used to indicate whether liveliness should * be used */ diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index c794c513a4da..aa67ec2b5874 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -620,6 +620,13 @@ android:description="@string/permdesc_bluetoothAdmin" android:label="@string/permlab_bluetoothAdmin" /> + <!-- Allows bluetooth stack to access files + @hide This should only be used by Bluetooth apk. + --> + <permission android:name="android.permission.BLUETOOTH_STACK" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:protectionLevel="signature" /> + <!-- Allows applications to perform I/O operations over NFC --> <permission android:name="android.permission.NFC" android:permissionGroup="android.permission-group.NETWORK" diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index d1b042a61fe8..987d79483380 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -288,7 +288,7 @@ <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"haal skerminhoud op"</string> <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Laat die program toe om die inhoud van die aktiewe venster op te haal. Kwaadwillige programme kan die hele venster se inhoud ophaal, en al die teks ondersoek, behalwe wagwoorde."</string> <string name="permlab_temporary_enable_accessibility" msgid="2312612135127310254">"aktiveer toeganklikheid tydelik"</string> - <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Laat \'n program toe om toeganklikheid tydelik op die toestel te aktiveer. Kwaadwillige programme kan sonder toestemming van die gebruiker toeganklikheid verkry."</string> + <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Laat \'n program toe om toeganklikheid tydelik op die toestel te aktiveer. Kwaadwillige programme kan sonder die toestemming van die gebruiker toeganklikheid verkry."</string> <string name="permlab_retrieve_window_info" msgid="8532295199112519378">"haal vensterinligting op"</string> <string name="permdesc_retrieve_window_info" msgid="4998836370424186849">"Laat \'n program toe om inligting oor vensters vanaf die vensterbestuurder op te haal. Kwaadwillige programme kan moontlik inligting ophaal wat vir interne stelselgebruik bedoel is."</string> <string name="permlab_filter_events" msgid="8675535648807427389">"filter gebeure"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 5c7860cd435b..9eb0b0fa5d9b 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Фигурата е изчистена"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Клетката е добавена"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Фигурата е завършена"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Приспособление %2$d от %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Инструмент за избор на потребители"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Състояние"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Контроли за мултимедията"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"АБВ"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1437,11 +1433,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%d</xliff:g> неуспешни опита ще бъдете помолени да отключите таблета посредством имейл адрес."\n\n" Опитайте отново след <xliff:g id="NUMBER_2">%d</xliff:g> секунди."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%d</xliff:g> неуспешни опита ще бъдете помолени да отключите телефона посредством имейл адрес."\n\n" Опитайте отново след <xliff:g id="NUMBER_2">%d</xliff:g> секунди."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Да се увеличи ли силата на звука над безопасното ниво?"\n"Продължителното слушане при висока сила на звука може да увреди слуха ви."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Задръжте два пръста, за да активирате функцията за достъпност."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Достъпността е активирана."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Функцията за достъпност е анулирана."</string> + <string name="user_switched" msgid="3768006783166984410">"Текущ потребител <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 37a39a5996c3..6963bfd3b374 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Bezpečnostní gesto vymazáno"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Buňka přidána"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Bezpečnostní gesto dokončeno"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d z %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Výběr uživatele"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Stav"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Ovládání médií"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"Alt"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Povolit"</string> <string name="sms_control_no" msgid="625438561395534982">"Odmítnout"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> chce odeslat zprávu na adresu <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457"><font fgcolor="#ffffb060">"Mohou být účtovány poplatky"</font>" na váš mobilní účet."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Budou účtovány poplatky na váš mobilní účet."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Odeslat"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Zrušit"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Zapamatovat moji volbu"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Svoji volbu můžete později změnit v nabídce Nastavení > Aplikace."</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Povolit vždy"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Nepovolit nikdy"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIM karta odebrána"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Sluchátka"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Reproduktory doku"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Systém"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth Audio"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Hotovo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Výstup médií"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Vyhledávání…"</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Připojování…"</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Dostupná"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Není k dispozici"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Integrovaná obrazovka"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Obrazovka HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Překryvná vrstva č. <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Zadejte kód PIN SIM karty"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Zadejte kód PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Zadejte heslo"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM karta byla deaktivována. Chcete-li pokračovat, je třeba zadat kód PUK. Podrobné informace získáte od operátora."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Zadejte požadovaný kód PIN."</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrďte požadovaný kód PIN."</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Odblokování SIM karty..."</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Nesprávný kód PIN."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Zadejte kód PIN o délce 4–8 číslic."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Minimální délka kódu PUK je 8 číslic."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Znovu zadejte správný kód PUK. Opakovanými pokusy SIM kartu trvale deaktivujete."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kódy PIN se neshodují."</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Příliš mnoho pokusů o nakreslení gesta"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Chcete-li telefon odemknout, přihlaste se pomocí svého účtu Google."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Uživatelské jméno (e-mail)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Přihlásit se"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Neplatné uživatelské jméno nebo heslo."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Zapomněli jste uživatelské jméno nebo heslo?"\n"Přejděte na stránku "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Odblokování SIM karty…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Již <xliff:g id="NUMBER_0">%d</xliff:g>krát jste zadali nesprávný kód PIN. "\n\n"Zkuste to znovu za <xliff:g id="NUMBER_1">%d</xliff:g> s."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Již <xliff:g id="NUMBER_0">%d</xliff:g>krát jste nesprávně zadali heslo. "\n\n"Zkuste to znovu za <xliff:g id="NUMBER_1">%d</xliff:g> s."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Již <xliff:g id="NUMBER_0">%d</xliff:g>krát jste zadali nesprávné bezpečnostní gesto. "\n\n"Zkuste to znovu za <xliff:g id="NUMBER_1">%d</xliff:g> s."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Již <xliff:g id="NUMBER_0">%d</xliff:g>krát jste nesprávně nakreslili své heslo odemknutí. Po <xliff:g id="NUMBER_1">%d</xliff:g>dalších neúspěšných pokusech budete požádáni o odemčení tabletu pomocí e-mailového účtu."\n\n" Zkuste to znovu za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Již <xliff:g id="NUMBER_0">%d</xliff:g>krát jste nesprávně nakreslili své heslo odemknutí. Po <xliff:g id="NUMBER_1">%d</xliff:g> dalších neúspěšných pokusech budete požádáni o odemčení telefonu pomocí e-mailového účtu."\n\n" Zkuste to znovu za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Chcete hlasitost zvýšit nad bezpečnou úroveň?"\n"Dlouhodobý poslech hlasitého zvuku může poškodit sluch."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Usnadnění povolíte přidržením dvěma prsty."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Usnadnění přístupu je aktivováno."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Usnadnění zrušeno."</string> + <string name="user_switched" msgid="3768006783166984410">"Aktuální uživatel je <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index dc613f6a5dfd..fcf0d5cd69da 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Mønster er ryddet"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Celle er tilføjet"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Mønster er afsluttet"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d af %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Brugervælger"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Mediekontrolelementer"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Tillad"</string> <string name="sms_control_no" msgid="625438561395534982">"Afvis"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> vil sende en besked til <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Dette "<font fgcolor="#ffffb060">"kan medføre gebyrer"</font>" på din mobilkonto."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Dette vil medføre gebyrer på din mobilkonto."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Send"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Annuller"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Husk mit valg"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Du kan ændre dette senere i Indstillinger > Apps"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Tillad altid"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Tillad aldrig"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIM-kort blev fjernet"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Hovedtelefoner"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Dockstationens højttalere"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-lyd"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Udfør"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medieudgang"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Søger..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Opretter forbindelse..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Tilgængelig"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Ikke tilgængelig"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Indbygget skærm"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI-skærm"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlejring nr. <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Indtast pinkode til SIM"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Indtast pinkode"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Angiv adgangskode"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-kortet er nu deaktiveret. Indtast PUK-koden for at fortsætte. Kontakt mobiloperatøren for at få flere oplysninger."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Indtast den ønskede pinkode"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Bekræft den ønskede pinkode"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM-kortet låses op…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Forkert pinkode."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Indtast en pinkode på mellem 4 og 8 tal."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-koden skal være på 8 tal eller mere."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Indtast den korrekte PUK-kode. Gentagne forsøg vil permanent deaktivere SIM-kortet."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Pinkoderne stemmer ikke overens"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"For mange forsøg på at tegne mønstret korrekt"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Lås op ved at logge ind med din Google-konto."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Brugernavn (e-mail)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Log ind"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Ugyldigt brugernavn eller ugyldig adgangskode."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Har du glemt dit brugernavn eller din adgangskode?"\n"Gå til "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"SIM-kortet låses op..."</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Du har indtastet en forkert pinkode <xliff:g id="NUMBER_0">%d</xliff:g> gange. "\n\n"Prøv igen om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Du har indtastet din adgangskode forkert <xliff:g id="NUMBER_0">%d</xliff:g> gange. "\n\n"Prøv igen om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%d</xliff:g> gange. "\n\n"Prøv igen om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%d</xliff:g> gange. Efter <xliff:g id="NUMBER_1">%d</xliff:g> yderligere mislykkede forsøg vil du blive bedt om at låse din tablet op ved hjælp af en e-mailkonto"\n\n" Prøv igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%d</xliff:g> gange. Efter <xliff:g id="NUMBER_1">%d</xliff:g> yderligere mislykkede forsøg til vil du blive bedt om at låse din telefon op ved hjælp af en e-mailkonto."\n\n" Prøv igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Skal lydstyrken være over det sikre niveau?"\n"Du kan skade din hørelse ved at lytte ved høj lydstyrke i længere tid."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Hold fortsat dine to fingre nede for at aktivere tilgængelighed."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Tilgængelighed aktiveret."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Tilgængelighed er annulleret."</string> + <string name="user_switched" msgid="3768006783166984410">"Nuværende bruger <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index f38d0237125d..b5c9138ac4be 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Muster gelöscht"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Zelle hinzugefügt"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Muster abgeschlossen"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d von %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Nutzerauswahl"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Mediensteuerelemente"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%d</xliff:g> weiteren erfolglosen Versuchen werden Sie aufgefordert, Ihr Tablet mithilfe eines E-Mail-Kontos zu entsperren."\n\n" Versuchen Sie es in <xliff:g id="NUMBER_2">%d</xliff:g> Sekunden erneut."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Sie haben Ihr Entsperrungsmuster <xliff:g id="NUMBER_0">%d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%d</xliff:g> weiteren erfolglosen Versuchen werden Sie aufgefordert, Ihr Telefon mithilfe eines E-Mail-Kontos zu entsperren."\n\n" Versuchen Sie es in <xliff:g id="NUMBER_2">%d</xliff:g> Sekunden erneut."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Lautstärke höher als Schwellenwert stellen?"\n"Wenn Sie über längere Zeiträume hinweg Musik in hoher Lautstärke hören, kann dies Ihr Gehör schädigen."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Drücken Sie mit zwei Fingern, um die Bedienungshilfen zu aktivieren."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Bedienungshilfen aktiviert"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Bedienungshilfen abgebrochen"</string> + <string name="user_switched" msgid="3768006783166984410">"Aktueller Nutzer <xliff:g id="NAME">%1$s</xliff:g>"</string> </resources> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 0553dc76f41b..4915352f0a6b 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -288,7 +288,7 @@ <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recuperar contenido de la pantalla"</string> <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite que la aplicación recupere el contenido de la ventana activa. Las aplicaciones maliciosas pueden recuperar el contenido completo de la ventana y examinar todo el texto, excepto las contraseñas."</string> <string name="permlab_temporary_enable_accessibility" msgid="2312612135127310254">"Activación temporal de la accesibilidad"</string> - <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Permite a una aplicación activar la accesibilidad en el dispositivo temporalmente. Las aplicaciones maliciosas pueden activar la accesibilidad sin el consentimiento del usuario."</string> + <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Permite a una aplicación activar temporalmente la accesibilidad en el dispositivo. Las aplicaciones maliciosas pueden activar la accesibilidad sin el consentimiento del usuario."</string> <string name="permlab_retrieve_window_info" msgid="8532295199112519378">"recuperar información de ventanas"</string> <string name="permdesc_retrieve_window_info" msgid="4998836370424186849">"Permite que una aplicación recupere la información del administrador de ventanas relacionada con estas. Las aplicaciones maliciosas pueden recuperar información destinada al uso interno del sistema."</string> <string name="permlab_filter_events" msgid="8675535648807427389">"filtrar eventos"</string> @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Se eliminó el patrón"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Se agregó una celda."</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Se completó el patrón"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d de %3$d"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Selector de usuarios"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Estado"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Controles de medios de comunicación"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Permitir"</string> <string name="sms_control_no" msgid="625438561395534982">"Rechazar"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> desea enviar un mensaje a <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Esto "<font fgcolor="#ffffb060">" puede causar que se apliquen cargos "</font>" a tu cuenta móvil."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Se aplicarán cargos a tu cuenta móvil."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Enviar"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Cancelar"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Recordar mi elección"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Puedes cambiar esta opción más tarde en Configuración > Aplicaciones."</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Permitir siempre"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"No permitir nunca"</string> <string name="sim_removed_title" msgid="6227712319223226185">"Tarjeta SIM eliminada"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Dispositivo"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auriculares"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Altavoces del conector"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Listo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Salida multimedia"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Analizando..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Conectando..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Disponible"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"No disponible"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Pantalla integrada"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Pantalla HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Ingresa el PIN de la tarjeta SIM."</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Ingresa el PIN."</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Ingresa tu contraseña."</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"La tarjeta SIM está inhabilitada. Para continuar, introduce el código PUK. Si quieres obtener más información, ponte en contacto con el operador."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Introduce el código PIN deseado"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirmar código PIN deseado"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando tarjeta SIM…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Código PIN incorrecto"</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Escribe un PIN que tenga de cuatro a ocho números."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"El código PUK debe tener ocho números como mínimo."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Vuelve a introducir el código PUK correcto. Si introduces un código incorrecto varias veces, se inhabilitará la tarjeta SIM."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Los códigos PIN no coinciden."</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Demasiados intentos incorrectos de ingresar el patrón"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Para desbloquear, accede con tu cuenta de Google."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Nombre de usuario (correo)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Acceder"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Nombre de usuario o contraseña incorrectos"</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"¿Olvidaste tu nombre de usuario o contraseña?"\n"Accede a "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Desbloqueando tarjeta SIM…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Escribiste incorrectamente tu PIN <xliff:g id="NUMBER_0">%d</xliff:g> veces. "\n\n"Vuelve a intentarlo en <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Escribiste incorrectamente tu contraseña <xliff:g id="NUMBER_0">%d</xliff:g> veces. "\n\n"Vuelve a intentarlo en <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%d</xliff:g> veces. "\n\n"Vuelve a intentarlo en <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%d</xliff:g> veces. Luego de <xliff:g id="NUMBER_1">%d</xliff:g> intentos incorrectos más, se te solicitará que desbloquees tu tableta mediante el uso de una cuenta de correo."\n\n" Vuelve a intentarlo en <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%d</xliff:g> veces. Luego de <xliff:g id="NUMBER_1">%d</xliff:g> intentos incorrectos más, se te solicitará que desbloquees tu dispositivo mediante el uso de una cuenta de correo."\n\n" Vuelve a intentarlo en <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"¿Aumentar el volumen por encima del nivel seguro?"\n"Si escuchas con el volumen alto durante períodos prolongados, puedes dañar tu audición."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Mantén presionada el área con dos dedos para activar la accesibilidad."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Se activó la accesibilidad."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Se canceló la accesibilidad."</string> + <string name="user_switched" msgid="3768006783166984410">"Usuario actual <xliff:g id="NAME">%1$s</xliff:g>"</string> </resources> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 542f61d3a154..fde88ddee574 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Patrón borrado"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Se ha añadido una celda."</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Patrón completado"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d de %3$d"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Selector de usuarios"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Estado"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Controles multimedia"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Has fallado <xliff:g id="NUMBER_0">%d</xliff:g> veces al dibujar el patrón de desbloqueo. Si fallas otras <xliff:g id="NUMBER_1">%d</xliff:g> veces, deberás usar una cuenta de correo electrónico para desbloquear el tablet."\n\n" Inténtalo de nuevo en <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Has fallado <xliff:g id="NUMBER_0">%d</xliff:g> veces al dibujar el patrón de desbloqueo. Si fallas otras <xliff:g id="NUMBER_1">%d</xliff:g> veces, deberás usar una cuenta de correo electrónico para desbloquear el teléfono."\n\n" Inténtalo de nuevo en <xliff:g id="NUMBER_2">%d</xliff:g> segundos."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"¿Subir el volumen por encima del nivel de seguridad?"\n"Escuchar sonidos a alto volumen durante largos períodos de tiempo puede dañar tus oídos."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Mantén la pantalla pulsada con dos dedos para habilitar las funciones de accesibilidad."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Accesibilidad habilitada"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Accesibilidad cancelada"</string> + <string name="user_switched" msgid="3768006783166984410">"Usuario actual: <xliff:g id="NAME">%1$s</xliff:g>"</string> </resources> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index 0b2d31e76228..b400b97e3c70 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Muster on kustutatud"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Lahter on lisatud"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Muster on valmis"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Vidin %2$d/%3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Kasutaja valija"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Olek"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Meedia juhtnupud"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%d</xliff:g> korda valesti. Pärast veel <xliff:g id="NUMBER_1">%d</xliff:g> ebaõnnestunud katset palutakse teil tahvelarvuti avada meilikontoga."\n\n" Proovige uuesti <xliff:g id="NUMBER_2">%d</xliff:g> sekundi pärast."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%d</xliff:g> korda valesti. Pärast veel <xliff:g id="NUMBER_1">%d</xliff:g> ebaõnnestunud katset palutakse teil telefon avada meilikontoga."\n\n" Proovige uuesti <xliff:g id="NUMBER_2">%d</xliff:g> sekundi pärast."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Kas suurendada helitugevust üle ohutu piiri?"\n"Pikaajaline suure helitugevusega muusika kuulamine võib kahjustada kuulmist."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Hõlbustuse lubamiseks hoidke kaht sõrme all."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Hõlbustus on lubatud."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Hõlbustus on tühistatud."</string> + <string name="user_switched" msgid="3768006783166984410">"Praegune kasutaja <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index fb1fdd7d6e35..2ca2bcb04b92 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"الگو پاک شد"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"سلول اضافه شد"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"الگو تکمیل شد"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. ابزارک %2$d از %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"انتخابگر کاربر"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"وضعیت"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"کنترلهای رسانه"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1057,7 +1053,7 @@ <string name="volume_ringtone" msgid="6885421406845734650">"میزان صدای زنگ"</string> <string name="volume_music" msgid="5421651157138628171">"میزان صدای رسانه"</string> <string name="volume_music_hint_playing_through_bluetooth" msgid="9165984379394601533">"پخش از طریق بلوتوث"</string> - <string name="volume_music_hint_silent_ringtone_selected" msgid="8310739960973156272">"آهنگ زنگ روی بیصدا تنظیم شد"</string> + <string name="volume_music_hint_silent_ringtone_selected" msgid="8310739960973156272">"آهنگ زنگ روی بیصدا تنظیم شد"</string> <string name="volume_call" msgid="3941680041282788711">"میزان صدای هنگام تماس"</string> <string name="volume_bluetooth_call" msgid="2002891926351151534">"میزان صدای تماس بلوتوث"</string> <string name="volume_alarm" msgid="1985191616042689100">"میزان صدای هشدار"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"اجازه دادن"</string> <string name="sms_control_no" msgid="625438561395534982">"ردکردن"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> مایل است پیامی به <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b> ارسال کند."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"این کار "<font fgcolor="#ffffb060">"میتواند منجر به شارژ"</font>" حساب تلفن همراه شما شود."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"این کار حساب تلفن همراه شما را شارژ خواهد کرد."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"ارسال"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"لغو"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"این انتخاب را به خاطر بسپار"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"میتوانید بعداً آن را در تنظیمات > برنامهها تغییر دهید"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"همیشه مجاز"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"همیشه غیرمجاز"</string> <string name="sim_removed_title" msgid="6227712319223226185">"سیم کارت برداشته شد"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"تلفن"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"هدفونها"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"بلندگوهای جایگاه اتصال"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"سیستم"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"بلوتوثهای صوتی"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"انجام شد"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"خروجی رسانه"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"در حال اسکن کردن…"</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"درحال اتصال…"</string> + <string name="media_route_status_available" msgid="6983258067194649391">"در دسترس"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"در دسترس نیست"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"صفحه نمایش از خود"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"صفحه HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"همپوشانی #<xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"پین سیم کارت را وارد کنید"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"پین را وارد کنید"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"گذرواژه را وارد کنید"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"اکنون سیم کارت غیرفعال است. پین کد را برای ادامه وارد کنید. برای جزئیات با شرکت مخابراتی خود تماس بگیرید."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"پین کد دلخواه را وارد کنید"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"تأیید پین کد دلخواه"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"بازگشایی قفل سیم کارت..."</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"پین کد اشتباه است."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"یک پین ۴ تا ۸ رقمی را تایپ کنید."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"پین کد باید ۸ عدد یا بیشتر باشد."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"پین کد صحیح را دوباره وارد کنید. تلاشهای مکرر بهطور دائم سیم کارت را غیرفعال خواهد کرد."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"پین کدها منطبق نیستند"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"تلاشهای زیادی برای کشیدن الگو صورت گرفته است"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"برای بازگشایی قفل، با حساب Google خود وارد سیستم شوید."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"نام کاربری (ایمیل)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"ورود به سیستم"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"نام کاربری یا گذرواژه نامعتبر."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"نام کاربری یا گذرواژه خود را فراموش کردید؟"\n"از "<b>"google.com/accounts/recovery"</b>" بازدید کنید."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"در حال باز کردن قفل سیم کارت…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"پین خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه تایپ کردید. "\n\n"پس از <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دوباره امتحان کنید."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"گذرواژه خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه تایپ کردید. "\n\n"پس از <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دوباره امتحان کنید."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیدید. "\n\n"لطفاً پس از <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دوباره امتحان کنید."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیدهاید. بعد از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق، از شما خواسته میشود که با استفاده از یک حساب ایمیل قفل رایانه لوحی خود را باز کنید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیدهاید. پس از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق، از شما خواسته میشود که با استفاده از یک حساب ایمیل قفل تلفن خود را باز کنید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"صدا به بالاتر از سطح ایمن افزایش یابد؟"\n"گوش دادن به صدای بلند برای زمانهای طولانی میتواند به شنوایی شما آسیب برساند."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"برای فعال کردن قابلیت دسترسی، با دو انگشت خود همچنان به طرف پایین فشار دهید."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"قابلیت دسترسی فعال شد."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"قابلیت دسترسی لغو شد."</string> + <string name="user_switched" msgid="3768006783166984410">"کاربر کنونی <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index a7dcd5e5ba32..4b1430114cde 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Kuvio tyhjennetty"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Solu lisätty"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Kuvio valmis"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d/%3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Käyttäjävalitsin"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Tila"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Mediaohjaimet"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Piirsit lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%d</xliff:g> kertaa. Jos piirrät kuvion väärin vielä <xliff:g id="NUMBER_1">%d</xliff:g> kertaa, sinua pyydetään poistamaan tablet-laitteesi lukitus sähköpostitilin avulla."\n\n" Yritä uudelleen <xliff:g id="NUMBER_2">%d</xliff:g> sekunnin kuluttua."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Piirsit lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%d</xliff:g> kertaa. Jos piirrät kuvion väärin vielä <xliff:g id="NUMBER_1">%d</xliff:g> kertaa, sinua pyydetään poistamaan puhelimesi lukitus sähköpostitilin avulla."\n\n" Yritä uudelleen <xliff:g id="NUMBER_2">%d</xliff:g> sekunnin kuluttua."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Nostetaanko äänenvoimakkuus turvallista tasoa voimakkaammaksi?"\n"Jos kuuntelet suurella äänenvoimakkuudella pitkiä aikoja, kuulosi voi vahingoittua."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Ota esteettömyystila käyttöön koskettamalla pitkään kahdella sormella."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Esteettömyystila käytössä."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Esteettömyystila peruutettu."</string> + <string name="user_switched" msgid="3768006783166984410">"Nykyinen käyttäjä: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index d5c59f136dec..70c82372a805 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Schéma effacé."</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Cellule ajoutée."</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Schéma terminé."</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d sur %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Sélecteur d\'utilisateur"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"État"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Commandes multimédias"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%d</xliff:g> fois, vous devrez déverrouiller votre tablette à l\'aide d\'un compte de messagerie électronique."\n\n" Veuillez réessayer dans <xliff:g id="NUMBER_2">%d</xliff:g> secondes."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de messagerie électronique."\n\n" Veuillez réessayer dans <xliff:g id="NUMBER_2">%d</xliff:g> secondes."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Augmenter le volume au-dessus du niveau de sécurité ?"\n"L\'écoute à un volume élevé pendant des périodes prolongées peut endommager votre audition."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Appuyez de manière prolongée avec deux doigts pour activer l\'accessibilité."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"L\'accessibilité a bien été activée."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Accessibilité annulée."</string> + <string name="user_switched" msgid="3768006783166984410">"Utilisateur actuel : <xliff:g id="NAME">%1$s</xliff:g>"</string> </resources> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 50d40ac400bb..8e89f3083b83 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"प्रतिमान साफ़ किया गया"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"कक्ष जोड़ा गया"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"प्रतिमान पूरा किया गया"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. %3$d विजेट में से %2$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"उपयोगकर्ता चयनकर्ता"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"स्थिति"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"मीडिया नियंत्रण"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"आपने अपने अनलॉक प्रतिमान को <xliff:g id="NUMBER_0">%d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने टेबलेट को किसी ईमेल खाते के उपयोग से अनलॉक करने के लिए कहा जाएगा."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g> सेकंड में पुन: प्रयास करें."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"आपने अपने अनलॉक प्रतिमान को <xliff:g id="NUMBER_0">%d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने फ़ोन को किसी ईमेल खाते का उपयोग करके अनलॉक करने के लिए कहा जाएगा."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g> सेकंड में पुन: प्रयास करें."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"वॉल्यूम को सुरक्षित स्तर से अधिक करें?"\n"अधिक देर तक उच्च वॉल्यूम पर सुनने से आपकी सुनने की क्षमता को नुकसान हो सकता है."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"पहुंच-योग्यता सक्षम करने के लिए अपनी दो अंगुलियों को नीचे की ओर करके रखें."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"पहुंच-योग्यता सक्षम कर दी है."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"पहुंच-योग्यता रद्द की गई."</string> + <string name="user_switched" msgid="3768006783166984410">"वर्तमान उपयोगकर्ता <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 6a22d361d5dc..8ee9895d2663 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Uzorak je obrisan"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Dodan je mobitel"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Uzorak je dovršen"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d od %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Birač korisnika"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Nadzor medija"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%d</xliff:g> puta. Nakon još ovoliko neuspješnih pokušaja: <xliff:g id="NUMBER_1">%d</xliff:g> morat ćete otključati tabletno računalo pomoću računa e-pošte."\n\n" Pokušajte ponovo za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%d</xliff:g> puta. Nakon još ovoliko neuspješnih pokušaja: <xliff:g id="NUMBER_1">%d</xliff:g> morat ćete otključati telefon pomoću računa e-pošte."\n\n" Pokušajte ponovo za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Pojačati iznad sigurne razine?"\n"Dulje slušanje preglasne glazbe može vam oštetiti sluh."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Nastavite držati s dva prsta kako biste omogućili pristupačnost."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Dostupnost je omogućena."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Pristupačnost otkazana."</string> + <string name="user_switched" msgid="3768006783166984410">"Trenutačni korisnik <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index f3eecc7ff6b8..f5f1fb4a2ed8 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Minta törölve"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Cella hozzáadva"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Minta befejezve"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Modul %3$d/%2$d"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Felhasználóválasztó"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Állapot"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Médiaelemek vezérlője"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"<xliff:g id="NUMBER_0">%d</xliff:g> alkalommal helytelenül rajzolta le a feloldási mintát. További <xliff:g id="NUMBER_1">%d</xliff:g> sikertelen kísérlet után egy e-mail fiók használatával kell feloldania a táblagépét."\n\n" Kérjük, próbálja újra <xliff:g id="NUMBER_2">%d</xliff:g> másodperc múlva."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"<xliff:g id="NUMBER_0">%d</xliff:g> alkalommal helytelenül rajzolta le a feloldási mintát. További <xliff:g id="NUMBER_1">%d</xliff:g> sikertelen kísérlet után egy e-mail fiók használatával kell feloldania a telefonját."\n\n" Kérjük, próbálja újra <xliff:g id="NUMBER_2">%d</xliff:g> másodperc múlva."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"A biztonságos szint fölé emeli a hangerőt?"\n"Ha hosszú ideig hangosan hallgatja a zenét, az károsíthatja a hallását."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Továbbra is tartsa lenyomva két ujját a hozzáférés engedélyezéséhez."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Hozzáférés engedélyezve"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Hozzáférés megszakítva."</string> + <string name="user_switched" msgid="3768006783166984410">"<xliff:g id="NAME">%1$s</xliff:g> az aktuális felhasználó."</string> </resources> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 5d0a6e01c09e..78d6bc2d094b 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -159,9 +159,9 @@ <string name="bugreport_message" msgid="398447048750350456">"Ini akan mengumpulkan informasi tentang status perangkat Anda saat ini, untuk dikirimkan sebagai pesan email. Akan memakan sedikit waktu dari memulai laporan bug hingga siap untuk dikirim; bersabarlah."</string> <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Mode senyap"</string> <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Suara MATI"</string> - <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Suara HIDUP"</string> + <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Suara AKTIF"</string> <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_on_status" msgid="2719557982608919750">"Mode pesawat AKTIF"</string> <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Mode pesawat MATI"</string> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="safeMode" msgid="2788228061547930246">"Mode aman"</string> @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Pola dihapus"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Sel ditambahkan"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Pola selesai"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d dari %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Pemilih pengguna"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Kontrol media"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1013,7 +1009,7 @@ <string name="no" msgid="5141531044935541497">"Batal"</string> <string name="dialog_alert_title" msgid="2049658708609043103">"Perhatian"</string> <string name="loading" msgid="7933681260296021180">"Memuat..."</string> - <string name="capital_on" msgid="1544682755514494298">"HIDUP"</string> + <string name="capital_on" msgid="1544682755514494298">"AKTIF"</string> <string name="capital_off" msgid="6815870386972805832">"MATI"</string> <string name="whichApplication" msgid="4533185947064773386">"Tindakan lengkap menggunakan"</string> <string name="alwaysUse" msgid="4583018368000610438">"Gunakan secara default untuk tindakan ini."</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Izinkan"</string> <string name="sms_control_no" msgid="625438561395534982">"Tolak"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ingin mengirim pesan kepada <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Hal ini "<font fgcolor="#ffffb060">"dapat menyebabkan akun ponsel Anda"</font>" mendapat tagihan."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Hal ini akan menyebabkan tagihan diberlakukan pada akun seluler Anda."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Kirim"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Batal"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Ingat pilihan saya"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Anda dapat mengubah ini nanti di Setelan > Aplikasi"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Selalu Izinkan"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Jangan Pernah Izinkan"</string> <string name="sim_removed_title" msgid="6227712319223226185">"Kartu SIM dihapus"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Ponsel"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Headphone"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Pengeras suara dok"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Audio Bluetooth"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Selesai"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Keluaran media"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Memindai..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Menyambung..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Tersedia"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Tidak tersedia"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Layar Bawaan"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Layar HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Hamparan #<xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Masukkan PIN SIM"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Masukkan PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Masukkan Sandi"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM telah dinonaktifkan. Masukkan kode PUK untuk melanjutkan. Hubungi operator untuk keterangan selengkapnya."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Masukkan kode PIN yang diinginkan"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Konfirmasi kode PIN yang diinginkan"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Membuka kunci kartu SIM…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Kode PIN salah."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Ketik PIN yang terdiri dari 4 sampai 8 angka."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kode PUK harus terdiri dari 8 angka atau lebih."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Masukkan kembali kode PUK yang benar. Jika berulang kali gagal, SIM akan dinonaktifkan secara permanen."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kode PIN tidak cocok"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Terlalu banyak upaya pola"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Untuk membuka kunci, masuk dengan akun Google Anda."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Nama pengguna (email)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Masuk"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Nama pengguna atau sandi tidak valid."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Lupa nama pengguna atau sandi Anda?"\n"Kunjungi "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Membuka kunci kartu SIM…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah mengetik PIN. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah mengetik sandi. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci tablet menggunakan akun email."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci ponsel menggunakan akun email."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Naikkan volume di atas tingkat aman?"\n"Mendengarkan volume tinggi dalam jangka waktu yang lama dapat merusak pendengaran Anda."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Terus tahan dua jari Anda untuk mengaktifkan aksesibilitas."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Aksesibilitas diaktifkan."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Aksesibilitas dibatalkan."</string> + <string name="user_switched" msgid="3768006783166984410">"Pengguna saat ini <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index de53bb98ef8b..20c23f0cc156 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"パターンを消去しました"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"セルを追加しました"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"パターンの描画が完了しました"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s。ウィジェット%2$d/%3$d。"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"ユーザー切り替え"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"ステータス"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"メディアコントロール"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"許可する"</string> <string name="sms_control_no" msgid="625438561395534982">"許可しない"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>が、<b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>にメッセージを送信しようとしています。"</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"モバイルアカウントへの"<font fgcolor="#ffffb060">"請求が発生する可能性"</font>"があります。"</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"モバイルアカウントへの請求が発生します。"</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"送信"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"キャンセル"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"この選択を保存"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"これは後から[設定] > [アプリ]で変更できます。"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"常に許可する"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"許可しない"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIMカードが取り外されました"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"携帯端末"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ヘッドホン"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"ホルダーのスピーカー"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"システム"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth音声"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"完了"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"メディア出力"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"スキャン中..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"接続中..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"利用できます"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"利用できません"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"内蔵スクリーン"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI画面"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"オーバーレイ第<xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PINを入力"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"PINを入力"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"パスワードを入力"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIMが無効になりました。続行するにはPUKコードを入力してください。詳しくは携帯通信会社にお問い合わせください。"</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"希望のPINコードを入力してください"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"希望のPINコードを確認してください"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIMカードのロック解除中…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"PINコードが正しくありません。"</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"PINは4~8桁の数字で入力してください。"</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUKコードは8桁以上の番号です。"</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"正しいPUKコードを再入力してください。誤入力を繰り返すと、SIMが永久に無効になるおそれがあります。"</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PINコードが一致しません"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"パターンの入力を所定の回数以上間違えました。"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"ロックを解除するにはGoogleアカウントでログインしてください。"</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"ユーザー名(メール)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"ログイン"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"ユーザー名またはパスワードが無効です。"</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"ユーザー名またはパスワードを忘れた場合は"\n" "<b>"google.com/accounts/recovery"</b>" にアクセスしてください。"</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"SIMのロック解除中…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PINの入力を<xliff:g id="NUMBER_0">%d</xliff:g>回間違えました。"\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>秒以内にもう一度お試しください。"</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"パスワードの入力を<xliff:g id="NUMBER_0">%d</xliff:g>回間違えました。"\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>秒以内にもう一度お試しください。"</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%d</xliff:g>回間違えました。"\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>秒以内にもう一度お試しください。"</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%d</xliff:g>回間違えました。あと<xliff:g id="NUMBER_1">%d</xliff:g>回間違えると、タブレットのロック解除にメールアカウントが必要になります。"\n\n"<xliff:g id="NUMBER_2">%d</xliff:g>秒以内にもう一度お試しください。"</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%d</xliff:g>回間違えました。あと<xliff:g id="NUMBER_1">%d</xliff:g>回間違えると、携帯端末のロック解除にメールアカウントが必要になります。"\n\n"<xliff:g id="NUMBER_2">%d</xliff:g>秒以内にもう一度お試しください。"</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"安全レベルを超えるまで音量を上げますか?"\n"大音量で長時間聞き続けると、聴力を損なう恐れがあります。"</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"ユーザー補助機能を有効にするには2本の指で押し続けてください。"</string> <string name="accessibility_enabled" msgid="1381972048564547685">"ユーザー補助が有効になりました。"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"ユーザー補助をキャンセルしました。"</string> + <string name="user_switched" msgid="3768006783166984410">"現在のユーザーは<xliff:g id="NAME">%1$s</xliff:g>です。"</string> </resources> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index bc165b972630..bba6be2927e4 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"패턴 삭제"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"셀 추가됨"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"패턴 완료"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. %3$d의 위젯 %2$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"사용자 선택기"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"상태"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"미디어 조정"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"허용"</string> <string name="sms_control_no" msgid="625438561395534982">"거부"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>(으)로 메시지를 보내시겠습니까?"</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"모바일 계정에 "<font fgcolor="#ffffb060">"요금이 부과될 수 있습니다"</font>"."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"모바일 계정에 요금이 부과됩니다."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"전송"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"취소"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"내 선택사항 기억"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"나중에 설정 > 앱에서 변경할 수 있습니다."</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"항상 허용"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"허용 안함"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIM 카드 제거됨"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"휴대전화"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"헤드폰"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"도크 스피커"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"시스템"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"블루투스 오디오"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"완료"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"미디어 출력"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"검색 중..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"연결 중..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"사용 가능"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"사용할 수 없음"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"기본으로 제공되는 화면"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI 화면"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>번째 오버레이"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN 입력"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN 입력"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"비밀번호 입력"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"이제 SIM을 사용할 수 없습니다. 계속하려면 PUK 코드를 입력합니다. 자세한 내용은 이동통신사에 문의하세요."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"원하는 PIN 코드 입력"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"원하는 PIN 코드 확인"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM 카드 잠금해제 중..."</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"PIN 코드가 잘못되었습니다."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4~8자리 숫자로 된 PIN을 입력하세요."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK 코드는 8자리 이상의 숫자여야 합니다."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"올바른 PUK 코드를 다시 입력하세요. 입력을 반복해서 시도하면 SIM을 영구적으로 사용할 수 없게 됩니다."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN 코드가 일치하지 않음"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"패턴 시도 횟수가 너무 많음"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"잠금해제하려면 Google 계정으로 로그인하세요."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"사용자 이름(이메일)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"로그인"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"사용자 이름 또는 비밀번호가 잘못되었습니다."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"사용자 이름이나 비밀번호를 잊어버렸습니까?"\n<b>"google.com/accounts/recovery"</b>" 페이지를 방문하세요."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"SIM 잠금해제 중…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN을 <xliff:g id="NUMBER_0">%d</xliff:g>회 잘못 입력했습니다. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>초 후에 다시 시도해 주세요."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"비밀번호를 <xliff:g id="NUMBER_0">%d</xliff:g>회 잘못 입력했습니다. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>초 후에 다시 시도해 주세요."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%d</xliff:g>회 잘못 그렸습니다. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g>초 후에 다시 시도해 주세요."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%d</xliff:g>회 잘못 그렸습니다. <xliff:g id="NUMBER_1">%d</xliff:g>회 더 실패하면 이메일 계정을 사용하여 태블릿을 잠금해제해야 합니다."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g>초 후에 다시 시도해 주세요."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%d</xliff:g>회 잘못 그렸습니다. <xliff:g id="NUMBER_1">%d</xliff:g>회 더 실패하면 이메일 계정을 사용하여 휴대전화를 잠금해제해야 합니다."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g>초 후에 다시 시도해 주세요."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"안전한 수준 이상으로 볼륨을 높이시겠습니까?"\n"높은 볼륨으로 장시간 청취하면 청력에 손상이 올 수 있습니다."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"두 손가락으로 길게 누르면 접근성을 사용하도록 설정됩니다."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"접근성을 사용 설정했습니다."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"접근성이 취소되었습니다."</string> + <string name="user_switched" msgid="3768006783166984410">"현재 사용자는 <xliff:g id="NAME">%1$s</xliff:g>님입니다."</string> </resources> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 03fd5845ba4b..3609021b9232 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Šablonas išvalytas"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Pridėtas langelis"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Šablonas užbaigtas"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. %2$d valdiklis iš %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Naudotojo pasirinkimo valdiklis"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Būsena"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Medijos valdikliai"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%d</xliff:g> k. Po dar <xliff:g id="NUMBER_1">%d</xliff:g> nesėkm. band. būsite paprašyti atrakinti planšetinį kompiuterį naudodami „Google“ prisijungimo duomenis."\n\n" Bandykite dar kartą po <xliff:g id="NUMBER_2">%d</xliff:g> sek."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%d</xliff:g> k. Po dar <xliff:g id="NUMBER_1">%d</xliff:g> nesėkm. band. būsite paprašyti atrakinti telefoną naudodami „Google“ prisijungimo duomenis."\n\n" Bandykite dar kartą po <xliff:g id="NUMBER_2">%d</xliff:g> sek."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Padidinti garsumą viršijant saugų lygį?"\n"Ilgai klausantis dideliu garsumu gali sutrikti klausa."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Laikykite palietę dviem pirštais, kad įgalintumėte pritaikymo neįgaliesiems režimą."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Pritaikymas neįgaliesiems įgalintas."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Pritaikymo neįgaliesiems režimas atšauktas."</string> + <string name="user_switched" msgid="3768006783166984410">"Dabartinis naudotojas: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index b54c04dfdf31..1411ce69102e 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Kombinācija notīrīta"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Šūna pievienota"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Kombinācija pabeigta"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. %2$d. logrīks no %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Lietotāju atlasītājs"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Statuss"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Multivides vadīklas"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%d</xliff:g> reizes. Pēc vēl <xliff:g id="NUMBER_1">%d</xliff:g> neveiksmīgiem mēģinājumiem planšetdators būs jāatbloķē, izmantojot e-pasta kontu."\n\n"Mēģiniet vēlreiz pēc <xliff:g id="NUMBER_2">%d</xliff:g> sekundēm."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%d</xliff:g> reizes. Pēc vēl <xliff:g id="NUMBER_1">%d</xliff:g> neveiksmīgiem mēģinājumiem tālrunis būs jāatbloķē, izmantojot e-pasta kontu."\n\n"Mēģiniet vēlreiz pēc <xliff:g id="NUMBER_2">%d</xliff:g> sekundēm."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Vai palielināt skaļumu virs drošības līmeņa?"\n"Ilgstoši klausoties skaņu lielā skaļumā, var tikt bojāta dzirde."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Turiet nospiestus divus pirkstus, lai iespējotu pieejamību."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Pieejamības režīms ir iespējots."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Pieejamība ir atcelta."</string> + <string name="user_switched" msgid="3768006783166984410">"Pašreizējais lietotājs: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 86ab327f05c7..5817d7beac51 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1418,7 +1418,7 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"U heeft uw ontgrendelingspatroon <xliff:g id="NUMBER_0">%d</xliff:g> keer onjuist getekend. Na nog eens <xliff:g id="NUMBER_1">%d</xliff:g> mislukte pogingen wordt u gevraagd uw tablet te ontgrendelen via een e-mailaccount."\n\n" Probeer het over <xliff:g id="NUMBER_2">%d</xliff:g> seconden opnieuw."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"U heeft uw ontgrendelingspatroon <xliff:g id="NUMBER_0">%d</xliff:g> keer onjuist getekend. Na nog eens <xliff:g id="NUMBER_1">%d</xliff:g> mislukte pogingen wordt u gevraagd uw telefoon te ontgrendelen via een e-mailaccount."\n\n" Probeer het over <xliff:g id="NUMBER_2">%d</xliff:g> seconden opnieuw."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Wilt u het volume verhogen tot boven het aanbevolen geluidsniveau?"\n"Te lang luisteren op een te hoog volume kan leiden tot gehoorbeschadiging."</string> - <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Houd het scherm met twee vingers aanraken om toegankelijkheid in te schakelen."</string> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Blijf het scherm met twee vingers aanraken om toegankelijkheid in te schakelen."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Toegankelijkheid ingeschakeld."</string> <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Toegankelijkheid geannuleerd."</string> <string name="user_switched" msgid="3768006783166984410">"Huidige gebruiker <xliff:g id="NAME">%1$s</xliff:g>."</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index c38e44e43b4f..3a8ce2268f53 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -811,14 +811,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Wzór wyczyszczony"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Dodano komórkę."</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Wzór ukończony"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widżet %2$d z %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Wybór użytkownika"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Stan"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Elementy sterujące multimediów"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1129,7 +1125,7 @@ <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff33b5e5">"NOWE: "</font></string> <string name="perms_description_app" msgid="5139836143293299417">"Dostarczane przez <xliff:g id="APP_NAME">%1$s</xliff:g>."</string> <string name="no_permissions" msgid="7283357728219338112">"Nie są wymagane żadne uprawnienia"</string> - <string name="perm_costs_money" msgid="4902470324142151116">"to może spowodować naliczenie opłat"</string> + <string name="perm_costs_money" msgid="4902470324142151116">"to może generować dodatkowe koszty"</string> <string name="usb_storage_activity_title" msgid="4465055157209648641">"Pamięć masowa USB"</string> <string name="usb_storage_title" msgid="5901459041398751495">"Połączenie przez USB"</string> <string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"Nawiązano połączenie z komputerem przez USB. Jeśli chcesz skopiować pliki między komputerem a nośnikiem USB systemu Android, dotknij poniższego przycisku."</string> @@ -1423,11 +1419,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Po raz <xliff:g id="NUMBER_0">%d</xliff:g> nieprawidłowo narysowałeś wzór odblokowania. Po kolejnych <xliff:g id="NUMBER_1">%d</xliff:g> nieudanych próbach konieczne będzie odblokowanie tabletu przy użyciu danych logowania na konto Google."\n\n" Spróbuj ponownie za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Po raz <xliff:g id="NUMBER_0">%d</xliff:g> nieprawidłowo narysowałeś wzór odblokowania. Po kolejnych <xliff:g id="NUMBER_1">%d</xliff:g> nieudanych próbach konieczne będzie odblokowanie telefonu przy użyciu danych logowania na konto Google."\n\n" Spróbuj ponownie za <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Chcesz ustawić głośność powyżej bezpiecznego poziomu?"\n"Słuchanie przy dużym poziomie głośności przez dłuższy czas może doprowadzić do uszkodzenia słuchu."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Aby włączyć ułatwienia dostępu, przytrzymaj dwa palce."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Włączono ułatwienia dostępu."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Ułatwienia dostępu zostały anulowane."</string> + <string name="user_switched" msgid="3768006783166984410">"Bieżący użytkownik: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index fc6d17a14027..5f040d188960 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -737,7 +737,7 @@ <string name="relationTypeSister" msgid="1735983554479076481">"Irmã"</string> <string name="relationTypeSpouse" msgid="394136939428698117">"Cônjuge"</string> <string name="sipAddressTypeCustom" msgid="2473580593111590945">"Personalizado"</string> - <string name="sipAddressTypeHome" msgid="6093598181069359295">"Residência"</string> + <string name="sipAddressTypeHome" msgid="6093598181069359295">"Página Inicial"</string> <string name="sipAddressTypeWork" msgid="6920725730797099047">"Emprego"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"Outro"</string> <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"Escreva o código PIN"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index d0d4118ae2c7..d0d26a18a8d2 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1107,15 +1107,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Permitir"</string> <string name="sms_control_no" msgid="625438561395534982">"Negar"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> deseja enviar uma mensagem para <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Isto "<font fgcolor="#ffffb060">"poderá gerar cobranças"</font>" em sua conta de celular."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Isto irá gerar cobranças em sua conta de celular."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Enviar"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Cancelar"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Lembrar minha escolha"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"P/ alterar: Configurações > Aplicativos"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Sempre permitir"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Nunca permitir"</string> <string name="sim_removed_title" msgid="6227712319223226185">"Cartão SIM removido"</string> @@ -1375,20 +1372,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefone"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Fones de ouvido"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Alto-falantes do dock"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistema"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Áudio Bluetooth"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Concluído"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Saída de mídia"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Verificando..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Conectando..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Disponível"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Não disponível"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Tela integrada"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Tela HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Sobreposição nº <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1395,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Digite o PIN do cartão SIM"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Digite o PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Digite a senha"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"O SIM foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para obter mais detalhes."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Digite o código PIN desejado"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Confirme o código PIN desejado"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Desbloqueando o cartão SIM…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Código PIN incorreto."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Digite um PIN com quatro a oito números."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"O código PUK deve ter 8 números ou mais."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Introduza novamente o código PUK correto. Muitas tentativas malsucedidas desativarão permanentemente o SIM."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Os códigos PIN não coincidem"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Muitas tentativas de padrão"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Para desbloquear, faça login usando sua Conta do Google."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Nome de usuário (e-mail)"</string> @@ -1425,8 +1411,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Fazer login"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Nome de usuário ou senha inválidos."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Esqueceu seu nome de usuário ou senha?"\n"Acesse "<b>"google.com.br/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Desbloqueando SIM..."</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Você digitou seu PIN incorretamente <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Você digitou sua senha incorretamente <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%d</xliff:g> vezes. "\n\n"Tente novamente em <xliff:g id="NUMBER_1">%d</xliff:g> segundos."</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 34128afabe3a..7825e7d72aeb 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Modelul a fost şters"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Celulă adăugată"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Modelul a fost desenat"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d din %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Selector utilizator"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Stare"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Comenzi media"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1437,11 +1433,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Aţi desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%d</xliff:g> încercări nereuşite, vi se va solicita să deblocaţi tableta cu ajutorul unui cont de e-mail."\n\n" Încercaţi din nou peste <xliff:g id="NUMBER_2">%d</xliff:g> (de) secunde."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Aţi desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%d</xliff:g> încercări nereuşite, vi se va solicita să deblocaţi telefonul cu ajutorul unui cont de e-mail."\n\n" Încercaţi din nou peste <xliff:g id="NUMBER_2">%d</xliff:g> (de) secunde."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Ridicaţi volumul mai sus de nivelul sigur?"\n"Ascultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Menţineţi două degete pe ecran pentru a activa accesibilitatea."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"S-a activat accesibilitatea."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Accesibilitatea a fost anulată"</string> + <string name="user_switched" msgid="3768006783166984410">"Utilizator curent: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 6745b66137cf..9b853c340a09 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Графический ключ сброшен"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Ячейка добавлена"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Графический ключ введен"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Виджет %2$d из %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Выбор аккаунта"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Статус"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Управление блокировкой"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"АБВ"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Разрешить"</string> <string name="sms_control_no" msgid="625438561395534982">"Запретить"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"Приложение <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> собирается отправить сообщение на адрес <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"С вашего мобильного счета "<font fgcolor="#ffffb060">"могут быть списаны средства"</font>"."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"С вашего мобильного счета будут списаны средства."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Отправить"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Отмена"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Запомнить выбранный телефон"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Это можно изменить позже в разделе настроек \"Приложения\"."</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Всегда разрешать"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Не разрешать"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIM-карта удалена"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Наушники"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Динамики док-станции"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Система"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Воспроизведение звука через Bluetooth"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Готово"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Перенаправлять поток мультимедиа"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Сканирование..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Подключение..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Доступен"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Недоступные"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Встроенный экран"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Экран HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Наложение № <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Введите PIN-код SIM-карты"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Введите PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Введите пароль"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-карта заблокирована. Чтобы продолжить, введите PUK-код. За подробной информацией обратитесь к своему оператору связи."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Введите желаемый PIN-код"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Введите PIN-код ещё раз"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Разблокировка SIM-карты…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Неверный PIN-код."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Введите PIN-код (от 4 до 8 цифр)."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK-код должен содержать не менее 8 символов."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Введите правильный PUK-код. После нескольких неудачных попыток SIM-карта будет заблокирована навсегда."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-коды не совпадают"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Слишком много попыток ввода графического ключа"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Чтобы разблокировать устройство, войдите в свой аккаунт Google."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Имя пользователя (эл. почта)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Войти"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Неверное имя пользователя или пароль."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Забыли имя пользователя или пароль?"\n"Перейдите на страницу "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Разблокировка SIM-карты…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Вы <xliff:g id="NUMBER_0">%d</xliff:g> раз неверно указали PIN-код. "\n\n"Повтор через <xliff:g id="NUMBER_1">%d</xliff:g> сек."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Вы <xliff:g id="NUMBER_0">%d</xliff:g> раз неверно указали пароль."\n\n"Повтор через <xliff:g id="NUMBER_1">%d</xliff:g> сек."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Вы <xliff:g id="NUMBER_0">%d</xliff:g> раз неверно указали графический ключ."\n\n"Повтор через <xliff:g id="NUMBER_1">%d</xliff:g> сек."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Вы <xliff:g id="NUMBER_0">%d</xliff:g> раз неверно указали графический ключ. После <xliff:g id="NUMBER_1">%d</xliff:g> неверных попыток для разблокировки планшетного ПК потребуется войти в аккаунт Google."\n\n"Повтор через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Вы <xliff:g id="NUMBER_0">%d</xliff:g> раз неверно указали графический ключ. После <xliff:g id="NUMBER_1">%d</xliff:g> неверных попыток для разблокировки телефона потребуется войти в аккаунт Google."\n\n"Повтор через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Увеличить громкость до небезопасного уровня?"\n"Долговременное прослушивание на такой громкости может повредить слух."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Чтобы включить специальные возможности, удерживайте пальцы на экране."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Специальные возможности включены."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Специальные возможности не будут включены."</string> + <string name="user_switched" msgid="3768006783166984410">"Выбран аккаунт пользователя <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 0cbe0e8a092c..d53c5e1766bc 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Bezpečnostný vzor bol vymazaný"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Bunka bola pridaná"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Bezpečnostný vzor bol dokončený"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Miniaplikácia %2$d z %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Výber používateľa"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Stav"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Ovládacie prvky médií"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Povoliť"</string> <string name="sms_control_no" msgid="625438561395534982">"Odmietnuť"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> chce odoslať správu na adresu <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457"><font fgcolor="#ffffb060">"Môžu sa účtovať poplatky"</font>" na váš mobilný účet."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Budú sa účtovať poplatky na váš mobilný účet."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Odoslať"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Zrušiť"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Zapamätať si voľbu"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Neskôr to môžete zmeniť v sekcii Nastavenia > Aplikácie"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Vždy povoliť"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Nikdy nepovoliť"</string> <string name="sim_removed_title" msgid="6227712319223226185">"Karta SIM bola odobraná"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefón"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Slúchadlá"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Reproduktory doku"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Systém"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth audio"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Hotovo"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Výstup médií"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Prebieha vyhľadávanie..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Prebieha pripájanie…"</string> + <string name="media_route_status_available" msgid="6983258067194649391">"K dispozícii"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Nie je k dispozícii"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Vstavaná obrazovka"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Obrazovka HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrytie č. <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Zadajte kód PIN karty SIM"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Zadajte kód PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Zadajte heslo"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"Karta SIM je teraz zakázaná. Ak chcete pokračovať, zadajte kód PUK. Podrobné informácie získate od operátora."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Zadajte požadovaný kód PIN"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Potvrďte požadovaný kód PIN"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Prebieha odomykanie karty SIM..."</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Nesprávny kód PIN."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Zadajte kód PIN s dĺžkou 4 až 8 číslic."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Kód PUK musí obsahovať 8 alebo viac číslic."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Znova zadajte správny kód PUK. Opakované pokusy zakážu kartu SIM natrvalo."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Kódy PIN sa nezhodujú"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Príliš veľa pokusov o nakreslenie vzoru"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Ak chcete telefón odomknúť, prihláste sa pomocou svojho účtu Google."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Používateľské meno (e-mail)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Prihlásiť sa"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Neplatné používateľské meno alebo heslo."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Zabudli ste svoje používateľské meno alebo heslo?"\n" Navštívte stránky "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Prebieha odomykanie karty SIM..."</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"<xliff:g id="NUMBER_0">%d</xliff:g>-krát ste zadali nesprávny kód PIN. "\n\n"Skúste to znova o <xliff:g id="NUMBER_1">%d</xliff:g> s."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"<xliff:g id="NUMBER_0">%d</xliff:g>-krát ste zadali nesprávne heslo. "\n\n"Skúste to znova o <xliff:g id="NUMBER_1">%d</xliff:g>."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"<xliff:g id="NUMBER_0">%d</xliff:g>-krát ste použili nesprávny bezpečnostný vzor. "\n\n"Skúste to znova o <xliff:g id="NUMBER_1">%d</xliff:g> s."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"<xliff:g id="NUMBER_0">%d</xliff:g>-krát ste nesprávne nakreslili svoj bezpečnostný vzor. Po ďalších <xliff:g id="NUMBER_1">%d</xliff:g> neúspešných pokusoch sa zobrazí výzva na odomknutie tabletu pomocou e-mailového účtu."\n\n" Skúste to znova o <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"<xliff:g id="NUMBER_0">%d</xliff:g>-krát ste nesprávne nakreslili svoj bezpečnostný vzor. Po <xliff:g id="NUMBER_1">%d</xliff:g> ďalších neúspešných pokusoch sa zobrazí výzva na odomknutie telefónu pomocou e-mailového účtu."\n\n" Skúste to znova o <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Chcete zvýšiť hlasitosť nad bezpečnú úroveň?"\n"Dlhodobé počúvanie pri vysokej hlasitosti môže viesť k poškodeniu vášho sluchu."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Zjednodušenie ovládania povolíte podržaním dvoma prstami."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Zjednodušenie ovládania je povolené."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Zjednodušenie ovládania bolo zrušené."</string> + <string name="user_switched" msgid="3768006783166984410">"Aktuálny používateľ je <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 30473bfaf82a..35ce1f4f54fe 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Vzorec je izbrisan"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Celica je dodana"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Vzorec je končan"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Pripomoček %2$d za %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Izbirnik uporabnika"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Stanje"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Kontrolniki predstavnosti"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Vzorec za odklepanje ste <xliff:g id="NUMBER_0">%d</xliff:g>-krat napačno vnesli. Po nadaljnjih <xliff:g id="NUMBER_1">%d</xliff:g> neuspešnih poskusih boste pozvani, da tablični računalnik odklenete z e-poštnim računom."\n\n"Poskusite znova čez <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Vzorec za odklepanje ste <xliff:g id="NUMBER_0">%d</xliff:g>-krat napačno vnesli. Po nadaljnjih <xliff:g id="NUMBER_1">%d</xliff:g> neuspešnih poskusih boste pozvani, da odklenete telefon z Googlovimi podatki za prijavo."\n\n"Poskusite znova čez <xliff:g id="NUMBER_2">%d</xliff:g> s."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Želite povečati glasnost nad varno raven?"\n"Dolgotrajna izpostavljenost glasnim tonom lahko poškoduje sluh."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Če želite omogočiti pripomočke za ljudi s posebnimi potrebami, na zaslonu pridržite dva prsta."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Pripomočki za ljudi s posebnimi potrebami so omogočeni."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Omogočanje pripomočkov za ljudi s posebnimi potrebami preklicano."</string> + <string name="user_switched" msgid="3768006783166984410">"Trenutni uporabnik <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 594c41bc6369..9273c0622aa9 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Образац је обрисан"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Ћелија је додата"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Образац је довршен"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Виџет %2$d од %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Избор корисника"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Статус"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Контроле за медије"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Нацртали сте шаблон за откључавање неисправно <xliff:g id="NUMBER_0">%d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште."\n\n"Покушајте поново за <xliff:g id="NUMBER_2">%d</xliff:g> секунде(и)."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Нацртали сте шаблон за откључавање неисправно <xliff:g id="NUMBER_0">%d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште."\n\n"Покушајте поново за <xliff:g id="NUMBER_2">%d</xliff:g> секунде(и)."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Желите да појачате звук изнад безбедног нивоа?"\n"Ако дуже време слушате гласну музику, може доћи до оштећења слуха."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Држите са два прста да бисте омогућили приступачност."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Приступачност је омогућена."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Приступачност је отказана."</string> + <string name="user_switched" msgid="3768006783166984410">"Актуелни корисник <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index bbbcc8e30083..37187e06488a 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Grafiskt lösenord har tagits bort"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"En cell har lagts till"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Grafiskt lösenord har slutförts"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d av %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Användarväljare"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Mediereglage"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter ytterligare <xliff:g id="NUMBER_1">%d</xliff:g> försök ombeds du låsa upp surfplattan med ett e-postkonto."\n\n" Försök igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter ytterligare <xliff:g id="NUMBER_1">%d</xliff:g> försök ombeds du låsa upp mobilen med hjälp av ett e-postkonto."\n\n" Försök igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Vill du höja volymen över den säkra nivån?"\n"Om du lyssnar på hög volym under långa perioder kan din hörsel skadas."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Fortsätt trycka med två fingrar om du vill aktivera tillgänglighetsläget."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Tillgänglighetsläget har aktiverats."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Byte till tillgänglighetsläge avbrutet."</string> + <string name="user_switched" msgid="3768006783166984410">"Nuvarande användare: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 15875de2381c..eba41a560d2b 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"ล้างรูปแบบแล้ว"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"เพิ่มเซลแล้ว"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"วาดรูปแบบเสร็จสิ้น"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s วิดเจ็ต %2$d ของ %3$d"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"ตัวเลือกผู้ใช้"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"สถานะ"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"การควบคุมสื่อ"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งแล้ว หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกแท็บเล็ตโดยใช้บัญชีอีเมล"\n\n" โปรดลองอีกครั้งใน <xliff:g id="NUMBER_2">%d</xliff:g> วินาที"</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งแล้ว หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกโทรศัพท์โดยใช้ับัญชีอีเมล"\n\n" โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%d</xliff:g> วินาที"</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"เพิ่มระดับเสียงจนเกินระดับที่ปลอดภัยหรือไม่"\n"การฟังเสียงดังเป็นเวลานานอาจทำให้การได้ยินของคุณบกพร่องได้"</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"ใช้สองนิ้วแตะค้างไว้เพื่อเปิดใช้งานการเข้าถึง"</string> <string name="accessibility_enabled" msgid="1381972048564547685">"เปิดใช้งานการเข้าถึงแล้ว"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"ยกเลิกการเข้าถึงแล้ว"</string> + <string name="user_switched" msgid="3768006783166984410">"ผู้ใช้ปัจจุบัน <xliff:g id="NAME">%1$s</xliff:g>"</string> </resources> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index f755841690fe..617e812afaf0 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Na-clear ang pattern"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Idinagdag ang cell"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Nakumpleto ang pattern"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d ng %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Tagapili ng user"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Katayuan"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Mga kontrol ng media"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%d</xliff:g> (na) beses. Pagkatapos ng <xliff:g id="NUMBER_1">%d</xliff:g> pang hindi matagumpay na pagtatangka, hihilingin sa iyong i-unlock ang tablet mo gamit ang isang email account."\n\n" Subukang muli sa loob ng <xliff:g id="NUMBER_2">%d</xliff:g> (na) segundo."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%d</xliff:g> (na) beses. Pagkatapos ng <xliff:g id="NUMBER_1">%d</xliff:g> pang hindi matagumpay na pagtatangka, hihilingin sa iyong i-unlock ang telepono mo gamit ang isang email account."\n\n" Subukang muli sa loob ng <xliff:g id="NUMBER_2">%d</xliff:g> (na) segundo."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Lakasan ang volume nang lagpas sa ligtas na antas?"\n"Maaaring mapinsala ng pakikinig sa malakas na volume sa loob ng mahahabang panahon ang iyong pandinig."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Panatilihing nakapindot nang matagal ang iyong dalawang daliri upang paganahin ang pagiging naa-access."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Pinagana ang accessibility."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Nakansela ang pagiging naa-access."</string> + <string name="user_switched" msgid="3768006783166984410">"Kasalukuyang user <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index ede22d8a5787..4f35a57b4331 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Desen temizlendi"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Hücre eklendi"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Desen tamamlandı"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d / %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Kullanıcı seçici"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Durum"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Medya denetimleri"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"İzin ver"</string> <string name="sms_control_no" msgid="625438561395534982">"Reddet"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>, <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b> adresine bir mesaj göndermek istiyor."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Bu işlem, mobil hesabınızdan "<font fgcolor="#ffffb060">"ödeme alınmasına neden olabilir"</font>"."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Bu işlem, mobil hesabınızdan ödeme alınmasına neden olacaktır."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Gönder"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"İptal"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Seçimimi hatırla"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Bu ayarı daha sonra Ayarlar > Uygulamalar\'dan değiştirebilirsiniz."</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Her Zaman İzin Ver"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Asla İzin Verme"</string> <string name="sim_removed_title" msgid="6227712319223226185">"SIM kart çıkarıldı"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kulaklıklar"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Yuva hoparlörleri"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth ses"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Tamamlandı"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Medya çıkışı"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Taranıyor..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Bağlanılıyor..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Kullanılabilir"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Yok"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Yerleşik Ekran"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI Ekran"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yer Paylaşımı No. <xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN kodunu girin"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN\'i girin"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Şifreyi Girin"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM kart artık devre dışı bırakıldı. Devam etmek için PUK kodunu girin. Ayrıntılı bilgi için operatörle bağlantı kurun."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"İstenen PIN kodunu girin"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"İstenen PIN kodunu onaylayın"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM kart kilidi açılıyor…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Yanlış PIN kodu."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-8 rakamdan oluşan bir PIN girin."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kodu 8 veya daha çok basamaklı bir sayı olmalıdır."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"PUK kodunu tekrar girin. Çok sayıda deneme yapılırsa SIM kart kalıcı olarak devre dışı bırakılır."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodları eşleşmiyor"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Çok fazla sayıda desen denemesi yapıldı"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Kilidi açmak için Google hesabınızla oturum açın."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Kullanıcı adı (e-posta)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Oturum aç"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Geçersiz kullanıcı adı veya şifre."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Kullanıcı adınızı veya şifrenizi mi unuttunuz?"\n<b>"google.com/accounts/recovery"</b>" adresini ziyaret edin."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"SIM kartın kilidi açılıyor…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN kodunuzu <xliff:g id="NUMBER_0">%d</xliff:g> kez yanlış girdiniz. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g> saniye içinde tekrar deneyin."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Şifrenizi <xliff:g id="NUMBER_0">%d</xliff:g> kez yanlış yazdınız. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g> saniye içinde tekrar deneyin."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%d</xliff:g> kez yanlış çizdiniz. "\n\n"<xliff:g id="NUMBER_1">%d</xliff:g> saniye içinde tekrar deneyin."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%d</xliff:g> kez yanlış çizdiniz. <xliff:g id="NUMBER_1">%d</xliff:g> başarısız denemeden sonra, tabletinizi bir e-posta hesabı kullanarak açmanız istenir."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g> saniye içinde tekrar deneyin."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%d</xliff:g> kez yanlış çizdiniz. <xliff:g id="NUMBER_1">%d</xliff:g> başarısız denemeden sonra telefonunuzu bir e-posta hesabı kullanarak açmanız istenir."\n\n" <xliff:g id="NUMBER_2">%d</xliff:g> saniye içinde tekrar deneyin."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Ses düzeyi güvenli seviyenin üzerine çıkarılsın mı?"\n"Yüksek sesle uzun süre dinlemek işitme yetinize zarar verebilir."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Erişilebilirliği etkinleştirmek için iki parmağınızı basılı tutmaya devam edin."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Erişilebilirlik etkinleştirildi."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Erişilebilirlik iptal edildi."</string> + <string name="user_switched" msgid="3768006783166984410">"Geçerli kullanıcı: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index b1abec3578dd..081313491947 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Ключ очищено"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Телефон додано"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Малювання ключа закінчено"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Віджет %2$d з %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Вибір користувача"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Статус"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Елементи керування носієм"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%d</xliff:g>. У вас є ще стільки спроб: <xliff:g id="NUMBER_1">%d</xliff:g>. У разі невдачі з’явиться запит розблокувати планшетний ПК за допомогою облікового запису електронної пошти."\n\n" Повторіть спробу через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%d</xliff:g>. У вас є ще стільки спроб: <xliff:g id="NUMBER_1">%d</xliff:g>. У разі невдачі з’явиться запит розблокувати телефон за допомогою облікового запису електронної пошти."\n\n" Повторіть спробу через <xliff:g id="NUMBER_2">%d</xliff:g> сек."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Збільшити гучність понад безпечний рівень?"\n"Надто гучне прослуховування впродовж тривалого періоду може пошкодити слух."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Утримуйте двома пальцями, щоб увімкнути доступність."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Доступність увімкнено."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Доступність скасовано."</string> + <string name="user_switched" msgid="3768006783166984410">"Поточний користувач: <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index c7e9392a74e5..0f3df286f396 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Đã xóa hình"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Đã thêm ô"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Đã vẽ xong hình"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Tiện ích %2$d trong số %3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Bộ chọn người dùng"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Trạng thái"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Kiểm soát phương tiện"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1107,15 +1103,12 @@ <string name="sms_control_yes" msgid="3663725993855816807">"Cho phép"</string> <string name="sms_control_no" msgid="625438561395534982">"Từ chối"</string> <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> muốn gửi thư đến <b><xliff:g id="DEST_ADDRESS">%2$s</xliff:g></b>."</string> - <!-- no translation found for sms_short_code_details (3492025719868078457) --> - <skip /> - <!-- no translation found for sms_premium_short_code_details (5523826349105123687) --> - <skip /> + <string name="sms_short_code_details" msgid="3492025719868078457">"Điều này "<font fgcolor="#ffffb060">"có thể gây ra các khoản phí"</font>" đối với tài khoản di động của bạn."</string> + <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Điều này sẽ gây ra các khoản phí đối với tài khoản di động của bạn."</font></string> <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Gửi"</string> <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Hủy"</string> <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Nhớ lựa chọn của tôi"</string> - <!-- no translation found for sms_short_code_remember_undo_instruction (4960944133052287484) --> - <skip /> + <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Bạn có thể thay đổi cài đặt này sau trong Cài đặt > Ứng dụng"</string> <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Luôn cho phép"</string> <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Không bao giờ cho phép"</string> <string name="sim_removed_title" msgid="6227712319223226185">"Đã xóa thẻ SIM"</string> @@ -1375,20 +1368,15 @@ <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Điện thoại"</string> <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Tai nghe"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Loa đế"</string> - <!-- no translation found for default_media_route_name_hdmi (2450970399023478055) --> - <skip /> + <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"Hệ thống"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Âm thanh Bluetooth"</string> <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Xong"</string> <string name="media_route_button_content_description" msgid="5758553567065145276">"Đầu ra phương tiện"</string> - <!-- no translation found for media_route_status_scanning (7279908761758293783) --> - <skip /> - <!-- no translation found for media_route_status_connecting (6422571716007825440) --> - <skip /> - <!-- no translation found for media_route_status_available (6983258067194649391) --> - <skip /> - <!-- no translation found for media_route_status_not_available (6739899962681886401) --> - <skip /> + <string name="media_route_status_scanning" msgid="7279908761758293783">"Đang quét..."</string> + <string name="media_route_status_connecting" msgid="6422571716007825440">"Đang kết nối..."</string> + <string name="media_route_status_available" msgid="6983258067194649391">"Khả dụng"</string> + <string name="media_route_status_not_available" msgid="6739899962681886401">"Không khả dụng"</string> <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Màn hình tích hợp"</string> <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Màn hình HDMI"</string> <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Lớp phủ #<xliff:g id="ID">%1$d</xliff:g>"</string> @@ -1403,21 +1391,15 @@ <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Nhập PIN của SIM"</string> <string name="kg_pin_instructions" msgid="2377242233495111557">"Nhập PIN"</string> <string name="kg_password_instructions" msgid="5753646556186936819">"Nhập mật khẩu"</string> - <!-- no translation found for kg_puk_enter_puk_hint (453227143861735537) --> - <skip /> - <!-- no translation found for kg_puk_enter_pin_hint (7871604527429602024) --> - <skip /> - <!-- no translation found for kg_enter_confirm_pin_hint (325676184762529976) --> - <skip /> + <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM hiện bị vô hiệu hóa. Nhập mã PUK để tiếp tục. Liên hệ với nhà cung cấp dịch vụ để biết chi tiết."</string> + <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Nhập mã PIN mong muốn"</string> + <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Xác nhận mã PIN mong muốn"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Đang mở khóa thẻ SIM…"</string> <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Mã PIN không chính xác."</string> <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Nhập mã PIN có từ 4 đến 8 số."</string> - <!-- no translation found for kg_invalid_sim_puk_hint (7553388325654369575) --> - <skip /> - <!-- no translation found for kg_invalid_puk (3638289409676051243) --> - <skip /> - <!-- no translation found for kg_invalid_confirm_pin_hint (7003469261464593516) --> - <skip /> + <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Mã PUK phải có từ 8 số trở lên."</string> + <string name="kg_invalid_puk" msgid="3638289409676051243">"Hãy nhập lại mã PUK chính xác. Nhiều lần lặp lại sẽ vô hiệu hóa vĩnh viễn thẻ SIM."</string> + <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"Mã PIN không khớp"</string> <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Quá nhiều lần nhập hình"</string> <string name="kg_login_instructions" msgid="1100551261265506448">"Để mở khóa, hãy đăng nhập bằng tài khoản Google của bạn."</string> <string name="kg_login_username_hint" msgid="5718534272070920364">"Tên người dùng (email)"</string> @@ -1425,8 +1407,7 @@ <string name="kg_login_submit_button" msgid="5355904582674054702">"Đăng nhập"</string> <string name="kg_login_invalid_input" msgid="5754664119319872197">"Tên người dùng hoặc mật khẩu không hợp lệ."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Bạn quên tên người dùng hoặc mật khẩu?"\n"Hãy truy cập "<b>"google.com/accounts/recovery"</b>"."</string> - <!-- no translation found for kg_login_checking_password (5316091912653672681) --> - <skip /> + <string name="kg_login_checking_password" msgid="5316091912653672681">"Đang mở khóa SIM…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Bạn đã <xliff:g id="NUMBER_0">%d</xliff:g> lần nhập sai mã PIN của mình. Hãy "\n\n"thử lại sau <xliff:g id="NUMBER_1">%d</xliff:g> giây."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Bạn đã <xliff:g id="NUMBER_0">%d</xliff:g> lần nhập sai mật khẩu của mình. Hãy "\n\n"thử lại sau <xliff:g id="NUMBER_1">%d</xliff:g> giây."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Bạn đã <xliff:g id="NUMBER_0">%d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Hãy "\n\n"thử lại sau <xliff:g id="NUMBER_1">%d</xliff:g> giây."</string> @@ -1437,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Bạn đã <xliff:g id="NUMBER_0">%d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Sau <xliff:g id="NUMBER_1">%d</xliff:g> lần thử không thành công nữa, bạn sẽ được yêu cầu mở khóa máy tính bảng bằng tài khoản email."\n\n" Vui lòng thử lại sau <xliff:g id="NUMBER_2">%d</xliff:g> giây."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Bạn đã <xliff:g id="NUMBER_0">%d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Sau <xliff:g id="NUMBER_1">%d</xliff:g> lần thử không thành công nữa, bạn sẽ được yêu cầu mở khóa điện thoại bằng tài khoản email."\n\n" Vui lòng thử lại sau <xliff:g id="NUMBER_2">%d</xliff:g> giây."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Tăng âm lượng trên mức an toàn?"\n"Nghe ở âm lượng cao trong thời gian dài có thể gây hại cho thính giác của bạn."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Tiếp tục giữ hai ngón tay để bật trợ năng."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Trợ năng đã được bật."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Đã hủy trợ năng."</string> + <string name="user_switched" msgid="3768006783166984410">"Người dùng hiện tại <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 6d85c9f1469f..7f8ade292817 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"图案已清除"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"已添加单元格"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"图案绘制完成"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s。%3$d的窗口小部件%2$d。"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"用户选择器"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"状态"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"媒体控制"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"您已经 <xliff:g id="NUMBER_0">%d</xliff:g> 次错误地绘制了解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%d</xliff:g> 次后仍不成功,系统就会要求您使用自己的电子邮件帐户解锁平板电脑。"\n\n"请在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒后重试。"</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"您已经 <xliff:g id="NUMBER_0">%d</xliff:g> 次错误地绘制了解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%d</xliff:g> 次后仍不成功,系统就会要求您使用自己的电子邮件帐户解锁手机。"\n\n"请在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒后重试。"</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"将音量调高到安全级别以上?"\n"长时间聆听高音量可能会损伤听力。"</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"持续按住双指即可启用辅助功能。"</string> <string name="accessibility_enabled" msgid="1381972048564547685">"辅助功能已启用。"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"已取消辅助功能。"</string> + <string name="user_switched" msgid="3768006783166984410">"当前用户是<xliff:g id="NAME">%1$s</xliff:g>。"</string> </resources> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 959ac55c0005..2185d68d707a 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"已清除解鎖圖形"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"已加入 1 格"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"已畫出解鎖圖形"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s。第 %2$d 個小工具,共 %3$d 個。"</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"使用者選取工具"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"狀態"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"媒體控制項"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"您的解鎖圖形已畫錯 <xliff:g id="NUMBER_0">%d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%d</xliff:g> 次仍未成功,系統就會要求您透過電子郵件帳戶解除平板電腦的鎖定狀態。"\n\n"請在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒後再試一次。"</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"您的解鎖圖形已畫錯 <xliff:g id="NUMBER_0">%d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%d</xliff:g> 次仍未成功,系統就會要求您透過電子郵件帳戶解除手機的鎖定狀態。"\n\n"請在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒後再試一次。"</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"要將音量調高到安全等級以上嗎?"\n"長時間聆聽偏高音量可能會損害您的聽力。"</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"持續使用兩指按住即可啟用協助工具。"</string> <string name="accessibility_enabled" msgid="1381972048564547685">"協助工具已啟用。"</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"協助工具已取消。"</string> + <string name="user_switched" msgid="3768006783166984410">"目前的使用者是 <xliff:g id="NAME">%1$s</xliff:g>。"</string> </resources> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 609df7541a82..2c9290c07721 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -810,14 +810,10 @@ <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Iphethini isusiwe"</string> <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Kwengezwe"</string> <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Iphethini isiphelile"</string> - <!-- no translation found for keyguard_accessibility_widget_changed (5678624624681400191) --> - <skip /> - <!-- no translation found for keyguard_accessibility_user_selector (1226798370913698896) --> - <skip /> - <!-- no translation found for keyguard_accessibility_status (8008264603935930611) --> - <skip /> - <!-- no translation found for keygaurd_accessibility_media_controls (262209654292161806) --> - <skip /> + <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. iwijethi %2$d ye-%3$d."</string> + <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Isikhethi somsebenzisi"</string> + <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Isimo"</string> + <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Izilawuli zemidiya"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string> <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string> @@ -1422,11 +1418,8 @@ <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Udwebe ngokungalungile iphathini yakho yokuvula izikhathi ezingu-<xliff:g id="NUMBER_0">%d</xliff:g>. Emva <xliff:g id="NUMBER_1">%d</xliff:g> kweminye imizamo engaphumelelanga, uzocelwa ukuvula ithebhulethi yakho usebenzisa ukungena ngemvume kwi-Google."\n\n" Sicela uzame futhi kwengu-<xliff:g id="NUMBER_2">%d</xliff:g> imizuzwana."</string> <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Ukulayisha ungenisa iphathini yakho yokuvula ngendlela engalungile izikhathi ezi-<xliff:g id="NUMBER_0">%d</xliff:g> Emva kweminye imizamo engu-<xliff:g id="NUMBER_1">%d</xliff:g>, uzocelwa ukuvula ifoni yakho usebenzisa ukungena ngemvume ku-Google"\n\n" Zame futhi emumva kwengu- <xliff:g id="NUMBER_2">%d</xliff:g> imizuzwana."</string> <string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"Khulisa ivolomu ngaphezu kweleveli yokuphepha?"\n"Ukulalela ngevolomu ephezulu izikhathi ezide kungalimaza ukuzwa kwakho."</string> - <!-- no translation found for continue_to_enable_accessibility (2184747411804432885) --> - <skip /> + <string name="continue_to_enable_accessibility" msgid="2184747411804432885">"Gcina ucindezele iminwe yakho emibili ukuze unike amandla ukufinyelela."</string> <string name="accessibility_enabled" msgid="1381972048564547685">"Ukufinyelela kunikwe amandla."</string> - <!-- no translation found for enable_accessibility_canceled (3833923257966635673) --> - <skip /> - <!-- no translation found for user_switched (3768006783166984410) --> - <skip /> + <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Ukufinyelela kukhanseliwe."</string> + <string name="user_switched" msgid="3768006783166984410">"Umsebenzisi wamanje <xliff:g id="NAME">%1$s</xliff:g>."</string> </resources> diff --git a/data/etc/platform.xml b/data/etc/platform.xml index a19b9b408d55..13d1791bad3e 100644 --- a/data/etc/platform.xml +++ b/data/etc/platform.xml @@ -42,6 +42,10 @@ <group gid="net_bt" /> </permission> + <permission name="android.permission.BLUETOOTH_STACK" > + <group gid="net_bt_stack" /> + </permission> + <permission name="android.permission.NET_TUNNELING" > <group gid="vpn" /> </permission> @@ -176,6 +180,7 @@ <assign-permission name="android.permission.INTERACT_ACROSS_USERS" uid="shell" /> <assign-permission name="android.permission.INTERACT_ACROSS_USERS_FULL" uid="shell" /> <assign-permission name="android.permission.MANAGE_USERS" uid="shell" /> + <assign-permission name="android.permission.BLUETOOTH_STACK" uid="shell" /> <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" /> <assign-permission name="android.permission.ACCESS_DRM" uid="media" /> diff --git a/data/fonts/Roboto-Bold.ttf b/data/fonts/Roboto-Bold.ttf Binary files differindex 40ecd14e9162..b7074561c906 100644 --- a/data/fonts/Roboto-Bold.ttf +++ b/data/fonts/Roboto-Bold.ttf diff --git a/data/fonts/Roboto-BoldItalic.ttf b/data/fonts/Roboto-BoldItalic.ttf Binary files differindex d9067c54aa72..43bc15b21797 100644 --- a/data/fonts/Roboto-BoldItalic.ttf +++ b/data/fonts/Roboto-BoldItalic.ttf diff --git a/data/fonts/Roboto-Italic.ttf b/data/fonts/Roboto-Italic.ttf Binary files differindex 88e4a5b9ab3c..d9041db151dd 100644 --- a/data/fonts/Roboto-Italic.ttf +++ b/data/fonts/Roboto-Italic.ttf diff --git a/data/fonts/Roboto-Light.ttf b/data/fonts/Roboto-Light.ttf Binary files differindex 2ae4dec9dc3f..822469201108 100644 --- a/data/fonts/Roboto-Light.ttf +++ b/data/fonts/Roboto-Light.ttf diff --git a/data/fonts/Roboto-LightItalic.ttf b/data/fonts/Roboto-LightItalic.ttf Binary files differindex 44177ef687bd..979a8efea7c6 100644 --- a/data/fonts/Roboto-LightItalic.ttf +++ b/data/fonts/Roboto-LightItalic.ttf diff --git a/data/fonts/Roboto-Regular.ttf b/data/fonts/Roboto-Regular.ttf Binary files differindex f592adf3d12c..cf9968fd7c82 100644 --- a/data/fonts/Roboto-Regular.ttf +++ b/data/fonts/Roboto-Regular.ttf diff --git a/data/fonts/Roboto-Thin.ttf b/data/fonts/Roboto-Thin.ttf Binary files differindex 5ae4d7ffd01d..9f3b93c33d39 100644 --- a/data/fonts/Roboto-Thin.ttf +++ b/data/fonts/Roboto-Thin.ttf diff --git a/data/fonts/Roboto-ThinItalic.ttf b/data/fonts/Roboto-ThinItalic.ttf Binary files differindex 9cd39274eeb2..9c53b16673ef 100644 --- a/data/fonts/Roboto-ThinItalic.ttf +++ b/data/fonts/Roboto-ThinItalic.ttf diff --git a/data/fonts/RobotoCondensed-Bold.ttf b/data/fonts/RobotoCondensed-Bold.ttf Binary files differindex 21c10f53efd5..7fd9dd84c3a7 100644 --- a/data/fonts/RobotoCondensed-Bold.ttf +++ b/data/fonts/RobotoCondensed-Bold.ttf diff --git a/data/fonts/RobotoCondensed-BoldItalic.ttf b/data/fonts/RobotoCondensed-BoldItalic.ttf Binary files differindex d8edd2d78fd5..b0dba1312d8a 100644 --- a/data/fonts/RobotoCondensed-BoldItalic.ttf +++ b/data/fonts/RobotoCondensed-BoldItalic.ttf diff --git a/data/fonts/RobotoCondensed-Italic.ttf b/data/fonts/RobotoCondensed-Italic.ttf Binary files differindex 4dec2cfb4e92..48f02b51d6c4 100644 --- a/data/fonts/RobotoCondensed-Italic.ttf +++ b/data/fonts/RobotoCondensed-Italic.ttf diff --git a/data/fonts/RobotoCondensed-Regular.ttf b/data/fonts/RobotoCondensed-Regular.ttf Binary files differindex 875ea1af614f..d7254f4fa60e 100644 --- a/data/fonts/RobotoCondensed-Regular.ttf +++ b/data/fonts/RobotoCondensed-Regular.ttf diff --git a/libs/androidfw/BackupData.cpp b/libs/androidfw/BackupData.cpp index 7b1bcba2d130..4e3b52201110 100644 --- a/libs/androidfw/BackupData.cpp +++ b/libs/androidfw/BackupData.cpp @@ -327,6 +327,7 @@ BackupDataReader::SkipEntityData() if (pos == -1) { return errno; } + m_pos = pos; } SKIP_PADDING(); return NO_ERROR; diff --git a/location/java/android/location/LocationRequest.java b/location/java/android/location/LocationRequest.java index f4f7b09f0864..cb291eadf5b8 100644 --- a/location/java/android/location/LocationRequest.java +++ b/location/java/android/location/LocationRequest.java @@ -369,7 +369,15 @@ public final class LocationRequest implements Parcelable { * @return the same object, so that setters can be chained */ public LocationRequest setExpireIn(long millis) { - mExpireAt = millis + SystemClock.elapsedRealtime(); + long elapsedRealtime = SystemClock.elapsedRealtime(); + + // Check for > Long.MAX_VALUE overflow (elapsedRealtime > 0): + if (millis > Long.MAX_VALUE - elapsedRealtime) { + mExpireAt = Long.MAX_VALUE; + } else { + mExpireAt = millis + elapsedRealtime; + } + if (mExpireAt < 0) mExpireAt = 0; return this; } diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index e5b9637a44b4..a4516abd8a67 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -704,7 +704,8 @@ public class MediaRouter { final WifiDisplay d = newDisplays[i]; final WifiDisplay oldRemembered = findMatchingDisplay(d, oldDisplays); if (oldRemembered == null) { - addRouteStatic(makeWifiDisplayRoute(d)); + addRouteStatic(makeWifiDisplayRoute(d, + findMatchingDisplay(d, availableDisplays) != null)); needScan = true; } else { final boolean available = findMatchingDisplay(d, availableDisplays) != null; @@ -733,15 +734,16 @@ public class MediaRouter { sStatic.mLastKnownWifiDisplayStatus = newStatus; } - static RouteInfo makeWifiDisplayRoute(WifiDisplay display) { + static RouteInfo makeWifiDisplayRoute(WifiDisplay display, boolean available) { final RouteInfo newRoute = new RouteInfo(sStatic.mSystemCategory); newRoute.mDeviceAddress = display.getDeviceAddress(); newRoute.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO | ROUTE_TYPE_LIVE_VIDEO; newRoute.mVolumeHandling = RouteInfo.PLAYBACK_VOLUME_FIXED; newRoute.mPlaybackType = RouteInfo.PLAYBACK_TYPE_REMOTE; - newRoute.mStatus = sStatic.mResources.getText( - com.android.internal.R.string.media_route_status_connecting); - newRoute.mEnabled = false; + + newRoute.setStatusCode(available ? + RouteInfo.STATUS_AVAILABLE : RouteInfo.STATUS_CONNECTING); + newRoute.mEnabled = available; newRoute.mName = makeWifiDisplayName(display); return newRoute; diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index 04ba34835da0..ad536f231573 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -274,6 +274,11 @@ setVideoSurface(JNIEnv *env, jobject thiz, jobject jsurface, jboolean mediaPlaye sp<Surface> surface(android_view_Surface_getSurface(env, jsurface)); if (surface != NULL) { new_st = surface->getSurfaceTexture(); + if (new_st == NULL) { + jniThrowException(env, "java/lang/IllegalArgumentException", + "The surface does not have a binding SurfaceTexture!"); + return; + } new_st->incStrong(thiz); } else { jniThrowException(env, "java/lang/IllegalArgumentException", diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index ab8e961be8b9..9e137ce78395 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -174,4 +174,7 @@ <bool name="def_screensaver_activate_on_sleep">false</bool> <!-- ComponentName of the default screen saver (Settings.Secure.SCREENSAVER_COMPONENT) --> <string name="def_screensaver_component">com.google.android.deskclock/com.android.deskclock.Screensaver</string> + + <!-- Default for Settings.Secure.USER_SETUP_COMPLETE --> + <bool name="def_user_setup_complete">false</bool> </resources> diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index a9869d941821..0b61abe07038 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -68,7 +68,7 @@ public class DatabaseHelper extends SQLiteOpenHelper { // database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion' // is properly propagated through your change. Not doing so will result in a loss of user // settings. - private static final int DATABASE_VERSION = 92; + private static final int DATABASE_VERSION = 93; private Context mContext; private int mUserHandle; @@ -1449,6 +1449,30 @@ public class DatabaseHelper extends SQLiteOpenHelper { upgradeVersion = 92; } + if (upgradeVersion == 92) { + SQLiteStatement stmt = null; + try { + stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" + + " VALUES(?,?);"); + if (mUserHandle == UserHandle.USER_OWNER) { + // consider existing primary users to have made it through user setup + // if the globally-scoped device-provisioned bit is set + // (indicating they already made it through setup as primary) + int deviceProvisioned = getIntValueFromTable(db, TABLE_GLOBAL, + Settings.Global.DEVICE_PROVISIONED, 0); + loadSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, + deviceProvisioned); + } else { + // otherwise use the default + loadBooleanSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, + R.bool.def_user_setup_complete); + } + } finally { + if (stmt != null) stmt.close(); + } + upgradeVersion = 93; + } + // *** Remember to update DATABASE_VERSION above! if (upgradeVersion != currentVersion) { @@ -2016,6 +2040,9 @@ public class DatabaseHelper extends SQLiteOpenHelper { loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE, R.bool.def_accessibility_display_magnification_auto_update); + + loadBooleanSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, + R.bool.def_user_setup_complete); } finally { if (stmt != null) stmt.close(); } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index ba7501b896cd..5672823cf121 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -61,6 +61,12 @@ public class SettingsBackupAgent extends BackupAgentHelper { private static final boolean DEBUG = false; private static final boolean DEBUG_BACKUP = DEBUG || false; + /* Don't restore wifi config until we have new logic for parsing the + * saved wifi config and configuring the new APs without having to + * disable and re-enable wifi + */ + private static final boolean NAIVE_WIFI_RESTORE = false; + private static final String KEY_SYSTEM = "system"; private static final String KEY_SECURE = "secure"; private static final String KEY_GLOBAL = "global"; @@ -307,7 +313,7 @@ public class SettingsBackupAgent extends BackupAgentHelper { mSettingsHelper.applyAudioSettings(); } else if (KEY_SECURE.equals(key)) { restoreSettings(data, Settings.Secure.CONTENT_URI, movedToGlobal); - } else if (KEY_WIFI_SUPPLICANT.equals(key)) { + } else if (NAIVE_WIFI_RESTORE && KEY_WIFI_SUPPLICANT.equals(key)) { int retainedWifiState = enableWifi(false); restoreWifiSupplicant(FILE_WIFI_SUPPLICANT, data); FileUtils.setPermissions(FILE_WIFI_SUPPLICANT, @@ -321,7 +327,7 @@ public class SettingsBackupAgent extends BackupAgentHelper { byte[] localeData = new byte[size]; data.readEntityData(localeData, 0, size); mSettingsHelper.setLocaleData(localeData, size); - } else if (KEY_WIFI_CONFIG.equals(key)) { + } else if (NAIVE_WIFI_RESTORE && KEY_WIFI_CONFIG.equals(key)) { restoreFileData(mWifiConfigFile, data); } else { data.skipEntityData(); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 1701f6e69e36..76a502237989 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -849,7 +849,6 @@ public class SettingsProvider extends ContentProvider { if (TABLE_FAVORITES.equals(args.table)) { return null; } - checkWritePermissions(args); // Special case LOCATION_PROVIDERS_ALLOWED. // Support enabling/disabling a single provider (using "+" or "-" prefix) @@ -869,6 +868,9 @@ public class SettingsProvider extends ContentProvider { } } + // Check write permissions only after determining which table the insert will touch + checkWritePermissions(args); + // The global table is stored under the owner, always if (TABLE_GLOBAL.equals(args.table)) { desiredUserHandle = UserHandle.USER_OWNER; diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png Binary files differindex 045a3d15884f..ca73621e866b 100644 --- a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png +++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_hour.png diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png Binary files differindex eef78c16d869..8ee38ee28509 100644 --- a/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png +++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_clock_minute.png diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png Binary files differindex ee887e9db6f7..f7f8c421098c 100644 --- a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png +++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_hour.png diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png Binary files differindex 12e78189d3af..fb17e5ab06be 100644 --- a/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png +++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_clock_minute.png diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png Binary files differindex d1d29dc0aa75..02c4a05e1bdb 100644 --- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png +++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_hour.png diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png Binary files differindex bb0c17c28467..aa6be728a53a 100644 --- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png +++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_clock_minute.png diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index cf5cc6dade42..0685089fcba0 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Екранът е заключен в хоризонтална ориентация."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Екранът е заключен във вертикална ориентация."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"В спящ режим сега"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Самолетен режим"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Зарежда се, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 2a9ccb1680d1..1270f654b56f 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Obrazovka je uzamčena v orientaci na šířku."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Obrazovka je uzamčena v orientaci na výšku."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Spát nyní"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Režim V letadle"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Nabíjení, <xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 5f4890a9c28c..7b144a80dc4c 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skærmen er nu låst i liggende retning."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skærmen er nu låst i stående retning."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Gå i dvale nu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flytilstand"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Oplader, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index ccd22b605f53..7060d0d56ec1 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildschirm bleibt im Querformat."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildschirm bleibt im Hochformat."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Ruhezustand ein"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flugmodus"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Akku wird aufgeladen (<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 860e6be264e5..dc49cec96a32 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla está bloqueada en modo horizontal."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla está bloqueada en modo vertical."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Activar susp. ahora"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo de avión"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Cargando (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index c21b780d438b..773eb660438d 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla está bloqueada en modo horizontal."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla está bloqueada en modo vertical."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Activar suspensión"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Modo avión"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Cargando (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index 3617714a418c..78bb0140a9c9 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekraan on lukustatud horisontaalsuunas."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekraan on lukustatud vertikaalsuunas."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Nüüd unerežiimi"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lennurežiim"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Laadimine, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index c930243ccb72..229b52ccbfdd 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -43,7 +43,7 @@ <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"حالت هواپیما"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"چرخش خودکار صفحه"</string> - <string name="status_bar_settings_mute_label" msgid="554682549917429396">"بیصدا"</string> + <string name="status_bar_settings_mute_label" msgid="554682549917429396">"بیصدا"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"خودکار"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"اعلانها"</string> <string name="bluetooth_tethered" msgid="7094101612161133267">"اتصال اینترنتی با بلوتوث تلفن همراه"</string> @@ -128,7 +128,7 @@ <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"دستیابی به GPS."</string> <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter فعال شد."</string> <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"زنگ لرزشی."</string> - <string name="accessibility_ringer_silent" msgid="9061243307939135383">"زنگ بیصدا."</string> + <string name="accessibility_ringer_silent" msgid="9061243307939135383">"زنگ بیصدا."</string> <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> نادیده گرفته شد."</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5257833881698644687">"داده 2G-3G غیرفعال شد"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="4789143363492682629">"داده 4G غیر فعال شد"</string> @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"صفحه اکنون در جهت افقی قفل است."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"صفحه اکنون در جهت عمودی قفل است."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"اکنون خواب"</string> <string name="ethernet_label" msgid="7967563676324087464">"اترنت"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"حالت هواپیما"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"در حال شارژ، <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 44988d7f4702..86c5c5f9d1ff 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ruutu on lukittu vaakasuuntaan."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ruutu on lukittu pystysuuntaan."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Virransäästötilaan"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lentokonetila"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Ladataan (<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 8a484b1606db..425a09ff8742 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"L\'écran est verrouillé en mode paysage."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"L\'écran est verrouillé en mode portrait."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Mettre en veille"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode avion"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"En charge (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 0859a3cee20c..8632f58b02ef 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"स्क्रीन लैंडस्केप अभिविन्यास में लॉक है."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"स्क्रीन पोर्ट्रेट अभिविन्यास में लॉक है."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"अभी निष्क्रिय करें"</string> <string name="ethernet_label" msgid="7967563676324087464">"ईथरनेट"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"हवाई जहाज़ मोड"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"चार्ज हो रही है, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index 273f910302b4..0bb9b5b153b6 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaključan u pejzažnoj orijentaciji."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaključan u portretnoj orijentaciji."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Miruj sad"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način rada u zrakoplovu"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Puni se, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 4a2e88d6b82d..51c96be632d3 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A képernyő zárolva van fekvő tájolásban."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A képernyő zárolva van álló tájolásban."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Alvó mód"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Repülőgép üzemmód"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Töltés (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 4836598f30a0..1547b83ab9b8 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Layar dikunci dalam orientasi lanskap."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Layar dikunci dalam orientasi potret."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Tidur Sekarang"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mode pesawat"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Mengisi baterai, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 508c406aee38..3b2058a8f4cd 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"画面は横向きにロックされています。"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"画面は縦向きにロックされています。"</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"スリープ開始"</string> <string name="ethernet_label" msgid="7967563676324087464">"イーサネット"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"機内モード"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"充電中: <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 95614b6c335f..1acb73992b46 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"화면이 가로 방향으로 잠겨 있습니다."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"화면이 세로 방향으로 잠겨 있습니다."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"절전 모드로 전환"</string> <string name="ethernet_label" msgid="7967563676324087464">"이더넷"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"비행기 모드"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"충전 중(<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index d5c3cf63c8da..b1dc83cce3cf 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Užrakintas ekranas yra horizontalios orientacijos."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Užrakintas ekranas yra vertikalios orientacijos."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Įj. miego rež. dabar"</string> <string name="ethernet_label" msgid="7967563676324087464">"Eternetas"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lėktuvo režimas"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Įkraunama, <xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 32b503107a45..de0994d82526 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekrāns tagad ir bloķēts ainavas orientācijā."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekrāns tagad ir bloķēts portreta orientācijā."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Ieslēgt miega režīmu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Tīkls Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Lidojuma režīms"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Notiek uzlāde, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 0e64e26bd3ad..ce8c03cffb96 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran jest zablokowany w orientacji poziomej."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran jest zablokowany w orientacji pionowej."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Zaśnij teraz"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Tryb samolotowy"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Ładowanie (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 4cb1eaaeeb1f..b0de6ae55451 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ecranul este blocat în orientarea de tip peisaj."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ecranul este blocat în orientarea de tip portret."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Activaţi mod inactiv"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Mod Avion"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Se încarcă, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 46d66d62d77c..6f8762a3633d 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Выбрана только альбомная ориентация экрана."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Выбрана только книжная ориентация экрана."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Спящий режим"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим полета"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Зарядка (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index c39cab1f5189..0de92a55df12 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Obrazovka je uzamknutá v orientácii na šírku."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Obrazovka je uzamknutá v orientácii na výšku."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Spať"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Režim V lietadle"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Nabíjanie, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index be6b7980676d..397256c76221 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaklenjen v ležeči usmerjenosti."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaklenjen v pokončni usmerjenosti."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Stanje pripravljenosti"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Način za letalo"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Polnjenje, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 51d6310c82fc..2c331b3ea1c2 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Екран је закључан у хоризонталном положају."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Екран је закључан у вертикалном положају."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Спавај одмах"</string> <string name="ethernet_label" msgid="7967563676324087464">"Етернет"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим рада у авиону"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Пуњење, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index a46d4e89b781..0a6daa212862 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildskärmens riktning är nu låst i liggande format."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildskärmens riktning är nu låst i stående format."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Viloläge nu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Flygplansläge"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Laddar, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 392884b98d62..0150e3d86a0d 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"ขณะนี้หน้าจอถูกล็อกให้วางในแนวนอน"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"ขณะนี้หน้าจอถูกล็อกให้วางในแนวตั้ง"</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"เข้าสู่โหมดสลีปเลย"</string> <string name="ethernet_label" msgid="7967563676324087464">"อีเทอร์เน็ต"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"โหมดใช้งานบนเครื่องบิน"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"กำลังชาร์จ, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index cdcbaab70002..371f6ec4c15c 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Naka-lock ang screen sa pahigang oryentasyon."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Naka-lock ang screen sa patayong oryentasyon."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Mag-sleep Ngayon"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Airplane mode"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Nagcha-charge, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 34e4028a3ef8..a013ed553e59 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran yatay yönde kilitlendi."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran dikey yönde kilitlendi."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Şimdi Uyu"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Uçak modu"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Şarj oluyor, <xliff:g id="PERCENT">%%</xliff:g><xliff:g id="NUMBER">%d</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 50fb3d0c2e76..8d233977ac9c 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Екран заблоковано в альбомній орієнтації."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Екран заблоковано в книжковій орієнтації."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Перейти в режим сну"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Режим польоту"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Заряджається, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 31a37c9c63bd..f7cbe7052cd5 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Màn hình hiện bị khóa theo hướng ngang."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Màn hình hiện bị khóa theo hướng dọc."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Ngủ bây giờ"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Chế độ trên máy bay"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Đang sạc, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index 826e1df6cf70..42b539a7b72c 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"屏幕锁定为横向模式。"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"屏幕锁定为纵向模式。"</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"果冻豆大乱舞"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"立即休眠"</string> <string name="ethernet_label" msgid="7967563676324087464">"以太网"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飞行模式"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"正在充电:<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 440d2f8aef7a..b78caa554a0d 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -151,8 +151,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"螢幕已鎖定為橫向模式。"</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"螢幕已鎖定為垂直模式。"</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"立即休眠"</string> <string name="ethernet_label" msgid="7967563676324087464">"乙太網路"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"飛航模式"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"充電中 (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 1fdee8e6204a..dca625bd1d17 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -149,8 +149,7 @@ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Isikrini sikhiyelwe ngomumo we-landscape."</string> <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Isikrini sikhiyelwe ngomumo we-portrait."</string> <string name="jelly_bean_dream_name" msgid="5992026543636816792">"I-BeanFlinger"</string> - <!-- no translation found for start_dreams (6170089063982549905) --> - <skip /> + <string name="start_dreams" msgid="6170089063982549905">"Lala manje"</string> <string name="ethernet_label" msgid="7967563676324087464">"I-Ethernet"</string> <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Isimo sendiza"</string> <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Iyashaja <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string> diff --git a/packages/SystemUI/src/com/android/systemui/BeanBagDream.java b/packages/SystemUI/src/com/android/systemui/BeanBagDream.java index 3bb808f5e994..a367367157f3 100644 --- a/packages/SystemUI/src/com/android/systemui/BeanBagDream.java +++ b/packages/SystemUI/src/com/android/systemui/BeanBagDream.java @@ -9,23 +9,23 @@ public class BeanBagDream extends DreamService { private Board mBoard; @Override - public void onStart() { - super.onStart(); + public void onAttachedToWindow() { + super.onAttachedToWindow(); setInteractive(true); + setFullscreen(true); mBoard = new Board(this, null); + setContentView(mBoard); } @Override - public void onAttachedToWindow() { - super.onAttachedToWindow(); - setContentView(mBoard); - setFullscreen(true); + public void onDreamingStarted() { + super.onDreamingStarted(); mBoard.startAnimation(); } @Override - public void finish() { + public void onDreamingStopped() { mBoard.stopAnimation(); - super.finish(); + super.onDreamingStopped(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index 496219996b74..6ae09b02fe5e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -160,7 +160,7 @@ public class PanelBar extends FrameLayout { } } if (DEBUG) LOG("collapseAllPanels: animate=%s waiting=%s", animate, waiting); - if (!waiting) { + if (!waiting && mState != STATE_CLOSED) { // it's possible that nothing animated, so we replicate the termination // conditions of panelExpansionChanged here go(STATE_CLOSED); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 362bb1c5d683..a8a92ecd14aa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -105,7 +105,7 @@ public class PanelView extends FrameLayout { mTimeAnimator = new TimeAnimator(); mTimeAnimator.setTimeListener(mAnimationCallback); - mPeekAnimator.cancel(); + if (mPeekAnimator != null) mPeekAnimator.cancel(); mTimeAnimator.start(); @@ -261,7 +261,7 @@ public class PanelView extends FrameLayout { case MotionEvent.ACTION_MOVE: final float h = rawY - mAbsPos[1] - mTouchOffset; if (h > mPeekHeight) { - if (mPeekAnimator.isRunning()) { + if (mPeekAnimator != null && mPeekAnimator.isRunning()) { mPeekAnimator.cancel(); } mJustPeeked = false; @@ -385,7 +385,7 @@ public class PanelView extends FrameLayout { public void setExpandedHeight(float height) { if (DEBUG) LOG("setExpandedHeight(%.1f)", height); - mTracking = mRubberbanding = false; + mRubberbanding = false; if (mTimeAnimator.isRunning()) { post(mStopAnimator); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index e5874221fb5e..3aa81ea6b8d0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1269,8 +1269,8 @@ public class PhoneStatusBar extends BaseStatusBar { return; } - // Ensure the panel is fully collapsed (just in case; bug 6765842) - // @@@ mStatusBarView.collapseAllPanels(/*animate=*/ false); + // Ensure the panel is fully collapsed (just in case; bug 6765842, 7260868) + mStatusBarView.collapseAllPanels(/*animate=*/ false); mExpandedVisible = false; mPile.setLayoutTransitionsEnabled(false); diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index ba76bcd79731..ed9c6a3dc324 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -4047,21 +4047,36 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - Runnable mScreenLockTimeout = new Runnable() { + class ScreenLockTimeout implements Runnable { + Bundle options; + + @Override public void run() { synchronized (this) { if (localLOGV) Log.v(TAG, "mScreenLockTimeout activating keyguard"); if (mKeyguardMediator != null) { - mKeyguardMediator.doKeyguardTimeout(); + mKeyguardMediator.doKeyguardTimeout(options); } mLockScreenTimerActive = false; + options = null; } } - }; - public void lockNow() { + public void setLockOptions(Bundle options) { + this.options = options; + } + } + + ScreenLockTimeout mScreenLockTimeout = new ScreenLockTimeout(); + + public void lockNow(Bundle options) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null); mHandler.removeCallbacks(mScreenLockTimeout); + if (options != null) { + // In case multiple calls are made to lockNow, we don't wipe out the options + // until the runnable actually executes. + mScreenLockTimeout.setLockOptions(options); + } mHandler.post(mScreenLockTimeout); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java index 82141423f6fa..246c25587f83 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java @@ -119,12 +119,6 @@ public class KeyguardMultiUserSelectorView extends FrameLayout implements View.O public void run() { try { ActivityManagerNative.getDefault().switchUser(avatar.getUserInfo().id); - WindowManagerGlobal.getWindowManagerService().lockNow(); - // Set the new active user, and make it appear active - avatar.resetPressedState(); - mCallback.showSecurityView(); - mActiveUserAvatar = avatar; - mActiveUserAvatar.setActive(true, false, 0, null); } catch (RemoteException re) { Log.e(TAG, "Couldn't switch user " + re); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java index 4f2545f880b2..a4e8ea400cf3 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java @@ -54,7 +54,7 @@ import com.android.internal.widget.PasswordEntryKeyboardHelper; */ public class KeyguardPasswordView extends LinearLayout - implements KeyguardSecurityView, OnEditorActionListener { + implements KeyguardSecurityView, OnEditorActionListener, TextWatcher { private KeyguardSecurityCallback mCallback; private EditText mPasswordEntry; private LockPatternUtils mLockPatternUtils; @@ -121,6 +121,7 @@ public class KeyguardPasswordView extends LinearLayout mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); mPasswordEntry = (EditText) findViewById(R.id.passwordEntry); mPasswordEntry.setOnEditorActionListener(this); + mPasswordEntry.addTextChangedListener(this); mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false, new int[] { @@ -351,5 +352,20 @@ public class KeyguardPasswordView extends LinearLayout return mCallback; } + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + if (mCallback != null) { + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); + } + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + } + } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java index f913519b5e33..5a9ffcfec22b 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPinView.java @@ -30,6 +30,8 @@ import com.android.internal.widget.PasswordEntryKeyboardHelper; import com.android.internal.widget.PasswordEntryKeyboardView; import com.android.internal.R; +import android.text.Editable; +import android.text.TextWatcher; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; @@ -45,9 +47,7 @@ import android.widget.TextView.OnEditorActionListener; * Displays a dialer like interface to unlock the SIM PIN. */ public class KeyguardSimPinView extends LinearLayout - implements KeyguardSecurityView, OnEditorActionListener { - - private static final int DIGIT_PRESS_WAKE_MILLIS = 5000; + implements KeyguardSecurityView, OnEditorActionListener, TextWatcher { private EditText mPinEntry; private ProgressDialog mSimUnlockProgressDialog = null; @@ -80,6 +80,7 @@ public class KeyguardSimPinView extends LinearLayout mPinEntry = (EditText) findViewById(R.id.sim_pin_entry); mPinEntry.setOnEditorActionListener(this); + mPinEntry.addTextChangedListener(this); mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false, @@ -163,7 +164,7 @@ public class KeyguardSimPinView extends LinearLayout public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // Check if this was the result of hitting the enter key - mCallback.userActivity(DIGIT_PRESS_WAKE_MILLIS); + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); if (event.getAction() == MotionEvent.ACTION_DOWN && ( actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE @@ -247,4 +248,19 @@ public class KeyguardSimPinView extends LinearLayout return mCallback; } + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + if (mCallback != null) { + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); + } + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + } + } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java index 2015826877b5..2cdb52d56791 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java @@ -23,6 +23,7 @@ import android.graphics.Rect; import android.os.RemoteException; import android.os.ServiceManager; import android.text.Editable; +import android.text.TextWatcher; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; @@ -40,9 +41,7 @@ import com.android.internal.widget.PasswordEntryKeyboardView; import com.android.internal.R; public class KeyguardSimPukView extends LinearLayout implements View.OnClickListener, - KeyguardSecurityView, OnEditorActionListener { - - private static final int DIGIT_PRESS_WAKE_MILLIS = 5000; + KeyguardSecurityView, OnEditorActionListener, TextWatcher { private View mDeleteButton; @@ -135,6 +134,7 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList mSimPinEntry = (TextView) findViewById(R.id.sim_pin_entry); mSimPinEntry.setOnEditorActionListener(this); + mSimPinEntry.addTextChangedListener(this); mDeleteButton = findViewById(R.id.delete_button); mDeleteButton.setOnClickListener(this); mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard); @@ -222,7 +222,7 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList digits.delete(len-1, len); } } - mCallback.userActivity(DIGIT_PRESS_WAKE_MILLIS); + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); } private Dialog getSimUnlockProgressDialog() { @@ -292,7 +292,7 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList @Override public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { // Check if this was the result of hitting the enter key - mCallback.userActivity(DIGIT_PRESS_WAKE_MILLIS); + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); if (event.getAction() == MotionEvent.ACTION_DOWN) { if (actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) { @@ -318,4 +318,19 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList return mCallback; } + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + if (mCallback != null) { + mCallback.userActivity(KeyguardViewManager.DIGIT_PRESS_WAKE_MILLIS); + } + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + } + } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java index 5ad45ce8a5d8..f97d67d07e31 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java @@ -230,7 +230,8 @@ class KeyguardStatusViewManager { } private void maybeSetUpperCaseText(TextView textView, CharSequence text) { - if (KeyguardViewManager.USE_UPPER_CASE) { // currently only required for date view + if (KeyguardViewManager.USE_UPPER_CASE + && textView.getId() != R.id.owner_info) { // currently only required for date view textView.setText(text != null ? text.toString().toUpperCase() : null); } else { textView.setText(text); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java index 23a96fb2e9e6..fd52575992fa 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java @@ -23,12 +23,14 @@ import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.PixelFormat; +import android.os.Bundle; import android.os.IBinder; import android.os.Parcelable; import android.os.SystemProperties; import android.util.Log; import android.util.Slog; import android.util.SparseArray; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -36,9 +38,8 @@ import android.view.ViewManager; import android.view.WindowManager; import android.widget.FrameLayout; -import com.android.internal.policy.impl.keyguard.KeyguardSecurityModel.SecurityMode; -import com.android.internal.widget.LockPatternUtils; import com.android.internal.R; +import com.android.internal.widget.LockPatternUtils; /** * Manages creating, showing, hiding and resetting the keyguard. Calls back @@ -51,6 +52,9 @@ public class KeyguardViewManager { private static String TAG = "KeyguardViewManager"; public static boolean USE_UPPER_CASE = true; + // Timeout used for keypresses + static final int DIGIT_PRESS_WAKE_MILLIS = 5000; + private final Context mContext; private final ViewManager mViewManager; private final KeyguardViewMediator.ViewMediatorCallback mViewMediatorCallback; @@ -87,12 +91,12 @@ public class KeyguardViewManager { * Show the keyguard. Will handle creating and attaching to the view manager * lazily. */ - public synchronized void show() { + public synchronized void show(Bundle options) { if (DEBUG) Log.d(TAG, "show(); mKeyguardView==" + mKeyguardView); boolean enableScreenRotation = shouldEnableScreenRotation(); - maybeCreateKeyguardLocked(enableScreenRotation, false); + maybeCreateKeyguardLocked(enableScreenRotation, options); maybeEnableScreenRotation(enableScreenRotation); // Disable common aspects of the system/status/navigation bars that are not appropriate or @@ -123,13 +127,13 @@ public class KeyguardViewManager { @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); - maybeCreateKeyguardLocked(shouldEnableScreenRotation(), false); + maybeCreateKeyguardLocked(shouldEnableScreenRotation(), null); } } SparseArray<Parcelable> mStateContainer = new SparseArray<Parcelable>(); - private void maybeCreateKeyguardLocked(boolean enableScreenRotation, boolean userSwitched) { + private void maybeCreateKeyguardLocked(boolean enableScreenRotation, Bundle options) { final boolean isActivity = (mContext instanceof Activity); // for test activity if (mKeyguardHost != null) { @@ -170,13 +174,13 @@ public class KeyguardViewManager { mWindowLayoutParams = lp; mViewManager.addView(mKeyguardHost, lp); } - inflateKeyguardView(userSwitched); + inflateKeyguardView(options); mViewManager.updateViewLayout(mKeyguardHost, mWindowLayoutParams); mKeyguardHost.restoreHierarchyState(mStateContainer); } - private void inflateKeyguardView(boolean userSwitched) { + private void inflateKeyguardView(Bundle options) { View v = mKeyguardHost.findViewById(R.id.keyguard_host_view); if (v != null) { mKeyguardHost.removeView(v); @@ -190,11 +194,16 @@ public class KeyguardViewManager { mKeyguardView.setLockPatternUtils(mLockPatternUtils); mKeyguardView.setViewMediatorCallback(mViewMediatorCallback); - if (userSwitched) { + if (options != null && options.getBoolean(LockPatternUtils.KEYGUARD_SHOW_USER_SWITCHER)) { mKeyguardView.goToUserSwitcher(); mKeyguardView.showNextSecurityScreenIfPresent(); } + if (options != null && + options.getBoolean(LockPatternUtils.KEYGUARD_SHOW_SECURITY_CHALLENGE)) { + mKeyguardView.showNextSecurityScreenIfPresent(); + } + if (mScreenOn) { mKeyguardView.show(); } @@ -235,11 +244,11 @@ public class KeyguardViewManager { /** * Reset the state of the view. */ - public synchronized void reset(boolean userSwitched) { + public synchronized void reset(Bundle options) { if (DEBUG) Log.d(TAG, "reset()"); // User might have switched, check if we need to go back to keyguard // TODO: It's preferable to stay and show the correct lockscreen or unlock if none - maybeCreateKeyguardLocked(shouldEnableScreenRotation(), userSwitched); + maybeCreateKeyguardLocked(shouldEnableScreenRotation(), options); } public synchronized void onScreenTurnedOff() { @@ -281,7 +290,7 @@ public class KeyguardViewManager { public synchronized void verifyUnlock() { if (DEBUG) Log.d(TAG, "verifyUnlock()"); - show(); + show(null); mKeyguardView.verifyUnlock(); } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java index 21d2ad191cd4..4c676a13ee98 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java @@ -18,9 +18,6 @@ package com.android.internal.policy.impl.keyguard; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; -import com.android.internal.telephony.IccCardConstants; -import com.android.internal.widget.LockPatternUtils; - import android.app.Activity; import android.app.ActivityManagerNative; import android.app.AlarmManager; @@ -33,6 +30,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.media.SoundPool; +import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -51,6 +49,9 @@ import android.view.WindowManager; import android.view.WindowManagerGlobal; import android.view.WindowManagerPolicy; +import com.android.internal.telephony.IccCardConstants; +import com.android.internal.widget.LockPatternUtils; + /** * Mediates requests related to the keyguard. This includes queries about the @@ -290,15 +291,15 @@ public class KeyguardViewMediator { @Override public void onUserSwitched(int userId) { // Note that the mLockPatternUtils user has already been updated from setCurrentUser. + // We need to force a reset of the views, since lockNow (called by + // ActivityManagerService) will not reconstruct the keyguard if it is already showing. synchronized (KeyguardViewMediator.this) { + Bundle options = new Bundle(); + options.putBoolean(LockPatternUtils.KEYGUARD_SHOW_USER_SWITCHER, true); + options.putBoolean(LockPatternUtils.KEYGUARD_SHOW_SECURITY_CHALLENGE, true); + resetStateLocked(options); + adjustStatusBarLocked(); - resetStateLocked(true); - } - // We should always go back to the locked state when a user - // switch happens. Is there a more direct way to do this? - try { - WindowManagerGlobal.getWindowManagerService().lockNow(); - } catch (RemoteException e) { } } @@ -352,7 +353,7 @@ public class KeyguardViewMediator { + "device isn't provisioned yet."); doKeyguardLocked(); } else { - resetStateLocked(false); + resetStateLocked(null); } } } @@ -365,7 +366,7 @@ public class KeyguardViewMediator { + "showing; need to show keyguard so user can enter sim pin"); doKeyguardLocked(); } else { - resetStateLocked(false); + resetStateLocked(null); } } break; @@ -378,14 +379,14 @@ public class KeyguardViewMediator { } else { if (DEBUG) Log.d(TAG, "PERM_DISABLED, resetStateLocked to" + "show permanently disabled message in lockscreen."); - resetStateLocked(false); + resetStateLocked(null); } } break; case READY: synchronized (this) { if (isShowing()) { - resetStateLocked(false); + resetStateLocked(null); } } break; @@ -531,7 +532,7 @@ public class KeyguardViewMediator { } } else if (mShowing) { notifyScreenOffLocked(); - resetStateLocked(false); + resetStateLocked(null); } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_TIMEOUT || (why == WindowManagerPolicy.OFF_BECAUSE_OF_USER && !lockImmediately)) { // if the screen turned off because of timeout or the user hit the power button @@ -645,9 +646,9 @@ public class KeyguardViewMediator { if (DEBUG) Log.d(TAG, "onKeyguardExitResult(false), resetting"); mExitSecureCallback.onKeyguardExitResult(false); mExitSecureCallback = null; - resetStateLocked(false); + resetStateLocked(null); } else { - showLocked(); + showLocked(null); // block until we know the keygaurd is done drawing (and post a message // to unblock us after a timeout so we don't risk blocking too long @@ -735,9 +736,9 @@ public class KeyguardViewMediator { * Used by PhoneWindowManager to enable the keyguard due to a user activity timeout. * This must be safe to call from any thread and with any window manager locks held. */ - public void doKeyguardTimeout() { + public void doKeyguardTimeout(Bundle options) { mHandler.removeMessages(KEYGUARD_TIMEOUT); - Message msg = mHandler.obtainMessage(KEYGUARD_TIMEOUT); + Message msg = mHandler.obtainMessage(KEYGUARD_TIMEOUT, options); mHandler.sendMessage(msg); } @@ -750,12 +751,16 @@ public class KeyguardViewMediator { return mShowing || mNeedToReshowWhenReenabled || !mUpdateMonitor.isDeviceProvisioned(); } + private void doKeyguardLocked() { + doKeyguardLocked(null); + } + /** * Enable the keyguard if the settings are appropriate. Return true if all * work that will happen is done; returns false if the caller can wait for * the keyguard to be shown. */ - private void doKeyguardLocked() { + private void doKeyguardLocked(Bundle options) { // if another app is disabling us, don't show if (!mExternallyEnabled) { if (DEBUG) Log.d(TAG, "doKeyguard: not showing because externally disabled"); @@ -801,17 +806,17 @@ public class KeyguardViewMediator { } if (DEBUG) Log.d(TAG, "doKeyguard: showing the lock screen"); - showLocked(); + showLocked(options); } /** * Send message to keyguard telling it to reset its state. - * @param userSwitched true if we're resetting state because user switched + * @param options options about how to show the keyguard * @see #handleReset() */ - private void resetStateLocked(boolean userSwitched) { + private void resetStateLocked(Bundle options) { if (DEBUG) Log.d(TAG, "resetStateLocked"); - Message msg = mHandler.obtainMessage(RESET, userSwitched ? 1 : 0, 0); + Message msg = mHandler.obtainMessage(RESET, options); mHandler.sendMessage(msg); } @@ -871,11 +876,11 @@ public class KeyguardViewMediator { * Send message to keyguard telling it to show itself * @see #handleShow() */ - private void showLocked() { + private void showLocked(Bundle options) { if (DEBUG) Log.d(TAG, "showLocked"); // ensure we stay awake until we are finished displaying the keyguard mShowKeyguardWakeLock.acquire(); - Message msg = mHandler.obtainMessage(SHOW); + Message msg = mHandler.obtainMessage(SHOW, options); mHandler.sendMessage(msg); } @@ -1042,13 +1047,13 @@ public class KeyguardViewMediator { public void handleMessage(Message msg) { switch (msg.what) { case SHOW: - handleShow(); + handleShow((Bundle) msg.obj); return ; case HIDE: handleHide(); return ; case RESET: - handleReset(msg.arg1 != 0); + handleReset((Bundle) msg.obj); return ; case VERIFY_UNLOCK: handleVerifyUnlock(); @@ -1076,7 +1081,7 @@ public class KeyguardViewMediator { break; case KEYGUARD_TIMEOUT: synchronized (KeyguardViewMediator.this) { - doKeyguardLocked(); + doKeyguardLocked((Bundle) msg.obj); } break; } @@ -1164,12 +1169,12 @@ public class KeyguardViewMediator { * Handle message sent by {@link #showLocked}. * @see #SHOW */ - private void handleShow() { + private void handleShow(Bundle options) { synchronized (KeyguardViewMediator.this) { if (DEBUG) Log.d(TAG, "handleShow"); if (!mSystemReady) return; - mKeyguardViewManager.show(); + mKeyguardViewManager.show(options); mShowing = true; updateActivityLockScreenState(); adjustStatusBarLocked(); @@ -1291,13 +1296,13 @@ public class KeyguardViewMediator { } /** - * Handle message sent by {@link #resetStateLocked(boolean)} + * Handle message sent by {@link #resetStateLocked(Bundle)} * @see #RESET */ - private void handleReset(boolean userSwitched) { + private void handleReset(Bundle options) { synchronized (KeyguardViewMediator.this) { if (DEBUG) Log.d(TAG, "handleReset"); - mKeyguardViewManager.reset(userSwitched); + mKeyguardViewManager.reset(options); } } diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java index ce75e350bbfa..e7cd2791a498 100755 --- a/services/java/com/android/server/BluetoothManagerService.java +++ b/services/java/com/android/server/BluetoothManagerService.java @@ -481,7 +481,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); Intent i = new Intent(IBluetooth.class.getName()); if (!mContext.bindService(i, mConnection, - Context.BIND_AUTO_CREATE)) { + Context.BIND_AUTO_CREATE, UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "fail to bind to: " + IBluetooth.class.getName()); } @@ -717,7 +717,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); mConnection.setGetNameAddressOnly(false); Intent i = new Intent(IBluetooth.class.getName()); - if (!mContext.bindService(i, mConnection,Context.BIND_AUTO_CREATE)) { + if (!mContext.bindService(i, mConnection, Context.BIND_AUTO_CREATE, + UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "Fail to bind to: " + IBluetooth.class.getName()); } diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/java/com/android/server/DevicePolicyManagerService.java index b2de9632f6dd..a5e26a873e8c 100644 --- a/services/java/com/android/server/DevicePolicyManagerService.java +++ b/services/java/com/android/server/DevicePolicyManagerService.java @@ -46,6 +46,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.os.Binder; +import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.IBinder; @@ -1832,7 +1833,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { getIPowerManager().goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN); // Ensure the device is locked - getWindowManager().lockNow(); + getWindowManager().lockNow(null); } catch (RemoteException e) { } finally { Binder.restoreCallingIdentity(ident); diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java index 3cea295aeb5c..0087b57456d2 100644 --- a/services/java/com/android/server/LocationManagerService.java +++ b/services/java/com/android/server/LocationManagerService.java @@ -325,6 +325,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run * @param userId the new active user's UserId */ private void switchUser(int userId) { + mBlacklist.switchUser(userId); //Log.d("LocationManagerService", "switchUser(" + mCurrentUserId + " -> " + userId + ")"); // TODO: remove this synchronized (mLock) { // TODO: inform previous user's Receivers that they will no longer receive updates @@ -639,7 +640,27 @@ public class LocationManagerService extends ILocationManager.Stub implements Run == PackageManager.PERMISSION_GRANTED) || (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED); + } else { + // mock providers + LocationProviderInterface lp = mMockProviders.get(provider); + if (lp != null) { + ProviderProperties properties = lp.getProperties(); + if (properties != null) { + if (properties.mRequiresSatellite) { + // provider requiring satellites require FINE permission + return mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED; + } else if (properties.mRequiresNetwork || properties.mRequiresCell) { + // provider requiring network and or cell require COARSE or FINE + return (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) || + (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED); + } + } + } } + return false; } diff --git a/services/java/com/android/server/TextServicesManagerService.java b/services/java/com/android/server/TextServicesManagerService.java index c74dd0038c5f..d0d84282a556 100644 --- a/services/java/com/android/server/TextServicesManagerService.java +++ b/services/java/com/android/server/TextServicesManagerService.java @@ -25,17 +25,25 @@ import com.android.internal.textservice.ITextServicesSessionListener; import org.xmlpull.v1.XmlPullParserException; +import android.app.ActivityManagerNative; +import android.app.AppGlobals; +import android.app.IUserSwitchObserver; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; +import android.os.IRemoteCallback; +import android.os.Process; import android.os.RemoteException; +import android.os.UserHandle; import android.provider.Settings; import android.service.textservice.SpellCheckerService; import android.text.TextUtils; @@ -66,6 +74,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { private final ArrayList<SpellCheckerInfo> mSpellCheckerList = new ArrayList<SpellCheckerInfo>(); private final HashMap<String, SpellCheckerBindGroup> mSpellCheckerBindGroups = new HashMap<String, SpellCheckerBindGroup>(); + private final TextServicesSettings mSettings; public void systemReady() { if (!mSystemReady) { @@ -76,11 +85,43 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { public TextServicesManagerService(Context context) { mSystemReady = false; mContext = context; + int userId = UserHandle.USER_OWNER; + try { + ActivityManagerNative.getDefault().registerUserSwitchObserver( + new IUserSwitchObserver.Stub() { + @Override + public void onUserSwitching(int newUserId, IRemoteCallback reply) { + synchronized(mSpellCheckerMap) { + switchUserLocked(newUserId); + } + if (reply != null) { + try { + reply.sendResult(null); + } catch (RemoteException e) { + } + } + } + + @Override + public void onUserSwitchComplete(int newUserId) throws RemoteException { + } + }); + userId = ActivityManagerNative.getDefault().getCurrentUser().id; + } catch (RemoteException e) { + Slog.w(TAG, "Couldn't get current user ID; guessing it's 0", e); + } mMonitor = new TextServicesMonitor(); mMonitor.register(context, null, true); - synchronized (mSpellCheckerMap) { - buildSpellCheckerMapLocked(context, mSpellCheckerList, mSpellCheckerMap); - } + mSettings = new TextServicesSettings(context.getContentResolver(), userId); + + // "switchUserLocked" initializes the states for the foreground user + switchUserLocked(userId); + } + + private void switchUserLocked(int userId) { + mSettings.setCurrentUserId(userId); + unbindServiceLocked(); + buildSpellCheckerMapLocked(mContext, mSpellCheckerList, mSpellCheckerMap, mSettings); SpellCheckerInfo sci = getCurrentSpellChecker(null); if (sci == null) { sci = findAvailSpellCheckerLocked(null, null); @@ -94,10 +135,23 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } private class TextServicesMonitor extends PackageMonitor { + private boolean isChangingPackagesOfCurrentUser() { + final int userId = getChangingUserId(); + final boolean retval = userId == mSettings.getCurrentUserId(); + if (DBG) { + Slog.d(TAG, "--- ignore this call back from a background user: " + userId); + } + return retval; + } + @Override public void onSomePackagesChanged() { + if (!isChangingPackagesOfCurrentUser()) { + return; + } synchronized (mSpellCheckerMap) { - buildSpellCheckerMapLocked(mContext, mSpellCheckerList, mSpellCheckerMap); + buildSpellCheckerMapLocked( + mContext, mSpellCheckerList, mSpellCheckerMap, mSettings); // TODO: Update for each locale SpellCheckerInfo sci = getCurrentSpellChecker(null); if (sci == null) return; @@ -117,12 +171,14 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } private static void buildSpellCheckerMapLocked(Context context, - ArrayList<SpellCheckerInfo> list, HashMap<String, SpellCheckerInfo> map) { + ArrayList<SpellCheckerInfo> list, HashMap<String, SpellCheckerInfo> map, + TextServicesSettings settings) { list.clear(); map.clear(); final PackageManager pm = context.getPackageManager(); - List<ResolveInfo> services = pm.queryIntentServices( - new Intent(SpellCheckerService.SERVICE_INTERFACE), PackageManager.GET_META_DATA); + final List<ResolveInfo> services = pm.queryIntentServicesAsUser( + new Intent(SpellCheckerService.SERVICE_INTERFACE), PackageManager.GET_META_DATA, + settings.getCurrentUserId()); final int N = services.size(); for (int i = 0; i < N; ++i) { final ResolveInfo ri = services.get(i); @@ -155,6 +211,53 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } } + // --------------------------------------------------------------------------------------- + // Check whether or not this is a valid IPC. Assumes an IPC is valid when either + // 1) it comes from the system process + // 2) the calling process' user id is identical to the current user id TSMS thinks. + private boolean calledFromValidUser() { + final int uid = Binder.getCallingUid(); + final int userId = UserHandle.getUserId(uid); + if (DBG) { + Slog.d(TAG, "--- calledFromForegroundUserOrSystemProcess ? " + + "calling uid = " + uid + " system uid = " + Process.SYSTEM_UID + + " calling userId = " + userId + ", foreground user id = " + + mSettings.getCurrentUserId()); + try { + final String[] packageNames = AppGlobals.getPackageManager().getPackagesForUid(uid); + for (int i = 0; i < packageNames.length; ++i) { + if (DBG) { + Slog.d(TAG, "--- process name for "+ uid + " = " + packageNames[i]); + } + } + } catch (RemoteException e) { + } + } + + if (uid == Process.SYSTEM_UID || userId == mSettings.getCurrentUserId()) { + return true; + } else { + Slog.w(TAG, "--- IPC called from background users. Ignore. \n" + getStackTrace()); + return false; + } + } + + private boolean bindCurrentSpellCheckerService( + Intent service, ServiceConnection conn, int flags) { + if (service == null || conn == null) { + Slog.e(TAG, "--- bind failed: service = " + service + ", conn = " + conn); + return false; + } + return mContext.bindService(service, conn, flags, mSettings.getCurrentUserId()); + } + + private void unbindServiceLocked() { + for (SpellCheckerBindGroup scbg : mSpellCheckerBindGroups.values()) { + scbg.removeAll(); + } + mSpellCheckerBindGroups.clear(); + } + // TODO: find an appropriate spell checker for specified locale private SpellCheckerInfo findAvailSpellCheckerLocked(String locale, String prefPackage) { final int spellCheckersCount = mSpellCheckerList.size(); @@ -183,10 +286,12 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { // checker is saved. @Override public SpellCheckerInfo getCurrentSpellChecker(String locale) { + // TODO: Make this work even for non-current users? + if (!calledFromValidUser()) { + return null; + } synchronized (mSpellCheckerMap) { - final String curSpellCheckerId = - Settings.Secure.getString(mContext.getContentResolver(), - Settings.Secure.SELECTED_SPELL_CHECKER); + final String curSpellCheckerId = mSettings.getSelectedSpellChecker(); if (DBG) { Slog.w(TAG, "getCurrentSpellChecker: " + curSpellCheckerId); } @@ -202,10 +307,12 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public SpellCheckerSubtype getCurrentSpellCheckerSubtype( String locale, boolean allowImplicitlySelectedSubtype) { + // TODO: Make this work even for non-current users? + if (!calledFromValidUser()) { + return null; + } synchronized (mSpellCheckerMap) { - final String subtypeHashCodeStr = - Settings.Secure.getString(mContext.getContentResolver(), - Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE); + final String subtypeHashCodeStr = mSettings.getSelectedSpellCheckerSubtype(); if (DBG) { Slog.w(TAG, "getCurrentSpellCheckerSubtype: " + subtypeHashCodeStr); } @@ -280,6 +387,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { public void getSpellCheckerService(String sciId, String locale, ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener, Bundle bundle) { + if (!calledFromValidUser()) { + return; + } if (!mSystemReady) { return; } @@ -346,6 +456,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public boolean isSpellCheckerEnabled() { + if (!calledFromValidUser()) { + return false; + } synchronized(mSpellCheckerMap) { return isSpellCheckerEnabledLocked(); } @@ -365,7 +478,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (DBG) { Slog.w(TAG, "bind service: " + info.getId()); } - if (!mContext.bindService(serviceIntent, connection, Context.BIND_AUTO_CREATE)) { + if (!bindCurrentSpellCheckerService(serviceIntent, connection, Context.BIND_AUTO_CREATE)) { Slog.e(TAG, "Failed to get a spell checker service."); return; } @@ -376,6 +489,10 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public SpellCheckerInfo[] getEnabledSpellCheckers() { + // TODO: Make this work even for non-current users? + if (!calledFromValidUser()) { + return null; + } if (DBG) { Slog.d(TAG, "getEnabledSpellCheckers: " + mSpellCheckerList.size()); for (int i = 0; i < mSpellCheckerList.size(); ++i) { @@ -387,6 +504,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void finishSpellCheckerService(ISpellCheckerSessionListener listener) { + if (!calledFromValidUser()) { + return; + } if (DBG) { Slog.d(TAG, "FinishSpellCheckerService"); } @@ -407,6 +527,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void setCurrentSpellChecker(String locale, String sciId) { + if (!calledFromValidUser()) { + return; + } synchronized(mSpellCheckerMap) { if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.WRITE_SECURE_SETTINGS) @@ -421,6 +544,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void setCurrentSpellCheckerSubtype(String locale, int hashCode) { + if (!calledFromValidUser()) { + return; + } synchronized(mSpellCheckerMap) { if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.WRITE_SECURE_SETTINGS) @@ -435,6 +561,9 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void setSpellCheckerEnabled(boolean enabled) { + if (!calledFromValidUser()) { + return; + } synchronized(mSpellCheckerMap) { if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.WRITE_SECURE_SETTINGS) @@ -459,8 +588,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } final long ident = Binder.clearCallingIdentity(); try { - Settings.Secure.putString(mContext.getContentResolver(), - Settings.Secure.SELECTED_SPELL_CHECKER, sciId); + mSettings.putSelectedSpellChecker(sciId); setCurrentSpellCheckerSubtypeLocked(0); } finally { Binder.restoreCallingIdentity(ident); @@ -481,8 +609,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } final long ident = Binder.clearCallingIdentity(); try { - Settings.Secure.putString(mContext.getContentResolver(), - Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, String.valueOf(tempHashCode)); + mSettings.putSelectedSpellCheckerSubtype(tempHashCode); } finally { Binder.restoreCallingIdentity(ident); } @@ -494,8 +621,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } final long ident = Binder.clearCallingIdentity(); try { - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.SPELL_CHECKER_ENABLED, enabled ? 1 : 0); + mSettings.setSpellCheckerEnabled(enabled); } finally { Binder.restoreCallingIdentity(ident); } @@ -504,8 +630,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { private boolean isSpellCheckerEnabledLocked() { final long ident = Binder.clearCallingIdentity(); try { - final boolean retval = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.SPELL_CHECKER_ENABLED, 1) == 1; + final boolean retval = mSettings.isSpellCheckerEnabled(); if (DBG) { Slog.w(TAG, "getSpellCheckerEnabled: " + retval); } @@ -729,14 +854,19 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void onServiceConnected(ComponentName name, IBinder service) { synchronized(mSpellCheckerMap) { - if (DBG) { - Slog.w(TAG, "onServiceConnected: " + name); - } - ISpellCheckerService spellChecker = ISpellCheckerService.Stub.asInterface(service); - final SpellCheckerBindGroup group = mSpellCheckerBindGroups.get(mSciId); - if (group != null && this == group.mInternalConnection) { - group.onServiceConnected(spellChecker); - } + onServiceConnectedInnerLocked(name, service); + } + } + + private void onServiceConnectedInnerLocked(ComponentName name, IBinder service) { + if (DBG) { + Slog.w(TAG, "onServiceConnected: " + name); + } + final ISpellCheckerService spellChecker = + ISpellCheckerService.Stub.asInterface(service); + final SpellCheckerBindGroup group = mSpellCheckerBindGroups.get(mSciId); + if (group != null && this == group.mInternalConnection) { + group.onServiceConnected(spellChecker); } } @@ -778,4 +908,73 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { mGroup.removeListener(mScListener); } } + + private static class TextServicesSettings { + private final ContentResolver mResolver; + private int mCurrentUserId; + public TextServicesSettings(ContentResolver resolver, int userId) { + mResolver = resolver; + mCurrentUserId = userId; + } + + public void setCurrentUserId(int userId) { + if (DBG) { + Slog.d(TAG, "--- Swtich the current user from " + mCurrentUserId + " to " + + userId + ", new ime = " + getSelectedSpellChecker()); + } + // TSMS settings are kept per user, so keep track of current user + mCurrentUserId = userId; + } + + public int getCurrentUserId() { + return mCurrentUserId; + } + + public void putSelectedSpellChecker(String sciId) { + Settings.Secure.putStringForUser(mResolver, + Settings.Secure.SELECTED_SPELL_CHECKER, sciId, mCurrentUserId); + } + + public void putSelectedSpellCheckerSubtype(int hashCode) { + Settings.Secure.putStringForUser(mResolver, + Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, String.valueOf(hashCode), + mCurrentUserId); + } + + public void setSpellCheckerEnabled(boolean enabled) { + Settings.Secure.putIntForUser(mResolver, + Settings.Secure.SPELL_CHECKER_ENABLED, enabled ? 1 : 0, mCurrentUserId); + } + + public String getSelectedSpellChecker() { + return Settings.Secure.getStringForUser(mResolver, + Settings.Secure.SELECTED_SPELL_CHECKER, mCurrentUserId); + } + + public String getSelectedSpellCheckerSubtype() { + return Settings.Secure.getStringForUser(mResolver, + Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, mCurrentUserId); + } + + public boolean isSpellCheckerEnabled() { + return Settings.Secure.getIntForUser(mResolver, + Settings.Secure.SPELL_CHECKER_ENABLED, 1, mCurrentUserId) == 1; + } + } + + // ---------------------------------------------------------------------- + // Utilities for debug + private static String getStackTrace() { + final StringBuilder sb = new StringBuilder(); + try { + throw new RuntimeException(); + } catch (RuntimeException e) { + final StackTraceElement[] frames = e.getStackTrace(); + // Start at 1 because the first frame is here and we don't care about it + for (int j = 1; j < frames.length; ++j) { + sb.append(frames[j].toString() + "\n"); + } + } + return sb.toString(); + } } diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java index 4225913844c9..98f561cc8f21 100644 --- a/services/java/com/android/server/WallpaperManagerService.java +++ b/services/java/com/android/server/WallpaperManagerService.java @@ -38,6 +38,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.UserInfo; import android.content.res.Resources; import android.os.Binder; import android.os.Bundle; @@ -53,6 +54,7 @@ import android.os.SELinux; import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; +import android.os.UserManager; import android.service.wallpaper.IWallpaperConnection; import android.service.wallpaper.IWallpaperEngine; import android.service.wallpaper.IWallpaperService; @@ -511,6 +513,9 @@ class WallpaperManagerService extends IWallpaperManager.Stub { wallpaper = new WallpaperData(userId); mWallpaperMap.put(userId, wallpaper); loadSettingsLocked(userId); + } + // Not started watching yet, in case wallpaper data was loaded for other reasons. + if (wallpaper.wallpaperObserver == null) { wallpaper.wallpaperObserver = new WallpaperObserver(wallpaper); wallpaper.wallpaperObserver.startWatching(); } @@ -580,9 +585,21 @@ class WallpaperManagerService extends IWallpaperManager.Stub { public boolean hasNamedWallpaper(String name) { synchronized (mLock) { - for (int i=0; i<mWallpaperMap.size(); i++) { - WallpaperData wd = mWallpaperMap.valueAt(i); - if (name.equals(wd.name)) { + List<UserInfo> users; + long ident = Binder.clearCallingIdentity(); + try { + users = ((UserManager) mContext.getSystemService(Context.USER_SERVICE)).getUsers(); + } finally { + Binder.restoreCallingIdentity(ident); + } + for (UserInfo user: users) { + WallpaperData wd = mWallpaperMap.get(user.id); + if (wd == null) { + // User hasn't started yet, so load her settings to peek at the wallpaper + loadSettingsLocked(user.id); + wd = mWallpaperMap.get(user.id); + } + if (wd != null && name.equals(wd.name)) { return true; } } diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 3ef67676b812..d91edcddfac1 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -21,6 +21,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import com.android.internal.R; import com.android.internal.os.BatteryStatsImpl; import com.android.internal.os.ProcessStats; +import com.android.internal.widget.LockPatternUtils; import com.android.server.AttributeCache; import com.android.server.IntentResolver; import com.android.server.ProcessMap; @@ -14102,7 +14103,6 @@ public final class ActivityManagerService extends ActivityManagerNative return false; } - mWindowManager.lockNow(); mWindowManager.startFreezingScreen(R.anim.screen_user_exit, R.anim.screen_user_enter); @@ -14121,6 +14121,10 @@ public final class ActivityManagerService extends ActivityManagerNative mWindowManager.setCurrentUser(userId); + // Once the internal notion of the active user has switched, we lock the device + // with the option to show the user switcher on the keyguard. + mWindowManager.lockNow(LockPatternUtils.USER_SWITCH_LOCK_OPTIONS); + final UserStartedState uss = mStartedUsers.get(userId); mHandler.removeMessages(REPORT_USER_SWITCH_MSG); diff --git a/services/java/com/android/server/connectivity/Tethering.java b/services/java/com/android/server/connectivity/Tethering.java index b38d617b5d26..e4a7ead47171 100644 --- a/services/java/com/android/server/connectivity/Tethering.java +++ b/services/java/com/android/server/connectivity/Tethering.java @@ -454,7 +454,8 @@ public class Tethering extends INetworkManagementEventObserver.Stub { if (mTetheredNotification.icon == icon) { return; } - notificationManager.cancel(mTetheredNotification.icon); + notificationManager.cancelAsUser(null, mTetheredNotification.icon, + UserHandle.ALL); } Intent intent = new Intent(); diff --git a/services/java/com/android/server/dreams/DreamController.java b/services/java/com/android/server/dreams/DreamController.java index 6db495a5964a..bfb60bbe8f55 100644 --- a/services/java/com/android/server/dreams/DreamController.java +++ b/services/java/com/android/server/dreams/DreamController.java @@ -132,8 +132,15 @@ final class DreamController { } if (oldDream.mService != null) { - // TODO: It would be nice to tell the dream that it's being stopped so that - // it can shut down nicely before we yank its window token out from under it. + // Tell the dream that it's being stopped so that + // it can shut down nicely before we yank its window token out from + // under it. + try { + oldDream.mService.detach(); + } catch (RemoteException ex) { + // we don't care; this thing is on the way out + } + try { oldDream.mService.asBinder().unlinkToDeath(oldDream, 0); } catch (NoSuchElementException ex) { diff --git a/services/java/com/android/server/location/LocationBlacklist.java b/services/java/com/android/server/location/LocationBlacklist.java index 6ad1a92e5941..2437a37b1d3e 100644 --- a/services/java/com/android/server/location/LocationBlacklist.java +++ b/services/java/com/android/server/location/LocationBlacklist.java @@ -20,6 +20,7 @@ package com.android.server.location; import android.content.Context; import android.database.ContentObserver; import android.os.Handler; +import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.util.Slog; @@ -48,6 +49,8 @@ public final class LocationBlacklist extends ContentObserver { // all fields below synchronized on mLock private String[] mWhitelist = new String[0]; private String[] mBlacklist = new String[0]; + + private int mCurrentUserId = UserHandle.USER_OWNER; public LocationBlacklist(Context context, Handler handler) { super(handler); @@ -56,20 +59,22 @@ public final class LocationBlacklist extends ContentObserver { public void init() { mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor( - BLACKLIST_CONFIG_NAME), false, this); + BLACKLIST_CONFIG_NAME), false, this, UserHandle.USER_ALL); // mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor( -// WHITELIST_CONFIG_NAME), false, this); +// WHITELIST_CONFIG_NAME), false, this, UserHandle.USER_ALL); reloadBlacklist(); } + private void reloadBlacklistLocked() { + mWhitelist = getStringArrayLocked(WHITELIST_CONFIG_NAME); + Slog.i(TAG, "whitelist: " + Arrays.toString(mWhitelist)); + mBlacklist = getStringArrayLocked(BLACKLIST_CONFIG_NAME); + Slog.i(TAG, "blacklist: " + Arrays.toString(mBlacklist)); + } + private void reloadBlacklist() { - String blacklist[] = getStringArray(BLACKLIST_CONFIG_NAME); - String whitelist[] = getStringArray(WHITELIST_CONFIG_NAME); synchronized (mLock) { - mWhitelist = whitelist; - Slog.i(TAG, "whitelist: " + Arrays.toString(mWhitelist)); - mBlacklist = blacklist; - Slog.i(TAG, "blacklist: " + Arrays.toString(mBlacklist)); + reloadBlacklistLocked(); } } @@ -78,7 +83,6 @@ public final class LocationBlacklist extends ContentObserver { * (package name matches blacklist, and does not match whitelist) */ public boolean isBlacklisted(String packageName) { - /* synchronized (mLock) { for (String black : mBlacklist) { if (packageName.startsWith(black)) { @@ -92,7 +96,6 @@ public final class LocationBlacklist extends ContentObserver { } } } - */ return false; } @@ -113,8 +116,19 @@ public final class LocationBlacklist extends ContentObserver { reloadBlacklist(); } - private String[] getStringArray(String key) { - String flatString = Settings.Secure.getString(mContext.getContentResolver(), key); + public void switchUser(int userId) { + synchronized(mLock) { + mCurrentUserId = userId; + reloadBlacklistLocked(); + } + } + + private String[] getStringArrayLocked(String key) { + String flatString; + synchronized(mLock) { + flatString = Settings.Secure.getStringForUser(mContext.getContentResolver(), key, + mCurrentUserId); + } if (flatString == null) { return new String[0]; } diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index a0326c53fbb9..4f9375a6a95c 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -78,6 +78,8 @@ public class UserManagerService extends IUserManager.Stub { private static final String USER_LIST_FILENAME = "userlist.xml"; private static final String USER_PHOTO_FILENAME = "photo.png"; + private static final int MIN_USER_ID = 10; + private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms private final Context mContext; @@ -459,6 +461,7 @@ public class UserManagerService extends IUserManager.Stub { UserInfo primary = new UserInfo(0, "Primary", null, UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY); mUsers.put(0, primary); + mNextSerialNumber = MIN_USER_ID; updateUserIdsLocked(); writeUserListLocked(); @@ -832,7 +835,7 @@ public class UserManagerService extends IUserManager.Stub { */ private int getNextAvailableIdLocked() { synchronized (mPackagesLock) { - int i = 10; + int i = MIN_USER_ID; while (i < Integer.MAX_VALUE) { if (mUsers.indexOfKey(i) < 0 && !mRemovingUserIds.contains(i)) { break; @@ -862,7 +865,7 @@ public class UserManagerService extends IUserManager.Stub { for (int i = 0; i < mUsers.size(); i++) { UserInfo user = mUsers.valueAt(i); if (user == null) continue; - pw.print(" "); pw.print(user); + pw.print(" "); pw.print(user); pw.print(" serialNo="); pw.print(user.serialNumber); if (mRemovingUserIds.contains(mUsers.keyAt(i))) pw.print(" <removing> "); if (user.partial) pw.print(" <partial>"); pw.println(); diff --git a/services/java/com/android/server/power/DisplayPowerController.java b/services/java/com/android/server/power/DisplayPowerController.java index 4f8cdde99941..b9f9df7b9b8e 100644 --- a/services/java/com/android/server/power/DisplayPowerController.java +++ b/services/java/com/android/server/power/DisplayPowerController.java @@ -117,8 +117,9 @@ final class DisplayPowerController { private static final int PROXIMITY_NEGATIVE = 0; private static final int PROXIMITY_POSITIVE = 1; - // Proximity sensor debounce delay in milliseconds. - private static final int PROXIMITY_SENSOR_DEBOUNCE_DELAY = 250; + // Proximity sensor debounce delay in milliseconds for positive or negative transitions. + private static final int PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY = 0; + private static final int PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY = 500; // Trigger proximity if distance is less than 5 cm. private static final float TYPICAL_PROXIMITY_THRESHOLD = 5.0f; @@ -196,6 +197,12 @@ final class DisplayPowerController { // May be 0 if no warm-up is required. private int mLightSensorWarmUpTimeConfig; + // True if we should animate the backlight when turning the screen on or off, which + // tends to be efficient for LCD displays but not for OLED displays. + // False if we should play the electron beam animation instead, which is better for + // OLED displays. + private boolean mElectronBeamAnimatesBacklightConfig; + // The pending power request. // Initially null until the first call to requestPowerState. // Guarded by mLock. @@ -361,6 +368,9 @@ final class DisplayPowerController { com.android.internal.R.integer.config_lightSensorWarmupTime); } + mElectronBeamAnimatesBacklightConfig = resources.getBoolean( + com.android.internal.R.bool.config_animateScreenLights); + if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) { mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); if (mProximitySensor != null) { @@ -480,7 +490,8 @@ final class DisplayPowerController { private void initialize() { final Executor executor = AsyncTask.THREAD_POOL_EXECUTOR; Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); - mPowerState = new DisplayPowerState(new ElectronBeam(display), + mPowerState = new DisplayPowerState( + mElectronBeamAnimatesBacklightConfig ? null : new ElectronBeam(display), new PhotonicModulator(executor, mLights.getLight(LightsService.LIGHT_ID_BACKLIGHT), mSuspendBlocker)); @@ -562,6 +573,7 @@ final class DisplayPowerController { if (!mScreenOffBecauseOfProximity && mProximity == PROXIMITY_POSITIVE) { mScreenOffBecauseOfProximity = true; + sendOnProximityPositive(); setScreenOn(false); } } else if (mWaitingForNegativeProximity @@ -734,8 +746,13 @@ final class DisplayPowerController { // Only accept a proximity sensor reading if it remains // stable for the entire debounce delay. mHandler.removeMessages(MSG_PROXIMITY_SENSOR_DEBOUNCED); - mPendingProximity = positive ? PROXIMITY_POSITIVE : PROXIMITY_NEGATIVE; - mPendingProximityDebounceTime = time + PROXIMITY_SENSOR_DEBOUNCE_DELAY; + if (positive) { + mPendingProximity = PROXIMITY_POSITIVE; + mPendingProximityDebounceTime = time + PROXIMITY_SENSOR_POSITIVE_DEBOUNCE_DELAY; + } else { + mPendingProximity = PROXIMITY_NEGATIVE; + mPendingProximityDebounceTime = time + PROXIMITY_SENSOR_NEGATIVE_DEBOUNCE_DELAY; + } debounceProximitySensor(); } @@ -973,6 +990,17 @@ final class DisplayPowerController { } }; + private void sendOnProximityPositive() { + mCallbackHandler.post(mOnProximityPositiveRunnable); + } + + private final Runnable mOnProximityPositiveRunnable = new Runnable() { + @Override + public void run() { + mCallbacks.onProximityPositive(); + } + }; + private void sendOnProximityNegative() { mCallbackHandler.post(mOnProximityNegativeRunnable); } @@ -1090,6 +1118,7 @@ final class DisplayPowerController { */ public interface Callbacks { void onStateChanged(); + void onProximityPositive(); void onProximityNegative(); } diff --git a/services/java/com/android/server/power/DisplayPowerState.java b/services/java/com/android/server/power/DisplayPowerState.java index 1bd781144189..dba45b39dbb1 100644 --- a/services/java/com/android/server/power/DisplayPowerState.java +++ b/services/java/com/android/server/power/DisplayPowerState.java @@ -50,7 +50,7 @@ final class DisplayPowerState { private static final int DIRTY_BRIGHTNESS = 1 << 2; private final Choreographer mChoreographer; - private final ElectronBeam mElectronBeam; + private final ElectronBeam mElectronBeam; // may be null if only animating backlights private final PhotonicModulator mScreenBrightnessModulator; private int mDirty; @@ -134,16 +134,22 @@ final class DisplayPowerState { * @return True if the electron beam was prepared. */ public boolean prepareElectronBeam(boolean warmUp) { - boolean success = mElectronBeam.prepare(warmUp); - invalidate(DIRTY_ELECTRON_BEAM); - return success; + if (mElectronBeam != null) { + boolean success = mElectronBeam.prepare(warmUp); + invalidate(DIRTY_ELECTRON_BEAM); + return success; + } else { + return true; + } } /** * Dismisses the electron beam surface. */ public void dismissElectronBeam() { - mElectronBeam.dismiss(); + if (mElectronBeam != null) { + mElectronBeam.dismiss(); + } } /** @@ -224,7 +230,9 @@ final class DisplayPowerState { pw.println(" mScreenBrightness=" + mScreenBrightness); pw.println(" mElectronBeamLevel=" + mElectronBeamLevel); - mElectronBeam.dump(pw); + if (mElectronBeam != null) { + mElectronBeam.dump(pw); + } } private void invalidate(int dirty) { @@ -243,7 +251,7 @@ final class DisplayPowerState { PowerManagerService.nativeSetScreenState(false); } - if ((mDirty & DIRTY_ELECTRON_BEAM) != 0) { + if ((mDirty & DIRTY_ELECTRON_BEAM) != 0 && mElectronBeam != null) { mElectronBeam.draw(mElectronBeamLevel); } diff --git a/services/java/com/android/server/power/Notifier.java b/services/java/com/android/server/power/Notifier.java index ce1e14702921..304212485945 100644 --- a/services/java/com/android/server/power/Notifier.java +++ b/services/java/com/android/server/power/Notifier.java @@ -39,17 +39,20 @@ import android.view.WindowManagerPolicy.ScreenOnListener; /** * Sends broadcasts about important power state changes. - * + * <p> * This methods of this class may be called by the power manager service while * its lock is being held. Internally it takes care of sending broadcasts to * notify other components of the system or applications asynchronously. - * + * </p><p> * The notifier is designed to collapse unnecessary broadcasts when it is not * possible for the system to have observed an intermediate state. - * - * For example, if the device wakes up, goes to sleep and wakes up again immediately - * before the go to sleep broadcast has been sent, then no broadcast will be - * sent about the system going to sleep and waking up. + * </p><p> + * For example, if the device wakes up, goes to sleep, wakes up again and goes to + * sleep again before the wake up notification is sent, then the system will + * be told about only one wake up and sleep. However, we always notify the + * fact that at least one transition occurred. It is especially important to + * tell the system when we go to sleep so that it can lock the keyguard if needed. + * </p> */ final class Notifier { private static final String TAG = "PowerManagerNotifier"; @@ -79,6 +82,10 @@ final class Notifier { private int mActualPowerState; private int mLastGoToSleepReason; + // True if there is a pending transition that needs to be reported. + private boolean mPendingWakeUpBroadcast; + private boolean mPendingGoToSleepBroadcast; + // The currently broadcasted power state. This reflects what other parts of the // system have observed. private int mBroadcastedPowerState; @@ -219,6 +226,7 @@ final class Notifier { synchronized (mLock) { if (mActualPowerState != POWER_STATE_AWAKE) { mActualPowerState = POWER_STATE_AWAKE; + mPendingWakeUpBroadcast = true; updatePendingBroadcastLocked(); } } @@ -264,6 +272,7 @@ final class Notifier { synchronized (mLock) { if (mActualPowerState != POWER_STATE_ASLEEP) { mActualPowerState = POWER_STATE_ASLEEP; + mPendingGoToSleepBroadcast = true; if (mUserActivityPending) { mUserActivityPending = false; mHandler.removeMessages(MSG_USER_ACTIVITY); @@ -300,7 +309,8 @@ final class Notifier { private void updatePendingBroadcastLocked() { if (!mBroadcastInProgress && mActualPowerState != POWER_STATE_UNKNOWN - && mActualPowerState != mBroadcastedPowerState) { + && (mPendingWakeUpBroadcast || mPendingGoToSleepBroadcast + || mActualPowerState != mBroadcastedPowerState)) { mBroadcastInProgress = true; mSuspendBlocker.acquire(); Message msg = mHandler.obtainMessage(MSG_BROADCAST); @@ -309,6 +319,11 @@ final class Notifier { } } + private void finishPendingBroadcastLocked() { + mBroadcastInProgress = false; + mSuspendBlocker.release(); + } + private void sendUserActivity() { synchronized (mLock) { if (!mUserActivityPending) { @@ -324,18 +339,35 @@ final class Notifier { final int powerState; final int goToSleepReason; synchronized (mLock) { - if (mActualPowerState == POWER_STATE_UNKNOWN - || mActualPowerState == mBroadcastedPowerState) { - mBroadcastInProgress = false; - mSuspendBlocker.release(); - return; + if (mBroadcastedPowerState == POWER_STATE_UNKNOWN) { + // Broadcasted power state is unknown. Send wake up. + mPendingWakeUpBroadcast = false; + mBroadcastedPowerState = POWER_STATE_AWAKE; + } else if (mBroadcastedPowerState == POWER_STATE_AWAKE) { + // Broadcasted power state is awake. Send asleep if needed. + if (mPendingWakeUpBroadcast || mPendingGoToSleepBroadcast + || mActualPowerState == POWER_STATE_ASLEEP) { + mPendingGoToSleepBroadcast = false; + mBroadcastedPowerState = POWER_STATE_ASLEEP; + } else { + finishPendingBroadcastLocked(); + return; + } + } else { + // Broadcasted power state is asleep. Send awake if needed. + if (mPendingWakeUpBroadcast || mPendingGoToSleepBroadcast + || mActualPowerState == POWER_STATE_AWAKE) { + mPendingWakeUpBroadcast = false; + mBroadcastedPowerState = POWER_STATE_AWAKE; + } else { + finishPendingBroadcastLocked(); + return; + } } - powerState = mActualPowerState; - goToSleepReason = mLastGoToSleepReason; - - mBroadcastedPowerState = powerState; mBroadcastStartTime = SystemClock.uptimeMillis(); + powerState = mBroadcastedPowerState; + goToSleepReason = mLastGoToSleepReason; } EventLog.writeEvent(EventLogTags.POWER_SCREEN_BROADCAST_SEND, 1); diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/java/com/android/server/power/PowerManagerService.java index 9a01022873f1..ae7b2d1ffb12 100644 --- a/services/java/com/android/server/power/PowerManagerService.java +++ b/services/java/com/android/server/power/PowerManagerService.java @@ -98,6 +98,8 @@ public final class PowerManagerService extends IPowerManager.Stub private static final int DIRTY_STAY_ON = 1 << 7; // Dirty bit: battery state changed private static final int DIRTY_BATTERY_STATE = 1 << 8; + // Dirty bit: proximity state changed + private static final int DIRTY_PROXIMITY_POSITIVE = 1 << 9; // Wakefulness: The device is asleep and can only be awoken by a call to wakeUp(). // The screen should be off or in the process of being turned off by the display controller. @@ -258,6 +260,9 @@ public final class PowerManagerService extends IPowerManager.Stub // True if the device should stay on. private boolean mStayOn; + // True if the proximity sensor reads a positive result. + private boolean mProximityPositive; + // Screen brightness setting limits. private int mScreenBrightnessSettingMinimum; private int mScreenBrightnessSettingMaximum; @@ -823,9 +828,9 @@ public final class PowerManagerService extends IPowerManager.Stub switch (mWakefulness) { case WAKEFULNESS_ASLEEP: Slog.i(TAG, "Waking up from sleep..."); + sendPendingNotificationsLocked(); mNotifier.onWakeUpStarted(); mSendWakeUpFinishedNotificationWhenReady = true; - mSendGoToSleepFinishedNotificationWhenReady = false; break; case WAKEFULNESS_DREAMING: Slog.i(TAG, "Waking up from dream..."); @@ -896,12 +901,13 @@ public final class PowerManagerService extends IPowerManager.Stub break; } + sendPendingNotificationsLocked(); + mNotifier.onGoToSleepStarted(reason); + mSendGoToSleepFinishedNotificationWhenReady = true; + mLastSleepTime = eventTime; mDirty |= DIRTY_WAKEFULNESS; mWakefulness = WAKEFULNESS_ASLEEP; - mNotifier.onGoToSleepStarted(reason); - mSendGoToSleepFinishedNotificationWhenReady = true; - mSendWakeUpFinishedNotificationWhenReady = false; // Report the number of wake locks that will be cleared by going to sleep. int numWakeLocksCleared = 0; @@ -1000,7 +1006,9 @@ public final class PowerManagerService extends IPowerManager.Stub updateDisplayPowerStateLocked(dirtyPhase2); // Phase 3: Send notifications, if needed. - sendPendingNotificationsLocked(); + if (mDisplayReady) { + sendPendingNotificationsLocked(); + } // Phase 4: Update suspend blocker. // Because we might release the last suspend blocker here, we need to make sure @@ -1009,15 +1017,13 @@ public final class PowerManagerService extends IPowerManager.Stub } private void sendPendingNotificationsLocked() { - if (mDisplayReady) { - if (mSendWakeUpFinishedNotificationWhenReady) { - mSendWakeUpFinishedNotificationWhenReady = false; - mNotifier.onWakeUpFinished(); - } - if (mSendGoToSleepFinishedNotificationWhenReady) { - mSendGoToSleepFinishedNotificationWhenReady = false; - mNotifier.onGoToSleepFinished(); - } + if (mSendWakeUpFinishedNotificationWhenReady) { + mSendWakeUpFinishedNotificationWhenReady = false; + mNotifier.onWakeUpFinished(); + } + if (mSendGoToSleepFinishedNotificationWhenReady) { + mSendGoToSleepFinishedNotificationWhenReady = false; + mNotifier.onGoToSleepFinished(); } } @@ -1101,12 +1107,17 @@ public final class PowerManagerService extends IPowerManager.Stub */ private void updateStayOnLocked(int dirty) { if ((dirty & (DIRTY_BATTERY_STATE | DIRTY_SETTINGS)) != 0) { + final boolean wasStayOn = mStayOn; if (mStayOnWhilePluggedInSetting != 0 && !isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) { mStayOn = mBatteryService.isPowered(mStayOnWhilePluggedInSetting); } else { mStayOn = false; } + + if (mStayOn != wasStayOn) { + mDirty |= DIRTY_STAY_ON; + } } } @@ -1265,7 +1276,7 @@ public final class PowerManagerService extends IPowerManager.Stub private boolean updateWakefulnessLocked(int dirty) { boolean changed = false; if ((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY | DIRTY_BOOT_COMPLETED - | DIRTY_WAKEFULNESS | DIRTY_STAY_ON)) != 0) { + | DIRTY_WAKEFULNESS | DIRTY_STAY_ON | DIRTY_PROXIMITY_POSITIVE)) != 0) { if (mWakefulness == WAKEFULNESS_AWAKE && isItBedTimeYetLocked()) { if (DEBUG_SPEW) { Slog.d(TAG, "updateWakefulnessLocked: Bed time..."); @@ -1288,17 +1299,17 @@ public final class PowerManagerService extends IPowerManager.Stub * to being fully awake or else go to sleep for good. */ private boolean isItBedTimeYetLocked() { - return mBootCompleted && !isScreenBeingKeptOnLocked(); + return mBootCompleted && !isBeingKeptAwakeLocked(); } /** - * Returns true if the screen is being kept on by a wake lock, user activity + * Returns true if the device is being kept awake by a wake lock, user activity * or the stay on while powered setting. */ - private boolean isScreenBeingKeptOnLocked() { + private boolean isBeingKeptAwakeLocked() { return mStayOn - || (mWakeLockSummary & (WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM - | WAKE_LOCK_PROXIMITY_SCREEN_OFF)) != 0 + || mProximityPositive + || (mWakeLockSummary & (WAKE_LOCK_SCREEN_BRIGHT | WAKE_LOCK_SCREEN_DIM)) != 0 || (mUserActivitySummary & (USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) != 0; } @@ -1314,6 +1325,7 @@ public final class PowerManagerService extends IPowerManager.Stub | DIRTY_SETTINGS | DIRTY_IS_POWERED | DIRTY_STAY_ON + | DIRTY_PROXIMITY_POSITIVE | DIRTY_BATTERY_STATE)) != 0) { scheduleSandmanLocked(); } @@ -1401,7 +1413,7 @@ public final class PowerManagerService extends IPowerManager.Stub && mDreamsEnabledSetting && mDisplayPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF && mBootCompleted - && (mIsPowered || isScreenBeingKeptOnLocked()); + && (mIsPowered || isBeingKeptAwakeLocked()); } /** @@ -1528,7 +1540,16 @@ public final class PowerManagerService extends IPowerManager.Stub } @Override + public void onProximityPositive() { + mProximityPositive = true; + mDirty |= DIRTY_PROXIMITY_POSITIVE; + updatePowerStateLocked(); + } + + @Override public void onProximityNegative() { + mProximityPositive = false; + mDirty |= DIRTY_PROXIMITY_POSITIVE; userActivityNoUpdateLocked(SystemClock.uptimeMillis(), PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID); updatePowerStateLocked(); @@ -1986,6 +2007,7 @@ public final class PowerManagerService extends IPowerManager.Stub pw.println(" mIsPowered=" + mIsPowered); pw.println(" mPlugType=" + mPlugType); pw.println(" mStayOn=" + mStayOn); + pw.println(" mProximityPositive=" + mProximityPositive); pw.println(" mBootCompleted=" + mBootCompleted); pw.println(" mSystemReady=" + mSystemReady); pw.println(" mWakeLockSummary=0x" + Integer.toHexString(mWakeLockSummary)); diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 180579dc025c..8cc3d61fe9a4 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -10155,8 +10155,8 @@ public class WindowManagerService extends IWindowManager.Stub return mPolicy.hasNavigationBar(); } - public void lockNow() { - mPolicy.lockNow(); + public void lockNow(Bundle options) { + mPolicy.lockNow(options); } void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) { diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java index b8d21f351c60..dbd52a06d56c 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java @@ -22,6 +22,7 @@ import com.android.internal.view.IInputMethodClient; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; +import android.os.Bundle; import android.os.IBinder; import android.os.IRemoteCallback; import android.os.RemoteException; @@ -438,7 +439,7 @@ public class BridgeWindowManager implements IWindowManager { } @Override - public void lockNow() { + public void lockNow(Bundle options) { // TODO Auto-generated method stub } |