diff options
205 files changed, 2145 insertions, 1114 deletions
@@ -73375,8 +73375,6 @@ </parameter> <parameter name="event" type="android.drm.DrmEvent"> </parameter> -<parameter name="attributes" type="java.util.HashMap<java.lang.String, java.lang.Object>"> -</parameter> </method> </interface> <interface name="DrmManagerClient.OnInfoListener" diff --git a/api/current.xml b/api/current.xml index 7eef62f..b8b11fe 100644 --- a/api/current.xml +++ b/api/current.xml @@ -72665,6 +72665,22 @@ <parameter name="message" type="java.lang.String"> </parameter> </constructor> +<constructor name="DrmErrorEvent" + type="android.drm.DrmErrorEvent" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="uniqueId" type="int"> +</parameter> +<parameter name="type" type="int"> +</parameter> +<parameter name="message" type="java.lang.String"> +</parameter> +<parameter name="attributes" type="java.util.HashMap<java.lang.String, java.lang.Object>"> +</parameter> +</constructor> <field name="TYPE_ACQUIRE_DRM_INFO_FAILED" type="int" transient="false" @@ -72775,7 +72791,36 @@ </parameter> <parameter name="message" type="java.lang.String"> </parameter> +<parameter name="attributes" type="java.util.HashMap<java.lang.String, java.lang.Object>"> +</parameter> +</constructor> +<constructor name="DrmEvent" + type="android.drm.DrmEvent" + static="false" + final="false" + deprecated="not deprecated" + visibility="protected" +> +<parameter name="uniqueId" type="int"> +</parameter> +<parameter name="type" type="int"> +</parameter> +<parameter name="message" type="java.lang.String"> +</parameter> </constructor> +<method name="getAttribute" + return="java.lang.Object" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="key" type="java.lang.String"> +</parameter> +</method> <method name="getMessage" return="java.lang.String" abstract="false" @@ -72809,6 +72854,17 @@ visibility="public" > </method> +<field name="DRM_INFO_OBJECT" + type="java.lang.String" + transient="false" + volatile="false" + value=""drm_info_object"" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> <field name="DRM_INFO_STATUS_OBJECT" type="java.lang.String" transient="false" @@ -72985,6 +73041,22 @@ <parameter name="message" type="java.lang.String"> </parameter> </constructor> +<constructor name="DrmInfoEvent" + type="android.drm.DrmInfoEvent" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +<parameter name="uniqueId" type="int"> +</parameter> +<parameter name="type" type="int"> +</parameter> +<parameter name="message" type="java.lang.String"> +</parameter> +<parameter name="attributes" type="java.util.HashMap<java.lang.String, java.lang.Object>"> +</parameter> +</constructor> <field name="TYPE_ACCOUNT_ALREADY_REGISTERED" type="int" transient="false" @@ -73767,8 +73839,6 @@ </parameter> <parameter name="event" type="android.drm.DrmEvent"> </parameter> -<parameter name="attributes" type="java.util.HashMap<java.lang.String, java.lang.Object>"> -</parameter> </method> </interface> <interface name="DrmManagerClient.OnInfoListener" @@ -143784,6 +143854,17 @@ visibility="public" > </field> +<field name="HONEYCOMB_MR1" + type="int" + transient="false" + volatile="false" + value="12" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> </class> <class name="Bundle" extends="java.lang.Object" @@ -243594,7 +243675,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > </method> @@ -267075,7 +267156,7 @@ deprecated="not deprecated" visibility="public" > -<parameter name="t" type="T"> +<parameter name="arg0" type="T"> </parameter> </method> </interface> diff --git a/cmds/stagefright/sf2.cpp b/cmds/stagefright/sf2.cpp index 74649a9..c1d0803 100644 --- a/cmds/stagefright/sf2.cpp +++ b/cmds/stagefright/sf2.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include <binder/ProcessState.h> #include <media/stagefright/foundation/hexdump.h> diff --git a/cmds/stagefright/stream.cpp b/cmds/stagefright/stream.cpp index 9246a00..bb84bd1 100644 --- a/cmds/stagefright/stream.cpp +++ b/cmds/stagefright/stream.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include <binder/ProcessState.h> #include <media/IStreamSource.h> diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 8d2607a..3bb0821 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -202,12 +202,12 @@ public class Build { public static final int GINGERBREAD = 9; /** - * Almost newest version of Android, version 2.3.3. + * February 2011: Android 2.3.3. */ public static final int GINGERBREAD_MR1 = 10; /** - * Newest version of Android, version 3.0. + * February 2011: Android 3.0. * * <p>Applications targeting this or a later release will get these * new changes in behavior:</p> @@ -225,6 +225,11 @@ public class Build { * </ul> */ public static final int HONEYCOMB = 11; + + /** + * Newest version of Android, version 3.1. + */ + public static final int HONEYCOMB_MR1 = 12; } /** The type of build, like "user" or "eng". */ diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java index 5521e92..d638e70 100644 --- a/core/java/android/view/ScaleGestureDetector.java +++ b/core/java/android/view/ScaleGestureDetector.java @@ -156,6 +156,7 @@ public class ScaleGestureDetector { private float mRightSlopEdge; private float mBottomSlopEdge; private boolean mSloppyGesture; + private boolean mInvalidGesture; // Pointer IDs currently responsible for the two fingers controlling the gesture private int mActiveId0; @@ -177,6 +178,8 @@ public class ScaleGestureDetector { reset(); // Start fresh } + if (mInvalidGesture) return false; + if (!mGestureInProgress) { switch (action) { case MotionEvent.ACTION_DOWN: { @@ -518,6 +521,15 @@ public class ScaleGestureDetector { final int currIndex0 = curr.findPointerIndex(mActiveId0); final int currIndex1 = curr.findPointerIndex(mActiveId1); + if (prevIndex0 < 0 || prevIndex1 < 0 || currIndex0 < 0 || currIndex1 < 0) { + mInvalidGesture = true; + Log.e(TAG, "Invalid MotionEvent stream detected.", new Throwable()); + if (mGestureInProgress) { + mListener.onScaleEnd(this); + } + return; + } + final float px0 = prev.getX(prevIndex0); final float py0 = prev.getY(prevIndex0); final float px1 = prev.getX(prevIndex1); @@ -556,6 +568,7 @@ public class ScaleGestureDetector { mGestureInProgress = false; mActiveId0 = -1; mActiveId1 = -1; + mInvalidGesture = false; } /** diff --git a/core/java/android/webkit/HTML5VideoFullScreen.java b/core/java/android/webkit/HTML5VideoFullScreen.java new file mode 100644 index 0000000..6be988e --- /dev/null +++ b/core/java/android/webkit/HTML5VideoFullScreen.java @@ -0,0 +1,320 @@ + +package android.webkit; + +import android.content.Context; +import android.media.MediaPlayer; +import android.media.Metadata; +import android.util.Log; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.SurfaceHolder; +import android.view.SurfaceView; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.HTML5VideoView; +import android.webkit.HTML5VideoViewProxy; +import android.widget.FrameLayout; +import android.widget.MediaController; +import android.widget.MediaController.MediaPlayerControl; + + +/** + * @hide This is only used by the browser + */ +public class HTML5VideoFullScreen extends HTML5VideoView + implements MediaPlayerControl, MediaPlayer.OnPreparedListener, + View.OnTouchListener { + + // Add this sub-class to handle the resizing when rotating screen. + private class VideoSurfaceView extends SurfaceView { + + public VideoSurfaceView(Context context) { + super(context); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = getDefaultSize(mVideoWidth, widthMeasureSpec); + int height = getDefaultSize(mVideoHeight, heightMeasureSpec); + if (mVideoWidth > 0 && mVideoHeight > 0) { + if ( mVideoWidth * height > width * mVideoHeight ) { + height = width * mVideoHeight / mVideoWidth; + } else if ( mVideoWidth * height < width * mVideoHeight ) { + width = height * mVideoWidth / mVideoHeight; + } + } + setMeasuredDimension(width, height); + } + } + + // This view will contain the video. + private VideoSurfaceView mVideoSurfaceView; + + // We need the full screen state to decide which surface to render to and + // when to create the MediaPlayer accordingly. + static final int FULLSCREEN_OFF = 0; + static final int FULLSCREEN_SURFACECREATING = 1; + static final int FULLSCREEN_SURFACECREATED = 2; + + private int mFullScreenMode; + // The Media Controller only used for full screen mode + private MediaController mMediaController; + + // SurfaceHolder for full screen + private SurfaceHolder mSurfaceHolder = null; + + // Data only for MediaController + private boolean mCanSeekBack; + private boolean mCanSeekForward; + private boolean mCanPause; + private int mCurrentBufferPercentage; + + // The progress view. + private static View mProgressView; + // The container for the progress view and video view + private static FrameLayout mLayout; + + // The video size will be ready when prepared. Used to make sure the aspect + // ratio is correct. + private int mVideoWidth; + private int mVideoHeight; + + SurfaceHolder.Callback mSHCallback = new SurfaceHolder.Callback() + { + public void surfaceChanged(SurfaceHolder holder, int format, + int w, int h) + { + if (mPlayer != null && mMediaController != null + && mCurrentState == STATE_PREPARED) { + if (mMediaController.isShowing()) { + // ensure the controller will get repositioned later + mMediaController.hide(); + } + mMediaController.show(); + } + } + + public void surfaceCreated(SurfaceHolder holder) + { + mSurfaceHolder = holder; + mFullScreenMode = FULLSCREEN_SURFACECREATED; + + prepareForFullScreen(); + } + + public void surfaceDestroyed(SurfaceHolder holder) + { + // after we return from this we can't use the surface any more + mSurfaceHolder = null; + // The current Video View will be destroy when we play a new video. + } + }; + + private SurfaceView getSurfaceView() { + return mVideoSurfaceView; + } + + HTML5VideoFullScreen(Context context, int videoLayerId, int position, + boolean autoStart) { + mVideoSurfaceView = new VideoSurfaceView(context); + mFullScreenMode = FULLSCREEN_OFF; + mVideoWidth = 0; + mVideoHeight = 0; + init(videoLayerId, position, autoStart); + } + + private void setMediaController(MediaController m) { + mMediaController = m; + attachMediaController(); + } + + private void attachMediaController() { + if (mPlayer != null && mMediaController != null) { + mMediaController.setMediaPlayer(this); + mMediaController.setAnchorView(mVideoSurfaceView); + //Will be enabled when prepared + mMediaController.setEnabled(false); + } + } + + @Override + public void decideDisplayMode() { + mPlayer.setDisplay(mSurfaceHolder); + } + + private void prepareForFullScreen() { + // So in full screen, we reset the MediaPlayer + mPlayer.reset(); + setMediaController(new MediaController(mProxy.getContext())); + + prepareDataAndDisplayMode(mProxy); + } + + + private void toggleMediaControlsVisiblity() { + if (mMediaController.isShowing()) { + mMediaController.hide(); + } else { + mMediaController.show(); + } + } + + @Override + public void onPrepared(MediaPlayer mp) { + super.onPrepared(mp); + + mVideoSurfaceView.setOnTouchListener(this); + // Get the capabilities of the player for this stream + Metadata data = mp.getMetadata(MediaPlayer.METADATA_ALL, + MediaPlayer.BYPASS_METADATA_FILTER); + if (data != null) { + mCanPause = !data.has(Metadata.PAUSE_AVAILABLE) + || data.getBoolean(Metadata.PAUSE_AVAILABLE); + mCanSeekBack = !data.has(Metadata.SEEK_BACKWARD_AVAILABLE) + || data.getBoolean(Metadata.SEEK_BACKWARD_AVAILABLE); + mCanSeekForward = !data.has(Metadata.SEEK_FORWARD_AVAILABLE) + || data.getBoolean(Metadata.SEEK_FORWARD_AVAILABLE); + } else { + mCanPause = mCanSeekBack = mCanSeekForward = true; + } + + // mMediaController status depends on the Metadata result, so put it + // after reading the MetaData + if (mMediaController != null) { + mMediaController.setEnabled(true); + // If paused , should show the controller for ever! + if (getAutostart()) + mMediaController.show(); + else + mMediaController.show(0); + } + + if (mProgressView != null) { + mProgressView.setVisibility(View.GONE); + mLayout.removeView(mProgressView); + mProgressView = null; + } + + mVideoWidth = mp.getVideoWidth(); + mVideoHeight = mp.getVideoHeight(); + // This will trigger the onMeasure to get the display size right. + mVideoSurfaceView.getHolder().setFixedSize(mVideoWidth, mVideoHeight); + } + + + private final WebChromeClient.CustomViewCallback mCallback = + new WebChromeClient.CustomViewCallback() { + public void onCustomViewHidden() { + // It listens to SurfaceHolder.Callback.SurfaceDestroyed event + // which happens when the video view is detached from its parent + // view. This happens in the WebChromeClient before this method + // is invoked. + mTimer.cancel(); + mTimer = null; + + pauseAndDispatch(mProxy); + + mLayout.removeView(getSurfaceView()); + + if (mProgressView != null) { + mLayout.removeView(mProgressView); + mProgressView = null; + } + mLayout = null; + // Re enable plugin views. + mProxy.getWebView().getViewManager().showAll(); + + mProxy = null; + } + }; + + @Override + public void enterFullScreenVideoState(int layerId, + HTML5VideoViewProxy proxy, WebView webView) { + mFullScreenMode = FULLSCREEN_SURFACECREATING; + mCurrentBufferPercentage = 0; + mPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener); + mProxy = proxy; + + mVideoSurfaceView.getHolder().addCallback(mSHCallback); + mVideoSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); + mVideoSurfaceView.setFocusable(true); + mVideoSurfaceView.setFocusableInTouchMode(true); + mVideoSurfaceView.requestFocus(); + + // Create a FrameLayout that will contain the VideoView and the + // progress view (if any). + mLayout = new FrameLayout(mProxy.getContext()); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + Gravity.CENTER); + + mLayout.addView(getSurfaceView(), layoutParams); + + mLayout.setVisibility(View.VISIBLE); + + WebChromeClient client = webView.getWebChromeClient(); + client.onShowCustomView(mLayout, mCallback); + // Plugins like Flash will draw over the video so hide + // them while we're playing. + mProxy.getWebView().getViewManager().hideAll(); + + mProgressView = client.getVideoLoadingProgressView(); + if (mProgressView != null) { + mLayout.addView(mProgressView, layoutParams); + mProgressView.setVisibility(View.VISIBLE); + } + + } + + /** + * @return true when we are in full screen mode, even the surface not fully + * created. + */ + public boolean isFullScreenMode() { + return true; + } + + // MediaController FUNCTIONS: + @Override + public boolean canPause() { + return mCanPause; + } + + @Override + public boolean canSeekBackward() { + return mCanSeekBack; + } + + @Override + public boolean canSeekForward() { + return mCanSeekForward; + } + + @Override + public int getBufferPercentage() { + if (mPlayer != null) { + return mCurrentBufferPercentage; + } + return 0; + } + + // Other listeners functions: + private MediaPlayer.OnBufferingUpdateListener mBufferingUpdateListener = + new MediaPlayer.OnBufferingUpdateListener() { + public void onBufferingUpdate(MediaPlayer mp, int percent) { + mCurrentBufferPercentage = percent; + } + }; + + @Override + public boolean onTouch(View v, MotionEvent event) { + if (mFullScreenMode >= FULLSCREEN_SURFACECREATED + && mMediaController != null) { + toggleMediaControlsVisiblity(); + } + return false; + } + +} diff --git a/core/java/android/webkit/HTML5VideoInline.java b/core/java/android/webkit/HTML5VideoInline.java new file mode 100644 index 0000000..4f042a6 --- /dev/null +++ b/core/java/android/webkit/HTML5VideoInline.java @@ -0,0 +1,84 @@ + +package android.webkit; + +import android.graphics.SurfaceTexture; +import android.media.MediaPlayer; +import android.webkit.HTML5VideoView; +import android.webkit.HTML5VideoViewProxy; +import android.opengl.GLES20; + +/** + * @hide This is only used by the browser + */ +public class HTML5VideoInline extends HTML5VideoView{ + + // Due to the fact that SurfaceTexture consume a lot of memory, we make it + // as static. m_textureNames is the texture bound with this SurfaceTexture. + private static SurfaceTexture mSurfaceTexture = null; + private static int[] mTextureNames; + + // Video control FUNCTIONS: + @Override + public void start() { + super.start(); + } + + HTML5VideoInline(int videoLayerId, int position, + boolean autoStart) { + init(videoLayerId, position, autoStart); + } + + @Override + public void decideDisplayMode() { + mPlayer.setTexture(getSurfaceTextureInstance()); + } + + // Normally called immediately after setVideoURI. But for full screen, + // this should be after surface holder created + @Override + public void prepareDataAndDisplayMode(HTML5VideoViewProxy proxy) { + super.prepareDataAndDisplayMode(proxy); + setFrameAvailableListener(proxy); + } + + // Pause the play and update the play/pause button + @Override + public void pauseAndDispatch(HTML5VideoViewProxy proxy) { + super.pauseAndDispatch(proxy); + } + + // Inline Video specific FUNCTIONS: + + @Override + public SurfaceTexture getSurfaceTexture() { + return mSurfaceTexture; + } + + @Override + public void deleteSurfaceTexture() { + mSurfaceTexture = null; + return; + } + + // SurfaceTexture is a singleton here , too + private SurfaceTexture getSurfaceTextureInstance() { + // Create the surface texture. + if (mSurfaceTexture == null) + { + mTextureNames = new int[1]; + GLES20.glGenTextures(1, mTextureNames, 0); + mSurfaceTexture = new SurfaceTexture(mTextureNames[0]); + } + return mSurfaceTexture; + } + + @Override + public int getTextureName() { + return mTextureNames[0]; + } + + private void setFrameAvailableListener(SurfaceTexture.OnFrameAvailableListener l) { + mSurfaceTexture.setOnFrameAvailableListener(l); + } + +} diff --git a/core/java/android/webkit/HTML5VideoView.java b/core/java/android/webkit/HTML5VideoView.java index 2312160..b9d55e0 100644 --- a/core/java/android/webkit/HTML5VideoView.java +++ b/core/java/android/webkit/HTML5VideoView.java @@ -4,72 +4,96 @@ package android.webkit; import android.graphics.SurfaceTexture; import android.media.MediaPlayer; import android.util.Log; +import android.view.SurfaceView; import android.webkit.HTML5VideoViewProxy; -import android.widget.MediaController; -import android.opengl.GLES20; import java.io.IOException; +import java.util.HashMap; import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; /** * @hide This is only used by the browser */ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{ - // Due to the fact that SurfaceTexture consume a lot of memory, we make it - // as static. m_textureNames is the texture bound with this SurfaceTexture. - private static SurfaceTexture mSurfaceTexture = null; - private static int[] mTextureNames; - // Only when the video is prepared, we render using SurfaceTexture. - // This in fact is used to avoid showing the obsolete content when - // switching videos. - private static boolean mReadyToUseSurfTex = false; + protected static final String LOGTAG = "HTML5VideoView"; + + protected static final String COOKIE = "Cookie"; + protected static final String HIDE_URL_LOGS = "x-hide-urls-from-log"; // For handling the seekTo before prepared, we need to know whether or not // the video is prepared. Therefore, we differentiate the state between // prepared and not prepared. // When the video is not prepared, we will have to save the seekTo time, // and use it when prepared to play. - private static final int STATE_NOTPREPARED = 0; - private static final int STATE_PREPARED = 1; - - // We only need state for handling seekTo - private int mCurrentState; + // NOTE: these values are in sync with VideoLayerAndroid.h in webkit side. + // Please keep them in sync when changed. + static final int STATE_INITIALIZED = 0; + static final int STATE_NOTPREPARED = 1; + static final int STATE_PREPARED = 2; + static final int STATE_PLAYING = 3; + protected int mCurrentState; - // Basically for calling back the OnPrepared in the proxy - private HTML5VideoViewProxy mProxy; + protected HTML5VideoViewProxy mProxy; // Save the seek time when not prepared. This can happen when switching // video besides initial load. - private int mSaveSeekTime; + protected int mSaveSeekTime; // This is used to find the VideoLayer on the native side. - private int mVideoLayerId; + protected int mVideoLayerId; // Every video will have one MediaPlayer. Given the fact we only have one // SurfaceTexture, there is only one MediaPlayer in action. Every time we // switch videos, a new instance of MediaPlayer will be created in reset(). - private MediaPlayer mPlayer; + // Switching between inline and full screen will also create a new instance. + protected MediaPlayer mPlayer; + + // This will be set up every time we create the Video View object. + // Set to true only when switching into full screen while playing + protected boolean mAutostart; + + // We need to save such info. + protected String mUri; + protected Map<String, String> mHeaders; + + // The timer for timeupate events. + // See http://www.whatwg.org/specs/web-apps/current-work/#event-media-timeupdate + protected static Timer mTimer; - private static HTML5VideoView mInstance = new HTML5VideoView(); + // The spec says the timer should fire every 250 ms or less. + private static final int TIMEUPDATE_PERIOD = 250; // ms - // Video control FUNCTIONS: + // common Video control FUNCTIONS: public void start() { if (mCurrentState == STATE_PREPARED) { mPlayer.start(); - mReadyToUseSurfTex = true; } } public void pause() { - mPlayer.pause(); + if (mCurrentState == STATE_PREPARED && mPlayer.isPlaying()) { + mPlayer.pause(); + } + if (mTimer != null) { + mTimer.purge(); + } } public int getDuration() { - return mPlayer.getDuration(); + if (mCurrentState == STATE_PREPARED) { + return mPlayer.getDuration(); + } else { + return -1; + } } public int getCurrentPosition() { - return mPlayer.getCurrentPosition(); + if (mCurrentState == STATE_PREPARED) { + return mPlayer.getCurrentPosition(); + } + return 0; } public void seekTo(int pos) { @@ -88,54 +112,51 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{ } public void stopPlayback() { - mPlayer.stop(); + if (mCurrentState == STATE_PREPARED) { + mPlayer.stop(); + } + } + + public boolean getAutostart() { + return mAutostart; } - private void reset(int videoLayerId) { + // Every time we start a new Video, we create a VideoView and a MediaPlayer + public void init(int videoLayerId, int position, boolean autoStart) { mPlayer = new MediaPlayer(); - mCurrentState = STATE_NOTPREPARED; + mCurrentState = STATE_INITIALIZED; mProxy = null; mVideoLayerId = videoLayerId; - mReadyToUseSurfTex = false; + mSaveSeekTime = position; + mAutostart = autoStart; } - public static HTML5VideoView getInstance(int videoLayerId) { - // Every time we switch between the videos, a new MediaPlayer will be - // created. Make sure we call the m_player.release() when it is done. - mInstance.reset(videoLayerId); - return mInstance; + protected HTML5VideoView() { } - private HTML5VideoView() { - // This is a singleton across WebViews (i.e. Tabs). - // HTML5VideoViewProxy will reset the internal state every time a new - // video start. - } + protected static Map<String, String> generateHeaders(String url, + HTML5VideoViewProxy proxy) { + boolean isPrivate = proxy.getWebView().isPrivateBrowsingEnabled(); + String cookieValue = CookieManager.getInstance().getCookie(url, isPrivate); + Map<String, String> headers = new HashMap<String, String>(); + if (cookieValue != null) { + headers.put(COOKIE, cookieValue); + } + if (isPrivate) { + headers.put(HIDE_URL_LOGS, "true"); + } - public void setMediaController(MediaController m) { - this.setMediaController(m); + return headers; } - public void setVideoURI(String uri, Map<String, String> headers) { + public void setVideoURI(String uri, HTML5VideoViewProxy proxy) { // When switching players, surface texture will be reused. - mPlayer.setTexture(getSurfaceTextureInstance()); + mUri = uri; + mHeaders = generateHeaders(uri, proxy); - // When there is exception, we could just bail out silently. - // No Video will be played though. Write the stack for debug - try { - mPlayer.setDataSource(uri, headers); - mPlayer.prepareAsync(); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (IllegalStateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } + mTimer = new Timer(); } - // TODO [FULL SCREEN SUPPORT] - // Listeners setup FUNCTIONS: public void setOnCompletionListener(HTML5VideoViewProxy proxy) { mPlayer.setOnCompletionListener(proxy); @@ -150,43 +171,57 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{ mPlayer.setOnPreparedListener(this); } - // Inline Video specific FUNCTIONS: + // Normally called immediately after setVideoURI. But for full screen, + // this should be after surface holder created + public void prepareDataAndDisplayMode(HTML5VideoViewProxy proxy) { + // SurfaceTexture will be created lazily here for inline mode + decideDisplayMode(); - public SurfaceTexture getSurfaceTexture() { - return mSurfaceTexture; - } + setOnCompletionListener(proxy); + setOnPreparedListener(proxy); + setOnErrorListener(proxy); - public void deleteSurfaceTexture() { - mSurfaceTexture = null; - return; - } - - // SurfaceTexture is a singleton here , too - private SurfaceTexture getSurfaceTextureInstance() { - // Create the surface texture. - if (mSurfaceTexture == null) - { - mTextureNames = new int[1]; - GLES20.glGenTextures(1, mTextureNames, 0); - mSurfaceTexture = new SurfaceTexture(mTextureNames[0]); + // When there is exception, we could just bail out silently. + // No Video will be played though. Write the stack for debug + try { + mPlayer.setDataSource(mUri, mHeaders); + mPlayer.prepareAsync(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalStateException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } - return mSurfaceTexture; + mCurrentState = STATE_NOTPREPARED; } - public int getTextureName() { - return mTextureNames[0]; - } + // Common code public int getVideoLayerId() { return mVideoLayerId; } - public boolean getReadyToUseSurfTex() { - return mReadyToUseSurfTex; + + public int getCurrentState() { + if (mPlayer.isPlaying()) { + return STATE_PLAYING; + } else { + return mCurrentState; + } } - public void setFrameAvailableListener(SurfaceTexture.OnFrameAvailableListener l) { - mSurfaceTexture.setOnFrameAvailableListener(l); + private static final class TimeupdateTask extends TimerTask { + private HTML5VideoViewProxy mProxy; + + public TimeupdateTask(HTML5VideoViewProxy proxy) { + mProxy = proxy; + } + + @Override + public void run() { + mProxy.onTimeupdate(); + } } @Override @@ -195,6 +230,9 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{ seekTo(mSaveSeekTime); if (mProxy != null) mProxy.onPrepared(mp); + + mTimer.schedule(new TimeupdateTask(mProxy), TIMEUPDATE_PERIOD, TIMEUPDATE_PERIOD); + } // Pause the play and update the play/pause button @@ -205,7 +243,35 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{ proxy.dispatchOnPaused(); } } - mReadyToUseSurfTex = false; + } + + // Below are functions that are different implementation on inline and full- + // screen mode. Some are specific to one type, but currently are called + // directly from the proxy. + public void enterFullScreenVideoState(int layerId, + HTML5VideoViewProxy proxy, WebView webView) { + } + + public boolean isFullScreenMode() { + return false; + } + + public void decideDisplayMode() { + } + + public boolean getReadyToUseSurfTex() { + return false; + } + + public SurfaceTexture getSurfaceTexture() { + return null; + } + + public void deleteSurfaceTexture() { + } + + public int getTextureName() { + return 0; } } diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java index b614d8f..d12b965 100644 --- a/core/java/android/webkit/HTML5VideoViewProxy.java +++ b/core/java/android/webkit/HTML5VideoViewProxy.java @@ -21,29 +21,16 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.SurfaceTexture; import android.media.MediaPlayer; -import android.media.MediaPlayer.OnPreparedListener; -import android.media.MediaPlayer.OnCompletionListener; -import android.media.MediaPlayer.OnErrorListener; import android.net.http.EventHandler; import android.net.http.Headers; import android.net.http.RequestHandle; import android.net.http.RequestQueue; import android.net.http.SslCertificate; import android.net.http.SslError; -import android.net.Uri; -import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.Log; -import android.view.MotionEvent; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsoluteLayout; -import android.widget.FrameLayout; -import android.widget.MediaController; -import android.widget.VideoView; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -51,8 +38,6 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.Map; -import java.util.Timer; -import java.util.TimerTask; /** * <p>Proxy for HTML5 video views. @@ -78,9 +63,6 @@ class HTML5VideoViewProxy extends Handler private static final int POSTER_FETCHED = 202; private static final int PAUSED = 203; - private static final String COOKIE = "Cookie"; - private static final String HIDE_URL_LOGS = "x-hide-urls-from-log"; - // Timer thread -> UI thread private static final int TIMEUPDATE = 300; @@ -104,50 +86,31 @@ class HTML5VideoViewProxy extends Handler // The VideoView instance. This is a singleton for now, at least until // http://b/issue?id=1973663 is fixed. private static HTML5VideoView mHTML5VideoView; - // The progress view. - private static View mProgressView; - // The container for the progress view and video view - private static FrameLayout mLayout; - // The timer for timeupate events. - // See http://www.whatwg.org/specs/web-apps/current-work/#event-media-timeupdate - private static Timer mTimer; - private static final class TimeupdateTask extends TimerTask { - private HTML5VideoViewProxy mProxy; - - public TimeupdateTask(HTML5VideoViewProxy proxy) { - mProxy = proxy; - } - public void run() { - mProxy.onTimeupdate(); - } - } - // The spec says the timer should fire every 250 ms or less. - private static final int TIMEUPDATE_PERIOD = 250; // ms private static boolean isVideoSelfEnded = false; // By using the baseLayer and the current video Layer ID, we can // identify the exact layer on the UI thread to use the SurfaceTexture. private static int mBaseLayer = 0; - // TODO: [FULL SCREEN SUPPORT] - // Every time webView setBaseLayer, this will be called. // When we found the Video layer, then we set the Surface Texture to it. // Otherwise, we may want to delete the Surface Texture to save memory. public static void setBaseLayer(int layer) { - if (mHTML5VideoView != null) { + // Don't do this for full screen mode. + if (mHTML5VideoView != null + && !mHTML5VideoView.isFullScreenMode()) { mBaseLayer = layer; SurfaceTexture surfTexture = mHTML5VideoView.getSurfaceTexture(); int textureName = mHTML5VideoView.getTextureName(); int currentVideoLayerId = mHTML5VideoView.getVideoLayerId(); if (layer != 0 && surfTexture != null && currentVideoLayerId != -1) { - boolean readyToUseSurfTex = - mHTML5VideoView.getReadyToUseSurfTex(); + int playerState = mHTML5VideoView.getCurrentState(); boolean foundInTree = nativeSendSurfaceTexture(surfTexture, layer, currentVideoLayerId, textureName, - readyToUseSurfTex); - if (readyToUseSurfTex && !foundInTree) { + playerState); + if (playerState == HTML5VideoView.STATE_PREPARED + && !foundInTree) { mHTML5VideoView.pauseAndDispatch(mCurrentProxy); mHTML5VideoView.deleteSurfaceTexture(); } @@ -165,16 +128,47 @@ class HTML5VideoViewProxy extends Handler } } + public static void enterFullScreenVideo(int layerId, String url, + HTML5VideoViewProxy proxy, WebView webView) { + // Save the inline video info and inherit it in the full screen + int savePosition = 0; + boolean savedIsPlaying = false; + if (mHTML5VideoView != null) { + // If we are playing the same video, then it is better to + // save the current position. + if (layerId == mHTML5VideoView.getVideoLayerId()) { + savePosition = mHTML5VideoView.getCurrentPosition(); + savedIsPlaying = mHTML5VideoView.isPlaying(); + } + mHTML5VideoView.pauseAndDispatch(mCurrentProxy); + mHTML5VideoView.release(); + } + mHTML5VideoView = new HTML5VideoFullScreen(proxy.getContext(), + layerId, savePosition, savedIsPlaying); + mCurrentProxy = proxy; + + mHTML5VideoView.setVideoURI(url, mCurrentProxy); + + mHTML5VideoView.enterFullScreenVideoState(layerId, proxy, webView); + } + // This is on the UI thread. // When native tell Java to play, we need to check whether or not it is // still the same video by using videoLayerId and treat it differently. public static void play(String url, int time, HTML5VideoViewProxy proxy, WebChromeClient client, int videoLayerId) { int currentVideoLayerId = -1; - if (mHTML5VideoView != null) + boolean backFromFullScreenMode = false; + + if (mHTML5VideoView != null) { currentVideoLayerId = mHTML5VideoView.getVideoLayerId(); + if (mHTML5VideoView instanceof HTML5VideoFullScreen) { + backFromFullScreenMode = true; + } + } - if (currentVideoLayerId != videoLayerId + if (backFromFullScreenMode + || currentVideoLayerId != videoLayerId || mHTML5VideoView.getSurfaceTexture() == null) { // Here, we handle the case when switching to a new video, // either inside a WebView or across WebViews @@ -186,35 +180,11 @@ class HTML5VideoViewProxy extends Handler // release the media player to avoid finalize error mHTML5VideoView.release(); } - // HTML5VideoView is singleton, however, the internal state will - // be reset since we are switching from one video to another. - // Then we need to set up all the source/listener etc... - mHTML5VideoView = HTML5VideoView.getInstance(videoLayerId); - mCurrentProxy = proxy; + mHTML5VideoView = new HTML5VideoInline(videoLayerId, time, false); - // TODO: [FULL SCREEN SUPPORT] - - boolean isPrivate = mCurrentProxy.getWebView().isPrivateBrowsingEnabled(); - String cookieValue = CookieManager.getInstance().getCookie(url, isPrivate); - Map<String, String> headers = new HashMap<String, String>(); - if (cookieValue != null) { - headers.put(COOKIE, cookieValue); - } - if (isPrivate) { - headers.put(HIDE_URL_LOGS, "true"); - } - - mHTML5VideoView.setVideoURI(url, headers); - mHTML5VideoView.setOnCompletionListener(proxy); - mHTML5VideoView.setOnPreparedListener(proxy); - mHTML5VideoView.setOnErrorListener(proxy); - mHTML5VideoView.setFrameAvailableListener(proxy); - - mHTML5VideoView.seekTo(time); - - mTimer = new Timer(); - + mHTML5VideoView.setVideoURI(url, mCurrentProxy); + mHTML5VideoView.prepareDataAndDisplayMode(proxy); } else if (mCurrentProxy == proxy) { // Here, we handle the case when we keep playing with one video if (!mHTML5VideoView.isPlaying()) { @@ -222,7 +192,8 @@ class HTML5VideoViewProxy extends Handler mHTML5VideoView.start(); } } else if (mCurrentProxy != null) { - // Some other video is already playing. Notify the caller that its playback ended. + // Some other video is already playing. Notify the caller that + // its playback ended. proxy.dispatchOnEnded(); } } @@ -249,14 +220,17 @@ class HTML5VideoViewProxy extends Handler public static void pause(HTML5VideoViewProxy proxy) { if (mCurrentProxy == proxy && mHTML5VideoView != null) { mHTML5VideoView.pause(); - mTimer.purge(); } } public static void onPrepared() { - mHTML5VideoView.start(); - mTimer.schedule(new TimeupdateTask(mCurrentProxy), TIMEUPDATE_PERIOD, TIMEUPDATE_PERIOD); - // TODO: [FULL SCREEN SUPPORT] + if (!mHTML5VideoView.isFullScreenMode() || + mHTML5VideoView.isFullScreenMode() && + mHTML5VideoView.getAutostart() ) + mHTML5VideoView.start(); + if (mBaseLayer != 0) { + setBaseLayer(mBaseLayer); + } } public static void end() { @@ -349,8 +323,6 @@ class HTML5VideoViewProxy extends Handler VideoPlayer.isVideoSelfEnded = true; VideoPlayer.end(); break; - // TODO: [FULL SCREEN SUPPORT] - // For full screen case, end may need hide the view. case ERROR: { WebChromeClient client = mWebView.getWebChromeClient(); if (client != null) { @@ -665,7 +637,7 @@ class HTML5VideoViewProxy extends Handler mPosterDownloader.start(); } - // These two function are called from UI thread only by WebView. + // These three function are called from UI thread only by WebView. public void setBaseLayer(int layer) { VideoPlayer.setBaseLayer(layer); } @@ -673,6 +645,11 @@ class HTML5VideoViewProxy extends Handler public void pauseAndDispatch() { VideoPlayer.pauseAndDispatch(); } + + public void enterFullScreenVideo(int layerId, String url) { + VideoPlayer.enterFullScreenVideo(layerId, url, this, mWebView); + } + /** * The factory for HTML5VideoViewProxy instances. * @param webViewCore is the WebViewCore that is requesting the proxy. @@ -694,5 +671,5 @@ class HTML5VideoViewProxy extends Handler private native void nativeOnTimeupdate(int position, int nativePointer); private native static boolean nativeSendSurfaceTexture(SurfaceTexture texture, int baseLayer, int videoLayerId, int textureName, - boolean updateTexture); + int playerState); } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 1a574d5..96623b0 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1359,10 +1359,10 @@ public class WebView extends AbsoluteLayout return mTitleBar != null ? mTitleBar.getHeight() : 0; } - /* + /** * Return the amount of the titlebarview (if any) that is visible * - * @hide + * @deprecated This method is now obsolete. */ public int getVisibleTitleHeight() { // need to restrict mScrollY due to over scroll @@ -1672,6 +1672,7 @@ public class WebView extends AbsoluteLayout mDrawHistory = true; mHistoryPicture = p; + mScrollX = sx; mScrollY = sy; mZoomManager.restoreZoomState(b); @@ -2113,7 +2114,7 @@ public class WebView extends AbsoluteLayout public void clearView() { mContentWidth = 0; mContentHeight = 0; - setBaseLayer(0, null, false); + setBaseLayer(0, null, false, false); mWebViewCore.sendMessage(EventHub.CLEAR_CONTENT); } @@ -4043,10 +4044,12 @@ public class WebView extends AbsoluteLayout } } - void setBaseLayer(int layer, Region invalRegion, boolean showVisualIndicator) { + void setBaseLayer(int layer, Region invalRegion, boolean showVisualIndicator, + boolean isPictureAfterFirstLayout) { if (mNativeClass == 0) return; - nativeSetBaseLayer(layer, invalRegion, showVisualIndicator); + nativeSetBaseLayer(layer, invalRegion, showVisualIndicator, + isPictureAfterFirstLayout); if (mHTML5VideoViewProxy != null) { mHTML5VideoViewProxy.setBaseLayer(layer); } @@ -4132,8 +4135,11 @@ public class WebView extends AbsoluteLayout if (mNativeClass != 0 && nativeEvaluateLayersAnimations()) { UIAnimationsRunning = true; // If we have unfinished (or unstarted) animations, - // we ask for a repaint. - invalidate(); + // we ask for a repaint. We only need to do this in software + // rendering (with hardware rendering we already have a different + // method of requesting a repaint) + if (!canvas.isHardwareAccelerated()) + invalidate(); } // decide which adornments to draw @@ -5468,7 +5474,6 @@ public class WebView extends AbsoluteLayout private boolean handleTouchEventCommon(MotionEvent ev, int action, int x, int y) { long eventTime = ev.getEventTime(); - // Due to the touch screen edge effect, a touch closer to the edge // always snapped to the edge. As getViewWidth() can be different from // getWidth() due to the scrollbar, adjusting the point to match @@ -5572,6 +5577,8 @@ public class WebView extends AbsoluteLayout ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); + ted.mPointsInView = new Point[1]; + ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( @@ -5619,6 +5626,8 @@ public class WebView extends AbsoluteLayout ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); + ted.mPointsInView = new Point[1]; + ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; @@ -5801,6 +5810,8 @@ public class WebView extends AbsoluteLayout ted.mAction = action; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); + ted.mPointsInView = new Point[1]; + ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; @@ -5823,6 +5834,8 @@ public class WebView extends AbsoluteLayout ted.mAction = WebViewCore.ACTION_DOUBLETAP; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); + ted.mPointsInView = new Point[1]; + ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( @@ -5959,11 +5972,13 @@ public class WebView extends AbsoluteLayout final int count = ev.getPointerCount(); ted.mIds = new int[count]; ted.mPoints = new Point[count]; + ted.mPointsInView = new Point[count]; for (int c = 0; c < count; c++) { ted.mIds[c] = ev.getPointerId(c); int x = viewToContentX((int) ev.getX(c) + mScrollX); int y = viewToContentY((int) ev.getY(c) + mScrollY); ted.mPoints[c] = new Point(x, y); + ted.mPointsInView[c] = new Point((int) ev.getX(c), (int) ev.getY(c)); } if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN || ted.mAction == MotionEvent.ACTION_POINTER_UP) { @@ -6048,6 +6063,10 @@ public class WebView extends AbsoluteLayout ted.mIds[0] = 0; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(x, y); + ted.mPointsInView = new Point[1]; + int viewX = contentToViewX(x) - mScrollX; + int viewY = contentToViewY(y) - mScrollY; + ted.mPointsInView[0] = new Point(viewX, viewY); ted.mAction = MotionEvent.ACTION_CANCEL; ted.mNativeLayer = nativeScrollableLayer( x, y, ted.mNativeLayerRect, null); @@ -7180,14 +7199,15 @@ public class WebView extends AbsoluteLayout private class TouchEventQueue { private long mNextTouchSequence = Long.MIN_VALUE + 1; private long mLastHandledTouchSequence = Long.MIN_VALUE; - private long mIgnoreUntilSequence = Long.MIN_VALUE; + private long mIgnoreUntilSequence = Long.MIN_VALUE + 1; private QueuedTouch mTouchEventQueue; private QueuedTouch mQueuedTouchRecycleBin; private int mQueuedTouchRecycleCount; + private long mLastEventTime = Long.MAX_VALUE; private static final int MAX_RECYCLED_QUEUED_TOUCH = 15; // milliseconds until we abandon hope of getting all of a previous gesture - private static final int QUEUED_GESTURE_TIMEOUT = 2000; + private static final int QUEUED_GESTURE_TIMEOUT = 1000; private QueuedTouch obtainQueuedTouch() { if (mQueuedTouchRecycleBin != null) { @@ -7221,7 +7241,7 @@ public class WebView extends AbsoluteLayout public void reset() { mNextTouchSequence = Long.MIN_VALUE + 1; mLastHandledTouchSequence = Long.MIN_VALUE; - mIgnoreUntilSequence = Long.MIN_VALUE; + mIgnoreUntilSequence = Long.MIN_VALUE + 1; while (mTouchEventQueue != null) { QueuedTouch recycleMe = mTouchEventQueue; mTouchEventQueue = mTouchEventQueue.mNext; @@ -7255,7 +7275,9 @@ public class WebView extends AbsoluteLayout return; } - dropStaleGestures(ted.mMotionEvent, ted.mSequence); + if (dropStaleGestures(ted.mMotionEvent, ted.mSequence)) { + return; + } if (mLastHandledTouchSequence + 1 == ted.mSequence) { handleQueuedTouchEventData(ted); @@ -7290,7 +7312,9 @@ public class WebView extends AbsoluteLayout public void enqueueTouchEvent(MotionEvent ev) { final long sequence = nextTouchSequence(); - dropStaleGestures(ev, sequence); + if (dropStaleGestures(ev, sequence)) { + return; + } if (mLastHandledTouchSequence + 1 == sequence) { handleQueuedMotionEvent(ev); @@ -7313,16 +7337,30 @@ public class WebView extends AbsoluteLayout } } - private void dropStaleGestures(MotionEvent ev, long sequence) { - if (mTouchEventQueue == null) return; + private boolean dropStaleGestures(MotionEvent ev, long sequence) { + if (ev != null && ev.getAction() == MotionEvent.ACTION_MOVE && !mConfirmMove) { + // This is to make sure that we don't attempt to process a tap + // or long press when webkit takes too long to get back to us. + // The movement will be properly confirmed when we process the + // enqueued event later. + final int dx = Math.round(ev.getX()) - mLastTouchX; + final int dy = Math.round(ev.getY()) - mLastTouchY; + if (dx * dx + dy * dy > mTouchSlopSquare) { + mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS); + mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS); + } + } - MotionEvent nextQueueEvent = mTouchEventQueue.mTed != null ? - mTouchEventQueue.mTed.mMotionEvent : mTouchEventQueue.mEvent; + if (mTouchEventQueue == null) { + return sequence <= mLastHandledTouchSequence; + } - if (ev != null && ev.getAction() == MotionEvent.ACTION_DOWN && nextQueueEvent != null) { + // If we have a new down event and it's been a while since the last event + // we saw, just reset and keep going. + if (ev != null && ev.getAction() == MotionEvent.ACTION_DOWN) { long eventTime = ev.getEventTime(); - long nextQueueTime = nextQueueEvent.getEventTime(); - if (eventTime > nextQueueTime + QUEUED_GESTURE_TIMEOUT) { + long lastHandledEventTime = mLastEventTime; + if (eventTime > lastHandledEventTime + QUEUED_GESTURE_TIMEOUT) { Log.w(LOGTAG, "Got ACTION_DOWN but still waiting on stale event. " + "Ignoring previous queued events."); QueuedTouch qd = mTouchEventQueue; @@ -7336,17 +7374,18 @@ public class WebView extends AbsoluteLayout } } - if (mIgnoreUntilSequence > mLastHandledTouchSequence) { + if (mIgnoreUntilSequence - 1 > mLastHandledTouchSequence) { QueuedTouch qd = mTouchEventQueue; - while (qd != null && qd.mSequence < mIgnoreUntilSequence && - qd.mSequence < sequence) { - mLastHandledTouchSequence = qd.mSequence; + while (qd != null && qd.mSequence < mIgnoreUntilSequence) { QueuedTouch recycleMe = qd; qd = qd.mNext; recycleQueuedTouch(recycleMe); } mTouchEventQueue = qd; + mLastHandledTouchSequence = mIgnoreUntilSequence - 1; } + + return sequence <= mLastHandledTouchSequence; } private void handleQueuedTouch(QueuedTouch qt) { @@ -7359,6 +7398,7 @@ public class WebView extends AbsoluteLayout } private void handleQueuedMotionEvent(MotionEvent ev) { + mLastEventTime = ev.getEventTime(); int action = ev.getActionMasked(); if (ev.getPointerCount() > 1) { // Multi-touch handleMultiTouchInWebView(ev); @@ -7376,6 +7416,9 @@ public class WebView extends AbsoluteLayout } private void handleQueuedTouchEventData(TouchEventData ted) { + if (ted.mMotionEvent != null) { + mLastEventTime = ted.mMotionEvent.getEventTime(); + } if (!ted.mReprocess) { if (ted.mAction == MotionEvent.ACTION_DOWN && mPreventDefault == PREVENT_DEFAULT_MAYBE_YES) { @@ -7412,16 +7455,15 @@ public class WebView extends AbsoluteLayout // Following is for single touch. switch (ted.mAction) { case MotionEvent.ACTION_DOWN: - mLastDeferTouchX = contentToViewX(ted.mPoints[0].x) - - mScrollX; - mLastDeferTouchY = contentToViewY(ted.mPoints[0].y) - - mScrollY; + mLastDeferTouchX = ted.mPointsInView[0].x; + mLastDeferTouchY = ted.mPointsInView[0].y; mDeferTouchMode = TOUCH_INIT_MODE; break; case MotionEvent.ACTION_MOVE: { // no snapping in defer process - int x = contentToViewX(ted.mPoints[0].x) - mScrollX; - int y = contentToViewY(ted.mPoints[0].y) - mScrollY; + int x = ted.mPointsInView[0].x; + int y = ted.mPointsInView[0].y; + if (mDeferTouchMode != TOUCH_DRAG_MODE) { mDeferTouchMode = TOUCH_DRAG_MODE; mLastDeferTouchX = x; @@ -7455,8 +7497,8 @@ public class WebView extends AbsoluteLayout break; case WebViewCore.ACTION_DOUBLETAP: // doDoubleTap() needs mLastTouchX/Y as anchor - mLastTouchX = contentToViewX(ted.mPoints[0].x) - mScrollX; - mLastTouchY = contentToViewY(ted.mPoints[0].y) - mScrollY; + mLastDeferTouchX = ted.mPointsInView[0].x; + mLastDeferTouchY = ted.mPointsInView[0].y; mZoomManager.handleDoubleTap(mLastTouchX, mLastTouchY); mDeferTouchMode = TOUCH_DONE_MODE; break; @@ -7580,6 +7622,8 @@ public class WebView extends AbsoluteLayout ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(viewToContentX(mLastTouchX + mScrollX), viewToContentY(mLastTouchY + mScrollY)); + ted.mPointsInView = new Point[1]; + ted.mPointsInView[0] = new Point(mLastTouchX, mLastTouchY); // metaState for long press is tricky. Should it be the // state when the press started or when the press was // released? Or some intermediary key state? For @@ -7635,11 +7679,12 @@ public class WebView extends AbsoluteLayout case NEW_PICTURE_MSG_ID: { // called for new content final WebViewCore.DrawData draw = (WebViewCore.DrawData) msg.obj; - setBaseLayer(draw.mBaseLayer, draw.mInvalRegion, - getSettings().getShowVisualIndicator()); - final Point viewSize = draw.mViewSize; WebViewCore.ViewState viewState = draw.mViewState; boolean isPictureAfterFirstLayout = viewState != null; + setBaseLayer(draw.mBaseLayer, draw.mInvalRegion, + getSettings().getShowVisualIndicator(), + isPictureAfterFirstLayout); + final Point viewSize = draw.mViewSize; if (isPictureAfterFirstLayout) { // Reset the last sent data here since dealing with new page. mLastWidthSent = 0; @@ -7854,7 +7899,11 @@ public class WebView extends AbsoluteLayout case ENTER_FULLSCREEN_VIDEO: int layerId = msg.arg1; - Log.v(LOGTAG, "Display the video layer " + layerId + " fullscreen"); + + String url = (String) msg.obj; + if (mHTML5VideoViewProxy != null) { + mHTML5VideoViewProxy.enterFullScreenVideo(layerId, url); + } break; case SHOW_FULLSCREEN: { @@ -8695,7 +8744,7 @@ public class WebView extends AbsoluteLayout private native void nativeSetFindIsUp(boolean isUp); private native void nativeSetHeightCanMeasure(boolean measure); private native void nativeSetBaseLayer(int layer, Region invalRegion, - boolean showVisualIndicator); + boolean showVisualIndicator, boolean isPictureAfterFirstLayout); private native void nativeShowCursorTimed(); private native void nativeReplaceBaseContent(int content); private native void nativeCopyBaseContentToPicture(Picture pict); diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index bed77ef..0271695 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -483,10 +483,12 @@ final class WebViewCore { /** * Notify the webview that we want to display the video layer fullscreen. */ - protected void enterFullscreenForVideoLayer(int layerId) { + protected void enterFullscreenForVideoLayer(int layerId, String url) { if (mWebView == null) return; - Message.obtain(mWebView.mPrivateHandler, - WebView.ENTER_FULLSCREEN_VIDEO, layerId, 0).sendToTarget(); + Message message = Message.obtain(mWebView.mPrivateHandler, + WebView.ENTER_FULLSCREEN_VIDEO, layerId, 0); + message.obj = url; + message.sendToTarget(); } //------------------------------------------------------------------------- @@ -829,6 +831,7 @@ final class WebViewCore { int mAction; int[] mIds; // Ids of the touch points Point[] mPoints; + Point[] mPointsInView; // the point coordinates in view axis. int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP int mMetaState; boolean mReprocess; diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index 72052a6..f2a1ec3 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -504,7 +504,7 @@ class ZoomManager { } public boolean isFixedLengthAnimationInProgress() { - return mZoomScale != 0; + return mZoomScale != 0 || mInHWAcceleratedZoom; } public void refreshZoomScale(boolean reflowText) { diff --git a/core/java/com/android/internal/app/LocalePicker.java b/core/java/com/android/internal/app/LocalePicker.java index e32c62d..52cb679 100644 --- a/core/java/com/android/internal/app/LocalePicker.java +++ b/core/java/com/android/internal/app/LocalePicker.java @@ -88,7 +88,7 @@ public class LocalePicker extends ListFragment { public static ArrayAdapter<LocaleInfo> constructAdapter(Context context, int layoutId, int fieldId) { final Resources resources = context.getResources(); - final String[] locales = context.getAssets().getLocales(); + final String[] locales = Resources.getSystem().getAssets().getLocales(); final String[] specialLocaleCodes = resources.getStringArray(R.array.special_locale_codes); final String[] specialLocaleNames = resources.getStringArray(R.array.special_locale_names); Arrays.sort(locales); diff --git a/core/res/res/drawable-hdpi/ic_media_video_poster.png b/core/res/res/drawable-hdpi/ic_media_video_poster.png Binary files differnew file mode 100644 index 0000000..6c1fd6b --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_media_video_poster.png diff --git a/core/res/res/drawable-hdpi/ic_menu_copy_dark.png b/core/res/res/drawable-hdpi/ic_menu_copy_dark.png Binary files differdeleted file mode 100644 index 852f146..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_copy_dark.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/ic_menu_copy_light.png b/core/res/res/drawable-hdpi/ic_menu_copy_light.png Binary files differdeleted file mode 100644 index ad09b37..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_copy_light.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/ic_menu_cut_dark.png b/core/res/res/drawable-hdpi/ic_menu_cut_dark.png Binary files differdeleted file mode 100644 index 7716a94..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_cut_dark.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/ic_menu_cut_light.png b/core/res/res/drawable-hdpi/ic_menu_cut_light.png Binary files differdeleted file mode 100644 index bea6db1..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_cut_light.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/ic_menu_paste_dark.png b/core/res/res/drawable-hdpi/ic_menu_paste_dark.png Binary files differdeleted file mode 100644 index 5579443..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_paste_dark.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/ic_menu_paste_light.png b/core/res/res/drawable-hdpi/ic_menu_paste_light.png Binary files differdeleted file mode 100644 index 6674914..0000000 --- a/core/res/res/drawable-hdpi/ic_menu_paste_light.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/stat_sys_adb.png b/core/res/res/drawable-hdpi/stat_sys_adb.png Binary files differindex 877e731..9c56e24 100755 --- a/core/res/res/drawable-hdpi/stat_sys_adb.png +++ b/core/res/res/drawable-hdpi/stat_sys_adb.png diff --git a/core/res/res/drawable-ldpi/ic_media_video_poster.png b/core/res/res/drawable-ldpi/ic_media_video_poster.png Binary files differnew file mode 100644 index 0000000..786d0e6 --- /dev/null +++ b/core/res/res/drawable-ldpi/ic_media_video_poster.png diff --git a/core/res/res/drawable-mdpi/ic_media_video_poster.png b/core/res/res/drawable-mdpi/ic_media_video_poster.png Binary files differnew file mode 100644 index 0000000..10bbd74 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_media_video_poster.png diff --git a/core/res/res/drawable-mdpi/ic_menu_copy_dark.png b/core/res/res/drawable-mdpi/ic_menu_copy_dark.png Binary files differdeleted file mode 100644 index 35c3318..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_copy_dark.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_menu_copy_light.png b/core/res/res/drawable-mdpi/ic_menu_copy_light.png Binary files differdeleted file mode 100644 index 3b179d8..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_copy_light.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_menu_cut_dark.png b/core/res/res/drawable-mdpi/ic_menu_cut_dark.png Binary files differdeleted file mode 100644 index dfe8b4a..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_cut_dark.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_menu_cut_light.png b/core/res/res/drawable-mdpi/ic_menu_cut_light.png Binary files differdeleted file mode 100644 index 748dc9b..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_cut_light.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_menu_paste_dark.png b/core/res/res/drawable-mdpi/ic_menu_paste_dark.png Binary files differdeleted file mode 100644 index caec299..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_paste_dark.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_menu_paste_light.png b/core/res/res/drawable-mdpi/ic_menu_paste_light.png Binary files differdeleted file mode 100644 index 434f5d1..0000000 --- a/core/res/res/drawable-mdpi/ic_menu_paste_light.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/stat_sys_adb.png b/core/res/res/drawable-mdpi/stat_sys_adb.png Binary files differindex e259ca5..1400bb3 100644 --- a/core/res/res/drawable-mdpi/stat_sys_adb.png +++ b/core/res/res/drawable-mdpi/stat_sys_adb.png diff --git a/core/res/res/drawable/expander_group_holo_dark.xml b/core/res/res/drawable/expander_group_holo_dark.xml index 51a7290..2481dcb 100644 --- a/core/res/res/drawable/expander_group_holo_dark.xml +++ b/core/res/res/drawable/expander_group_holo_dark.xml @@ -17,7 +17,7 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_expanded="true" - android:drawable="@drawable/expander_open_holo_dark" /> - <item android:drawable="@drawable/expander_close_holo_dark" /> + <item + android:drawable="@drawable/expander_open_holo_dark" /> </selector> diff --git a/core/res/res/drawable/expander_group_holo_light.xml b/core/res/res/drawable/expander_group_holo_light.xml index 0ce71a5..8006574 100644 --- a/core/res/res/drawable/expander_group_holo_light.xml +++ b/core/res/res/drawable/expander_group_holo_light.xml @@ -17,7 +17,7 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_expanded="true" - android:drawable="@drawable/expander_open_holo_light" /> - <item android:drawable="@drawable/expander_close_holo_light" /> + <item + android:drawable="@drawable/expander_open_holo_light" /> </selector> diff --git a/core/res/res/drawable/list_selector_background.xml b/core/res/res/drawable/list_selector_background.xml index f5eb12d..1222155 100644 --- a/core/res/res/drawable/list_selector_background.xml +++ b/core/res/res/drawable/list_selector_background.xml @@ -24,6 +24,6 @@ <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> - <item android:state_focused="true" android:drawable="@drawable/list_selector_background_focused" /> + <item android:state_focused="true" android:drawable="@drawable/list_selector_background_focus" /> </selector> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index e9261d9..3731aaa 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"للسماح للتطبيق بالتحكم في الهزاز."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"التحكم في الضوء الوامض"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"للسماح للتطبيق بالتحكم في الضوء الوامض."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"إدارة التفضيلات والأذونات لأجهزة USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"للسماح للتطبيق بإدارة التفضيلات والأذونات لأجهزة USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"تنفيذ بروتوكول MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"لإتاحة الدخول إلى برنامج تشغيل kernel MTP لتنفيذ بروتوكول MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"اختبار الأجهزة"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"الاستخدام بشكل افتراضي لهذا الإجراء."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"محو الإعداد الافتراضي في الإعدادات الرئيسية > التطبيقات > إدارة التطبيقات."</string> <string name="chooseActivity" msgid="1009246475582238425">"تحديد إجراء"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"تحديد تطبيق لجهاز USB"</string> <string name="noApplications" msgid="1691104391758345586">"ليس هناك تطبيقات يمكنها تنفيذ هذا الإجراء."</string> <string name="aerr_title" msgid="653922989522758100">"عذرًا!"</string> <string name="aerr_application" msgid="4683614104336409186">"توقف التطبيق <xliff:g id="APPLICATION">%1$s</xliff:g> (العملية <xliff:g id="PROCESS">%2$s</xliff:g>) على نحو غير متوقع. الرجاء المحاولة مرة أخرى."</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index d15baa9..0173f45 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Разрешава на приложението да контролира устройството за вибрация."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"контролиране на фенерчето"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Разрешава на приложението да контролира фенерчето."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"управление на предпочитанията и разрешенията за USB устройства"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Разрешава на приложението да управлява предпочитанията и разрешенията за USB устройства."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"внедряване на MTP протокол"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Разрешава достъп до MTP драйвера на ядрото за внедряване на протокола MTP през USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"тест на хардуера"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Използване по подразбиране за това действие."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Изчистване на стандартната стойност в „Начални настройки“ > „Приложения“ > „Управление на приложенията“."</string> <string name="chooseActivity" msgid="1009246475582238425">"Избиране на действие"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Избор на приложение за USB устройството"</string> <string name="noApplications" msgid="1691104391758345586">"Това действие не може да се изпълни от нито едно приложение."</string> <string name="aerr_title" msgid="653922989522758100">"Съжаляваме!"</string> <string name="aerr_application" msgid="4683614104336409186">"Приложението „<xliff:g id="APPLICATION">%1$s</xliff:g>“ (процес „<xliff:g id="PROCESS">%2$s</xliff:g>“) спря неочаквано. Моля, опитайте отново."</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 263f1c4..e94e7e5 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permet a l\'aplicació controlar el vibrador."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controlar el flaix"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permet a l\'aplicació controlar el flaix."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gestiona les preferències i els permisos dels dispositius USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permet que l\'aplicació gestioni les preferències i els permisos dels dispositius USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementa el protocol MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permet l\'accés al programa de control MTP de kernel per implementar el protocol USB d\'MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"provar el maquinari"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Utilitza-ho de manera predeterminada per a aquesta acció."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Esborra el valor predeterminat a Configuració de la pantalla d\'inici > Aplicacions > Gestiona les aplicacions."</string> <string name="chooseActivity" msgid="1009246475582238425">"Seleccioneu una acció"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selecciona una aplicació per al dispositiu USB"</string> <string name="noApplications" msgid="1691104391758345586">"No hi ha cap aplicació que pugui dur a terme aquesta acció."</string> <string name="aerr_title" msgid="653922989522758100">"Ho sentim."</string> <string name="aerr_application" msgid="4683614104336409186">"L\'aplicació <xliff:g id="APPLICATION">%1$s</xliff:g> (procés <xliff:g id="PROCESS">%2$s</xliff:g>) s\'ha aturat inesperadament. Torneu-ho a provar."</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index b93989f..0102536 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Umožňuje aplikaci ovládat vibrace."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"ovládání kontrolky"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Umožňuje aplikaci ovládat kontrolku."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"spravovat nastavení a oprávnění pro zařízení USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Umožňuje aplikaci spravovat nastavení a oprávnění pro zařízení USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementace protokolu MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Povoluje přístup k ovladači protokolu MTP jádra za účelem implementace protokolu MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testování hardwaru"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Použít jako výchozí nastavení pro tuto činnost."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Vymažte výchozí hodnoty v Nastavení plochy > Aplikace > Správa aplikací."</string> <string name="chooseActivity" msgid="1009246475582238425">"Vyberte akci"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Zvolte aplikaci pro zařízení USB"</string> <string name="noApplications" msgid="1691104391758345586">"Tuto činnost nemohou provádět žádné aplikace."</string> <string name="aerr_title" msgid="653922989522758100">"Omlouváme se"</string> <string name="aerr_application" msgid="4683614104336409186">"Aplikace <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) byla neočekávaně ukončena. Zkuste to znovu."</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 25246f6..93b59aa 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Lader programmet kontrollere vibratoren."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kontroller lommelygte"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Tillader, at programmet kontrollerer lommelygten."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"administrer præferencer og tilladelser for USB-enheder"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Tillader, at programmet administrerer præferencer og tilladelser for USB-enheder."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementere MTP-protokol"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Tillader adgang til kerne-MTP-driveren for at implementere MTB USB-protokollen."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"test hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Brug som standard til denne handling."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Ryd standard i Startindstillinger > Programmer > Administrer programmer."</string> <string name="chooseActivity" msgid="1009246475582238425">"Vælg en handling"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Vælg et program for USB-enheden"</string> <string name="noApplications" msgid="1691104391758345586">"Der er ingen programmer, der kan foretage denne handling."</string> <string name="aerr_title" msgid="653922989522758100">"Beklager!"</string> <string name="aerr_application" msgid="4683614104336409186">"Programmet <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) er standset uventet. Prøv igen."</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 98e0ef3..db3e9d9 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Ermöglicht der Anwendung, den Vibrationsalarm zu steuern"</string> <string name="permlab_flashlight" msgid="2155920810121984215">"Lichtanzeige steuern"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Ermöglicht der Anwendung, die Lichtanzeige zu steuern"</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"Einstellungen und Berechtigungen für USB-Geräte verwalten"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Ermöglicht der Anwendung das Verwalten von Einstellungen und Berechtigungen für USB-Geräte"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP-Protokoll implementieren"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Erlaubt den Zugriff auf den Kernel-MTP-Treiber zur Implementierung des MTP-USB-Protokolls."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"Hardware testen"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Standardmäßig für diese Aktion verwenden"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Standardeinstellung zurücksetzen unter \"Einstellungen > Anwendungen > Anwendungen verwalten\""</string> <string name="chooseActivity" msgid="1009246475582238425">"Aktion auswählen"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Anwendung für das USB-Gerät auswählen"</string> <string name="noApplications" msgid="1691104391758345586">"Diese Aktion kann von keiner Anwendung ausgeführt werden."</string> <string name="aerr_title" msgid="653922989522758100">"Tut uns leid!"</string> <string name="aerr_application" msgid="4683614104336409186">"Die Anwendung <xliff:g id="APPLICATION">%1$s</xliff:g> (Prozess <xliff:g id="PROCESS">%2$s</xliff:g>) wurde unerwartet beendet. Versuchen Sie es erneut."</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 8b9a8df..571dc43 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Επιτρέπει στην εφαρμογή τον έλεγχο του δονητή."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"έλεγχος φακού"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Επιτρέπει στην εφαρμογή τον έλεγχο του φακού."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"διαχείριση προτιμήσεων και αδειών για συσκευές USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Επιτρέπει στην εφαρμογή να διαχειρίζεται προτιμήσεις και άδειες για συσκευές USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"εφαρμογή πρωτοκόλλου MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Επιτρέπει την πρόσβαση στο πρόγραμμα οδήγησης kernel MTP για την εφαρμογή του πρωτοκόλλου MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"δοκιμή υλικού"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Χρήση από προεπιλογή για αυτήν την ενέργεια."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Εκκαθάριση προεπιλεγμένων σε Ρυθμίσεις αρχικής σελίδας > Εφαρμογές > Διαχείριση εφαρμογών."</string> <string name="chooseActivity" msgid="1009246475582238425">"Επιλέξτε μια ενέργεια"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Επιλέξτε μια εφαρμογή για τη συσκευή USB"</string> <string name="noApplications" msgid="1691104391758345586">"Δεν υπάρχουν εφαρμογές, οι οποίες μπορούν να εκτελέσουν αυτήν την ενέργεια."</string> <string name="aerr_title" msgid="653922989522758100">"Λυπούμαστε!"</string> <string name="aerr_application" msgid="4683614104336409186">"Υπήρξε μη αναμενόμενη διακοπή της εφαρμογής <xliff:g id="APPLICATION">%1$s</xliff:g> (διαδικασία <xliff:g id="PROCESS">%2$s</xliff:g>). Προσπαθήστε ξανά."</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 0a511eb..7015d48 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Allows the application to control the vibrator."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"control flashlight"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Allows the application to control the flashlight."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"manage preferences and permissions for USB devices"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Allows the application to manage preferences and permissions for USB devices."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implement MTP protocol"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Allows access to the kernel MTP driver to implement the MTP USB protocol."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"test hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Use by default for this action."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Clear default in Home Settings > Applications > Manage applications."</string> <string name="chooseActivity" msgid="1009246475582238425">"Select an action"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Select an application for the USB device"</string> <string name="noApplications" msgid="1691104391758345586">"No applications can perform this action."</string> <string name="aerr_title" msgid="653922989522758100">"Sorry!"</string> <string name="aerr_application" msgid="4683614104336409186">"The application <xliff:g id="APPLICATION">%1$s</xliff:g> (process <xliff:g id="PROCESS">%2$s</xliff:g>) has stopped unexpectedly. Please try again."</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 688565b..0052b18 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Admite que la aplicación controle el vibrador."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controlar linterna"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Admite que la aplicación controle la linterna."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"administrar preferencias y permisos para los dispositivos USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permite a la aplicación administrar preferencias y permisos para los dispositivos USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementar protocolo MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permite acceso al driver kernel MTP para implementar el protocolo MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"probar el hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Utilizar de manera predeterminada en esta acción."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Borrar la predeterminación en Configuración de la página principal > Aplicaciones > Administrar aplicaciones."</string> <string name="chooseActivity" msgid="1009246475582238425">"Seleccionar una acción"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selecciona una aplicación para el dispositivo USB."</string> <string name="noApplications" msgid="1691104391758345586">"Ninguna aplicación puede realizar esta acción."</string> <string name="aerr_title" msgid="653922989522758100">"¡Lo sentimos!"</string> <string name="aerr_application" msgid="4683614104336409186">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (proceso <xliff:g id="PROCESS">%2$s</xliff:g>) se ha detenido de forma imprevista. Vuelve a intentarlo."</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 9ab0169..bdca91f 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permite que la aplicación controle la función de vibración."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controlar linterna"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permite que la aplicación controle la función de linterna."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"administrar preferencias y permisos de dispositivos USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permite que la aplicación administre las preferencias y los permisos de los dispositivos USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementar protocolo MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permite el acceso al controlador MTP del kernel para implementar el protocolo USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"probar hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Utilizar de forma predeterminada para esta acción"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Borrar valores predeterminados en la página de configuración de la pantalla de inicio del teléfono > Aplicaciones > Administrar aplicaciones\"."</string> <string name="chooseActivity" msgid="1009246475582238425">"Seleccionar una acción"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Seleccionar una aplicación para el dispositivo USB"</string> <string name="noApplications" msgid="1691104391758345586">"Ninguna aplicación puede realizar esta acción."</string> <string name="aerr_title" msgid="653922989522758100">"Lo sentimos."</string> <string name="aerr_application" msgid="4683614104336409186">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (proceso <xliff:g id="PROCESS">%2$s</xliff:g>) se ha interrumpido inesperadamente. Inténtalo de nuevo."</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 655f250..1f3ca7e 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"به برنامه کاربردی اجازه می دهد لرزاننده را کنترل کند."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"کنترل چراغ قوه"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"به برنامه کاربردی اجازه می دهد چراغ قوه را کنترل کند."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"مدیریت تنظیمات برگزیده و مجوزها برای دستگاه های USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"به برنامه کاربردی جهت مدیریت تنظیمات برگزیده و مجوزها برای دستگاه های USB اجازه می دهد."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"اعمال پروتکل MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"دسترسی به درایور کرنل MTP جهت اعمال پروتکل MTP USB را اجازه می دهد."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"تست سخت افزار"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"استفاده به صورت پیش فرض برای این عملکرد."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"پاک کردن موارد پیش فرض در تنظیمات صفحه اصلی > برنامه های کاربردی > مدیریت برنامه ها."</string> <string name="chooseActivity" msgid="1009246475582238425">"انتخاب یک عملکرد"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"انتخاب یک برنامه کاربردی برای دستگاه USB"</string> <string name="noApplications" msgid="1691104391758345586">"هیچ برنامه ای نمی تواند این عملکرد را اجرا کند."</string> <string name="aerr_title" msgid="653922989522758100">"متأسفیم!"</string> <string name="aerr_application" msgid="4683614104336409186">"برنامه کاربردی <xliff:g id="APPLICATION">%1$s</xliff:g> ( فرآیند <xliff:g id="PROCESS">%2$s</xliff:g>) به طور غیر منتظره ای متوقف شد. لطفاً دوباره امتحان کنید."</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 28312a1..c9b6826 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Antaa sovelluksen hallita värinää."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"hallitse taskulamppua"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Antaa sovelluksen hallita lamppua."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"hallinnoi USB-laitteiden asetuksia ja käyttöoikeuksia"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Antaa sovelluksen hallinnoida USB-laitteiden asetuksia ja käyttöoikeuksia"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"ota käyttöön MTP-protokolla"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Antaa sovelluksen käyttää kernel-MTP-ajuria ja ottaa käyttöön MTP USB-protokollan."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testaa laitteistoa"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Käytä oletuksena tälle toiminnolle."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Tyhjennä oletusasetus kohdassa Etusivun asetukset > Sovellukset > Hallinnoi sovelluksia."</string> <string name="chooseActivity" msgid="1009246475582238425">"Valitse toiminto"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Valitse sovellus USB-laitteelle"</string> <string name="noApplications" msgid="1691104391758345586">"Yksikään sovellus ei voi suorittaa tätä toimintoa."</string> <string name="aerr_title" msgid="653922989522758100">"Pahoittelemme!"</string> <string name="aerr_application" msgid="4683614104336409186">"Sovellus <xliff:g id="APPLICATION">%1$s</xliff:g> (prosessi <xliff:g id="PROCESS">%2$s</xliff:g>) pysähtyi yllättäen. Yritä uudelleen."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 7a6c43a..7e7b24e 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permet à l\'application de contrôler le vibreur."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"Contrôle de la lampe de poche"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permet à l\'application de contrôler la lampe de poche."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gérer les préférences et les autorisations des périphériques USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permet à l\'application de gérer les préférences et les autorisations des périphériques USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"mettre en œuvre le protocole MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permet l\'accès au pilote MTP du noyau à des fins de mise en œuvre du protocole USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"Tests du matériel"</string> @@ -462,11 +460,11 @@ <string name="permdesc_readDictionary" msgid="1082972603576360690">"Permet à une application de lire tous les mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string> <string name="permlab_writeDictionary" msgid="6703109511836343341">"Enregistrement dans le dictionnaire défini par l\'utilisateur"</string> <string name="permdesc_writeDictionary" msgid="2241256206524082880">"Permet à une application d\'enregistrer de nouveaux mots dans le dictionnaire personnel de l\'utilisateur."</string> - <string name="permlab_sdcardWrite" product="nosdcard" msgid="85430876310764752">"modifier/supprimer le contenu de la mémoire de stockage USB"</string> + <string name="permlab_sdcardWrite" product="nosdcard" msgid="85430876310764752">"modif./suppr. contenu mémoire USB"</string> <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modifier/supprimer le contenu de la carte SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Autorise une application à écrire sur la mémoire USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Autorise une application à écrire sur la carte SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modif./suppr. contenu mémoire interne support"</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modif./suppr. contenu mémoire interne"</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Permet à une application de modifier le contenu de la mémoire de stockage interne du support."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accéder au système de fichiers en cache"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Permet à une application de lire et d\'écrire dans le système de fichiers en cache."</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Utiliser cette application par défaut pour cette action"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Effacer les paramètres par défaut dans les Paramètres de page d\'accueil > Applications > Gérer les applications."</string> <string name="chooseActivity" msgid="1009246475582238425">"Sélectionner une action"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Sélectionnez une application pour le périphérique USB"</string> <string name="noApplications" msgid="1691104391758345586">"Aucune application ne peut effectuer cette action."</string> <string name="aerr_title" msgid="653922989522758100">"Désolé !"</string> <string name="aerr_application" msgid="4683614104336409186">"Fermeture soudaine de l\'application <xliff:g id="APPLICATION">%1$s</xliff:g> (du processus <xliff:g id="PROCESS">%2$s</xliff:g>). Merci de réessayer."</string> @@ -922,11 +919,11 @@ <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Carte SD endommagée"</string> <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="529021299294450667">"La mémoire de stockage USB est endommagée. Un reformatage est peut-être nécessaire."</string> <string name="ext_media_unmountable_notification_message" product="default" msgid="6902531775948238989">"La carte SD est endommagée. Vous devrez peut-être la reformater."</string> - <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Mémoire de stockage USB retirée inopinément"</string> + <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Mémoire USB retirée inopinément"</string> <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Carte SD retirée inopinément"</string> <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Désinstaller la mémoire de stockage USB avant de la retirer pour éviter toute perte de données."</string> <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Désinstaller la carte SD avant de la retirer pour éviter toute perte de données."</string> - <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"La mémoire de stockage USB peut être retirée en toute sécurité."</string> + <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Vous pouvez retirer la mémoire USB."</string> <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"La carte SD peut être retirée en toute sécurité"</string> <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Vous pouvez retirer la mémoire de stockage USB en toute sécurité."</string> <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Vous pouvez retirer la carte SD en toute sécurité."</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 860bec9..25e66b4 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Aplikaciji omogućuje nadzor nad vibracijom."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"nadzor bljeskalice"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Aplikaciji omogućuje nadzor nad bljeskalicom."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"upravljanje postavkama i dozvolama za USB uređaje"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Aplikaciji omogućuje upravljanje postavkama i dozvolama za USB uređaje."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"Primjena MTP protokola"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Omogućuje pristup upravljačkom programu jezgre MTP-a radi implementacije MTP USB protokola."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testiranje hardvera"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Koristi se kao zadana postavka za ovu lokaciju."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Izbrišite zadane postavke u izborniku Početne postavke > Aplikacije > Upravljanje aplikacijama."</string> <string name="chooseActivity" msgid="1009246475582238425">"Odaberite radnju"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Odaberite aplikaciju za USB uređaj"</string> <string name="noApplications" msgid="1691104391758345586">"Tu radnju ne može izvesti nijedna aplikacija."</string> <string name="aerr_title" msgid="653922989522758100">"Žao nam je."</string> <string name="aerr_application" msgid="4683614104336409186">"Aplikacija <xliff:g id="APPLICATION">%1$s</xliff:g> (postupak <xliff:g id="PROCESS">%2$s</xliff:g>) neočekivano je zaustavljen. Pokušajte ponovo."</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index f962f35..ea4f81f 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Lehetővé teszi az alkalmazás számára a rezgés vezérlését."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"vaku vezérlése"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Lehetővé teszi az alkalmazás számára a vaku vezérlését."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"USB-eszközök preferenciáinak és engedélyeinek kezelése"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Lehetővé teszi, hogy az alkalmazás kezelje az USB-eszközök preferenciáit és engedélyeit."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP-protokoll megvalósítása"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Hozzáférést biztosít a kernel MTP illesztőprogramjához az MTP USB-protokoll megvalósításának céljából."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"hardver tesztelése"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Ez legyen az alapértelmezett program ehhez a művelethez."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Az alapértelmezés törlése a Főoldal beállításai > Alkalmazások > Alkalmazások kezelése menüben lehetséges."</string> <string name="chooseActivity" msgid="1009246475582238425">"Válasszon műveletet"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Válasszon egy alkalmazást az USB-eszköz számára"</string> <string name="noApplications" msgid="1691104391758345586">"Egyik alkalmazás sem tudja végrehajtani ezt a műveletet."</string> <string name="aerr_title" msgid="653922989522758100">"Sajnáljuk!"</string> <string name="aerr_application" msgid="4683614104336409186">"A(z) <xliff:g id="APPLICATION">%1$s</xliff:g> alkalmazás <xliff:g id="PROCESS">%2$s</xliff:g> folyamata váratlanul leállt. Kérjük, próbálja újra."</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 7b10651..4d5352a 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Mengizinkan aplikasi mengontrol penggetar."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"mengontrol lampu senter"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Mengizinkan aplikasi mengontrol lampu senter."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"kelola preferensi dan izin untuk perangkat USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Membiarkan aplikasi mengelola preferensi dan izin untuk perangkat USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementasikan protokol MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Izinkan akses pada driver MTP kernel untuk mengimplementasikan protokol USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"uji perangkat keras"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Gunakan secara bawaan untuk tindakan ini."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Bersihkan bawaan pada Setelan Beranda > Aplikasi > Kelola aplikasi."</string> <string name="chooseActivity" msgid="1009246475582238425">"Pilih tindakan"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Pilih sebuah aplikasi untuk perangkat USB"</string> <string name="noApplications" msgid="1691104391758345586">"Tidak ada aplikasi dapat melakukan tindakan ini."</string> <string name="aerr_title" msgid="653922989522758100">"Maaf!"</string> <string name="aerr_application" msgid="4683614104336409186">"<xliff:g id="APPLICATION">%1$s</xliff:g> aplikasi (<xliff:g id="PROCESS">%2$s</xliff:g> proses) berhenti tiba-tiba. Harap coba lagi."</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 76b6d1d..3196dbe 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Consente all\'applicazione di controllare la vibrazione."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controllo flash"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Consente all\'applicazione di controllare il flash."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gestione preferenze e autorizzazioni per dispositivi USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Consente all\'applicazione di gestire le preferenze e le autorizzazioni relative ai dispositivi USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementa protocollo MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Consente di accedere al driver MTP del kernel per implementare il protocollo USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"esecuzione test hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Usa come predefinita per questa azione."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Cancella predefinita in Home > Impostazioni > Applicazioni > Gestisci applicazioni."</string> <string name="chooseActivity" msgid="1009246475582238425">"Seleziona un\'azione"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Seleziona un\'applicazione per il dispositivo USB"</string> <string name="noApplications" msgid="1691104391758345586">"Nessuna applicazione è in grado di svolgere questa azione."</string> <string name="aerr_title" msgid="653922989522758100">"Spiacenti."</string> <string name="aerr_application" msgid="4683614104336409186">"Interruzione imprevista dell\'applicazione <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>). Riprova."</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 1b597c8..07fab9e 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"מאפשר ליישום לשלוט ברטט."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"שליטה בפנס"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"מאפשר ליישום לשלוט בפנס."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"נהל העדפות ואישורים עבור התקני USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"מאפשר ליישום לנהל העדפות ואישורים עבור התקני USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"יישם פרוטוקול MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"מאפשר גישה למנהל התקן MTP של הליבה כדי ליישם פרוטוקול USB של MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"בדוק חומרה"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"השתמש כברירת מחדל עבור פעולה זו."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"נקה את ברירת המחדל ב\'הגדרות דף הבית\' > \'יישומים\' > \'נהל יישומים\'."</string> <string name="chooseActivity" msgid="1009246475582238425">"בחר פעולה"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"בחר יישום עבור התקן ה-USB"</string> <string name="noApplications" msgid="1691104391758345586">"אין יישומים שיכולים לבצע פעולה זו."</string> <string name="aerr_title" msgid="653922989522758100">"מצטערים!"</string> <string name="aerr_application" msgid="4683614104336409186">"היישום <xliff:g id="APPLICATION">%1$s</xliff:g> (תהליך <xliff:g id="PROCESS">%2$s</xliff:g>) הופסק באופן לא צפוי. נסה שוב."</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 7594744..c6a5f95 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"バイブレーションの制御をアプリケーションに許可します。"</string> <string name="permlab_flashlight" msgid="2155920810121984215">"ライトのコントロール"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"ライトの制御をアプリケーションに許可します。"</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"USBデバイスの設定と許可の管理"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"USBデバイスの設定と許可の管理をアプリケーションに許可します。"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTPプロトコルの実装"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"カーネルMTPドライバにアクセスしてMTP USBプロトコルを実装することを許可します。"</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"ハードウェアのテスト"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"常にこの操作で使用する"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"ホームの[設定]>[アプリケーション]>[アプリケーションの管理]でデフォルト設定をクリアします。"</string> <string name="chooseActivity" msgid="1009246475582238425">"操作の選択"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"USBデバイス用アプリケーションを選択"</string> <string name="noApplications" msgid="1691104391758345586">"この操作を実行できるアプリケーションはありません。"</string> <string name="aerr_title" msgid="653922989522758100">"エラー"</string> <string name="aerr_application" msgid="4683614104336409186">"<xliff:g id="APPLICATION">%1$s</xliff:g>(<xliff:g id="PROCESS">%2$s</xliff:g>)が予期せず停止しました。やり直してください。"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index a718344..1b7051e 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"애플리케이션이 진동을 제어할 수 있도록 합니다."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"카메라 플래시 제어"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"애플리케이션이 카메라 플래시를 제어할 수 있도록 합니다."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"USB 기기에 대한 환경설정 및 권한 관리"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"애플리케이션이 USB 기기에 대한 환경설정 및 권한을 관리하도록 허용합니다."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP 프로토콜 구현"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"커널 MTP 드라이버에 액세스하여 MTP USB 프로토콜을 구현할 수 있도록 허용합니다."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"하드웨어 테스트"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"이 작업에 대해 기본값으로 사용"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"홈 설정 > 애플리케이션 > 애플리케이션 관리에서 기본값을 지웁니다."</string> <string name="chooseActivity" msgid="1009246475582238425">"작업 선택"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"USB 기기에 대한 애플리케이션 선택"</string> <string name="noApplications" msgid="1691104391758345586">"작업을 수행할 수 있는 애플리케이션이 없습니다."</string> <string name="aerr_title" msgid="653922989522758100">"죄송합니다."</string> <string name="aerr_application" msgid="4683614104336409186">"<xliff:g id="APPLICATION">%1$s</xliff:g> 애플리케이션(<xliff:g id="PROCESS">%2$s</xliff:g> 프로세스)이 예상치 않게 중지되었습니다. 다시 시도해 주세요."</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 2580af9..850a6c9 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Leidžia programai valdyti vibratorių."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"valdyti šviesos signalą"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Leidžia programai valdyti šviesos signalą."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"valdyti USB įrenginių nuostatas ir leidimus"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Leidžiama programai valdyti USB įrenginių nuostatas ir leidimus."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"taikyti MTP protokolą"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Leidžiama prieiga prie pagrindinės MTP tvarkyklės taikyti MTP USB protokolą."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"bandyti aparatinę įrangą"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Šiam veiksmui tai naudoti pagal numatytuosius nustatymus."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Išvalykite numatytuosius nustatymus apsilankę „Pagrindiniai nustatymai“ > „Programos“ > „Valdyti programas“."</string> <string name="chooseActivity" msgid="1009246475582238425">"pasirinkti veiksmą"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Pasirinkti programą USB įrenginiui"</string> <string name="noApplications" msgid="1691104391758345586">"Šio veiksmo negali atlikti jokios programos."</string> <string name="aerr_title" msgid="653922989522758100">"Apgailestaujame!"</string> <string name="aerr_application" msgid="4683614104336409186">"Programa <xliff:g id="APPLICATION">%1$s</xliff:g> (<xliff:g id="PROCESS">%2$s</xliff:g> procesas) netikėtai sustojo. Bandykite dar kartą."</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index b7adf2d..a4936ac 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Ļauj lietojumprogrammai kontrolēt vibrozvanu."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kontrolēt uzliesmojumu"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Ļauj lietojumprogrammai kontrolēt uzliesmojumu."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"USB ierīču preferenču un atļauju pārvaldība"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Ļauj lietojumprogrammai pārvaldīt preferences un atļaujas saistībā ar USB ierīcēm."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"Ieviests MTP protokols"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Ļauj piekļūt kodola MTP dzinim, lai ieviestu MTP USB protokolu."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"pārbaudīt aparatūru"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Pēc noklusējuma izmantot šai darbībai."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Notīriet noklusējumu šeit: Sākuma iestatījumi > Lietojumprogrammas > Lietojumprogrammu pārvaldība."</string> <string name="chooseActivity" msgid="1009246475582238425">"Atlasiet darbību"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Atlasīt lietojumprogrammu USB ierīcei"</string> <string name="noApplications" msgid="1691104391758345586">"Šo darbību nevar veikt neviena lietojumprogramma."</string> <string name="aerr_title" msgid="653922989522758100">"Atvainojiet!"</string> <string name="aerr_application" msgid="4683614104336409186">"Lietojumprogrammas <xliff:g id="APPLICATION">%1$s</xliff:g> (process <xliff:g id="PROCESS">%2$s</xliff:g>) darbība neparedzēti tika apturēta. Lūdzu, mēģiniet vēlreiz."</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index d3463fd..3b15f88 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Lar applikasjonen kontrollere vibratoren."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kontrollere lommelykten"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Lar applikasjonen kontrollere lommelykten."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"administrere innstillinger og tillatelser for USB-enheter"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Tillater at programmet administrerer innstillinger og tillatelser for USB-enheter."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementer MTP-protokoll"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Tillater tilgang til kjerne-MTP-driver for implementering av MTP USB-protokollen."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"teste maskinvare"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Bruk som standardvalg."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Fjern standardvalg i Innstillinger > Applikasjoner > Installerte applikasjoner."</string> <string name="chooseActivity" msgid="1009246475582238425">"Velg en aktivitet"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Velg et program for USB-enheten"</string> <string name="noApplications" msgid="1691104391758345586">"Ingen applikasjoner kan gjøre dette."</string> <string name="aerr_title" msgid="653922989522758100">"Beklager!"</string> <string name="aerr_application" msgid="4683614104336409186">"Applikasjonen <xliff:g id="APPLICATION">%1$s</xliff:g> (prosess <xliff:g id="PROCESS">%2$s</xliff:g>) stoppet uventet. Prøv igjen."</string> @@ -922,11 +919,11 @@ <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Skadet minnekort"</string> <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="529021299294450667">"USB-lagring er skadet. Det kan være nødvendig å formatere enheten på nytt."</string> <string name="ext_media_unmountable_notification_message" product="default" msgid="6902531775948238989">"Minnekortet er skadet. Du må kanskje formatere det."</string> - <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-lagring fjernet uventet"</string> + <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-enhet fjernet uventet"</string> <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Minnekortet ble tatt ut uventet"</string> <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Koble fra USB-enheten før du tar den ut for å unngå tap av data."</string> <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Avmonter minnekortet før det tas ut, for å unngå datatap."</string> - <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-lagring kan trygt fjernes"</string> + <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-enheten kan trygt fjernes"</string> <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Trygt å ta ut minnekort"</string> <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Det er trygt å ta ut enheten for USB-lagring."</string> <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Det er trygt å ta ut minnekortet."</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 68ab40c..5ca1e4d 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Hiermee kan de app de trilstand beheren."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"zaklamp bedienen"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Hiermee kan de app de zaklamp bedienen."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"voorkeuren en rechten voor USB-apparaten beheren"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Hiermee kan de app voorkeuren en rechten voor USB-apparaten beheren."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP-protocol implementeren"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Staat toegang tot de kernel van de MTP-driver toe voor het implementeren van het MTP-USB-protocol."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"hardware testen"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Standaard gebruiken voor deze actie."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Wis standaardinstelling via startscherm: \'Instellingen\' > \'Toepassingen\' > \'Toepassingen beheren\'."</string> <string name="chooseActivity" msgid="1009246475582238425">"Een actie selecteren"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selecteer een app voor het USB-apparaat"</string> <string name="noApplications" msgid="1691104391758345586">"Geen enkele app kan deze actie uitvoeren."</string> <string name="aerr_title" msgid="653922989522758100">"Helaas!"</string> <string name="aerr_application" msgid="4683614104336409186">"De app <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) is onverwachts gestopt. Probeer het opnieuw."</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 0eeda2b..de44e72 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Pozwala aplikacjom na kontrolowanie wibracji."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kontrolowanie latarki"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Pozwala aplikacji kontrolować latarkę."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"zarządzanie ustawieniami i uprawnieniami urządzeń USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Umożliwia aplikacji zarządzanie ustawieniami i uprawnieniami urządzeń USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementowanie protokołu MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Zezwala na dostęp do sterownika MTP jądra w celu implementacji protokołu USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testowanie sprzętu"</string> @@ -466,7 +464,7 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"modyfikowanie/usuwanie zawartości karty SD"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Umożliwia zapis na nośnik USB."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Umożliwia aplikacji zapis na karcie SD."</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modyf./usuw. zawartości pam. wewn."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"modyfikowanie/usuwanie zawartości pamięci wew."</string> <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Zezwala aplikacji na modyfikowanie zawartości pamięci wewnętrznej."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"dostęp do systemu plików pamięci podręcznej"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Zezwala aplikacji na odczyt i zapis w systemie plików pamięci podręcznej."</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Używaj domyślnie dla tej czynności."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Wyczyść domyślne w: Ustawienia strony głównej > Aplikacje > Zarządzaj aplikacjami."</string> <string name="chooseActivity" msgid="1009246475582238425">"Wybierz czynność"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Wybierz aplikację dla urządzenia USB"</string> <string name="noApplications" msgid="1691104391758345586">"Żadna z aplikacji nie może wykonać tej czynności."</string> <string name="aerr_title" msgid="653922989522758100">"Przepraszamy!"</string> <string name="aerr_application" msgid="4683614104336409186">"Aplikacja <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) została niespodziewanie zatrzymana. Spróbuj ponownie."</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 014bf88..1e2bd22 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permite à aplicação controlar o vibrador."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controlar lanterna"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permite à aplicação controlar a lanterna."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gerir preferências e permissões para dispositivos USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permite à aplicação gerir as preferências e permissões para dispositivos USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementar protocolo MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permite o acesso ao controlador MTP de kernel para implementar o protocolo MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testar hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Utilizar por predefinição para esta acção."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Limpar predefinição em Definições iniciais > Aplicações > Gerir aplicações."</string> <string name="chooseActivity" msgid="1009246475582238425">"Seleccionar uma acção"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selecione uma aplicação para o dispositivo USB"</string> <string name="noApplications" msgid="1691104391758345586">"Nenhuma aplicação pode efectuar esta acção."</string> <string name="aerr_title" msgid="653922989522758100">"Lamentamos."</string> <string name="aerr_application" msgid="4683614104336409186">"A aplicação <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) parou de forma inesperada. Tente novamente."</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 07907fb..fd3775a 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permite que o aplicativo controle o vibrador."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"controlar lanterna"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permite que o aplicativo controle a lanterna."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gerenciar preferências e permissões de aplicativos USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permite que o aplicativo gerencie as preferências e as permissões de aplicativos USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementar protocolo MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permite acesso ao driver MTP do núcleo para implementar o protocolo USB MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testar hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Usar como padrão para esta ação."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Limpar o padrão em Configurações da página inicial > Aplicativos > Gerenciar aplicativos."</string> <string name="chooseActivity" msgid="1009246475582238425">"Selecionar uma ação"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selecione um aplicativo para o dispositivo USB"</string> <string name="noApplications" msgid="1691104391758345586">"Nenhum aplicativo pode realizar esta ação."</string> <string name="aerr_title" msgid="653922989522758100">"Desculpe!"</string> <string name="aerr_application" msgid="4683614104336409186">"O aplicativo <xliff:g id="APPLICATION">%1$s</xliff:g> (processo <xliff:g id="PROCESS">%2$s</xliff:g>) parou inesperadamente. Tente novamente."</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 59fc5c9..b388128 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Permite aplicaţiei să controleze mecanismul de vibrare."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"control lanternă"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Permite aplicaţiei să controleze lanterna."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"gestionaţi preferinţele şi permisiunile pentru dispozitivele USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Permite aplicaţiei să gestioneze preferinţele şi permisiunile pentru dispozitivele USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementare protocol MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Permite accesul la driverul MTP al nucleului pentru a implementa protocolul USB pentru MTP."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testare hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Se utilizează în mod prestabilit pentru această acţiune."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Ştergeţi setările prestabilite din Setări pagină de pornire > Aplicaţii > Gestionare aplicaţii."</string> <string name="chooseActivity" msgid="1009246475582238425">"Selectaţi o acţiune"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Selectaţi o aplicaţie pentru dispozitivul USB"</string> <string name="noApplications" msgid="1691104391758345586">"Această acţiune nu poate fi efectuată de nicio aplicaţie."</string> <string name="aerr_title" msgid="653922989522758100">"Ne pare rău!"</string> <string name="aerr_application" msgid="4683614104336409186">"Aplicaţia <xliff:g id="APPLICATION">%1$s</xliff:g> (procesul <xliff:g id="PROCESS">%2$s</xliff:g>) s-a oprit în mod neaşteptat. Încercaţi din nou."</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index ff67961..10a2898 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Позволяет приложению управлять виброзвонком."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"управлять вспышкой"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Позволяет приложению управлять вспышкой."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"управлять настройками и разрешениями для USB-устройств"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Приложение может управлять настройками и разрешениями для USB-устройств."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"Реализовать протокол MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Разрешает доступ к драйверу основного устройства MTP для реализации протокола MTP USB"</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"проверять аппаратное обеспечение"</string> @@ -466,8 +464,8 @@ <string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"изменять/удалять содержимое SD-карты"</string> <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Разрешает приложению запись на USB-накопитель."</string> <string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Разрешает приложению запись на SD-карту"</string> - <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"изм./удал. содерж. мультимедиа"</string> - <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Позволяет приложению изменять содержание внутреннего хранилища мультимедиа."</string> + <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"изменение/удаление данных из внутреннего хранилища мультимедиа"</string> + <string name="permdesc_mediaStorageWrite" product="default" msgid="8232008512478316233">"Приложение сможет изменять содержание внутреннего хранилища мультимедиа."</string> <string name="permlab_cache_filesystem" msgid="5656487264819669824">"получать доступ к кэшу файловой системы"</string> <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Разрешает программам доступ для записи и чтения к кэшу файловой системы."</string> <string name="permlab_use_sip" msgid="5986952362795870502">"совершать и принимать интернет-вызовы"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"По умолчанию для этого действия"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Удалить настройки по умолчанию: главный экран > \"Настройки\" > \"Приложения\" > \"Управление приложениями\"."</string> <string name="chooseActivity" msgid="1009246475582238425">"Выберите действие"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Выбор приложения для USB-устройства"</string> <string name="noApplications" msgid="1691104391758345586">"Это действие не может выполнять ни одно приложение."</string> <string name="aerr_title" msgid="653922989522758100">"Ошибка приложения!"</string> <string name="aerr_application" msgid="4683614104336409186">"Произошла неожиданная остановка приложения <xliff:g id="APPLICATION">%1$s</xliff:g> (процесс <xliff:g id="PROCESS">%2$s</xliff:g>). Повторите попытку."</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 5d10d27..8a37fd1 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Umožňuje aplikácii ovládať vibrácie."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"ovládanie kontrolky"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Umožňuje aplikácii ovládať kontrolku."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"spravovať predvoľby a povolenia zariadení USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Povolí aplikácii spravovať predvoľby a povolenia zariadení USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementovať protokol MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Povoľuje prístup k ovládaču kernel MTP na implementáciu protokolu MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testovanie hardvéru"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Použiť ako predvolené nastavenie pre túto akciu."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Vymazanie predvolených hodnôt v časti Nastavenia plochy > Aplikácie > Správa aplikácií."</string> <string name="chooseActivity" msgid="1009246475582238425">"Vyberte akciu"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Vyberte aplikáciu pre zariadenia USB"</string> <string name="noApplications" msgid="1691104391758345586">"Túto akciu nemôžu vykonávať žiadne aplikácie."</string> <string name="aerr_title" msgid="653922989522758100">"Je nám ľúto!"</string> <string name="aerr_application" msgid="4683614104336409186">"Aplikácia <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) bola neočakávane zastavená. Skúste to znova."</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 3d003fb..6ee4ac0 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Programu dovoljuje nadzor vibriranja."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"nadzor svetilke"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Programu dovoljuje nadzor svetilke."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"upravljanje nastavitev in dovoljenj za naprave USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Omogoči programu upravljanje nastavitev in dovoljenj za naprave USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"uveljavitev protokola MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Omogoča dostop do gonilnika jedra MTP za uveljavitev protokola MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"preskušanje strojne opreme"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Privzeta uporaba za to dejanje."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Počistite privzete nastavitve v razdelku Osnovne nastavitve > Programi > Upravljanje programov."</string> <string name="chooseActivity" msgid="1009246475582238425">"Izberite dejanje"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Izberite program za napravo USB"</string> <string name="noApplications" msgid="1691104391758345586">"Tega dejanja ne more izvesti noben program."</string> <string name="aerr_title" msgid="653922989522758100">"Oprostite."</string> <string name="aerr_application" msgid="4683614104336409186">"Program <xliff:g id="APPLICATION">%1$s</xliff:g> (postopek <xliff:g id="PROCESS">%2$s</xliff:g>) se je nepričakovano ustavil. Poskusite znova."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index a8d9e29..6faf9da 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Омогућава да апликација контролише вибрације."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"контрола осветљења"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Омогућава да апликација контролише осветљење."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"управљање подешавањима и дозволама за USB уређаје"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Омогућава да апликација управља подешавањима и дозволама за USB уређаје."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"примени MTP протокол"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Омогућава приступ основном MTP управљачком програму ради примене MTP USB протокола."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"тестирање хардвера"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Подразумевано користи за ову радњу."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Обришите подразумевана подешавања у оквиру ставки Подешавања почетне странице > Апликације > Управљање апликацијама."</string> <string name="chooseActivity" msgid="1009246475582238425">"Избор радње"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Избор апликације за USB уређај"</string> <string name="noApplications" msgid="1691104391758345586">"Ниједна апликација не може да изврши ову радњу."</string> <string name="aerr_title" msgid="653922989522758100">"Жао нам је!"</string> <string name="aerr_application" msgid="4683614104336409186">"Апликација <xliff:g id="APPLICATION">%1$s</xliff:g> (процес <xliff:g id="PROCESS">%2$s</xliff:g>) је неочекивано заустављена. Покушајте поново."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 9b93047..fcc1fdd 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Tillåter att programmet styr vibratorn."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"styra lampa"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Tillåter att programmet styr lampan."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"hantera inställningar och behörighet för USB-enheter"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Tillåter att programmet hanterar inställningar och behörigheter för USB-enheter."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"implementera MTP-protokoll"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Ger åtkomst till MTP-kerneldrivrutinen för att implementera MTP/USB-protokollet."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"testa maskinvara"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Använd som standard för denna åtgärd."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Rensa standardinställning i Startinställningar > Appar > Hantera appar."</string> <string name="chooseActivity" msgid="1009246475582238425">"Välj en åtgärd"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Välj ett program för USB-enheten"</string> <string name="noApplications" msgid="1691104391758345586">"Inga appar kan utföra den här åtgärden."</string> <string name="aerr_title" msgid="653922989522758100">"Tyvärr!"</string> <string name="aerr_application" msgid="4683614104336409186">"Processen <xliff:g id="PROCESS">%2$s</xliff:g> för programmet <xliff:g id="APPLICATION">%1$s</xliff:g> stoppades oväntat. Försök igen."</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 62dfc29..fae3853 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"อนุญาตให้แอปพลิเคชันควบคุมการสั่นเตือน"</string> <string name="permlab_flashlight" msgid="2155920810121984215">"ควบคุมไฟฉาย"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"อนุญาตให้แอปพลิเคชันควบคุมไฟฉาย"</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"จัดการค่ากำหนดและการอนุญาตสำหรับอุปกรณ์ USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"อนุญาตให้แอปพลิเคชันจัดการค่ากำหนดและการอนุญาตสำหรับอุปกรณ์ USB"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"ใช้โปรโตคอล MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"อนุญาตการเข้าถึงไดรเวอร์ Kernel MTP เพื่อใช้โปรโตคอล MTP USB"</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"ทดสอบฮาร์ดแวร์"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"ใช้ค่าเริ่มต้นสำหรับการทำงานนี้"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"ล้างข้อมูลค่าเริ่มต้นในการตั้งค่าหน้าแรก > แอปพลิเคชัน > จัดการแอปพลิเคชัน"</string> <string name="chooseActivity" msgid="1009246475582238425">"เลือกการทำงาน"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"เลือกแอปพลิเคชันสำหรับอุปกรณ์ USB"</string> <string name="noApplications" msgid="1691104391758345586">"ไม่มีแอปพลิเคชันใดทำงานนี้ได้"</string> <string name="aerr_title" msgid="653922989522758100">"ขออภัย!"</string> <string name="aerr_application" msgid="4683614104336409186">"แอปพลิเคชัน <xliff:g id="APPLICATION">%1$s</xliff:g> (กระบวนการ <xliff:g id="PROCESS">%2$s</xliff:g> หยุดทำงานโดยไม่คาดหมาย โปรดลองอีกครั้ง"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 08c3ff7..5d4a916 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Pinapayagan ang application na kontrolin ang vibrator."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kontrolin ang flashlight"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Pinapayagan ang application na kontrolin ang flashlight."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"pamahalaan ang mga kagustuhan at pahintulot para sa mga USB device"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Pinapayagan ang application na pamahalaan ang mga kagustuhan at pahintulot para sa mga USB device."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"ipatupad ang MTP protocol"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Pinapayagan ang access sa kernel MTP driver upang maipatupad ang MTP USB protocol."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"subukan ang hardware"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Gamitin bilang default para sa pagkilos na ito."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"I-clear ang default sa Mga Setting ng Home > Mga Application > Pamahalaan ang mga application."</string> <string name="chooseActivity" msgid="1009246475582238425">"Pumili ng pagkilos"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Pumili ng application para sa USB device"</string> <string name="noApplications" msgid="1691104391758345586">"Walang mga application ang makakapagsagawa ng pagkilos na ito."</string> <string name="aerr_title" msgid="653922989522758100">"Paumanhin!"</string> <string name="aerr_application" msgid="4683614104336409186">"Hindi inaasahang humito ang <xliff:g id="APPLICATION">%1$s</xliff:g> (proseso <xliff:g id="PROCESS">%2$s</xliff:g>) ng application. Pakisubukang muli."</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 0b0ef01..58b681e 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Uygulamanın titreşimi denetlemesine izin verir."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"flaşı denetle"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Uygulamaların flaş ışığını denetlemesine izin verir."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"USB cihazları için tercihleri ve izinleri yönet"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Uygulamanın USB cihazları için tercihleri ve izinleri yönetmesine izin verir."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP protokolünü uygula"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"MTP USB protokolünü uygulamak için çekirdekteki MTP sürücüsüne erişim izni ver."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"donanımı test et"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Varsayılan olarak bu işlem için kullan."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Giriş Ayarları > Uygulamalar > Uygulamaları yönet\'te varsayılanı temizleyin."</string> <string name="chooseActivity" msgid="1009246475582238425">"İşlem seç"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"USB cihazı için bir uygulama seçin"</string> <string name="noApplications" msgid="1691104391758345586">"Hiçbir uygulama bu işlemi yapamaz."</string> <string name="aerr_title" msgid="653922989522758100">"Üzgünüz!"</string> <string name="aerr_application" msgid="4683614104336409186">"<xliff:g id="APPLICATION">%1$s</xliff:g> uygulaması (<xliff:g id="PROCESS">%2$s</xliff:g> işlemi) beklenmedik biçimde durdu. Lütfen yeniden deneyin."</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index eabbea1..60cea7b 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Дозволяє програмі контролювати вібросигнал."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"контр. блим. світло"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Дозволяє програмі контролювати світловий сигнал."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"керувати налаштуваннями та дозволами для пристроїв USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Дозволяє програмі керувати налаштуваннями та дозволами для пристроїв USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"впроваджувати протокол MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Дозволяє доступ до драйвера ядра MTP для впровадження протоколу MTP (USB)."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"тест-ти обладн."</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Використ. за умовч. для цієї дії."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Очист. налашт. за умовч. у Дом. налашт. > Програми > Керув. програмами."</string> <string name="chooseActivity" msgid="1009246475582238425">"Виберіть дію"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Виберіть програму для пристрою USB"</string> <string name="noApplications" msgid="1691104391758345586">"Жодна програма не може виконати цю дію."</string> <string name="aerr_title" msgid="653922989522758100">"Помилка!"</string> <string name="aerr_application" msgid="4683614104336409186">"Програма <xliff:g id="APPLICATION">%1$s</xliff:g> (процес <xliff:g id="PROCESS">%2$s</xliff:g>) несподівано зупинилася. Спробуйте ще."</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 812004b..8070767 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"Cho phép ứng dụng kiểm soát bộ rung."</string> <string name="permlab_flashlight" msgid="2155920810121984215">"kiểm soát đèn nháy"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"Cho phép ứng dụng kiểm soát đèn nháy."</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"quản lý các tùy chọn và quyền dành cho thiết bị USB"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Cho phép ứng dụng quản lý các tùy chọn và quyền dành cho thiết bị USB."</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"triển khai giao thức MTP"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"Cho phép truy cập tới trình điều khiển MTP nhân hệ điều hành để triển khai giao thức MTP USB."</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"kiểm tra phần cứng"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"Sử dụng theo mặc định đối với tác vụ này."</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Xoá mặc định trong Cài đặt Màn hình trang chủ > Ứng dụng> Quản lý ứng dụng."</string> <string name="chooseActivity" msgid="1009246475582238425">"Chọn tác vụ"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"Chọn ứng dụng cho thiết bị USB"</string> <string name="noApplications" msgid="1691104391758345586">"Không ứng dụng nào có thể thực hiện tác vụ này."</string> <string name="aerr_title" msgid="653922989522758100">"Rất tiếc!"</string> <string name="aerr_application" msgid="4683614104336409186">"Ứng dụng <xliff:g id="APPLICATION">%1$s</xliff:g> (quá trình <xliff:g id="PROCESS">%2$s</xliff:g>) đã dừng đột ngột. Vui lòng thử lại."</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 3b70dd7..fce5fca 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"允许应用程序控制振动器。"</string> <string name="permlab_flashlight" msgid="2155920810121984215">"控制闪光灯"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"允许应用程序控制闪光灯。"</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"管理 USB 设备的偏好设置和权限"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"允许应用程序管理 USB 设备的偏好设置和权限。"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"应用 MTP 协议"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"允许访问内核 MTP 驱动程序,以便应用 MTP USB 协议。"</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"测试硬件"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"默认使用此方式发送。"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"通过主屏幕上的“设置”>“应用程序”>“管理应用程序”清除默认设置。"</string> <string name="chooseActivity" msgid="1009246475582238425">"选择一项操作"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"选择适用于 USB 设备的应用程序"</string> <string name="noApplications" msgid="1691104391758345586">"没有应用程序可执行此操作。"</string> <string name="aerr_title" msgid="653922989522758100">"很抱歉!"</string> <string name="aerr_application" msgid="4683614104336409186">"应用程序 <xliff:g id="APPLICATION">%1$s</xliff:g>(进程:<xliff:g id="PROCESS">%2$s</xliff:g>)意外停止,请重试。"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index e72b28e..141ed01 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -361,10 +361,8 @@ <string name="permdesc_vibrate" msgid="2886677177257789187">"允許應用程式控制震動。"</string> <string name="permlab_flashlight" msgid="2155920810121984215">"控制閃光燈"</string> <string name="permdesc_flashlight" msgid="6433045942283802309">"允許應用程式控制閃光燈。"</string> - <!-- no translation found for permlab_manageUsb (1113453430645402723) --> - <skip /> - <!-- no translation found for permdesc_manageUsb (6148489202092166164) --> - <skip /> + <string name="permlab_manageUsb" msgid="1113453430645402723">"管理 USB 裝置的偏好設定和權限"</string> + <string name="permdesc_manageUsb" msgid="6148489202092166164">"允許應用程式管理 USB 裝置的偏好設定和權限。"</string> <string name="permlab_accessMtp" msgid="4953468676795917042">"執行 MTP 通訊協定"</string> <string name="permdesc_accessMtp" msgid="6532961200486791570">"允許存取核心 MTP 驅動程式,以執行 MTP USB 通訊協定。"</string> <string name="permlab_hardware_test" msgid="4148290860400659146">"測試硬體"</string> @@ -816,8 +814,7 @@ <string name="alwaysUse" msgid="4583018368000610438">"以此為本操作預設值。"</string> <string name="clearDefaultHintMsg" msgid="4815455344600932173">"清除首頁設定 (應用程式) 管理應用程式的預設值。"</string> <string name="chooseActivity" msgid="1009246475582238425">"選取一項操作"</string> - <!-- no translation found for chooseUsbActivity (7892597146032121735) --> - <skip /> + <string name="chooseUsbActivity" msgid="7892597146032121735">"選取要以 USB 裝置存取的應用程式"</string> <string name="noApplications" msgid="1691104391758345586">"沒有應用程式可執行此項操作。"</string> <string name="aerr_title" msgid="653922989522758100">"很抱歉!"</string> <string name="aerr_application" msgid="4683614104336409186">"<xliff:g id="APPLICATION">%1$s</xliff:g> 應用程式 (程序:<xliff:g id="PROCESS">%2$s</xliff:g>) 異常終止。請再試一次。"</string> diff --git a/core/res/res/values/arrays.xml b/core/res/res/values/arrays.xml index fa33b0a..9073531 100644 --- a/core/res/res/values/arrays.xml +++ b/core/res/res/values/arrays.xml @@ -242,15 +242,15 @@ <item>@drawable/action_bar_background</item> <item>@drawable/action_bar_divider</item> <item>@drawable/ic_menu_close_clear_cancel</item> - <item>@drawable/ic_menu_copy_dark</item> - <item>@drawable/ic_menu_copy_light</item> - <item>@drawable/ic_menu_cut_dark</item> - <item>@drawable/ic_menu_cut_light</item> + <item>@drawable/ic_menu_copy_holo_dark</item> + <item>@drawable/ic_menu_copy_holo_light</item> + <item>@drawable/ic_menu_cut_holo_dark</item> + <item>@drawable/ic_menu_cut_holo_light</item> <item>@drawable/ic_menu_more</item> <item>@drawable/ic_menu_moreoverflow_holo_dark</item> <item>@drawable/ic_menu_moreoverflow_holo_light</item> - <item>@drawable/ic_menu_paste_dark</item> - <item>@drawable/ic_menu_paste_light</item> + <item>@drawable/ic_menu_paste_holo_dark</item> + <item>@drawable/ic_menu_paste_holo_light</item> <item>@drawable/dialog_bottom_holo_dark</item> <item>@drawable/dialog_bottom_holo_light</item> <item>@drawable/dialog_full_holo_dark</item> diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index 5f4ea32..b127747 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -260,11 +260,11 @@ <item name="actionOverflowButtonStyle">@android:style/Widget.ActionButton.Overflow</item> <item name="actionModeBackground">@android:drawable/cab_background_dark</item> <item name="actionModeCloseDrawable">@android:drawable/ic_menu_close_clear_cancel</item> - <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_dark</item> - <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_dark</item> - <item name="actionModePasteDrawable">@android:drawable/ic_menu_paste_dark</item> - <item name="actionModeShareDrawable">@android:drawable/ic_menu_share</item> - <item name="actionModeFindDrawable">@android:drawable/ic_menu_find</item> + <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_holo_dark</item> + <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_holo_dark</item> + <item name="actionModePasteDrawable">@android:drawable/ic_menu_paste_holo_dark</item> + <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item> + <item name="actionModeFindDrawable">@android:drawable/ic_menu_find_holo_dark</item> <item name="actionModeWebSearchDrawable">@android:drawable/ic_menu_search</item> <item name="actionBarTabStyle">@style/Widget.ActionBarView_TabView</item> <item name="actionBarTabBarStyle">@style/Widget.ActionBarView_TabBar</item> @@ -385,9 +385,9 @@ <item name="progressBarStyleInverse">@android:style/Widget.ProgressBar</item> <item name="progressBarStyleSmallInverse">@android:style/Widget.ProgressBar.Small</item> <item name="progressBarStyleLargeInverse">@android:style/Widget.ProgressBar.Large</item> - <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_light</item> - <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_light</item> - <item name="actionModePasteDrawable">@android:drawable/ic_menu_paste_light</item> + <item name="actionModeCutDrawable">@android:drawable/ic_menu_cut_holo_light</item> + <item name="actionModeCopyDrawable">@android:drawable/ic_menu_copy_holo_light</item> + <item name="actionModePasteDrawable">@android:drawable/ic_menu_paste_holo_light</item> <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_light</item> <item name="actionModeFindDrawable">@android:drawable/ic_menu_find_holo_light</item> <item name="actionModeWebSearchDrawable">@android:drawable/ic_menu_search_holo_light</item> diff --git a/drm/common/IDrmManagerService.cpp b/drm/common/IDrmManagerService.cpp index 696e305..16f1dd0 100644 --- a/drm/common/IDrmManagerService.cpp +++ b/drm/common/IDrmManagerService.cpp @@ -37,6 +37,63 @@ using namespace android; +static void writeDecrptHandleToParcelData( + const DecryptHandle* handle, Parcel* data) { + data->writeInt32(handle->decryptId); + data->writeString8(handle->mimeType); + data->writeInt32(handle->decryptApiType); + data->writeInt32(handle->status); + + int size = handle->copyControlVector.size(); + data->writeInt32(size); + for(int i = 0; i < size; i++) { + data->writeInt32(handle->copyControlVector.keyAt(i)); + data->writeInt32(handle->copyControlVector.valueAt(i)); + } + + if (NULL != handle->decryptInfo) { + data->writeInt32(handle->decryptInfo->decryptBufferLength); + } else { + data->writeInt32(INVALID_BUFFER_LENGTH); + } +} + +static void readDecryptHandleFromParcelData( + DecryptHandle* handle, const Parcel& data) { + if (0 == data.dataAvail()) { + return; + } + + handle->decryptId = data.readInt32(); + handle->mimeType = data.readString8(); + handle->decryptApiType = data.readInt32(); + handle->status = data.readInt32(); + + int size = data.readInt32(); + for (int i = 0; i < size; i ++) { + handle->copyControlVector.add( + (DrmCopyControl)data.readInt32(), data.readInt32()); + } + + handle->decryptInfo = NULL; + const int bufferLen = data.readInt32(); + if (INVALID_BUFFER_LENGTH != bufferLen) { + handle->decryptInfo = new DecryptInfo(); + handle->decryptInfo->decryptBufferLength = bufferLen; + } +} + +static void clearDecryptHandle(DecryptHandle* handle) { + if (handle == NULL) { + return; + } + if (handle->decryptInfo) { + delete handle->decryptInfo; + handle->decryptInfo = NULL; + } + handle->copyControlVector.clear(); +} + int BpDrmManagerService::addUniqueId(int uniqueId) { LOGV("add uniqueid"); Parcel data, reply; @@ -344,16 +401,7 @@ status_t BpDrmManagerService::consumeRights( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); data.writeInt32(action); data.writeInt32(static_cast< int>(reserve)); @@ -370,16 +418,7 @@ status_t BpDrmManagerService::setPlaybackStatus( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); data.writeInt32(playbackStatus); data.writeInt64(position); @@ -560,15 +599,7 @@ DecryptHandle* BpDrmManagerService::openDecryptSession( DecryptHandle* handle = NULL; if (0 != reply.dataAvail()) { handle = new DecryptHandle(); - handle->decryptId = reply.readInt32(); - handle->mimeType = reply.readString8(); - handle->decryptApiType = reply.readInt32(); - handle->status = reply.readInt32(); - handle->decryptInfo = NULL; - if (0 != reply.dataAvail()) { - handle->decryptInfo = new DecryptInfo(); - handle->decryptInfo->decryptBufferLength = reply.readInt32(); - } + readDecryptHandleFromParcelData(handle, reply); } return handle; } @@ -586,15 +617,7 @@ DecryptHandle* BpDrmManagerService::openDecryptSession(int uniqueId, const char* DecryptHandle* handle = NULL; if (0 != reply.dataAvail()) { handle = new DecryptHandle(); - handle->decryptId = reply.readInt32(); - handle->mimeType = reply.readString8(); - handle->decryptApiType = reply.readInt32(); - handle->status = reply.readInt32(); - handle->decryptInfo = NULL; - if (0 != reply.dataAvail()) { - handle->decryptInfo = new DecryptInfo(); - handle->decryptInfo->decryptBufferLength = reply.readInt32(); - } + readDecryptHandleFromParcelData(handle, reply); } else { LOGV("no decryptHandle is generated in service side"); } @@ -608,16 +631,7 @@ status_t BpDrmManagerService::closeDecryptSession(int uniqueId, DecryptHandle* d data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); remote()->transact(CLOSE_DECRYPT_SESSION, data, &reply); @@ -638,16 +652,8 @@ status_t BpDrmManagerService::initializeDecryptUnit( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); + writeDecrptHandleToParcelData(decryptHandle, &data); - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } data.writeInt32(decryptUnitId); data.writeInt32(headerInfo->length); @@ -666,16 +672,7 @@ status_t BpDrmManagerService::decrypt( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); data.writeInt32(decryptUnitId); data.writeInt32((*decBuffer)->length); @@ -708,16 +705,7 @@ status_t BpDrmManagerService::finalizeDecryptUnit( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); data.writeInt32(decryptUnitId); @@ -735,16 +723,7 @@ ssize_t BpDrmManagerService::pread( data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); - data.writeInt32(decryptHandle->decryptId); - data.writeString8(decryptHandle->mimeType); - data.writeInt32(decryptHandle->decryptApiType); - data.writeInt32(decryptHandle->status); - - if (NULL != decryptHandle->decryptInfo) { - data.writeInt32(decryptHandle->decryptInfo->decryptBufferLength); - } else { - data.writeInt32(INVALID_BUFFER_LENGTH); - } + writeDecrptHandleToParcelData(decryptHandle, &data); data.writeInt32(numBytes); data.writeInt64(offset); @@ -1069,24 +1048,14 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); const status_t status = consumeRights(uniqueId, &handle, data.readInt32(), static_cast<bool>(data.readInt32())); reply->writeInt32(status); - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); return DRM_NO_ERROR; } @@ -1098,23 +1067,13 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); const status_t status = setPlaybackStatus(uniqueId, &handle, data.readInt32(), data.readInt64()); reply->writeInt32(status); - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); return DRM_NO_ERROR; } @@ -1275,16 +1234,10 @@ status_t BnDrmManagerService::onTransact( = openDecryptSession(uniqueId, fd, data.readInt64(), data.readInt64()); if (NULL != handle) { - reply->writeInt32(handle->decryptId); - reply->writeString8(handle->mimeType); - reply->writeInt32(handle->decryptApiType); - reply->writeInt32(handle->status); - if (NULL != handle->decryptInfo) { - reply->writeInt32(handle->decryptInfo->decryptBufferLength); - delete handle->decryptInfo; handle->decryptInfo = NULL; - } + writeDecrptHandleToParcelData(handle, reply); + clearDecryptHandle(handle); + delete handle; handle = NULL; } - delete handle; handle = NULL; return DRM_NO_ERROR; } @@ -1299,18 +1252,13 @@ status_t BnDrmManagerService::onTransact( DecryptHandle* handle = openDecryptSession(uniqueId, uri.string()); if (NULL != handle) { - reply->writeInt32(handle->decryptId); - reply->writeString8(handle->mimeType); - reply->writeInt32(handle->decryptApiType); - reply->writeInt32(handle->status); - if (NULL != handle->decryptInfo) { - reply->writeInt32(handle->decryptInfo->decryptBufferLength); - delete handle->decryptInfo; handle->decryptInfo = NULL; - } + writeDecrptHandleToParcelData(handle, reply); + + clearDecryptHandle(handle); + delete handle; handle = NULL; } else { LOGV("NULL decryptHandle is returned"); } - delete handle; handle = NULL; return DRM_NO_ERROR; } @@ -1322,17 +1270,7 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle* handle = new DecryptHandle(); - handle->decryptId = data.readInt32(); - handle->mimeType = data.readString8(); - handle->decryptApiType = data.readInt32(); - handle->status = data.readInt32(); - handle->decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle->decryptInfo = new DecryptInfo(); - handle->decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(handle, data); const status_t status = closeDecryptSession(uniqueId, handle); reply->writeInt32(status); @@ -1347,17 +1285,8 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); + const int decryptUnitId = data.readInt32(); //Filling Header info @@ -1369,7 +1298,7 @@ status_t BnDrmManagerService::onTransact( = initializeDecryptUnit(uniqueId, &handle, decryptUnitId, headerInfo); reply->writeInt32(status); - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); delete headerInfo; headerInfo = NULL; return DRM_NO_ERROR; } @@ -1382,17 +1311,8 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); + const int decryptUnitId = data.readInt32(); const int decBufferSize = data.readInt32(); @@ -1419,7 +1339,7 @@ status_t BnDrmManagerService::onTransact( reply->writeInt32(size); reply->write(decBuffer->data, size); - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); delete encBuffer; encBuffer = NULL; delete decBuffer; decBuffer = NULL; delete [] buffer; buffer = NULL; @@ -1435,22 +1355,12 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); const status_t status = finalizeDecryptUnit(uniqueId, &handle, data.readInt32()); reply->writeInt32(status); - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); return DRM_NO_ERROR; } @@ -1462,17 +1372,7 @@ status_t BnDrmManagerService::onTransact( const int uniqueId = data.readInt32(); DecryptHandle handle; - handle.decryptId = data.readInt32(); - handle.mimeType = data.readString8(); - handle.decryptApiType = data.readInt32(); - handle.status = data.readInt32(); - handle.decryptInfo = NULL; - - const int bufferLength = data.readInt32(); - if (INVALID_BUFFER_LENGTH != bufferLength) { - handle.decryptInfo = new DecryptInfo(); - handle.decryptInfo->decryptBufferLength = bufferLength; - } + readDecryptHandleFromParcelData(&handle, data); const int numBytes = data.readInt32(); char* buffer = new char[numBytes]; @@ -1485,7 +1385,7 @@ status_t BnDrmManagerService::onTransact( reply->write(buffer, result); } - delete handle.decryptInfo; handle.decryptInfo = NULL; + clearDecryptHandle(&handle); delete [] buffer, buffer = NULL; return DRM_NO_ERROR; } diff --git a/drm/java/android/drm/DrmErrorEvent.java b/drm/java/android/drm/DrmErrorEvent.java index 90adb47f..7cc9a87 100644 --- a/drm/java/android/drm/DrmErrorEvent.java +++ b/drm/java/android/drm/DrmErrorEvent.java @@ -16,6 +16,8 @@ package android.drm; +import java.util.HashMap; + /** * This is an entity class which would be passed to caller in * {@link DrmManagerClient.OnErrorListener#onError(DrmManagerClient, DrmErrorEvent)} @@ -62,11 +64,25 @@ public class DrmErrorEvent extends DrmEvent { * constructor to create DrmErrorEvent object with given parameters * * @param uniqueId Unique session identifier - * @param type Type of information + * @param type Type of the event. It could be one of the types defined above * @param message Message description */ public DrmErrorEvent(int uniqueId, int type, String message) { super(uniqueId, type, message); } + + /** + * constructor to create DrmErrorEvent object with given parameters + * + * @param uniqueId Unique session identifier + * @param type Type of the event. It could be one of the types defined above + * @param message Message description + * @param attributes Attributes for extensible information. Could be any + * information provided by the plugin + */ + public DrmErrorEvent(int uniqueId, int type, String message, + HashMap<String, Object> attributes) { + super(uniqueId, type, message, attributes); + } } diff --git a/drm/java/android/drm/DrmEvent.java b/drm/java/android/drm/DrmEvent.java index f7bc5cd..eba458b 100644 --- a/drm/java/android/drm/DrmEvent.java +++ b/drm/java/android/drm/DrmEvent.java @@ -16,6 +16,8 @@ package android.drm; +import java.util.HashMap; + /** * This is the base class which would be used to notify the caller * about any event occurred in DRM framework. @@ -33,11 +35,36 @@ public class DrmEvent { public static final int TYPE_DRM_INFO_PROCESSED = 1002; public static final String DRM_INFO_STATUS_OBJECT = "drm_info_status_object"; + public static final String DRM_INFO_OBJECT = "drm_info_object"; private final int mUniqueId; private final int mType; private String mMessage = ""; + private HashMap<String, Object> mAttributes = new HashMap<String, Object>(); + + /** + * constructor for DrmEvent class + * + * @param uniqueId Unique session identifier + * @param type Type of information + * @param message Message description + * @param attributes Attributes for extensible information + */ + protected DrmEvent(int uniqueId, int type, String message, + HashMap<String, Object> attributes) { + mUniqueId = uniqueId; + mType = type; + + if (null != message) { + mMessage = message; + } + + if (null != attributes) { + mAttributes = attributes; + } + } + /** * constructor for DrmEvent class * @@ -80,5 +107,15 @@ public class DrmEvent { public String getMessage() { return mMessage; } + + /** + * Returns the attribute corresponding to the specified key + * + * @return one of the attributes or null if no mapping for + * the key is found + */ + public Object getAttribute(String key) { + return mAttributes.get(key); + } } diff --git a/drm/java/android/drm/DrmInfoEvent.java b/drm/java/android/drm/DrmInfoEvent.java index 72f37ea..190199a 100644 --- a/drm/java/android/drm/DrmInfoEvent.java +++ b/drm/java/android/drm/DrmInfoEvent.java @@ -16,6 +16,8 @@ package android.drm; +import java.util.HashMap; + /** * This is an entity class which would be passed to caller in * {@link DrmManagerClient.OnInfoListener#onInfo(DrmManagerClient, DrmInfoEvent)} @@ -54,11 +56,25 @@ public class DrmInfoEvent extends DrmEvent { * constructor to create DrmInfoEvent object with given parameters * * @param uniqueId Unique session identifier - * @param type Type of information + * @param type Type of the event. It could be one of the types defined above * @param message Message description */ public DrmInfoEvent(int uniqueId, int type, String message) { super(uniqueId, type, message); } + + /** + * constructor to create DrmInfoEvent object with given parameters + * + * @param uniqueId Unique session identifier + * @param type Type of the event. It could be one of the types defined above + * @param message Message description + * @param attributes Attributes for extensible information. Could be any + * information provided by the plugin + */ + public DrmInfoEvent(int uniqueId, int type, String message, + HashMap<String, Object> attributes) { + super(uniqueId, type, message, attributes); + } } diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java index aa56159..f7479b5 100644 --- a/drm/java/android/drm/DrmManagerClient.java +++ b/drm/java/android/drm/DrmManagerClient.java @@ -81,10 +81,8 @@ public class DrmManagerClient { * * @param client DrmManagerClient instance * @param event instance which wraps type and message - * @param attributes resultant values in key and value pair. */ - public void onEvent(DrmManagerClient client, DrmEvent event, - HashMap<String, Object> attributes); + public void onEvent(DrmManagerClient client, DrmEvent event); } /** @@ -128,12 +126,17 @@ public class DrmManagerClient { case ACTION_PROCESS_DRM_INFO: { final DrmInfo drmInfo = (DrmInfo) msg.obj; DrmInfoStatus status = _processDrmInfo(mUniqueId, drmInfo); + + attributes.put(DrmEvent.DRM_INFO_STATUS_OBJECT, status); + attributes.put(DrmEvent.DRM_INFO_OBJECT, drmInfo); + if (null != status && DrmInfoStatus.STATUS_OK == status.statusCode) { - attributes.put(DrmEvent.DRM_INFO_STATUS_OBJECT, status); - event = new DrmEvent(mUniqueId, getEventType(status.infoType), null); + event = new DrmEvent(mUniqueId, + getEventType(status.infoType), null, attributes); } else { int infoType = (null != status) ? status.infoType : drmInfo.getInfoType(); - error = new DrmErrorEvent(mUniqueId, getErrorType(infoType), null); + error = new DrmErrorEvent(mUniqueId, + getErrorType(infoType), null, attributes); } break; } @@ -151,7 +154,7 @@ public class DrmManagerClient { return; } if (null != mOnEventListener && null != event) { - mOnEventListener.onEvent(DrmManagerClient.this, event, attributes); + mOnEventListener.onEvent(DrmManagerClient.this, event); } if (null != mOnErrorListener && null != error) { mOnErrorListener.onError(DrmManagerClient.this, error); diff --git a/graphics/java/android/renderscript/Matrix2f.java b/graphics/java/android/renderscript/Matrix2f.java index 78ff97b..acc5bd8 100644 --- a/graphics/java/android/renderscript/Matrix2f.java +++ b/graphics/java/android/renderscript/Matrix2f.java @@ -42,7 +42,7 @@ public class Matrix2f { * floats long */ public Matrix2f(float[] dataArray) { - mMat = new float[2]; + mMat = new float[4]; System.arraycopy(dataArray, 0, mMat, 0, mMat.length); } diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 1b10c5c..b51279a 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -83,17 +83,17 @@ public class RenderScript { int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ); + int samplesMin, int samplesPref, float samplesQ, int dpi); synchronized int nContextCreateGL(int dev, int ver, int colorMin, int colorPref, int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ) { + int samplesMin, int samplesPref, float samplesQ, int dpi) { return rsnContextCreateGL(dev, ver, colorMin, colorPref, alphaMin, alphaPref, depthMin, depthPref, stencilMin, stencilPref, - samplesMin, samplesPref, samplesQ); + samplesMin, samplesPref, samplesQ, dpi); } native int rsnContextCreate(int dev, int ver); synchronized int nContextCreate(int dev, int ver) { diff --git a/graphics/java/android/renderscript/RenderScriptGL.java b/graphics/java/android/renderscript/RenderScriptGL.java index 4359795..d4b5434 100644 --- a/graphics/java/android/renderscript/RenderScriptGL.java +++ b/graphics/java/android/renderscript/RenderScriptGL.java @@ -165,13 +165,14 @@ public class RenderScriptGL extends RenderScript { mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); + int dpi = ctx.getResources().getDisplayMetrics().densityDpi; mContext = nContextCreateGL(mDev, 0, mSurfaceConfig.mColorMin, mSurfaceConfig.mColorPref, mSurfaceConfig.mAlphaMin, mSurfaceConfig.mAlphaPref, mSurfaceConfig.mDepthMin, mSurfaceConfig.mDepthPref, mSurfaceConfig.mStencilMin, mSurfaceConfig.mStencilPref, mSurfaceConfig.mSamplesMin, mSurfaceConfig.mSamplesPref, - mSurfaceConfig.mSamplesQ); + mSurfaceConfig.mSamplesQ, dpi); if (mContext == 0) { throw new RSDriverException("Failed to create RS context."); } diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index f86343a..2afd74c 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -164,7 +164,8 @@ nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ) + int samplesMin, int samplesPref, float samplesQ, + int dpi) { RsSurfaceConfig sc; sc.alphaMin = alphaMin; @@ -178,7 +179,7 @@ nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, sc.samplesQ = samplesQ; LOG_API("nContextCreateGL"); - return (jint)rsContextCreateGL((RsDevice)dev, ver, sc); + return (jint)rsContextCreateGL((RsDevice)dev, ver, sc, dpi); } static void @@ -1213,7 +1214,7 @@ static JNINativeMethod methods[] = { // All methods below are thread protected in java. {"rsnContextCreate", "(II)I", (void*)nContextCreate }, -{"rsnContextCreateGL", "(IIIIIIIIIIIIF)I", (void*)nContextCreateGL }, +{"rsnContextCreateGL", "(IIIIIIIIIIIIFI)I", (void*)nContextCreateGL }, {"rsnContextFinish", "(I)V", (void*)nContextFinish }, {"rsnContextSetPriority", "(II)V", (void*)nContextSetPriority }, {"rsnContextSetSurface", "(IIILandroid/view/Surface;)V", (void*)nContextSetSurface }, diff --git a/include/drm/drm_framework_common.h b/include/drm/drm_framework_common.h index 1758cdd..e8ec953 100644 --- a/include/drm/drm_framework_common.h +++ b/include/drm/drm_framework_common.h @@ -43,6 +43,17 @@ enum { }; /** + * copy control settings used in DecryptHandle::copyControlVector + */ +enum DrmCopyControl { + DRM_COPY_CONTROL_BASE = 1000, + // the key used to set the value for HDCP + // if the associated value is 1, then HDCP is required + // otherwise, HDCP is not required + DRM_COPY_CONTROL_HDCP = DRM_COPY_CONTROL_BASE +}; + +/** * Defines DRM Buffer */ class DrmBuffer { @@ -279,6 +290,11 @@ public: * e.g. size of memory to be allocated to get the decrypted content. */ DecryptInfo* decryptInfo; + /** + * Defines a vector for the copy control settings sent from the DRM plugin + * to the player + */ + KeyedVector<DrmCopyControl, int> copyControlVector; public: DecryptHandle(): diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h index a969796..f13e9bb 100644 --- a/include/media/stagefright/ACodec.h +++ b/include/media/stagefright/ACodec.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef A_CODEC_H_ #define A_CODEC_H_ diff --git a/include/media/stagefright/MediaDebug.h b/include/media/stagefright/MediaDebug.h index c8a8f00..2ca9667 100644 --- a/include/media/stagefright/MediaDebug.h +++ b/include/media/stagefright/MediaDebug.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef MEDIA_DEBUG_H_ #define MEDIA_DEBUG_H_ diff --git a/include/media/stagefright/foundation/AHandlerReflector.h b/include/media/stagefright/foundation/AHandlerReflector.h index 857866a..9d201b5 100644 --- a/include/media/stagefright/foundation/AHandlerReflector.h +++ b/include/media/stagefright/foundation/AHandlerReflector.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef A_HANDLER_REFLECTOR_H_ #define A_HANDLER_REFLECTOR_H_ diff --git a/include/media/stagefright/foundation/AHierarchicalStateMachine.h b/include/media/stagefright/foundation/AHierarchicalStateMachine.h index b5786fb..d2e6b28 100644 --- a/include/media/stagefright/foundation/AHierarchicalStateMachine.h +++ b/include/media/stagefright/foundation/AHierarchicalStateMachine.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef A_HIERARCHICAL_STATE_MACHINE_H_ #define A_HIERARCHICAL_STATE_MACHINE_H_ diff --git a/include/private/hwui/DrawGlInfo.h b/include/private/hwui/DrawGlInfo.h new file mode 100644 index 0000000..1e9912b --- /dev/null +++ b/include/private/hwui/DrawGlInfo.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_HWUI_DRAW_GL_INFO_H +#define ANDROID_HWUI_DRAW_GL_INFO_H + +namespace android { +namespace uirenderer { + +/** + * Structure used by OpenGLRenderer::callDrawGLFunction() to pass and + * receive data from OpenGL functors. + */ +struct DrawGlInfo { + // Input: current clip rect + int clipLeft; + int clipTop; + int clipRight; + int clipBottom; + + // Input: is the render target an FBO + bool isLayer; + + // Input: current transform matrix, in OpenGL format + float transform[16]; + + // Output: dirty region to redraw + float dirtyLeft; + float dirtyTop; + float dirtyRight; + float dirtyBottom; +}; // struct DrawGlInfo + +}; // namespace uirenderer +}; // namespace android + +#endif // ANDROID_HWUI_DRAW_GL_INFO_H diff --git a/include/utils/Functor.h b/include/utils/Functor.h index 565f4a3..e24ded4 100644 --- a/include/utils/Functor.h +++ b/include/utils/Functor.h @@ -25,8 +25,7 @@ class Functor { public: Functor() {} virtual ~Functor() {} - virtual status_t operator ()() { return true; } - virtual status_t operator ()(float* data, uint32_t len) { return true; } + virtual status_t operator ()(int what, void* data) { return NO_ERROR; } }; }; // namespace android diff --git a/include/utils/Vector.h b/include/utils/Vector.h index ec851bd..6fd307f 100644 --- a/include/utils/Vector.h +++ b/include/utils/Vector.h @@ -162,6 +162,9 @@ public: inline status_t sort(compar_t cmp); inline status_t sort(compar_r_t cmp, void* state); + // for debugging only + inline size_t getItemSize() const { return itemSize(); } + protected: virtual void do_construct(void* storage, size_t num) const; virtual void do_destroy(void* storage, size_t num) const; diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp index b1eb164..f92e20b 100644 --- a/libs/hwui/LayerRenderer.cpp +++ b/libs/hwui/LayerRenderer.cpp @@ -92,7 +92,11 @@ Region* LayerRenderer::getRegion() { void LayerRenderer::generateMesh() { #if RENDER_LAYERS_AS_REGIONS +#if RENDER_LAYERS_RECT_AS_RECT if (mLayer->region.isRect() || mLayer->region.isEmpty()) { +#else + if (mLayer->region.isEmpty()) { +#endif if (mLayer->mesh) { delete mLayer->mesh; delete mLayer->meshIndices; diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index b8bd7d6..d9d7d23 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -26,6 +26,8 @@ #include <utils/Log.h> #include <utils/StopWatch.h> +#include <private/hwui/DrawGlInfo.h> + #include <ui/Rect.h> #include "OpenGLRenderer.h" @@ -216,21 +218,29 @@ bool OpenGLRenderer::callDrawGLFunction(Functor *functor, Rect& dirty) { setScissorFromClip(); } + Rect clip(*mSnapshot->clipRect); + clip.snapToPixelBoundaries(); + #if RENDER_LAYERS_AS_REGIONS // Since we don't know what the functor will draw, let's dirty // tne entire clip region if (hasLayer()) { - Rect clip(*mSnapshot->clipRect); - clip.snapToPixelBoundaries(); dirtyLayerUnchecked(clip, getRegion()); } #endif - float bounds[4]; - status_t result = (*functor)(&bounds[0], 4); + DrawGlInfo info; + info.clipLeft = clip.left; + info.clipTop = clip.top; + info.clipRight = clip.right; + info.clipBottom = clip.bottom; + info.isLayer = hasLayer(); + getSnapshot()->transform->copyTo(&info.transform[0]); + + status_t result = (*functor)(0, &info); if (result != 0) { - Rect localDirty(bounds[0], bounds[1], bounds[2], bounds[3]); + Rect localDirty(info.dirtyLeft, info.dirtyTop, info.dirtyRight, info.dirtyBottom); dirty.unionWith(localDirty); } @@ -636,11 +646,13 @@ void OpenGLRenderer::composeLayerRect(Layer* layer, const Rect& rect, bool swap) void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) { #if RENDER_LAYERS_AS_REGIONS +#if RENDER_LAYERS_RECT_AS_RECT if (layer->region.isRect()) { composeLayerRect(layer, rect); layer->region.clear(); return; } +#endif if (!layer->region.isEmpty()) { size_t count; @@ -1646,10 +1658,14 @@ void OpenGLRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* paint) { #if RENDER_LAYERS_AS_REGIONS if (!layer->region.isEmpty()) { +#if RENDER_LAYERS_RECT_AS_RECT if (layer->region.isRect()) { const Rect r(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight()); composeLayerRect(layer, r); } else if (layer->mesh) { +#else + if (layer->mesh) { +#endif const float a = alpha / 255.0f; const Rect& rect = layer->layer; diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h index 2d8b6f3..1aef99b 100644 --- a/libs/hwui/Properties.h +++ b/libs/hwui/Properties.h @@ -27,6 +27,8 @@ // If turned on, layers drawn inside FBOs are optimized with regions #define RENDER_LAYERS_AS_REGIONS 1 +// If turned on, layers that map to a single rect are drawn as a rect +#define RENDER_LAYERS_RECT_AS_RECT 0 /** * Debug level for app developers. diff --git a/libs/rs/RenderScript.h b/libs/rs/RenderScript.h index bb5e4aa..ffa9a8c 100644 --- a/libs/rs/RenderScript.h +++ b/libs/rs/RenderScript.h @@ -76,7 +76,8 @@ void rsDeviceDestroy(RsDevice); void rsDeviceSetConfig(RsDevice, RsDeviceParam, int32_t value); RsContext rsContextCreate(RsDevice, uint32_t version); -RsContext rsContextCreateGL(RsDevice, uint32_t version, RsSurfaceConfig sc); +RsContext rsContextCreateGL(RsDevice, uint32_t version, + RsSurfaceConfig sc, uint32_t dpi); void rsContextDestroy(RsContext); enum RsMessageToClientType { diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index f9e29f1..c63d183 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -630,6 +630,7 @@ Context::Context() { mPaused = false; mObjHead = NULL; mError = RS_ERROR_NONE; + mDPI = 96; } Context * Context::createContext(Device *dev, const RsSurfaceConfig *sc) { @@ -1078,10 +1079,12 @@ RsContext rsContextCreate(RsDevice vdev, uint32_t version) { return rsc; } -RsContext rsContextCreateGL(RsDevice vdev, uint32_t version, RsSurfaceConfig sc) { +RsContext rsContextCreateGL(RsDevice vdev, uint32_t version, + RsSurfaceConfig sc, uint32_t dpi) { LOGV("rsContextCreateGL %p", vdev); Device * dev = static_cast<Device *>(vdev); Context *rsc = Context::createContext(dev, &sc); + rsc->setDPI(dpi); LOGV("rsContextCreateGL ret %p ", rsc); return rsc; } diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h index c5e32a6..50f63df 100644 --- a/libs/rs/rsContext.h +++ b/libs/rs/rsContext.h @@ -218,6 +218,8 @@ public: void launchThreads(WorkerCallback_t cbk, void *data); uint32_t getWorkerPoolSize() const {return (uint32_t)mWorkers.mCount;} + uint32_t getDPI() const {return mDPI;} + void setDPI(uint32_t dpi) {mDPI = dpi;} protected: Device *mDev; @@ -258,6 +260,7 @@ protected: float EXT_texture_max_aniso; } mGL; + uint32_t mDPI; uint32_t mWidth; uint32_t mHeight; int32_t mThreadPriority; diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp index 1c1bc98..01dbab8 100644 --- a/libs/rs/rsFont.cpp +++ b/libs/rs/rsFont.cpp @@ -733,7 +733,7 @@ void FontState::renderText(const char *text, uint32_t len, int32_t x, int32_t y, String8 fullPath(getenv("ANDROID_ROOT")); fullPath += fontsDir; - mDefault.set(Font::create(mRSC, fullPath.string(), 16, 96)); + mDefault.set(Font::create(mRSC, fullPath.string(), 8, mRSC->getDPI())); } currentFont = mDefault.get(); } diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp index 1994f6a..a060a5f 100644 --- a/libs/ui/Region.cpp +++ b/libs/ui/Region.cpp @@ -56,6 +56,9 @@ Region::Region() Region::Region(const Region& rhs) : mBounds(rhs.mBounds), mStorage(rhs.mStorage) { +#if VALIDATE_REGIONS + validate(rhs, "rhs copy-ctor"); +#endif } Region::Region(const Rect& rhs) @@ -76,7 +79,8 @@ Region::~Region() Region& Region::operator = (const Region& rhs) { #if VALIDATE_REGIONS - validate(rhs, "operator="); + validate(*this, "this->operator="); + validate(rhs, "rhs.operator="); #endif mBounds = rhs.mBounds; mStorage = rhs.mStorage; @@ -366,6 +370,12 @@ void Region::boolean_operation(int op, Region& dst, const Region& lhs, const Region& rhs, int dx, int dy) { +#if VALIDATE_REGIONS + validate(lhs, "boolean_operation (before): lhs"); + validate(rhs, "boolean_operation (before): rhs"); + validate(dst, "boolean_operation (before): dst"); +#endif + size_t lhs_count; Rect const * const lhs_rects = lhs.getArray(&lhs_count); diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java index 78557ee..2105deb 100755 --- a/media/java/android/media/videoeditor/VideoEditorImpl.java +++ b/media/java/android/media/videoeditor/VideoEditorImpl.java @@ -904,6 +904,10 @@ public class VideoEditorImpl implements VideoEditor { throw new IllegalArgumentException("Surface could not be retrieved from Surface holder"); } + if (surface.isValid() == false) { + throw new IllegalStateException("Surface is not valid"); + } + if (timeMs < 0) { throw new IllegalArgumentException("requested time not correct"); } else if (timeMs > mDurationMs) { @@ -1627,6 +1631,10 @@ public class VideoEditorImpl implements VideoEditor { throw new IllegalArgumentException("Surface could not be retrieved from surface holder"); } + if (surface.isValid() == false) { + throw new IllegalStateException("Surface is not valid"); + } + if (listener == null) { throw new IllegalArgumentException(); } @@ -1863,6 +1871,10 @@ public class VideoEditorImpl implements VideoEditor { throw new IllegalArgumentException("Surface could not be retrieved from surface holder"); } + if (surface.isValid() == false) { + throw new IllegalStateException("Surface is not valid"); + } + if (mMANativeHelper != null) { mMANativeHelper.clearPreviewSurface(surface); } else { diff --git a/media/java/android/mtp/MtpServer.java b/media/java/android/mtp/MtpServer.java index fe734e1..006fa6d 100644 --- a/media/java/android/mtp/MtpServer.java +++ b/media/java/android/mtp/MtpServer.java @@ -24,6 +24,9 @@ import android.util.Log; */ public class MtpServer { + private final Object mLock = new Object(); + private boolean mStarted; + private static final String TAG = "MtpServer"; static { @@ -35,11 +38,19 @@ public class MtpServer { } public void start() { - native_start(); + synchronized (mLock) { + native_start(); + mStarted = true; + } } public void stop() { - native_stop(); + synchronized (mLock) { + if (mStarted) { + native_stop(); + mStarted = false; + } + } } public void sendObjectAdded(int handle) { diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp index 8cda14e..11e2a5e 100755 --- a/media/jni/mediaeditor/VideoEditorMain.cpp +++ b/media/jni/mediaeditor/VideoEditorMain.cpp @@ -557,6 +557,10 @@ static void videoEditor_clearSurface(JNIEnv* pEnv, Surface* const p = (Surface*)pEnv->GetIntField(surface, surface_native); sp<Surface> previewSurface = sp<Surface>(p); + // Validate the mSurface's mNativeSurface field + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (NULL == previewSurface.get()), + "mNativeSurface is null"); frameStr.pBuffer = M4OSA_NULL; frameStr.timeMs = 0; @@ -634,6 +638,10 @@ static int videoEditor_renderPreviewFrame(JNIEnv* pEnv, Surface* const p = (Surface*)pEnv->GetIntField(mSurface, surface_native); sp<Surface> previewSurface = sp<Surface>(p); + // Validate the mSurface's mNativeSurface field + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (NULL == previewSurface.get()), + "mNativeSurface is null"); /* Determine the total number of clips, total duration*/ uiNumberOfClipsInStoryBoard = pContext->pEditSettings->uiClipNumber; @@ -2058,6 +2066,10 @@ videoEditor_startPreview( Surface* const p = (Surface*)pEnv->GetIntField(mSurface, surface_native); sp<Surface> previewSurface = sp<Surface>(p); + // Validate the mSurface's mNativeSurface field + videoEditJava_checkAndThrowIllegalStateException(&needToBeLoaded, pEnv, + (NULL == previewSurface.get()), + "mNativeSurface is null"); result = pContext->mPreviewController->setSurface(previewSurface); videoEditJava_checkAndThrowRuntimeException(&needToBeLoaded, pEnv, diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp index d6a1757..d3aab08 100644 --- a/media/libmedia/IOMX.cpp +++ b/media/libmedia/IOMX.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2009 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. + */ + //#define LOG_NDEBUG 0 #define LOG_TAG "IOMX" #include <utils/Log.h> diff --git a/media/libmedia/MediaProfiles.cpp b/media/libmedia/MediaProfiles.cpp index 7fb7aed..e6f3a33 100644 --- a/media/libmedia/MediaProfiles.cpp +++ b/media/libmedia/MediaProfiles.cpp @@ -721,6 +721,11 @@ MediaProfiles::createDefaultCamcorderProfiles(MediaProfiles *profiles) createDefaultCamcorderTimeLapseHighProfiles(&highTimeLapseProfile, &highSpecificTimeLapseProfile); profiles->mCamcorderProfiles.add(highTimeLapseProfile); profiles->mCamcorderProfiles.add(highSpecificTimeLapseProfile); + + // For emulator and other legacy devices which does not have a + // media_profiles.xml file, We assume that the default camera id + // is 0 and that is the only camera available. + profiles->mCameraIds.push(0); } /*static*/ void diff --git a/media/libmediaplayerservice/StagefrightPlayer.cpp b/media/libmediaplayerservice/StagefrightPlayer.cpp index e277121..c5cbd23 100644 --- a/media/libmediaplayerservice/StagefrightPlayer.cpp +++ b/media/libmediaplayerservice/StagefrightPlayer.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2009 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. + */ + //#define LOG_NDEBUG 0 #define LOG_TAG "StagefrightPlayer" #include <utils/Log.h> diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index d590ab9..346d0bb 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + //#define LOG_NDEBUG 0 #define LOG_TAG "ACodec" diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 5734c7e..1f8de9f 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -750,8 +750,6 @@ status_t AwesomePlayer::play_l() { mFlags |= PLAYING; mFlags |= FIRST_FRAME; - bool deferredAudioSeek = false; - if (mDecryptHandle != NULL) { int64_t position; getPosition(&position); @@ -767,10 +765,11 @@ status_t AwesomePlayer::play_l() { mTimeSource = mAudioPlayer; - deferredAudioSeek = true; - - mWatchForAudioSeekComplete = false; - mWatchForAudioEOS = true; + // If there was a seek request before we ever started, + // honor the request now. + // Make sure to do this before starting the audio player + // to avoid a race condition. + seekAudioIfNecessary_l(); } } @@ -808,12 +807,6 @@ status_t AwesomePlayer::play_l() { } } - if (deferredAudioSeek) { - // If there was a seek request while we were paused - // and we're just starting up again, honor the request now. - seekAudioIfNecessary_l(); - } - if (mFlags & AT_EOS) { // Legacy behaviour, if a stream finishes playing and then // is started again, we play from the start... diff --git a/media/libstagefright/NuCachedSource2.cpp b/media/libstagefright/NuCachedSource2.cpp index c7b99b9..248b678 100644 --- a/media/libstagefright/NuCachedSource2.cpp +++ b/media/libstagefright/NuCachedSource2.cpp @@ -135,6 +135,10 @@ size_t PageCache::releaseFromStart(size_t maxBytes) { void PageCache::copy(size_t from, void *data, size_t size) { LOGV("copy from %d size %d", from, size); + if (size == 0) { + return; + } + CHECK_LE(from + size, mTotalSize); size_t offset = 0; diff --git a/media/libstagefright/codecs/avc/common/include/avc_types.h b/media/libstagefright/codecs/avc/common/include/avc_types.h index 73cad89..ec8b6de 100644 --- a/media/libstagefright/codecs/avc/common/include/avc_types.h +++ b/media/libstagefright/codecs/avc/common/include/avc_types.h @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #ifndef AVC_TYPES_H_ #define AVC_TYPES_H_ diff --git a/media/libstagefright/foundation/AHierarchicalStateMachine.cpp b/media/libstagefright/foundation/AHierarchicalStateMachine.cpp index 30286d8..3b3f786 100644 --- a/media/libstagefright/foundation/AHierarchicalStateMachine.cpp +++ b/media/libstagefright/foundation/AHierarchicalStateMachine.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include <media/stagefright/foundation/AHierarchicalStateMachine.h> #include <media/stagefright/foundation/ADebug.h> diff --git a/media/libstagefright/include/MPEG2TSExtractor.h b/media/libstagefright/include/MPEG2TSExtractor.h index efe7496..fe74a42 100644 --- a/media/libstagefright/include/MPEG2TSExtractor.h +++ b/media/libstagefright/include/MPEG2TSExtractor.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef MPEG2_TS_EXTRACTOR_H_ #define MPEG2_TS_EXTRACTOR_H_ diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaItemThumbnailTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaItemThumbnailTest.java index 895ca25..154f691 100755 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaItemThumbnailTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaItemThumbnailTest.java @@ -585,7 +585,9 @@ public class MediaItemThumbnailTest extends try{ final MediaImageItem mii = new MediaImageItem(mVideoEditor, "m1", imageItemFileName, 3000, renderingMode); - }catch (IllegalArgumentException e){ + } catch (IllegalArgumentException e) { + flagForException = true; + } catch (IOException e) { flagForException = true; } assertTrue(" Invalid File Path", flagForException); diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPropertiesTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPropertiesTest.java index 3efa5b2..958bbb0 100755 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPropertiesTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPropertiesTest.java @@ -513,6 +513,8 @@ public class MediaPropertiesTest extends MediaItem.RENDERING_MODE_BLACK_BORDER); } catch (IllegalArgumentException e) { flagForException = true; + } catch (IOException e) { + flagForException = true; } assertTrue("Media Properties for non exsisting file", flagForException); } diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp index f4a1650..e13af1c 100644 --- a/opengl/libs/EGL/egl.cpp +++ b/opengl/libs/EGL/egl.cpp @@ -2077,14 +2077,15 @@ EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) if (!validate_display_context(dpy, ctx)) return EGL_FALSE; + EGLBoolean result = EGL_FALSE; egl_context_t * const c = get_context(ctx); - if (c->cnx->egl.eglDestroySyncKHR) { - return c->cnx->egl.eglDestroySyncKHR( + result = c->cnx->egl.eglDestroySyncKHR( dp->disp[c->impl].dpy, syncObject->sync); + if (result) + _s.terminate(); } - - return EGL_FALSE; + return result; } EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png Binary files differindex 6ff0899..d17771e 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png Binary files differindex 6dcdefb..b595b60 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png Binary files differindex 5ee9e0a..0bd3ba3 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png Binary files differindex a74e731..473c74a 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png Binary files differindex 441739a..ccd32fe 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png Binary files differindex a666c75..047e888 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png Binary files differindex 2045c0c..80f5701 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png Binary files differindex 063a86c..3b8fb13 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png Binary files differindex 1e4aebb..9a6532a 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_in.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_in.png Binary files differindex c69c44f..a7a3623 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_in.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_in.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_inout.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_inout.png Binary files differindex 0413ae3..6429ffc 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_inout.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_inout.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_out.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_out.png Binary files differindex 61e7772a..9416793 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_out.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_out.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_in.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_in.png Binary files differindex 74b018a..c8cba34 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_in.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_in.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_inout.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_inout.png Binary files differindex d3364bc..c0de67d 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_inout.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_inout.png diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_out.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_out.png Binary files differindex e65d6ed..1647b21 100644 --- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_out.png +++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_out.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png Binary files differindex 35056d3..3aa22f5 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png Binary files differindex dcfcc00..1afd107 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png Binary files differindex e61b6ba..3af5991 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png Binary files differindex f0f86e5..49b0175 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png Binary files differindex 1025e81..496df52 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png Binary files differindex c4cc59f..fab2e10 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png Binary files differindex 4976752..ff474b6 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png Binary files differindex 380a5f4..409bb31 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png Binary files differindex d97b1de..38c7f07 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_in.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_in.png Binary files differindex abbdbc0..5799ad2 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_in.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_in.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_inout.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_inout.png Binary files differindex f1f4c1c..ec617d7 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_inout.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_inout.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_out.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_out.png Binary files differindex f767994..1260c59 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_out.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_out.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_in.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_in.png Binary files differindex 7c97a01..0ec4c64 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_in.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_in.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_inout.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_inout.png Binary files differindex c0665c4..60dc8a6 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_inout.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_inout.png diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_out.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_out.png Binary files differindex 8746388..fe2ba7a 100644 --- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_out.png +++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_out.png diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 5f29418..0660a17 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"الإعدادات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"وضع الطائرة"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"تلقائي"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"التنبيهات"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"تم إنشاء الاتصال بالإنترنت عن طريق البلوتوث."</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"تهيئة طرق الإدخال"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"استخدام لوحة المفاتيح الفعلية"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 174d024..4c9ecfc 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Настройки"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Самолетен режим"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"АВТ."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Известия"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth има връзка с тетъринг"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Конфигуриране на въвеждането"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Използване на физ. клав."</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 80979c0..9a4a360 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuració"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode d\'avió"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Gira pantalla automàticament"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Silen."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificacions"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth sense fil"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configura mètodes d\'entrada"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utilitza un teclat físic"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 31bf102..31aa1a7 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavení"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim V letadle"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatické otočení obrazovky"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ZTLUM."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Oznámení"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Datové připojení Bluetooth se sdílí"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Nakonfigurovat metody vstupu"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Použít fyz. klávesnici"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 3a08cc1..ddbcf25 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Indstillinger"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flytilstand"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatisk skærmrotation"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"LYDLØS"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Meddelelser"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth-tethering anvendt"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurer inputmetoder"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Brug fysisk tastatur"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 91e56d4..c7d9502 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Einstellungen"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WLAN"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugmodus"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Bildschirm automatisch drehen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STUMM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Benachrichtigungen"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth-Tethering aktiv"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Eingabemethoden konfigurieren"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Physische Tastatur"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index 3bc5636..7e15f7f 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ρυθμίσεις"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Λειτουργία πτήσης"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"ΑΥΤΟΜ."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Ειδοποιήσεις"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Έγινε σύνδεση μέσω Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Διαμόρφωση μεθόδων εισαγωγής"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Χρήση κανονικού πληκτρολ."</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 2e5a722..350913a 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Settings"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Airplane mode"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Auto-rotate screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifications"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth tethered"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configure input methods"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Use physical keyboard"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 19d72c7..43d9337 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuración"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar la pantalla automáticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificaciones"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth anclado"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configurar métodos de entrada"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Usar teclado físico"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index e410f6e..e6c1ce2 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ajustes"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar pantalla automáticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SILENC"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificaciones"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth anclado"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configurar métodos de introducción"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utilizar teclado físico"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index c9a1a7f..9e70d5a 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"تنظیمات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"حالت هواپیما"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"خودکار"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"اعلان ها"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"اتصال اینترنتی با بلوتوث تلفن همراه"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"پیکربندی روش های ورودی"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"از صفحه کلید فیزیکی استفاده کنید"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 882261d..47b3220 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Asetukset"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WiFi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lentokonetila"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Kierrä näyttöä automaattisesti"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ÄÄNET."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Ilmoitukset"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth yhdistetty"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Määritä syöttötavat"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Käytä fyysistä näppäimistöä"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 2b23276..a4a287e 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Paramètres"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotation automatique de l\'écran"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifications"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Connexion Bluetooth partagée"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configurer les modes de saisie"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utiliser clavier physique"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index dad674b..680a3e3 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Postavke"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način rada u zrakoplovu"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatski zakreni zaslon"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"Bez zv."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Obavijesti"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth posredno povezan"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfiguriraj načine ulaza"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Rabi fizičku tipkovnicu"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 9da81ab..9a103f7 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Beállítások"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Repülőgép üzemmód"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Képernyő automatikus forgatása"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NÉMÍT"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Értesítések"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth megosztva"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Beviteli módok konfigurálása"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Valódi bill. használata"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 0ade50c..e7fbbbe 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setelan"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode pesawat"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Putar layar secara otomatis"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"BISUKAN"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Pemberitahuan"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth tertambat"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurasikan metode masukan"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Gunakan keyboard fisik"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index 71e86da..b541374 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Impostazioni"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modalità aereo"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotazione automatica schermo"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notifiche"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth con tethering"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configura metodi di input"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utilizza tastiera fisica"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 4e78670..3194cf5 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"הגדרות"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"מצב טיסה"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"אוטומטי"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"התראות"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth קשור"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"הגדר שיטות קלט"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"השתמש במקלדת הפיזית"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 86a5da5..ac82ed4 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"設定"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"機内モード"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"オート"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetoothテザリング接続"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"入力方法の設定"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"物理キーボードを使用"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 440ebb6..2d4786d 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"설정"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"비행기 모드"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"자동"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"알림"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"블루투스 테더링됨"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"입력 방법 구성"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"물리적 키보드 사용"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 9bf5f74..db06596 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nustatymai"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lėktuvo režimas"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatiškai sukti ekraną"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"NUTILD."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Pranešimai"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"„Bluetooth“ susieta"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigūruoti įvesties metodus"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Naudoti fizinę klaviatūrą"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 5c14342..079591e 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Iestatījumi"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lidmašīnas režīms"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ekrāna automātiska pagriešana"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"IZ. SK."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Paziņojumi"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth piesaiste"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurēt ievades metodes"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Izmantot fizisku tastatūru"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 1671dcf..b7e7711 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Innstillinger"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Trådløse nettverk"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flymodus"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Roter skjerm automatisk"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Varslinger"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth tilknyttet"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurer inndatametoder"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Bruk fysisk tastatur"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index ac3255f..cc9e7a3 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Instellingen"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegmodus"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Scherm automatisch draaien"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPEN"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Meldingen"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth getetherd"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Invoermethoden configureren"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Fysiek toetsenbord gebruiken"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 1af9d68..67d9cc1 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ustawienia"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Tryb samolotowy"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Autoobracanie ekranu"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"WYGAŚ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Powiadomienia"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth – podłączono"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfiguruj metody wprowadzania"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Używaj klawiatury fizycznej"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 2f0e269..5ee79a0 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Definições"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo de avião"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rodar ecrã automaticamente"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"D. SOM"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificações"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth ligado"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configurar métodos de entrada"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utilizar teclado físico"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index d9e68e8..a91d406 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configurações"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo para avião"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar automaticamente a tela"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUDO"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificações"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth vinculado"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configurar métodos de entrada"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Usar o teclado físico"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-rm/strings.xml b/packages/SystemUI/res/values-rm/strings.xml index aa35dd4..b41b9bd 100644 --- a/packages/SystemUI/res/values-rm/strings.xml +++ b/packages/SystemUI/res/values-rm/strings.xml @@ -61,20 +61,22 @@ <skip /> <!-- no translation found for status_bar_use_physical_keyboard (3695516942412442936) --> <skip /> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 4c14b7d..36628aa 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setări"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod Avion"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotire automată a ecranului"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEZAC."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTOM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificări"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Conectat prin tethering prin Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Configuraţi metode de intrare"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Utilizaţi tastat. fizică"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 2e2de6e..13da8a3 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Настройки"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим полета"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"АВТО"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Уведомления"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Общий модем доступен через Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Настроить способ ввода"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Использовать физическую клавиатуру"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 12d40ae..c08eb21 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavenia"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim V lietadle"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Automatické otočenie obrazovky"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"STLMIŤ"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Upozornenia"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Zdieľané dátové pripojenie cez Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurovať metódy vstupu"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Použiť fyzickú klávesnicu"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 62d946a..d7cb726 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavitve"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način za letalo"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Samodejno zasukaj zaslon"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TIHO"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"SAMOD."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Obvestila"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Internetna povezava prek Bluetootha"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Nastavitev načinov vnosa"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Uporabi fizično tipkovn."</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index e319132..6e67293 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Подешавања"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим рада у авиону"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"АУТОM."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Обавештења"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Веза преко Bluetooth-а"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Конфигуриши методе уноса"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Користи физичку тастатуру"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index ba9f55e..e2905b6 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Inställningar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flygplansläge"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotera skärmen automatiskt"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TYST"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Aviseringar"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Internetdelning via Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Konfigurera inmatningsmetoder"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Använd fysiska tangenter"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 192fe2c..1e7af69 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"การตั้งค่า"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"โหมดใช้งานบนเครื่องบิน"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"อัตโนมัติ"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"การแจ้งเตือน"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"บลูทูธที่ปล่อยสัญญาณ"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"กำหนดค่าวิธีการป้อนข้อมูล"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"ใช้แป้นพิมพ์จริง"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index a99014d..9fadf73 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Mga Setting"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Airplane mode"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"I-auto-rotate ang screen"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Mga Notification"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Na-tether ang bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"I-configure paraan ng input"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Gamitin ang pisikal na keyboard"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 2019a38..7c3585a 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ayarlar"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Kablosuz"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Uçak modu"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ekranı otomatik döndür"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"KAPAT"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"OTOMTK"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Bildirimler"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth paylaşımı tamam"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Giriş yöntemlerini yapılandır"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Fiziksel klavyeyi kullan"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 999ea9a..a17e59d 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Налаштування"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим польоту"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"АВТОМ."</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Сповіщення"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Створено прив\'язку Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Налаштувати методи введення"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Викор. реальну клавіатуру"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index dd28680..a994ee0 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Cài đặt"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Chế độ trên máy bay"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Tự động xoay màn hình"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"TẮT TIẾNG"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"TỰ ĐỘNG"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Thông báo"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth được dùng làm điểm truy cập Internet"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"Định cấu hình phương pháp nhập liệu"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"Sử dụng bàn phím vật lý"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index d2a5578..baae9e1 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"设置"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飞行模式"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"自动"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"蓝牙已绑定"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"配置输入法"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"使用物理键盘"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index f165bee..0d83d44 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -34,8 +34,7 @@ <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"設定"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string> - <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> - <skip /> + <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_auto_brightness_label" msgid="511453614962324674">"自動"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"通知"</string> @@ -45,20 +44,22 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"已透過藍牙進行網際網路共用"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="737483394044014246">"設定輸入方式"</string> <string name="status_bar_use_physical_keyboard" msgid="3695516942412442936">"使用實體鍵盤"</string> - <!-- no translation found for usb_device_permission_prompt (5340926456453429244) --> + <!-- no translation found for usb_device_permission_prompt (3816016361969816903) --> <skip /> - <!-- no translation found for usb_accessory_permission_prompt (3969745913539898765) --> + <!-- no translation found for usb_accessory_permission_prompt (6888598803988889959) --> <skip /> - <!-- no translation found for usb_device_confirm_prompt (2727793581411868504) --> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> <skip /> - <!-- no translation found for usb_accessory_confirm_prompt (3947430407252730383) --> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> <skip /> - <!-- no translation found for usb_accessory_uri_prompt (1896291816269399727) --> + <!-- no translation found for usb_accessory_uri_prompt (6332150684964235705) --> <skip /> <!-- no translation found for title_usb_accessory (4966265263465181372) --> <skip /> <!-- no translation found for label_view (6304565553218192990) --> <skip /> - <!-- no translation found for label_ignore (5473234388203739668) --> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> <skip /> </resources> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index b4eea6e..446827b 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -117,19 +117,19 @@ <string name="status_bar_use_physical_keyboard">Use physical keyboard</string> <!-- Prompt for the USB device permission dialog [CHAR LIMIT=80] --> - <string name="usb_device_permission_prompt">Allow the application %1$s to access the USB device?</string> + <string name="usb_device_permission_prompt">Allow the application <xliff:g id="application">%1$s</xliff:g> to access the USB device?</string> <!-- Prompt for the USB accessory permission dialog [CHAR LIMIT=80] --> - <string name="usb_accessory_permission_prompt">Allow the application %1$s to access the USB accessory?</string> + <string name="usb_accessory_permission_prompt">Allow the application <xliff:g id="application">%1$s</xliff:g> to access the USB accessory?</string> <!-- Prompt for the USB device confirm dialog [CHAR LIMIT=80] --> - <string name="usb_device_confirm_prompt">Open %1$s when this USB device is connected?</string> + <string name="usb_device_confirm_prompt">Open <xliff:g id="activity">%1$s</xliff:g> when this USB device is connected?</string> <!-- Prompt for the USB accessory confirm dialog [CHAR LIMIT=80] --> - <string name="usb_accessory_confirm_prompt">Open %1$s when this USB accessory is connected?</string> + <string name="usb_accessory_confirm_prompt">Open <xliff:g id="activity">%1$s</xliff:g> when this USB accessory is connected?</string> <!-- Prompt for the USB accessory URI dialog [CHAR LIMIT=80] --> - <string name="usb_accessory_uri_prompt">Additional information for this USB accessory may be found at: %1$s</string> + <string name="usb_accessory_uri_prompt">No installed applications work with this USB accessory. Learn more about this accessory at <xliff:g id="url">%1$s</xliff:g></string> <!-- Title for USB accessory dialog. Used when the name of the accessory cannot be determined. [CHAR LIMIT=50] --> <string name="title_usb_accessory">USB accessory</string> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index 69585ab..a693e60 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -808,7 +808,9 @@ public class NetworkController extends BroadcastReceiver { // the data direction overlay if (mLastDataDirectionOverlayIconId != dataDirectionOverlayIconId) { - Slog.d(TAG, "changing data overlay icon id to " + dataDirectionOverlayIconId); + if (DEBUG) { + Slog.d(TAG, "changing data overlay icon id to " + dataDirectionOverlayIconId); + } mLastDataDirectionOverlayIconId = dataDirectionOverlayIconId; N = mDataDirectionOverlayIconViews.size(); for (int i=0; i<N; i++) { diff --git a/services/audioflinger/AudioPolicyManagerBase.cpp b/services/audioflinger/AudioPolicyManagerBase.cpp index 74be4e0..f653dc5 100644 --- a/services/audioflinger/AudioPolicyManagerBase.cpp +++ b/services/audioflinger/AudioPolicyManagerBase.cpp @@ -339,6 +339,7 @@ void AudioPolicyManagerBase::setForceUse(AudioSystem::force_use usage, AudioSyst LOGW("setForceUse() invalid config %d for FOR_COMMUNICATION", config); return; } + forceVolumeReeval = true; mForceUse[usage] = config; break; case AudioSystem::FOR_MEDIA: @@ -384,7 +385,7 @@ void AudioPolicyManagerBase::setForceUse(AudioSystem::force_use usage, AudioSyst updateDeviceForStrategy(); setOutputDevice(mHardwareOutput, newDevice); if (forceVolumeReeval) { - applyStreamVolumes(mHardwareOutput, newDevice); + applyStreamVolumes(mHardwareOutput, newDevice, 0, true); } audio_io_handle_t activeInput = getActiveInput(); @@ -1973,7 +1974,13 @@ status_t AudioPolicyManagerBase::checkAndSetVolume(int stream, int index, audio_ // offset value to reflect actual hardware volume that never reaches 0 // 1% corresponds roughly to first step in VOICE_CALL stream volume setting (see AudioService.java) volume = 0.01 + 0.99 * volume; + // Force VOICE_CALL to track BLUETOOTH_SCO stream volume when bluetooth audio is + // enabled + if (stream == AudioSystem::BLUETOOTH_SCO) { + mpClientInterface->setStreamVolume(AudioSystem::VOICE_CALL, volume, output, delayMs); + } } + mpClientInterface->setStreamVolume((AudioSystem::stream_type)stream, volume, output, delayMs); } @@ -1986,6 +1993,7 @@ status_t AudioPolicyManagerBase::checkAndSetVolume(int stream, int index, audio_ } else { voiceVolume = 1.0; } + if (voiceVolume != mLastVoiceVolume && output == mHardwareOutput) { mpClientInterface->setVoiceVolume(voiceVolume, delayMs); mLastVoiceVolume = voiceVolume; @@ -1995,12 +2003,12 @@ status_t AudioPolicyManagerBase::checkAndSetVolume(int stream, int index, audio_ return NO_ERROR; } -void AudioPolicyManagerBase::applyStreamVolumes(audio_io_handle_t output, uint32_t device, int delayMs) +void AudioPolicyManagerBase::applyStreamVolumes(audio_io_handle_t output, uint32_t device, int delayMs, bool force) { LOGV("applyStreamVolumes() for output %d and device %x", output, device); for (int stream = 0; stream < AudioSystem::NUM_STREAM_TYPES; stream++) { - checkAndSetVolume(stream, mStreams[stream].mIndexCur, output, device, delayMs); + checkAndSetVolume(stream, mStreams[stream].mIndexCur, output, device, delayMs, force); } } diff --git a/services/camera/libcameraservice/CannedJpeg.h b/services/camera/libcameraservice/CannedJpeg.h index b6266fb..6dd99c1 100644 --- a/services/camera/libcameraservice/CannedJpeg.h +++ b/services/camera/libcameraservice/CannedJpeg.h @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + const int kCannedJpegWidth = 320; const int kCannedJpegHeight = 240; const int kCannedJpegSize = 8733; diff --git a/services/camera/tests/CameraServiceTest/CameraServiceTest.cpp b/services/camera/tests/CameraServiceTest/CameraServiceTest.cpp index 3c8d553..8a228fd 100644 --- a/services/camera/tests/CameraServiceTest/CameraServiceTest.cpp +++ b/services/camera/tests/CameraServiceTest/CameraServiceTest.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #define LOG_TAG "CameraServiceTest" #include <stdio.h> diff --git a/services/input/EventHub.cpp b/services/input/EventHub.cpp index e2da740..853dda4 100644 --- a/services/input/EventHub.cpp +++ b/services/input/EventHub.cpp @@ -1074,8 +1074,34 @@ int EventHub::closeDeviceAtIndexLocked(int index) { mDevices.removeAt(index); device->close(); - device->next = mClosingDevices; - mClosingDevices = device; + // Unlink for opening devices list if it is present. + Device* pred = NULL; + bool found = false; + for (Device* entry = mOpeningDevices; entry != NULL; ) { + if (entry == device) { + found = true; + break; + } + pred = entry; + entry = entry->next; + } + if (found) { + // Unlink the device from the opening devices list then delete it. + // We don't need to tell the client that the device was closed because + // it does not even know it was opened in the first place. + LOGI("Device %s was immediately closed after opening.", device->path.string()); + if (pred) { + pred->next = device->next; + } else { + mOpeningDevices = device->next; + } + delete device; + } else { + // Link into closing devices list. + // The device will be deleted later after we have informed the client. + device->next = mClosingDevices; + mClosingDevices = device; + } return 0; } diff --git a/services/input/tests/InputDispatcher_test.cpp b/services/input/tests/InputDispatcher_test.cpp index bb3449b..2f846c4 100644 --- a/services/input/tests/InputDispatcher_test.cpp +++ b/services/input/tests/InputDispatcher_test.cpp @@ -1,6 +1,18 @@ -// -// Copyright 2010 The Android Open Source Project -// +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #include "../InputDispatcher.h" diff --git a/services/input/tests/InputReader_test.cpp b/services/input/tests/InputReader_test.cpp index 67a2e21..32982c4 100644 --- a/services/input/tests/InputReader_test.cpp +++ b/services/input/tests/InputReader_test.cpp @@ -1,6 +1,18 @@ -// -// Copyright 2010 The Android Open Source Project -// +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #include "../InputReader.h" diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java index f28e2b1..a4a95a0 100644 --- a/services/java/com/android/server/AppWidgetService.java +++ b/services/java/com/android/server/AppWidgetService.java @@ -135,7 +135,7 @@ class AppWidgetService extends IAppWidgetService.Stub IRemoteViewsAdapterConnection.Stub.asInterface(mConnectionCb); try { cb.onServiceConnected(service); - } catch (RemoteException e) { + } catch (Exception e) { e.printStackTrace(); } } @@ -147,7 +147,7 @@ class AppWidgetService extends IAppWidgetService.Stub IRemoteViewsAdapterConnection.Stub.asInterface(mConnectionCb); try { cb.onServiceDisconnected(); - } catch (RemoteException e) { + } catch (Exception e) { e.printStackTrace(); } } @@ -541,7 +541,7 @@ class AppWidgetService extends IAppWidgetService.Stub IRemoteViewsFactory.Stub.asInterface(service); try { cb.onDestroy(intent); - } catch (RemoteException e) { + } catch (Exception e) { e.printStackTrace(); } mContext.unbindService(this); diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 04f271d..d542673 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -7030,8 +7030,8 @@ class PackageManagerService extends IPackageManager.Stub { if (pkgSetting.notLaunched) { if (pkgSetting.installerPackageName != null) { sendPackageBroadcast(Intent.ACTION_PACKAGE_FIRST_LAUNCH, - pkgSetting.installerPackageName, null, - pkgSetting.name, null); + pkgSetting.name, null, + pkgSetting.installerPackageName, null); } pkgSetting.notLaunched = false; } diff --git a/services/java/com/android/server/am/LaunchWarningWindow.java b/services/java/com/android/server/am/LaunchWarningWindow.java index 1114a31..cb2b7bb 100644 --- a/services/java/com/android/server/am/LaunchWarningWindow.java +++ b/services/java/com/android/server/am/LaunchWarningWindow.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.android.server.am; import com.android.internal.R; diff --git a/services/java/com/android/server/usb/UsbService.java b/services/java/com/android/server/usb/UsbService.java index 8b419f3..b7f6346 100644 --- a/services/java/com/android/server/usb/UsbService.java +++ b/services/java/com/android/server/usb/UsbService.java @@ -17,9 +17,11 @@ package com.android.server.usb; import android.app.PendingIntent; +import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.hardware.usb.IUsbManager; import android.hardware.usb.UsbAccessory; @@ -112,35 +114,40 @@ public class UsbService extends IUsbManager.Stub { private final boolean mHasUsbHost; private final boolean mHasUsbAccessory; + private final void readCurrentAccessoryLocked() { + if (mHasUsbAccessory) { + String[] strings = nativeGetAccessoryStrings(); + if (strings != null) { + mCurrentAccessory = new UsbAccessory(strings); + Log.d(TAG, "entering USB accessory mode: " + mCurrentAccessory); + if (mSystemReady) { + mDeviceManager.accessoryAttached(mCurrentAccessory); + } + } else { + Log.e(TAG, "nativeGetAccessoryStrings failed"); + } + } + } + /* * Handles USB function enable/disable events (device mode) */ private final void functionEnabledLocked(String function, boolean enabled) { - boolean enteringAccessoryMode = - (mHasUsbAccessory && enabled && UsbManager.USB_FUNCTION_ACCESSORY.equals(function)); - if (enabled) { if (!mEnabledFunctions.contains(function)) { mEnabledFunctions.add(function); } mDisabledFunctions.remove(function); + + if (UsbManager.USB_FUNCTION_ACCESSORY.equals(function)) { + readCurrentAccessoryLocked(); + } } else { if (!mDisabledFunctions.contains(function)) { mDisabledFunctions.add(function); } mEnabledFunctions.remove(function); } - - if (enteringAccessoryMode) { - String[] strings = nativeGetAccessoryStrings(); - if (strings != null) { - mCurrentAccessory = new UsbAccessory(strings); - Log.d(TAG, "entering USB accessory mode: " + mCurrentAccessory); - mDeviceManager.accessoryAttached(mCurrentAccessory); - } else { - Log.e(TAG, "nativeGetAccessoryStrings failed"); - } - } } /* @@ -193,6 +200,17 @@ public class UsbService extends IUsbManager.Stub { } }; + private final BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() { + public void onReceive(Context context, Intent intent) { + // handle accessories attached at boot time + synchronized (mLock) { + if (mCurrentAccessory != null) { + mDeviceManager.accessoryAttached(mCurrentAccessory); + } + } + } + }; + public UsbService(Context context) { mContext = context; mDeviceManager = new UsbDeviceSettingsManager(context); @@ -203,17 +221,21 @@ public class UsbService extends IUsbManager.Stub { mHostBlacklist = context.getResources().getStringArray( com.android.internal.R.array.config_usbHostBlacklist); - init(); // set initial status + synchronized (mLock) { + init(); // set initial status - if (mConfiguration >= 0) { - mUEventObserver.startObserving(USB_CONNECTED_MATCH); - mUEventObserver.startObserving(USB_CONFIGURATION_MATCH); - mUEventObserver.startObserving(USB_FUNCTIONS_MATCH); + // Watch for USB configuration changes + if (mConfiguration >= 0) { + mUEventObserver.startObserving(USB_CONNECTED_MATCH); + mUEventObserver.startObserving(USB_CONFIGURATION_MATCH); + mUEventObserver.startObserving(USB_FUNCTIONS_MATCH); + } } } private final void init() { char[] buffer = new char[1024]; + boolean inAccessoryMode = false; // Read initial USB state (device mode) mConfiguration = -1; @@ -233,8 +255,10 @@ public class UsbService extends IUsbManager.Stub { } catch (Exception e) { Slog.e(TAG, "" , e); } - if (mConfiguration < 0) + if (mConfiguration < 0) { + // This may happen in the emulator or devices without USB device mode support return; + } // Read initial list of enabled and disabled functions (device mode) try { @@ -248,9 +272,13 @@ public class UsbService extends IUsbManager.Stub { String functionName = files[i].getName(); if (value == 1) { mEnabledFunctions.add(functionName); - // adb is enabled/disabled automatically by the adbd daemon, - // so don't treat it as a default function - if (!UsbManager.USB_FUNCTION_ADB.equals(functionName)) { + if (UsbManager.USB_FUNCTION_ACCESSORY.equals(functionName)) { + // The USB accessory driver is on by default, but it might have been + // enabled before the USB service has initialized. + inAccessoryMode = true; + } else if (!UsbManager.USB_FUNCTION_ADB.equals(functionName)) { + // adb is enabled/disabled automatically by the adbd daemon, + // so don't treat it as a default function. mDefaultFunctions.add(functionName); } } else { @@ -262,6 +290,21 @@ public class UsbService extends IUsbManager.Stub { } catch (Exception e) { Slog.e(TAG, "" , e); } + + // handle the case where an accessory switched the driver to accessory mode + // before the framework finished booting + if (inAccessoryMode) { + readCurrentAccessoryLocked(); + + // FIXME - if we booted in accessory mode, then we have no way to figure out + // which functions are enabled by default. + // For now, assume that MTP or mass storage are the only possibilities + if (mDisabledFunctions.contains(UsbManager.USB_FUNCTION_MTP)) { + mDefaultFunctions.add(UsbManager.USB_FUNCTION_MTP); + } else if (mDisabledFunctions.contains(UsbManager.USB_FUNCTION_MASS_STORAGE)) { + mDefaultFunctions.add(UsbManager.USB_FUNCTION_MASS_STORAGE); + } + } } private boolean isBlackListed(String deviceName) { @@ -381,6 +424,13 @@ public class UsbService extends IUsbManager.Stub { } update(false); + if (mCurrentAccessory != null) { + Log.d(TAG, "accessoryAttached at systemReady"); + // its still too early to handle accessories, so add a BOOT_COMPLETED receiver + // to handle this later. + mContext.registerReceiver(mBootCompletedReceiver, + new IntentFilter(Intent.ACTION_BOOT_COMPLETED)); + } mSystemReady = true; } } @@ -512,20 +562,18 @@ public class UsbService extends IUsbManager.Stub { if (mConnected != mLastConnected || mConfiguration != mLastConfiguration) { if (mConnected == 0) { // make sure accessory mode is off, and restore default functions - if (UsbManager.setFunctionEnabled( + if (mCurrentAccessory != null && UsbManager.setFunctionEnabled( UsbManager.USB_FUNCTION_ACCESSORY, false)) { Log.d(TAG, "exited USB accessory mode"); int count = mDefaultFunctions.size(); for (int i = 0; i < count; i++) { String function = mDefaultFunctions.get(i); - if (UsbManager.setFunctionEnabled(function, true)) { + if (!UsbManager.setFunctionEnabled(function, true)) { Log.e(TAG, "could not reenable function " + function); } } - } - if (mCurrentAccessory != null) { mDeviceManager.accessoryDetached(mCurrentAccessory); mCurrentAccessory = null; } diff --git a/services/jni/onload.cpp b/services/jni/onload.cpp index 37b520b..0c46eee 100644 --- a/services/jni/onload.cpp +++ b/services/jni/onload.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2009 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. + */ + #include "JNIHelp.h" #include "jni.h" #include "utils/Log.h" diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 1297363..517c335 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -809,7 +809,7 @@ status_t Layer::ClientRef::setToken(const sp<UserClient>& uc, { // scope for strong mUserClient reference sp<UserClient> userClient(mUserClient.promote()); - if (mUserClient != 0 && mControlBlock != 0) { + if (userClient != 0 && mControlBlock != 0) { mControlBlock->setStatus(NO_INIT); } } @@ -858,11 +858,13 @@ status_t Layer::BufferManager::resize(size_t size, Mutex::Autolock _l(mLock); if (size < mNumBuffers) { - // Move the active texture into slot 0 - BufferData activeBufferData = mBufferData[mActiveBufferIndex]; - mBufferData[mActiveBufferIndex] = mBufferData[0]; - mBufferData[0] = activeBufferData; - mActiveBufferIndex = 0; + // If there is an active texture, move it into slot 0 if needed + if (mActiveBufferIndex > 0) { + BufferData activeBufferData = mBufferData[mActiveBufferIndex]; + mBufferData[mActiveBufferIndex] = mBufferData[0]; + mBufferData[0] = activeBufferData; + mActiveBufferIndex = 0; + } // Free the buffers that are no longer needed. for (size_t i = size; i < mNumBuffers; i++) { diff --git a/services/surfaceflinger/tests/resize/resize.cpp b/services/surfaceflinger/tests/resize/resize.cpp index 99f4b4f..0ccca77 100644 --- a/services/surfaceflinger/tests/resize/resize.cpp +++ b/services/surfaceflinger/tests/resize/resize.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include <cutils/memory.h> #include <utils/Log.h> diff --git a/services/surfaceflinger/tests/surface/surface.cpp b/services/surfaceflinger/tests/surface/surface.cpp index 194fbb6..67ecf7e 100644 --- a/services/surfaceflinger/tests/surface/surface.cpp +++ b/services/surfaceflinger/tests/surface/surface.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include <cutils/memory.h> #include <utils/Log.h> diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 98ab3d1..1767dd9 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -556,7 +556,7 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteDbm() { - log("STOPSHIP teach getLteDbm to compute dBm properly"); + log("TODO: teach getLteDbm to compute dBm properly"); int level = -1; if (DBG) log("getLteDbm=" + level); return level; @@ -568,7 +568,7 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteLevel() { - log("STOPSHIP teach getLteLevel to compute Level properly"); + log("TODO: teach getLteLevel to compute Level properly"); int level = SIGNAL_STRENGTH_MODERATE; if (DBG) log("getLteLevel=" + level); return level; @@ -580,7 +580,7 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteAsuLevel() { - log("STOPSHIP teach getLteAsuLevel to compute asu Level properly"); + log("TODO: teach getLteAsuLevel to compute asu Level properly"); int level = 4; if (DBG) log("getLteAsuLevel=" + level); return level; diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java index 138a455..b9f769f 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeTypedArray.java @@ -491,18 +491,11 @@ public final class BridgeTypedArray extends TypedArray { if (ResourceHelper.stringToFloat(s, mValue)) { float f = mValue.getDimension(mBridgeResources.mMetrics); - if (f < 0) { - // negative values are not allowed in pixel dimensions - Bridge.getLog().error(LayoutLog.TAG_BROKEN, - "Negative pixel dimension: " + s, - null, null /*data*/); - return defValue; - } - + final int res = (int)(f+0.5f); + if (res != 0) return res; if (f == 0) return 0; - if (f < 1) return 1; - - return (int)(f+0.5f); + if (f > 0) return 1; + return defValue; // this is basically unreachable. } // looks like we were unable to resolve the dimension value |