diff options
Diffstat (limited to 'core')
227 files changed, 4435 insertions, 3939 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 993b53d..3001c2c 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -209,7 +209,8 @@ public class AccountManager { /** * Bundle key used to supply the last time the credentials of the account * were authenticated successfully. Time is specified in milliseconds since - * epoch. + * epoch. Associated time is updated on successful authentication of account + * on adding account, confirming credentials, or updating credentials. */ public static final String KEY_LAST_AUTHENTICATED_TIME = "lastAuthenticatedTime"; @@ -651,18 +652,25 @@ public class AccountManager { } /** - * Adds an account directly to the AccountManager. Normally used by sign-up + * Adds an account directly to the AccountManager. Normally used by sign-up * wizards associated with authenticators, not directly by applications. - * + * <p>Calling this method does not update the last authenticated timestamp, + * referred by {@link #KEY_LAST_AUTHENTICATED_TIME}. To update it, call + * {@link #notifyAccountAuthenticated(Account)} after getting success. + * However, if this method is called when it is triggered by addAccount() or + * addAccountAsUser() or similar functions, then there is no need to update + * timestamp manually as it is updated automatically by framework on + * successful completion of the mentioned functions. * <p>It is safe to call this method from the main thread. * <p>This method requires the caller to have a signature match with the * authenticator that owns the specified account. * * @param account The {@link Account} to add * @param password The password to associate with the account, null for none - * @param userdata String values to use for the account's userdata, null for none + * @param userdata String values to use for the account's userdata, null for + * none * @return True if the account was successfully added, false if the account - * already exists, the account is null, or another error occurs. + * already exists, the account is null, or another error occurs. */ public boolean addAccountExplicitly(Account account, String password, Bundle userdata) { if (account == null) throw new IllegalArgumentException("account is null"); @@ -976,17 +984,19 @@ public class AccountManager { } /** - * Sets or forgets a saved password. This modifies the local copy of the - * password used to automatically authenticate the user; it does - * not change the user's account password on the server. Intended for use - * by the authenticator, not directly by applications. - * + * Sets or forgets a saved password. This modifies the local copy of the + * password used to automatically authenticate the user; it does not change + * the user's account password on the server. Intended for use by the + * authenticator, not directly by applications. + * <p>Calling this method does not update the last authenticated timestamp, + * referred by {@link #KEY_LAST_AUTHENTICATED_TIME}. To update it, call + * {@link #notifyAccountAuthenticated(Account)} after getting success. * <p>It is safe to call this method from the main thread. - * * <p>This method requires the caller to have a signature match with the * authenticator that manages the specified account. * - * @param account The account whose password is to be set. Cannot be {@code null}. + * @param account The account whose password is to be set. Cannot be + * {@code null}. * @param password The password to set, null to clear the password */ public void setPassword(final Account account, final String password) { diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 1b4ee2e..e8ab109 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -2075,6 +2075,9 @@ public class Activity extends ContextThemeWrapper "by the window decor. Do not request Window.FEATURE_ACTION_BAR and set " + "android:windowActionBar to false in your theme to use a Toolbar instead."); } + // Clear out the MenuInflater to make sure that it is valid for the new Action Bar + mMenuInflater = null; + ToolbarActionBar tbab = new ToolbarActionBar(toolbar, getTitle(), this); mActionBar = tbab; mWindow.setCallback(tbab.getWrappedWindowCallback()); diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index b65593d..9ca206a 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -2345,7 +2345,8 @@ public class ActivityManager { @SystemApi public int getPackageImportance(String packageName) { try { - int procState = ActivityManagerNative.getDefault().getPackageProcessState(packageName); + int procState = ActivityManagerNative.getDefault().getPackageProcessState(packageName, + mContext.getOpPackageName()); return RunningAppProcessInfo.procStateToImportance(procState); } catch (RemoteException e) { return RunningAppProcessInfo.IMPORTANCE_GONE; diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java index 680feae..2bb4e76 100644 --- a/core/java/android/app/ActivityManagerNative.java +++ b/core/java/android/app/ActivityManagerNative.java @@ -2217,6 +2217,14 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } + case IS_SCREEN_CAPTURE_ALLOWED_ON_CURRENT_ACTIVITY_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + boolean res = isScreenCaptureAllowedOnCurrentActivity(); + reply.writeNoException(); + reply.writeInt(res ? 1 : 0); + return true; + } + case KILL_UID_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int uid = data.readInt(); @@ -2539,7 +2547,8 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM case GET_PACKAGE_PROCESS_STATE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); - int res = getPackageProcessState(pkg); + String callingPackage = data.readString(); + int res = getPackageProcessState(pkg, callingPackage); reply.writeNoException(); reply.writeInt(res); return true; @@ -5408,6 +5417,18 @@ class ActivityManagerProxy implements IActivityManager return res; } + public boolean isScreenCaptureAllowedOnCurrentActivity() throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + mRemote.transact(IS_SCREEN_CAPTURE_ALLOWED_ON_CURRENT_ACTIVITY_TRANSACTION, data, reply, 0); + reply.readException(); + boolean res = reply.readInt() != 0; + data.recycle(); + reply.recycle(); + return res; + } + public void killUid(int uid, String reason) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); @@ -5868,11 +5889,13 @@ class ActivityManagerProxy implements IActivityManager } @Override - public int getPackageProcessState(String packageName) throws RemoteException { + public int getPackageProcessState(String packageName, String callingPackage) + throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeString(packageName); + data.writeString(callingPackage); mRemote.transact(GET_PACKAGE_PROCESS_STATE_TRANSACTION, data, reply, 0); reply.readException(); int res = reply.readInt(); diff --git a/core/java/android/app/AssistContent.java b/core/java/android/app/AssistContent.java deleted file mode 100644 index ad2ba39..0000000 --- a/core/java/android/app/AssistContent.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.app; - -import android.content.ClipData; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.os.Parcel; -import android.os.Parcelable; - -/** - * Holds information about the content an application is viewing, to hand to an - * assistant at the user's request. This is filled in by - * {@link android.app.Activity#onProvideAssistContent Activity.onProvideAssistContent}. - * @deprecated use {@link android.app.assist.AssistContent}. - */ -@Deprecated -public class AssistContent { - private boolean mIsAppProvidedIntent = false; - private Intent mIntent; - private String mStructuredData; - private ClipData mClipData; - private Uri mUri; - private final Bundle mExtras; - - /** - * @hide - * Key name this data structure is stored in the Bundle generated by - * {@link android.app.Activity#onProvideAssistData}. - */ - public static final String ASSIST_KEY = "android:assist_content"; - - /** - * @hide - * Retrieve the framework-generated AssistContent that is stored within - * the Bundle filled in by {@link android.app.Activity#onProvideAssistContent}. - */ - public static android.app.assist.AssistContent getAssistContent(Bundle assistBundle) { - return assistBundle.getParcelable(ASSIST_KEY); - } - - public AssistContent() { - mExtras = new Bundle(); - } - - /** - * @hide - * Called by {@link android.app.ActivityThread} to set the default Intent based on - * {@link android.app.Activity#getIntent Activity.getIntent}. - * - * <p>Automatically populates {@link #mUri} if that Intent is an {@link Intent#ACTION_VIEW} - * of a web (http or https scheme) URI.</p> - */ - public void setDefaultIntent(Intent intent) { - mIntent = intent; - setWebUri(null); - if (intent != null && Intent.ACTION_VIEW.equals(intent.getAction())) { - Uri uri = intent.getData(); - if (uri != null) { - if ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme())) { - setWebUri(uri); - } - } - } - } - - /** - * Sets the Intent associated with the content, describing the current top-level context of - * the activity. If this contains a reference to a piece of data related to the activity, - * be sure to set {@link Intent#FLAG_GRANT_READ_URI_PERMISSION} so the accessibility - * service can access it. - */ - public void setIntent(Intent intent) { - mIsAppProvidedIntent = true; - mIntent = intent; - } - - /** - * Returns the current {@link #setIntent} if one is set, else the default Intent obtained from - * {@link android.app.Activity#getIntent Activity.getIntent}. Can be modified in-place. - * @hide - */ - public Intent getIntent() { - return mIntent; - } - - /** - * Returns whether or not the current Intent was explicitly provided in - * {@link android.app.Activity#onProvideAssistContent Activity.onProvideAssistContent}. If not, - * the Intent was automatically set based on - * {@link android.app.Activity#getIntent Activity.getIntent}. - */ - public boolean isAppProvidedIntent() { - return mIsAppProvidedIntent; - } - - /** - * Optional additional content items that are involved with - * the current UI. Access to this content will be granted to the assistant as if you - * are sending it through an Intent with {@link Intent#FLAG_GRANT_READ_URI_PERMISSION}. - */ - public void setClipData(ClipData clip) { - mClipData = clip; - } - - /** - * Return the current {@link #setClipData}, which you can modify in-place. - */ - public ClipData getClipData() { - return mClipData; - } - - /** - * Sets optional structured data regarding the content being viewed. The provided data - * must be a string represented with <a href="http://json-ld.org/">JSON-LD</a> using the - * <a href="http://schema.org/">schema.org</a> vocabulary. - */ - public void setStructuredData(String structuredData) { - mStructuredData = structuredData; - } - - /** - * Returns the current {@link #setStructuredData}. - */ - public String getStructuredData() { - return mStructuredData; - } - - /** - * Set a web URI associated with the current data being shown to the user. - * This URI could be opened in a web browser, or in the app as an - * {@link Intent#ACTION_VIEW} Intent, to show the same data that is currently - * being displayed by it. The URI here should be something that is transportable - * off the device into other environments to acesss the same data as is currently - * being shown in the app; if the app does not have such a representation, it should - * leave the null and only report the local intent and clip data. - */ - public void setWebUri(Uri uri) { - mUri = uri; - } - - /** - * Return the content's web URI as per {@link #setWebUri(android.net.Uri)}, or null if - * there is none. - */ - public Uri getWebUri() { - return mUri; - } - - /** - * Return Bundle for extra vendor-specific data that can be modified and examined. - */ - public Bundle getExtras() { - return mExtras; - } - - /** @hide */ - public AssistContent(Parcel in) { - if (in.readInt() != 0) { - mIntent = Intent.CREATOR.createFromParcel(in); - } - if (in.readInt() != 0) { - mClipData = ClipData.CREATOR.createFromParcel(in); - } - if (in.readInt() != 0) { - mUri = Uri.CREATOR.createFromParcel(in); - } - if (in.readInt() != 0) { - mStructuredData = in.readString(); - } - mIsAppProvidedIntent = in.readInt() == 1; - mExtras = in.readBundle(); - } - - /** @hide */ - public void writeToParcelInternal(Parcel dest, int flags) { - if (mIntent != null) { - dest.writeInt(1); - mIntent.writeToParcel(dest, flags); - } else { - dest.writeInt(0); - } - if (mClipData != null) { - dest.writeInt(1); - mClipData.writeToParcel(dest, flags); - } else { - dest.writeInt(0); - } - if (mUri != null) { - dest.writeInt(1); - mUri.writeToParcel(dest, flags); - } else { - dest.writeInt(0); - } - if (mStructuredData != null) { - dest.writeInt(1); - dest.writeString(mStructuredData); - } else { - dest.writeInt(0); - } - dest.writeInt(mIsAppProvidedIntent ? 1 : 0); - dest.writeBundle(mExtras); - } -} diff --git a/core/java/android/app/AssistStructure.java b/core/java/android/app/AssistStructure.java deleted file mode 100644 index 7f6dae5..0000000 --- a/core/java/android/app/AssistStructure.java +++ /dev/null @@ -1,1075 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.app; - -import android.content.ComponentName; -import android.graphics.Rect; -import android.os.Binder; -import android.os.Bundle; -import android.os.IBinder; -import android.os.Parcel; -import android.os.Parcelable; -import android.os.PooledStringReader; -import android.os.PooledStringWriter; -import android.os.RemoteException; -import android.os.SystemClock; -import android.text.TextUtils; -import android.util.Log; -import android.view.View; -import android.view.ViewAssistStructure; -import android.view.ViewRootImpl; -import android.view.WindowManager; -import android.view.WindowManagerGlobal; - -import java.util.ArrayList; - -/** - * Assist data automatically created by the platform's implementation - * of {@link android.app.Activity#onProvideAssistData}. - * @deprecated use {@link android.app.assist.AssistStructure}. - */ -@Deprecated -public class AssistStructure { - static final String TAG = "AssistStructure"; - - /** - * @hide - * Key name this data structure is stored in the Bundle generated by - * {@link android.app.Activity#onProvideAssistData}. - */ - public static final String ASSIST_KEY = "android:assist_structure"; - - /** @hide */ - public boolean mHaveData; - - ComponentName mActivityComponent; - - final ArrayList<WindowNode> mWindowNodes = new ArrayList<>(); - - final ArrayList<ViewNodeBuilder> mPendingAsyncChildren = new ArrayList<>(); - - /** @hide */ - public SendChannel mSendChannel; - /** @hide */ - public IBinder mReceiveChannel; - - Rect mTmpRect = new Rect(); - - static final int TRANSACTION_XFER = Binder.FIRST_CALL_TRANSACTION+1; - static final String DESCRIPTOR = "android.app.AssistStructure"; - - /** @hide */ - public final class SendChannel extends Binder { - @Override protected boolean onTransact(int code, Parcel data, Parcel reply, int flags) - throws RemoteException { - if (code == TRANSACTION_XFER) { - data.enforceInterface(DESCRIPTOR); - writeContentToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); - return true; - } else { - return super.onTransact(code, data, reply, flags); - } - } - } - - final static class ViewNodeText { - CharSequence mText; - int mTextSelectionStart; - int mTextSelectionEnd; - int mTextColor; - int mTextBackgroundColor; - float mTextSize; - int mTextStyle; - String mHint; - - ViewNodeText() { - } - - ViewNodeText(Parcel in) { - mText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - mTextSelectionStart = in.readInt(); - mTextSelectionEnd = in.readInt(); - mTextColor = in.readInt(); - mTextBackgroundColor = in.readInt(); - mTextSize = in.readFloat(); - mTextStyle = in.readInt(); - mHint = in.readString(); - } - - void writeToParcel(Parcel out) { - TextUtils.writeToParcel(mText, out, 0); - out.writeInt(mTextSelectionStart); - out.writeInt(mTextSelectionEnd); - out.writeInt(mTextColor); - out.writeInt(mTextBackgroundColor); - out.writeFloat(mTextSize); - out.writeInt(mTextStyle); - out.writeString(mHint); - } - } - - /** - * Describes a window in the assist data. - */ - static public class WindowNode { - final int mX; - final int mY; - final int mWidth; - final int mHeight; - final CharSequence mTitle; - final int mDisplayId; - final ViewNode mRoot; - - WindowNode(AssistStructure assist, ViewRootImpl root) { - View view = root.getView(); - Rect rect = new Rect(); - view.getBoundsOnScreen(rect); - mX = rect.left - view.getLeft(); - mY = rect.top - view.getTop(); - mWidth = rect.width(); - mHeight = rect.height(); - mTitle = root.getTitle(); - mDisplayId = root.getDisplayId(); - mRoot = new ViewNode(); - ViewNodeBuilder builder = new ViewNodeBuilder(assist, mRoot, false); - if ((root.getWindowFlags()&WindowManager.LayoutParams.FLAG_SECURE) != 0) { - // This is a secure window, so it doesn't want a screenshot, and that - // means we should also not copy out its view hierarchy. - view.onProvideStructure(builder); - builder.setAssistBlocked(true); - return; - } - view.dispatchProvideStructure(builder); - } - - WindowNode(Parcel in, PooledStringReader preader) { - mX = in.readInt(); - mY = in.readInt(); - mWidth = in.readInt(); - mHeight = in.readInt(); - mTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - mDisplayId = in.readInt(); - mRoot = new ViewNode(in, preader); - } - - void writeToParcel(Parcel out, PooledStringWriter pwriter) { - out.writeInt(mX); - out.writeInt(mY); - out.writeInt(mWidth); - out.writeInt(mHeight); - TextUtils.writeToParcel(mTitle, out, 0); - out.writeInt(mDisplayId); - mRoot.writeToParcel(out, pwriter); - } - - /** - * Returns the left edge of the window, in pixels, relative to the left - * edge of the screen. - */ - public int getLeft() { - return mX; - } - - /** - * Returns the top edge of the window, in pixels, relative to the top - * edge of the screen. - */ - public int getTop() { - return mY; - } - - /** - * Returns the total width of the window in pixels. - */ - public int getWidth() { - return mWidth; - } - - /** - * Returns the total height of the window in pixels. - */ - public int getHeight() { - return mHeight; - } - - /** - * Returns the title associated with the window, if it has one. - */ - public CharSequence getTitle() { - return mTitle; - } - - /** - * Returns the ID of the display this window is on, for use with - * {@link android.hardware.display.DisplayManager#getDisplay DisplayManager.getDisplay()}. - */ - public int getDisplayId() { - return mDisplayId; - } - - /** - * Returns the {@link ViewNode} containing the root content of the window. - */ - public ViewNode getRootViewNode() { - return mRoot; - } - } - - /** - * Describes a single view in the assist data. - */ - static public class ViewNode { - /** - * Magic value for text color that has not been defined, which is very unlikely - * to be confused with a real text color. - */ - public static final int TEXT_COLOR_UNDEFINED = 1; - - public static final int TEXT_STYLE_BOLD = 1<<0; - public static final int TEXT_STYLE_ITALIC = 1<<1; - public static final int TEXT_STYLE_UNDERLINE = 1<<2; - public static final int TEXT_STYLE_STRIKE_THRU = 1<<3; - - int mId; - String mIdPackage; - String mIdType; - String mIdEntry; - int mX; - int mY; - int mScrollX; - int mScrollY; - int mWidth; - int mHeight; - - static final int FLAGS_DISABLED = 0x00000001; - static final int FLAGS_VISIBILITY_MASK = View.VISIBLE|View.INVISIBLE|View.GONE; - static final int FLAGS_FOCUSABLE = 0x00000010; - static final int FLAGS_FOCUSED = 0x00000020; - static final int FLAGS_ACCESSIBILITY_FOCUSED = 0x04000000; - static final int FLAGS_SELECTED = 0x00000040; - static final int FLAGS_ASSIST_BLOCKED = 0x00000080; - static final int FLAGS_ACTIVATED = 0x40000000; - static final int FLAGS_CHECKABLE = 0x00000100; - static final int FLAGS_CHECKED = 0x00000200; - static final int FLAGS_CLICKABLE = 0x00004000; - static final int FLAGS_LONG_CLICKABLE = 0x00200000; - static final int FLAGS_CONTEXT_CLICKABLE = 0x00400000; - - int mFlags; - - String mClassName; - CharSequence mContentDescription; - - ViewNodeText mText; - Bundle mExtras; - - ViewNode[] mChildren; - - ViewNode() { - } - - ViewNode(Parcel in, PooledStringReader preader) { - mId = in.readInt(); - if (mId != 0) { - mIdEntry = preader.readString(); - if (mIdEntry != null) { - mIdType = preader.readString(); - mIdPackage = preader.readString(); - } else { - mIdPackage = mIdType = null; - } - } else { - mIdPackage = mIdType = mIdEntry = null; - } - mX = in.readInt(); - mY = in.readInt(); - mScrollX = in.readInt(); - mScrollY = in.readInt(); - mWidth = in.readInt(); - mHeight = in.readInt(); - mFlags = in.readInt(); - mClassName = preader.readString(); - mContentDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - if (in.readInt() != 0) { - mText = new ViewNodeText(in); - } else { - mText = null; - } - mExtras = in.readBundle(); - final int NCHILDREN = in.readInt(); - if (NCHILDREN > 0) { - mChildren = new ViewNode[NCHILDREN]; - for (int i=0; i<NCHILDREN; i++) { - mChildren[i] = new ViewNode(in, preader); - } - } else { - mChildren = null; - } - } - - void writeToParcel(Parcel out, PooledStringWriter pwriter) { - out.writeInt(mId); - if (mId != 0) { - pwriter.writeString(mIdEntry); - if (mIdEntry != null) { - pwriter.writeString(mIdType); - pwriter.writeString(mIdPackage); - } - } - out.writeInt(mX); - out.writeInt(mY); - out.writeInt(mScrollX); - out.writeInt(mScrollY); - out.writeInt(mWidth); - out.writeInt(mHeight); - out.writeInt(mFlags); - pwriter.writeString(mClassName); - TextUtils.writeToParcel(mContentDescription, out, 0); - if (mText != null) { - out.writeInt(1); - mText.writeToParcel(out); - } else { - out.writeInt(0); - } - out.writeBundle(mExtras); - if (mChildren != null) { - final int NCHILDREN = mChildren.length; - out.writeInt(NCHILDREN); - for (int i=0; i<NCHILDREN; i++) { - mChildren[i].writeToParcel(out, pwriter); - } - } else { - out.writeInt(0); - } - } - - /** - * Returns the ID associated with this view, as per {@link View#getId() View.getId()}. - */ - public int getId() { - return mId; - } - - /** - * If {@link #getId()} is a resource identifier, this is the package name of that - * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} - * for more information. - */ - public String getIdPackage() { - return mIdPackage; - } - - /** - * If {@link #getId()} is a resource identifier, this is the type name of that - * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} - * for more information. - */ - public String getIdType() { - return mIdType; - } - - /** - * If {@link #getId()} is a resource identifier, this is the entry name of that - * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} - * for more information. - */ - public String getIdEntry() { - return mIdEntry; - } - - /** - * Returns the left edge of this view, in pixels, relative to the left edge of its parent. - */ - public int getLeft() { - return mX; - } - - /** - * Returns the top edge of this view, in pixels, relative to the top edge of its parent. - */ - public int getTop() { - return mY; - } - - /** - * Returns the current X scroll offset of this view, as per - * {@link android.view.View#getScrollX() View.getScrollX()}. - */ - public int getScrollX() { - return mScrollX; - } - - /** - * Returns the current Y scroll offset of this view, as per - * {@link android.view.View#getScrollX() View.getScrollY()}. - */ - public int getScrollY() { - return mScrollY; - } - - /** - * Returns the width of this view, in pixels. - */ - public int getWidth() { - return mWidth; - } - - /** - * Returns the height of this view, in pixels. - */ - public int getHeight() { - return mHeight; - } - - /** - * Returns the visibility mode of this view, as per - * {@link android.view.View#getVisibility() View.getVisibility()}. - */ - public int getVisibility() { - return mFlags&ViewNode.FLAGS_VISIBILITY_MASK; - } - - /** - * Returns true if assist data has been blocked starting at this node in the hierarchy. - */ - public boolean isAssistBlocked() { - return (mFlags&ViewNode.FLAGS_ASSIST_BLOCKED) == 0; - } - - /** - * Returns true if this node is in an enabled state. - */ - public boolean isEnabled() { - return (mFlags&ViewNode.FLAGS_DISABLED) == 0; - } - - /** - * Returns true if this node is clickable by the user. - */ - public boolean isClickable() { - return (mFlags&ViewNode.FLAGS_CLICKABLE) != 0; - } - - /** - * Returns true if this node can take input focus. - */ - public boolean isFocusable() { - return (mFlags&ViewNode.FLAGS_FOCUSABLE) != 0; - } - - /** - * Returns true if this node currently had input focus at the time that the - * structure was collected. - */ - public boolean isFocused() { - return (mFlags&ViewNode.FLAGS_FOCUSED) != 0; - } - - /** - * Returns true if this node currently had accessibility focus at the time that the - * structure was collected. - */ - public boolean isAccessibilityFocused() { - return (mFlags&ViewNode.FLAGS_ACCESSIBILITY_FOCUSED) != 0; - } - - /** - * Returns true if this node represents something that is checkable by the user. - */ - public boolean isCheckable() { - return (mFlags&ViewNode.FLAGS_CHECKABLE) != 0; - } - - /** - * Returns true if this node is currently in a checked state. - */ - public boolean isChecked() { - return (mFlags&ViewNode.FLAGS_CHECKED) != 0; - } - - /** - * Returns true if this node has currently been selected by the user. - */ - public boolean isSelected() { - return (mFlags&ViewNode.FLAGS_SELECTED) != 0; - } - - /** - * Returns true if this node has currently been activated by the user. - */ - public boolean isActivated() { - return (mFlags&ViewNode.FLAGS_ACTIVATED) != 0; - } - - /** - * Returns true if this node is something the user can perform a long click/press on. - */ - public boolean isLongClickable() { - return (mFlags&ViewNode.FLAGS_LONG_CLICKABLE) != 0; - } - - /** - * Returns true if this node is something the user can perform a context click on. - */ - public boolean isContextClickable() { - return (mFlags&ViewNode.FLAGS_CONTEXT_CLICKABLE) != 0; - } - - /** - * Returns the class name of the node's implementation, indicating its behavior. - * For example, a button will report "android.widget.Button" meaning it behaves - * like a {@link android.widget.Button}. - */ - public String getClassName() { - return mClassName; - } - - /** - * Returns any content description associated with the node, which semantically describes - * its purpose for accessibility and other uses. - */ - public CharSequence getContentDescription() { - return mContentDescription; - } - - /** - * Returns any text associated with the node that is displayed to the user, or null - * if there is none. - */ - public CharSequence getText() { - return mText != null ? mText.mText : null; - } - - /** - * If {@link #getText()} is non-null, this is where the current selection starts. - */ - public int getTextSelectionStart() { - return mText != null ? mText.mTextSelectionStart : -1; - } - - /** - * If {@link #getText()} is non-null, this is where the current selection starts. - * If there is no selection, returns the same value as {@link #getTextSelectionStart()}, - * indicating the cursor position. - */ - public int getTextSelectionEnd() { - return mText != null ? mText.mTextSelectionEnd : -1; - } - - /** - * If {@link #getText()} is non-null, this is the main text color associated with it. - * If there is no text color, {@link #TEXT_COLOR_UNDEFINED} is returned. - * Note that the text may also contain style spans that modify the color of specific - * parts of the text. - */ - public int getTextColor() { - return mText != null ? mText.mTextColor : TEXT_COLOR_UNDEFINED; - } - - /** - * If {@link #getText()} is non-null, this is the main text background color associated - * with it. - * If there is no text background color, {@link #TEXT_COLOR_UNDEFINED} is returned. - * Note that the text may also contain style spans that modify the color of specific - * parts of the text. - */ - public int getTextBackgroundColor() { - return mText != null ? mText.mTextBackgroundColor : TEXT_COLOR_UNDEFINED; - } - - /** - * If {@link #getText()} is non-null, this is the main text size (in pixels) associated - * with it. - * Note that the text may also contain style spans that modify the size of specific - * parts of the text. - */ - public float getTextSize() { - return mText != null ? mText.mTextSize : 0; - } - - /** - * If {@link #getText()} is non-null, this is the main text style associated - * with it, containing a bit mask of {@link #TEXT_STYLE_BOLD}, - * {@link #TEXT_STYLE_BOLD}, {@link #TEXT_STYLE_STRIKE_THRU}, and/or - * {@link #TEXT_STYLE_UNDERLINE}. - * Note that the text may also contain style spans that modify the style of specific - * parts of the text. - */ - public int getTextStyle() { - return mText != null ? mText.mTextStyle : 0; - } - - /** - * Return additional hint text associated with the node; this is typically used with - * a node that takes user input, describing to the user what the input means. - */ - public String getHint() { - return mText != null ? mText.mHint : null; - } - - /** - * Return a Bundle containing optional vendor-specific extension information. - */ - public Bundle getExtras() { - return mExtras; - } - - /** - * Return the number of children this node has. - */ - public int getChildCount() { - return mChildren != null ? mChildren.length : 0; - } - - /** - * Return a child of this node, given an index value from 0 to - * {@link #getChildCount()}-1. - */ - public ViewNode getChildAt(int index) { - return mChildren[index]; - } - } - - static class ViewNodeBuilder extends ViewAssistStructure { - final AssistStructure mAssist; - final ViewNode mNode; - final boolean mAsync; - - ViewNodeBuilder(AssistStructure assist, ViewNode node, boolean async) { - mAssist = assist; - mNode = node; - mAsync = async; - } - - @Override - public void setId(int id, String packageName, String typeName, String entryName) { - mNode.mId = id; - mNode.mIdPackage = packageName; - mNode.mIdType = typeName; - mNode.mIdEntry = entryName; - } - - @Override - public void setDimens(int left, int top, int scrollX, int scrollY, int width, int height) { - mNode.mX = left; - mNode.mY = top; - mNode.mScrollX = scrollX; - mNode.mScrollY = scrollY; - mNode.mWidth = width; - mNode.mHeight = height; - } - - @Override - public void setVisibility(int visibility) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_VISIBILITY_MASK) | visibility; - } - - @Override - public void setAssistBlocked(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ASSIST_BLOCKED) - | (state ? 0 : ViewNode.FLAGS_ASSIST_BLOCKED); - } - - @Override - public void setEnabled(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_DISABLED) - | (state ? 0 : ViewNode.FLAGS_DISABLED); - } - - @Override - public void setClickable(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CLICKABLE) - | (state ? ViewNode.FLAGS_CLICKABLE : 0); - } - - @Override - public void setLongClickable(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_LONG_CLICKABLE) - | (state ? ViewNode.FLAGS_LONG_CLICKABLE : 0); - } - - @Override - public void setContextClickable(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CONTEXT_CLICKABLE) - | (state ? ViewNode.FLAGS_CONTEXT_CLICKABLE : 0); - } - - @Override - public void setFocusable(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_FOCUSABLE) - | (state ? ViewNode.FLAGS_FOCUSABLE : 0); - } - - @Override - public void setFocused(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_FOCUSED) - | (state ? ViewNode.FLAGS_FOCUSED : 0); - } - - @Override - public void setAccessibilityFocused(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ACCESSIBILITY_FOCUSED) - | (state ? ViewNode.FLAGS_ACCESSIBILITY_FOCUSED : 0); - } - - @Override - public void setCheckable(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CHECKABLE) - | (state ? ViewNode.FLAGS_CHECKABLE : 0); - } - - @Override - public void setChecked(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CHECKED) - | (state ? ViewNode.FLAGS_CHECKED : 0); - } - - @Override - public void setSelected(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_SELECTED) - | (state ? ViewNode.FLAGS_SELECTED : 0); - } - - @Override - public void setActivated(boolean state) { - mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ACTIVATED) - | (state ? ViewNode.FLAGS_ACTIVATED : 0); - } - - @Override - public void setClassName(String className) { - mNode.mClassName = className; - } - - @Override - public void setContentDescription(CharSequence contentDescription) { - mNode.mContentDescription = contentDescription; - } - - private final ViewNodeText getNodeText() { - if (mNode.mText != null) { - return mNode.mText; - } - mNode.mText = new ViewNodeText(); - return mNode.mText; - } - - @Override - public void setText(CharSequence text) { - ViewNodeText t = getNodeText(); - t.mText = text; - t.mTextSelectionStart = t.mTextSelectionEnd = -1; - } - - @Override - public void setText(CharSequence text, int selectionStart, int selectionEnd) { - ViewNodeText t = getNodeText(); - t.mText = text; - t.mTextSelectionStart = selectionStart; - t.mTextSelectionEnd = selectionEnd; - } - - @Override - public void setTextStyle(float size, int fgColor, int bgColor, int style) { - ViewNodeText t = getNodeText(); - t.mTextColor = fgColor; - t.mTextBackgroundColor = bgColor; - t.mTextSize = size; - t.mTextStyle = style; - } - - @Override - public void setHint(CharSequence hint) { - getNodeText().mHint = hint != null ? hint.toString() : null; - } - - @Override - public CharSequence getText() { - return mNode.mText != null ? mNode.mText.mText : null; - } - - @Override - public int getTextSelectionStart() { - return mNode.mText != null ? mNode.mText.mTextSelectionStart : -1; - } - - @Override - public int getTextSelectionEnd() { - return mNode.mText != null ? mNode.mText.mTextSelectionEnd : -1; - } - - @Override - public CharSequence getHint() { - return mNode.mText != null ? mNode.mText.mHint : null; - } - - @Override - public Bundle getExtras() { - if (mNode.mExtras != null) { - return mNode.mExtras; - } - mNode.mExtras = new Bundle(); - return mNode.mExtras; - } - - @Override - public boolean hasExtras() { - return mNode.mExtras != null; - } - - @Override - public void setChildCount(int num) { - mNode.mChildren = new ViewNode[num]; - } - - @Override - public int addChildCount(int num) { - if (mNode.mChildren == null) { - setChildCount(num); - return 0; - } - final int start = mNode.mChildren.length; - ViewNode[] newArray = new ViewNode[start + num]; - System.arraycopy(mNode.mChildren, 0, newArray, 0, start); - mNode.mChildren = newArray; - return start; - } - - @Override - public int getChildCount() { - return mNode.mChildren != null ? mNode.mChildren.length : 0; - } - - @Override - public ViewAssistStructure newChild(int index) { - ViewNode node = new ViewNode(); - mNode.mChildren[index] = node; - return new ViewNodeBuilder(mAssist, node, false); - } - - @Override - public ViewAssistStructure asyncNewChild(int index) { - synchronized (mAssist) { - ViewNode node = new ViewNode(); - mNode.mChildren[index] = node; - ViewNodeBuilder builder = new ViewNodeBuilder(mAssist, node, true); - mAssist.mPendingAsyncChildren.add(builder); - return builder; - } - } - - @Override - public void asyncCommit() { - synchronized (mAssist) { - if (!mAsync) { - throw new IllegalStateException("Child " + this - + " was not created with ViewAssistStructure.asyncNewChild"); - } - if (!mAssist.mPendingAsyncChildren.remove(this)) { - throw new IllegalStateException("Child " + this + " already committed"); - } - mAssist.notifyAll(); - } - } - - @Override - public Rect getTempRect() { - return mAssist.mTmpRect; - } - } - - /** @hide */ - public AssistStructure(Activity activity) { - mHaveData = true; - mActivityComponent = activity.getComponentName(); - ArrayList<ViewRootImpl> views = WindowManagerGlobal.getInstance().getRootViews( - activity.getActivityToken()); - for (int i=0; i<views.size(); i++) { - ViewRootImpl root = views.get(i); - mWindowNodes.add(new WindowNode(this, root)); - } - } - - public AssistStructure() { - mHaveData = true; - mActivityComponent = null; - } - - /** @hide */ - public AssistStructure(Parcel in) { - mReceiveChannel = in.readStrongBinder(); - } - - /** @hide */ - public void dump() { - Log.i(TAG, "Activity: " + mActivityComponent.flattenToShortString()); - final int N = getWindowNodeCount(); - for (int i=0; i<N; i++) { - WindowNode node = getWindowNodeAt(i); - Log.i(TAG, "Window #" + i + " [" + node.getLeft() + "," + node.getTop() - + " " + node.getWidth() + "x" + node.getHeight() + "]" + " " + node.getTitle()); - dump(" ", node.getRootViewNode()); - } - } - - void dump(String prefix, ViewNode node) { - Log.i(TAG, prefix + "View [" + node.getLeft() + "," + node.getTop() - + " " + node.getWidth() + "x" + node.getHeight() + "]" + " " + node.getClassName()); - int id = node.getId(); - if (id != 0) { - StringBuilder sb = new StringBuilder(); - sb.append(prefix); sb.append(" ID: #"); sb.append(Integer.toHexString(id)); - String entry = node.getIdEntry(); - if (entry != null) { - String type = node.getIdType(); - String pkg = node.getIdPackage(); - sb.append(" "); sb.append(pkg); sb.append(":"); sb.append(type); - sb.append("/"); sb.append(entry); - } - Log.i(TAG, sb.toString()); - } - int scrollX = node.getScrollX(); - int scrollY = node.getScrollY(); - if (scrollX != 0 || scrollY != 0) { - Log.i(TAG, prefix + " Scroll: " + scrollX + "," + scrollY); - } - CharSequence contentDescription = node.getContentDescription(); - if (contentDescription != null) { - Log.i(TAG, prefix + " Content description: " + contentDescription); - } - CharSequence text = node.getText(); - if (text != null) { - Log.i(TAG, prefix + " Text (sel " + node.getTextSelectionStart() + "-" - + node.getTextSelectionEnd() + "): " + text); - Log.i(TAG, prefix + " Text size: " + node.getTextSize() + " , style: #" - + node.getTextStyle()); - Log.i(TAG, prefix + " Text color fg: #" + Integer.toHexString(node.getTextColor()) - + ", bg: #" + Integer.toHexString(node.getTextBackgroundColor())); - } - String hint = node.getHint(); - if (hint != null) { - Log.i(TAG, prefix + " Hint: " + hint); - } - Bundle extras = node.getExtras(); - if (extras != null) { - Log.i(TAG, prefix + " Extras: " + extras); - } - final int NCHILDREN = node.getChildCount(); - if (NCHILDREN > 0) { - Log.i(TAG, prefix + " Children:"); - String cprefix = prefix + " "; - for (int i=0; i<NCHILDREN; i++) { - ViewNode cnode = node.getChildAt(i); - dump(cprefix, cnode); - } - } - } - - /** - * @hide - * Retrieve the framework-generated AssistStructure that is stored within - * the Bundle filled in by {@link Activity#onProvideAssistData}. - */ - public static android.app.assist.AssistStructure getAssistStructure(Bundle assistBundle) { - return assistBundle.getParcelable(ASSIST_KEY); - } - - /** - * Return the activity this AssistStructure came from. - */ - public ComponentName getActivityComponent() { - ensureData(); - return mActivityComponent; - } - - /** - * Return the number of window contents that have been collected in this assist data. - */ - public int getWindowNodeCount() { - ensureData(); - return mWindowNodes.size(); - } - - /** - * Return one of the windows in the assist data. - * @param index Which window to retrieve, may be 0 to {@link #getWindowNodeCount()}-1. - * @hide - */ - public WindowNode getWindowNodeAt(int index) { - ensureData(); - return mWindowNodes.get(index); - } - - /** @hide */ - public void ensureData() { - if (mHaveData) { - return; - } - mHaveData = true; - Parcel data = Parcel.obtain(); - Parcel reply = Parcel.obtain(); - data.writeInterfaceToken(DESCRIPTOR); - try { - mReceiveChannel.transact(TRANSACTION_XFER, data, reply, 0); - } catch (RemoteException e) { - Log.w(TAG, "Failure reading AssistStructure data", e); - return; - } - readContentFromParcel(reply); - data.recycle(); - reply.recycle(); - } - - void writeContentToParcel(Parcel out, int flags) { - // First make sure all content has been created. - boolean skipStructure = false; - synchronized (this) { - long endTime = SystemClock.uptimeMillis() + 5000; - long now; - while (mPendingAsyncChildren.size() > 0 && (now=SystemClock.uptimeMillis()) < endTime) { - try { - wait(endTime-now); - } catch (InterruptedException e) { - } - } - if (mPendingAsyncChildren.size() > 0) { - // We waited too long, assume none of the assist structure is valid. - skipStructure = true; - } - } - int start = out.dataPosition(); - PooledStringWriter pwriter = new PooledStringWriter(out); - ComponentName.writeToParcel(mActivityComponent, out); - final int N = skipStructure ? 0 : mWindowNodes.size(); - out.writeInt(N); - for (int i=0; i<N; i++) { - mWindowNodes.get(i).writeToParcel(out, pwriter); - } - pwriter.finish(); - Log.i(TAG, "Flattened assist data: " + (out.dataPosition() - start) + " bytes"); - } - - void readContentFromParcel(Parcel in) { - PooledStringReader preader = new PooledStringReader(in); - mActivityComponent = ComponentName.readFromParcel(in); - final int N = in.readInt(); - for (int i=0; i<N; i++) { - mWindowNodes.add(new WindowNode(in, preader)); - } - //dump(); - } -} diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java index e7f7e13..1423e4b 100644 --- a/core/java/android/app/IActivityManager.java +++ b/core/java/android/app/IActivityManager.java @@ -441,6 +441,8 @@ public interface IActivityManager extends IInterface { public boolean launchAssistIntent(Intent intent, int requestType, String hint, int userHandle, Bundle args) throws RemoteException; + public boolean isScreenCaptureAllowedOnCurrentActivity() throws RemoteException; + public void killUid(int uid, String reason) throws RemoteException; public void hang(IBinder who, boolean allowRestart) throws RemoteException; @@ -503,7 +505,8 @@ public interface IActivityManager extends IInterface { public void updateLockTaskPackages(int userId, String[] packages) throws RemoteException; public void updateDeviceOwner(String packageName) throws RemoteException; - public int getPackageProcessState(String packageName) throws RemoteException; + public int getPackageProcessState(String packageName, String callingPackage) + throws RemoteException; public boolean setProcessMemoryTrimLevel(String process, int uid, int level) throws RemoteException; @@ -851,4 +854,6 @@ public interface IActivityManager extends IInterface { int KEYGUARD_GOING_AWAY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+296; int REGISTER_UID_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+297; int UNREGISTER_UID_OBSERVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+298; + int IS_SCREEN_CAPTURE_ALLOWED_ON_CURRENT_ACTIVITY_TRANSACTION + = IBinder.FIRST_CALL_TRANSACTION+299; } diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 5a0d246..c3dece8 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -1749,6 +1749,7 @@ public class Notification implements Parcelable * Stack</a> document. * * @deprecated Use {@link Builder} instead. + * @removed */ @Deprecated public void setLatestEventInfo(Context context, @@ -3586,12 +3587,19 @@ public class Notification implements Parcelable * object. */ public Notification build() { + if (mSmallIcon != null) { + mSmallIcon.convertToAshmem(); + } + if (mLargeIcon != null) { + mLargeIcon.convertToAshmem(); + } mOriginatingUserId = mContext.getUserId(); mHasThreeLines = hasThreeLines(); Notification n = buildUnstyled(); if (mStyle != null) { + mStyle.purgeResources(); n = mStyle.buildStyled(n); } @@ -3790,6 +3798,11 @@ public class Notification implements Parcelable return wip; } + /** + * @hide + */ + public void purgeResources() {} + // The following methods are split out so we can re-create notification partially. /** * @hide @@ -3901,8 +3914,21 @@ public class Notification implements Parcelable return this; } - private RemoteViews makeBigContentView() { + /** + * @hide + */ + @Override + public void purgeResources() { + super.purgeResources(); + if (mPicture != null && mPicture.isMutable()) { + mPicture = mPicture.createAshmemBitmap(); + } + if (mBigLargeIcon != null) { + mBigLargeIcon.convertToAshmem(); + } + } + private RemoteViews makeBigContentView() { // Replace mLargeIcon with mBigLargeIcon if mBigLargeIconSet // This covers the following cases: // 1. mBigLargeIconSet -> mBigLargeIcon (null or non-null) applies, overrides diff --git a/core/java/android/app/VoiceInteractor.java b/core/java/android/app/VoiceInteractor.java index 9cc399d..abb8244 100644 --- a/core/java/android/app/VoiceInteractor.java +++ b/core/java/android/app/VoiceInteractor.java @@ -225,6 +225,9 @@ public final class VoiceInteractor { * Cancel this active request. */ public void cancel() { + if (mRequestInterface == null) { + throw new IllegalStateException("Request " + this + " is no longer active"); + } try { mRequestInterface.cancel(); } catch (RemoteException e) { diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 125708a..7de2189 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2402,6 +2402,9 @@ public class DevicePolicyManager { * <p>The calling device admin must be a device or profile owner. If it is not, a * security exception will be thrown. * + * <p>From version {@link android.os.Build.VERSION_CODES#MNC} disabling screen capture also + * blocks assist requests for all activities of the relevant user. + * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @param disabled Whether screen capture is disabled or not. */ @@ -3972,6 +3975,7 @@ public class DevicePolicyManager { * <li>{@link Settings.Global#STAY_ON_WHILE_PLUGGED_IN} * This setting is only available from {@link android.os.Build.VERSION_CODES#MNC} onwards * and can only be set if {@link #setMaximumTimeToLock} is not used to set a timeout.</li> + * <li>{@link Settings.Global#WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN}</li> * </ul> * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. @@ -4331,7 +4335,7 @@ public class DevicePolicyManager { * @param admin Which profile or device owner this request is associated with. * @return the current policy for future permission requests. */ - public int getPermissionPolicy(@NonNull ComponentName admin) { + public int getPermissionPolicy(ComponentName admin) { try { return mService.getPermissionPolicy(admin); } catch (RemoteException re) { @@ -4349,6 +4353,12 @@ public class DevicePolicyManager { * group that the runtime permission belongs to. This method can only be called * by a profile or device owner. * + * <p/>Setting the grant state to {@link #PERMISSION_GRANT_STATE_DEFAULT default} does not + * revoke the permission. It retains the previous grant, if any. + * + * <p/>Permissions can be granted or revoked only for applications built with a + * {@code targetSdkVersion} of {@link android.os.Build.VERSION_CODES#MNC} or later. + * * @param admin Which profile or device owner this request is associated with. * @param packageName The application to grant or revoke a permission to. * @param permission The permission to grant or revoke. diff --git a/core/java/android/app/assist/AssistContent.java b/core/java/android/app/assist/AssistContent.java index c7e7330..07b2d57 100644 --- a/core/java/android/app/assist/AssistContent.java +++ b/core/java/android/app/assist/AssistContent.java @@ -1,24 +1,184 @@ package android.app.assist; +import android.content.ClipData; import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; /** - * New home for AssistContent. + * Holds information about the content an application is viewing, to hand to an + * assistant at the user's request. This is filled in by + * {@link android.app.Activity#onProvideAssistContent Activity.onProvideAssistContent}. */ -public final class AssistContent extends android.app.AssistContent implements Parcelable { +@Deprecated +public class AssistContent implements Parcelable { + private boolean mIsAppProvidedIntent = false; + private Intent mIntent; + private String mStructuredData; + private ClipData mClipData; + private Uri mUri; + private final Bundle mExtras; - /** @hide */ public AssistContent() { + mExtras = new Bundle(); } - public AssistContent(Parcel in) { - super(in); + /** + * @hide + * Called by {@link android.app.ActivityThread} to set the default Intent based on + * {@link android.app.Activity#getIntent Activity.getIntent}. + * + * <p>Automatically populates {@link #mUri} if that Intent is an {@link Intent#ACTION_VIEW} + * of a web (http or https scheme) URI.</p> + */ + public void setDefaultIntent(Intent intent) { + mIntent = intent; + setWebUri(null); + if (intent != null && Intent.ACTION_VIEW.equals(intent.getAction())) { + Uri uri = intent.getData(); + if (uri != null) { + if ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme())) { + setWebUri(uri); + } + } + } + } + + /** + * Sets the Intent associated with the content, describing the current top-level context of + * the activity. If this contains a reference to a piece of data related to the activity, + * be sure to set {@link Intent#FLAG_GRANT_READ_URI_PERMISSION} so the accessibility + * service can access it. + */ + public void setIntent(Intent intent) { + mIsAppProvidedIntent = true; + mIntent = intent; } + /** + * Returns the current {@link #setIntent} if one is set, else the default Intent obtained from + * {@link android.app.Activity#getIntent Activity.getIntent}. Can be modified in-place. + */ public Intent getIntent() { - return super.getIntent(); + return mIntent; + } + + /** + * Returns whether or not the current Intent was explicitly provided in + * {@link android.app.Activity#onProvideAssistContent Activity.onProvideAssistContent}. If not, + * the Intent was automatically set based on + * {@link android.app.Activity#getIntent Activity.getIntent}. + */ + public boolean isAppProvidedIntent() { + return mIsAppProvidedIntent; + } + + /** + * Optional additional content items that are involved with + * the current UI. Access to this content will be granted to the assistant as if you + * are sending it through an Intent with {@link Intent#FLAG_GRANT_READ_URI_PERMISSION}. + */ + public void setClipData(ClipData clip) { + mClipData = clip; + } + + /** + * Return the current {@link #setClipData}, which you can modify in-place. + */ + public ClipData getClipData() { + return mClipData; + } + + /** + * Sets optional structured data regarding the content being viewed. The provided data + * must be a string represented with <a href="http://json-ld.org/">JSON-LD</a> using the + * <a href="http://schema.org/">schema.org</a> vocabulary. + */ + public void setStructuredData(String structuredData) { + mStructuredData = structuredData; + } + + /** + * Returns the current {@link #setStructuredData}. + */ + public String getStructuredData() { + return mStructuredData; + } + + /** + * Set a web URI associated with the current data being shown to the user. + * This URI could be opened in a web browser, or in the app as an + * {@link Intent#ACTION_VIEW} Intent, to show the same data that is currently + * being displayed by it. The URI here should be something that is transportable + * off the device into other environments to acesss the same data as is currently + * being shown in the app; if the app does not have such a representation, it should + * leave the null and only report the local intent and clip data. + */ + public void setWebUri(Uri uri) { + mUri = uri; + } + + /** + * Return the content's web URI as per {@link #setWebUri(android.net.Uri)}, or null if + * there is none. + */ + public Uri getWebUri() { + return mUri; + } + + /** + * Return Bundle for extra vendor-specific data that can be modified and examined. + */ + public Bundle getExtras() { + return mExtras; + } + + AssistContent(Parcel in) { + if (in.readInt() != 0) { + mIntent = Intent.CREATOR.createFromParcel(in); + } + if (in.readInt() != 0) { + mClipData = ClipData.CREATOR.createFromParcel(in); + } + if (in.readInt() != 0) { + mUri = Uri.CREATOR.createFromParcel(in); + } + if (in.readInt() != 0) { + mStructuredData = in.readString(); + } + mIsAppProvidedIntent = in.readInt() == 1; + mExtras = in.readBundle(); + } + + void writeToParcelInternal(Parcel dest, int flags) { + if (mIntent != null) { + dest.writeInt(1); + mIntent.writeToParcel(dest, flags); + } else { + dest.writeInt(0); + } + if (mClipData != null) { + dest.writeInt(1); + mClipData.writeToParcel(dest, flags); + } else { + dest.writeInt(0); + } + if (mUri != null) { + dest.writeInt(1); + mUri.writeToParcel(dest, flags); + } else { + dest.writeInt(0); + } + if (mStructuredData != null) { + dest.writeInt(1); + dest.writeString(mStructuredData); + } else { + dest.writeInt(0); + } + dest.writeInt(mIsAppProvidedIntent ? 1 : 0); + dest.writeBundle(mExtras); } @Override diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index 1677e95..3429b6e 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -1,28 +1,1192 @@ package android.app.assist; import android.app.Activity; +import android.content.ComponentName; +import android.graphics.Matrix; +import android.graphics.Rect; +import android.os.Binder; +import android.os.Bundle; +import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; +import android.os.PooledStringReader; +import android.os.PooledStringWriter; +import android.os.RemoteException; +import android.os.SystemClock; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.view.ViewStructure; +import android.view.ViewRootImpl; +import android.view.WindowManager; +import android.view.WindowManagerGlobal; + +import java.util.ArrayList; /** - * New home for AssistStructure. + * Assist data automatically created by the platform's implementation + * of {@link android.app.Activity#onProvideAssistData}. */ -public final class AssistStructure extends android.app.AssistStructure implements Parcelable { +public class AssistStructure implements Parcelable { + static final String TAG = "AssistStructure"; - public AssistStructure() { + boolean mHaveData; + + ComponentName mActivityComponent; + + final ArrayList<WindowNode> mWindowNodes = new ArrayList<>(); + + final ArrayList<ViewNodeBuilder> mPendingAsyncChildren = new ArrayList<>(); + + SendChannel mSendChannel; + IBinder mReceiveChannel; + + Rect mTmpRect = new Rect(); + + static final int TRANSACTION_XFER = Binder.FIRST_CALL_TRANSACTION+1; + static final String DESCRIPTOR = "android.app.AssistStructure"; + + final class SendChannel extends Binder { + @Override protected boolean onTransact(int code, Parcel data, Parcel reply, int flags) + throws RemoteException { + if (code == TRANSACTION_XFER) { + data.enforceInterface(DESCRIPTOR); + writeContentToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); + return true; + } else { + return super.onTransact(code, data, reply, flags); + } + } + } + + final static class ViewNodeText { + CharSequence mText; + int mTextSelectionStart; + int mTextSelectionEnd; + int mTextColor; + int mTextBackgroundColor; + float mTextSize; + int mTextStyle; + String mHint; + + ViewNodeText() { + } + + ViewNodeText(Parcel in) { + mText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); + mTextSelectionStart = in.readInt(); + mTextSelectionEnd = in.readInt(); + mTextColor = in.readInt(); + mTextBackgroundColor = in.readInt(); + mTextSize = in.readFloat(); + mTextStyle = in.readInt(); + mHint = in.readString(); + } + + void writeToParcel(Parcel out) { + TextUtils.writeToParcel(mText, out, 0); + out.writeInt(mTextSelectionStart); + out.writeInt(mTextSelectionEnd); + out.writeInt(mTextColor); + out.writeInt(mTextBackgroundColor); + out.writeFloat(mTextSize); + out.writeInt(mTextStyle); + out.writeString(mHint); + } + } + + /** + * Describes a window in the assist data. + */ + static public class WindowNode { + final int mX; + final int mY; + final int mWidth; + final int mHeight; + final CharSequence mTitle; + final int mDisplayId; + final ViewNode mRoot; + + WindowNode(AssistStructure assist, ViewRootImpl root) { + View view = root.getView(); + Rect rect = new Rect(); + view.getBoundsOnScreen(rect); + mX = rect.left - view.getLeft(); + mY = rect.top - view.getTop(); + mWidth = rect.width(); + mHeight = rect.height(); + mTitle = root.getTitle(); + mDisplayId = root.getDisplayId(); + mRoot = new ViewNode(); + ViewNodeBuilder builder = new ViewNodeBuilder(assist, mRoot, false); + if ((root.getWindowFlags()& WindowManager.LayoutParams.FLAG_SECURE) != 0) { + // This is a secure window, so it doesn't want a screenshot, and that + // means we should also not copy out its view hierarchy. + view.onProvideStructure(builder); + builder.setAssistBlocked(true); + return; + } + view.dispatchProvideStructure(builder); + } + + WindowNode(Parcel in, PooledStringReader preader, float[] tmpMatrix) { + mX = in.readInt(); + mY = in.readInt(); + mWidth = in.readInt(); + mHeight = in.readInt(); + mTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); + mDisplayId = in.readInt(); + mRoot = new ViewNode(in, preader, tmpMatrix); + } + + int writeToParcel(Parcel out, PooledStringWriter pwriter, float[] tmpMatrix) { + out.writeInt(mX); + out.writeInt(mY); + out.writeInt(mWidth); + out.writeInt(mHeight); + TextUtils.writeToParcel(mTitle, out, 0); + out.writeInt(mDisplayId); + return mRoot.writeToParcel(out, pwriter, tmpMatrix); + } + + /** + * Returns the left edge of the window, in pixels, relative to the left + * edge of the screen. + */ + public int getLeft() { + return mX; + } + + /** + * Returns the top edge of the window, in pixels, relative to the top + * edge of the screen. + */ + public int getTop() { + return mY; + } + + /** + * Returns the total width of the window in pixels. + */ + public int getWidth() { + return mWidth; + } + + /** + * Returns the total height of the window in pixels. + */ + public int getHeight() { + return mHeight; + } + + /** + * Returns the title associated with the window, if it has one. + */ + public CharSequence getTitle() { + return mTitle; + } + + /** + * Returns the ID of the display this window is on, for use with + * {@link android.hardware.display.DisplayManager#getDisplay DisplayManager.getDisplay()}. + */ + public int getDisplayId() { + return mDisplayId; + } + + /** + * Returns the {@link ViewNode} containing the root content of the window. + */ + public ViewNode getRootViewNode() { + return mRoot; + } + } + + /** + * Describes a single view in the assist data. + */ + static public class ViewNode { + /** + * Magic value for text color that has not been defined, which is very unlikely + * to be confused with a real text color. + */ + public static final int TEXT_COLOR_UNDEFINED = 1; + + public static final int TEXT_STYLE_BOLD = 1<<0; + public static final int TEXT_STYLE_ITALIC = 1<<1; + public static final int TEXT_STYLE_UNDERLINE = 1<<2; + public static final int TEXT_STYLE_STRIKE_THRU = 1<<3; + + int mId = View.NO_ID; + String mIdPackage; + String mIdType; + String mIdEntry; + int mX; + int mY; + int mScrollX; + int mScrollY; + int mWidth; + int mHeight; + Matrix mMatrix; + float mElevation; + float mAlpha = 1.0f; + + static final int FLAGS_DISABLED = 0x00000001; + static final int FLAGS_VISIBILITY_MASK = View.VISIBLE|View.INVISIBLE|View.GONE; + static final int FLAGS_FOCUSABLE = 0x00000010; + static final int FLAGS_FOCUSED = 0x00000020; + static final int FLAGS_SELECTED = 0x00000040; + static final int FLAGS_ASSIST_BLOCKED = 0x00000080; + static final int FLAGS_CHECKABLE = 0x00000100; + static final int FLAGS_CHECKED = 0x00000200; + static final int FLAGS_CLICKABLE = 0x00000400; + static final int FLAGS_LONG_CLICKABLE = 0x00000800; + static final int FLAGS_ACCESSIBILITY_FOCUSED = 0x00001000; + static final int FLAGS_ACTIVATED = 0x00002000; + static final int FLAGS_CONTEXT_CLICKABLE = 0x00004000; + + static final int FLAGS_HAS_MATRIX = 0x40000000; + static final int FLAGS_HAS_ALPHA = 0x20000000; + static final int FLAGS_HAS_ELEVATION = 0x10000000; + static final int FLAGS_HAS_SCROLL = 0x08000000; + static final int FLAGS_HAS_LARGE_COORDS = 0x04000000; + static final int FLAGS_HAS_CONTENT_DESCRIPTION = 0x02000000; + static final int FLAGS_HAS_TEXT = 0x01000000; + static final int FLAGS_HAS_EXTRAS = 0x00800000; + static final int FLAGS_HAS_ID = 0x00400000; + static final int FLAGS_HAS_CHILDREN = 0x00200000; + static final int FLAGS_ALL_CONTROL = 0xfff00000; + + int mFlags; + + String mClassName; + CharSequence mContentDescription; + + ViewNodeText mText; + Bundle mExtras; + + ViewNode[] mChildren; + + ViewNode() { + } + + ViewNode(Parcel in, PooledStringReader preader, float[] tmpMatrix) { + mClassName = preader.readString(); + mFlags = in.readInt(); + final int flags = mFlags; + if ((flags&FLAGS_HAS_ID) != 0) { + mId = in.readInt(); + if (mId != 0) { + mIdEntry = preader.readString(); + if (mIdEntry != null) { + mIdType = preader.readString(); + mIdPackage = preader.readString(); + } + } + } + if ((flags&FLAGS_HAS_LARGE_COORDS) != 0) { + mX = in.readInt(); + mY = in.readInt(); + mWidth = in.readInt(); + mHeight = in.readInt(); + } else { + int val = in.readInt(); + mX = val&0x7fff; + mY = (val>>16)&0x7fff; + val = in.readInt(); + mWidth = val&0x7fff; + mHeight = (val>>16)&0x7fff; + } + if ((flags&FLAGS_HAS_SCROLL) != 0) { + mScrollX = in.readInt(); + mScrollY = in.readInt(); + } + if ((flags&FLAGS_HAS_MATRIX) != 0) { + mMatrix = new Matrix(); + in.readFloatArray(tmpMatrix); + mMatrix.setValues(tmpMatrix); + } + if ((flags&FLAGS_HAS_ELEVATION) != 0) { + mElevation = in.readFloat(); + } + if ((flags&FLAGS_HAS_ALPHA) != 0) { + mAlpha = in.readFloat(); + } + if ((flags&FLAGS_HAS_CONTENT_DESCRIPTION) != 0) { + mContentDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); + } + if ((flags&FLAGS_HAS_TEXT) != 0) { + mText = new ViewNodeText(in); + } + if ((flags&FLAGS_HAS_EXTRAS) != 0) { + mExtras = in.readBundle(); + } + if ((flags&FLAGS_HAS_CHILDREN) != 0) { + final int NCHILDREN = in.readInt(); + mChildren = new ViewNode[NCHILDREN]; + for (int i=0; i<NCHILDREN; i++) { + mChildren[i] = new ViewNode(in, preader, tmpMatrix); + } + } + } + + int writeToParcel(Parcel out, PooledStringWriter pwriter, float[] tmpMatrix) { + int flags = mFlags & ~FLAGS_ALL_CONTROL; + if (mId != View.NO_ID) { + flags |= FLAGS_HAS_ID; + } + if ((mX&~0x7fff) != 0 || (mY&~0x7fff) != 0 + || (mWidth&~0x7fff) != 0 | (mHeight&~0x7fff) != 0) { + flags |= FLAGS_HAS_LARGE_COORDS; + } + if (mScrollX != 0 || mScrollY != 0) { + flags |= FLAGS_HAS_SCROLL; + } + if (mMatrix != null) { + flags |= FLAGS_HAS_MATRIX; + } + if (mElevation != 0) { + flags |= FLAGS_HAS_ELEVATION; + } + if (mAlpha != 1.0f) { + flags |= FLAGS_HAS_ALPHA; + } + if (mContentDescription != null) { + flags |= FLAGS_HAS_CONTENT_DESCRIPTION; + } + if (mText != null) { + flags |= FLAGS_HAS_TEXT; + } + if (mExtras != null) { + flags |= FLAGS_HAS_EXTRAS; + } + if (mChildren != null) { + flags |= FLAGS_HAS_CHILDREN; + } + + pwriter.writeString(mClassName); + out.writeInt(flags); + if ((flags&FLAGS_HAS_ID) != 0) { + out.writeInt(mId); + if (mId != 0) { + pwriter.writeString(mIdEntry); + if (mIdEntry != null) { + pwriter.writeString(mIdType); + pwriter.writeString(mIdPackage); + } + } + } + if ((flags&FLAGS_HAS_LARGE_COORDS) != 0) { + out.writeInt(mX); + out.writeInt(mY); + out.writeInt(mWidth); + out.writeInt(mHeight); + } else { + out.writeInt((mY<<16) | mX); + out.writeInt((mHeight<<16) | mWidth); + } + if ((flags&FLAGS_HAS_SCROLL) != 0) { + out.writeInt(mScrollX); + out.writeInt(mScrollY); + } + if ((flags&FLAGS_HAS_MATRIX) != 0) { + mMatrix.getValues(tmpMatrix); + out.writeFloatArray(tmpMatrix); + } + if ((flags&FLAGS_HAS_ELEVATION) != 0) { + out.writeFloat(mElevation); + } + if ((flags&FLAGS_HAS_ALPHA) != 0) { + out.writeFloat(mAlpha); + } + if ((flags&FLAGS_HAS_CONTENT_DESCRIPTION) != 0) { + TextUtils.writeToParcel(mContentDescription, out, 0); + } + if ((flags&FLAGS_HAS_TEXT) != 0) { + mText.writeToParcel(out); + } + if ((flags&FLAGS_HAS_EXTRAS) != 0) { + out.writeBundle(mExtras); + } + int N = 1; + if ((flags&FLAGS_HAS_CHILDREN) != 0) { + final int NCHILDREN = mChildren.length; + out.writeInt(NCHILDREN); + for (int i=0; i<NCHILDREN; i++) { + N += mChildren[i].writeToParcel(out, pwriter, tmpMatrix); + } + } + return N; + } + + /** + * Returns the ID associated with this view, as per {@link View#getId() View.getId()}. + */ + public int getId() { + return mId; + } + + /** + * If {@link #getId()} is a resource identifier, this is the package name of that + * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} + * for more information. + */ + public String getIdPackage() { + return mIdPackage; + } + + /** + * If {@link #getId()} is a resource identifier, this is the type name of that + * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} + * for more information. + */ + public String getIdType() { + return mIdType; + } + + /** + * If {@link #getId()} is a resource identifier, this is the entry name of that + * identifier. See {@link android.view.ViewStructure#setId ViewStructure.setId} + * for more information. + */ + public String getIdEntry() { + return mIdEntry; + } + + /** + * Returns the left edge of this view, in pixels, relative to the left edge of its parent. + */ + public int getLeft() { + return mX; + } + + /** + * Returns the top edge of this view, in pixels, relative to the top edge of its parent. + */ + public int getTop() { + return mY; + } + + /** + * Returns the current X scroll offset of this view, as per + * {@link android.view.View#getScrollX() View.getScrollX()}. + */ + public int getScrollX() { + return mScrollX; + } + + /** + * Returns the current Y scroll offset of this view, as per + * {@link android.view.View#getScrollX() View.getScrollY()}. + */ + public int getScrollY() { + return mScrollY; + } + + /** + * Returns the width of this view, in pixels. + */ + public int getWidth() { + return mWidth; + } + + /** + * Returns the height of this view, in pixels. + */ + public int getHeight() { + return mHeight; + } + + /** + * Returns the transformation that has been applied to this view, such as a translation + * or scaling. The returned Matrix object is owned by ViewNode; do not modify it. + * Returns null if there is no transformation applied to the view. + */ + public Matrix getTransformation() { + return mMatrix; + } + + /** + * Returns the visual elevation of the view, used for shadowing and other visual + * characterstics, as set by {@link ViewStructure#setElevation + * ViewStructure.setElevation(float)}. + */ + public float getElevation() { + return mElevation; + } + + /** + * Returns the alpha transformation of the view, used to reduce the overall opacity + * of the view's contents, as set by {@link ViewStructure#setAlpha + * ViewStructure.setAlpha(float)}. + */ + public float getAlpha() { + return mAlpha; + } + + /** + * Returns the visibility mode of this view, as per + * {@link android.view.View#getVisibility() View.getVisibility()}. + */ + public int getVisibility() { + return mFlags&ViewNode.FLAGS_VISIBILITY_MASK; + } + + /** + * Returns true if assist data has been blocked starting at this node in the hierarchy. + */ + public boolean isAssistBlocked() { + return (mFlags&ViewNode.FLAGS_ASSIST_BLOCKED) == 0; + } + + /** + * Returns true if this node is in an enabled state. + */ + public boolean isEnabled() { + return (mFlags&ViewNode.FLAGS_DISABLED) == 0; + } + + /** + * Returns true if this node is clickable by the user. + */ + public boolean isClickable() { + return (mFlags&ViewNode.FLAGS_CLICKABLE) != 0; + } + + /** + * Returns true if this node can take input focus. + */ + public boolean isFocusable() { + return (mFlags&ViewNode.FLAGS_FOCUSABLE) != 0; + } + + /** + * Returns true if this node currently had input focus at the time that the + * structure was collected. + */ + public boolean isFocused() { + return (mFlags&ViewNode.FLAGS_FOCUSED) != 0; + } + + /** + * Returns true if this node currently had accessibility focus at the time that the + * structure was collected. + */ + public boolean isAccessibilityFocused() { + return (mFlags&ViewNode.FLAGS_ACCESSIBILITY_FOCUSED) != 0; + } + + /** + * Returns true if this node represents something that is checkable by the user. + */ + public boolean isCheckable() { + return (mFlags&ViewNode.FLAGS_CHECKABLE) != 0; + } + + /** + * Returns true if this node is currently in a checked state. + */ + public boolean isChecked() { + return (mFlags&ViewNode.FLAGS_CHECKED) != 0; + } + + /** + * Returns true if this node has currently been selected by the user. + */ + public boolean isSelected() { + return (mFlags&ViewNode.FLAGS_SELECTED) != 0; + } + + /** + * Returns true if this node has currently been activated by the user. + */ + public boolean isActivated() { + return (mFlags&ViewNode.FLAGS_ACTIVATED) != 0; + } + + /** + * Returns true if this node is something the user can perform a long click/press on. + */ + public boolean isLongClickable() { + return (mFlags&ViewNode.FLAGS_LONG_CLICKABLE) != 0; + } + + /** + * Returns true if this node is something the user can perform a context click on. + */ + public boolean isContextClickable() { + return (mFlags&ViewNode.FLAGS_CONTEXT_CLICKABLE) != 0; + } + + /** + * Returns the class name of the node's implementation, indicating its behavior. + * For example, a button will report "android.widget.Button" meaning it behaves + * like a {@link android.widget.Button}. + */ + public String getClassName() { + return mClassName; + } + + /** + * Returns any content description associated with the node, which semantically describes + * its purpose for accessibility and other uses. + */ + public CharSequence getContentDescription() { + return mContentDescription; + } + + /** + * Returns any text associated with the node that is displayed to the user, or null + * if there is none. + */ + public CharSequence getText() { + return mText != null ? mText.mText : null; + } + + /** + * If {@link #getText()} is non-null, this is where the current selection starts. + */ + public int getTextSelectionStart() { + return mText != null ? mText.mTextSelectionStart : -1; + } + + /** + * If {@link #getText()} is non-null, this is where the current selection starts. + * If there is no selection, returns the same value as {@link #getTextSelectionStart()}, + * indicating the cursor position. + */ + public int getTextSelectionEnd() { + return mText != null ? mText.mTextSelectionEnd : -1; + } + + /** + * If {@link #getText()} is non-null, this is the main text color associated with it. + * If there is no text color, {@link #TEXT_COLOR_UNDEFINED} is returned. + * Note that the text may also contain style spans that modify the color of specific + * parts of the text. + */ + public int getTextColor() { + return mText != null ? mText.mTextColor : TEXT_COLOR_UNDEFINED; + } + + /** + * If {@link #getText()} is non-null, this is the main text background color associated + * with it. + * If there is no text background color, {@link #TEXT_COLOR_UNDEFINED} is returned. + * Note that the text may also contain style spans that modify the color of specific + * parts of the text. + */ + public int getTextBackgroundColor() { + return mText != null ? mText.mTextBackgroundColor : TEXT_COLOR_UNDEFINED; + } + + /** + * If {@link #getText()} is non-null, this is the main text size (in pixels) associated + * with it. + * Note that the text may also contain style spans that modify the size of specific + * parts of the text. + */ + public float getTextSize() { + return mText != null ? mText.mTextSize : 0; + } + + /** + * If {@link #getText()} is non-null, this is the main text style associated + * with it, containing a bit mask of {@link #TEXT_STYLE_BOLD}, + * {@link #TEXT_STYLE_BOLD}, {@link #TEXT_STYLE_STRIKE_THRU}, and/or + * {@link #TEXT_STYLE_UNDERLINE}. + * Note that the text may also contain style spans that modify the style of specific + * parts of the text. + */ + public int getTextStyle() { + return mText != null ? mText.mTextStyle : 0; + } + + /** + * Return additional hint text associated with the node; this is typically used with + * a node that takes user input, describing to the user what the input means. + */ + public String getHint() { + return mText != null ? mText.mHint : null; + } + + /** + * Return a Bundle containing optional vendor-specific extension information. + */ + public Bundle getExtras() { + return mExtras; + } + + /** + * Return the number of children this node has. + */ + public int getChildCount() { + return mChildren != null ? mChildren.length : 0; + } + + /** + * Return a child of this node, given an index value from 0 to + * {@link #getChildCount()}-1. + */ + public ViewNode getChildAt(int index) { + return mChildren[index]; + } + } + + static class ViewNodeBuilder extends ViewStructure { + final AssistStructure mAssist; + final ViewNode mNode; + final boolean mAsync; + + ViewNodeBuilder(AssistStructure assist, ViewNode node, boolean async) { + mAssist = assist; + mNode = node; + mAsync = async; + } + + @Override + public void setId(int id, String packageName, String typeName, String entryName) { + mNode.mId = id; + mNode.mIdPackage = packageName; + mNode.mIdType = typeName; + mNode.mIdEntry = entryName; + } + + @Override + public void setDimens(int left, int top, int scrollX, int scrollY, int width, int height) { + mNode.mX = left; + mNode.mY = top; + mNode.mScrollX = scrollX; + mNode.mScrollY = scrollY; + mNode.mWidth = width; + mNode.mHeight = height; + } + + @Override + public void setTransformation(Matrix matrix) { + if (matrix == null) { + mNode.mMatrix = null; + } else { + mNode.mMatrix = new Matrix(matrix); + } + } + + @Override + public void setElevation(float elevation) { + mNode.mElevation = elevation; + } + + @Override + public void setAlpha(float alpha) { + mNode.mAlpha = alpha; + } + + @Override + public void setVisibility(int visibility) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_VISIBILITY_MASK) | visibility; + } + + @Override + public void setAssistBlocked(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ASSIST_BLOCKED) + | (state ? 0 : ViewNode.FLAGS_ASSIST_BLOCKED); + } + + @Override + public void setEnabled(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_DISABLED) + | (state ? 0 : ViewNode.FLAGS_DISABLED); + } + + @Override + public void setClickable(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CLICKABLE) + | (state ? ViewNode.FLAGS_CLICKABLE : 0); + } + + @Override + public void setLongClickable(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_LONG_CLICKABLE) + | (state ? ViewNode.FLAGS_LONG_CLICKABLE : 0); + } + + @Override + public void setContextClickable(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CONTEXT_CLICKABLE) + | (state ? ViewNode.FLAGS_CONTEXT_CLICKABLE : 0); + } + + @Override + public void setFocusable(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_FOCUSABLE) + | (state ? ViewNode.FLAGS_FOCUSABLE : 0); + } + + @Override + public void setFocused(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_FOCUSED) + | (state ? ViewNode.FLAGS_FOCUSED : 0); + } + + @Override + public void setAccessibilityFocused(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ACCESSIBILITY_FOCUSED) + | (state ? ViewNode.FLAGS_ACCESSIBILITY_FOCUSED : 0); + } + + @Override + public void setCheckable(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CHECKABLE) + | (state ? ViewNode.FLAGS_CHECKABLE : 0); + } + + @Override + public void setChecked(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_CHECKED) + | (state ? ViewNode.FLAGS_CHECKED : 0); + } + + @Override + public void setSelected(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_SELECTED) + | (state ? ViewNode.FLAGS_SELECTED : 0); + } + + @Override + public void setActivated(boolean state) { + mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ACTIVATED) + | (state ? ViewNode.FLAGS_ACTIVATED : 0); + } + + @Override + public void setClassName(String className) { + mNode.mClassName = className; + } + + @Override + public void setContentDescription(CharSequence contentDescription) { + mNode.mContentDescription = contentDescription; + } + + private final ViewNodeText getNodeText() { + if (mNode.mText != null) { + return mNode.mText; + } + mNode.mText = new ViewNodeText(); + return mNode.mText; + } + + @Override + public void setText(CharSequence text) { + ViewNodeText t = getNodeText(); + t.mText = text; + t.mTextSelectionStart = t.mTextSelectionEnd = -1; + } + + @Override + public void setText(CharSequence text, int selectionStart, int selectionEnd) { + ViewNodeText t = getNodeText(); + t.mText = text; + t.mTextSelectionStart = selectionStart; + t.mTextSelectionEnd = selectionEnd; + } + + @Override + public void setTextStyle(float size, int fgColor, int bgColor, int style) { + ViewNodeText t = getNodeText(); + t.mTextColor = fgColor; + t.mTextBackgroundColor = bgColor; + t.mTextSize = size; + t.mTextStyle = style; + } + + @Override + public void setHint(CharSequence hint) { + getNodeText().mHint = hint != null ? hint.toString() : null; + } + + @Override + public CharSequence getText() { + return mNode.mText != null ? mNode.mText.mText : null; + } + + @Override + public int getTextSelectionStart() { + return mNode.mText != null ? mNode.mText.mTextSelectionStart : -1; + } + + @Override + public int getTextSelectionEnd() { + return mNode.mText != null ? mNode.mText.mTextSelectionEnd : -1; + } + + @Override + public CharSequence getHint() { + return mNode.mText != null ? mNode.mText.mHint : null; + } + + @Override + public Bundle getExtras() { + if (mNode.mExtras != null) { + return mNode.mExtras; + } + mNode.mExtras = new Bundle(); + return mNode.mExtras; + } + + @Override + public boolean hasExtras() { + return mNode.mExtras != null; + } + + @Override + public void setChildCount(int num) { + mNode.mChildren = new ViewNode[num]; + } + + @Override + public int addChildCount(int num) { + if (mNode.mChildren == null) { + setChildCount(num); + return 0; + } + final int start = mNode.mChildren.length; + ViewNode[] newArray = new ViewNode[start + num]; + System.arraycopy(mNode.mChildren, 0, newArray, 0, start); + mNode.mChildren = newArray; + return start; + } + + @Override + public int getChildCount() { + return mNode.mChildren != null ? mNode.mChildren.length : 0; + } + + @Override + public ViewStructure newChild(int index) { + ViewNode node = new ViewNode(); + mNode.mChildren[index] = node; + return new ViewNodeBuilder(mAssist, node, false); + } + + @Override + public ViewStructure asyncNewChild(int index) { + synchronized (mAssist) { + ViewNode node = new ViewNode(); + mNode.mChildren[index] = node; + ViewNodeBuilder builder = new ViewNodeBuilder(mAssist, node, true); + mAssist.mPendingAsyncChildren.add(builder); + return builder; + } + } + + @Override + public void asyncCommit() { + synchronized (mAssist) { + if (!mAsync) { + throw new IllegalStateException("Child " + this + + " was not created with ViewStructure.asyncNewChild"); + } + if (!mAssist.mPendingAsyncChildren.remove(this)) { + throw new IllegalStateException("Child " + this + " already committed"); + } + mAssist.notifyAll(); + } + } + + @Override + public Rect getTempRect() { + return mAssist.mTmpRect; + } } /** @hide */ public AssistStructure(Activity activity) { - super(activity); + mHaveData = true; + mActivityComponent = activity.getComponentName(); + ArrayList<ViewRootImpl> views = WindowManagerGlobal.getInstance().getRootViews( + activity.getActivityToken()); + for (int i=0; i<views.size(); i++) { + ViewRootImpl root = views.get(i); + mWindowNodes.add(new WindowNode(this, root)); + } } - AssistStructure(Parcel in) { - super(in); + public AssistStructure() { + mHaveData = true; + mActivityComponent = null; } + /** @hide */ + public AssistStructure(Parcel in) { + mReceiveChannel = in.readStrongBinder(); + } + + /** @hide */ + public void dump() { + Log.i(TAG, "Activity: " + mActivityComponent.flattenToShortString()); + final int N = getWindowNodeCount(); + for (int i=0; i<N; i++) { + WindowNode node = getWindowNodeAt(i); + Log.i(TAG, "Window #" + i + " [" + node.getLeft() + "," + node.getTop() + + " " + node.getWidth() + "x" + node.getHeight() + "]" + " " + node.getTitle()); + dump(" ", node.getRootViewNode()); + } + } + + void dump(String prefix, ViewNode node) { + Log.i(TAG, prefix + "View [" + node.getLeft() + "," + node.getTop() + + " " + node.getWidth() + "x" + node.getHeight() + "]" + " " + node.getClassName()); + int id = node.getId(); + if (id != 0) { + StringBuilder sb = new StringBuilder(); + sb.append(prefix); sb.append(" ID: #"); sb.append(Integer.toHexString(id)); + String entry = node.getIdEntry(); + if (entry != null) { + String type = node.getIdType(); + String pkg = node.getIdPackage(); + sb.append(" "); sb.append(pkg); sb.append(":"); sb.append(type); + sb.append("/"); sb.append(entry); + } + Log.i(TAG, sb.toString()); + } + int scrollX = node.getScrollX(); + int scrollY = node.getScrollY(); + if (scrollX != 0 || scrollY != 0) { + Log.i(TAG, prefix + " Scroll: " + scrollX + "," + scrollY); + } + Matrix matrix = node.getTransformation(); + if (matrix != null) { + Log.i(TAG, prefix + " Transformation: " + matrix); + } + float elevation = node.getElevation(); + if (elevation != 0) { + Log.i(TAG, prefix + " Elevation: " + elevation); + } + float alpha = node.getAlpha(); + if (alpha != 0) { + Log.i(TAG, prefix + " Alpha: " + elevation); + } + CharSequence contentDescription = node.getContentDescription(); + if (contentDescription != null) { + Log.i(TAG, prefix + " Content description: " + contentDescription); + } + CharSequence text = node.getText(); + if (text != null) { + Log.i(TAG, prefix + " Text (sel " + node.getTextSelectionStart() + "-" + + node.getTextSelectionEnd() + "): " + text); + Log.i(TAG, prefix + " Text size: " + node.getTextSize() + " , style: #" + + node.getTextStyle()); + Log.i(TAG, prefix + " Text color fg: #" + Integer.toHexString(node.getTextColor()) + + ", bg: #" + Integer.toHexString(node.getTextBackgroundColor())); + } + String hint = node.getHint(); + if (hint != null) { + Log.i(TAG, prefix + " Hint: " + hint); + } + Bundle extras = node.getExtras(); + if (extras != null) { + Log.i(TAG, prefix + " Extras: " + extras); + } + final int NCHILDREN = node.getChildCount(); + if (NCHILDREN > 0) { + Log.i(TAG, prefix + " Children:"); + String cprefix = prefix + " "; + for (int i=0; i<NCHILDREN; i++) { + ViewNode cnode = node.getChildAt(i); + dump(cprefix, cnode); + } + } + } + + /** + * Return the activity this AssistStructure came from. + */ + public ComponentName getActivityComponent() { + ensureData(); + return mActivityComponent; + } + + /** + * Return the number of window contents that have been collected in this assist data. + */ + public int getWindowNodeCount() { + ensureData(); + return mWindowNodes.size(); + } + + /** + * Return one of the windows in the assist data. + * @param index Which window to retrieve, may be 0 to {@link #getWindowNodeCount()}-1. + */ public WindowNode getWindowNodeAt(int index) { - return super.getWindowNodeAt(index); + ensureData(); + return mWindowNodes.get(index); + } + + /** @hide */ + public void ensureData() { + if (mHaveData) { + return; + } + mHaveData = true; + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(DESCRIPTOR); + try { + mReceiveChannel.transact(TRANSACTION_XFER, data, reply, 0); + } catch (RemoteException e) { + Log.w(TAG, "Failure reading AssistStructure data", e); + return; + } + readContentFromParcel(reply); + data.recycle(); + reply.recycle(); + } + + void writeContentToParcel(Parcel out, int flags) { + // First make sure all content has been created. + boolean skipStructure = false; + synchronized (this) { + long endTime = SystemClock.uptimeMillis() + 5000; + long now; + while (mPendingAsyncChildren.size() > 0 && (now=SystemClock.uptimeMillis()) < endTime) { + try { + wait(endTime-now); + } catch (InterruptedException e) { + } + } + if (mPendingAsyncChildren.size() > 0) { + // We waited too long, assume none of the assist structure is valid. + Log.w(TAG, "Skipping assist structure, waiting too long for async children (have " + + mPendingAsyncChildren.size() + " remaining"); + skipStructure = true; + } + } + int start = out.dataPosition(); + PooledStringWriter pwriter = new PooledStringWriter(out); + float[] tmpMatrix = new float[9]; + ComponentName.writeToParcel(mActivityComponent, out); + final int N = skipStructure ? 0 : mWindowNodes.size(); + out.writeInt(N); + int NV = 0; + for (int i=0; i<N; i++) { + NV += mWindowNodes.get(i).writeToParcel(out, pwriter, tmpMatrix); + } + pwriter.finish(); + Log.i(TAG, "Flattened assist data: " + (out.dataPosition() - start) + " bytes, containing " + + N + " windows, " + NV + " views"); + } + + void readContentFromParcel(Parcel in) { + PooledStringReader preader = new PooledStringReader(in); + float[] tmpMatrix = new float[9]; + mActivityComponent = ComponentName.readFromParcel(in); + final int N = in.readInt(); + for (int i=0; i<N; i++) { + mWindowNodes.add(new WindowNode(in, preader, tmpMatrix)); + } + //dump(); } public int describeContents() { diff --git a/core/java/android/app/usage/UsageStatsManagerInternal.java b/core/java/android/app/usage/UsageStatsManagerInternal.java index 8a31390..9113426 100644 --- a/core/java/android/app/usage/UsageStatsManagerInternal.java +++ b/core/java/android/app/usage/UsageStatsManagerInternal.java @@ -77,6 +77,12 @@ public abstract class UsageStatsManagerInternal { public abstract boolean isAppIdle(String packageName, int userId); /** + * @return True if currently app idle parole mode is on. This means all idle apps are allow to + * run for a short period of time. + */ + public abstract boolean isAppIdleParoleOn(); + + /** * Sets up a listener for changes to packages being accessed. * @param listener A listener within the system process. */ @@ -90,8 +96,9 @@ public abstract class UsageStatsManagerInternal { public abstract void removeAppIdleStateChangeListener( AppIdleStateChangeListener listener); - public interface AppIdleStateChangeListener { - void onAppIdleStateChanged(String packageName, int userId, boolean idle); + public static abstract class AppIdleStateChangeListener { + public abstract void onAppIdleStateChanged(String packageName, int userId, boolean idle); + public abstract void onParoleStateChanged(boolean isParoleOn); } } diff --git a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java index 67d9de5..eaf20d8 100644 --- a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java +++ b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java @@ -152,7 +152,6 @@ public final class BluetoothLeAdvertiser { */ public void stopAdvertising(final AdvertiseCallback callback) { synchronized (mLeAdvertisers) { - BluetoothLeUtils.checkAdapterStateOn(mBluetoothAdapter); if (callback == null) { throw new IllegalArgumentException("callback cannot be null"); } diff --git a/core/java/android/content/AbstractThreadedSyncAdapter.java b/core/java/android/content/AbstractThreadedSyncAdapter.java index d4dee5b..58bd5cd 100644 --- a/core/java/android/content/AbstractThreadedSyncAdapter.java +++ b/core/java/android/content/AbstractThreadedSyncAdapter.java @@ -274,6 +274,10 @@ public abstract class AbstractThreadedSyncAdapter { } else { syncResult.databaseError = true; } + } catch (SecurityException e) { + AbstractThreadedSyncAdapter.this.onSecurityException(mAccount, mExtras, + mAuthority, syncResult); + syncResult.databaseError = true; } finally { Trace.traceEnd(Trace.TRACE_TAG_SYNC_MANAGER); @@ -319,6 +323,20 @@ public abstract class AbstractThreadedSyncAdapter { String authority, ContentProviderClient provider, SyncResult syncResult); /** + * Report that there was a security exception when opening the content provider + * prior to calling {@link #onPerformSync}. This will be treated as a sync + * database failure. + * + * @param account the account that attempted to sync + * @param extras SyncAdapter-specific parameters + * @param authority the authority of the failed sync request + * @param syncResult SyncAdapter-specific parameters + */ + public void onSecurityException(Account account, Bundle extras, + String authority, SyncResult syncResult) { + } + + /** * Indicates that a sync operation has been canceled. This will be invoked on a separate * thread than the sync thread and so you must consider the multi-threaded implications * of the work that you do in this method. diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 5190037..b1d80f0 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1020,6 +1020,11 @@ public class Intent implements Parcelable, Cloneable { * <p>Note: this Intent <strong>cannot</strong> be used to call emergency * numbers. Applications can <strong>dial</strong> emergency numbers using * {@link #ACTION_DIAL}, however. + * + * <p>Note: if you app targets {@link android.os.Build.VERSION_CODES#MNC MNC} + * and above and declares as using the {@link android.Manifest.permission#CALL_PHONE} + * permission which is not granted, then atempting to use this action will + * result in a {@link java.lang.SecurityException}. */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_CALL = "android.intent.action.CALL"; @@ -3779,6 +3784,9 @@ public class Intent implements Parcelable, Cloneable { /** {@hide} */ public static final String EXTRA_REASON = "android.intent.extra.REASON"; + /** {@hide} */ + public static final String EXTRA_WIPE_EXTERNAL_STORAGE = "android.intent.extra.WIPE_EXTERNAL_STORAGE"; + /** * Optional {@link android.app.PendingIntent} extra used to deliver the result of the SIM * activation request. diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java index d83dfc5..19329ce 100644 --- a/core/java/android/content/IntentFilter.java +++ b/core/java/android/content/IntentFilter.java @@ -16,7 +16,6 @@ package android.content; -import android.content.pm.PackageParser; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; @@ -519,7 +518,8 @@ public class IntentFilter implements Parcelable { } /** - * Return if this filter handle all HTTP or HTTPS data URI or not. + * Return if this filter handle all HTTP or HTTPS data URI or not. This is the + * core check for whether a given activity qualifies as a "browser". * * @return True if the filter handle all HTTP or HTTPS data URI. False otherwise. * @@ -534,24 +534,60 @@ public class IntentFilter implements Parcelable { */ public final boolean handleAllWebDataURI() { return hasCategory(Intent.CATEGORY_APP_BROWSER) || - (hasWebDataURI() && countDataAuthorities() == 0); + (handlesWebUris(false) && countDataAuthorities() == 0); } /** - * Return if this filter has any HTTP or HTTPS data URI or not. + * Return if this filter handles HTTP or HTTPS data URIs. * - * @return True if the filter has any HTTP or HTTPS data URI. False otherwise. + * @return True if the filter handles ACTION_VIEW/CATEGORY_BROWSABLE, + * has at least one HTTP or HTTPS data URI pattern defined, and optionally + * does not define any non-http/https data URI patterns. * * This will check if if the Intent action is {@link android.content.Intent#ACTION_VIEW} and * the Intent category is {@link android.content.Intent#CATEGORY_BROWSABLE} and the Intent * data scheme is "http" or "https". * + * @param onlyWebSchemes When true, requires that the intent filter declare + * that it handles *only* http: or https: schemes. This is a requirement for + * the intent filter's domain linkage being verifiable. * @hide */ - public final boolean hasWebDataURI() { - return hasAction(Intent.ACTION_VIEW) && - hasCategory(Intent.CATEGORY_BROWSABLE) && - (hasDataScheme(SCHEME_HTTP) || hasDataScheme(SCHEME_HTTPS)); + public final boolean handlesWebUris(boolean onlyWebSchemes) { + // Require ACTION_VIEW, CATEGORY_BROWSEABLE, and at least one scheme + if (!hasAction(Intent.ACTION_VIEW) + || !hasCategory(Intent.CATEGORY_BROWSABLE) + || mDataSchemes == null + || mDataSchemes.size() == 0) { + return false; + } + + // Now allow only the schemes "http" and "https" + final int N = mDataSchemes.size(); + for (int i = 0; i < N; i++) { + final String scheme = mDataSchemes.get(i); + final boolean isWebScheme = + SCHEME_HTTP.equals(scheme) || SCHEME_HTTPS.equals(scheme); + if (onlyWebSchemes) { + // If we're specifically trying to ensure that there are no non-web schemes + // declared in this filter, then if we ever see a non-http/https scheme then + // we know it's a failure. + if (!isWebScheme) { + return false; + } + } else { + // If we see any http/https scheme declaration in this case then the + // filter matches what we're looking for. + if (isWebScheme) { + return true; + } + } + } + + // We get here if: + // 1) onlyWebSchemes and no non-web schemes were found, i.e success; or + // 2) !onlyWebSchemes and no http/https schemes were found, i.e. failure. + return onlyWebSchemes; } /** @@ -568,7 +604,7 @@ public class IntentFilter implements Parcelable { * @hide */ public final boolean needsVerification() { - return hasWebDataURI() && getAutoVerify(); + return getAutoVerify() && handlesWebUris(true); } /** diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 2dbcde9..cea6e99 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -31,6 +31,7 @@ import android.content.pm.IPackageDeleteObserver2; import android.content.pm.IPackageDataObserver; import android.content.pm.IPackageMoveObserver; import android.content.pm.IPackageStatsObserver; +import android.content.pm.IPackagesProvider; import android.content.pm.IOnPermissionsChangeListener; import android.content.pm.IntentFilterVerificationInfo; import android.content.pm.InstrumentationInfo; @@ -101,11 +102,15 @@ interface IPackageManager { void revokeRuntimePermission(String packageName, String permissionName, int userId); + void resetRuntimePermissions(); + int getPermissionFlags(String permissionName, String packageName, int userId); void updatePermissionFlags(String permissionName, String packageName, int flagMask, int flagValues, int userId); + void updatePermissionFlagsForAllApps(int flagMask, int flagValues, int userId); + boolean shouldShowRequestPermissionRationale(String permissionName, String packageName, int userId); @@ -303,18 +308,18 @@ interface IPackageManager { * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}. */ int getComponentEnabledSetting(in ComponentName componentName, int userId); - + /** * As per {@link android.content.pm.PackageManager#setApplicationEnabledSetting}. */ void setApplicationEnabledSetting(in String packageName, in int newState, int flags, int userId, String callingPackage); - + /** * As per {@link android.content.pm.PackageManager#getApplicationEnabledSetting}. */ int getApplicationEnabledSetting(in String packageName, int userId); - + /** * Set whether the given package should be considered stopped, making * it not visible to implicit intents that filter out stopped packages. @@ -367,7 +372,7 @@ interface IPackageManager { */ void freeStorage(in String volumeUuid, in long freeStorageSize, in IntentSender pi); - + /** * Delete all the cache files in an applications cache directory * @param packageName The package name of the application whose cache @@ -375,7 +380,7 @@ interface IPackageManager { * @param observer a callback used to notify when the deletion is finished. */ void deleteApplicationCacheFiles(in String packageName, IPackageDataObserver observer); - + /** * Clear the user data directory of an application. * @param packageName The package name of the application whose cache @@ -383,7 +388,7 @@ interface IPackageManager { * @param observer a callback used to notify when the operation is completed. */ void clearApplicationUserData(in String packageName, IPackageDataObserver observer, int userId); - + /** * Get package statistics including the code, data and cache size for * an already installed package @@ -393,7 +398,7 @@ interface IPackageManager { * retrieval of information is complete. */ void getPackageSizeInfo(in String packageName, int userHandle, IPackageStatsObserver observer); - + /** * Get a list of shared libraries that are available on the * system. @@ -407,7 +412,7 @@ interface IPackageManager { FeatureInfo[] getSystemAvailableFeatures(); boolean hasSystemFeature(String name); - + void enterSafeMode(); boolean isSafeMode(); void systemReady(); @@ -498,4 +503,8 @@ interface IPackageManager { void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); + + void grantDefaultPermissions(int userId); + void setCarrierAppPackagesProvider(in IPackagesProvider provider); + int getMountExternalMode(int uid); } diff --git a/core/java/android/view/ViewAssistStructure.java b/core/java/android/content/pm/IPackagesProvider.aidl index a66d93c..7d76c88 100644 --- a/core/java/android/view/ViewAssistStructure.java +++ b/core/java/android/content/pm/IPackagesProvider.aidl @@ -14,11 +14,9 @@ * limitations under the License. */ -package android.view; +package android.content.pm; -/** - * @deprecated Temporary until old apps can move off this. - */ -@Deprecated -public abstract class ViewAssistStructure extends ViewStructure { +/** {@hide} */ +interface IPackagesProvider { + String[] getPackages(int userId); } diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java index 4e7da48..04dbff2 100644 --- a/core/java/android/content/pm/PermissionInfo.java +++ b/core/java/android/content/pm/PermissionInfo.java @@ -109,6 +109,14 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable { public static final int FLAG_COSTS_MONEY = 1<<0; /** + * Flag for {@link #protectionLevel}, corresponding + * to the <code>hide</code> value of + * {@link android.R.attr#permissionFlags}. + * @hide + */ + public static final int PROTECTION_FLAG_HIDE = 1<<1; + + /** * Additional flags about this permission as given by * {@link android.R.attr#permissionFlags}. */ diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 27d14b3..c47498d 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -628,7 +628,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri /** * <p>List of available high speed video size, fps range and max batch size configurations * supported by the camera device, in the format of (width, height, fps_min, fps_max, batch_size_max).</p> - * <p>When CONSTRAINED_HIGH_SPEED_VIDEO is supported in android.control.availableCapabilities, + * <p>When CONSTRAINED_HIGH_SPEED_VIDEO is supported in {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}, * this metadata will list the supported high speed video size, fps range and max batch size * configurations. All the sizes listed in this configuration will be a subset of the sizes * reported by {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes } @@ -675,6 +675,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p> * * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL + * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES * @hide */ public static final Key<android.hardware.camera2.params.HighSpeedVideoConfiguration[]> CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS = @@ -2679,9 +2680,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * <p>Camera devices will come in three flavors: LEGACY, LIMITED and FULL.</p> * <p>A FULL device will support below capabilities:</p> * <ul> - * <li>30fps operation at maximum resolution (== sensor resolution) is preferred, more than - * 20fps is required, for at least uncompressed YUV - * output. ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains BURST_CAPTURE)</li> + * <li>BURST_CAPTURE capability ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains BURST_CAPTURE)</li> * <li>Per frame control ({@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} <code>==</code> PER_FRAME_CONTROL)</li> * <li>Manual sensor control ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains MANUAL_SENSOR)</li> * <li>Manual post-processing control ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains @@ -2689,7 +2688,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * <li>Arbitrary cropping region ({@link CameraCharacteristics#SCALER_CROPPING_TYPE android.scaler.croppingType} <code>==</code> FREEFORM)</li> * <li>At least 3 processed (but not stalling) format output streams * ({@link CameraCharacteristics#REQUEST_MAX_NUM_OUTPUT_PROC android.request.maxNumOutputProc} <code>>=</code> 3)</li> - * <li>The required stream configuration defined in android.scaler.availableStreamConfigurations</li> + * <li>The required stream configurations defined in android.scaler.availableStreamConfigurations</li> * <li>The required exposure time range defined in {@link CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE android.sensor.info.exposureTimeRange}</li> * <li>The required maxFrameDuration defined in {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration}</li> * </ul> @@ -2709,23 +2708,11 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * post-processing, arbitrary cropping regions, and has relaxed performance constraints.</p> * <p>Each higher level supports everything the lower level supports * in this order: FULL <code>></code> LIMITED <code>></code> LEGACY.</p> - * <p>A HIGH_RESOLUTION device is equivalent to a FULL device, except that:</p> - * <ul> - * <li>At least one output resolution of 8 megapixels or higher in uncompressed YUV is - * supported at <code>>=</code> 20 fps.</li> - * <li>Maximum-size (sensor resolution) uncompressed YUV is supported at <code>>=</code> 10 - * fps.</li> - * <li>For devices that list the RAW capability and support either RAW10 or RAW12 output, - * maximum-resolution RAW10 or RAW12 capture will operate at least at the rate of - * maximum-resolution YUV capture, and at least one supported output resolution of - * 8 megapixels or higher in RAW10 or RAW12 is supported <code>>=</code> 20 fps.</li> - * </ul> * <p><b>Possible values:</b> * <ul> * <li>{@link #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED}</li> * <li>{@link #INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL}</li> * <li>{@link #INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY}</li> - * <li>{@link #INFO_SUPPORTED_HARDWARE_LEVEL_HIGH_RESOLUTION HIGH_RESOLUTION}</li> * </ul></p> * <p>This key is available on all devices.</p> * @@ -2743,7 +2730,6 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri * @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED * @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL * @see #INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY - * @see #INFO_SUPPORTED_HARDWARE_LEVEL_HIGH_RESOLUTION */ @PublicKey public static final Key<Integer> INFO_SUPPORTED_HARDWARE_LEVEL = @@ -2752,35 +2738,13 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri /** * <p>The maximum number of frames that can occur after a request * (different than the previous) has been submitted, and before the - * result's state becomes synchronized (by setting - * android.sync.frameNumber to a non-negative value).</p> + * result's state becomes synchronized.</p> * <p>This defines the maximum distance (in number of metadata results), - * between android.sync.frameNumber and the equivalent - * frame number for that result.</p> + * between the frame number of the request that has new controls to apply + * and the frame number of the result that has all the controls applied.</p> * <p>In other words this acts as an upper boundary for how many frames * must occur before the camera device knows for a fact that the new * submitted camera settings have been applied in outgoing frames.</p> - * <p>For example if the distance was 2,</p> - * <pre><code>initial request = X (repeating) - * request1 = X - * request2 = Y - * request3 = Y - * request4 = Y - * - * where requestN has frameNumber N, and the first of the repeating - * initial request's has frameNumber F (and F < 1). - * - * initial result = X' + { android.sync.frameNumber == F } - * result1 = X' + { android.sync.frameNumber == F } - * result2 = X' + { android.sync.frameNumber == CONVERGING } - * result3 = X' + { android.sync.frameNumber == CONVERGING } - * result4 = X' + { android.sync.frameNumber == 2 } - * - * where resultN has frameNumber N. - * </code></pre> - * <p>Since <code>result4</code> has a <code>frameNumber == 4</code> and - * <code>android.sync.frameNumber == 2</code>, the distance is clearly - * <code>4 - 2 = 2</code>.</p> * <p><b>Units</b>: Frame counts</p> * <p><b>Possible values:</b> * <ul> diff --git a/core/java/android/hardware/camera2/CameraDevice.java b/core/java/android/hardware/camera2/CameraDevice.java index 006030c..639c8b1 100644 --- a/core/java/android/hardware/camera2/CameraDevice.java +++ b/core/java/android/hardware/camera2/CameraDevice.java @@ -236,13 +236,16 @@ public abstract class CameraDevice implements AutoCloseable { * {@link CameraCaptureSession.StateCallback}'s * {@link CameraCaptureSession.StateCallback#onConfigured} callback will be called.</p> * - * <p>If a prior CameraCaptureSession already exists when a new one is created, the previous - * session is closed. Any in-progress capture requests made on the prior session will be - * completed before the new session is configured and is able to start capturing its own - * requests. To minimize the transition time, the {@link CameraCaptureSession#abortCaptures} - * call can be used to discard the remaining requests for the prior capture session before a new - * one is created. Note that once the new session is created, the old one can no longer have its - * captures aborted.</p> + * <p>If a prior CameraCaptureSession already exists when this method is called, the previous + * session will no longer be able to accept new capture requests and will be closed. Any + * in-progress capture requests made on the prior session will be completed before it's closed. + * {@link CameraCaptureSession.StateListener#onConfigured} for the new session may be invoked + * before {@link CameraCaptureSession.StateListener#onClosed} is invoked for the prior + * session. Once the new session is {@link CameraCaptureSession.StateListener#onConfigured + * configured}, it is able to start capturing its own requests. To minimize the transition time, + * the {@link CameraCaptureSession#abortCaptures} call can be used to discard the remaining + * requests for the prior capture session before a new one is created. Note that once the new + * session is created, the old one can no longer have its captures aborted.</p> * * <p>Using larger resolution outputs, or more outputs, can result in slower * output rate from the device.</p> diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index c656fb8..e8dbc5b 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -531,37 +531,32 @@ public abstract class CameraMetadata<TKey> { public static final int REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS = 5; /** - * <p>The camera device supports capturing maximum-resolution - * images at >= 20 frames per second, in at least the - * uncompressed YUV format, when post-processing settings - * are set to FAST.</p> - * <p>More specifically, this means that a size matching the - * camera device's active array size is listed as a - * supported size for the YUV_420_888 format in - * {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}, the minimum frame - * duration for that format and size is <= 1/20 s, and - * the {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES android.control.aeAvailableTargetFpsRanges} entry - * lists at least one FPS range where the minimum FPS is</p> - * <blockquote> - * <p>= 1 / minimumFrameDuration for the maximum-size - * YUV_420_888 format.</p> - * </blockquote> - * <p>In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is - * guaranted to have a value between 0 and 4, inclusive. - * {@link CameraCharacteristics#CONTROL_AE_LOCK_AVAILABLE android.control.aeLockAvailable} and - * {@link CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE android.control.awbLockAvailable} are also guaranteed - * to be <code>true</code> so burst capture with these two locks ON - * yields consistent image output.</p> - * <p>On a camera device that reports the HIGH_RESOLUTION hardware - * level, meaning the device supports very large capture sizes, - * BURST_CAPTURE means that at least 8-megapixel images can be - * captured at <code>>=</code> 20 fps, and maximum-resolution images can be - * captured at <code>>=</code> 10 fps.</p> + * <p>The camera device supports capturing high-resolution images at >= 20 frames per + * second, in at least the uncompressed YUV format, when post-processing settings are set + * to FAST. Additionally, maximum-resolution images can be captured at >= 10 frames + * per second. Here, 'high resolution' means at least 8 megapixels, or the maximum + * resolution of the device, whichever is smaller.</p> + * <p>More specifically, this means that a size matching the camera device's active array + * size is listed as a supported size for the {@link android.graphics.ImageFormat#YUV_420_888 } format in either {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes } or {@link android.hardware.camera2.params.StreamConfigurationMap#getHighResolutionOutputSizes }, + * with a minimum frame duration for that format and size of either <= 1/20 s, or + * <= 1/10 s, respectively; and the {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES android.control.aeAvailableTargetFpsRanges} entry + * lists at least one FPS range where the minimum FPS is >= 1 / minimumFrameDuration + * for the maximum-size YUV_420_888 format. If that maximum size is listed in {@link android.hardware.camera2.params.StreamConfigurationMap#getHighResolutionOutputSizes }, + * then the list of resolutions for YUV_420_888 from {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes } contains at + * least one resolution >= 8 megapixels, with a minimum frame duration of <= 1/20 + * s.</p> + * <p>If the device supports the {@link android.graphics.ImageFormat#RAW10 }, {@link android.graphics.ImageFormat#RAW12 }, then those can also be captured at the same rate + * as the maximum-size YUV_420_888 resolution is.</p> + * <p>If the device supports the PRIVATE_REPROCESSING capability, then the same guarantees + * as for the YUV_420_888 format also apply to the {@link android.graphics.ImageFormat#PRIVATE } format.</p> + * <p>In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is guaranted to have a value between 0 + * and 4, inclusive. {@link CameraCharacteristics#CONTROL_AE_LOCK_AVAILABLE android.control.aeLockAvailable} and {@link CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE android.control.awbLockAvailable} + * are also guaranteed to be <code>true</code> so burst capture with these two locks ON yields + * consistent image output.</p> * * @see CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES * @see CameraCharacteristics#CONTROL_AE_LOCK_AVAILABLE * @see CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE - * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP * @see CameraCharacteristics#SYNC_MAX_LATENCY * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES */ @@ -954,21 +949,12 @@ public abstract class CameraMetadata<TKey> { */ public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2; - /** - * <p>This camera device is capable of supporting advanced imaging applications at full rate, - * and additional high-resolution outputs at lower rates.</p> - * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL - */ - public static final int INFO_SUPPORTED_HARDWARE_LEVEL_HIGH_RESOLUTION = 3; - // // Enumeration values for CameraCharacteristics#SYNC_MAX_LATENCY // /** * <p>Every frame has the requests immediately applied.</p> - * <p>Furthermore for all results, - * <code>android.sync.frameNumber == {@link android.hardware.camera2.CaptureResult#getFrameNumber }</code></p> * <p>Changing controls over multiple requests one after another will * produce results that have those controls applied atomically * each frame.</p> diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 9fa6687..33cc962 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -398,7 +398,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> @Override public int hashCode() { - return HashCodeHelpers.hashCode(mSettings, mSurfaceSet, mUserTag); + return HashCodeHelpers.hashCodeGeneric(mSettings, mSurfaceSet, mUserTag); } public static final Parcelable.Creator<CaptureRequest> CREATOR = @@ -1062,6 +1062,15 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * capturing a high-resolution JPEG image will automatically trigger a * precapture sequence before the high-resolution capture, including * potentially firing a pre-capture flash.</p> + * <p>Using the precapture trigger and the auto-focus trigger {@link CaptureRequest#CONTROL_AF_TRIGGER android.control.afTrigger} + * simultaneously is allowed. However, since these triggers often require cooperation between + * the auto-focus and auto-exposure routines (for example, the may need to be enabled for a + * focus sweep), the camera device may delay acting on a later trigger until the previous + * trigger has been fully handled. This may lead to longer intervals between the trigger and + * changes to {@link CaptureResult#CONTROL_AE_STATE android.control.aeState} indicating the start of the precapture sequence, for + * example.</p> + * <p>If both the precapture and the auto-focus trigger are activated on the same request, then + * the camera device will complete them in the optimal order for that device.</p> * <p><b>Possible values:</b> * <ul> * <li>{@link #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE IDLE}</li> @@ -1075,6 +1084,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * * @see CaptureRequest#CONTROL_AE_LOCK * @see CaptureResult#CONTROL_AE_STATE + * @see CaptureRequest#CONTROL_AF_TRIGGER * @see CaptureRequest#CONTROL_CAPTURE_INTENT * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL * @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE @@ -1179,6 +1189,12 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * START for multiple captures in a row means restarting the AF operation over * and over again.</p> * <p>See {@link CaptureResult#CONTROL_AF_STATE android.control.afState} for what the trigger means for each AF mode.</p> + * <p>Using the autofocus trigger and the precapture trigger {@link CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER android.control.aePrecaptureTrigger} + * simultaneously is allowed. However, since these triggers often require cooperation between + * the auto-focus and auto-exposure routines (for example, the may need to be enabled for a + * focus sweep), the camera device may delay acting on a later trigger until the previous + * trigger has been fully handled. This may lead to longer intervals between the trigger and + * changes to {@link CaptureResult#CONTROL_AF_STATE android.control.afState}, for example.</p> * <p><b>Possible values:</b> * <ul> * <li>{@link #CONTROL_AF_TRIGGER_IDLE IDLE}</li> @@ -1187,6 +1203,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * </ul></p> * <p>This key is available on all devices.</p> * + * @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER * @see CaptureResult#CONTROL_AF_STATE * @see #CONTROL_AF_TRIGGER_IDLE * @see #CONTROL_AF_TRIGGER_START @@ -1759,11 +1776,24 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * 16:9 aspect ratio, the primary image will be cropped vertically (letterbox) to * generate the thumbnail image. The thumbnail image will always have a smaller Field * Of View (FOV) than the primary image when aspect ratios differ.</p> + * <p>When an {@link CaptureRequest#JPEG_ORIENTATION android.jpeg.orientation} of non-zero degree is requested, + * the camera device will handle thumbnail rotation in one of the following ways:</p> + * <ul> + * <li>Set the {@link android.media.ExifInterface#TAG_ORIENTATION EXIF orientation flag} + * and keep jpeg and thumbnail image data unrotated.</li> + * <li>Rotate the jpeg and thumbnail image data and not set + * {@link android.media.ExifInterface#TAG_ORIENTATION EXIF orientation flag}. In this + * case, LIMITED or FULL hardware level devices will report rotated thumnail size in + * capture result, so the width and height will be interchanged if 90 or 270 degree + * orientation is requested. LEGACY device will always report unrotated thumbnail + * size.</li> + * </ul> * <p><b>Range of valid values:</b><br> * {@link CameraCharacteristics#JPEG_AVAILABLE_THUMBNAIL_SIZES android.jpeg.availableThumbnailSizes}</p> * <p>This key is available on all devices.</p> * * @see CameraCharacteristics#JPEG_AVAILABLE_THUMBNAIL_SIZES + * @see CaptureRequest#JPEG_ORIENTATION */ @PublicKey public static final Key<android.util.Size> JPEG_THUMBNAIL_SIZE = diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index b1fb615..9dee045 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -779,6 +779,15 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * capturing a high-resolution JPEG image will automatically trigger a * precapture sequence before the high-resolution capture, including * potentially firing a pre-capture flash.</p> + * <p>Using the precapture trigger and the auto-focus trigger {@link CaptureRequest#CONTROL_AF_TRIGGER android.control.afTrigger} + * simultaneously is allowed. However, since these triggers often require cooperation between + * the auto-focus and auto-exposure routines (for example, the may need to be enabled for a + * focus sweep), the camera device may delay acting on a later trigger until the previous + * trigger has been fully handled. This may lead to longer intervals between the trigger and + * changes to {@link CaptureResult#CONTROL_AE_STATE android.control.aeState} indicating the start of the precapture sequence, for + * example.</p> + * <p>If both the precapture and the auto-focus trigger are activated on the same request, then + * the camera device will complete them in the optimal order for that device.</p> * <p><b>Possible values:</b> * <ul> * <li>{@link #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE IDLE}</li> @@ -792,6 +801,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * * @see CaptureRequest#CONTROL_AE_LOCK * @see CaptureResult#CONTROL_AE_STATE + * @see CaptureRequest#CONTROL_AF_TRIGGER * @see CaptureRequest#CONTROL_CAPTURE_INTENT * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL * @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE @@ -1139,6 +1149,12 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * START for multiple captures in a row means restarting the AF operation over * and over again.</p> * <p>See {@link CaptureResult#CONTROL_AF_STATE android.control.afState} for what the trigger means for each AF mode.</p> + * <p>Using the autofocus trigger and the precapture trigger {@link CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER android.control.aePrecaptureTrigger} + * simultaneously is allowed. However, since these triggers often require cooperation between + * the auto-focus and auto-exposure routines (for example, the may need to be enabled for a + * focus sweep), the camera device may delay acting on a later trigger until the previous + * trigger has been fully handled. This may lead to longer intervals between the trigger and + * changes to {@link CaptureResult#CONTROL_AF_STATE android.control.afState}, for example.</p> * <p><b>Possible values:</b> * <ul> * <li>{@link #CONTROL_AF_TRIGGER_IDLE IDLE}</li> @@ -1147,6 +1163,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * </ul></p> * <p>This key is available on all devices.</p> * + * @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER * @see CaptureResult#CONTROL_AF_STATE * @see #CONTROL_AF_TRIGGER_IDLE * @see #CONTROL_AF_TRIGGER_START @@ -2314,11 +2331,24 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * 16:9 aspect ratio, the primary image will be cropped vertically (letterbox) to * generate the thumbnail image. The thumbnail image will always have a smaller Field * Of View (FOV) than the primary image when aspect ratios differ.</p> + * <p>When an {@link CaptureRequest#JPEG_ORIENTATION android.jpeg.orientation} of non-zero degree is requested, + * the camera device will handle thumbnail rotation in one of the following ways:</p> + * <ul> + * <li>Set the {@link android.media.ExifInterface#TAG_ORIENTATION EXIF orientation flag} + * and keep jpeg and thumbnail image data unrotated.</li> + * <li>Rotate the jpeg and thumbnail image data and not set + * {@link android.media.ExifInterface#TAG_ORIENTATION EXIF orientation flag}. In this + * case, LIMITED or FULL hardware level devices will report rotated thumnail size in + * capture result, so the width and height will be interchanged if 90 or 270 degree + * orientation is requested. LEGACY device will always report unrotated thumbnail + * size.</li> + * </ul> * <p><b>Range of valid values:</b><br> * {@link CameraCharacteristics#JPEG_AVAILABLE_THUMBNAIL_SIZES android.jpeg.availableThumbnailSizes}</p> * <p>This key is available on all devices.</p> * * @see CameraCharacteristics#JPEG_AVAILABLE_THUMBNAIL_SIZES + * @see CaptureRequest#JPEG_ORIENTATION */ @PublicKey public static final Key<android.util.Size> JPEG_THUMBNAIL_SIZE = diff --git a/core/java/android/hardware/camera2/DngCreator.java b/core/java/android/hardware/camera2/DngCreator.java index 70afe5b..57a080b 100644 --- a/core/java/android/hardware/camera2/DngCreator.java +++ b/core/java/android/hardware/camera2/DngCreator.java @@ -284,6 +284,8 @@ public final class DngCreator implements AutoCloseable { * {@code offset + 2 * width * height)} bytes. The width and height of * the input are taken from the width and height set in the {@link DngCreator} metadata tags, * and will typically be equal to the width and height of + * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE}. Prior to + * API level 23, this was always the same as * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE}. * The pixel layout in the input is determined from the reported color filter arrangement (CFA) * set in {@link CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT}. If insufficient @@ -332,6 +334,8 @@ public final class DngCreator implements AutoCloseable { * {@code offset + 2 * width * height)} bytes. The width and height of * the input are taken from the width and height set in the {@link DngCreator} metadata tags, * and will typically be equal to the width and height of + * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE}. Prior to + * API level 23, this was always the same as * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE}. * The pixel layout in the input is determined from the reported color filter arrangement (CFA) * set in {@link CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT}. If insufficient diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java index 10dd8ae..7e50fd9 100644 --- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java +++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java @@ -842,11 +842,19 @@ public class CameraMetadataNative implements Parcelable { CameraCharacteristics.CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS); ReprocessFormatsMap inputOutputFormatsMap = getBase( CameraCharacteristics.SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP); - + int[] capabilities = getBase(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES); + boolean listHighResolution = false; + for (int capability : capabilities) { + if (capability == CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE) { + listHighResolution = true; + break; + } + } return new StreamConfigurationMap( configurations, minFrameDurations, stallDurations, depthConfigurations, depthMinFrameDurations, depthStallDurations, - highSpeedVideoConfigurations, inputOutputFormatsMap); + highSpeedVideoConfigurations, inputOutputFormatsMap, + listHighResolution); } private <T> Integer getMaxRegions(Key<T> key) { diff --git a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java index 2fb3203..e786707 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java +++ b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java @@ -605,6 +605,14 @@ public class LegacyCameraDevice implements AutoCloseable { return LegacyExceptionUtils.throwOnError(nativeDetectSurfaceType(surface)); } + /** + * Query the surface for its currently configured dataspace + */ + public static int detectSurfaceDataspace(Surface surface) throws BufferQueueAbandonedException { + checkNotNull(surface); + return LegacyExceptionUtils.throwOnError(nativeDetectSurfaceDataspace(surface)); + } + static void configureSurface(Surface surface, int width, int height, int pixelFormat) throws BufferQueueAbandonedException { checkNotNull(surface); @@ -702,6 +710,8 @@ public class LegacyCameraDevice implements AutoCloseable { private static native int nativeDetectSurfaceType(Surface surface); + private static native int nativeDetectSurfaceDataspace(Surface surface); + private static native int nativeDetectSurfaceDimens(Surface surface, /*out*/int[/*2*/] dimens); diff --git a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java index c6ea488..639ad60 100644 --- a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java +++ b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java @@ -20,14 +20,16 @@ import android.graphics.ImageFormat; import android.graphics.PixelFormat; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraDevice; +import android.hardware.camera2.CameraMetadata; import android.hardware.camera2.CaptureRequest; import android.hardware.camera2.utils.HashCodeHelpers; +import android.hardware.camera2.utils.SurfaceUtils; import android.hardware.camera2.legacy.LegacyCameraDevice; import android.hardware.camera2.legacy.LegacyMetadataMapper; -import android.hardware.camera2.legacy.LegacyExceptionUtils.BufferQueueAbandonedException; import android.view.Surface; import android.util.Range; import android.util.Size; +import android.util.SparseIntArray; import java.util.Arrays; import java.util.HashMap; @@ -79,7 +81,8 @@ public final class StreamConfigurationMap { * @param stallDurations a non-{@code null} array of {@link StreamConfigurationDuration} * @param highSpeedVideoConfigurations an array of {@link HighSpeedVideoConfiguration}, null if * camera device does not support high speed video recording - * + * @param listHighResolution a flag indicating whether the device supports BURST_CAPTURE + * and thus needs a separate list of slow high-resolution output sizes * @throws NullPointerException if any of the arguments except highSpeedVideoConfigurations * were {@code null} or any subelements were {@code null} * @@ -93,10 +96,12 @@ public final class StreamConfigurationMap { StreamConfigurationDuration[] depthMinFrameDurations, StreamConfigurationDuration[] depthStallDurations, HighSpeedVideoConfiguration[] highSpeedVideoConfigurations, - ReprocessFormatsMap inputOutputFormatsMap) { + ReprocessFormatsMap inputOutputFormatsMap, + boolean listHighResolution) { mConfigurations = checkArrayElementsNotNull(configurations, "configurations"); mMinFrameDurations = checkArrayElementsNotNull(minFrameDurations, "minFrameDurations"); mStallDurations = checkArrayElementsNotNull(stallDurations, "stallDurations"); + mListHighResolution = listHighResolution; if (depthConfigurations == null) { mDepthConfigurations = new StreamConfiguration[0]; @@ -120,15 +125,27 @@ public final class StreamConfigurationMap { // For each format, track how many sizes there are available to configure for (StreamConfiguration config : configurations) { - HashMap<Integer, Integer> map = config.isOutput() ? mOutputFormats : mInputFormats; - - Integer count = map.get(config.getFormat()); - - if (count == null) { - count = 0; + int fmt = config.getFormat(); + SparseIntArray map = null; + if (config.isOutput()) { + mAllOutputFormats.put(fmt, mAllOutputFormats.get(fmt) + 1); + long duration = 0; + if (mListHighResolution) { + for (StreamConfigurationDuration configurationDuration : mMinFrameDurations) { + if (configurationDuration.getFormat() == fmt && + configurationDuration.getWidth() == config.getSize().getWidth() && + configurationDuration.getHeight() == config.getSize().getHeight()) { + duration = configurationDuration.getDuration(); + break; + } + } + } + map = duration <= DURATION_20FPS_NS ? + mOutputFormats : mHighResOutputFormats; + } else { + map = mInputFormats; } - - map.put(config.getFormat(), count + 1); + map.put(fmt, map.get(fmt) + 1); } // For each depth format, track how many sizes there are available to configure @@ -138,16 +155,11 @@ public final class StreamConfigurationMap { continue; } - Integer count = mDepthOutputFormats.get(config.getFormat()); - - if (count == null) { - count = 0; - } - - mDepthOutputFormats.put(config.getFormat(), count + 1); + mDepthOutputFormats.put(config.getFormat(), + mDepthOutputFormats.get(config.getFormat()) + 1); } - if (!mOutputFormats.containsKey(HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED)) { + if (mOutputFormats.indexOfKey(HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED) < 0) { throw new AssertionError( "At least one stream configuration for IMPLEMENTATION_DEFINED must exist"); } @@ -241,7 +253,7 @@ public final class StreamConfigurationMap { * @return a non-empty array of sizes, or {@code null} if the format was not available. */ public Size[] getInputSizes(final int format) { - return getPublicFormatSizes(format, /*output*/false); + return getPublicFormatSizes(format, /*output*/false, /*highRes*/false); } /** @@ -274,9 +286,9 @@ public final class StreamConfigurationMap { int internalFormat = imageFormatToInternal(format); int dataspace = imageFormatToDataspace(format); if (dataspace == HAL_DATASPACE_DEPTH) { - return mDepthOutputFormats.containsKey(internalFormat); + return mDepthOutputFormats.indexOfKey(internalFormat) >= 0; } else { - return getFormatsMap(/*output*/true).containsKey(internalFormat); + return getFormatsMap(/*output*/true).indexOfKey(internalFormat) >= 0; } } @@ -378,27 +390,24 @@ public final class StreamConfigurationMap { public boolean isOutputSupportedFor(Surface surface) { checkNotNull(surface, "surface must not be null"); - Size surfaceSize; - int surfaceFormat = -1; - try { - surfaceSize = LegacyCameraDevice.getSurfaceSize(surface); - surfaceFormat = LegacyCameraDevice.detectSurfaceType(surface); - } catch(BufferQueueAbandonedException e) { - throw new IllegalArgumentException("Abandoned surface", e); - } + Size surfaceSize = SurfaceUtils.getSurfaceSize(surface); + int surfaceFormat = SurfaceUtils.getSurfaceFormat(surface); + int surfaceDataspace = SurfaceUtils.getSurfaceDataspace(surface); // See if consumer is flexible. - boolean isFlexible = LegacyCameraDevice.isFlexibleConsumer(surface); + boolean isFlexible = SurfaceUtils.isFlexibleConsumer(surface); // Override RGB formats to IMPLEMENTATION_DEFINED, b/9487482 if ((surfaceFormat >= LegacyMetadataMapper.HAL_PIXEL_FORMAT_RGBA_8888 && surfaceFormat <= LegacyMetadataMapper.HAL_PIXEL_FORMAT_BGRA_8888)) { - surfaceFormat = LegacyMetadataMapper.HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED; + surfaceFormat = HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED; } - for (StreamConfiguration config : mConfigurations) { + StreamConfiguration[] configs = + surfaceDataspace != HAL_DATASPACE_DEPTH ? mConfigurations : mDepthConfigurations; + for (StreamConfiguration config : configs) { if (config.getFormat() == surfaceFormat && config.isOutput()) { - // Mathing format, either need exact size match, or a flexible consumer + // Matching format, either need exact size match, or a flexible consumer // and a size no bigger than MAX_DIMEN_FOR_ROUNDING if (config.getSize().equals(surfaceSize)) { return true; @@ -414,12 +423,12 @@ public final class StreamConfigurationMap { /** * Get a list of sizes compatible with {@code klass} to use as an output. * - * <p>Since some of the supported classes may support additional formats beyond + * <p>Some of the supported classes may support additional formats beyond * {@link ImageFormat#PRIVATE}; this function only returns * sizes for {@link ImageFormat#PRIVATE}. For example, {@link android.media.ImageReader} * supports {@link ImageFormat#YUV_420_888} and {@link ImageFormat#PRIVATE}, this method will * only return the sizes for {@link ImageFormat#PRIVATE} for {@link android.media.ImageReader} - * class .</p> + * class.</p> * * <p>If a well-defined format such as {@code NV21} is required, use * {@link #getOutputSizes(int)} instead.</p> @@ -444,7 +453,7 @@ public final class StreamConfigurationMap { } return getInternalFormatSizes(HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, - HAL_DATASPACE_UNKNOWN,/*output*/true); + HAL_DATASPACE_UNKNOWN,/*output*/true, /*highRes*/false); } /** @@ -453,6 +462,14 @@ public final class StreamConfigurationMap { * <p>The {@code format} should be a supported format (one of the formats returned by * {@link #getOutputFormats}).</p> * + * As of API level 23, the {@link #getHighResolutionOutputSizes} method can be used on devices + * that support the + * {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE} + * capability to get a list of high-resolution output sizes that cannot operate at the preferred + * 20fps rate. This means that for some supported formats, this method will return an empty + * list, if all the supported resolutions operate at below 20fps. For devices that do not + * support the BURST_CAPTURE capability, all output resolutions are listed through this method. + * * @param format an image format from {@link ImageFormat} or {@link PixelFormat} * @return * an array of supported sizes, @@ -463,36 +480,40 @@ public final class StreamConfigurationMap { * @see #getOutputFormats */ public Size[] getOutputSizes(int format) { - return getPublicFormatSizes(format, /*output*/true); + return getPublicFormatSizes(format, /*output*/true, /*highRes*/ false); } /** * Get a list of supported high speed video recording sizes. - * - * <p> When HIGH_SPEED_VIDEO is supported in - * {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES available scene modes}, this - * method will list the supported high speed video size configurations. All the sizes listed - * will be a subset of the sizes reported by {@link #getOutputSizes} for processed non-stalling - * formats (typically ImageFormat#YUV_420_888, ImageFormat#NV21, ImageFormat#YV12)</p> - * - * <p> To enable high speed video recording, application must set - * {@link CaptureRequest#CONTROL_SCENE_MODE} to - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} in capture - * requests and select the video size from this method and + * <p> + * When {@link CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO} is + * supported in {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES}, this method will + * list the supported high speed video size configurations. All the sizes listed will be a + * subset of the sizes reported by {@link #getOutputSizes} for processed non-stalling formats + * (typically {@link ImageFormat#PRIVATE} {@link ImageFormat#YUV_420_888}, etc.) + * </p> + * <p> + * To enable high speed video recording, application must create a constrained create high speed + * capture session via {@link CameraDevice#createConstrainedHighSpeedCaptureSession}, and submit + * a CaptureRequest list created by {@link CameraDevice#createConstrainedHighSpeedRequestList} + * to this session. The application must select the video size from this method and * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS range} from - * {@link #getHighSpeedVideoFpsRangesFor} to configure the recording and preview streams and - * setup the recording requests. For example, if the application intends to do high speed - * recording, it can select the maximum size reported by this method to configure output - * streams. Note that for the use case of multiple output streams, application must select one - * unique size from this method to use. Otherwise a request error might occur. Once the size is + * {@link #getHighSpeedVideoFpsRangesFor} to configure the constrained high speed session and + * generate the high speed request list. For example, if the application intends to do high + * speed recording, it can select the maximum size reported by this method to create high speed + * capture session. Note that for the use case of multiple output streams, application must + * select one unique size from this method to use (e.g., preview and recording streams must have + * the same size). Otherwise, the high speed session creation will fail. Once the size is * selected, application can get the supported FPS ranges by * {@link #getHighSpeedVideoFpsRangesFor}, and use these FPS ranges to setup the recording - * requests.</p> - * - * @return - * an array of supported high speed video recording sizes + * request lists via {@link CameraDevice#createConstrainedHighSpeedRequestList}. + * </p> * + * @return an array of supported high speed video recording sizes * @see #getHighSpeedVideoFpsRangesFor(Size) + * @see CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO + * @see CameraDevice#createConstrainedHighSpeedCaptureSession + * @see CameraDevice#createConstrainedHighSpeedRequestList */ public Size[] getHighSpeedVideoSizes() { Set<Size> keySet = mHighSpeedVideoSizeMap.keySet(); @@ -501,26 +522,25 @@ public final class StreamConfigurationMap { /** * Get the frame per second ranges (fpsMin, fpsMax) for input high speed video size. - * - * <p> See {@link #getHighSpeedVideoSizes} for how to enable high speed recording.</p> - * - * <p> For normal video recording use case, where some application will NOT set - * {@link CaptureRequest#CONTROL_SCENE_MODE} to - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} in capture - * requests, the {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS ranges} reported in - * this method must not be used to setup capture requests, or it will cause request error.</p> + * <p> + * See {@link #getHighSpeedVideoFpsRanges} for how to enable high speed recording. + * </p> + * <p> + * The {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS ranges} reported in this method + * must not be used to setup capture requests that are submitted to unconstrained capture + * sessions, or it will result in {@link IllegalArgumentException IllegalArgumentExceptions}. + * </p> + * <p> + * See {@link #getHighSpeedVideoFpsRanges} for the characteristics of the returned FPS ranges. + * </p> * * @param size one of the sizes returned by {@link #getHighSpeedVideoSizes()} - * @return - * An array of FPS range to use with - * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE TARGET_FPS_RANGE} when using - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} scene - * mode. - * The upper bound of returned ranges is guaranteed to be larger or equal to 60. - * + * @return an array of supported high speed video recording FPS ranges The upper bound of + * returned ranges is guaranteed to be greater than or equal to 120. * @throws IllegalArgumentException if input size does not exist in the return value of - * getHighSpeedVideoSizes + * getHighSpeedVideoSizes * @see #getHighSpeedVideoSizes() + * @see #getHighSpeedVideoFpsRanges() */ public Range<Integer>[] getHighSpeedVideoFpsRangesFor(Size size) { Integer fpsRangeCount = mHighSpeedVideoSizeMap.get(size); @@ -542,34 +562,46 @@ public final class StreamConfigurationMap { /** * Get a list of supported high speed video recording FPS ranges. - * - * <p> When HIGH_SPEED_VIDEO is supported in - * {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES available scene modes}, this - * method will list the supported high speed video FPS range configurations. Application can - * then use {@link #getHighSpeedVideoSizesFor} to query available sizes for one of returned - * FPS range.</p> - * - * <p> To enable high speed video recording, application must set - * {@link CaptureRequest#CONTROL_SCENE_MODE} to - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} in capture - * requests and select the video size from {@link #getHighSpeedVideoSizesFor} and + * <p> + * When {@link CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO} is + * supported in {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES}, this method will + * list the supported high speed video FPS range configurations. Application can then use + * {@link #getHighSpeedVideoSizesFor} to query available sizes for one of returned FPS range. + * </p> + * <p> + * To enable high speed video recording, application must create a constrained create high speed + * capture session via {@link CameraDevice#createConstrainedHighSpeedCaptureSession}, and submit + * a CaptureRequest list created by {@link CameraDevice#createConstrainedHighSpeedRequestList} + * to this session. The application must select the video size from this method and * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS range} from - * this method to configure the recording and preview streams and setup the recording requests. - * For example, if the application intends to do high speed recording, it can select one FPS - * range reported by this method, query the video sizes corresponding to this FPS range by - * {@link #getHighSpeedVideoSizesFor} and select one of reported sizes to configure output - * streams. Note that for the use case of multiple output streams, application must select one - * unique size from {@link #getHighSpeedVideoSizesFor}, and use it for all output streams. - * Otherwise a request error might occur when attempting to enable - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO}. - * Once the stream is configured, application can set the FPS range in the recording requests. + * {@link #getHighSpeedVideoFpsRangesFor} to configure the constrained high speed session and + * generate the high speed request list. For example, if the application intends to do high + * speed recording, it can select one FPS range reported by this method, query the video sizes + * corresponding to this FPS range by {@link #getHighSpeedVideoSizesFor} and use one of reported + * sizes to create a high speed capture session. Note that for the use case of multiple output + * streams, application must select one unique size from this method to use (e.g., preview and + * recording streams must have the same size). Otherwise, the high speed session creation will + * fail. Once the high speed capture session is created, the application can set the FPS range + * in the recording request lists via + * {@link CameraDevice#createConstrainedHighSpeedRequestList}. + * </p> + * <p> + * The FPS ranges reported by this method will have below characteristics: + * <li>The fpsMin and fpsMax will be a multiple 30fps.</li> + * <li>The fpsMin will be no less than 30fps, the fpsMax will be no less than 120fps.</li> + * <li>At least one range will be a fixed FPS range where fpsMin == fpsMax.</li> + * <li>For each fixed FPS range, there will be one corresponding variable FPS range [30, + * fps_max]. These kinds of FPS ranges are suitable for preview-only use cases where the + * application doesn't want the camera device always produce higher frame rate than the display + * refresh rate.</li> * </p> * - * @return - * an array of supported high speed video recording FPS ranges - * The upper bound of returned ranges is guaranteed to be larger or equal to 60. - * + * @return an array of supported high speed video recording FPS ranges The upper bound of + * returned ranges is guaranteed to be larger or equal to 120. * @see #getHighSpeedVideoSizesFor + * @see CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO + * @see CameraDevice#createConstrainedHighSpeedCaptureSession + * @see CameraDevice#createConstrainedHighSpeedRequestList */ @SuppressWarnings("unchecked") public Range<Integer>[] getHighSpeedVideoFpsRanges() { @@ -578,21 +610,13 @@ public final class StreamConfigurationMap { } /** - * Get the supported video sizes for input FPS range. + * Get the supported video sizes for an input high speed FPS range. * - * <p> See {@link #getHighSpeedVideoFpsRanges} for how to enable high speed recording.</p> - * - * <p> For normal video recording use case, where the application will NOT set - * {@link CaptureRequest#CONTROL_SCENE_MODE} to - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} in capture - * requests, the {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE FPS ranges} reported in - * this method must not be used to setup capture requests, or it will cause request error.</p> + * <p> See {@link #getHighSpeedVideoSizes} for how to enable high speed recording.</p> * * @param fpsRange one of the FPS range returned by {@link #getHighSpeedVideoFpsRanges()} - * @return - * An array of video sizes to configure output stream when using - * {@link CaptureRequest#CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO HIGH_SPEED_VIDEO} scene - * mode. + * @return An array of video sizes to create high speed capture sessions for high speed streaming + * use cases. * * @throws IllegalArgumentException if input FPS range does not exist in the return value of * getHighSpeedVideoFpsRanges @@ -616,6 +640,32 @@ public final class StreamConfigurationMap { } /** + * Get a list of supported high resolution sizes, which cannot operate at full BURST_CAPTURE + * rate. + * + * <p>This includes all output sizes that cannot meet the 20 fps frame rate requirements for the + * {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE} + * capability. This does not include the stall duration, so for example, a JPEG or RAW16 output + * resolution with a large stall duration but a minimum frame duration that's above 20 fps will + * still be listed in the regular {@link #getOutputSizes} list. All the sizes on this list are + * still guaranteed to operate at a rate of at least 10 fps, not including stall duration.</p> + * + * <p>For a device that does not support the BURST_CAPTURE capability, this list will be + * {@code null}, since resolutions in the {@link #getOutputSizes} list are already not + * guaranteed to meet >= 20 fps rate requirements. For a device that does support the + * BURST_CAPTURE capability, this list may be empty, if all supported resolutions meet the 20 + * fps requirement.</p> + * + * @return an array of supported slower high-resolution sizes, or {@code null} if the + * BURST_CAPTURE capability is not supported + */ + public Size[] getHighResolutionOutputSizes(int format) { + if (!mListHighResolution) return null; + + return getPublicFormatSizes(format, /*output*/true, /*highRes*/ true); + } + + /** * Get the minimum {@link CaptureRequest#SENSOR_FRAME_DURATION frame duration} * for the format/size combination (in nanoseconds). * @@ -867,6 +917,7 @@ public final class StreamConfigurationMap { return Arrays.equals(mConfigurations, other.mConfigurations) && Arrays.equals(mMinFrameDurations, other.mMinFrameDurations) && Arrays.equals(mStallDurations, other.mStallDurations) && + Arrays.equals(mDepthConfigurations, other.mDepthConfigurations) && Arrays.equals(mHighSpeedVideoConfigurations, other.mHighSpeedVideoConfigurations); } @@ -879,18 +930,31 @@ public final class StreamConfigurationMap { @Override public int hashCode() { // XX: do we care about order? - return HashCodeHelpers.hashCode( + return HashCodeHelpers.hashCodeGeneric( mConfigurations, mMinFrameDurations, - mStallDurations, mHighSpeedVideoConfigurations); + mStallDurations, + mDepthConfigurations, mHighSpeedVideoConfigurations); } // Check that the argument is supported by #getOutputFormats or #getInputFormats private int checkArgumentFormatSupported(int format, boolean output) { checkArgumentFormat(format); - int[] formats = output ? getOutputFormats() : getInputFormats(); - for (int i = 0; i < formats.length; ++i) { - if (format == formats[i]) { + int internalFormat = imageFormatToInternal(format); + int internalDataspace = imageFormatToDataspace(format); + + if (output) { + if (internalDataspace == HAL_DATASPACE_DEPTH) { + if (mDepthOutputFormats.indexOfKey(internalFormat) >= 0) { + return format; + } + } else { + if (mAllOutputFormats.indexOfKey(internalFormat) >= 0) { + return format; + } + } + } else { + if (mInputFormats.indexOfKey(internalFormat) >= 0) { return format; } } @@ -1175,7 +1239,7 @@ public final class StreamConfigurationMap { return formats; } - private Size[] getPublicFormatSizes(int format, boolean output) { + private Size[] getPublicFormatSizes(int format, boolean output, boolean highRes) { try { checkArgumentFormatSupported(format, output); } catch (IllegalArgumentException e) { @@ -1185,36 +1249,57 @@ public final class StreamConfigurationMap { int internalFormat = imageFormatToInternal(format); int dataspace = imageFormatToDataspace(format); - return getInternalFormatSizes(internalFormat, dataspace, output); + return getInternalFormatSizes(internalFormat, dataspace, output, highRes); } - private Size[] getInternalFormatSizes(int format, int dataspace, boolean output) { - - HashMap<Integer, Integer> formatsMap = - (dataspace == HAL_DATASPACE_DEPTH) ? mDepthOutputFormats : getFormatsMap(output); - - Integer sizesCount = formatsMap.get(format); - if (sizesCount == null) { + private Size[] getInternalFormatSizes(int format, int dataspace, + boolean output, boolean highRes) { + SparseIntArray formatsMap = + !output ? mInputFormats : + dataspace == HAL_DATASPACE_DEPTH ? mDepthOutputFormats : + highRes ? mHighResOutputFormats : + mOutputFormats; + + int sizesCount = formatsMap.get(format); + if ( ((!output || dataspace == HAL_DATASPACE_DEPTH) && sizesCount == 0) || + (output && dataspace != HAL_DATASPACE_DEPTH && mAllOutputFormats.get(format) == 0)) { + // Only throw if this is really not supported at all throw new IllegalArgumentException("format not available"); } - int len = sizesCount; - Size[] sizes = new Size[len]; + Size[] sizes = new Size[sizesCount]; int sizeIndex = 0; StreamConfiguration[] configurations = (dataspace == HAL_DATASPACE_DEPTH) ? mDepthConfigurations : mConfigurations; - for (StreamConfiguration config : configurations) { - if (config.getFormat() == format && config.isOutput() == output) { + int fmt = config.getFormat(); + if (fmt == format && config.isOutput() == output) { + if (output) { + // Filter slow high-res output formats; include for + // highRes, remove for !highRes + long duration = 0; + for (int i = 0; i < mMinFrameDurations.length; i++) { + StreamConfigurationDuration d = mMinFrameDurations[i]; + if (d.getFormat() == fmt && + d.getWidth() == config.getSize().getWidth() && + d.getHeight() == config.getSize().getHeight()) { + duration = d.getDuration(); + break; + } + } + if (highRes != (duration > DURATION_20FPS_NS)) { + continue; + } + } sizes[sizeIndex++] = config.getSize(); } } - if (sizeIndex != len) { + if (sizeIndex != sizesCount) { throw new AssertionError( - "Too few sizes (expected " + len + ", actual " + sizeIndex + ")"); + "Too few sizes (expected " + sizesCount + ", actual " + sizeIndex + ")"); } return sizes; @@ -1226,14 +1311,16 @@ public final class StreamConfigurationMap { int i = 0; - for (int format : getFormatsMap(output).keySet()) { + SparseIntArray map = getFormatsMap(output); + for (int j = 0; j < map.size(); j++) { + int format = map.keyAt(j); if (format != HAL_PIXEL_FORMAT_RAW_OPAQUE) { formats[i++] = imageFormatToPublic(format); } } if (output) { - for (int format : mDepthOutputFormats.keySet()) { - formats[i++] = depthFormatToPublic(format); + for (int j = 0; j < mDepthOutputFormats.size(); j++) { + formats[i++] = depthFormatToPublic(mDepthOutputFormats.keyAt(j)); } } if (formats.length != i) { @@ -1244,14 +1331,14 @@ public final class StreamConfigurationMap { } /** Get the format -> size count map for either output or input formats */ - private HashMap<Integer, Integer> getFormatsMap(boolean output) { - return output ? mOutputFormats : mInputFormats; + private SparseIntArray getFormatsMap(boolean output) { + return output ? mAllOutputFormats : mInputFormats; } private long getInternalFormatDuration(int format, int dataspace, Size size, int duration) { // assume format is already checked, since its internal - if (!arrayContains(getInternalFormatSizes(format, dataspace, /*output*/true), size)) { + if (!isSupportedInternalConfiguration(format, dataspace, size)) { throw new IllegalArgumentException("size was not supported"); } @@ -1289,10 +1376,9 @@ public final class StreamConfigurationMap { /** Count the number of publicly-visible output formats */ private int getPublicFormatCount(boolean output) { - HashMap<Integer, Integer> formatsMap = getFormatsMap(output); - + SparseIntArray formatsMap = getFormatsMap(output); int size = formatsMap.size(); - if (formatsMap.containsKey(HAL_PIXEL_FORMAT_RAW_OPAQUE)) { + if (formatsMap.indexOfKey(HAL_PIXEL_FORMAT_RAW_OPAQUE) >= 0) { size -= 1; } if (output) { @@ -1316,6 +1402,21 @@ public final class StreamConfigurationMap { return false; } + private boolean isSupportedInternalConfiguration(int format, int dataspace, + Size size) { + StreamConfiguration[] configurations = + (dataspace == HAL_DATASPACE_DEPTH) ? mDepthConfigurations : mConfigurations; + + for (int i = 0; i < configurations.length; i++) { + if (configurations[i].getFormat() == format && + configurations[i].getSize().equals(size)) { + return true; + } + } + + return false; + } + /** * Return this {@link StreamConfigurationMap} as a string representation. * @@ -1351,6 +1452,8 @@ public final class StreamConfigurationMap { StringBuilder sb = new StringBuilder("StreamConfiguration("); appendOutputsString(sb); sb.append(", "); + appendHighResOutputsString(sb); + sb.append(", "); appendInputsString(sb); sb.append(", "); appendValidOutputFormatsForInputString(sb); @@ -1381,6 +1484,27 @@ public final class StreamConfigurationMap { sb.append(")"); } + private void appendHighResOutputsString(StringBuilder sb) { + sb.append("HighResolutionOutputs("); + int[] formats = getOutputFormats(); + for (int format : formats) { + Size[] sizes = getHighResolutionOutputSizes(format); + if (sizes == null) continue; + for (Size size : sizes) { + long minFrameDuration = getOutputMinFrameDuration(format, size); + long stallDuration = getOutputStallDuration(format, size); + sb.append(String.format("[w:%d, h:%d, format:%s(%d), min_duration:%d, " + + "stall:%d], ", size.getWidth(), size.getHeight(), formatToString(format), + format, minFrameDuration, stallDuration)); + } + } + // Remove the pending ", " + if (sb.charAt(sb.length() - 1) == ' ') { + sb.delete(sb.length() - 2, sb.length()); + } + sb.append(")"); + } + private void appendInputsString(StringBuilder sb) { sb.append("Inputs("); int[] formats = getInputFormats(); @@ -1479,15 +1603,21 @@ public final class StreamConfigurationMap { } // from system/core/include/system/graphics.h + private static final int HAL_PIXEL_FORMAT_RAW16 = 0x20; private static final int HAL_PIXEL_FORMAT_BLOB = 0x21; private static final int HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 0x22; + private static final int HAL_PIXEL_FORMAT_YCbCr_420_888 = 0x23; private static final int HAL_PIXEL_FORMAT_RAW_OPAQUE = 0x24; + private static final int HAL_PIXEL_FORMAT_RAW10 = 0x25; + private static final int HAL_PIXEL_FORMAT_RAW12 = 0x26; private static final int HAL_PIXEL_FORMAT_Y16 = 0x20363159; + private static final int HAL_DATASPACE_UNKNOWN = 0x0; private static final int HAL_DATASPACE_JFIF = 0x101; private static final int HAL_DATASPACE_DEPTH = 0x1000; + private static final long DURATION_20FPS_NS = 50000000L; /** * @see #getDurations(int, int) */ @@ -1505,15 +1635,20 @@ public final class StreamConfigurationMap { private final HighSpeedVideoConfiguration[] mHighSpeedVideoConfigurations; private final ReprocessFormatsMap mInputOutputFormatsMap; - /** ImageFormat -> num output sizes mapping */ - private final HashMap</*ImageFormat*/Integer, /*Count*/Integer> mOutputFormats = - new HashMap<Integer, Integer>(); - /** ImageFormat -> num input sizes mapping */ - private final HashMap</*ImageFormat*/Integer, /*Count*/Integer> mInputFormats = - new HashMap<Integer, Integer>(); - /** ImageFormat -> num depth output sizes mapping */ - private final HashMap</*ImageFormat*/Integer, /*Count*/Integer> mDepthOutputFormats = - new HashMap<Integer, Integer>(); + private final boolean mListHighResolution; + + /** internal format -> num output sizes mapping, not including slow high-res sizes, for + * non-depth dataspaces */ + private final SparseIntArray mOutputFormats = new SparseIntArray(); + /** internal format -> num output sizes mapping for slow high-res sizes, for non-depth + * dataspaces */ + private final SparseIntArray mHighResOutputFormats = new SparseIntArray(); + /** internal format -> num output sizes mapping for all non-depth dataspaces */ + private final SparseIntArray mAllOutputFormats = new SparseIntArray(); + /** internal format -> num input sizes mapping, for input reprocessing formats */ + private final SparseIntArray mInputFormats = new SparseIntArray(); + /** internal format -> num depth output sizes mapping, for HAL_DATASPACE_DEPTH */ + private final SparseIntArray mDepthOutputFormats = new SparseIntArray(); /** High speed video Size -> FPS range count mapping*/ private final HashMap</*HighSpeedVideoSize*/Size, /*Count*/Integer> mHighSpeedVideoSizeMap = new HashMap<Size, Integer>(); @@ -1522,4 +1657,3 @@ public final class StreamConfigurationMap { mHighSpeedVideoFpsRangeMap = new HashMap<Range<Integer>, Integer>(); } - diff --git a/core/java/android/hardware/camera2/params/TonemapCurve.java b/core/java/android/hardware/camera2/params/TonemapCurve.java index 398a7e9..2d7bbaa 100644 --- a/core/java/android/hardware/camera2/params/TonemapCurve.java +++ b/core/java/android/hardware/camera2/params/TonemapCurve.java @@ -277,7 +277,7 @@ public final class TonemapCurve { return mHashCode; } - mHashCode = HashCodeHelpers.hashCode(mRed, mGreen, mBlue); + mHashCode = HashCodeHelpers.hashCodeGeneric(mRed, mGreen, mBlue); mHashCalculated = true; return mHashCode; diff --git a/core/java/android/hardware/camera2/utils/HashCodeHelpers.java b/core/java/android/hardware/camera2/utils/HashCodeHelpers.java index 7b4aa09..731da8b 100644 --- a/core/java/android/hardware/camera2/utils/HashCodeHelpers.java +++ b/core/java/android/hardware/camera2/utils/HashCodeHelpers.java @@ -30,7 +30,7 @@ public final class HashCodeHelpers { * * @return the numeric hash code */ - public static int hashCode(int[] array) { + public static int hashCode(int... array) { if (array == null) { return 0; } @@ -60,7 +60,7 @@ public final class HashCodeHelpers { * * @return the numeric hash code */ - public static int hashCode(float[] array) { + public static int hashCode(float... array) { if (array == null) { return 0; } @@ -83,7 +83,7 @@ public final class HashCodeHelpers { * * @return the numeric hash code */ - public static <T> int hashCode(T[] array) { + public static <T> int hashCodeGeneric(T... array) { if (array == null) { return 0; } @@ -97,56 +97,4 @@ public final class HashCodeHelpers { return h; } - public static <T> int hashCode(T a) { - return (a == null) ? 0 : a.hashCode(); - } - - public static <T> int hashCode(T a, T b) { - int h = hashCode(a); - - int x = (b == null) ? 0 : b.hashCode(); - h = ((h << 5) - h) ^ x; // (h * 31) XOR x - - return h; - } - - public static <T> int hashCode(T a, T b, T c) { - int h = hashCode(a, b); - - int x = (c == null) ? 0 : c.hashCode(); - h = ((h << 5) - h) ^ x; // (h * 31) XOR x - - return h; - } - - public static <T> int hashCode(T a, T b, T c, T d) { - int h = hashCode(a, b, c); - - int x = (d == null) ? 0 : d.hashCode(); - h = ((h << 5) - h) ^ x; // (h * 31) XOR x - - return h; - } - - public static int hashCode(int x) { - return hashCode(new int[] { x } ); - } - - public static int hashCode(int x, int y) { - return hashCode(new int[] { x, y } ); - } - - public static int hashCode(int x, int y, int z) { - return hashCode(new int[] { x, y, z } ); - } - - public static int hashCode(int x, int y, int z, int w) { - return hashCode(new int[] { x, y, z, w } ); - } - - public static int hashCode(int x, int y, int z, int w, int t) { - return hashCode(new int[] { x, y, z, w, t } ); - } - - } diff --git a/core/java/android/hardware/camera2/utils/SurfaceUtils.java b/core/java/android/hardware/camera2/utils/SurfaceUtils.java index 40005a5..064b21a 100644 --- a/core/java/android/hardware/camera2/utils/SurfaceUtils.java +++ b/core/java/android/hardware/camera2/utils/SurfaceUtils.java @@ -79,4 +79,30 @@ public class SurfaceUtils { throw new IllegalArgumentException("Surface was abandoned", e); } } + + /** + * Get the Surface dataspace. + * + * @param surface The surface to be queried for dataspace. + * @return dataspace of the surface. + * + * @throws IllegalArgumentException if the surface is already abandoned. + */ + public static int getSurfaceDataspace(Surface surface) { + try { + return LegacyCameraDevice.detectSurfaceDataspace(surface); + } catch (BufferQueueAbandonedException e) { + throw new IllegalArgumentException("Surface was abandoned", e); + } + } + + /** + * Return true is the consumer is one of the consumers that can accept + * producer overrides of the default dimensions and format. + * + */ + public static boolean isFlexibleConsumer(Surface output) { + return LegacyCameraDevice.isFlexibleConsumer(output); + } + } diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index 0484806..f596c93 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -26,7 +26,7 @@ import java.util.List; */ interface IFingerprintService { // Authenticate the given sessionId with a fingerprint - void authenticate(IBinder token, long sessionId, int groupId, + void authenticate(IBinder token, long sessionId, int userId, IFingerprintServiceReceiver receiver, int flags, String opPackageName); // Cancel authentication for the given sessionId diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index ae74b9a..ff7a300 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -1819,7 +1819,18 @@ public class InputMethodService extends AbstractInputMethodService { } return false; } - + + /** + * @return {#link ExtractEditText} if it is considered to be visible and active. Otherwise + * {@code null} is returned. + */ + private ExtractEditText getExtractEditTextIfVisible() { + if (!isExtractViewShown() || !isInputViewShown()) { + return null; + } + return mExtractEditText; + } + /** * Override this to intercept key down events before they are processed by the * application. If you return true, the application will not @@ -1835,6 +1846,10 @@ public class InputMethodService extends AbstractInputMethodService { */ public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { + final ExtractEditText eet = getExtractEditTextIfVisible(); + if (eet != null && eet.handleBackInTextActionModeIfNeeded(event)) { + return true; + } if (handleBack(false)) { event.startTracking(); return true; @@ -1882,11 +1897,15 @@ public class InputMethodService extends AbstractInputMethodService { * them to perform navigation in the underlying application. */ public boolean onKeyUp(int keyCode, KeyEvent event) { - if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.isTracking() - && !event.isCanceled()) { - return handleBack(true); + if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { + final ExtractEditText eet = getExtractEditTextIfVisible(); + if (eet != null && eet.handleBackInTextActionModeIfNeeded(event)) { + return true; + } + if (event.isTracking() && !event.isCanceled()) { + return handleBack(true); + } } - return doMovementKey(keyCode, event, MOVEMENT_UP); } @@ -1952,10 +1971,10 @@ public class InputMethodService extends AbstractInputMethodService { } onExtractedCursorMovement(dx, dy); } - + boolean doMovementKey(int keyCode, KeyEvent event, int count) { - final ExtractEditText eet = mExtractEditText; - if (isExtractViewShown() && isInputViewShown() && eet != null) { + final ExtractEditText eet = getExtractEditTextIfVisible(); + if (eet != null) { // If we are in fullscreen mode, the cursor will move around // the extract edit text, but should NOT cause focus to move // to other fields. @@ -2006,7 +2025,7 @@ public class InputMethodService extends AbstractInputMethodService { return true; } } - + return false; } diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index b9f7365..80476ea 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -2110,6 +2110,8 @@ public class ConnectivityManager { * can automatically log in to a captive portal without user intervention. * * @param network The {@link Network} of the network that is being evaluated. + * + * @hide */ public void onPreCheck(Network network) {} @@ -2379,6 +2381,14 @@ public class ConnectivityManager { * Status of the request can be followed by listening to the various * callbacks described in {@link NetworkCallback}. The {@link Network} * can be used to direct traffic to the network. + * <p>It is presently unsupported to request a network with mutable + * {@link NetworkCapabilities} such as + * {@link NetworkCapabilities#NET_CAPABILITY_VALIDATED} or + * {@link NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL} + * as these {@code NetworkCapabilities} represent states that a particular + * network may never attain, and whether a network will attain these states + * is unknown prior to bringing up the network so the framework does not + * know how to go about satisfing a request with these capabilities. * <p>This method requires the caller to hold the permission * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}. * @@ -2386,6 +2396,8 @@ public class ConnectivityManager { * @param networkCallback The {@link NetworkCallback} to be utilized for this * request. Note the callback must not be shared - they * uniquely specify this request. + * @throws IllegalArgumentException if {@code request} specifies any mutable + * {@code NetworkCapabilities}. */ public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback) { sendRequestForNetwork(request.networkCapabilities, networkCallback, 0, @@ -2467,12 +2479,22 @@ public class ConnectivityManager { * <p> * The request may be released normally by calling * {@link #releaseNetworkRequest(android.app.PendingIntent)}. + * <p>It is presently unsupported to request a network with either + * {@link NetworkCapabilities#NET_CAPABILITY_VALIDATED} or + * {@link NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL} + * as these {@code NetworkCapabilities} represent states that a particular + * network may never attain, and whether a network will attain these states + * is unknown prior to bringing up the network so the framework does not + * know how to go about satisfing a request with these capabilities. * <p>This method requires the caller to hold the permission * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}. * @param request {@link NetworkRequest} describing this request. * @param operation Action to perform when the network is available (corresponds * to the {@link NetworkCallback#onAvailable} call. Typically * comes from {@link PendingIntent#getBroadcast}. Cannot be null. + * @throws IllegalArgumentException if {@code request} contains either + * {@link NetworkCapabilities#NET_CAPABILITY_VALIDATED} or + * {@link NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL}. */ public void requestNetwork(NetworkRequest request, PendingIntent operation) { checkPendingIntent(operation); diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index cf747cf..658051c 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -173,12 +173,17 @@ public final class NetworkCapabilities implements Parcelable { * Indicates that connectivity on this network was successfully validated. For example, for a * network with NET_CAPABILITY_INTERNET, it means that Internet connectivity was successfully * detected. - * @hide */ public static final int NET_CAPABILITY_VALIDATED = 16; + /** + * Indicates that this network was found to have a captive portal in place last time it was + * probed. + */ + public static final int NET_CAPABILITY_CAPTIVE_PORTAL = 17; + private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; - private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_VALIDATED; + private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_CAPTIVE_PORTAL; /** * Adds the given capability to this {@code NetworkCapability} instance. diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 50eed3e..b2ced7f 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -622,7 +622,7 @@ public class Build { /** * M comes after L. */ - public static final int MNC = CUR_DEVELOPMENT; + public static final int MNC = 23; } /** The type of build, like "user" or "eng". */ diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java index 87e8c5e..97b85e2 100644 --- a/core/java/android/os/Debug.java +++ b/core/java/android/os/Debug.java @@ -1469,13 +1469,30 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo * </tr> * <tr> * <td>art.gc.gc-count-rate-histogram</td> - * <td>The histogram of the number of garbage collection runs per 10 seconds.</td> + * <td>Every 10 seconds, the gc-count-rate is computed as the number of garbage + * collection runs that have occurred over the last 10 + * seconds. art.gc.gc-count-rate-histogram is a histogram of the gc-count-rate + * samples taken since the process began. The histogram can be used to identify + * instances of high rates of garbage collection runs. For example, a histogram + * of "0:34503,1:45350,2:11281,3:8088,4:43,5:8" shows that most of the time + * there are between 0 and 2 garbage collection runs every 10 seconds, but there + * were 8 distinct 10-second intervals in which 5 garbage collection runs + * occurred.</td> * <td>{@code 0:34503,1:45350,2:11281,3:8088,4:43,5:8}</td> * <td>23</td> * </tr> * <tr> * <td>art.gc.blocking-gc-count-rate-histogram</td> - * <td>The histogram of the number of garbage collection runs per 10 seconds.</td> + * <td>Every 10 seconds, the blocking-gc-count-rate is computed as the number of + * blocking garbage collection runs that have occurred over the last 10 + * seconds. art.gc.blocking-gc-count-rate-histogram is a histogram of the + * blocking-gc-count-rate samples taken since the process began. The histogram + * can be used to identify instances of high rates of blocking garbage + * collection runs. For example, a histogram of "0:99269,1:1,2:1" shows that + * most of the time there are zero blocking garbage collection runs every 10 + * seconds, but there was one 10-second interval in which one blocking garbage + * collection run occurred, and there was one interval in which two blocking + * garbage collection runs occurred.</td> * <td>{@code 0:99269,1:1,2:1}</td> * <td>23</td> * </tr> diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index f9c50f3..7234e98 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -643,6 +643,10 @@ public class Process { } if (mountExternal == Zygote.MOUNT_EXTERNAL_DEFAULT) { argsForZygote.add("--mount-external-default"); + } else if (mountExternal == Zygote.MOUNT_EXTERNAL_READ) { + argsForZygote.add("--mount-external-read"); + } else if (mountExternal == Zygote.MOUNT_EXTERNAL_WRITE) { + argsForZygote.add("--mount-external-write"); } argsForZygote.add("--target-sdk-version=" + targetSdkVersion); @@ -802,7 +806,12 @@ public class Process { * @hide */ public static final boolean isIsolated() { - int uid = UserHandle.getAppId(myUid()); + return isIsolated(myUid()); + } + + /** {@hide} */ + public static final boolean isIsolated(int uid) { + uid = UserHandle.getAppId(uid); return uid >= FIRST_ISOLATED_UID && uid <= LAST_ISOLATED_UID; } diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 1cc2d33..f10b982 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -1919,9 +1919,9 @@ public final class StrictMode { for (int i = 0; i < numViolations; ++i) { if (LOG_V) Log.d(TAG, "strict mode violation stacks read from binder call. i=" + i); ViolationInfo info = new ViolationInfo(p, !currentlyGathering); - if (info.crashInfo.stackTrace != null && info.crashInfo.stackTrace.length() > 10000) { + if (info.crashInfo.stackTrace != null && info.crashInfo.stackTrace.length() > 30000) { String front = info.crashInfo.stackTrace.substring(256); - // 10000 characters is way too large for this to be any sane kind of + // 30000 characters is way too large for this to be any sane kind of // strict mode collection of stacks. We've had a problem where we leave // strict mode violations associated with the thread, and it keeps tacking // more and more stacks on to the violations. Looks like we're in this casse, diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java index e55ae99..84a879c 100644 --- a/core/java/android/os/storage/IMountService.java +++ b/core/java/android/os/storage/IMountService.java @@ -1177,6 +1177,21 @@ public interface IMountService extends IInterface { _data.recycle(); } } + + @Override + public void remountUid(int uid) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(uid); + mRemote.transact(Stub.TRANSACTION_remountUid, _data, _reply, 0); + _reply.readException(); + } finally { + _reply.recycle(); + _data.recycle(); + } + } } private static final String DESCRIPTOR = "IMountService"; @@ -1292,6 +1307,8 @@ public interface IMountService extends IInterface { static final int TRANSACTION_benchmark = IBinder.FIRST_CALL_TRANSACTION + 59; static final int TRANSACTION_setDebugFlags = IBinder.FIRST_CALL_TRANSACTION + 60; + static final int TRANSACTION_remountUid = IBinder.FIRST_CALL_TRANSACTION + 61; + /** * Cast an IBinder object into an IMountService interface, generating a * proxy if needed. @@ -1845,6 +1862,13 @@ public interface IMountService extends IInterface { reply.writeNoException(); return true; } + case TRANSACTION_remountUid: { + data.enforceInterface(DESCRIPTOR); + int uid = data.readInt(); + remountUid(uid); + reply.writeNoException(); + return true; + } } return super.onTransact(code, data, reply, flags); } @@ -2154,4 +2178,6 @@ public interface IMountService extends IInterface { public String getPrimaryStorageUuid() throws RemoteException; public void setPrimaryStorageUuid(String volumeUuid, IPackageMoveObserver callback) throws RemoteException; + + public void remountUid(int uid) throws RemoteException; } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index 9b26f24..aab68e9 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -871,6 +871,15 @@ public class StorageManager { } /** {@hide} */ + public void remountUid(int uid) { + try { + mMountService.remountUid(uid); + } catch (RemoteException e) { + throw e.rethrowAsRuntimeException(); + } + } + + /** {@hide} */ private static final int DEFAULT_THRESHOLD_PERCENTAGE = 10; private static final long DEFAULT_THRESHOLD_MAX_BYTES = 500 * MB_IN_BYTES; private static final long DEFAULT_FULL_THRESHOLD_BYTES = MB_IN_BYTES; diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index aebe7f1..8ce1cbf 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -1743,6 +1743,9 @@ public final class ContactsContract { * * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated public static final class StreamItems implements StreamItemsColumns { @@ -2831,6 +2834,9 @@ public final class ContactsContract { * * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated public static final class StreamItems implements BaseColumns, StreamItemsColumns { @@ -3267,6 +3273,9 @@ public final class ContactsContract { * * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated public static final class StreamItems implements BaseColumns, StreamItemsColumns { @@ -3365,6 +3374,9 @@ public final class ContactsContract { * * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated public static final class StreamItemPhotos @@ -3415,6 +3427,9 @@ public final class ContactsContract { * @see ContactsContract.StreamItems * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated protected interface StreamItemsColumns { @@ -3805,6 +3820,9 @@ public final class ContactsContract { * * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated public static final class StreamItemPhotos implements BaseColumns, StreamItemPhotosColumns { @@ -3843,6 +3861,9 @@ public final class ContactsContract { * @see ContactsContract.StreamItemPhotos * @deprecated - Do not use. This will not be supported in the future. In the future, * cursors returned from related queries will be empty. + * + * @hide + * @removed */ @Deprecated protected interface StreamItemPhotosColumns { diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java index 51dbdee..e63fb04 100644 --- a/core/java/android/provider/MediaStore.java +++ b/core/java/android/provider/MediaStore.java @@ -283,7 +283,13 @@ public final class MediaStore { * supply the uri through the EXTRA_OUTPUT field for compatibility with old applications. * If you don't set a ClipData, it will be copied there for you when calling * {@link Context#startActivity(Intent)}. - * @see #EXTRA_OUTPUT + * + * <p>Note: if you app targets {@link android.os.Build.VERSION_CODES#MNC MNC} and above + * and declares as using the {@link android.Manifest.permission#CAMERA} permission which + * is not granted, then atempting to use this action will result in a {@link + * java.lang.SecurityException}. + * + * @see #EXTRA_OUTPUT */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public final static String ACTION_IMAGE_CAPTURE = "android.media.action.IMAGE_CAPTURE"; @@ -331,6 +337,12 @@ public final class MediaStore { * supply the uri through the EXTRA_OUTPUT field for compatibility with old applications. * If you don't set a ClipData, it will be copied there for you when calling * {@link Context#startActivity(Intent)}. + * + * <p>Note: if you app targets {@link android.os.Build.VERSION_CODES#MNC MNC} and above + * and declares as using the {@link android.Manifest.permission#CAMERA} permission which + * is not granted, then atempting to use this action will result in a {@link + * java.lang.SecurityException}. + * * @see #EXTRA_OUTPUT * @see #EXTRA_VIDEO_QUALITY * @see #EXTRA_SIZE_LIMIT diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 56cd1a7..9b5fbfa 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -6685,6 +6685,17 @@ public final class Settings { "wifi_mobile_data_transition_wakelock_timeout_ms"; /** + * This setting controls whether WiFi configurations created by a Device Owner app + * should be locked down (that is, be editable or removable only by the Device Owner App, + * not even by Settings app). + * This setting takes integer values. Non-zero values mean DO created configurations + * are locked down. Value of zero means they are not. Default value in the absence of + * actual value to this setting is 0. + */ + public static final String WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN = + "wifi_device_owner_configs_lockdown"; + + /** * The operational wifi frequency band * Set to one of {@link WifiManager#WIFI_FREQUENCY_BAND_AUTO}, * {@link WifiManager#WIFI_FREQUENCY_BAND_5GHZ} or diff --git a/core/java/android/security/keymaster/ExportResult.aidl b/core/java/android/security/keymaster/ExportResult.aidl index f522355..4d9b2de 100644 --- a/core/java/android/security/keymaster/ExportResult.aidl +++ b/core/java/android/security/keymaster/ExportResult.aidl @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/ExportResult.java b/core/java/android/security/keymaster/ExportResult.java index bb44c03..2b3ccbc 100644 --- a/core/java/android/security/keymaster/ExportResult.java +++ b/core/java/android/security/keymaster/ExportResult.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeyCharacteristics.aidl b/core/java/android/security/keymaster/KeyCharacteristics.aidl index 15014b1..be739d3 100644 --- a/core/java/android/security/keymaster/KeyCharacteristics.aidl +++ b/core/java/android/security/keymaster/KeyCharacteristics.aidl @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeyCharacteristics.java b/core/java/android/security/keymaster/KeyCharacteristics.java index 03248e5..89300d1 100644 --- a/core/java/android/security/keymaster/KeyCharacteristics.java +++ b/core/java/android/security/keymaster/KeyCharacteristics.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -19,6 +19,7 @@ package android.security.keymaster; import android.os.Parcel; import android.os.Parcelable; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -30,8 +31,8 @@ public class KeyCharacteristics implements Parcelable { public KeymasterArguments swEnforced; public KeymasterArguments hwEnforced; - public static final Parcelable.Creator<KeyCharacteristics> CREATOR = new - Parcelable.Creator<KeyCharacteristics>() { + public static final Parcelable.Creator<KeyCharacteristics> CREATOR = + new Parcelable.Creator<KeyCharacteristics>() { @Override public KeyCharacteristics createFromParcel(Parcel in) { return new KeyCharacteristics(in); @@ -65,73 +66,85 @@ public class KeyCharacteristics implements Parcelable { hwEnforced = KeymasterArguments.CREATOR.createFromParcel(in); } - public Integer getInteger(int tag) { + /** + * Returns the value of the specified enum tag or {@code defaultValue} if the tag is not + * present. + * + * @throws IllegalArgumentException if {@code tag} is not an enum tag. + */ + public Integer getEnum(int tag) { if (hwEnforced.containsTag(tag)) { - return hwEnforced.getInt(tag, -1); + return hwEnforced.getEnum(tag, -1); } else if (swEnforced.containsTag(tag)) { - return swEnforced.getInt(tag, -1); + return swEnforced.getEnum(tag, -1); } else { return null; } } - public int getInt(int tag, int defaultValue) { - Integer result = getInteger(tag); - return (result != null) ? result : defaultValue; - } - - public List<Integer> getInts(int tag) { + /** + * Returns all values of the specified repeating enum tag. + * + * throws IllegalArgumentException if {@code tag} is not a repeating enum tag. + */ + public List<Integer> getEnums(int tag) { List<Integer> result = new ArrayList<Integer>(); - result.addAll(hwEnforced.getInts(tag)); - result.addAll(swEnforced.getInts(tag)); + result.addAll(hwEnforced.getEnums(tag)); + result.addAll(swEnforced.getEnums(tag)); return result; } - public Long getLong(int tag) { + /** + * Returns the value of the specified unsigned 32-bit int tag or {@code defaultValue} if the tag + * is not present. + * + * @throws IllegalArgumentException if {@code tag} is not an unsigned 32-bit int tag. + */ + public long getUnsignedInt(int tag, long defaultValue) { if (hwEnforced.containsTag(tag)) { - return hwEnforced.getLong(tag, -1); - } else if (swEnforced.containsTag(tag)) { - return swEnforced.getLong(tag, -1); + return hwEnforced.getUnsignedInt(tag, defaultValue); } else { - return null; + return swEnforced.getUnsignedInt(tag, defaultValue); } } - public long getLong(int tag, long defaultValue) { - Long result = getLong(tag); - return (result != null) ? result : defaultValue; - } - - public List<Long> getLongs(int tag) { - List<Long> result = new ArrayList<Long>(); - result.addAll(hwEnforced.getLongs(tag)); - result.addAll(swEnforced.getLongs(tag)); + /** + * Returns all values of the specified repeating unsigned 64-bit long tag. + * + * @throws IllegalArgumentException if {@code tag} is not a repeating unsigned 64-bit long tag. + */ + public List<BigInteger> getUnsignedLongs(int tag) { + List<BigInteger> result = new ArrayList<BigInteger>(); + result.addAll(hwEnforced.getUnsignedLongs(tag)); + result.addAll(swEnforced.getUnsignedLongs(tag)); return result; } + /** + * Returns the value of the specified date tag or {@code null} if the tag is not present. + * + * @throws IllegalArgumentException if {@code tag} is not a date tag or if the tag's value + * represents a time instant which is after {@code 2^63 - 1} milliseconds since Unix + * epoch. + */ public Date getDate(int tag) { - Date result = hwEnforced.getDate(tag, null); - if (result == null) { - result = swEnforced.getDate(tag, null); - } - return result; - } - - public Date getDate(int tag, Date defaultValue) { - if (hwEnforced.containsTag(tag)) { - return hwEnforced.getDate(tag, null); - } else if (hwEnforced.containsTag(tag)) { - return swEnforced.getDate(tag, null); - } else { - return defaultValue; + Date result = swEnforced.getDate(tag, null); + if (result != null) { + return result; } + return hwEnforced.getDate(tag, null); } + /** + * Returns {@code true} if the provided boolean tag is present, {@code false} if absent. + * + * @throws IllegalArgumentException if {@code tag} is not a boolean tag. + */ public boolean getBoolean(int tag) { if (hwEnforced.containsTag(tag)) { - return hwEnforced.getBoolean(tag, false); + return hwEnforced.getBoolean(tag); } else { - return swEnforced.getBoolean(tag, false); + return swEnforced.getBoolean(tag); } } } diff --git a/core/java/android/security/keymaster/KeymasterArgument.java b/core/java/android/security/keymaster/KeymasterArgument.java index 9adde35..6ad53a4 100644 --- a/core/java/android/security/keymaster/KeymasterArgument.java +++ b/core/java/android/security/keymaster/KeymasterArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -32,17 +32,18 @@ abstract class KeymasterArgument implements Parcelable { public static final Parcelable.Creator<KeymasterArgument> CREATOR = new Parcelable.Creator<KeymasterArgument>() { + @Override public KeymasterArgument createFromParcel(Parcel in) { final int pos = in.dataPosition(); final int tag = in.readInt(); switch (KeymasterDefs.getTagType(tag)) { case KeymasterDefs.KM_ENUM: case KeymasterDefs.KM_ENUM_REP: - case KeymasterDefs.KM_INT: - case KeymasterDefs.KM_INT_REP: + case KeymasterDefs.KM_UINT: + case KeymasterDefs.KM_UINT_REP: return new KeymasterIntArgument(tag, in); - case KeymasterDefs.KM_LONG: - case KeymasterDefs.KM_LONG_REP: + case KeymasterDefs.KM_ULONG: + case KeymasterDefs.KM_ULONG_REP: return new KeymasterLongArgument(tag, in); case KeymasterDefs.KM_DATE: return new KeymasterDateArgument(tag, in); @@ -55,6 +56,8 @@ abstract class KeymasterArgument implements Parcelable { throw new ParcelFormatException("Bad tag: " + tag + " at " + pos); } } + + @Override public KeymasterArgument[] newArray(int size) { return new KeymasterArgument[size]; } diff --git a/core/java/android/security/keymaster/KeymasterArguments.aidl b/core/java/android/security/keymaster/KeymasterArguments.aidl index 7aef5a6..1a73206 100644 --- a/core/java/android/security/keymaster/KeymasterArguments.aidl +++ b/core/java/android/security/keymaster/KeymasterArguments.aidl @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterArguments.java b/core/java/android/security/keymaster/KeymasterArguments.java index 82f65c7..e862252 100644 --- a/core/java/android/security/keymaster/KeymasterArguments.java +++ b/core/java/android/security/keymaster/KeymasterArguments.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -19,6 +19,7 @@ package android.security.keymaster; import android.os.Parcel; import android.os.Parcelable; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -30,7 +31,14 @@ import java.util.List; * @hide */ public class KeymasterArguments implements Parcelable { - List<KeymasterArgument> mArguments; + + private static final long UINT32_RANGE = 1L << 32; + public static final long UINT32_MAX_VALUE = UINT32_RANGE - 1; + + private static final BigInteger UINT64_RANGE = BigInteger.ONE.shiftLeft(64); + public static final BigInteger UINT64_MAX_VALUE = UINT64_RANGE.subtract(BigInteger.ONE); + + private List<KeymasterArgument> mArguments; public static final Parcelable.Creator<KeymasterArguments> CREATOR = new Parcelable.Creator<KeymasterArguments>() { @@ -53,150 +61,292 @@ public class KeymasterArguments implements Parcelable { mArguments = in.createTypedArrayList(KeymasterArgument.CREATOR); } - public void addInt(int tag, int value) { - mArguments.add(new KeymasterIntArgument(tag, value)); + /** + * Adds an enum tag with the provided value. + * + * @throws IllegalArgumentException if {@code tag} is not an enum tag. + */ + public void addEnum(int tag, int value) { + int tagType = KeymasterDefs.getTagType(tag); + if ((tagType != KeymasterDefs.KM_ENUM) && (tagType != KeymasterDefs.KM_ENUM_REP)) { + throw new IllegalArgumentException("Not an enum or repeating enum tag: " + tag); + } + addEnumTag(tag, value); } - public void addInts(int tag, int... values) { + /** + * Adds a repeated enum tag with the provided values. + * + * @throws IllegalArgumentException if {@code tag} is not a repeating enum tag. + */ + public void addEnums(int tag, int... values) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_ENUM_REP) { + throw new IllegalArgumentException("Not a repeating enum tag: " + tag); + } for (int value : values) { - addInt(tag, value); + addEnumTag(tag, value); } } - public void addLongs(int tag, long... values) { - for (long value : values) { - addLong(tag, value); + /** + * Returns the value of the specified enum tag or {@code defaultValue} if the tag is not + * present. + * + * @throws IllegalArgumentException if {@code tag} is not an enum tag. + */ + public int getEnum(int tag, int defaultValue) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_ENUM) { + throw new IllegalArgumentException("Not an enum tag: " + tag); } + KeymasterArgument arg = getArgumentByTag(tag); + if (arg == null) { + return defaultValue; + } + return getEnumTagValue(arg); } - public void addBoolean(int tag) { - mArguments.add(new KeymasterBooleanArgument(tag)); + /** + * Returns all values of the specified repeating enum tag. + * + * throws IllegalArgumentException if {@code tag} is not a repeating enum tag. + */ + public List<Integer> getEnums(int tag) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_ENUM_REP) { + throw new IllegalArgumentException("Not a repeating enum tag: " + tag); + } + List<Integer> values = new ArrayList<Integer>(); + for (KeymasterArgument arg : mArguments) { + if (arg.tag == tag) { + values.add(getEnumTagValue(arg)); + } + } + return values; } - public void addLong(int tag, long value) { - mArguments.add(new KeymasterLongArgument(tag, value)); + private void addEnumTag(int tag, int value) { + mArguments.add(new KeymasterIntArgument(tag, value)); } - public void addBlob(int tag, byte[] value) { - mArguments.add(new KeymasterBlobArgument(tag, value)); + private int getEnumTagValue(KeymasterArgument arg) { + return ((KeymasterIntArgument) arg).value; } - public void addDate(int tag, Date value) { - mArguments.add(new KeymasterDateArgument(tag, value)); + /** + * Adds an unsigned 32-bit int tag with the provided value. + * + * @throws IllegalArgumentException if {@code tag} is not an unsigned 32-bit int tag or if + * {@code value} is outside of the permitted range [0; 2^32). + */ + public void addUnsignedInt(int tag, long value) { + int tagType = KeymasterDefs.getTagType(tag); + if ((tagType != KeymasterDefs.KM_UINT) && (tagType != KeymasterDefs.KM_UINT_REP)) { + throw new IllegalArgumentException("Not an int or repeating int tag: " + tag); + } + // Keymaster's KM_UINT is unsigned 32 bit. + if ((value < 0) || (value > UINT32_MAX_VALUE)) { + throw new IllegalArgumentException("Int tag value out of range: " + value); + } + mArguments.add(new KeymasterIntArgument(tag, (int) value)); } - private KeymasterArgument getArgumentByTag(int tag) { + /** + * Returns the value of the specified unsigned 32-bit int tag or {@code defaultValue} if the tag + * is not present. + * + * @throws IllegalArgumentException if {@code tag} is not an unsigned 32-bit int tag. + */ + public long getUnsignedInt(int tag, long defaultValue) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_UINT) { + throw new IllegalArgumentException("Not an int tag: " + tag); + } + KeymasterArgument arg = getArgumentByTag(tag); + if (arg == null) { + return defaultValue; + } + // Keymaster's KM_UINT is unsigned 32 bit. + return ((KeymasterIntArgument) arg).value & 0xffffffffL; + } + + /** + * Adds an unsigned 64-bit long tag with the provided value. + * + * @throws IllegalArgumentException if {@code tag} is not an unsigned 64-bit long tag or if + * {@code value} is outside of the permitted range [0; 2^64). + */ + public void addUnsignedLong(int tag, BigInteger value) { + int tagType = KeymasterDefs.getTagType(tag); + if ((tagType != KeymasterDefs.KM_ULONG) && (tagType != KeymasterDefs.KM_ULONG_REP)) { + throw new IllegalArgumentException("Not a long or repeating long tag: " + tag); + } + addLongTag(tag, value); + } + + /** + * Returns all values of the specified repeating unsigned 64-bit long tag. + * + * @throws IllegalArgumentException if {@code tag} is not a repeating unsigned 64-bit long tag. + */ + public List<BigInteger> getUnsignedLongs(int tag) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_ULONG_REP) { + throw new IllegalArgumentException("Tag is not a repeating long: " + tag); + } + List<BigInteger> values = new ArrayList<BigInteger>(); for (KeymasterArgument arg : mArguments) { if (arg.tag == tag) { - return arg; + values.add(getLongTagValue(arg)); } } - return null; + return values; } - public boolean containsTag(int tag) { - return getArgumentByTag(tag) != null; + private void addLongTag(int tag, BigInteger value) { + // Keymaster's KM_ULONG is unsigned 64 bit. + if ((value.signum() == -1) || (value.compareTo(UINT64_MAX_VALUE) > 0)) { + throw new IllegalArgumentException("Long tag value out of range: " + value); + } + mArguments.add(new KeymasterLongArgument(tag, value.longValue())); + } + + private BigInteger getLongTagValue(KeymasterArgument arg) { + // Keymaster's KM_ULONG is unsigned 64 bit. We're forced to use BigInteger for type safety + // because there's no unsigned long type. + return toUint64(((KeymasterLongArgument) arg).value); } - public int getInt(int tag, int defaultValue) { - switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_ENUM: - case KeymasterDefs.KM_INT: - break; // Accepted types - case KeymasterDefs.KM_INT_REP: - case KeymasterDefs.KM_ENUM_REP: - throw new IllegalArgumentException("Repeatable tags must use getInts: " + tag); - default: - throw new IllegalArgumentException("Tag is not an int type: " + tag); + /** + * Adds the provided boolean tag. Boolean tags are considered to be set to {@code true} if + * present and {@code false} if absent. + * + * @throws IllegalArgumentException if {@code tag} is not a boolean tag. + */ + public void addBoolean(int tag) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_BOOL) { + throw new IllegalArgumentException("Not a boolean tag: " + tag); + } + mArguments.add(new KeymasterBooleanArgument(tag)); + } + + /** + * Returns {@code true} if the provided boolean tag is present, {@code false} if absent. + * + * @throws IllegalArgumentException if {@code tag} is not a boolean tag. + */ + public boolean getBoolean(int tag) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_BOOL) { + throw new IllegalArgumentException("Not a boolean tag: " + tag); } KeymasterArgument arg = getArgumentByTag(tag); if (arg == null) { - return defaultValue; + return false; } - return ((KeymasterIntArgument) arg).value; + return true; } - public long getLong(int tag, long defaultValue) { - switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_LONG: - break; // Accepted type - case KeymasterDefs.KM_LONG_REP: - throw new IllegalArgumentException("Repeatable tags must use getLongs: " + tag); - default: - throw new IllegalArgumentException("Tag is not a long type: " + tag); + /** + * Adds a bytes tag with the provided value. + * + * @throws IllegalArgumentException if {@code tag} is not a bytes tag. + */ + public void addBytes(int tag, byte[] value) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_BYTES) { + throw new IllegalArgumentException("Not a bytes tag: " + tag); + } + if (value == null) { + throw new NullPointerException("value == nulll"); + } + mArguments.add(new KeymasterBlobArgument(tag, value)); + } + + /** + * Returns the value of the specified bytes tag or {@code defaultValue} if the tag is not + * present. + * + * @throws IllegalArgumentException if {@code tag} is not a bytes tag. + */ + public byte[] getBytes(int tag, byte[] defaultValue) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_BYTES) { + throw new IllegalArgumentException("Not a bytes tag: " + tag); } KeymasterArgument arg = getArgumentByTag(tag); if (arg == null) { return defaultValue; } - return ((KeymasterLongArgument) arg).value; + return ((KeymasterBlobArgument) arg).blob; } - public Date getDate(int tag, Date defaultValue) { + /** + * Adds a date tag with the provided value. + * + * @throws IllegalArgumentException if {@code tag} is not a date tag or if {@code value} is + * before the start of Unix epoch. + */ + public void addDate(int tag, Date value) { if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_DATE) { - throw new IllegalArgumentException("Tag is not a date type: " + tag); + throw new IllegalArgumentException("Not a date tag: " + tag); } - KeymasterArgument arg = getArgumentByTag(tag); - if (arg == null) { - return defaultValue; + if (value == null) { + throw new NullPointerException("value == nulll"); } - return ((KeymasterDateArgument) arg).date; + // Keymaster's KM_DATE is unsigned, but java.util.Date is signed, thus preventing us from + // using values larger than 2^63 - 1. + if (value.getTime() < 0) { + throw new IllegalArgumentException("Date tag value out of range: " + value); + } + mArguments.add(new KeymasterDateArgument(tag, value)); } - public boolean getBoolean(int tag, boolean defaultValue) { - if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_BOOL) { - throw new IllegalArgumentException("Tag is not a boolean type: " + tag); + /** + * Adds a date tag with the provided value, if the value is not {@code null}. Does nothing if + * the {@code value} is null. + * + * @throws IllegalArgumentException if {@code tag} is not a date tag or if {@code value} is + * before the start of Unix epoch. + */ + public void addDateIfNotNull(int tag, Date value) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_DATE) { + throw new IllegalArgumentException("Not a date tag: " + tag); } - KeymasterArgument arg = getArgumentByTag(tag); - if (arg == null) { - return defaultValue; + if (value != null) { + addDate(tag, value); } - return true; } - public byte[] getBlob(int tag, byte[] defaultValue) { - switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_BYTES: - case KeymasterDefs.KM_BIGNUM: - break; // Allowed types. - default: - throw new IllegalArgumentException("Tag is not a blob type: " + tag); + /** + * Returns the value of the specified date tag or {@code defaultValue} if the tag is not + * present. + * + * @throws IllegalArgumentException if {@code tag} is not a date tag or if the tag's value + * represents a time instant which is after {@code 2^63 - 1} milliseconds since Unix + * epoch. + */ + public Date getDate(int tag, Date defaultValue) { + if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_DATE) { + throw new IllegalArgumentException("Tag is not a date type: " + tag); } KeymasterArgument arg = getArgumentByTag(tag); if (arg == null) { return defaultValue; } - return ((KeymasterBlobArgument) arg).blob; + Date result = ((KeymasterDateArgument) arg).date; + // Keymaster's KM_DATE is unsigned, but java.util.Date is signed, thus preventing us from + // using values larger than 2^63 - 1. + if (result.getTime() < 0) { + throw new IllegalArgumentException("Tag value too large. Tag: " + tag); + } + return result; } - public List<Integer> getInts(int tag) { - switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_INT_REP: - case KeymasterDefs.KM_ENUM_REP: - break; // Allowed types. - default: - throw new IllegalArgumentException("Tag is not a repeating type: " + tag); - } - List<Integer> values = new ArrayList<Integer>(); + private KeymasterArgument getArgumentByTag(int tag) { for (KeymasterArgument arg : mArguments) { if (arg.tag == tag) { - values.add(((KeymasterIntArgument) arg).value); + return arg; } } - return values; + return null; } - public List<Long> getLongs(int tag) { - if (KeymasterDefs.getTagType(tag) != KeymasterDefs.KM_LONG_REP) { - throw new IllegalArgumentException("Tag is not a repeating long: " + tag); - } - List<Long> values = new ArrayList<Long>(); - for (KeymasterArgument arg : mArguments) { - if (arg.tag == tag) { - values.add(((KeymasterLongArgument) arg).value); - } - } - return values; + public boolean containsTag(int tag) { + return getArgumentByTag(tag) != null; } public int size() { @@ -216,4 +366,16 @@ public class KeymasterArguments implements Parcelable { public int describeContents() { return 0; } + + /** + * Converts the provided value to non-negative {@link BigInteger}, treating the sign bit of the + * provided value as the most significant bit of the result. + */ + public static BigInteger toUint64(long value) { + if (value >= 0) { + return BigInteger.valueOf(value); + } else { + return BigInteger.valueOf(value).add(UINT64_RANGE); + } + } } diff --git a/core/java/android/security/keymaster/KeymasterBlob.aidl b/core/java/android/security/keymaster/KeymasterBlob.aidl index 8f70f7c..b7cd1c9 100644 --- a/core/java/android/security/keymaster/KeymasterBlob.aidl +++ b/core/java/android/security/keymaster/KeymasterBlob.aidl @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterBlob.java b/core/java/android/security/keymaster/KeymasterBlob.java index cb95604..cd36870 100644 --- a/core/java/android/security/keymaster/KeymasterBlob.java +++ b/core/java/android/security/keymaster/KeymasterBlob.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterBlobArgument.java b/core/java/android/security/keymaster/KeymasterBlobArgument.java index 7d587bf..541d33e 100644 --- a/core/java/android/security/keymaster/KeymasterBlobArgument.java +++ b/core/java/android/security/keymaster/KeymasterBlobArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterBooleanArgument.java b/core/java/android/security/keymaster/KeymasterBooleanArgument.java index 9c03674..67b3281 100644 --- a/core/java/android/security/keymaster/KeymasterBooleanArgument.java +++ b/core/java/android/security/keymaster/KeymasterBooleanArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterDateArgument.java b/core/java/android/security/keymaster/KeymasterDateArgument.java index bffd24d..aa15e34 100644 --- a/core/java/android/security/keymaster/KeymasterDateArgument.java +++ b/core/java/android/security/keymaster/KeymasterDateArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/KeymasterDefs.java b/core/java/android/security/keymaster/KeymasterDefs.java index 62c28ac..bae5455 100644 --- a/core/java/android/security/keymaster/KeymasterDefs.java +++ b/core/java/android/security/keymaster/KeymasterDefs.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -33,20 +33,20 @@ public final class KeymasterDefs { public static final int KM_INVALID = 0 << 28; public static final int KM_ENUM = 1 << 28; public static final int KM_ENUM_REP = 2 << 28; - public static final int KM_INT = 3 << 28; - public static final int KM_INT_REP = 4 << 28; - public static final int KM_LONG = 5 << 28; + public static final int KM_UINT = 3 << 28; + public static final int KM_UINT_REP = 4 << 28; + public static final int KM_ULONG = 5 << 28; public static final int KM_DATE = 6 << 28; public static final int KM_BOOL = 7 << 28; public static final int KM_BIGNUM = 8 << 28; public static final int KM_BYTES = 9 << 28; - public static final int KM_LONG_REP = 10 << 28; + public static final int KM_ULONG_REP = 10 << 28; // Tag values. public static final int KM_TAG_INVALID = KM_INVALID | 0; public static final int KM_TAG_PURPOSE = KM_ENUM_REP | 1; public static final int KM_TAG_ALGORITHM = KM_ENUM | 2; - public static final int KM_TAG_KEY_SIZE = KM_INT | 3; + public static final int KM_TAG_KEY_SIZE = KM_UINT | 3; public static final int KM_TAG_BLOCK_MODE = KM_ENUM_REP | 4; public static final int KM_TAG_DIGEST = KM_ENUM_REP | 5; public static final int KM_TAG_PADDING = KM_ENUM_REP | 6; @@ -56,19 +56,19 @@ public final class KeymasterDefs { public static final int KM_TAG_RESCOPING_DEL = KM_ENUM_REP | 102; public static final int KM_TAG_BLOB_USAGE_REQUIREMENTS = KM_ENUM | 705; - public static final int KM_TAG_RSA_PUBLIC_EXPONENT = KM_LONG | 200; + public static final int KM_TAG_RSA_PUBLIC_EXPONENT = KM_ULONG | 200; public static final int KM_TAG_ACTIVE_DATETIME = KM_DATE | 400; public static final int KM_TAG_ORIGINATION_EXPIRE_DATETIME = KM_DATE | 401; public static final int KM_TAG_USAGE_EXPIRE_DATETIME = KM_DATE | 402; - public static final int KM_TAG_MIN_SECONDS_BETWEEN_OPS = KM_INT | 403; - public static final int KM_TAG_MAX_USES_PER_BOOT = KM_INT | 404; + public static final int KM_TAG_MIN_SECONDS_BETWEEN_OPS = KM_UINT | 403; + public static final int KM_TAG_MAX_USES_PER_BOOT = KM_UINT | 404; public static final int KM_TAG_ALL_USERS = KM_BOOL | 500; - public static final int KM_TAG_USER_ID = KM_INT | 501; - public static final int KM_TAG_USER_SECURE_ID = KM_LONG_REP | 502; + public static final int KM_TAG_USER_ID = KM_UINT | 501; + public static final int KM_TAG_USER_SECURE_ID = KM_ULONG_REP | 502; public static final int KM_TAG_NO_AUTH_REQUIRED = KM_BOOL | 503; public static final int KM_TAG_USER_AUTH_TYPE = KM_ENUM | 504; - public static final int KM_TAG_AUTH_TIMEOUT = KM_INT | 505; + public static final int KM_TAG_AUTH_TIMEOUT = KM_UINT | 505; public static final int KM_TAG_ALL_APPLICATIONS = KM_BOOL | 600; public static final int KM_TAG_APPLICATION_ID = KM_BYTES | 601; @@ -82,7 +82,7 @@ public final class KeymasterDefs { public static final int KM_TAG_ASSOCIATED_DATA = KM_BYTES | 1000; public static final int KM_TAG_NONCE = KM_BYTES | 1001; public static final int KM_TAG_AUTH_TOKEN = KM_BYTES | 1002; - public static final int KM_TAG_MAC_LENGTH = KM_INT | 1003; + public static final int KM_TAG_MAC_LENGTH = KM_UINT | 1003; // Algorithm values. public static final int KM_ALGORITHM_RSA = 1; diff --git a/core/java/android/security/keymaster/KeymasterIntArgument.java b/core/java/android/security/keymaster/KeymasterIntArgument.java index da81715..578d249 100644 --- a/core/java/android/security/keymaster/KeymasterIntArgument.java +++ b/core/java/android/security/keymaster/KeymasterIntArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -27,8 +27,8 @@ class KeymasterIntArgument extends KeymasterArgument { public KeymasterIntArgument(int tag, int value) { super(tag); switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_INT: - case KeymasterDefs.KM_INT_REP: + case KeymasterDefs.KM_UINT: + case KeymasterDefs.KM_UINT_REP: case KeymasterDefs.KM_ENUM: case KeymasterDefs.KM_ENUM_REP: break; // OK. diff --git a/core/java/android/security/keymaster/KeymasterLongArgument.java b/core/java/android/security/keymaster/KeymasterLongArgument.java index eb17b7e..d3d40ba 100644 --- a/core/java/android/security/keymaster/KeymasterLongArgument.java +++ b/core/java/android/security/keymaster/KeymasterLongArgument.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, @@ -27,8 +27,8 @@ class KeymasterLongArgument extends KeymasterArgument { public KeymasterLongArgument(int tag, long value) { super(tag); switch (KeymasterDefs.getTagType(tag)) { - case KeymasterDefs.KM_LONG: - case KeymasterDefs.KM_LONG_REP: + case KeymasterDefs.KM_ULONG: + case KeymasterDefs.KM_ULONG_REP: break; // OK. default: throw new IllegalArgumentException("Bad long tag " + tag); diff --git a/core/java/android/security/keymaster/OperationResult.aidl b/core/java/android/security/keymaster/OperationResult.aidl index 699e8d0..ed26c8d 100644 --- a/core/java/android/security/keymaster/OperationResult.aidl +++ b/core/java/android/security/keymaster/OperationResult.aidl @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/security/keymaster/OperationResult.java b/core/java/android/security/keymaster/OperationResult.java index 3065966..4c962ec 100644 --- a/core/java/android/security/keymaster/OperationResult.java +++ b/core/java/android/security/keymaster/OperationResult.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2015, The Android Open Source Project +/* + * Copyright (C) 2015 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 + * 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, diff --git a/core/java/android/service/carrier/CarrierService.java b/core/java/android/service/carrier/CarrierService.java index 225e70d..455e1b2 100644 --- a/core/java/android/service/carrier/CarrierService.java +++ b/core/java/android/service/carrier/CarrierService.java @@ -29,8 +29,8 @@ import com.android.internal.telephony.ITelephonyRegistry; * <p> * To extend this class, you must declare the service in your manifest file to require the * {@link android.Manifest.permission#BIND_CARRIER_SERVICES} permission and include an intent - * filter with the {@link #CONFIG_SERVICE_INTERFACE} action if the service exposes carrier config - * and the {@link #BIND_SERVICE_INTERFACE} action if the service should have a long-lived binding. + * filter with the {@link #CARRIER_SERVICE_INTERFACE}. If the service should have a long-lived + * binding, set android.service.carrier.LONG_LIVED_BINDING to true in the service's metadata. * For example: * </p> * @@ -39,16 +39,16 @@ import com.android.internal.telephony.ITelephonyRegistry; * android:label="@string/service_name" * android:permission="android.permission.BIND_CARRIER_SERVICES"> * <intent-filter> - * <action android:name="android.service.carrier.ConfigService" /> - * <action android:name="android.service.carrier.BindService" /> + * <action android:name="android.service.carrier.CarrierService" /> * </intent-filter> + * <meta-data android:name="android.service.carrier.LONG_LIVED_BINDING" + * android:value="true" /> * </service> * }</pre> */ public abstract class CarrierService extends Service { - public static final String CONFIG_SERVICE_INTERFACE = "android.service.carrier.ConfigService"; - public static final String BIND_SERVICE_INTERFACE = "android.service.carrier.BindService"; + public static final String CARRIER_SERVICE_INTERFACE = "android.service.carrier.CarrierService"; private static ITelephonyRegistry sRegistry; @@ -127,13 +127,7 @@ public abstract class CarrierService extends Service { @Override @CallSuper public IBinder onBind(Intent intent) { - switch (intent.getAction()) { - case CONFIG_SERVICE_INTERFACE: - case BIND_SERVICE_INTERFACE: - return mStubWrapper; - default: - return null; - } + return mStubWrapper; } /** diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index 0309d24..d424546 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -369,7 +369,9 @@ public abstract class NotificationListenerService extends Service { /** * Inform the notification manager that these notifications have been viewed by the - * user. + * user. This should only be called when there is sufficient confidence that the user is + * looking at the notifications, such as when the notifications appear on the screen due to + * an explicit user interaction. * @param keys Notifications to mark as seen. */ public final void setNotificationsShown(String[] keys) { diff --git a/core/java/android/service/voice/VoiceInteractionSession.java b/core/java/android/service/voice/VoiceInteractionSession.java index 39dd29b..f9e216a 100644 --- a/core/java/android/service/voice/VoiceInteractionSession.java +++ b/core/java/android/service/voice/VoiceInteractionSession.java @@ -1146,20 +1146,7 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall mContentFrame.requestApplyInsets(); } - /** @hide */ - public void onHandleAssist(Bundle assistBundle) { - } - public void onHandleAssist(Bundle data, AssistStructure structure, AssistContent content) { - if (data != null) { - Bundle assistContext = data.getBundle(Intent.EXTRA_ASSIST_CONTEXT); - if (assistContext != null) { - assistContext.putParcelable(AssistStructure.ASSIST_KEY, structure); - assistContext.putParcelable(AssistContent.ASSIST_KEY, content); - data.putBundle(Intent.EXTRA_ASSIST_CONTEXT, assistContext); - } - } - onHandleAssist(data); } public void onHandleScreenshot(Bitmap screenshot) { diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java index 3eeb04a..eae4329 100644 --- a/core/java/android/speech/tts/TextToSpeech.java +++ b/core/java/android/speech/tts/TextToSpeech.java @@ -1486,19 +1486,28 @@ public class TextToSpeech { // Get the default voice for the locale. String voiceName = service.getDefaultVoiceNameFor(language, country, variant); if (TextUtils.isEmpty(voiceName)) { - Log.w(TAG, "Couldn't find the default voice for " + language + "/" + - country + "/" + variant); + Log.w(TAG, "Couldn't find the default voice for " + language + "-" + + country + "-" + variant); return LANG_NOT_SUPPORTED; } // Load it. if (service.loadVoice(getCallerIdentity(), voiceName) == TextToSpeech.ERROR) { + Log.w(TAG, "The service claimed " + language + "-" + country + "-" + + variant + " was available with voice name " + voiceName + + " but loadVoice returned ERROR"); return LANG_NOT_SUPPORTED; } // Set the language/country/variant of the voice, so #getLanguage will return // the currently set voice locale when called. Voice voice = getVoice(service, voiceName); + if (voice == null) { + Log.w(TAG, "getDefaultVoiceNameFor returned " + voiceName + " for locale " + + language + "-" + country + "-" + variant + + " but getVoice returns null"); + return LANG_NOT_SUPPORTED; + } String voiceLanguage = ""; try { voiceLanguage = voice.getLocale().getISO3Language(); @@ -1682,6 +1691,7 @@ public class TextToSpeech { private Voice getVoice(ITextToSpeechService service, String voiceName) throws RemoteException { List<Voice> voices = service.getVoices(); if (voices == null) { + Log.w(TAG, "getVoices returned null"); return null; } for (Voice voice : voices) { @@ -1689,6 +1699,7 @@ public class TextToSpeech { return voice; } } + Log.w(TAG, "Could not find voice " + voiceName + " in voice list"); return null; } diff --git a/core/java/android/speech/tts/TextToSpeechService.java b/core/java/android/speech/tts/TextToSpeechService.java index ba98f27..fa015b2 100644 --- a/core/java/android/speech/tts/TextToSpeechService.java +++ b/core/java/android/speech/tts/TextToSpeechService.java @@ -293,7 +293,9 @@ public abstract class TextToSpeechService extends Service { } Set<String> features = onGetFeaturesForLanguage(locale.getISO3Language(), locale.getISO3Country(), locale.getVariant()); - voices.add(new Voice(locale.toLanguageTag(), locale, Voice.QUALITY_NORMAL, + String voiceName = onGetDefaultVoiceNameFor(locale.getISO3Language(), + locale.getISO3Country(), locale.getVariant()); + voices.add(new Voice(voiceName, locale, Voice.QUALITY_NORMAL, Voice.LATENCY_NORMAL, false, features)); } return voices; diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 464710b..b6fa4e4c 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -714,6 +714,27 @@ public class StaticLayout extends Layout { float[] lineWidths = lineBreaks.widths; int[] flags = lineBreaks.flags; + final int remainingLineCount = mMaximumVisibleLineCount - mLineCount; + final boolean ellipsisMayBeApplied = ellipsize != null + && (ellipsize == TextUtils.TruncateAt.END + || (mMaximumVisibleLineCount == 1 + && ellipsize != TextUtils.TruncateAt.MARQUEE)); + if (remainingLineCount < breakCount && ellipsisMayBeApplied) { + // Treat the last line and overflowed lines as a single line. + breaks[remainingLineCount - 1] = breaks[breakCount - 1]; + // Calculate width and flag. + float width = 0; + int flag = 0; + for (int i = remainingLineCount - 1; i < breakCount; i++) { + width += lineWidths[i]; + flag |= flags[i] & TAB_MASK; + } + lineWidths[remainingLineCount - 1] = width; + flags[remainingLineCount - 1] = flag; + + breakCount = remainingLineCount; + } + // here is the offset of the starting character of the line we are currently measuring int here = paraStart; diff --git a/core/java/android/text/format/Formatter.java b/core/java/android/text/format/Formatter.java index 13a959e..82689b9 100644 --- a/core/java/android/text/format/Formatter.java +++ b/core/java/android/text/format/Formatter.java @@ -16,6 +16,7 @@ package android.text.format; +import android.annotation.Nullable; import android.content.Context; import android.content.res.Resources; import android.net.NetworkUtils; @@ -52,7 +53,10 @@ public final class Formatter { * @param sizeBytes size value to be formatted, in bytes * @return formatted string with the number */ - public static String formatFileSize(Context context, long sizeBytes) { + public static String formatFileSize(@Nullable Context context, long sizeBytes) { + if (context == null) { + return ""; + } final BytesResult res = formatBytes(context.getResources(), sizeBytes, 0); return context.getString(com.android.internal.R.string.fileSizeSuffix, res.value, res.units); @@ -62,7 +66,10 @@ public final class Formatter { * Like {@link #formatFileSize}, but trying to generate shorter numbers * (showing fewer digits of precision). */ - public static String formatShortFileSize(Context context, long sizeBytes) { + public static String formatShortFileSize(@Nullable Context context, long sizeBytes) { + if (context == null) { + return ""; + } final BytesResult res = formatBytes(context.getResources(), sizeBytes, FLAG_SHORTER); return context.getString(com.android.internal.R.string.fileSizeSuffix, res.value, res.units); @@ -98,32 +105,45 @@ public final class Formatter { mult = TrafficStats.PB_IN_BYTES; result = result / 1024; } - String value; + // Note we calculate the rounded long by ourselves, but still let String.format() + // compute the rounded value. String.format("%f", 0.1) might not return "0.1" due to + // floating point errors. + final int roundFactor; + final String roundFormat; if (result < 1) { - value = String.format("%.2f", result); + roundFactor = 100; + roundFormat = "%.2f"; } else if (result < 10) { if ((flags & FLAG_SHORTER) != 0) { - value = String.format("%.1f", result); + roundFactor = 10; + roundFormat = "%.1f"; } else { - value = String.format("%.2f", result); + roundFactor = 100; + roundFormat = "%.2f"; } } else if (result < 100) { if ((flags & FLAG_SHORTER) != 0) { - value = String.format("%.0f", result); + roundFactor = 1; + roundFormat = "%.0f"; } else { - value = String.format("%.2f", result); + roundFactor = 100; + roundFormat = "%.2f"; } } else { - value = String.format("%.0f", result); + roundFactor = 1; + roundFormat = "%.0f"; } + final String roundedString = String.format(roundFormat, result); + + // Note this might overflow if result >= Long.MAX_VALUE / 100, but that's like 80PB so + // it's okay (for now)... + final long roundedBytes = + (flags & FLAG_CALCULATE_ROUNDED) == 0 ? 0 + : (((long) Math.round(result * roundFactor)) * mult / roundFactor); + final String units = res.getString(suffix); - final long roundedBytes; - if ((flags & FLAG_CALCULATE_ROUNDED) != 0) { - roundedBytes = (long) (Double.parseDouble(value) * mult); - } else { - roundedBytes = 0; - } - return new BytesResult(value, units, roundedBytes); + + return new BytesResult(roundedString, units, roundedBytes); } /** diff --git a/core/java/android/text/method/WordIterator.java b/core/java/android/text/method/WordIterator.java index 5dda8a7..3688cfa 100644 --- a/core/java/android/text/method/WordIterator.java +++ b/core/java/android/text/method/WordIterator.java @@ -147,11 +147,90 @@ public class WordIterator implements Selection.PositionIterator { * @throws IllegalArgumentException is offset is not valid. */ public int getBeginning(int offset) { + // TODO: Check if usage of this can be updated to getBeginning(offset, true) if + // so this method can be removed. + return getBeginning(offset, false); + } + + /** + * If <code>offset</code> is within a word, returns the index of the last character of that + * word plus one, otherwise returns BreakIterator.DONE. + * + * The offsets that are considered to be part of a word are the indexes of its characters, + * <i>as well as</i> the index of its last character plus one. + * If offset is the index of a low surrogate character, BreakIterator.DONE will be returned. + * + * Valid range for offset is [0..textLength] (note the inclusive upper bound). + * The returned value is within [offset..textLength] or BreakIterator.DONE. + * + * @throws IllegalArgumentException is offset is not valid. + */ + public int getEnd(int offset) { + // TODO: Check if usage of this can be updated to getEnd(offset, true), if + // so this method can be removed. + return getEnd(offset, false); + } + + /** + * If the <code>offset</code> is within a word or on a word boundary that can only be + * considered the start of a word (e.g. _word where "_" is any character that would not + * be considered part of the word) then this returns the index of the first character of + * that word. + * + * If the offset is on a word boundary that can be considered the start and end of a + * word, e.g. AABB (where AA and BB are both words) and the offset is the boundary + * between AA and BB, this would return the start of the previous word, AA. + * + * Returns BreakIterator.DONE if there is no previous boundary. + * + * @throws IllegalArgumentException is offset is not valid. + */ + public int getPrevWordBeginningOnTwoWordsBoundary(int offset) { + return getBeginning(offset, true); + } + + /** + * If the <code>offset</code> is within a word or on a word boundary that can only be + * considered the end of a word (e.g. word_ where "_" is any character that would not + * be considered part of the word) then this returns the index of the last character + * plus one of that word. + * + * If the offset is on a word boundary that can be considered the start and end of a + * word, e.g. AABB (where AA and BB are both words) and the offset is the boundary + * between AA and BB, this would return the end of the next word, BB. + * + * Returns BreakIterator.DONE if there is no next boundary. + * + * @throws IllegalArgumentException is offset is not valid. + */ + public int getNextWordEndOnTwoWordBoundary(int offset) { + return getEnd(offset, true); + } + + /** + * If the <code>offset</code> is within a word or on a word boundary that can only be + * considered the start of a word (e.g. _word where "_" is any character that would not + * be considered part of the word) then this returns the index of the first character of + * that word. + * + * If the offset is on a word boundary that can be considered the start and end of a + * word, e.g. AABB (where AA and BB are both words) and the offset is the boundary + * between AA and BB, and getPrevWordBeginningOnTwoWordsBoundary is true then this would + * return the start of the previous word, AA. Otherwise it would return the current offset, + * the start of BB. + * + * Returns BreakIterator.DONE if there is no previous boundary. + * + * @throws IllegalArgumentException is offset is not valid. + */ + private int getBeginning(int offset, boolean getPrevWordBeginningOnTwoWordsBoundary) { final int shiftedOffset = offset - mOffsetShift; checkOffsetIsValid(shiftedOffset); if (isOnLetterOrDigit(shiftedOffset)) { - if (mIterator.isBoundary(shiftedOffset)) { + if (mIterator.isBoundary(shiftedOffset) + && (!isAfterLetterOrDigit(shiftedOffset) + || !getPrevWordBeginningOnTwoWordsBoundary)) { return shiftedOffset + mOffsetShift; } else { return mIterator.preceding(shiftedOffset) + mOffsetShift; @@ -164,24 +243,29 @@ public class WordIterator implements Selection.PositionIterator { return BreakIterator.DONE; } - /** If <code>offset</code> is within a word, returns the index of the last character of that - * word plus one, otherwise returns BreakIterator.DONE. + /** + * If the <code>offset</code> is within a word or on a word boundary that can only be + * considered the end of a word (e.g. word_ where "_" is any character that would not be + * considered part of the word) then this returns the index of the last character plus one + * of that word. * - * The offsets that are considered to be part of a word are the indexes of its characters, - * <i>as well as</i> the index of its last character plus one. - * If offset is the index of a low surrogate character, BreakIterator.DONE will be returned. + * If the offset is on a word boundary that can be considered the start and end of a + * word, e.g. AABB (where AA and BB are both words) and the offset is the boundary + * between AA and BB, and getNextWordEndOnTwoWordBoundary is true then this would return + * the end of the next word, BB. Otherwise it would return the current offset, the end + * of AA. * - * Valid range for offset is [0..textLength] (note the inclusive upper bound). - * The returned value is within [offset..textLength] or BreakIterator.DONE. + * Returns BreakIterator.DONE if there is no next boundary. * * @throws IllegalArgumentException is offset is not valid. */ - public int getEnd(int offset) { + private int getEnd(int offset, boolean getNextWordEndOnTwoWordBoundary) { final int shiftedOffset = offset - mOffsetShift; checkOffsetIsValid(shiftedOffset); if (isAfterLetterOrDigit(shiftedOffset)) { - if (mIterator.isBoundary(shiftedOffset)) { + if (mIterator.isBoundary(shiftedOffset) + && (!isOnLetterOrDigit(shiftedOffset) || !getNextWordEndOnTwoWordBoundary)) { return shiftedOffset + mOffsetShift; } else { return mIterator.following(shiftedOffset) + mOffsetShift; diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java index c61ca4e..e958058 100644 --- a/core/java/android/transition/Transition.java +++ b/core/java/android/transition/Transition.java @@ -528,11 +528,13 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { for (int i = unmatchedStart.size() - 1; i >= 0; i--) { View view = unmatchedStart.keyAt(i); - TransitionValues end = unmatchedEnd.remove(view); - if (end != null) { - TransitionValues start = unmatchedStart.removeAt(i); - mStartValuesList.add(start); - mEndValuesList.add(end); + if (view != null && isValidTarget(view)) { + TransitionValues end = unmatchedEnd.remove(view); + if (end != null && end.view != null && isValidTarget(end.view)) { + TransitionValues start = unmatchedStart.removeAt(i); + mStartValuesList.add(start); + mEndValuesList.add(end); + } } } } @@ -548,9 +550,9 @@ public abstract class Transition implements Cloneable { int numStartIds = startItemIds.size(); for (int i = 0; i < numStartIds; i++) { View startView = startItemIds.valueAt(i); - if (startView != null) { + if (startView != null && isValidTarget(startView)) { View endView = endItemIds.get(startItemIds.keyAt(i)); - if (endView != null) { + if (endView != null && isValidTarget(endView)) { TransitionValues startValues = unmatchedStart.get(startView); TransitionValues endValues = unmatchedEnd.get(endView); if (startValues != null && endValues != null) { @@ -626,14 +628,20 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { // Views that only exist in the start Scene for (int i = 0; i < unmatchedStart.size(); i++) { - mStartValuesList.add(unmatchedStart.valueAt(i)); - mEndValuesList.add(null); + final TransitionValues start = unmatchedStart.valueAt(i); + if (isValidTarget(start.view)) { + mStartValuesList.add(start); + mEndValuesList.add(null); + } } // Views that only exist in the end Scene for (int i = 0; i < unmatchedEnd.size(); i++) { - mEndValuesList.add(unmatchedEnd.valueAt(i)); - mStartValuesList.add(null); + final TransitionValues end = unmatchedEnd.valueAt(i); + if (isValidTarget(end.view)) { + mEndValuesList.add(end); + mStartValuesList.add(null); + } } } @@ -1046,7 +1054,7 @@ public abstract class Transition implements Cloneable { */ public Transition removeTarget(int targetId) { if (targetId > 0) { - mTargetIds.remove(targetId); + mTargetIds.remove((Integer)targetId); } return this; } diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java index 5209f90..71c8099 100644 --- a/core/java/android/transition/TransitionManager.java +++ b/core/java/android/transition/TransitionManager.java @@ -435,10 +435,11 @@ public class TransitionManager { sPendingTransitions.remove(sceneRoot); final ArrayList<Transition> runningTransitions = getRunningTransitions().get(sceneRoot); - if (runningTransitions != null) { - final int count = runningTransitions.size(); - for (int i = 0; i < count; i++) { - final Transition transition = runningTransitions.get(i); + if (runningTransitions != null && !runningTransitions.isEmpty()) { + // Make a copy in case this is called by an onTransitionEnd listener + ArrayList<Transition> copy = new ArrayList(runningTransitions); + for (int i = copy.size() - 1; i >= 0; i--) { + final Transition transition = copy.get(i); transition.end(); } } diff --git a/core/java/android/transition/Visibility.java b/core/java/android/transition/Visibility.java index 8b74a1e..585fc4e 100644 --- a/core/java/android/transition/Visibility.java +++ b/core/java/android/transition/Visibility.java @@ -504,13 +504,20 @@ public abstract class Visibility extends Transition { private final boolean mIsForcedVisibility; private final View mView; private final int mFinalVisibility; + private final ViewGroup mParent; + private boolean mEnded; boolean mCanceled = false; public DisappearListener(View view, int finalVisibility, boolean isForcedVisibility) { this.mView = view; this.mIsForcedVisibility = isForcedVisibility; this.mFinalVisibility = finalVisibility; + this.mParent = (ViewGroup) view.getParent(); + if (!isForcedVisibility && mParent != null) { + // Prevent a layout from including mView in its calculation. + mParent.suppressLayout(true); + } } @Override @@ -552,13 +559,39 @@ public abstract class Visibility extends Transition { hideViewWhenNotCanceled(); } + @Override + public void onTransitionPause(Transition transition) { + if (mParent != null && !mIsForcedVisibility) { + mParent.suppressLayout(false); + } + } + + @Override + public void onTransitionResume(Transition transition) { + if (mParent != null && !mIsForcedVisibility) { + mParent.suppressLayout(true); + } + } + private void hideViewWhenNotCanceled() { - if (!mCanceled) { - if (mIsForcedVisibility) { - mView.setTransitionAlpha(0); - } else { - mView.setVisibility(mFinalVisibility); + if (!mEnded) { + if (!mCanceled) { + if (mIsForcedVisibility) { + mView.setTransitionAlpha(0); + } else { + // Recreate the parent's display list in case it includes mView. + mView.setTransitionVisibility(mFinalVisibility); + if (mParent != null) { + mParent.invalidate(); + } + } + } + if (!mIsForcedVisibility && mParent != null) { + // Layout is allowed now that the View is in its final state + mParent.suppressLayout(false); } + // Do this only once + mEnded = true; } } } diff --git a/core/java/android/util/LocalLog.java b/core/java/android/util/LocalLog.java index cab5d19..4862f01 100644 --- a/core/java/android/util/LocalLog.java +++ b/core/java/android/util/LocalLog.java @@ -54,4 +54,18 @@ public final class LocalLog { pw.println(itr.next()); } } + + public static class ReadOnlyLocalLog { + private final LocalLog mLog; + ReadOnlyLocalLog(LocalLog log) { + mLog = log; + } + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + mLog.dump(fd, pw, args); + } + } + + public ReadOnlyLocalLog readOnlyLocalLog() { + return new ReadOnlyLocalLog(this); + } } diff --git a/core/java/android/util/Range.java b/core/java/android/util/Range.java index 211d01a..5524506 100644 --- a/core/java/android/util/Range.java +++ b/core/java/android/util/Range.java @@ -350,7 +350,7 @@ public final class Range<T extends Comparable<? super T>> { */ @Override public int hashCode() { - return HashCodeHelpers.hashCode(mLower, mUpper); + return HashCodeHelpers.hashCodeGeneric(mLower, mUpper); } private final T mLower; diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index f39d1f5..cc4598d 100644 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java @@ -201,6 +201,35 @@ public final class InputDevice implements Parcelable { public static final int SOURCE_STYLUS = 0x00004000 | SOURCE_CLASS_POINTER; /** + * The input device is a Bluetooth stylus. + * <p> + * Note that this bit merely indicates that an input device is capable of + * obtaining input from a Bluetooth stylus. To determine whether a given + * touch event was produced by a stylus, examine the tool type returned by + * {@link MotionEvent#getToolType(int)} for each individual pointer. + * </p><p> + * A single touch event may multiple pointers with different tool types, + * such as an event that has one pointer with tool type + * {@link MotionEvent#TOOL_TYPE_FINGER} and another pointer with tool type + * {@link MotionEvent#TOOL_TYPE_STYLUS}. So it is important to examine + * the tool type of each pointer, regardless of the source reported + * by {@link MotionEvent#getSource()}. + * </p><p> + * A bluetooth stylus generally receives its pressure and button state + * information from the stylus itself, and derives the rest from another + * source. For example, a Bluetooth stylus used in conjunction with a + * touchscreen would derive its contact position and pointer size from the + * touchscreen and may not be any more accurate than other tools such as + * fingers. + * </p> + * + * @see #SOURCE_STYLUS + * @see #SOURCE_CLASS_POINTER + */ + public static final int SOURCE_BLUETOOTH_STYLUS = + 0x00008000 | SOURCE_STYLUS; + + /** * The input source is a trackball. * * @see #SOURCE_CLASS_TRACKBALL diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java index 4394cd8..6026d04 100644 --- a/core/java/android/view/MotionEvent.java +++ b/core/java/android/view/MotionEvent.java @@ -1399,6 +1399,7 @@ public final class MotionEvent extends InputEvent implements Parcelable { private static native int nativeGetButtonState(long nativePtr); private static native void nativeSetButtonState(long nativePtr, int buttonState); private static native int nativeGetActionButton(long nativePtr); + private static native void nativeSetActionButton(long nativePtr, int actionButton); private static native void nativeOffsetLocation(long nativePtr, float deltaX, float deltaY); private static native float nativeGetXOffset(long nativePtr); private static native float nativeGetYOffset(long nativePtr); @@ -2284,6 +2285,16 @@ public final class MotionEvent extends InputEvent implements Parcelable { } /** + * Sets the action button for the event. + * + * @see #getActionButton() + * @hide + */ + public final void setActionButton(int button) { + nativeSetActionButton(mNativePtr, button); + } + + /** * Returns the original raw X coordinate of this event. For touch * events on the screen, this is the original location of the event * on the screen, before it had been adjusted for the containing window diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 4074529..5970c3f 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -453,6 +453,19 @@ public class SurfaceControl { } } + /** + * Sets the security of the surface. Setting the flag is equivalent to creating the + * Surface with the {@link #SECURE} flag. + */ + public void setSecure(boolean isSecure) { + checkNotReleased(); + if (isSecure) { + nativeSetFlags(mNativeObject, SECURE, SECURE); + } else { + nativeSetFlags(mNativeObject, 0, SECURE); + } + } + /* * set display parameters. * needs to be inside open/closeTransaction block diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index fd3ee4f..23da6d2 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -6032,7 +6032,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, public AccessibilityNodeInfo createAccessibilityNodeInfoInternal() { AccessibilityNodeProvider provider = getAccessibilityNodeProvider(); if (provider != null) { - return provider.createAccessibilityNodeInfo(View.NO_ID); + return provider.createAccessibilityNodeInfo(AccessibilityNodeProvider.HOST_VIEW_ID); } else { AccessibilityNodeInfo info = AccessibilityNodeInfo.obtain(this); onInitializeAccessibilityNodeInfo(info); @@ -6179,6 +6179,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, structure.setId(id, null, null, null); } structure.setDimens(mLeft, mTop, mScrollX, mScrollY, mRight - mLeft, mBottom - mTop); + if (!hasIdentityMatrix()) { + structure.setTransformation(getMatrix()); + } + structure.setElevation(getZ()); structure.setVisibility(getVisibility()); structure.setEnabled(isEnabled()); if (isClickable()) { @@ -6215,11 +6219,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, structure.setContentDescription(getContentDescription()); } - /** @hide */ - public void onProvideAssistStructure(ViewStructure structure) { - onProvideStructure(structure); - } - /** * Called when assist structure is being retrieved from a view as part of * {@link android.app.Activity#onProvideAssistData Activity.onProvideAssistData} to @@ -6232,7 +6231,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityNodeProvider provider = getAccessibilityNodeProvider(); if (provider != null) { AccessibilityNodeInfo info = createAccessibilityNodeInfo(); - Log.i("View", "Provider of " + this + ": children=" + info.getChildCount()); structure.setChildCount(1); ViewStructure root = structure.newChild(0); populateVirtualStructure(root, provider, info); @@ -6240,11 +6238,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } - /** @hide */ - public void onProvideVirtualAssistStructure(ViewStructure structure) { - onProvideVirtualStructure(structure); - } - private void populateVirtualStructure(ViewStructure structure, AccessibilityNodeProvider provider, AccessibilityNodeInfo info) { structure.setId(AccessibilityNodeInfo.getVirtualDescendantId(info.getSourceNodeId()), @@ -6284,8 +6277,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, CharSequence cname = info.getClassName(); structure.setClassName(cname != null ? cname.toString() : null); structure.setContentDescription(info.getContentDescription()); - Log.i("View", "vassist " + cname + " @ " + rect.toShortString() - + " text=" + info.getText() + " cd=" + info.getContentDescription()); if (info.getText() != null || info.getError() != null) { structure.setText(info.getText(), info.getTextSelectionStart(), info.getTextSelectionEnd()); @@ -6310,8 +6301,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ public void dispatchProvideStructure(ViewStructure structure) { if (!isAssistBlocked()) { - onProvideAssistStructure(structure); - onProvideVirtualAssistStructure(structure); + onProvideStructure(structure); + onProvideVirtualStructure(structure); } else { structure.setClassName(getAccessibilityClassName().toString()); structure.setAssistBlocked(true); @@ -6326,6 +6317,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ public void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) { + if (mAttachInfo == null) { + return; + } + Rect bounds = mAttachInfo.mTmpInvalRect; getDrawingRect(bounds); @@ -8706,14 +8701,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** - * Adds the children of a given View for accessibility. Since some Views are - * not important for accessibility the children for accessibility are not - * necessarily direct children of the view, rather they are the first level of - * descendants important for accessibility. + * Adds the children of this View relevant for accessibility to the given list + * as output. Since some Views are not important for accessibility the added + * child views are not necessarily direct children of this view, rather they are + * the first level of descendants important for accessibility. * - * @param children The list of children for accessibility. + * @param outChildren The output list that will receive children for accessibility. */ - public void addChildrenForAccessibility(ArrayList<View> children) { + public void addChildrenForAccessibility(ArrayList<View> outChildren) { } @@ -8774,7 +8769,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ public void notifyViewAccessibilityStateChangedIfNeeded(int changeType) { - if (!AccessibilityManager.getInstance(mContext).isEnabled()) { + if (!AccessibilityManager.getInstance(mContext).isEnabled() || mAttachInfo == null) { return; } if (mSendViewStateChangedAccessibilityEvent == null) { @@ -8796,7 +8791,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ public void notifySubtreeAccessibilityStateChangedIfNeeded() { - if (!AccessibilityManager.getInstance(mContext).isEnabled()) { + if (!AccessibilityManager.getInstance(mContext).isEnabled() || mAttachInfo == null) { return; } if ((mPrivateFlags2 & PFLAG2_SUBTREE_ACCESSIBILITY_STATE_CHANGED) == 0) { diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 2e2ba88..b53d93c 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -1919,7 +1919,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } @Override - public void addChildrenForAccessibility(ArrayList<View> childrenForAccessibility) { + public void addChildrenForAccessibility(ArrayList<View> outChildren) { if (getAccessibilityNodeProvider() != null) { return; } @@ -1930,9 +1930,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager View child = children.getChildAt(i); if ((child.mViewFlags & VISIBILITY_MASK) == VISIBLE) { if (child.includeForAccessibility()) { - childrenForAccessibility.add(child); + outChildren.add(child); } else { - child.addChildrenForAccessibility(childrenForAccessibility); + child.addChildrenForAccessibility(outChildren); } } } diff --git a/core/java/android/view/ViewStructure.java b/core/java/android/view/ViewStructure.java index d06cd83..794622a 100644 --- a/core/java/android/view/ViewStructure.java +++ b/core/java/android/view/ViewStructure.java @@ -16,6 +16,7 @@ package android.view; +import android.graphics.Matrix; import android.graphics.Rect; import android.os.Bundle; @@ -50,6 +51,28 @@ public abstract class ViewStructure { int height); /** + * Set the transformation matrix associated with this view, as per + * {@link View#getMatrix View.getMatrix()}, or null if there is none. + */ + public abstract void setTransformation(Matrix matrix); + + /** + * Set the visual elevation (shadow) of the view, as per + * {@link View#getZ View.getZ()}. Note this is <em>not</em> related + * to the physical Z-ordering of this view relative to its other siblings (that is how + * they overlap when drawing), it is only the visual representation for shadowing. + */ + public abstract void setElevation(float elevation); + + /** + * Set an alpha transformation that is applied to this view, as per + * {@link View#getAlpha View.getAlpha()}. Value ranges from 0 + * (completely transparent) to 1 (completely opaque); the default is 1, which means + * no transformation. + */ + public abstract void setAlpha(float alpha); + + /** * Set the visibility state of this view, as per * {@link View#getVisibility View.getVisibility()}. */ @@ -150,7 +173,7 @@ public abstract class ViewStructure { * @param size The size, in pixels, of the text. * @param fgColor The foreground color, packed as 0xAARRGGBB. * @param bgColor The background color, packed as 0xAARRGGBB. - * @param style Style flags, as defined by {@link android.app.AssistStructure.ViewNode}. + * @param style Style flags, as defined by {@link android.app.assist.AssistStructure.ViewNode}. */ public abstract void setTextStyle(float size, int fgColor, int bgColor, int style); @@ -221,7 +244,7 @@ public abstract class ViewStructure { * children at <var>index</var>. * @return Returns an fresh {@link ViewStructure} ready to be filled in. */ - public abstract ViewAssistStructure newChild(int index); + public abstract ViewStructure newChild(int index); /** * Like {@link #newChild}, but allows the caller to asynchronously populate the returned @@ -231,7 +254,7 @@ public abstract class ViewStructure { * population is done. * @return Returns an fresh {@link ViewStructure} ready to be filled in. */ - public abstract ViewAssistStructure asyncNewChild(int index); + public abstract ViewStructure asyncNewChild(int index); /** * Call when done populating a {@link ViewStructure} returned by diff --git a/core/java/android/view/accessibility/AccessibilityEvent.java b/core/java/android/view/accessibility/AccessibilityEvent.java index ab793e0..87706ef 100644 --- a/core/java/android/view/accessibility/AccessibilityEvent.java +++ b/core/java/android/view/accessibility/AccessibilityEvent.java @@ -1115,7 +1115,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par record.mParcelableData = parcel.readParcelable(null); parcel.readList(record.mText, null); record.mSourceWindowId = parcel.readInt(); - record.mSourceNodeId = parcel.readLong(); + record.mSourceNode = parcel.readParcelable(null); record.mSealed = (parcel.readInt() == 1); } @@ -1167,7 +1167,10 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par parcel.writeParcelable(record.mParcelableData, flags); parcel.writeList(record.mText); parcel.writeInt(record.mSourceWindowId); - parcel.writeLong(record.mSourceNodeId); + // create copy of the node here because the node would be recycled just after it is written + // to parcel + parcel.writeParcelable(record.mSourceNode != null ? + AccessibilityNodeInfo.obtain(record.mSourceNode) : null, flags); parcel.writeInt(record.mSealed ? 1 : 0); } @@ -1191,7 +1194,9 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par builder.append("\n"); builder.append("; ContentChangeTypes: ").append(mContentChangeTypes); builder.append("; sourceWindowId: ").append(mSourceWindowId); - builder.append("; mSourceNodeId: ").append(mSourceNodeId); + if (mSourceNode != null) { + builder.append("; mSourceNodeId: ").append(mSourceNode.getSourceNodeId()); + } for (int i = 0; i < getRecordCount(); i++) { final AccessibilityRecord record = getRecord(i); builder.append(" Record "); diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 36de8f3..86ed499 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -2821,7 +2821,7 @@ public class AccessibilityNodeInfo implements Parcelable { * @param parcel A parcel containing the state of a {@link AccessibilityNodeInfo}. */ private void initFromParcel(Parcel parcel) { - mSealed = (parcel.readInt() == 1); + final boolean sealed = (parcel.readInt() == 1); mSourceNodeId = parcel.readLong(); mWindowId = parcel.readInt(); mParentNodeId = parcel.readLong(); @@ -2911,6 +2911,8 @@ public class AccessibilityNodeInfo implements Parcelable { parcel.readInt() == 1, parcel.readInt() == 1); } + + mSealed = sealed; } /** diff --git a/core/java/android/view/accessibility/AccessibilityRecord.java b/core/java/android/view/accessibility/AccessibilityRecord.java index cc6a71d..f99690a 100644 --- a/core/java/android/view/accessibility/AccessibilityRecord.java +++ b/core/java/android/view/accessibility/AccessibilityRecord.java @@ -90,7 +90,7 @@ public class AccessibilityRecord { int mAddedCount= UNDEFINED; int mRemovedCount = UNDEFINED; - long mSourceNodeId = AccessibilityNodeInfo.makeNodeId(UNDEFINED, UNDEFINED); + AccessibilityNodeInfo mSourceNode; int mSourceWindowId = UNDEFINED; CharSequence mClassName; @@ -135,16 +135,24 @@ public class AccessibilityRecord { */ public void setSource(View root, int virtualDescendantId) { enforceNotSealed(); - final boolean important; - if (virtualDescendantId == UNDEFINED) { - important = (root != null) ? root.isImportantForAccessibility() : true; - } else { - important = true; + boolean important = true; + mSourceWindowId = UNDEFINED; + clearSourceNode(); + if (root != null) { + if (virtualDescendantId == UNDEFINED || + virtualDescendantId == AccessibilityNodeInfo.UNDEFINED_ITEM_ID) { + important = root.isImportantForAccessibility(); + mSourceNode = root.createAccessibilityNodeInfo(); + } else { + AccessibilityNodeProvider provider = root.getAccessibilityNodeProvider(); + if (provider != null) { + mSourceNode = provider.createAccessibilityNodeInfo(virtualDescendantId); + } + } + + mSourceWindowId = root.getAccessibilityWindowId(); } setBooleanProperty(PROPERTY_IMPORTANT_FOR_ACCESSIBILITY, important); - mSourceWindowId = (root != null) ? root.getAccessibilityWindowId() : UNDEFINED; - final int rootViewId = (root != null) ? root.getAccessibilityViewId() : UNDEFINED; - mSourceNodeId = AccessibilityNodeInfo.makeNodeId(rootViewId, virtualDescendantId); } /** @@ -158,13 +166,11 @@ public class AccessibilityRecord { */ public AccessibilityNodeInfo getSource() { enforceSealed(); - if (mConnectionId == UNDEFINED || mSourceWindowId == UNDEFINED - || AccessibilityNodeInfo.getAccessibilityViewId(mSourceNodeId) == UNDEFINED) { - return null; + if (mSourceNode != null) { + return AccessibilityNodeInfo.obtain(mSourceNode); } - AccessibilityInteractionClient client = AccessibilityInteractionClient.getInstance(); - return client.findAccessibilityNodeInfoByAccessibilityId(mConnectionId, mSourceWindowId, - mSourceNodeId, false, GET_SOURCE_PREFETCH_FLAGS); + + return null; } /** @@ -619,7 +625,7 @@ public class AccessibilityRecord { * @hide */ public long getSourceNodeId() { - return mSourceNodeId; + return mSourceNode != null ? mSourceNode.getSourceNodeId() : UNDEFINED; } /** @@ -633,6 +639,9 @@ public class AccessibilityRecord { public void setConnectionId(int connectionId) { enforceNotSealed(); mConnectionId = connectionId; + if (mSourceNode != null) { + mSourceNode.setConnectionId(mConnectionId); + } } /** @@ -644,6 +653,9 @@ public class AccessibilityRecord { */ public void setSealed(boolean sealed) { mSealed = sealed; + if (mSourceNode != null) { + mSourceNode.setSealed(sealed); + } } /** @@ -782,7 +794,9 @@ public class AccessibilityRecord { mParcelableData = record.mParcelableData; mText.addAll(record.mText); mSourceWindowId = record.mSourceWindowId; - mSourceNodeId = record.mSourceNodeId; + if (record.mSourceNode != null) { + mSourceNode = AccessibilityNodeInfo.obtain(record.mSourceNode); + } mConnectionId = record.mConnectionId; } @@ -807,11 +821,18 @@ public class AccessibilityRecord { mBeforeText = null; mParcelableData = null; mText.clear(); - mSourceNodeId = AccessibilityNodeInfo.makeNodeId(UNDEFINED, UNDEFINED); + clearSourceNode(); mSourceWindowId = UNDEFINED; mConnectionId = UNDEFINED; } + private void clearSourceNode() { + if (mSourceNode != null) { + mSourceNode.recycle(); + mSourceNode = null; + } + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index a96bf71..8bf6992 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -6605,6 +6605,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te void addScrapView(View scrap, int position) { final AbsListView.LayoutParams lp = (AbsListView.LayoutParams) scrap.getLayoutParams(); if (lp == null) { + // Can't recycle, skip the scrap heap. + getSkippedScrap().add(scrap); return; } @@ -6614,6 +6616,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // should otherwise not be recycled. final int viewType = lp.viewType; if (!shouldRecycleViewType(viewType)) { + // Can't recycle, skip the scrap heap. + getSkippedScrap().add(scrap); return; } @@ -6633,22 +6637,19 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te // If the adapter has stable IDs, we can reuse the view for // the same data. if (mTransientStateViewsById == null) { - mTransientStateViewsById = new LongSparseArray<View>(); + mTransientStateViewsById = new LongSparseArray<>(); } mTransientStateViewsById.put(lp.itemId, scrap); } else if (!mDataChanged) { // If the data hasn't changed, we can reuse the views at // their old positions. if (mTransientStateViews == null) { - mTransientStateViews = new SparseArray<View>(); + mTransientStateViews = new SparseArray<>(); } mTransientStateViews.put(position, scrap); } else { // Otherwise, we'll have to remove the view and start over. - if (mSkippedScrap == null) { - mSkippedScrap = new ArrayList<View>(); - } - mSkippedScrap.add(scrap); + getSkippedScrap().add(scrap); } } else { if (mViewTypeCount == 1) { @@ -6663,6 +6664,13 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } } + private ArrayList<View> getSkippedScrap() { + if (mSkippedScrap == null) { + mSkippedScrap = new ArrayList<>(); + } + return mSkippedScrap; + } + /** * Finish the removal of any views that skipped the scrap heap. */ diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index e050bda..84e7db4 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -123,6 +123,7 @@ public class Editor { private static final float[] TEMP_POSITION = new float[2]; private static int DRAG_SHADOW_MAX_TEXT_LENGTH = 20; private static final float LINE_SLOP_MULTIPLIER_FOR_HANDLEVIEWS = 0.5f; + private static final int UNSET_X_VALUE = -1; // Tag used when the Editor maintains its own separate UndoManager. private static final String UNDO_OWNER_TAG = "Editor"; @@ -393,7 +394,7 @@ public class Editor { } mPreserveDetachedSelection = true; - hideControllers(); + hideCursorAndSpanControllers(); stopTextActionMode(); mPreserveDetachedSelection = false; mTemporaryDetach = false; @@ -605,9 +606,9 @@ public class Editor { } /** - * Hides the insertion controller and stops text selection mode, hiding the selection controller + * Hides the insertion and span controllers. */ - void hideControllers() { + void hideCursorAndSpanControllers() { hideCursorControllers(); hideSpanControllers(); } @@ -735,7 +736,7 @@ public class Editor { retOffset = getWordIteratorWithText().getPunctuationBeginning(offset); } else { // Not on a punctuation boundary, find the word start. - retOffset = getWordIteratorWithText().getBeginning(offset); + retOffset = getWordIteratorWithText().getPrevWordBeginningOnTwoWordsBoundary(offset); } if (retOffset == BreakIterator.DONE) { return offset; @@ -750,7 +751,7 @@ public class Editor { retOffset = getWordIteratorWithText().getPunctuationEnd(offset); } else { // Not on a punctuation boundary, find the word end. - retOffset = getWordIteratorWithText().getEnd(offset); + retOffset = getWordIteratorWithText().getNextWordEndOnTwoWordBoundary(offset); } if (retOffset == BreakIterator.DONE) { return offset; @@ -1104,12 +1105,12 @@ public class Editor { // ExtractEditText goes out of focus. final int selStart = mTextView.getSelectionStart(); final int selEnd = mTextView.getSelectionEnd(); - hideControllers(); + hideCursorAndSpanControllers(); stopTextActionMode(); Selection.setSelection((Spannable) mTextView.getText(), selStart, selEnd); } else { if (mTemporaryDetach) mPreserveDetachedSelection = true; - hideControllers(); + hideCursorAndSpanControllers(); stopTextActionMode(); if (mTemporaryDetach) mPreserveDetachedSelection = false; downgradeEasyCorrectionSpans(); @@ -1182,6 +1183,12 @@ public class Editor { mBlink.uncancel(); makeBlink(); } + final InputMethodManager imm = InputMethodManager.peekInstance(); + final boolean immFullScreen = (imm != null && imm.isFullscreenMode()); + if (mSelectionModifierCursorController != null && mTextView.hasSelection() + && !immFullScreen) { + mSelectionModifierCursorController.show(); + } } else { if (mBlink != null) { mBlink.cancel(); @@ -1190,7 +1197,10 @@ public class Editor { mInputContentType.enterDown = false; } // Order matters! Must be done before onParentLostFocus to rely on isShowingUp - hideControllers(); + hideCursorAndSpanControllers(); + if (mSelectionModifierCursorController != null) { + mSelectionModifierCursorController.hide(); + } if (mSuggestionsPopupWindow != null) { mSuggestionsPopupWindow.onParentLostFocus(); } @@ -1913,7 +1923,7 @@ public class Editor { void onTouchUpEvent(MotionEvent event) { boolean selectAllGotFocus = mSelectAllOnFocus && mTextView.didTouchFocusSelect(); - hideControllers(); + hideCursorAndSpanControllers(); stopTextActionMode(); CharSequence text = mTextView.getText(); if (!selectAllGotFocus && text.length() > 0) { @@ -2034,7 +2044,7 @@ public class Editor { if (mSuggestionsPopupWindow == null) { mSuggestionsPopupWindow = new SuggestionsPopupWindow(); } - hideControllers(); + hideCursorAndSpanControllers(); stopTextActionMode(); mSuggestionsPopupWindow.show(); } @@ -4058,6 +4068,10 @@ public class Editor { private boolean mInWord = false; // Difference between touch position and word boundary position. private float mTouchWordDelta; + // X value of the previous updatePosition call. + private float mPrevX; + // Indicates if the handle has moved a boundary between LTR and RTL text. + private boolean mLanguageDirectionChanged = false; public SelectionStartHandleView(Drawable drawableLtr, Drawable drawableRtl) { super(drawableLtr, drawableRtl); @@ -4118,13 +4132,56 @@ public class Editor { int end = getWordEnd(offset); int start = getWordStart(offset); - if (offset < mPreviousOffset) { + if (mPrevX == UNSET_X_VALUE) { + mPrevX = x; + } + + final int selectionStart = mTextView.getSelectionStart(); + final boolean selectionStartRtl = layout.isRtlCharAt(selectionStart); + final boolean atRtl = layout.isRtlCharAt(offset); + final boolean isLvlBoundary = layout.isLevelBoundary(offset); + boolean isExpanding; + + // We can't determine if the user is expanding or shrinking the selection if they're + // on a bi-di boundary, so until they've moved past the boundary we'll just place + // the cursor at the current position. + if (isLvlBoundary || (selectionStartRtl && !atRtl) || (!selectionStartRtl && atRtl)) { + // We're on a boundary or this is the first direction change -- just update + // to the current position. + mLanguageDirectionChanged = true; + mTouchWordDelta = 0.0f; + positionAtCursorOffset(offset, false); + return; + } else if (mLanguageDirectionChanged && !isLvlBoundary) { + // We've just moved past the boundary so update the position. After this we can + // figure out if the user is expanding or shrinking to go by word or character. + positionAtCursorOffset(offset, false); + mTouchWordDelta = 0.0f; + mLanguageDirectionChanged = false; + return; + } else { + final float xDiff = x - mPrevX; + if (atRtl) { + isExpanding = xDiff > 0 || currLine > mPrevLine; + } else { + isExpanding = xDiff < 0 || currLine < mPrevLine; + } + } + + if (isExpanding) { // User is increasing the selection. if (!mInWord || currLine < mPrevLine) { - // We're not in a word, or we're on a different line so we'll expand by - // word. First ensure the user has at least entered the next word. - int offsetToWord = Math.min((end - start) / 2, 2); - if (offset <= end - offsetToWord || currLine < mPrevLine) { + // Sometimes words can be broken across lines (Chinese, hyphenation). + // We still snap to the start of the word but we only use the letters on the + // current line to determine if the user is far enough into the word to snap. + int wordStartOnCurrLine = start; + if (layout != null && layout.getLineForOffset(start) != currLine) { + wordStartOnCurrLine = layout.getLineStart(currLine); + } + int offsetThresholdToSnap = end - ((end - wordStartOnCurrLine) / 2); + if (offset <= offsetThresholdToSnap || currLine < mPrevLine) { + // User is far enough into the word or on a different + // line so we expand by word. offset = start; } else { offset = mPreviousOffset; @@ -4173,6 +4230,7 @@ public class Editor { } positionAtCursorOffset(offset, false); } + mPrevX = x; } @Override @@ -4187,6 +4245,7 @@ public class Editor { if (event.getActionMasked() == MotionEvent.ACTION_UP) { // Reset the touch word offset when the user has lifted their finger. mTouchWordDelta = 0.0f; + mPrevX = UNSET_X_VALUE; } return superResult; } @@ -4197,6 +4256,10 @@ public class Editor { private boolean mInWord = false; // Difference between touch position and word boundary position. private float mTouchWordDelta; + // X value of the previous updatePosition call. + private float mPrevX; + // Indicates if the handle has moved a boundary between LTR and RTL text. + private boolean mLanguageDirectionChanged = false; public SelectionEndHandleView(Drawable drawableLtr, Drawable drawableRtl) { super(drawableLtr, drawableRtl); @@ -4257,13 +4320,56 @@ public class Editor { int end = getWordEnd(offset); int start = getWordStart(offset); - if (offset > mPreviousOffset) { + if (mPrevX == UNSET_X_VALUE) { + mPrevX = x; + } + + final int selectionEnd = mTextView.getSelectionEnd(); + final boolean selectionEndRtl = layout.isRtlCharAt(selectionEnd); + final boolean atRtl = layout.isRtlCharAt(offset); + final boolean isLvlBoundary = layout.isLevelBoundary(offset); + boolean isExpanding; + + // We can't determine if the user is expanding or shrinking the selection if they're + // on a bi-di boundary, so until they've moved past the boundary we'll just place + // the cursor at the current position. + if (isLvlBoundary || (selectionEndRtl && !atRtl) || (!selectionEndRtl && atRtl)) { + // We're on a boundary or this is the first direction change -- just update + // to the current position. + mLanguageDirectionChanged = true; + mTouchWordDelta = 0.0f; + positionAtCursorOffset(offset, false); + return; + } else if (mLanguageDirectionChanged && !isLvlBoundary) { + // We've just moved past the boundary so update the position. After this we can + // figure out if the user is expanding or shrinking to go by word or character. + positionAtCursorOffset(offset, false); + mTouchWordDelta = 0.0f; + mLanguageDirectionChanged = false; + return; + } else { + final float xDiff = x - mPrevX; + if (atRtl) { + isExpanding = xDiff < 0 || currLine < mPrevLine; + } else { + isExpanding = xDiff > 0 || currLine > mPrevLine; + } + } + + if (isExpanding) { // User is increasing the selection. if (!mInWord || currLine > mPrevLine) { - // We're not in a word, or we're on a different line so we'll expand by - // word. First ensure the user has at least entered the next word. - int midPoint = Math.min((end - start) / 2, 2); - if (offset >= start + midPoint || currLine > mPrevLine) { + // Sometimes words can be broken across lines (Chinese, hyphenation). + // We still snap to the end of the word but we only use the letters on the + // current line to determine if the user is far enough into the word to snap. + int wordEndOnCurrLine = end; + if (layout != null && layout.getLineForOffset(end) != currLine) { + wordEndOnCurrLine = layout.getLineEnd(currLine); + } + final int offsetThresholdToSnap = start + ((wordEndOnCurrLine - start) / 2); + if (offset >= offsetThresholdToSnap || currLine > mPrevLine) { + // User is far enough into the word or on a different + // line so we expand by word. offset = end; } else { offset = mPreviousOffset; @@ -4312,6 +4418,7 @@ public class Editor { } positionAtCursorOffset(offset, false); } + mPrevX = x; } @Override @@ -4326,6 +4433,7 @@ public class Editor { if (event.getActionMasked() == MotionEvent.ACTION_UP) { // Reset the touch word offset when the user has lifted their finger. mTouchWordDelta = 0.0f; + mPrevX = UNSET_X_VALUE; } return superResult; } @@ -4517,34 +4625,39 @@ public class Editor { final float eventY = event.getY(); switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: + if (extractedTextModeWillBeStarted()) { + // Prevent duplicating the selection handles until the mode starts. + hide(); + } else { + // Remember finger down position, to be able to start selection from there. + mMinTouchOffset = mMaxTouchOffset = mTextView.getOffsetForPosition( + eventX, eventY); - // Remember finger down position, to be able to start selection from there. - mMinTouchOffset = mMaxTouchOffset = mTextView.getOffsetForPosition( - eventX, eventY); - - // Double tap detection - if (mGestureStayedInTapRegion) { - if (mDoubleTap) { - final float deltaX = eventX - mDownPositionX; - final float deltaY = eventY - mDownPositionY; - final float distanceSquared = deltaX * deltaX + deltaY * deltaY; - - ViewConfiguration viewConfiguration = ViewConfiguration.get( - mTextView.getContext()); - int doubleTapSlop = viewConfiguration.getScaledDoubleTapSlop(); - boolean stayedInArea = distanceSquared < doubleTapSlop * doubleTapSlop; - - if (stayedInArea && isPositionOnText(eventX, eventY)) { - selectCurrentWordAndStartDrag(); - mDiscardNextActionUp = true; + // Double tap detection + if (mGestureStayedInTapRegion) { + if (mDoubleTap) { + final float deltaX = eventX - mDownPositionX; + final float deltaY = eventY - mDownPositionY; + final float distanceSquared = deltaX * deltaX + deltaY * deltaY; + + ViewConfiguration viewConfiguration = ViewConfiguration.get( + mTextView.getContext()); + int doubleTapSlop = viewConfiguration.getScaledDoubleTapSlop(); + boolean stayedInArea = + distanceSquared < doubleTapSlop * doubleTapSlop; + + if (stayedInArea && isPositionOnText(eventX, eventY)) { + selectCurrentWordAndStartDrag(); + mDiscardNextActionUp = true; + } } } - } - mDownPositionX = eventX; - mDownPositionY = eventY; - mGestureStayedInTapRegion = true; - mHaventMovedEnoughToStartDrag = true; + mDownPositionX = eventX; + mDownPositionY = eventY; + mGestureStayedInTapRegion = true; + mHaventMovedEnoughToStartDrag = true; + } break; case MotionEvent.ACTION_POINTER_DOWN: diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 11d7026..c40289e 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -660,10 +660,11 @@ class FastScroller { maxWidth = containerWidth - adjacent.getRight(); } - final int adjMaxWidth = maxWidth - marginLeft - marginRight; + final int adjMaxHeight = Math.max(0, container.height()); + final int adjMaxWidth = Math.max(0, maxWidth - marginLeft - marginRight); final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(adjMaxWidth, MeasureSpec.AT_MOST); - final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec(container.height(), - MeasureSpec.UNSPECIFIED); + final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec( + adjMaxHeight, MeasureSpec.UNSPECIFIED); view.measure(widthMeasureSpec, heightMeasureSpec); // Align to the left or right. @@ -700,10 +701,11 @@ class FastScroller { final Rect container = mContainerRect; final int containerWidth = container.width(); - final int adjMaxWidth = containerWidth - marginLeft - marginRight; + final int adjMaxHeight = Math.max(0, container.height()); + final int adjMaxWidth = Math.max(0, containerWidth - marginLeft - marginRight); final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(adjMaxWidth, MeasureSpec.AT_MOST); - final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec(container.height(), - MeasureSpec.UNSPECIFIED); + final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec( + adjMaxHeight, MeasureSpec.UNSPECIFIED); preview.measure(widthMeasureSpec, heightMeasureSpec); // Align at the vertical center, 10% from the top. @@ -766,10 +768,11 @@ class FastScroller { final View track = mTrackImage; final View thumb = mThumbImage; final Rect container = mContainerRect; - final int maxWidth = container.width(); + final int maxWidth = Math.max(0, container.width()); + final int maxHeight = Math.max(0, container.height()); final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST); - final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec(container.height(), - MeasureSpec.UNSPECIFIED); + final int heightMeasureSpec = MeasureSpec.makeSafeMeasureSpec( + maxHeight, MeasureSpec.UNSPECIFIED); track.measure(widthMeasureSpec, heightMeasureSpec); final int top; diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java index 7ca450a..280ff15 100644 --- a/core/java/android/widget/FrameLayout.java +++ b/core/java/android/widget/FrameLayout.java @@ -230,28 +230,29 @@ public class FrameLayout extends ViewGroup { if (count > 1) { for (int i = 0; i < count; i++) { final View child = mMatchParentChildren.get(i); - final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams(); - int childWidthMeasureSpec; - int childHeightMeasureSpec; - + + final int childWidthMeasureSpec; if (lp.width == LayoutParams.MATCH_PARENT) { - childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth() - - getPaddingLeftWithForeground() - getPaddingRightWithForeground() - - lp.leftMargin - lp.rightMargin, - MeasureSpec.EXACTLY); + final int width = Math.max(0, getMeasuredWidth() + - getPaddingLeftWithForeground() - getPaddingRightWithForeground() + - lp.leftMargin - lp.rightMargin); + childWidthMeasureSpec = MeasureSpec.makeMeasureSpec( + width, MeasureSpec.EXACTLY); } else { childWidthMeasureSpec = getChildMeasureSpec(widthMeasureSpec, getPaddingLeftWithForeground() + getPaddingRightWithForeground() + lp.leftMargin + lp.rightMargin, lp.width); } - + + final int childHeightMeasureSpec; if (lp.height == LayoutParams.MATCH_PARENT) { - childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(getMeasuredHeight() - - getPaddingTopWithForeground() - getPaddingBottomWithForeground() - - lp.topMargin - lp.bottomMargin, - MeasureSpec.EXACTLY); + final int height = Math.max(0, getMeasuredHeight() + - getPaddingTopWithForeground() - getPaddingBottomWithForeground() + - lp.topMargin - lp.bottomMargin); + childHeightMeasureSpec = MeasureSpec.makeMeasureSpec( + height, MeasureSpec.EXACTLY); } else { childHeightMeasureSpec = getChildMeasureSpec(heightMeasureSpec, getPaddingTopWithForeground() + getPaddingBottomWithForeground() + diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java index 056323d..4dcc242 100644 --- a/core/java/android/widget/LinearLayout.java +++ b/core/java/android/widget/LinearLayout.java @@ -359,7 +359,7 @@ public class LinearLayout extends ViewGroup { } if (hasDividerBeforeChildAt(count)) { - final View child = getVirtualChildAt(count - 1); + final View child = getLastNonGoneChild(); int bottom = 0; if (child == null) { bottom = getHeight() - getPaddingBottom() - mDividerHeight; @@ -371,6 +371,20 @@ public class LinearLayout extends ViewGroup { } } + /** + * Finds the last child that is not gone. The last child will be used as the reference for + * where the end divider should be drawn. + */ + private View getLastNonGoneChild() { + for (int i = getVirtualChildCount() - 1; i >= 0; i--) { + View child = getVirtualChildAt(i); + if (child != null && child.getVisibility() != GONE) { + return child; + } + } + return null; + } + void drawDividersHorizontal(Canvas canvas) { final int count = getVirtualChildCount(); final boolean isLayoutRtl = isLayoutRtl(); @@ -392,7 +406,7 @@ public class LinearLayout extends ViewGroup { } if (hasDividerBeforeChildAt(count)) { - final View child = getVirtualChildAt(count - 1); + final View child = getLastNonGoneChild(); int position; if (child == null) { if (isLayoutRtl) { @@ -627,21 +641,29 @@ public class LinearLayout extends ViewGroup { * @hide Pending API consideration. Currently only used internally by the system. */ protected boolean hasDividerBeforeChildAt(int childIndex) { - if (childIndex == 0) { - return (mShowDividers & SHOW_DIVIDER_BEGINNING) != 0; - } else if (childIndex == getChildCount()) { + if (childIndex == getVirtualChildCount()) { + // Check whether the end divider should draw. return (mShowDividers & SHOW_DIVIDER_END) != 0; - } else if ((mShowDividers & SHOW_DIVIDER_MIDDLE) != 0) { - boolean hasVisibleViewBefore = false; - for (int i = childIndex - 1; i >= 0; i--) { - if (getChildAt(i).getVisibility() != GONE) { - hasVisibleViewBefore = true; - break; - } + } + boolean allViewsAreGoneBefore = allViewsAreGoneBefore(childIndex); + if (allViewsAreGoneBefore) { + // This is the first view that's not gone, check if beginning divider is enabled. + return (mShowDividers & SHOW_DIVIDER_BEGINNING) != 0; + } else { + return (mShowDividers & SHOW_DIVIDER_MIDDLE) != 0; + } + } + + /** + * Checks whether all (virtual) child views before the given index are gone. + */ + private boolean allViewsAreGoneBefore(int childIndex) { + for (int i = childIndex - 1; i >= 0; i--) { + if (getVirtualChildAt(i).getVisibility() != GONE) { + return false; } - return hasVisibleViewBefore; } - return false; + return true; } /** diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index 534bfad..c6de5dd 100644 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -1127,10 +1127,19 @@ public class ListPopupWindow { break; } - // measure the hint's height to find how much more vertical space - // we need to add to the drop down's height - int widthSpec = MeasureSpec.makeMeasureSpec(mDropDownWidth, MeasureSpec.AT_MOST); - int heightSpec = MeasureSpec.UNSPECIFIED; + // Measure the hint's height to find how much more vertical + // space we need to add to the drop down's height. + final int widthSize; + final int widthMode; + if (mDropDownWidth >= 0) { + widthMode = MeasureSpec.AT_MOST; + widthSize = mDropDownWidth; + } else { + widthMode = MeasureSpec.UNSPECIFIED; + widthSize = 0; + } + final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); + final int heightSpec = MeasureSpec.UNSPECIFIED; hintView.measure(widthSpec, heightSpec); hintParams = (LinearLayout.LayoutParams) hintView.getLayoutParams(); diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java index 339038e..dac02fa 100644 --- a/core/java/android/widget/RelativeLayout.java +++ b/core/java/android/widget/RelativeLayout.java @@ -763,19 +763,19 @@ public class RelativeLayout extends ViewGroup { } // Figure out maximum size available to this view - int maxAvailable = tempEnd - tempStart; + final int maxAvailable = tempEnd - tempStart; if (childStart != VALUE_NOT_SET && childEnd != VALUE_NOT_SET) { - // Constraints fixed both edges, so child must be an exact size + // Constraints fixed both edges, so child must be an exact size. childSpecMode = MeasureSpec.EXACTLY; - childSpecSize = maxAvailable; + childSpecSize = Math.max(0, maxAvailable); } else { if (childSize >= 0) { - // Child wanted an exact size. Give as much as possible + // Child wanted an exact size. Give as much as possible. childSpecMode = MeasureSpec.EXACTLY; if (maxAvailable >= 0) { - // We have a maxmum size in this dimension. + // We have a maximum size in this dimension. childSpecSize = Math.min(maxAvailable, childSize); } else { // We can grow in this dimension. @@ -783,20 +783,19 @@ public class RelativeLayout extends ViewGroup { } } else if (childSize == LayoutParams.MATCH_PARENT) { // Child wanted to be as big as possible. Give all available - // space + // space. childSpecMode = MeasureSpec.EXACTLY; - childSpecSize = maxAvailable; + childSpecSize = Math.max(0, maxAvailable); } else if (childSize == LayoutParams.WRAP_CONTENT) { - // Child wants to wrap content. Use AT_MOST - // to communicate available space if we know - // our max size + // Child wants to wrap content. Use AT_MOST to communicate + // available space if we know our max size. if (maxAvailable >= 0) { // We have a maximum size in this dimension. childSpecMode = MeasureSpec.AT_MOST; childSpecSize = maxAvailable; } else { // We can grow in this dimension. Child can be as big as it - // wants + // wants. childSpecMode = MeasureSpec.UNSPECIFIED; childSpecSize = 0; } diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java index 49226cd..f45e750 100644 --- a/core/java/android/widget/Switch.java +++ b/core/java/android/widget/Switch.java @@ -242,6 +242,38 @@ public class Switch extends CompoundButton { com.android.internal.R.styleable.Switch_switchPadding, 0); mSplitTrack = a.getBoolean(com.android.internal.R.styleable.Switch_splitTrack, false); + ColorStateList thumbTintList = a.getColorStateList( + com.android.internal.R.styleable.Switch_thumbTint); + if (thumbTintList != null) { + mThumbTintList = thumbTintList; + mHasThumbTint = true; + } + PorterDuff.Mode thumbTintMode = Drawable.parseTintMode( + a.getInt(com.android.internal.R.styleable.Switch_thumbTintMode, -1), null); + if (mThumbTintMode != thumbTintMode) { + mThumbTintMode = thumbTintMode; + mHasThumbTintMode = true; + } + if (mHasThumbTint || mHasThumbTintMode) { + applyThumbTint(); + } + + ColorStateList trackTintList = a.getColorStateList( + com.android.internal.R.styleable.Switch_trackTint); + if (trackTintList != null) { + mTrackTintList = trackTintList; + mHasTrackTint = true; + } + PorterDuff.Mode trackTintMode = Drawable.parseTintMode( + a.getInt(com.android.internal.R.styleable.Switch_trackTintMode, -1), null); + if (mTrackTintMode != trackTintMode) { + mTrackTintMode = trackTintMode; + mHasTrackTintMode = true; + } + if (mHasTrackTint || mHasTrackTintMode) { + applyTrackTint(); + } + final int appearance = a.getResourceId( com.android.internal.R.styleable.Switch_switchTextAppearance, 0); if (appearance != 0) { diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index f733eab..7b58b5b 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -25,7 +25,7 @@ import android.annotation.StringRes; import android.annotation.StyleRes; import android.annotation.XmlRes; import android.app.Activity; -import android.app.AssistStructure; +import android.app.assist.AssistStructure; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; @@ -292,6 +292,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // New state used to change background based on whether this TextView is multiline. private static final int[] MULTILINE_STATE_SET = { R.attr.state_multiline }; + // Accessibility action to share selected text. + private static final int ACCESSIBILITY_ACTION_SHARE = 0x10000000; + // System wide time for last cut, copy or text changed action. static long sLastCutCopyOrTextChangedTime; @@ -5230,7 +5233,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // Phone specific code (there is no ExtractEditText on tablets). // ExtractEditText does not call onFocus when it is displayed, and mHasSelectionOnFocus can // not be set. Do the test here instead. - if (this instanceof ExtractEditText && hasSelection() && mEditor != null) { + if (isInExtractedMode() && hasSelection() && mEditor != null + && mEditor.mTextActionMode == null && isShown() && hasWindowFocus()) { mEditor.startSelectionActionMode(); } @@ -5848,31 +5852,43 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) { - boolean isInSelectionMode = mEditor != null && mEditor.mTextActionMode != null; - - if (isInSelectionMode) { - if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) { - KeyEvent.DispatcherState state = getKeyDispatcherState(); - if (state != null) { - state.startTracking(event, this); - } - return true; - } else if (event.getAction() == KeyEvent.ACTION_UP) { - KeyEvent.DispatcherState state = getKeyDispatcherState(); - if (state != null) { - state.handleUpEvent(event); - } - if (event.isTracking() && !event.isCanceled()) { - stopTextActionMode(); - return true; - } - } - } + // Note: If the IME is in fullscreen mode and IMS#mExtractEditText is in text action mode, + // InputMethodService#onKeyDown and InputMethodService#onKeyUp are responsible to call + // InputMethodService#mExtractEditText.maybeHandleBackInTextActionMode(event). + if (keyCode == KeyEvent.KEYCODE_BACK && handleBackInTextActionModeIfNeeded(event)) { + return true; } return super.onKeyPreIme(keyCode, event); } + /** + * @hide + */ + public boolean handleBackInTextActionModeIfNeeded(KeyEvent event) { + // Do nothing unless mEditor is in text action mode. + if (mEditor == null || mEditor.mTextActionMode == null) { + return false; + } + + if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) { + KeyEvent.DispatcherState state = getKeyDispatcherState(); + if (state != null) { + state.startTracking(event, this); + } + return true; + } else if (event.getAction() == KeyEvent.ACTION_UP) { + KeyEvent.DispatcherState state = getKeyDispatcherState(); + if (state != null) { + state.handleUpEvent(event); + } + if (event.isTracking() && !event.isCanceled()) { + stopTextActionMode(); + return true; + } + } + return false; + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { int which = doKeyDown(keyCode, event, null); @@ -6363,7 +6379,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // This would stop a possible selection mode, but no such mode is started in case // extracted mode will start. Some text is selected though, and will trigger an action mode // in the extracted view. - mEditor.hideControllers(); + mEditor.hideCursorAndSpanControllers(); stopTextActionMode(); } @@ -7561,10 +7577,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } String getSelectedText() { - if (hasSelection()) { - return String.valueOf(mText.subSequence(getSelectionStart(), getSelectionEnd())); + if (!hasSelection()) { + return null; } - return null; + + final int start = getSelectionStart(); + final int end = getSelectionEnd(); + return String.valueOf( + start > end ? mText.subSequence(end, start) : mText.subSequence(start, end)); } /** @@ -8192,7 +8212,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); if (mEditor != null && visibility != VISIBLE) { - mEditor.hideControllers(); + mEditor.hideCursorAndSpanControllers(); stopTextActionMode(); } } @@ -8832,6 +8852,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (canCut()) { info.addAction(AccessibilityNodeInfo.ACTION_CUT); } + if (canShare()) { + info.addAction(new AccessibilityNodeInfo.AccessibilityAction( + ACCESSIBILITY_ACTION_SHARE, + getResources().getString(com.android.internal.R.string.share))); + } } // Check for known input filter types. @@ -8938,6 +8963,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener ensureIterableTextForAccessibilitySelectable(); return super.performAccessibilityActionInternal(action, arguments); } + case ACCESSIBILITY_ACTION_SHARE: { + if (isFocused() && canShare()) { + if (onTextContextMenuItem(ID_SHARE)) { + return true; + } + } + } return false; default: { return super.performAccessibilityActionInternal(action, arguments); } @@ -9443,10 +9475,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public void onRtlPropertiesChanged(int layoutDirection) { super.onRtlPropertiesChanged(layoutDirection); - mTextDir = getTextDirectionHeuristic(); - - if (mLayout != null) { - checkForRelayout(); + final TextDirectionHeuristic newTextDir = getTextDirectionHeuristic(); + if (mTextDir != newTextDir) { + mTextDir = newTextDir; + if (mLayout != null) { + checkForRelayout(); + } } } @@ -9642,7 +9676,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // since we are doing so explicitlty by other means and these // controllers interact with how selection behaves. if (mEditor != null) { - mEditor.hideControllers(); + mEditor.hideCursorAndSpanControllers(); + mEditor.stopTextActionMode(); } CharSequence text = getIterableTextForAccessibility(); if (Math.min(start, end) >= 0 && Math.max(start, end) <= text.length()) { diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index fe3ab9e..e5ff51c 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -74,6 +74,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; @@ -867,6 +868,16 @@ public class ResolverActivity extends Activity { } } + /** + * Check a simple match for the component of two ResolveInfos. + */ + static boolean resolveInfoMatch(ResolveInfo lhs, ResolveInfo rhs) { + return lhs == null ? rhs == null + : lhs.activityInfo == null ? rhs.activityInfo == null + : Objects.equals(lhs.activityInfo.name, rhs.activityInfo.name) + && Objects.equals(lhs.activityInfo.packageName, rhs.activityInfo.packageName); + } + final class DisplayResolveInfo implements TargetInfo { private final ResolveInfo mResolveInfo; private final CharSequence mDisplayLabel; @@ -1462,7 +1473,7 @@ public class ResolverActivity extends Activity { public boolean hasResolvedTarget(ResolveInfo info) { for (int i = 0, N = mDisplayList.size(); i < N; i++) { - if (info.equals(mDisplayList.get(i).getResolveInfo())) { + if (resolveInfoMatch(info, mDisplayList.get(i).getResolveInfo())) { return true; } } diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java index e4ccb4b..b78eca7 100644 --- a/core/java/com/android/internal/logging/MetricsLogger.java +++ b/core/java/com/android/internal/logging/MetricsLogger.java @@ -37,6 +37,9 @@ public class MetricsLogger implements MetricsConstants { public static final int ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET = 215; public static final int ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET = 216; public static final int ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET = 217; + public static final int ACTION_BRIGHTNESS = 218; + public static final int ACTION_BRIGHTNESS_AUTO = 219; + public static final int BRIGHTNESS_DIALOG = 220; // Temporary constants go here, to await migration to MetricsConstants. public static void visible(Context context, int category) throws IllegalArgumentException { diff --git a/core/java/com/android/internal/os/InstallerConnection.java b/core/java/com/android/internal/os/InstallerConnection.java index 671bf24..dcc6a5e 100644 --- a/core/java/com/android/internal/os/InstallerConnection.java +++ b/core/java/com/android/internal/os/InstallerConnection.java @@ -18,6 +18,7 @@ package com.android.internal.os; import android.net.LocalSocket; import android.net.LocalSocketAddress; +import android.os.SystemClock; import android.util.Slog; import libcore.io.IoUtils; import libcore.io.Streams; @@ -206,4 +207,14 @@ public class InstallerConnection { } return true; } + + public void waitForConnection() { + for (;;) { + if (execute("ping") >= 0) { + return; + } + Slog.w(TAG, "installd not ready"); + SystemClock.sleep(1000); + } + } } diff --git a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java index 62926d1..41efd2c 100644 --- a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java +++ b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java @@ -51,7 +51,7 @@ public class KernelUidCpuTimeReader { private SparseLongArray mLastUserTimeUs = new SparseLongArray(); private SparseLongArray mLastSystemTimeUs = new SparseLongArray(); - private long mLastTimeRead = 0; + private long mLastTimeReadUs = 0; /** * Reads the proc file, calling into the callback with a delta of time for each UID. @@ -60,7 +60,7 @@ public class KernelUidCpuTimeReader { * a fresh delta. */ public void readDelta(@Nullable Callback callback) { - long now = SystemClock.elapsedRealtime(); + long nowUs = SystemClock.elapsedRealtime() * 1000; try (BufferedReader reader = new BufferedReader(new FileReader(sProcFile))) { TextUtils.SimpleStringSplitter splitter = new TextUtils.SimpleStringSplitter(' '); String line; @@ -79,12 +79,12 @@ public class KernelUidCpuTimeReader { userTimeDeltaUs -= mLastUserTimeUs.valueAt(index); systemTimeDeltaUs -= mLastSystemTimeUs.valueAt(index); - final long timeDiffMs = (now - mLastTimeRead) * 1000; + final long timeDiffUs = nowUs - mLastTimeReadUs; if (userTimeDeltaUs < 0 || systemTimeDeltaUs < 0 || - userTimeDeltaUs > timeDiffMs || systemTimeDeltaUs > timeDiffMs ) { + userTimeDeltaUs > timeDiffUs || systemTimeDeltaUs > timeDiffUs) { StringBuilder sb = new StringBuilder("Malformed cpu data!\n"); sb.append("Time between reads: "); - TimeUtils.formatDuration(timeDiffMs, sb); + TimeUtils.formatDuration(timeDiffUs / 1000, sb); sb.append("ms\n"); sb.append("Previous times: u="); TimeUtils.formatDuration(mLastUserTimeUs.valueAt(index) / 1000, sb); @@ -118,7 +118,7 @@ public class KernelUidCpuTimeReader { } catch (IOException e) { Slog.e(TAG, "Failed to read uid_cputime", e); } - mLastTimeRead = now; + mLastTimeReadUs = nowUs; } /** diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java index c97fdf4..197004c 100644 --- a/core/java/com/android/internal/os/Zygote.java +++ b/core/java/com/android/internal/os/Zygote.java @@ -46,8 +46,12 @@ public final class Zygote { /** No external storage should be mounted. */ public static final int MOUNT_EXTERNAL_NONE = 0; - /** Default user-specific external storage should be mounted. */ + /** Default external storage should be mounted. */ public static final int MOUNT_EXTERNAL_DEFAULT = 1; + /** Read-only external storage should be mounted. */ + public static final int MOUNT_EXTERNAL_READ = 2; + /** Read-write external storage should be mounted. */ + public static final int MOUNT_EXTERNAL_WRITE = 3; private static final ZygoteHooks VM_HOOKS = new ZygoteHooks(); diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java index fa870b9..3e86fac 100644 --- a/core/java/com/android/internal/os/ZygoteConnection.java +++ b/core/java/com/android/internal/os/ZygoteConnection.java @@ -519,6 +519,10 @@ class ZygoteConnection { niceName = arg.substring(arg.indexOf('=') + 1); } else if (arg.equals("--mount-external-default")) { mountExternal = Zygote.MOUNT_EXTERNAL_DEFAULT; + } else if (arg.equals("--mount-external-read")) { + mountExternal = Zygote.MOUNT_EXTERNAL_READ; + } else if (arg.equals("--mount-external-write")) { + mountExternal = Zygote.MOUNT_EXTERNAL_WRITE; } else if (arg.equals("--query-abi-list")) { abiListQuery = true; } else if (arg.startsWith("--instruction-set=")) { diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index 971da77..06919e1 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -468,6 +468,7 @@ public class ZygoteInit { private static void performSystemServerDexOpt(String classPath) { final String[] classPathElements = classPath.split(":"); final InstallerConnection installer = new InstallerConnection(); + installer.waitForConnection(); final String instructionSet = VMRuntime.getRuntime().vmInstructionSet(); try { diff --git a/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java b/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java index 1d0511f..0a01ae9 100644 --- a/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java +++ b/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java @@ -17,6 +17,10 @@ import com.android.internal.R; /** * Takes care of unmounting and formatting external storage. + * + * @deprecated Please use {@link Intent#ACTION_MASTER_CLEAR} broadcast with extra + * {@link Intent#EXTRA_WIPE_EXTERNAL_STORAGE} to wipe and factory reset, or call + * {@link StorageManager#wipeAdoptableDisks} directly to format external storages. */ public class ExternalStorageFormatter extends Service { static final String TAG = "ExternalStorageFormatter"; diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 15ed5bd..0abd200 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -23,6 +23,8 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.WindowManager.LayoutParams.*; +import android.animation.Animator; +import android.animation.ObjectAnimator; import android.app.ActivityManagerNative; import android.app.SearchManager; import android.os.UserHandle; @@ -2216,6 +2218,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { private OnPreDrawListener mFloatingToolbarPreDrawListener; private View mFloatingActionModeOriginatingView; private FloatingToolbar mFloatingToolbar; + private ObjectAnimator mFadeAnim; // View added at runtime to draw under the status bar area private View mStatusGuard; @@ -3345,6 +3348,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } private ActionMode createStandaloneActionMode(ActionMode.Callback callback) { + endOnGoingFadeAnimation(); cleanupPrimaryActionMode(); if (mPrimaryActionModeView == null) { if (isFloating()) { @@ -3384,6 +3388,32 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mPrimaryActionModePopup.showAtLocation( mPrimaryActionModeView.getApplicationWindowToken(), Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0); + endOnGoingFadeAnimation(); + mFadeAnim = ObjectAnimator.ofFloat(mPrimaryActionModeView, View.ALPHA, + 0f, 1f); + mFadeAnim.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + mPrimaryActionModeView.setVisibility(VISIBLE); + } + + @Override + public void onAnimationEnd(Animator animation) { + mPrimaryActionModeView.setAlpha(1f); + mFadeAnim = null; + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + mFadeAnim.start(); } }; } else { @@ -3404,13 +3434,44 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return null; } + private void endOnGoingFadeAnimation() { + if (mFadeAnim != null) { + mFadeAnim.end(); + } + } + private void setHandledPrimaryActionMode(ActionMode mode) { + endOnGoingFadeAnimation(); mPrimaryActionMode = mode; mPrimaryActionMode.invalidate(); mPrimaryActionModeView.initForMode(mPrimaryActionMode); - mPrimaryActionModeView.setVisibility(View.VISIBLE); if (mPrimaryActionModePopup != null) { post(mShowPrimaryActionModePopup); + } else { + mFadeAnim = ObjectAnimator.ofFloat(mPrimaryActionModeView, View.ALPHA, 0f, 1f); + mFadeAnim.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + mPrimaryActionModeView.setVisibility(View.VISIBLE); + } + + @Override + public void onAnimationEnd(Animator animation) { + mPrimaryActionModeView.setAlpha(1f); + mFadeAnim = null; + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + mFadeAnim.start(); } mPrimaryActionModeView.sendAccessibilityEvent( AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); @@ -3473,13 +3534,40 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (mode == mPrimaryActionMode) { if (mPrimaryActionModePopup != null) { removeCallbacks(mShowPrimaryActionModePopup); - mPrimaryActionModePopup.dismiss(); - } else if (mPrimaryActionModeView != null) { - mPrimaryActionModeView.setVisibility(GONE); } if (mPrimaryActionModeView != null) { - mPrimaryActionModeView.removeAllViews(); + endOnGoingFadeAnimation(); + mFadeAnim = ObjectAnimator.ofFloat(mPrimaryActionModeView, View.ALPHA, + 1f, 0f); + mFadeAnim.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + mPrimaryActionModeView.setVisibility(GONE); + if (mPrimaryActionModePopup != null) { + mPrimaryActionModePopup.dismiss(); + } + mPrimaryActionModeView.removeAllViews(); + mFadeAnim = null; + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + mFadeAnim.start(); } + mPrimaryActionMode = null; } else if (mode == mFloatingActionMode) { cleanupFloatingActionModeViews(); diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index 663c838..aea1585 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -19,6 +19,7 @@ package com.android.internal.statusbar; import com.android.internal.statusbar.IStatusBar; import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.statusbar.StatusBarIconList; +import com.android.internal.statusbar.NotificationVisibility; import android.service.notification.StatusBarNotification; /** @hide */ @@ -53,8 +54,8 @@ interface IStatusBarService int uid, int initialPid, String message, int userId); void onClearAllNotifications(int userId); void onNotificationClear(String pkg, String tag, int id, int userId); - void onNotificationVisibilityChanged( - in String[] newlyVisibleKeys, in String[] noLongerVisibleKeys); + void onNotificationVisibilityChanged( in NotificationVisibility[] newlyVisibleKeys, + in NotificationVisibility[] noLongerVisibleKeys); void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded); void setSystemUiVisibility(int vis, int mask, String cause); void setWindowState(int window, int state); diff --git a/core/java/com/android/internal/statusbar/NotificationVisibility.aidl b/core/java/com/android/internal/statusbar/NotificationVisibility.aidl new file mode 100644 index 0000000..c067551 --- /dev/null +++ b/core/java/com/android/internal/statusbar/NotificationVisibility.aidl @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2015, 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.internal.statusbar; + +parcelable NotificationVisibility; + diff --git a/core/java/com/android/internal/statusbar/NotificationVisibility.java b/core/java/com/android/internal/statusbar/NotificationVisibility.java new file mode 100644 index 0000000..2139ad0 --- /dev/null +++ b/core/java/com/android/internal/statusbar/NotificationVisibility.java @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2015 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.internal.statusbar; + +import android.os.Message; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.Log; + +import java.util.ArrayDeque; +import java.util.Collection; + +public class NotificationVisibility implements Parcelable { + private static final String TAG = "NoViz"; + private static final int MAX_POOL_SIZE = 25; + private static ArrayDeque<NotificationVisibility> sPool = new ArrayDeque<>(MAX_POOL_SIZE); + private static int sNexrId = 0; + + public String key; + public int rank; + public boolean visible = true; + /*package*/ int id; + + private NotificationVisibility() { + id = sNexrId++; + } + + private NotificationVisibility(String key, int rank, boolean visibile) { + this(); + this.key = key; + this.rank = rank; + this.visible = visibile; + } + + @Override + public String toString() { + return "NotificationVisibility(id=" + id + + "key=" + key + + " rank=" + rank + + (visible?" visible":"") + + " )"; + } + + @Override + public NotificationVisibility clone() { + return obtain(this.key, this.rank, this.visible); + } + + @Override + public int hashCode() { + // allow lookups by key, which _should_ never be null. + return key == null ? 0 : key.hashCode(); + } + + @Override + public boolean equals(Object that) { + // allow lookups by key, which _should_ never be null. + if (that instanceof NotificationVisibility) { + NotificationVisibility thatViz = (NotificationVisibility) that; + return (key == null && thatViz.key == null) || key.equals(thatViz.key); + } + return false; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeString(this.key); + out.writeInt(this.rank); + out.writeInt(this.visible ? 1 : 0); + } + + private void readFromParcel(Parcel in) { + this.key = in.readString(); + this.rank = in.readInt(); + this.visible = in.readInt() != 0; + } + + /** + * Return a new NotificationVisibility instance from the global pool. Allows us to + * avoid allocating new objects in many cases. + */ + public static NotificationVisibility obtain(String key, int rank, boolean visible) { + NotificationVisibility vo = obtain(); + vo.key = key; + vo.rank = rank; + vo.visible = visible; + return vo; + } + + private static NotificationVisibility obtain(Parcel in) { + NotificationVisibility vo = obtain(); + vo.readFromParcel(in); + return vo; + } + + private static NotificationVisibility obtain() { + synchronized (sPool) { + if (!sPool.isEmpty()) { + return sPool.poll(); + } + } + return new NotificationVisibility(); + } + + /** + * Return a NotificationVisibility instance to the global pool. + * <p> + * You MUST NOT touch the NotificationVisibility after calling this function because it has + * effectively been freed. + * </p> + */ + public void recycle() { + if (key == null) { + // do nothing on multiple recycles + return; + } + key = null; + if (sPool.size() < MAX_POOL_SIZE) { + synchronized (sPool) { + sPool.offer(this); + } + } + } + + /** + * Parcelable.Creator that instantiates NotificationVisibility objects + */ + public static final Parcelable.Creator<NotificationVisibility> CREATOR + = new Parcelable.Creator<NotificationVisibility>() + { + public NotificationVisibility createFromParcel(Parcel parcel) + { + return obtain(parcel); + } + + public NotificationVisibility[] newArray(int size) + { + return new NotificationVisibility[size]; + } + }; +} + diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java index 863506b..c869722 100644 --- a/core/java/com/android/internal/view/FloatingActionMode.java +++ b/core/java/com/android/internal/view/FloatingActionMode.java @@ -30,6 +30,8 @@ import com.android.internal.util.Preconditions; import com.android.internal.view.menu.MenuBuilder; import com.android.internal.widget.FloatingToolbar; +import java.util.Arrays; + public class FloatingActionMode extends ActionMode { private static final int MAX_HIDE_DURATION = 3000; @@ -42,7 +44,9 @@ public class FloatingActionMode extends ActionMode { private final Rect mContentRectOnWindow; private final Rect mPreviousContentRectOnWindow; private final int[] mViewPosition; + private final int[] mPreviousViewPosition; private final Rect mViewRect; + private final Rect mPreviousViewRect; private final Rect mScreenRect; private final View mOriginatingView; private final int mBottomAllowance; @@ -75,7 +79,9 @@ public class FloatingActionMode extends ActionMode { mContentRectOnWindow = new Rect(); mPreviousContentRectOnWindow = new Rect(); mViewPosition = new int[2]; + mPreviousViewPosition = new int[2]; mViewRect = new Rect(); + mPreviousViewRect = new Rect(); mScreenRect = new Rect(); mOriginatingView = Preconditions.checkNotNull(originatingView); mOriginatingView.getLocationInWindow(mViewPosition); @@ -129,9 +135,17 @@ public class FloatingActionMode extends ActionMode { public void updateViewLocationInWindow() { checkToolbarInitialized(); + mOriginatingView.getLocationInWindow(mViewPosition); mOriginatingView.getGlobalVisibleRect(mViewRect); - repositionToolbar(); + + if (!Arrays.equals(mViewPosition, mPreviousViewPosition) + || !mViewRect.equals(mPreviousViewRect)) { + repositionToolbar(); + mPreviousViewPosition[0] = mViewPosition[0]; + mPreviousViewPosition[1] = mViewPosition[1]; + mPreviousViewRect.set(mViewRect); + } } private void repositionToolbar() { diff --git a/core/java/com/android/internal/widget/FloatingToolbar.java b/core/java/com/android/internal/widget/FloatingToolbar.java index 523663c..163b8ce 100644 --- a/core/java/com/android/internal/widget/FloatingToolbar.java +++ b/core/java/com/android/internal/widget/FloatingToolbar.java @@ -23,6 +23,7 @@ import android.animation.ObjectAnimator; import android.content.ComponentCallbacks; import android.content.Context; import android.content.res.Configuration; +import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; @@ -30,6 +31,7 @@ import android.graphics.Region; import android.graphics.drawable.ColorDrawable; import android.text.TextUtils; import android.util.Size; +import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; @@ -83,6 +85,7 @@ public final class FloatingToolbar { private final FloatingToolbarPopup mPopup; private final Rect mContentRect = new Rect(); + private final Rect mPreviousContentRect = new Rect(); private Menu mMenu; private List<Object> mShowingMenuItems = new ArrayList<Object>(); @@ -108,8 +111,10 @@ public final class FloatingToolbar { * Initializes a floating toolbar. */ public FloatingToolbar(Context context, Window window) { - mContext = Preconditions.checkNotNull(context); - mPopup = new FloatingToolbarPopup(window.getDecorView()); + Preconditions.checkNotNull(context); + Preconditions.checkNotNull(window); + mContext = applyDefaultTheme(context); + mPopup = new FloatingToolbarPopup(mContext, window.getDecorView()); } /** @@ -174,11 +179,13 @@ public final class FloatingToolbar { mPopup.layoutMenuItems(menuItems, mMenuItemClickListener, mSuggestedWidth); mShowingMenuItems = getShowingMenuItemsReferences(menuItems); } - mPopup.updateCoordinates(mContentRect); if (!mPopup.isShowing()) { mPopup.show(mContentRect); + } else if (!mPreviousContentRect.equals(mContentRect)) { + mPopup.updateCoordinates(mContentRect); } mWidthChanged = false; + mPreviousContentRect.set(mContentRect); return this; } @@ -276,6 +283,7 @@ public final class FloatingToolbar { public static final int OVERFLOW_DIRECTION_UP = 0; public static final int OVERFLOW_DIRECTION_DOWN = 1; + private final Context mContext; private final View mParent; private final PopupWindow mPopupWindow; private final ViewGroup mContentContainer; @@ -313,24 +321,8 @@ public final class FloatingToolbar { }; private final AnimatorSet mDismissAnimation; private final AnimatorSet mHideAnimation; - private final AnimationSet mOpenOverflowAnimation = new AnimationSet(true) { - @Override - public void cancel() { - if (hasStarted() && !hasEnded()) { - super.cancel(); - setOverflowPanelAsContent(); - } - } - }; - private final AnimationSet mCloseOverflowAnimation = new AnimationSet(true) { - @Override - public void cancel() { - if (hasStarted() && !hasEnded()) { - super.cancel(); - setMainPanelAsContent(); - } - } - }; + private final AnimationSet mOpenOverflowAnimation = new AnimationSet(true); + private final AnimationSet mCloseOverflowAnimation = new AnimationSet(true); private final Runnable mOpenOverflow = new Runnable() { @Override @@ -375,9 +367,10 @@ public final class FloatingToolbar { * @param parent A parent view to get the {@link android.view.View#getWindowToken()} token * from. */ - public FloatingToolbarPopup(View parent) { + public FloatingToolbarPopup(Context context, View parent) { mParent = Preconditions.checkNotNull(parent); - mContentContainer = createContentContainer(parent.getContext()); + mContext = Preconditions.checkNotNull(context); + mContentContainer = createContentContainer(context); mPopupWindow = createPopupWindow(mContentContainer); mDismissAnimation = createExitAnimation( mContentContainer, @@ -415,7 +408,7 @@ public final class FloatingToolbar { mContentContainer.removeAllViews(); if (mMainPanel == null) { - mMainPanel = new FloatingToolbarMainPanel(mParent.getContext(), mOpenOverflow); + mMainPanel = new FloatingToolbarMainPanel(mContext, mOpenOverflow); } List<MenuItem> overflowMenuItems = mMainPanel.layoutMenuItems(menuItems, getToolbarWidth(suggestedWidth)); @@ -423,7 +416,7 @@ public final class FloatingToolbar { if (!overflowMenuItems.isEmpty()) { if (mOverflowPanel == null) { mOverflowPanel = - new FloatingToolbarOverflowPanel(mParent.getContext(), mCloseOverflow); + new FloatingToolbarOverflowPanel(mContext, mCloseOverflow); } mOverflowPanel.setMenuItems(overflowMenuItems); mOverflowPanel.setOnMenuItemClickListener(menuItemClickListener); @@ -540,7 +533,7 @@ public final class FloatingToolbar { * Returns the context this popup is running in. */ public Context getContext() { - return mContentContainer.getContext(); + return mContext; } private void refreshCoordinatesAndOverflowDirection(Rect contentRect) { @@ -562,7 +555,7 @@ public final class FloatingToolbar { } else if (availableHeightBelowContent >= getToolbarHeightWithVerticalMargin()) { // There is enough space at the bottom of the content. y = contentRect.bottom; - } else if (availableHeightBelowContent >= getEstimatedToolbarHeight(getContext())) { + } else if (availableHeightBelowContent >= getEstimatedToolbarHeight(mContext)) { // Just enough space to fit the toolbar with no vertical margins. y = contentRect.bottom - mMarginVertical; } else { @@ -621,7 +614,7 @@ public final class FloatingToolbar { } private int getToolbarHeightWithVerticalMargin() { - return getEstimatedToolbarHeight(mParent.getContext()) + mMarginVertical * 2; + return getEstimatedToolbarHeight(mContext) + mMarginVertical * 2; } /** @@ -651,8 +644,24 @@ public final class FloatingToolbar { } private void cancelOverflowAnimations() { - mOpenOverflowAnimation.cancel(); - mCloseOverflowAnimation.cancel(); + if (mOpenOverflowAnimation.hasStarted() + && !mOpenOverflowAnimation.hasEnded()) { + // Remove the animation listener, stop the animation, + // then trigger the lister explicitly so it is not posted + // to the message queue. + mOpenOverflowAnimation.setAnimationListener(null); + mContentContainer.clearAnimation(); + mOnOverflowOpened.onAnimationEnd(null); + } + if (mCloseOverflowAnimation.hasStarted() + && !mCloseOverflowAnimation.hasEnded()) { + // Remove the animation listener, stop the animation, + // then trigger the lister explicitly so it is not posted + // to the message queue. + mCloseOverflowAnimation.setAnimationListener(null); + mContentContainer.clearAnimation(); + mOnOverflowClosed.onAnimationEnd(null); + } } /** @@ -1477,6 +1486,17 @@ public final class FloatingToolbar { return animation; } + /** + * Returns a re-themed context with controlled look and feel for views. + */ + private static Context applyDefaultTheme(Context originalContext) { + TypedArray a = originalContext.obtainStyledAttributes(new int[]{R.attr.isLightTheme}); + boolean isLightTheme = a.getBoolean(0, true); + int themeId = isLightTheme ? R.style.Theme_Material_Light : R.style.Theme_Material; + a.recycle(); + return new ContextThemeWrapper(originalContext, themeId); + } + private static int getEstimatedToolbarHeight(Context context) { return context.getResources().getDimensionPixelSize(R.dimen.floating_toolbar_height); } @@ -1486,18 +1506,6 @@ public final class FloatingToolbar { .getDimensionPixelSize(R.dimen.floating_toolbar_menu_button_minimum_width); } - private static int getAdjustedToolbarWidth(Context context, int width) { - int maximumWidth = getScreenWidth(context) - 2 * context.getResources() - .getDimensionPixelSize(R.dimen.floating_toolbar_horizontal_margin); - - if (width <= 0 || width > maximumWidth) { - int defaultWidth = context.getResources() - .getDimensionPixelSize(R.dimen.floating_toolbar_preferred_width); - width = Math.min(defaultWidth, maximumWidth); - } - return width; - } - /** * Returns the device's screen width. */ diff --git a/core/jni/Android.mk b/core/jni/Android.mk index faf926c..5e5450e 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -16,6 +16,10 @@ else LOCAL_CFLAGS += -DPACKED="" endif +ifneq ($(ENABLE_CPUSETS),) + LOCAL_CFLAGS += -DENABLE_CPUSETS +endif + LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES LOCAL_CFLAGS += -DU_USING_ICU_NAMESPACE=0 diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 2c35a8b..bffbab7 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -588,6 +588,8 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) char lockProfThresholdBuf[sizeof("-Xlockprofthreshold:")-1 + PROPERTY_VALUE_MAX]; char nativeBridgeLibrary[sizeof("-XX:NativeBridge=") + PROPERTY_VALUE_MAX]; char cpuAbiListBuf[sizeof("--cpu-abilist=") + PROPERTY_VALUE_MAX]; + char methodTraceFileBuf[sizeof("-Xmethod-trace-file:") + PROPERTY_VALUE_MAX]; + char methodTraceFileSizeBuf[sizeof("-Xmethod-trace-file-size:") + PROPERTY_VALUE_MAX]; bool checkJni = false; property_get("dalvik.vm.checkjni", propBuf, ""); @@ -848,6 +850,24 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) profileMaxStackDepth, "-Xprofile-max-stack-depth:"); + /* + * Tracing options. + */ + property_get("dalvik.vm.method-trace", propBuf, "false"); + if (strcmp(propBuf, "true") == 0) { + addOption("-Xmethod-trace"); + parseRuntimeOption("dalvik.vm.method-trace-file", + methodTraceFileBuf, + "-Xmethod-trace-file:"); + parseRuntimeOption("dalvik.vm.method-trace-file-siz", + methodTraceFileSizeBuf, + "-Xmethod-trace-file-size:"); + property_get("dalvik.vm.method-trace-stream", propBuf, "false"); + if (strcmp(propBuf, "true") == 0) { + addOption("-Xmethod-trace-stream"); + } + } + // Native bridge library. "0" means that native bridge is disabled. property_get("ro.dalvik.vm.native.bridge", propBuf, ""); if (propBuf[0] == '\0') { diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp index d14fc0f..b9fd65f 100644 --- a/core/jni/android/graphics/Paint.cpp +++ b/core/jni/android/graphics/Paint.cpp @@ -606,7 +606,9 @@ public: Layout layout; TypefaceImpl* typeface = getNativeTypeface(env, jpaint); - MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, textArray, start, count, textLength); + // Only the substring is used for measurement, so no additional context is passed in. This + // behavior is consistent between char[] and String specializations. + MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, textArray + start, 0, count, count); width = layout.getAdvance(); env->ReleaseStringChars(text, textArray); diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp index 9b5fb3a..2116da0 100644 --- a/core/jni/android_graphics_Canvas.cpp +++ b/core/jni/android_graphics_Canvas.cpp @@ -175,24 +175,24 @@ static jboolean quickRejectPath(JNIEnv* env, jobject, jlong canvasHandle, jlong static jboolean clipRect(JNIEnv*, jobject, jlong canvasHandle, jfloat l, jfloat t, jfloat r, jfloat b, jint opHandle) { SkRegion::Op op = static_cast<SkRegion::Op>(opHandle); - bool emptyClip = get_canvas(canvasHandle)->clipRect(l, t, r, b, op); - return emptyClip ? JNI_FALSE : JNI_TRUE; + bool nonEmptyClip = get_canvas(canvasHandle)->clipRect(l, t, r, b, op); + return nonEmptyClip ? JNI_TRUE : JNI_FALSE; } static jboolean clipPath(JNIEnv* env, jobject, jlong canvasHandle, jlong pathHandle, jint opHandle) { SkPath* path = reinterpret_cast<SkPath*>(pathHandle); SkRegion::Op op = static_cast<SkRegion::Op>(opHandle); - bool emptyClip = get_canvas(canvasHandle)->clipPath(path, op); - return emptyClip ? JNI_FALSE : JNI_TRUE; + bool nonEmptyClip = get_canvas(canvasHandle)->clipPath(path, op); + return nonEmptyClip ? JNI_TRUE : JNI_FALSE; } static jboolean clipRegion(JNIEnv* env, jobject, jlong canvasHandle, jlong deviceRgnHandle, jint opHandle) { SkRegion* deviceRgn = reinterpret_cast<SkRegion*>(deviceRgnHandle); SkRegion::Op op = static_cast<SkRegion::Op>(opHandle); - bool emptyClip = get_canvas(canvasHandle)->clipRegion(deviceRgn, op); - return emptyClip ? JNI_FALSE : JNI_TRUE; + bool nonEmptyClip = get_canvas(canvasHandle)->clipRegion(deviceRgn, op); + return nonEmptyClip ? JNI_TRUE : JNI_FALSE; } static void drawColor(JNIEnv* env, jobject, jlong canvasHandle, jint color, jint modeHandle) { diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp index f5f8b1f..c9d609c 100644 --- a/core/jni/android_hardware_SensorManager.cpp +++ b/core/jni/android_hardware_SensorManager.cpp @@ -257,6 +257,8 @@ private: case SENSOR_TYPE_MAGNETIC_FIELD: case SENSOR_TYPE_ACCELEROMETER: case SENSOR_TYPE_GYROSCOPE: + case SENSOR_TYPE_GRAVITY: + case SENSOR_TYPE_LINEAR_ACCELERATION: status = buffer[i].vector.status; break; case SENSOR_TYPE_HEART_RATE: diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp index 7d8d151..995d39f 100644 --- a/core/jni/android_hardware_camera2_DngCreator.cpp +++ b/core/jni/android_hardware_camera2_DngCreator.cpp @@ -18,6 +18,8 @@ #define LOG_TAG "DngCreator_JNI" #include <inttypes.h> #include <string.h> +#include <algorithm> +#include <memory> #include <utils/Log.h> #include <utils/Errors.h> @@ -25,7 +27,6 @@ #include <utils/RefBase.h> #include <utils/Vector.h> #include <cutils/properties.h> - #include <system/camera_metadata.h> #include <camera/CameraMetadata.h> #include <img_utils/DngUtils.h> @@ -37,15 +38,6 @@ #include <img_utils/StripSource.h> #include "core_jni_helpers.h" -#include <utils/Log.h> -#include <utils/Errors.h> -#include <utils/StrongPointer.h> -#include <utils/RefBase.h> -#include <utils/Vector.h> -#include <cutils/properties.h> - -#include <string.h> -#include <inttypes.h> #include "android_runtime/AndroidRuntime.h" #include "android_runtime/android_hardware_camera2_CameraMetadata.h" @@ -63,6 +55,14 @@ using namespace img_utils; return; \ } +#define BAIL_IF_INVALID_R(expr, jnienv, tagId, writer) \ + if ((expr) != OK) { \ + jniThrowExceptionFmt(jnienv, "java/lang/IllegalArgumentException", \ + "Invalid metadata for tag %s (%x)", (writer)->getTagName(tagId), (tagId)); \ + return -1; \ + } + + #define BAIL_IF_EMPTY(entry, jnienv, tagId, writer) \ if (entry.count == 0) { \ jniThrowExceptionFmt(jnienv, "java/lang/IllegalArgumentException", \ @@ -111,11 +111,14 @@ enum { class NativeContext : public LightRefBase<NativeContext> { public: - NativeContext(); + NativeContext(const CameraMetadata& characteristics, const CameraMetadata& result); virtual ~NativeContext(); TiffWriter* getWriter(); + std::shared_ptr<const CameraMetadata> getCharacteristics() const; + std::shared_ptr<const CameraMetadata> getResult() const; + uint32_t getThumbnailWidth(); uint32_t getThumbnailHeight(); const uint8_t* getThumbnail(); @@ -125,11 +128,16 @@ public: private: Vector<uint8_t> mCurrentThumbnail; TiffWriter mWriter; + std::shared_ptr<CameraMetadata> mCharacteristics; + std::shared_ptr<CameraMetadata> mResult; uint32_t mThumbnailWidth; uint32_t mThumbnailHeight; }; -NativeContext::NativeContext() : mThumbnailWidth(0), mThumbnailHeight(0) {} +NativeContext::NativeContext(const CameraMetadata& characteristics, const CameraMetadata& result) : + mCharacteristics(std::make_shared<CameraMetadata>(characteristics)), + mResult(std::make_shared<CameraMetadata>(result)), mThumbnailWidth(0), + mThumbnailHeight(0) {} NativeContext::~NativeContext() {} @@ -137,6 +145,14 @@ TiffWriter* NativeContext::getWriter() { return &mWriter; } +std::shared_ptr<const CameraMetadata> NativeContext::getCharacteristics() const { + return mCharacteristics; +} + +std::shared_ptr<const CameraMetadata> NativeContext::getResult() const { + return mResult; +} + uint32_t NativeContext::getThumbnailWidth() { return mThumbnailWidth; } @@ -626,25 +642,92 @@ uint32_t DirectStripSource::getIfd() const { // End of DirectStripSource // ---------------------------------------------------------------------------- -static bool validateDngHeader(JNIEnv* env, TiffWriter* writer, jint width, jint height) { - bool hasThumbnail = writer->hasIfd(TIFF_IFD_SUB1); +/** + * Given a buffer crop rectangle relative to the pixel array size, and the active array crop + * rectangle for the camera characteristics, set the default crop rectangle in the TiffWriter + * relative to the buffer crop rectangle origin. + */ +static status_t calculateAndSetCrop(JNIEnv* env, const CameraMetadata& characteristics, + uint32_t bufXMin, uint32_t bufYMin, uint32_t bufWidth, uint32_t bufHeight, + TiffWriter* writer) { + + camera_metadata_ro_entry entry = + characteristics.find(ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE); + uint32_t xmin = static_cast<uint32_t>(entry.data.i32[0]); + uint32_t ymin = static_cast<uint32_t>(entry.data.i32[1]); + uint32_t width = static_cast<uint32_t>(entry.data.i32[2]); + uint32_t height = static_cast<uint32_t>(entry.data.i32[3]); + + uint32_t aLeft = xmin; + uint32_t aTop = ymin; + uint32_t aRight = xmin + width; + uint32_t aBottom = ymin + height; + + const uint32_t margin = 8; // Default margin recommended by Adobe for interpolation. + + uint32_t bLeft = bufXMin + margin; + uint32_t bTop = bufYMin + margin; + uint32_t bRight = bufXMin + bufWidth - margin; + uint32_t bBottom = bufYMin + bufHeight - margin; + + uint32_t defaultCropOrigin[] = {std::max(aLeft, bLeft), std::max(aTop, bTop)}; + uint32_t defaultCropSize[] = {std::min(aRight, bRight) - defaultCropOrigin[0], + std::min(aBottom, bBottom) - defaultCropOrigin[1]}; + + BAIL_IF_INVALID_R(writer->addEntry(TAG_DEFAULTCROPORIGIN, 2, defaultCropOrigin, + TIFF_IFD_0), env, TAG_DEFAULTCROPORIGIN, writer); + BAIL_IF_INVALID_R(writer->addEntry(TAG_DEFAULTCROPSIZE, 2, defaultCropSize, + TIFF_IFD_0), env, TAG_DEFAULTCROPSIZE, writer); + + return OK; +} +static bool validateDngHeader(JNIEnv* env, TiffWriter* writer, + const CameraMetadata& characteristics, jint width, jint height) { // TODO: handle lens shading map, etc. conversions for other raw buffer sizes. - uint32_t metadataWidth = *(writer->getEntry(TAG_IMAGEWIDTH, (hasThumbnail) ? TIFF_IFD_SUB1 : - TIFF_IFD_0)->getData<uint32_t>()); - uint32_t metadataHeight = *(writer->getEntry(TAG_IMAGELENGTH, (hasThumbnail) ? TIFF_IFD_SUB1 : - TIFF_IFD_0)->getData<uint32_t>()); + if (width <= 0) { + jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", \ + "Image width %d is invalid", width); + return false; + } - if (width < 0 || metadataWidth != static_cast<uint32_t>(width)) { + if (height <= 0) { jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", \ - "Metadata width %d doesn't match image width %d", metadataWidth, width); + "Image height %d is invalid", height); return false; } - if (height < 0 || metadataHeight != static_cast<uint32_t>(height)) { + camera_metadata_ro_entry preCorrectionEntry = + characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); + camera_metadata_ro_entry pixelArrayEntry = + characteristics.find(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE); + + int pWidth = static_cast<int>(pixelArrayEntry.data.i32[0]); + int pHeight = static_cast<int>(pixelArrayEntry.data.i32[1]); + int cWidth = static_cast<int>(preCorrectionEntry.data.i32[2]); + int cHeight = static_cast<int>(preCorrectionEntry.data.i32[3]); + + bool matchesPixelArray = (pWidth == width && pHeight == height); + bool matchesPreCorrectionArray = (cWidth == width && cHeight == height); + + if (matchesPixelArray) { + if (calculateAndSetCrop(env, characteristics, 0, 0, static_cast<uint32_t>(pWidth), + static_cast<uint32_t>(pHeight), writer) != OK) { + return false; + } + } else if (matchesPreCorrectionArray) { + if (calculateAndSetCrop(env, characteristics, + static_cast<uint32_t>(preCorrectionEntry.data.i32[0]), + static_cast<uint32_t>(preCorrectionEntry.data.i32[1]), + static_cast<uint32_t>(preCorrectionEntry.data.i32[2]), + static_cast<uint32_t>(preCorrectionEntry.data.i32[3]), writer) != OK) { + return false; + } + } else { jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", \ - "Metadata height %d doesn't match image height %d", - metadataHeight, height); + "Image dimensions (w=%d,h=%d) are invalid, must match either the pixel " + "array size (w=%d, h=%d) or the pre-correction array size (w=%d, h=%d)", + width, height, pWidth, pHeight, cWidth, cHeight); return false; } @@ -854,7 +937,7 @@ static void DngCreator_init(JNIEnv* env, jobject thiz, jobject characteristicsPt return; } - sp<NativeContext> nativeContext = new NativeContext(); + sp<NativeContext> nativeContext = new NativeContext(characteristics, results); TiffWriter* writer = nativeContext->getWriter(); writer->addIfd(TIFF_IFD_0); @@ -906,7 +989,7 @@ static void DngCreator_init(JNIEnv* env, jobject thiz, jobject characteristicsPt { // Set dimensions camera_metadata_entry entry = - characteristics.find(ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE); + characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); BAIL_IF_EMPTY(entry, env, TAG_IMAGEWIDTH, writer); uint32_t width = static_cast<uint32_t>(entry.data.i32[2]); uint32_t height = static_cast<uint32_t>(entry.data.i32[3]); @@ -1356,16 +1439,16 @@ static void DngCreator_init(JNIEnv* env, jobject thiz, jobject characteristicsPt } { - // Setup default crop + crop origin tags - uint32_t margin = 8; // Default margin recommended by Adobe for interpolation. - uint32_t dimensionLimit = 128; // Smallest image dimension crop margin from. - if (imageWidth >= dimensionLimit && imageHeight >= dimensionLimit) { - uint32_t defaultCropOrigin[] = {margin, margin}; - uint32_t defaultCropSize[] = {imageWidth - 2 * margin, imageHeight - 2 * margin}; - BAIL_IF_INVALID(writer->addEntry(TAG_DEFAULTCROPORIGIN, 2, defaultCropOrigin, - TIFF_IFD_0), env, TAG_DEFAULTCROPORIGIN, writer); - BAIL_IF_INVALID(writer->addEntry(TAG_DEFAULTCROPSIZE, 2, defaultCropSize, - TIFF_IFD_0), env, TAG_DEFAULTCROPSIZE, writer); + // Set dimensions + camera_metadata_entry entry = + characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); + BAIL_IF_EMPTY(entry, env, TAG_DEFAULTCROPSIZE, writer); + uint32_t xmin = static_cast<uint32_t>(entry.data.i32[0]); + uint32_t ymin = static_cast<uint32_t>(entry.data.i32[1]); + uint32_t width = static_cast<uint32_t>(entry.data.i32[2]); + uint32_t height = static_cast<uint32_t>(entry.data.i32[3]); + if (calculateAndSetCrop(env, characteristics, xmin, ymin, width, height, writer) != OK) { + return; } } @@ -1874,7 +1957,7 @@ static void DngCreator_nativeWriteImage(JNIEnv* env, jobject thiz, jobject outSt } // Validate DNG header - if (!validateDngHeader(env, writer, width, height)) { + if (!validateDngHeader(env, writer, *(context->getCharacteristics()), width, height)) { return; } @@ -1978,7 +2061,7 @@ static void DngCreator_nativeWriteInputStream(JNIEnv* env, jobject thiz, jobject } // Validate DNG header - if (!validateDngHeader(env, writer, width, height)) { + if (!validateDngHeader(env, writer, *(context->getCharacteristics()), width, height)) { return; } diff --git a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp index 5bef653..63915ed 100644 --- a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp +++ b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp @@ -436,6 +436,23 @@ static jint LegacyCameraDevice_nativeDetectSurfaceType(JNIEnv* env, jobject thiz return fmt; } +static jint LegacyCameraDevice_nativeDetectSurfaceDataspace(JNIEnv* env, jobject thiz, jobject surface) { + ALOGV("nativeDetectSurfaceDataspace"); + sp<ANativeWindow> anw; + if ((anw = getNativeWindow(env, surface)) == NULL) { + ALOGE("%s: Could not retrieve native window from surface.", __FUNCTION__); + return BAD_VALUE; + } + int32_t fmt = 0; + status_t err = anw->query(anw.get(), NATIVE_WINDOW_DEFAULT_DATASPACE, &fmt); + if(err != NO_ERROR) { + ALOGE("%s: Error while querying surface dataspace %s (%d).", __FUNCTION__, strerror(-err), + err); + return err; + } + return fmt; +} + static jint LegacyCameraDevice_nativeDetectSurfaceDimens(JNIEnv* env, jobject thiz, jobject surface, jintArray dimens) { ALOGV("nativeGetSurfaceDimens"); @@ -717,6 +734,9 @@ static JNINativeMethod gCameraDeviceMethods[] = { { "nativeDetectSurfaceType", "(Landroid/view/Surface;)I", (void *)LegacyCameraDevice_nativeDetectSurfaceType }, + { "nativeDetectSurfaceDataspace", + "(Landroid/view/Surface;)I", + (void *)LegacyCameraDevice_nativeDetectSurfaceDataspace }, { "nativeDetectSurfaceDimens", "(Landroid/view/Surface;[I)I", (void *)LegacyCameraDevice_nativeDetectSurfaceDimens }, diff --git a/core/jni/android_os_Parcel.cpp b/core/jni/android_os_Parcel.cpp index 2ee9283..0f5ba83 100644 --- a/core/jni/android_os_Parcel.cpp +++ b/core/jni/android_os_Parcel.cpp @@ -230,9 +230,11 @@ static void android_os_Parcel_writeBlob(JNIEnv* env, jclass clazz, jlong nativeP static void android_os_Parcel_writeInt(JNIEnv* env, jclass clazz, jlong nativePtr, jint val) { Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); - const status_t err = parcel->writeInt32(val); - if (err != NO_ERROR) { - signalExceptionForError(env, clazz, err); + if (parcel != NULL) { + const status_t err = parcel->writeInt32(val); + if (err != NO_ERROR) { + signalExceptionForError(env, clazz, err); + } } } diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index 70a7805..e2cfa44 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -682,18 +682,28 @@ void signalExceptionForError(JNIEnv* env, jobject obj, status_t err, break; case FAILED_TRANSACTION: { ALOGE("!!! FAILED BINDER TRANSACTION !!! (parcel size = %d)", parcelSize); + const char* exceptionToThrow; char msg[128]; - snprintf(msg, sizeof(msg)-1, "data parcel size %d bytes", parcelSize); // TransactionTooLargeException is a checked exception, only throw from certain methods. // FIXME: Transaction too large is the most common reason for FAILED_TRANSACTION // but it is not the only one. The Binder driver can return BR_FAILED_REPLY // for other reasons also, such as if the transaction is malformed or // refers to an FD that has been closed. We should change the driver // to enable us to distinguish these cases in the future. - jniThrowException(env, canThrowRemoteException - ? "android/os/TransactionTooLargeException" - : "java/lang/RuntimeException", - parcelSize > 0 ? msg : NULL); + if (canThrowRemoteException && parcelSize > 200*1024) { + // bona fide large payload + exceptionToThrow = "android/os/TransactionTooLargeException"; + snprintf(msg, sizeof(msg)-1, "data parcel size %d bytes", parcelSize); + } else { + // Heuristic: a payload smaller than this threshold "shouldn't" be too + // big, so it's probably some other, more subtle problem. In practice + // it nearly always means that the remote process died while the binder + // transaction was already in flight. + exceptionToThrow = "java/lang/RuntimeException"; + snprintf(msg, sizeof(msg)-1, + "Transaction failed on small parcel; remote process probably died"); + } + jniThrowException(env, exceptionToThrow, msg); } break; case FDS_NOT_ALLOWED: jniThrowException(env, "java/lang/RuntimeException", diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp index 2830724..ee8fb19 100644 --- a/core/jni/android_util_Process.cpp +++ b/core/jni/android_util_Process.cpp @@ -239,7 +239,8 @@ void android_os_Process_setProcessGroup(JNIEnv* env, jobject clazz, int pid, jin if (t_pri <= ANDROID_PRIORITY_AUDIO) { int scheduler = sched_getscheduler(t_pid); if ((scheduler == SCHED_FIFO) || (scheduler == SCHED_RR)) { - // This task wants to stay in it's current audio group so it can keep it's budget + // This task wants to stay in its current audio group so it can keep its budget + // don't update its cpuset or cgroup continue; } } @@ -247,15 +248,33 @@ void android_os_Process_setProcessGroup(JNIEnv* env, jobject clazz, int pid, jin if (isDefault) { if (t_pri >= ANDROID_PRIORITY_BACKGROUND) { // This task wants to stay at background + // update its cpuset so it doesn't only run on bg core(s) +#ifdef ENABLE_CPUSETS + int err = set_cpuset_policy(t_pid, sp); + if (err != NO_ERROR) { + signalExceptionForGroupError(env, -err); + break; + } +#endif continue; } } + int err; +#ifdef ENABLE_CPUSETS + // set both cpuset and cgroup for general threads + err = set_cpuset_policy(t_pid, sp); + if (err != NO_ERROR) { + signalExceptionForGroupError(env, -err); + break; + } +#endif - int err = set_sched_policy(t_pid, sp); + err = set_sched_policy(t_pid, sp); if (err != NO_ERROR) { signalExceptionForGroupError(env, -err); break; } + } closedir(d); } diff --git a/core/jni/android_view_DisplayEventReceiver.cpp b/core/jni/android_view_DisplayEventReceiver.cpp index 91a3c7e..0e2ec6b 100644 --- a/core/jni/android_view_DisplayEventReceiver.cpp +++ b/core/jni/android_view_DisplayEventReceiver.cpp @@ -77,7 +77,7 @@ NativeDisplayEventReceiver::NativeDisplayEventReceiver(JNIEnv* env, jobject receiverWeak, const sp<MessageQueue>& messageQueue) : mReceiverWeakGlobal(env->NewGlobalRef(receiverWeak)), mMessageQueue(messageQueue), mWaitingForVsync(false) { - ALOGV("receiver %p ~ Initializing input event receiver.", this); + ALOGV("receiver %p ~ Initializing display event receiver.", this); } NativeDisplayEventReceiver::~NativeDisplayEventReceiver() { diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp index eb28c4d..98c17c0 100644 --- a/core/jni/android_view_MotionEvent.cpp +++ b/core/jni/android_view_MotionEvent.cpp @@ -462,6 +462,12 @@ static int android_view_MotionEvent_nativeGetActionButton(JNIEnv* env, jclass cl return event->getActionButton(); } +static void android_view_MotionEvent_nativeSetActionButton(JNIEnv* env, jclass clazz, + jlong nativePtr, jint button) { + MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr); + event->setActionButton(button); +} + static jboolean android_view_MotionEvent_nativeIsTouchEvent(JNIEnv* env, jclass clazz, jlong nativePtr) { MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr); @@ -779,6 +785,9 @@ static JNINativeMethod gMotionEventMethods[] = { { "nativeGetActionButton", "(J)I", (void*)android_view_MotionEvent_nativeGetActionButton}, + { "nativeSetActionButton", + "(JI)V", + (void*)android_view_MotionEvent_nativeSetActionButton}, { "nativeIsTouchEvent", "(J)Z", (void*)android_view_MotionEvent_nativeIsTouchEvent }, diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp index a526223..daa6f82 100644 --- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp +++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp @@ -48,7 +48,6 @@ #define LIB_SUFFIX_LEN (sizeof(LIB_SUFFIX) - 1) #define RS_BITCODE_SUFFIX ".bc" -#define RS_BITCODE_SUFFIX_LEN (sizeof(RS_BITCODE_SUFFIX) -1) #define GDBSERVER "gdbserver" #define GDBSERVER_LEN (sizeof(GDBSERVER) - 1) @@ -322,7 +321,8 @@ private: public: static NativeLibrariesIterator* create(ZipFileRO* zipFile) { void* cookie = NULL; - if (!zipFile->startIteration(&cookie)) { + // Do not specify a suffix to find both .so files and gdbserver. + if (!zipFile->startIteration(&cookie, APK_LIB, NULL /* suffix */)) { return NULL; } @@ -337,11 +337,6 @@ public: continue; } - // Make sure we're in the lib directory of the ZIP. - if (strncmp(fileName, APK_LIB, APK_LIB_LEN)) { - continue; - } - // Make sure the filename is at least to the minimum library name size. const size_t fileNameLen = strlen(fileName); static const size_t minLength = APK_LIB_LEN + 2 + LIB_PREFIX_LEN + 1 + LIB_SUFFIX_LEN; @@ -529,7 +524,7 @@ com_android_internal_content_NativeLibraryHelper_hasRenderscriptBitcode(JNIEnv * jlong apkHandle) { ZipFileRO* zipFile = reinterpret_cast<ZipFileRO*>(apkHandle); void* cookie = NULL; - if (!zipFile->startIteration(&cookie)) { + if (!zipFile->startIteration(&cookie, NULL /* prefix */, RS_BITCODE_SUFFIX)) { return APK_SCAN_ERROR; } @@ -539,12 +534,9 @@ com_android_internal_content_NativeLibraryHelper_hasRenderscriptBitcode(JNIEnv * if (zipFile->getEntryFileName(next, fileName, sizeof(fileName))) { continue; } - - const size_t fileNameLen = strlen(fileName); const char* lastSlash = strrchr(fileName, '/'); const char* baseName = (lastSlash == NULL) ? fileName : fileName + 1; - if (!strncmp(fileName + fileNameLen - RS_BITCODE_SUFFIX_LEN, RS_BITCODE_SUFFIX, - RS_BITCODE_SUFFIX_LEN) && isFilenameSafe(baseName)) { + if (isFilenameSafe(baseName)) { zipFile->endIteration(cookie); return BITCODE_PRESENT; } diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 76db5d3..f7cfe0e 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -66,6 +66,8 @@ static jmethodID gCallPostForkChildHooks; enum MountExternalKind { MOUNT_EXTERNAL_NONE = 0, MOUNT_EXTERNAL_DEFAULT = 1, + MOUNT_EXTERNAL_READ = 2, + MOUNT_EXTERNAL_WRITE = 3, }; static void RuntimeAbort(JNIEnv* env) { @@ -249,38 +251,49 @@ static void SetSchedulerPolicy(JNIEnv* env) { // Create a private mount namespace and bind mount appropriate emulated // storage for the given user. -static bool MountEmulatedStorage(uid_t uid, jint mount_mode, bool force_mount_namespace) { - if (mount_mode == MOUNT_EXTERNAL_NONE && !force_mount_namespace) { - return true; - } - - // Create a second private mount namespace for our process - if (unshare(CLONE_NEWNS) == -1) { - ALOGW("Failed to unshare(): %s", strerror(errno)); - return false; - } +static bool MountEmulatedStorage(uid_t uid, jint mount_mode, + bool force_mount_namespace) { + // See storage config details at http://source.android.com/tech/storage/ - if (mount_mode == MOUNT_EXTERNAL_NONE) { - return true; - } - - // See storage config details at http://source.android.com/tech/storage/ - userid_t user_id = multiuser_get_user_id(uid); - - // Bind mount user-specific storage into place - const String8 source(String8::format("/mnt/user/%d", user_id)); - const String8 target(String8::format("/storage/self")); + // Create a second private mount namespace for our process + if (unshare(CLONE_NEWNS) == -1) { + ALOGW("Failed to unshare(): %s", strerror(errno)); + return false; + } - if (fs_prepare_dir(source.string(), 0755, 0, 0) == -1) { - return false; - } + // Unmount storage provided by root namespace and mount requested view + umount2("/storage", MNT_FORCE); + + String8 storageSource; + if (mount_mode == MOUNT_EXTERNAL_DEFAULT) { + storageSource = "/mnt/runtime_default"; + } else if (mount_mode == MOUNT_EXTERNAL_READ) { + storageSource = "/mnt/runtime_read"; + } else if (mount_mode == MOUNT_EXTERNAL_WRITE) { + storageSource = "/mnt/runtime_write"; + } else { + // Sane default of no storage visible + return true; + } + if (TEMP_FAILURE_RETRY(mount(storageSource.string(), "/storage", + NULL, MS_BIND | MS_REC | MS_SLAVE, NULL)) == -1) { + ALOGW("Failed to mount %s to /storage: %s", storageSource.string(), strerror(errno)); + return false; + } - if (TEMP_FAILURE_RETRY(mount(source.string(), target.string(), NULL, MS_BIND, NULL)) == -1) { - ALOGW("Failed to mount %s to %s: %s", source.string(), target.string(), strerror(errno)); - return false; - } + // Mount user-specific symlink helpers into place + userid_t user_id = multiuser_get_user_id(uid); + const String8 userSource(String8::format("/mnt/user/%d", user_id)); + if (fs_prepare_dir(userSource.string(), 0751, 0, 0) == -1) { + return false; + } + if (TEMP_FAILURE_RETRY(mount(userSource.string(), "/storage/self", + NULL, MS_BIND, NULL)) == -1) { + ALOGW("Failed to mount %s to /storage/self: %s", userSource.string(), strerror(errno)); + return false; + } - return true; + return true; } static bool NeedsNoRandomizeWorkaround() { @@ -543,7 +556,7 @@ static jint com_android_internal_os_Zygote_nativeForkSystemServer( pid_t pid = ForkAndSpecializeCommon(env, uid, gid, gids, debug_flags, rlimits, permittedCapabilities, effectiveCapabilities, - MOUNT_EXTERNAL_NONE, NULL, NULL, true, NULL, + MOUNT_EXTERNAL_DEFAULT, NULL, NULL, true, NULL, NULL, NULL); if (pid > 0) { // The zygote process checks whether the child process has died or not. diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index f9b41a9..bada791 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -335,34 +335,24 @@ android:description="@string/permgroupdesc_contacts" android:priority="100" /> - <!-- Allows an application to read the user's contacts data. --> + <!-- Allows an application to read the user's contacts data. + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_CONTACTS" android:permissionGroup="android.permission-group.CONTACTS" android:label="@string/permlab_readContacts" android:description="@string/permdesc_readContacts" android:protectionLevel="dangerous" /> - <!-- Allows an application to write the user's contacts data. --> + <!-- Allows an application to write the user's contacts data. + <p>Protection level: dangerous + --> <permission android:name="android.permission.WRITE_CONTACTS" android:permissionGroup="android.permission-group.CONTACTS" android:label="@string/permlab_writeContacts" android:description="@string/permdesc_writeContacts" android:protectionLevel="dangerous" /> - <!-- @deprecated No longer enforced. This was last enforced in API version 22. --> - <permission android:name="android.permission.READ_PROFILE" - android:permissionGroup="android.permission-group.CONTACTS" - android:label="@string/permlab_readProfile" - android:description="@string/permdesc_readProfile" - android:protectionLevel="dangerous" /> - - <!-- @deprecated No longer enforced. This was last enforced in API version 22. --> - <permission android:name="android.permission.WRITE_PROFILE" - android:permissionGroup="android.permission-group.CONTACTS" - android:label="@string/permlab_writeProfile" - android:description="@string/permdesc_writeProfile" - android:protectionLevel="dangerous" /> - <!-- ====================================================================== --> <!-- Permissions for accessing user's calendar --> <!-- ====================================================================== --> @@ -375,14 +365,18 @@ android:description="@string/permgroupdesc_calendar" android:priority="200" /> - <!-- Allows an application to read the user's calendar data. --> + <!-- Allows an application to read the user's calendar data. + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_CALENDAR" android:permissionGroup="android.permission-group.CALENDAR" android:label="@string/permlab_readCalendar" android:description="@string/permdesc_readCalendar" android:protectionLevel="dangerous" /> - <!-- Allows an application to write the user's calendar data. --> + <!-- Allows an application to write the user's calendar data. + <p>Protection level: dangerous + --> <permission android:name="android.permission.WRITE_CALENDAR" android:permissionGroup="android.permission-group.CALENDAR" android:label="@string/permlab_writeCalendar" @@ -401,7 +395,9 @@ android:description="@string/permgroupdesc_sms" android:priority="300" /> - <!-- Allows an application to send SMS messages. --> + <!-- Allows an application to send SMS messages. + <p>Protection level: dangerous + --> <permission android:name="android.permission.SEND_SMS" android:permissionGroup="android.permission-group.SMS" android:label="@string/permlab_sendSms" @@ -409,28 +405,36 @@ android:permissionFlags="costsMoney" android:protectionLevel="dangerous" /> - <!-- Allows an application to receive SMS messages. --> + <!-- Allows an application to receive SMS messages. + <p>Protection level: dangerous + --> <permission android:name="android.permission.RECEIVE_SMS" android:permissionGroup="android.permission-group.SMS" android:label="@string/permlab_receiveSms" android:description="@string/permdesc_receiveSms" android:protectionLevel="dangerous"/> - <!-- Allows an application to read SMS messages. --> + <!-- Allows an application to read SMS messages. + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_SMS" android:permissionGroup="android.permission-group.SMS" android:label="@string/permlab_readSms" android:description="@string/permdesc_readSms" android:protectionLevel="dangerous" /> - <!-- Allows an application to receive WAP push messages. --> + <!-- Allows an application to receive WAP push messages. + <p>Protection level: dangerous + --> <permission android:name="android.permission.RECEIVE_WAP_PUSH" android:permissionGroup="android.permission-group.SMS" android:label="@string/permlab_receiveWapPush" android:description="@string/permdesc_receiveWapPush" android:protectionLevel="dangerous" /> - <!-- Allows an application to monitor incoming MMS messages. --> + <!-- Allows an application to monitor incoming MMS messages. + <p>Protection level: dangerous + --> <permission android:name="android.permission.RECEIVE_MMS" android:permissionGroup="android.permission-group.SMS" android:label="@string/permlab_receiveMms" @@ -447,6 +451,7 @@ additional emergency information (if Internet access is available) when the alert is first received, and to delay presenting the info to the user until after the initial alert dialog is dismissed. + <p>Protection level: dangerous @hide Pending API council approval --> <permission android:name="android.permission.READ_CELL_BROADCASTS" android:permissionGroup="android.permission-group.SMS" @@ -485,7 +490,9 @@ targetSdkVersion}</a> values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code - targetSdkVersion}</a> is 4 or higher.--> + targetSdkVersion}</a> is 4 or higher. + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:permissionGroup="android.permission-group.STORAGE" android:label="@string/permlab_sdcardRead" @@ -504,49 +511,15 @@ <p>Starting in API level 19, this permission is <em>not</em> required to read/write files in your application-specific directories returned by {@link android.content.Context#getExternalFilesDir} and - {@link android.content.Context#getExternalCacheDir}. --> + {@link android.content.Context#getExternalCacheDir}. + <p>Protection level: dangerous + --> <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:permissionGroup="android.permission-group.STORAGE" android:label="@string/permlab_sdcardWrite" android:description="@string/permdesc_sdcardWrite" android:protectionLevel="dangerous" /> - <!-- =============================================================== --> - <!-- Permissions for accessing social info --> - <!-- =============================================================== --> - <eat-comment /> - - <!-- Used for permissions that provide access to the user's social connections, - such as contacts, call logs, social stream, etc. This includes - both reading and writing of this data (which should generally be - expressed as two distinct permissions). --> - - <permission-group android:name="android.permission-group.SOCIAL_INFO" - android:label="@string/permgrouplab_socialInfo" - android:icon="@drawable/perm_group_social_info" - android:description="@string/permgroupdesc_socialInfo" - android:permissionGroupFlags="personalInfo" - android:priority="1200" /> - - <!-- Allows an application to read from the user's social stream. - @deprecated This functionality will be unsupported in the future; cursors returned - will be empty. Please do not use. --> - <permission android:name="android.permission.READ_SOCIAL_STREAM" - android:permissionGroup="android.permission-group.SOCIAL_INFO" - android:protectionLevel="dangerous" - android:label="@string/permlab_readSocialStream" - android:description="@string/permdesc_readSocialStream" /> - - <!-- Allows an application to write (but not read) the user's - social stream data. - @deprecated This functionality will be unsupported in the future; cursors returned - will be empty. Please do not use. --> - <permission android:name="android.permission.WRITE_SOCIAL_STREAM" - android:permissionGroup="android.permission-group.SOCIAL_INFO" - android:protectionLevel="dangerous" - android:label="@string/permlab_writeSocialStream" - android:description="@string/permdesc_writeSocialStream" /> - <!-- ====================================================================== --> <!-- Permissions for accessing the device location --> <!-- ====================================================================== --> @@ -559,14 +532,18 @@ android:description="@string/permgroupdesc_location" android:priority="400" /> - <!-- Allows an app to access precise location. --> + <!-- Allows an app to access precise location. + <p>Protection level: dangerous + --> <permission android:name="android.permission.ACCESS_FINE_LOCATION" android:permissionGroup="android.permission-group.LOCATION" android:label="@string/permlab_accessFineLocation" android:description="@string/permdesc_accessFineLocation" android:protectionLevel="dangerous" /> - <!-- Allows an app to access approximate location. --> + <!-- Allows an app to access approximate location. + <p>Protection level: dangerous + --> <permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:permissionGroup="android.permission-group.LOCATION" android:label="@string/permlab_accessCoarseLocation" @@ -593,7 +570,9 @@ targetSdkVersion}</a> values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code - targetSdkVersion}</a> is 4 or higher. --> + targetSdkVersion}</a> is 4 or higher. + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_PHONE_STATE" android:permissionGroup="android.permission-group.PHONE" android:label="@string/permlab_readPhoneState" @@ -601,7 +580,9 @@ android:protectionLevel="dangerous" /> <!-- Allows an application to initiate a phone call without going through - the Dialer user interface for the user to confirm the call. --> + the Dialer user interface for the user to confirm the call. + <p>Protection level: dangerous + --> <permission android:name="android.permission.CALL_PHONE" android:permissionGroup="android.permission-group.PHONE" android:permissionFlags="costsMoney" @@ -618,7 +599,9 @@ targetSdkVersion}</a> values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code - targetSdkVersion}</a> is 16 or higher.</p> --> + targetSdkVersion}</a> is 16 or higher.</p> + <p>Protection level: dangerous + --> <permission android:name="android.permission.READ_CALL_LOG" android:permissionGroup="android.permission-group.PHONE" android:label="@string/permlab_readCallLog" @@ -635,21 +618,27 @@ targetSdkVersion}</a> values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code - targetSdkVersion}</a> is 16 or higher.</p> --> + targetSdkVersion}</a> is 16 or higher.</p> + <p>Protection level: dangerous + --> <permission android:name="android.permission.WRITE_CALL_LOG" android:permissionGroup="android.permission-group.PHONE" android:label="@string/permlab_writeCallLog" android:description="@string/permdesc_writeCallLog" android:protectionLevel="dangerous" /> - <!-- Allows an application to add voicemails into the system. --> + <!-- Allows an application to add voicemails into the system. + <p>Protection level: dangerous + --> <permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" android:permissionGroup="android.permission-group.PHONE" android:label="@string/permlab_addVoicemail" android:description="@string/permdesc_addVoicemail" android:protectionLevel="dangerous" /> - <!-- Allows an application to use SIP service. --> + <!-- Allows an application to use SIP service. + <p>Protection level: dangerous + --> <permission android:name="android.permission.USE_SIP" android:permissionGroup="android.permission-group.PHONE" android:description="@string/permdesc_use_sip" @@ -658,7 +647,9 @@ <!-- Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or - abort the call altogether. --> + abort the call altogether. + <p>Protection level: dangerous + --> <permission android:name="android.permission.PROCESS_OUTGOING_CALLS" android:permissionGroup="android.permission-group.PHONE" android:label="@string/permlab_processOutgoingCalls" @@ -679,7 +670,9 @@ android:description="@string/permgroupdesc_microphone" android:priority="600" /> - <!-- Allows an application to record audio. --> + <!-- Allows an application to record audio. + <p>Protection level: dangerous + --> <permission android:name="android.permission.RECORD_AUDIO" android:permissionGroup="android.permission-group.MICROPHONE" android:label="@string/permlab_recordAudio" @@ -705,7 +698,9 @@ <uses-feature>}</a> manifest element for <em>all</em> camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to - install on devices that don't support all camera features.</p> --> + install on devices that don't support all camera features.</p> + <p>Protection level: dangerous + --> <permission android:name="android.permission.CAMERA" android:permissionGroup="android.permission-group.CAMERA" android:label="@string/permlab_camera" @@ -726,14 +721,17 @@ android:priority="800" /> <!-- Allows an application to access data from sensors that the user uses to - measure what is happening inside his/her body, such as heart rate. --> + measure what is happening inside his/her body, such as heart rate. + <p>Protection level: dangerous --> <permission android:name="android.permission.BODY_SENSORS" android:permissionGroup="android.permission-group.SENSORS" android:label="@string/permlab_bodySensors" android:description="@string/permdesc_bodySensors" android:protectionLevel="dangerous" /> - <!-- Allows an app to use fingerprint hardware. --> + <!-- Allows an app to use fingerprint hardware. + <p>Protection level: normal + --> <permission android:name="android.permission.USE_FINGERPRINT" android:permissionGroup="android.permission-group.SENSORS" android:label="@string/permlab_useFingerprint" @@ -741,7 +739,41 @@ android:protectionLevel="normal" /> <!-- ====================================================================== --> - <!-- INSTALLTIME PERMISSIONS --> + <!-- REMOVED PERMISSIONS --> + <!-- ====================================================================== --> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.READ_PROFILE" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.WRITE_PROFILE" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.READ_SOCIAL_STREAM" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.WRITE_SOCIAL_STREAM" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.READ_USER_DICTIONARY" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- @hide We need to keep this around for backwards compatibility --> + <permission android:name="android.permission.WRITE_USER_DICTIONARY" + android:protectionLevel="normal" + android:permissionFlags="hide"/> + + <!-- ====================================================================== --> + <!-- INSTALL PERMISSIONS --> <!-- ====================================================================== --> <!-- ================================== --> @@ -780,41 +812,13 @@ android:protectionLevel="signature|system" /> <!-- =============================================================== --> - <!-- Permissions for accessing the user dictionary--> - <!-- =============================================================== --> - <eat-comment /> - - <!-- Used for permissions that provide access to the user - calendar to create / view events.--> - <permission-group android:name="android.permission-group.USER_DICTIONARY" - android:label="@string/permgrouplab_dictionary" - android:icon="@drawable/perm_group_user_dictionary" - android:description="@string/permgroupdesc_dictionary" - android:permissionGroupFlags="personalInfo" - android:priority="1100" /> - - <!-- Allows an application to read the user dictionary. This should - really only be required by an IME, or a dictionary editor like - the Settings app. --> - <permission android:name="android.permission.READ_USER_DICTIONARY" - android:permissionGroup="android.permission-group.USER_DICTIONARY" - android:label="@string/permlab_readDictionary" - android:description="@string/permdesc_readDictionary" - android:protectionLevel="dangerous"/> - - <!-- Allows an application to write to the user dictionary. --> - <permission android:name="android.permission.WRITE_USER_DICTIONARY" - android:permissionGroup="android.permission-group.USER_DICTIONARY" - android:label="@string/permlab_writeDictionary" - android:description="@string/permdesc_writeDictionary" - android:protectionLevel="normal"/> - - <!-- =============================================================== --> <!-- Permissions for setting the device alarm --> <!-- =============================================================== --> <eat-comment /> - <!-- Allows an application to broadcast an Intent to set an alarm for the user. --> + <!-- Allows an application to broadcast an Intent to set an alarm for the user. + <p>Protection level: normal + --> <permission android:name="com.android.alarm.permission.SET_ALARM" android:label="@string/permlab_setAlarm" android:description="@string/permdesc_setAlarm" @@ -825,11 +829,15 @@ <!-- =============================================================== --> <eat-comment /> - <!-- Allows an application to modify and remove existing voicemails in the system --> + <!-- Allows an application to modify and remove existing voicemails in the system + <p>Protection level: system|signature + --> <permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL" android:protectionLevel="system|signature" /> - <!-- Allows an application to read voicemails in the system. --> + <!-- Allows an application to read voicemails in the system. + <p>Protection level: system|signature + --> <permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" android:protectionLevel="system|signature" /> @@ -838,7 +846,9 @@ <!-- ======================================= --> <eat-comment /> - <!-- Allows an application to access extra location provider commands --> + <!-- Allows an application to access extra location provider commands + <p>Protection level: normal + --> <permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" android:label="@string/permlab_accessLocationExtraCommands" android:description="@string/permdesc_accessLocationExtraCommands" @@ -862,7 +872,10 @@ android:protectionLevel="signature|system" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE"/> - <!-- Allows an application to create mock location providers for testing. --> + <!-- @SystemApi Allows an application to create mock location providers for testing. + <p>Protection level: signature + @hide + --> <permission android:name="android.permission.ACCESS_MOCK_LOCATION" android:protectionLevel="signature" /> @@ -871,25 +884,33 @@ <!-- ======================================= --> <eat-comment /> - <!-- Allows applications to open network sockets. --> + <!-- Allows applications to open network sockets. + <p>Protection level: normal + --> <permission android:name="android.permission.INTERNET" android:description="@string/permdesc_createNetworkSockets" android:label="@string/permlab_createNetworkSockets" android:protectionLevel="normal" /> - <!-- Allows applications to access information about networks --> + <!-- Allows applications to access information about networks + <p>Protection level: normal + --> <permission android:name="android.permission.ACCESS_NETWORK_STATE" android:description="@string/permdesc_accessNetworkState" android:label="@string/permlab_accessNetworkState" android:protectionLevel="normal" /> - <!-- Allows applications to access information about Wi-Fi networks --> + <!-- Allows applications to access information about Wi-Fi networks. + <p>Protection level: normal + --> <permission android:name="android.permission.ACCESS_WIFI_STATE" android:description="@string/permdesc_accessWifiState" android:label="@string/permlab_accessWifiState" android:protectionLevel="normal" /> - <!-- Allows applications to change Wi-Fi connectivity state --> + <!-- Allows applications to change Wi-Fi connectivity state. + <p>Protection level: normal + --> <permission android:name="android.permission.CHANGE_WIFI_STATE" android:description="@string/permdesc_changeWifiState" android:label="@string/permlab_changeWifiState" @@ -936,13 +957,17 @@ <!-- ======================================= --> <eat-comment /> - <!-- Allows applications to connect to paired bluetooth devices --> + <!-- Allows applications to connect to paired bluetooth devices. + <p>Protection level: normal + --> <permission android:name="android.permission.BLUETOOTH" android:description="@string/permdesc_bluetooth" android:label="@string/permlab_bluetooth" android:protectionLevel="normal" /> - <!-- Allows applications to discover and pair bluetooth devices --> + <!-- Allows applications to discover and pair bluetooth devices. + <p>Protection level: normal + --> <permission android:name="android.permission.BLUETOOTH_ADMIN" android:description="@string/permdesc_bluetoothAdmin" android:label="@string/permlab_bluetoothAdmin" @@ -966,7 +991,9 @@ <permission android:name="android.permission.BLUETOOTH_STACK" android:protectionLevel="signature" /> - <!-- Allows applications to perform I/O operations over NFC --> + <!-- Allows applications to perform I/O operations over NFC. + <p>Protection level: normal + --> <permission android:name="android.permission.NFC" android:description="@string/permdesc_nfc" android:label="@string/permlab_nfc" @@ -1006,7 +1033,9 @@ android:permissionGroupFlags="personalInfo" android:priority="1000" /> - <!-- Allows access to the list of accounts in the Accounts Service --> + <!-- Allows access to the list of accounts in the Accounts Service. + <p>Protection level: normal + --> <permission android:name="android.permission.GET_ACCOUNTS" android:permissionGroup="android.permission-group.CONTACTS" android:protectionLevel="normal" @@ -1024,32 +1053,42 @@ <!-- ================================== --> <eat-comment /> - <!-- Allows applications to enter Wi-Fi Multicast mode --> + <!-- Allows applications to enter Wi-Fi Multicast mode. + <p>Protection level: normal + --> <permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" android:description="@string/permdesc_changeWifiMulticastState" android:label="@string/permlab_changeWifiMulticastState" android:protectionLevel="normal" /> - <!-- Allows access to the vibrator --> + <!-- Allows access to the vibrator. + <p>Protection level: normal + --> <permission android:name="android.permission.VIBRATE" android:label="@string/permlab_vibrate" android:description="@string/permdesc_vibrate" android:protectionLevel="normal" /> - <!-- Allows access to the flashlight --> + <!-- Allows access to the flashlight. + <p>Protection level: normal + --> <permission android:name="android.permission.FLASHLIGHT" android:label="@string/permlab_flashlight" android:description="@string/permdesc_flashlight" android:protectionLevel="normal" /> <!-- Allows using PowerManager WakeLocks to keep processor from sleeping or screen - from dimming --> + from dimming. + <p>Protection level: normal + --> <permission android:name="android.permission.WAKE_LOCK" android:label="@string/permlab_wakeLock" android:description="@string/permdesc_wakeLock" android:protectionLevel="normal" /> - <!-- Allows using the device's IR transmitter, if available --> + <!-- Allows using the device's IR transmitter, if available. + <p>Protection level: normal + --> <permission android:name="android.permission.TRANSMIT_IR" android:label="@string/permlab_transmitIr" android:description="@string/permdesc_transmitIr" @@ -1060,7 +1099,9 @@ <!-- ==================================================== --> <eat-comment /> - <!-- Allows an application to modify global audio settings --> + <!-- Allows an application to modify global audio settings. + <p>Protection level: normal + --> <permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" android:label="@string/permlab_modifyAudioSettings" android:description="@string/permdesc_modifyAudioSettings" @@ -1082,8 +1123,10 @@ <permission android:name="android.permission.ACCESS_MTP" android:protectionLevel="signature|system" /> - <!-- Allows access to hardware peripherals. Intended only for hardware testing. - <p>Not for use by third-party applications. --> + <!-- @SystemApi Allows access to hardware peripherals. Intended only for hardware testing. + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.HARDWARE_TEST" android:protectionLevel="signature" /> @@ -1192,7 +1235,9 @@ android:protectionLevel="system|signature" /> <!-- Must be required by a {@link android.telecom.InCallService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: system|signature + --> <permission android:name="android.permission.BIND_INCALL_SERVICE" android:protectionLevel="system|signature" /> @@ -1206,7 +1251,9 @@ android:protectionLevel="system|signature" /> <!-- Must be required by a {@link android.telecom.ConnectionService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: system|signature + --> <permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE" android:protectionLevel="system|signature" /> @@ -1231,7 +1278,9 @@ android:protectionLevel="signature|system" /> <!-- Allows an application to manage access to documents, usually as part - of a document picker. --> + of a document picker. + <p>Protection level: signature + --> <permission android:name="android.permission.MANAGE_DOCUMENTS" android:protectionLevel="signature" /> @@ -1240,7 +1289,9 @@ <!-- ================================== --> <eat-comment /> - <!-- Allows applications to disable the keyguard if it is not secure. --> + <!-- Allows applications to disable the keyguard if it is not secure. + <p>Protection level: normal + --> <permission android:name="android.permission.DISABLE_KEYGUARD" android:description="@string/permdesc_disableKeyguard" android:label="@string/permlab_disableKeyguard" @@ -1307,7 +1358,9 @@ <permission android:name="android.permission.GET_DETAILED_TASKS" android:protectionLevel="signature" /> - <!-- Allows an application to change the Z-order of tasks --> + <!-- Allows an application to change the Z-order of tasks. + <p>Protection level: normal + --> <permission android:name="android.permission.REORDER_TASKS" android:label="@string/permlab_reorderTasks" android:description="@string/permdesc_reorderTasks" @@ -1335,7 +1388,9 @@ android:protectionLevel="normal" /> <!-- Allows an application to call - {@link android.app.ActivityManager#killBackgroundProcesses}. --> + {@link android.app.ActivityManager#killBackgroundProcesses}. + <p>Protection level: normal + --> <permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" android:label="@string/permlab_killBackgroundProcesses" android:description="@string/permdesc_killBackgroundProcesses" @@ -1366,13 +1421,17 @@ <!-- ================================== --> <eat-comment /> - <!-- Allows applications to set the wallpaper --> + <!-- Allows applications to set the wallpaper. + <p>Protection level: normal + --> <permission android:name="android.permission.SET_WALLPAPER" android:label="@string/permlab_setWallpaper" android:description="@string/permdesc_setWallpaper" android:protectionLevel="normal" /> - <!-- Allows applications to set the wallpaper hints --> + <!-- Allows applications to set the wallpaper hints. + <p>Protection level: normal + --> <permission android:name="android.permission.SET_WALLPAPER_HINTS" android:label="@string/permlab_setWallpaperHints" android:description="@string/permdesc_setWallpaperHints" @@ -1388,7 +1447,9 @@ <permission android:name="android.permission.SET_TIME" android:protectionLevel="signature|system" /> - <!-- Allows applications to set the system time zone --> + <!-- Allows applications to set the system time zone. + <p>Protection level: normal + --> <permission android:name="android.permission.SET_TIME_ZONE" android:label="@string/permlab_setTimeZone" android:description="@string/permdesc_setTimeZone" @@ -1399,7 +1460,9 @@ <!-- ==================================================== --> <eat-comment /> - <!-- Allows an application to expand or collapse the status bar. --> + <!-- Allows an application to expand or collapse the status bar. + <p>Protection level: normal + --> <permission android:name="android.permission.EXPAND_STATUS_BAR" android:label="@string/permlab_expandStatusBar" android:description="@string/permdesc_expandStatusBar" @@ -1410,13 +1473,17 @@ <!-- ============================================================== --> <eat-comment /> - <!-- Allows an application to install a shortcut in Launcher --> + <!-- Allows an application to install a shortcut in Launcher. + <p>Protection level: normal + --> <permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" android:label="@string/permlab_install_shortcut" android:description="@string/permdesc_install_shortcut" android:protectionLevel="normal"/> - <!-- Allows an application to uninstall a shortcut in Launcher --> + <!-- Allows an application to uninstall a shortcut in Launcher. + <p>Protection level: normal + --> <permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" android:label="@string/permlab_uninstall_shortcut" android:description="@string/permdesc_uninstall_shortcut" @@ -1427,19 +1494,25 @@ <!-- ==================================================== --> <eat-comment /> - <!-- Allows applications to read the sync settings --> + <!-- Allows applications to read the sync settings. + <p>Protection level: normal + --> <permission android:name="android.permission.READ_SYNC_SETTINGS" android:description="@string/permdesc_readSyncSettings" android:label="@string/permlab_readSyncSettings" android:protectionLevel="normal" /> - <!-- Allows applications to write the sync settings --> + <!-- Allows applications to write the sync settings. + <p>Protection level: normal + --> <permission android:name="android.permission.WRITE_SYNC_SETTINGS" android:description="@string/permdesc_writeSyncSettings" android:label="@string/permlab_writeSyncSettings" android:protectionLevel="normal" /> - <!-- Allows applications to read the sync stats --> + <!-- Allows applications to read the sync stats. + <p>Protection level: normal + --> <permission android:name="android.permission.READ_SYNC_STATS" android:description="@string/permdesc_readSyncStats" android:label="@string/permlab_readSyncStats" @@ -1497,7 +1570,9 @@ android:description="@string/permdesc_persistentActivity" android:protectionLevel="normal" /> - <!-- Allows an application to find out the space used by any package. --> + <!-- Allows an application to find out the space used by any package. + <p>Protection level: normal + --> <permission android:name="android.permission.GET_PACKAGE_SIZE" android:label="@string/permlab_getPackageSize" android:description="@string/permdesc_getPackageSize" @@ -1519,7 +1594,9 @@ system to start and allowing applications to have themselves running without the user being aware of them. As such, you must explicitly declare your use of this facility to make that visible - to the user. --> + to the user. + <p>Protection level: normal + --> <permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" android:label="@string/permlab_receiveBootCompleted" android:description="@string/permdesc_receiveBootCompleted" @@ -1528,7 +1605,9 @@ <!-- Allows an application to broadcast sticky intents. These are broadcasts whose data is held by the system after being finished, so that clients can quickly retrieve that data without having - to wait for the next broadcast. --> + to wait for the next broadcast. + <p>Protection level: normal + --> <permission android:name="android.permission.BROADCAST_STICKY" android:label="@string/permlab_broadcastSticky" android:description="@string/permdesc_broadcastSticky" @@ -1574,14 +1653,18 @@ <permission android:name="android.permission.WRITE_APN_SETTINGS" android:protectionLevel="signature|system" /> - <!-- Allows applications to change network connectivity state --> + <!-- Allows applications to change network connectivity state. + <p>Protection level: normal + --> <permission android:name="android.permission.CHANGE_NETWORK_STATE" android:description="@string/permdesc_changeNetworkState" android:label="@string/permlab_changeNetworkState" android:protectionLevel="normal" /> <!-- Allows an application to clear the caches of all installed - applications on the device. --> + applications on the device. + <p>Protection level: system|signature + --> <permission android:name="android.permission.CLEAR_APP_CACHE" android:protectionLevel="signatureOrSystem" /> @@ -1680,9 +1763,11 @@ <permission android:name="android.permission.STATUS_BAR_SERVICE" android:protectionLevel="signature" /> - <!-- Allows an application to force a BACK operation on whatever is the + <!-- @SystemApi Allows an application to force a BACK operation on whatever is the top activity. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.FORCE_BACK" android:protectionLevel="signature" /> @@ -1700,15 +1785,19 @@ <permission android:name="android.permission.UPDATE_APP_OPS_STATS" android:protectionLevel="signature|system" /> - <!-- Allows an application to open windows that are for use by parts + <!-- @SystemApi Allows an application to open windows that are for use by parts of the system user interface. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" android:protectionLevel="signature" /> - <!-- Allows an application to manage (create, destroy, + <!-- @SystemApi Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.MANAGE_APP_TOKENS" android:protectionLevel="signature" /> @@ -1717,10 +1806,12 @@ <permission android:name="android.permission.FREEZE_SCREEN" android:protectionLevel="signature" /> - <!-- Allows an application to inject user events (keys, touch, trackball) + <!-- @SystemApi Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window. Without this permission, you can only deliver events to windows in your own process. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.INJECT_EVENTS" android:protectionLevel="signature" /> @@ -1741,10 +1832,12 @@ <permission android:name="android.permission.TEMPORARY_ENABLE_ACCESSIBILITY" android:protectionLevel="signature" /> - <!-- Allows an application to watch and control how activities are + <!-- @SystemApi Allows an application to watch and control how activities are started globally in the system. Only for is in debugging (usually the monkey command). - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.SET_ACTIVITY_WATCHER" android:protectionLevel="signature" /> @@ -1762,9 +1855,11 @@ <permission android:name="android.permission.STOP_APP_SWITCHES" android:protectionLevel="signature|system" /> - <!-- Allows an application to retrieve private information about + <!-- @SystemApi Allows an application to retrieve private information about the current top activity, such as any assist context it can provide. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.GET_TOP_ACTIVITY_INFO" android:protectionLevel="signature" /> @@ -1776,28 +1871,38 @@ android:protectionLevel="signature" /> <!-- Must be required by an {@link android.inputmethodservice.InputMethodService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_INPUT_METHOD" android:protectionLevel="signature" /> <!-- Must be required by an {@link android.media.midi.MidiDeviceService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_MIDI_DEVICE_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by an {@link android.accessibilityservice.AccessibilityService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by a {@link android.printservice.PrintService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_PRINT_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by a {@link android.nfc.cardemulation.HostApduService} or {@link android.nfc.cardemulation.OffHostApduService} to ensure that only - the system can bind to it. --> + the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_NFC_SERVICE" android:protectionLevel="signature" /> @@ -1807,22 +1912,30 @@ android:protectionLevel="signature" /> <!-- Must be required by a TextService (e.g. SpellCheckerService) - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_TEXT_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by a {@link android.net.VpnService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_VPN_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by a {@link android.service.wallpaper.WallpaperService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: system|signature + --> <permission android:name="android.permission.BIND_WALLPAPER" android:protectionLevel="signature|system" /> <!-- Must be required by a {@link android.service.voice.VoiceInteractionService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_VOICE_INTERACTION" android:protectionLevel="signature" /> @@ -1839,7 +1952,9 @@ android:protectionLevel="signature" /> <!-- Must be required by a {@link android.media.tv.TvInputService} - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_TV_INPUT" android:protectionLevel="signature|system" /> @@ -1856,7 +1971,9 @@ android:protectionLevel="signature" /> <!-- Must be required by device administration receiver, to ensure that only the - system can interact with it. --> + system can interact with it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_DEVICE_ADMIN" android:protectionLevel="signature" /> @@ -1866,14 +1983,18 @@ <permission android:name="android.permission.MANAGE_DEVICE_ADMINS" android:protectionLevel="signature|system" /> - <!-- Allows low-level access to setting the orientation (actually + <!-- @SystemApi Allows low-level access to setting the orientation (actually rotation) of the screen. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.SET_ORIENTATION" android:protectionLevel="signature" /> - <!-- Allows low-level access to setting the pointer speed. - <p>Not for use by third-party applications. --> + <!-- @SystemApi Allows low-level access to setting the pointer speed. + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.SET_POINTER_SPEED" android:protectionLevel="signature" /> @@ -1891,7 +2012,9 @@ <!-- Allows an application to request installing packages. Apps targeting APIs greater than 22 must hold this permission in - order to use {@link android.content.Intent#ACTION_INSTALL_PACKAGE}.--> + order to use {@link android.content.Intent#ACTION_INSTALL_PACKAGE}. + <p>Protection level: normal + --> <permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" android:label="@string/permlab_requestInstallPackages" android:description="@string/permdesc_requestInstallPackages" @@ -1902,8 +2025,10 @@ <permission android:name="android.permission.INSTALL_PACKAGES" android:protectionLevel="signature|system" /> - <!-- Allows an application to clear user data. - <p>Not for use by third-party applications. --> + <!-- @SystemApi Allows an application to clear user data. + <p>Not for use by third-party applications + @hide + --> <permission android:name="android.permission.CLEAR_APP_USER_DATA" android:protectionLevel="signature" /> @@ -1936,8 +2061,10 @@ <permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS" android:protectionLevel="signatureOrSystem" /> - <!-- Allows an application to use SurfaceFlinger's low level features. - <p>Not for use by third-party applications. --> + <!-- @SystemApi Allows an application to use SurfaceFlinger's low level features. + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.ACCESS_SURFACE_FLINGER" android:protectionLevel="signature" /> @@ -2003,8 +2130,10 @@ <permission android:name="android.permission.MEDIA_CONTENT_CONTROL" android:protectionLevel="signature|system" /> - <!-- Required to be able to disable the device (very dangerous!). - <p>Not for use by third-party applications.. --> + <!-- @SystemApi Required to be able to disable the device (very dangerous!). + <p>Not for use by third-party applications. + @hide + --> <permission android:name="android.permission.BRICK" android:protectionLevel="signature" /> @@ -2013,9 +2142,11 @@ <permission android:name="android.permission.REBOOT" android:protectionLevel="signature|system" /> - <!-- Allows low-level access to power management. - <p>Not for use by third-party applications. --> - <permission android:name="android.permission.DEVICE_POWER" + <!-- @SystemApi Allows low-level access to power management. + <p>Not for use by third-party applications. + @hide + --> + <permission android:name="android.permission.DEVICE_POWER" android:protectionLevel="signature" /> <!-- Allows access to the PowerManager.userActivity function. @@ -2029,23 +2160,27 @@ <!-- Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + --> <permission android:name="android.permission.FACTORY_TEST" android:protectionLevel="signature" /> <!-- Allows an application to broadcast a notification that an application package has been removed. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + --> <permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" android:protectionLevel="signature" /> <!-- Allows an application to broadcast an SMS receipt notification. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + --> <permission android:name="android.permission.BROADCAST_SMS" android:protectionLevel="signature" /> <!-- Allows an application to broadcast a WAP PUSH receipt notification. - <p>Not for use by third-party applications. --> + <p>Not for use by third-party applications. + --> <permission android:name="android.permission.BROADCAST_WAP_PUSH" android:protectionLevel="signature" /> @@ -2090,7 +2225,7 @@ <p>Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application. --> <permission android:name="android.permission.PACKAGE_USAGE_STATS" - android:protectionLevel="signature|development|appop" /> + android:protectionLevel="signature|system|development|appop" /> <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /> <!-- @hide Allows an application to change the app idle state of an app. @@ -2288,7 +2423,9 @@ <permission android:name="android.permission.ACCESS_NOTIFICATIONS" android:protectionLevel="signature|system" /> - <!-- Marker permission for applications that wish to access notification policy. --> + <!-- Marker permission for applications that wish to access notification policy. + <p>Protection level: normal + --> <permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" android:description="@string/permdesc_access_notification_policy" android:label="@string/permlab_access_notification_policy" @@ -2332,13 +2469,17 @@ <!-- Must be required by an {@link android.service.notification.NotificationListenerService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" android:protectionLevel="signature" /> <!-- Must be required by a {@link android.service.chooser.ChooserTargetService}, to ensure that - only the system can bind to it. --> + only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_CHOOSER_TARGET_SERVICE" android:protectionLevel="signature" /> @@ -2350,7 +2491,9 @@ android:protectionLevel="signature" /> <!-- Must be required by an {@link android.service.dreams.DreamService}, - to ensure that only the system can bind to it. --> + to ensure that only the system can bind to it. + <p>Protection level: signature + --> <permission android:name="android.permission.BIND_DREAM_SERVICE" android:protectionLevel="signature" /> @@ -2405,7 +2548,9 @@ <!-- The system process that is allowed to bind to services in carrier apps will have this permission. Carrier apps should use this permission to protect - their services that only the system is allowed to bind to. --> + their services that only the system is allowed to bind to. + <p>Protection level: system|signature + --> <permission android:name="android.permission.BIND_CARRIER_SERVICES" android:label="@string/permlab_bindCarrierServices" android:description="@string/permdesc_bindCarrierServices" diff --git a/core/res/res/drawable-hdpi/perm_group_storage.png b/core/res/res/drawable-hdpi/perm_group_storage.png Binary files differdeleted file mode 100644 index 598e1cc..0000000 --- a/core/res/res/drawable-hdpi/perm_group_storage.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/perm_group_user_dictionary.png b/core/res/res/drawable-hdpi/perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index 62fbcdc..0000000 --- a/core/res/res/drawable-hdpi/perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-hdpi/perm_group_user_dictionary_write.png b/core/res/res/drawable-hdpi/perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index c62dd4c..0000000 --- a/core/res/res/drawable-hdpi/perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/perm_group_storage.png b/core/res/res/drawable-mdpi/perm_group_storage.png Binary files differdeleted file mode 100644 index b7a06fb..0000000 --- a/core/res/res/drawable-mdpi/perm_group_storage.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/perm_group_user_dictionary.png b/core/res/res/drawable-mdpi/perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index a303dc1..0000000 --- a/core/res/res/drawable-mdpi/perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/perm_group_user_dictionary_write.png b/core/res/res/drawable-mdpi/perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index 2fc4056..0000000 --- a/core/res/res/drawable-mdpi/perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable-xhdpi/perm_group_storage.png b/core/res/res/drawable-xhdpi/perm_group_storage.png Binary files differdeleted file mode 100644 index a2d4d5e..0000000 --- a/core/res/res/drawable-xhdpi/perm_group_storage.png +++ /dev/null diff --git a/core/res/res/drawable-xhdpi/perm_group_user_dictionary.png b/core/res/res/drawable-xhdpi/perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index 35d7d5f..0000000 --- a/core/res/res/drawable-xhdpi/perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-xhdpi/perm_group_user_dictionary_write.png b/core/res/res/drawable-xhdpi/perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index 74e25ac..0000000 --- a/core/res/res/drawable-xhdpi/perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary.png b/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index 8c2cd17..0000000 --- a/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary_write.png b/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index 121d6cf..0000000 --- a/core/res/res/drawable-xxhdpi/ic_perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/perm_group_storage.png b/core/res/res/drawable-xxhdpi/perm_group_storage.png Binary files differdeleted file mode 100644 index 837211e..0000000 --- a/core/res/res/drawable-xxhdpi/perm_group_storage.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/perm_group_user_dictionary.png b/core/res/res/drawable-xxhdpi/perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index 5b6ea3b..0000000 --- a/core/res/res/drawable-xxhdpi/perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/perm_group_user_dictionary_write.png b/core/res/res/drawable-xxhdpi/perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index d92e719..0000000 --- a/core/res/res/drawable-xxhdpi/perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable-xxxhdpi/perm_group_storage.png b/core/res/res/drawable-xxxhdpi/perm_group_storage.png Binary files differdeleted file mode 100644 index 918b3ed..0000000 --- a/core/res/res/drawable-xxxhdpi/perm_group_storage.png +++ /dev/null diff --git a/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary.png b/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary.png Binary files differdeleted file mode 100644 index 32942ca..0000000 --- a/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary.png +++ /dev/null diff --git a/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary_write.png b/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary_write.png Binary files differdeleted file mode 100644 index 343551f..0000000 --- a/core/res/res/drawable-xxxhdpi/perm_group_user_dictionary_write.png +++ /dev/null diff --git a/core/res/res/drawable/perm_group_storage.xml b/core/res/res/drawable/perm_group_storage.xml index 11078d3..65da1f1 100644 --- a/core/res/res/drawable/perm_group_storage.xml +++ b/core/res/res/drawable/perm_group_storage.xml @@ -14,8 +14,8 @@ Copyright (C) 2015 The Android Open Source Project limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="48dp" - android:height="48dp" + android:width="24dp" + android:height="24dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> <path diff --git a/core/res/res/layout/floating_popup_menu_button.xml b/core/res/res/layout/floating_popup_menu_button.xml index 1b58ce5..482f91f 100644 --- a/core/res/res/layout/floating_popup_menu_button.xml +++ b/core/res/res/layout/floating_popup_menu_button.xml @@ -18,7 +18,8 @@ <Button xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="match_parent" - android:minWidth="@dimen/floating_toolbar_menu_button_side_padding" + android:minWidth="@dimen/floating_toolbar_menu_button_minimum_width" + android:minHeight="@dimen/floating_toolbar_height" android:paddingStart="@dimen/floating_toolbar_menu_button_side_padding" android:paddingEnd="@dimen/floating_toolbar_menu_button_side_padding" android:paddingTop="0dp" diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index aa025b9..d244f53 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"gaan by jou kontakte in"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Ligging"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"verkry toegang tot hierdie toestel se ligging"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Jou sosiale inligting"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte toegang tot inligting oor jou kontakte en sosiale verbindings."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"gaan by jou kalender in"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"stuur en bekyk SMS-boodskappe"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Stoor"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"verkry toegang tot foto\'s, media en lêers op jou toestel"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Gebruikerwoordeboek"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lees of skryf woorde in gebruikerswoordeboek."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Boekmerke en geskiedenis"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte toegang tot boekmerke en blaaiergeskiedenis."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofoon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"neem oudio op"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Laat die program toe om jou tablet se oproeprekord, insluitende data oor inkomende en uitgaande oproepe, te verander. Kwaadwillige programme kan dit gebruik om jou oproeprekord uit te vee of te verander."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Laat die program toe om jou TV se oproeprekord te wysig, insluitend data oor inkomende en uitgaande oproepe. Kwaadwillige programme kan dit gebruik om jou oproeprekord uit te vee of te wysig."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Laat die program toe om jou foon se oproeprekord, insluitende data oor inkomende en uitgaande oproepe, te verander. Kwaadwillige programme kan dit gebruik om jou oproeprekord uit te vee of te verander."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lees jou eie kontakkaart"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Laat die program toe om persoonlike profielinligting wat op jou toestel gestoor is, soos jou naam en kontakbesonderhede, te lees. Dit beteken dat die program jou kan identifiseer en jou profielinligting moontlik aan ander mense kan stuur."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"verander jou eie kontakkaart"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Laat die program toe om persoonlike profielinligting, soos jou naam en kontakinligting, wat op jou toestel gestoor is, te verander of daarby te voeg. Dit beteken dat die program jou kan identifiseer en moontlik jou profielinligting na ander mense kan stuur."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"liggaamsensors (soos hartklopmonitors)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Laat die program toe om toegang te verkry tot data van sensors af wat jou fisieke toestand, soos jou polsslag, monitor."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lees jou sosiale stroom"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Laat die program toe om toegang tot sosiale opdaterings van jou en jou vriende te verkry en dit te sinkroniseer. Wees versigtig wanneer jy inligting deel -- dit laat die program toe om kommunikasie tussen jou en jou vriende op sosiale netwerke te lees, ongeag vertroulikheid. Let wel: hierdie toestemming mag dalk nie op alle sosiale netwerke afgedwing word nie."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"skryf aan jou sosiale stroom"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Laat die program toe om sosiale opdaterings van vriende te vertoon. Wees versigtig wanneer jy inligting deel -- dit laat die program toe om boodskappe te vervaardig wat lyk of dit van \'n vriend af kom. Let wel: hierdie toestemming mag dalk nie op alle sosiale netwerke afgedwing word nie."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lees kalenderafsprake plus vertroulike inligting"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Laat die program toe om alle kalendergebeure wat op jou tablet gestoor is, insluitend dié van vriende en medewerkers, te lees. Dit kan moontlik die program toelaat om jou kalenderdata te deel of te stoor, ongeag van vertroulikheid of sensitiwiteit."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Laat die program toe om alle kalendergeleenthede te lees wat op jou TV geberg is, insluitend die van vriende of kollegas. Dit kan die program toelaat om jou kalenderdata te deel of te stoor, ongeag vertroulikheid of sensitiwiteit."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Laat \'n program toe om die sinkroniseringinstellings van \'n rekening te verander. Byvoorbeeld, dit kan gebruik word om sinkronisasie van die People-program met \'n ander rekening te aktiveer."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lees sinkroniseerstatistiek"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Laat \'n program toe om die sinkroniseringstatistieke van \'n rekening te lees, insluitend die geskiedenis van sinkroniseringgebeure en hoeveel data gesinkroniseer is."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lees terme wat jy by die woordeboek gevoeg het"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Laat ’n program toe om alle woorde, name en frases wat die gebruiker moontlik in die gebruikerwoordeboek gestoor het, te lees."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"voeg woorde by gebruiker-gedefinieerde woordeboek"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Laat die program toe om nuwe woorde in die gebruikerwoordeboek te skryf."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lees jou USB-berging se inhoud"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lees jou SD-kaart se inhoud"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Laat die program toe om die USB-geheue se inhoud te lees."</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 887f5bc..205a89a 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"የእርስዎ እውቂያዎች ላይ ይድረሱባቸው"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"መገኛ አካባቢ"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"የዚህን መሣሪያ አካባቢ ይድረሱበት"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ማህበራዊ መረጃዎ"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ወደ የእውቂያዎችህና የማህበራዊ ግንኙነቶችህ መረጃ ቀጥተኛ መዳረሻ።"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ቀን መቁጠሪያ"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"የእርስዎን ቀን መቁጠሪያ ይድረሱበት"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"ኤስኤምኤስ"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"የኤስኤምኤስ መልዕክቶችን ይላኩና ይመልከቱ"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ማከማቻ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"በመሳሪያዎ ላይ ያሉ ፎቶዎችን፣ ማህደረመረጃን እና ፋይሎችን ይድረሱ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"የተጠቃሚ መዝገበ ቃላት"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"በተጠቃሚ መዝገበቃላት ላይ ቃሎችን አንብብ ወይም ጻፍ።"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ዕልባቶች እና ታሪክ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ወደ ዕልባቶችና የአሳሽ ታሪክ ቀጥተኛ መዳረሻ።"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ማይክሮፎን"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ኦዲዮ ይቅዱ"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ካሜራ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ስለ ገቢ እና ወጪ ጥሪዎችን ውሂብ ጨምሮ፣ የጡባዊተኮህን ምዝግብ ማስታወሻ ለመቀየር ለመተግበሪያው ይፈቅዳል። ይሄንን ተንኮል አዘል መተግበሪያዎች የስልክህን ምዝግብ ማስታወሻ ለመሰረዝ ወይም ለመለወጥ ሊጠቀሙበት ይችላሉ።"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"መተግበሪያው ስለገቢ እና ወጪ ጥሪዎች ያለ ውሂብም ጨምሮ የቴሌቪዥንዎ ምዝግብ ማስታወሻ እንዲይቀርይ ያስችለዋል። ተንኮል-አዘል መተግበሪያዎች ይህን ተጠቅመው የስልክዎን ምዝግብ ማስታወሻ ሊደመስሱ ወይም ሊቀይሩ ይችላሉ።"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ስለ ገቢ እና ወጪ ጥሪዎችን ውሂብ ጨምሮ፣ የስልክህን ምዝግብ ማስታወሻ ለመቀየር ለመተግበሪያው ይፈቅዳል። ይሄንን ተንኮል አዘል መተግበሪያዎች የስልክህን ምዝግብ ማስታወሻ ለመሰረዝ ወይም ለመለወጥ ሊጠቀሙበት ይችላሉ።"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"የራስዎን የዕውቂያ ካርድ ያንብቡ"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"መተግበሪያው ልክ እንደ ስምዎ እና የእውቂያ መረጃዎ ያሉ በመሳሪያዎ ላይ የተከማቹ የግል መገለጫ መረጃዎችን እንዲያነብ ይፈቅድለታል። ይህም ማለት መተግበሪያው ለይቶ ሊያውቁዎ እና የመገለጫ መረጃዎን ለሌሎች ሊልክ ይችላል።"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"የራስዎን የዕውቂያ ካርድ ያስተካክሉ"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"መተግበሪያው ልክ እንደ ስምዎ እና የእውቂያ መረጃዎ ያሉ በመሳሪያዎ ላይ የተከማቹ የግል መገለጫ መረጃዎችን እንዲቀይር ወይም እንዲያክልባቸው ይፈቅድለታል። ይህም ማለት መተግበሪያው ለይቶ ሊያውቅዎ እና የመገለጫ መረጃዎን ለሌሎች ሊልክ ይችላል።"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"የሰውነት መመርመሪያዎች (እንደ የልብ ምት መቆጣጠሪያዎች)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"እንደ የእርስዎ የልብ ምት የመሳሰሉ ያሉበትን አካላዊ ሁኔታ ከሚቆጣጠሩ ሰውነት ዳሳሾች ውሂብ ላይ እንዲደርስ ለመተግበሪያው ይፈቅደለታል።"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"የእርስዎን ማህበራዊ የውይይት ክፍሎች ያንብቡ"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"መተግበሪያው የአንተንና የጓኞችህን ማህበራዊ ዝማኔዎችን እንዲደርስባቸው እና እንዲያመሳስላቸው ይፈቅድለታል። መረጃ ስታጋራ ተጠንቀቅ -- ይህ መተግበሪያው ሚስጥራዊነትን ከግምት ሳያስገባ በማህበራዊ አውታረ መረቦች በአንተ እና በጓደኞችህ መካከል የሚደረጉ ግንኙነቶችን እንዲያነብ ይፈቅድለታል። ማስታወሻ፦ ይህ ፈቃድ ለሁሉም ማህበራዊ አውታር መረቦች ላይ ላይፈጸም ይችላል።"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ወደ የእርስዎ ማህበራዊ የውይይት ክፍሎች ይጻፉ"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"መተግበሪያው ከጓኞችህን ማህበራዊ ዝማኔዎችን እንዲያሳይ ይፈቅድለታል። መረጃ ስታጋራ ተጠንቀቅ -- ይህ መተግበሪያው ከጓደኛ የመጡ የሚመስሉ መልዕክቶችን እንዲያዘጋጅ ይፈቅድለታል። ማስታወሻ፦ ይህ ፈቃድ በሁሉም ማህበራዊ አውታረ መረቦች ላይ ላይፈጸም ይችላል።"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"የቀን መቁጠሪያ ክስተቶች ተጨማሪ ሚስጥራዊ መረጃ አንብብ"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"መተግበሪያው የጓደኞችን ወይም የስራ ባልደረቦችን ጨምሮ ሁሉንም በጡባዊ ቱኮህ ላይ የተከማቹ የቀን መቁጠሪያ ክስተቶች እንዲያነብ ይፈቅድለታል። ይህ መተግበሪያው የቀን መቁጠሪያ ውሂብህን ሚስጥራዊቱን ከግምት ሳያስገባ እንዲያጋራ ወይም እንዲያስቀምጥ ሊፈቅድለት ይችላል።"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"መተግበሪያው የጓደኛዎች ወይም የስራ ባልደረባዎችም ጨምሮ በእርስዎ ቴሌቪዥን ላይ የተከማቹ ሁሉንም የቀን መቁጠሪያ ክስተቶች እንዲያነብ ያስችለዋል። ይሄ ሚስጥራዊነት ወይም ጥንቃቄ ፈላጊነት ከግምት ውስጥ ሳይገባ መተግበሪያው የቀን መቁጠሪያዎ ውሂብ እንዲያጋራ ወይም እንዲያስቀምጥ ሊፈቅድለት ይችላል።"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"መተግበሪያው የመለያ ማመሳሰል ቅንብሮችን እንዲያስተካክል ይፈቅድለታል። ለምሳሌ ይህ የሰዎች መተግበሪያን ከመለያ መመሳሰልን ለማንቃት ጥቅም ላይ ሊውል ይችላል።"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"የሥምሪያ ስታስቲክስ አንብብ"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"መተግበሪያው የማመሳሰል ክስተቶችን ታሪክ እና የተመሳሰለውን የውሂብ መጠን ጨምሮ የመለያን የማመሳሰል ስታትስቲክስ እንዲያነብ ይፈቅድለታል።"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"መዝገበ ቃላቱ ላይ ያከልካቸውን ቃላት አንብብ"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"መተግበሪያው ተጠቃሚው በተጠቃሚው መዝገበ-ቃላት አከማችቷቸው ሊሆኑ የሚችሉ ሁሉንም ቃላት፣ ስሞችና ሐረጋት እንዲያነባቸው ይፈቅድለታል።"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"በተጠቃሚ በተገለጸ መዝገበ ቃላት ላይ ቃላትን ያክላል"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"በተጠቃሚ መዝገበ ቃላት ውስጥ አዲስ ቃል እንዲጽፍ ለመተግበሪያው ይፈቅዳሉ፡፡"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"የUSB ማከማቻዎን ይዘቶች ያንብቡ"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"የSD ካርድህን ይዘቶች አንብብ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"መተግበሪያው የእርስዎ USB ማከማቻ ይዘቶችን እንዲያነብ ያስችለዋል።"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 19bc8f6..10f172f 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -234,18 +234,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"الوصول إلى جهات اتصالك"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"الموقع"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"الوصول إلى موقع هذا الجهاز"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"المعلومات الاجتماعية"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"الدخول المباشر إلى معلومات عن جهات الاتصال والاتصالات الاجتماعية."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"التقويم"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"الوصول تقويمك"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"إرسال رسائل قصيرة SMS وعرضها"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"التخزين"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"الوصول إلى الصور والوسائط والملفات على جهازك"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"قاموس المستخدم"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"قراءة الكلمات وكتابتها في قاموس المستخدم."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"الإشارات المرجعية والسجل"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"الدخول المباشر إلى الإشارات المرجعية وسجل المتصفح."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"الميكروفون"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"تسجيل الصوت"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"الكاميرا"</string> @@ -336,16 +330,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"للسماح للتطبيق بتعديل سجل مكالمات الجهاز اللوحي، بما في ذلك البيانات عن المكالمات الواردة والصادرة. وربما تستخدم التطبيقات الضارة هذا لمسح سجل المكالمات أو تعديله."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"يتيح للتطبيق تعديل سجل مكالمات التلفزيون، بما في ذلك البيانات عن المكالمات الواردة والصادرة. وربما تستخدم التطبيقات الضارة هذا لمسح سجل المكالمات أو تعديله."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"للسماح للتطبيق بتعديل سجل مكالمات الهاتف، بما في ذلك البيانات عن المكالمات الواردة والصادرة. وربما تستخدم التطبيقات الضارة هذا لمحو سجل المكالمات أو تعديله."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"قراءة بطاقة الاتصال الخاصة"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"للسماح للتطبيق بقراءة المعلومات الشخصية في الملف الشخصي المخزنة على الجهاز، مثل اسمك ومعلومات جهات الاتصال. ويعني ذلك أنه يمكن للتطبيق التعرف عليك كما يمكنه إرسال معلومات ملفك الشخصي إلى الآخرين."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"تعديل بطاقة جهة الاتصال الخاصة"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"للسماح للتطبيق بتغيير المعلومات الشخصية في الملف الشخصي المخزنة على الجهاز أو الإضافة إليها، مثل اسمك ومعلومات جهات الاتصال. ويعني ذلك أنه يمكن للتطبيق التعرف عليك كما يمكنه إرسال معلومات ملفك الشخصي إلى الآخرين."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"أجهزة استشعار الجسم (مثل شاشات معدل ضربات القلب)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"للسماح للتطبيق بالدخول إلى البيانات من المستشعرات التي تراقب الحالة البدنية، مثل معدل نبضات القلب."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"قراءة المشاركات الاجتماعية"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"للسماح للتطبيق بالدخول إلى التحديثات الاجتماعية منك ومن أصدقائك ومزامنتها. توخ الحذر عند مشاركة المعلومات، حيث يتيح هذا للتطبيق قراءة عمليات التواصل بينك وبين أصدقائك على الشبكات الاجتماعية، بغض النظر عن مدى السرية. ملاحظة: لا يجوز فرض هذا الإذن على جميع الشبكات الاجتماعية."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"كتابة إلى المشاركات الاجتماعية"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"للسماح للتطبيق بعرض التحديثات الاجتماعية منك ومن أصدقائك. توخ الحذر عند مشاركة المعلومات، حيث يتيح هذا للتطبيق إنشاء رسائل يبدو أنها واردة من صديق. ملاحظة: لا يجوز فرض هذا الإذن على جميع الشبكات الاجتماعية."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"قراءة أحداث التقويم بالإضافة إلى المعلومات السرية"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"للسماح للتطبيق بقراءة جميع أحداث التقويم المخزنة على الجهاز اللوحي، بما في ذلك أحداث التقويم التابعة للأصدقاء أو زملاء العمل. وقد يتيح هذا للتطبيق مشاركة بيانات التقويم أو حفظها، بغض النظر عن مدى سرية البيانات أو حساسيتها."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"يتيح للتطبيق قراءة جميع أحداث التقويم المخزنة على التلفزيون، بما في ذلك أحداث الأصدقاء أو زملاء العمل. وقد يتيح هذا للتطبيق مشاركة بيانات التقويم أو حفظها، بغض النظر عن مدى السرية أو الحساسية."</string> @@ -458,10 +444,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"للسماح للتطبيق بتعديل إعدادات المزامنة لحساب ما. على سبيل المثال، يمكن استخدام ذلك لتمكين مزامنة تطبيق \"الأشخاص\" مع حساب ما."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"قراءة إحصاءات المزامنة"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"للسماح للتطبيق بقراءة إحصائيات المزامنة لحساب ما، بما في ذلك سجل الأحداث المتزامنة ومقدار البيانات التي تمت مزامنتها."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"قراءة المصطلحات التي أضفتها إلى القاموس"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"للسماح للتطبيق بقراءة جميع الكلمات والأسماء والعبارات التي ربما يكون المستخدم قد خزنها في قاموس المستخدم."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"إضافة كلمات إلى القاموس المعرّف بواسطة المستخدم"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"للسماح للتطبيق بكتابة كلمات جديدة في قاموس المستخدم."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"قراءة محتويات وحدة تخزين USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"قراءة محتويات بطاقة SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"للسماح للتطبيق بقراءة محتويات وحدة تخزين USB."</string> diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml index de6dce4..35f6479 100644 --- a/core/res/res/values-az-rAZ/strings.xml +++ b/core/res/res/values-az-rAZ/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"kontaktlarınıza daxil olun"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Yer"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"bu cihazın məkanını əldə edin"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosial məlumatınız"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktlarınız və sosial əlaqələriniz haqqında məlumata birbaşa giriş."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Təqvim"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"təqvimə daxil olun"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"göndərin və SMS mesajlarına baxın"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Yaddaş"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"cihazınızda foto, media və fayllara daxil olun"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"İstifadəçi Sözlüyü"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"İstifadəçi lüğətində sözləri oxuyun və ya yazın."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Əlfəcinlər və Tarixçə"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Əlfəcinlərə və brauzer tarixinə birbaşa icazə."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"səsi qeydə alın"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Tətbiqə planşetinizdəki zəng jurnalını, həmçinin gedən və gələn zənglərin siyahısını dəyişməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək, zəng jurnalınıza dəyişiklik edə bilər."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Proqrama TV-nizin zəng jurnalını, o cümlədən daxil olan və çıxan zənglərlə bağlı məlumatları dəyişdirmək imkanı verə bilər. Zərərli proqramlar zəng jurnalınızı silmək və ya dəyişdirmək üçün bundan istifadə edə bilər."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Tətbiqə sizin daxil olan və gedən zənglər daxil olmaqla telefon zəngi loqlarınızı redaktə etmək icazəsi verir. Zərərli tətbiqlər bundan telefon loqlarınızı silmək və ya redaktə etmək üçün istifadə edə bilər."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"öz kontakt kartınızı oxuyun"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Tətbiqə cihazınızda yerləşən adınız və kontakt məlumatlarınız kimi şəxsi profil məlumatlarını oxuma icazəsi verir. Bu o deməkdir ki, tətbiq sizi tanıya və sizin profil məlumatlarınızı başqalarına göndərə bilər."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"sizin kontakt kartınızda dəyişiklik etmək"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Tətbiqə cihazınızda yerləşən adınız və kontakt məlumatlarınız kimi şəxsi profil məlumatlarını dəyişmək və ya əlavə etmək icazəsi verir. Bu o deməkdir ki, tətbiq sizi tanıya və sizin profil məlumatlarınızı başqalarına göndərə bilər."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"bədən sensorları (ürək döyüntüsü sayı kimi)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Tətbiqə ürək döyüntüsü kimi fiziki durumunuzu izləməyən sensorların datasına daxil olmağa icazə verir."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"sosial lentinizi oxuyur"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Tətbiqə Sizin və dostlarınızın sosial güncəllərini əldə etmək və sinxronizə etmək icazəsi verir. Məlumat paylaşarkən diqqətli olun - konfidensiallıqdan asılı olmayaraq bu, Siz və dostlarınız arasında sosial şəbəkələrdəki danışığı oxumaq imkanı verir. Qeyd: bu icazə bütün sosial şəbəkələrdə icra edilə bilməz."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"sosial axınınıza yazır"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Tətbiqə dostlarınızdan sosial yenilənmələri göstərmə icazəsi verir. Məlumat paylaşarkən diqqətli olun - bu dostlarınızdan gələn mesajı emal etməyə izn verir. Qeyd: bu icazə bütün sosial şəbəkələrə şamil olunmaya bilər."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"təqvim tədbirlərini və konfidensial məlumatları oxuyur"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Tətbiqə dostlarınızın və əməkdaşlarınızın planşetinizdə yerləşən kalendar tədbirlərini oxumağa icazə verir. Bu tətbiqə konfidensiallıq və ya həssaslıqdan asılı olmayaraq sizin kalendar məlumatlarınızı paylaşmaq və ya saxlamağa imkan yaradır."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Proqrama TV-də saxlanan, o cümlədən dostlar və həmkarların bütün təqvim hadisələrini oxumaq imkanı verir. Bu, proqrama məxfilik və ya həssaslıqdan asılı olmayaraq təqvim məlumatlarınızı paylaşmaq və ya saxlamaq icazəsi verə bilər."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tətbiqə hesab üçün sinxronizasiya nizamlarını dəyişməyə icazə verir. Məsələn, bu istifadəçi hesablı Şəxslər tətbiqinin sinxronizasiyasını başlamaq üçün istifadə edilə bilər."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"sinxronizasiya statistikasını oxumaq"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tətbiqə sync tədbirlərinin tarixçəsi və nə qədər datanın sinx olduğu da daxil olmaqla bərabər, hər hansı bir hesab üçün olan sinx statlarını oxumağa imkan verir."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lüğətə əlavə etdiyiniz şərtləri oxumaq"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Tətbiqə istifadəçinin lüğətdə saxladığı bütün sözləri, adları və frazaları oxumaq icazəsi verir."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"istifadəçi lüğətinə sözlər əlavə etmək"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Tətbiqə istifadəçi lüğətinə yeni sözlər yazmağa imkan verir."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB yaddaşınızın kontentini oxuyun"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD kartınızın kontentini oxuyun"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Tətbiqə USB yaddaşdan kontent oxuma icazəsi verir."</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index c722256..9a771ea 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"достъп до контактите ви"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Местоположение"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"достъп до местоположението на това устройство"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Социалната ви информация"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Осъществяване на директен достъп до информация за контактите и социалните ви връзки."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"достъп до календара ви"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"изпращане и преглед на SMS съобщения"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Съхранение"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"достъп до снимките, мултимедията и файловете на устройството ви"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Потребителски речник"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Четене или запис на думи в потребителския речник."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Отметки и история"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Осъществяване на директен достъп до отметките и историята на браузъра."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"запис на звук"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Разрешава на приложението да променя списъка с обаждания на таблета ви, включително данните за входящите и изходящите обаждания. Злонамерените приложения могат да използват това, за да изтрият или променят този списък."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Разрешава на приложението да променя списъка с обажданията на телевизора ви, включително данните за входящите и изходящите повиквания. Злонамерените приложения може да използват това, за да изтрият или променят списъка с обажданията ви."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Разрешава на приложението да променя списъка с обаждания на телефона ви, включително данните за входящите и изходящите обаждания. Злонамерените приложения могат да използват това, за да изтрият или променят този списък."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"четене на собств. ви карт. с данни за контакт"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Разрешава на приложението да чете информацията от личния потребителски профил, съхранена на устройството ви, например вашето име и данни за връзка. Това означава, че приложението може да ви идентифицира и да изпраща информацията за потребителския ви профил на други хора."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"промяна на собств. ви карт. с данни за контакт"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Разрешава на приложението да променя или добавя към личния потребителски профил информация, съхранена на устройството ви, като например вашето име и данни за връзка. Това означава, че приложението може да ви идентифицира и да изпраща данните за потребителския ви профил на други хора."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"телесни сензори (като монитори за сърдечния ритъм)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Разрешава на приложението да осъществява достъп до данните от сензорите, които следят физическото ви състояние, като например сърдечния ви ритъм."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"четене на социалния ви поток"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Разрешава на приложението да осъществява достъп и да синхронизира социални актуализации от вас и приятелите ви. Бъдете внимателни при споделянето на информация – това позволява на приложението да чете съобщения помежду ви в социалните мрежи независимо от поверителността. Забележка: Възможно е ограниченията на това разрешение да не могат да бъдат наложени във всички социални мрежи."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"писане в социалния ви поток"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Разрешава на приложението да показва социални актуализации от приятелите ви. Бъдете внимателни при споделянето на информация – това позволява на приложението да генерира съобщения, които изглежда, че идват от приятел. Забележка: Възможно е ограниченията на разрешението да не могат да бъдат наложени във всички социални мрежи."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"четене на събития от календари плюс поверителна информация"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Разрешава на приложението да чете всички събития от календари, съхранени на таблета ви, включително тези на приятели или колеги. Това може да му позволи да споделя или запазва данните от календара ви независимо от поверителността."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Разрешава на приложението да чете всички съхранявани в телевизора ви събития в календара, включително тези на приятели или колеги. Така приложението може да има възможност да споделя или запазва данните от календара ви, независимо дали са поверителни."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Разрешава на приложението да чете настройките за синхронизиране на профил. Например това може да бъде използвано за активиране на синхронизирането на приложението Хора с даден профил."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"четене на статистическите данни за синхронизиране"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Разрешава на приложението да чете статистическите данни за синхронизирането на профил, включително историята на синхронизираните събития и обема на информацията, която се синхронизира."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"четене на думите, които сте добавили в речника"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Разрешава на приложението да чете всички думи, имена и фрази, които потребителят може да е съхранил в потребителския речник."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"добавяне на думи в дефинирания от потребителя речник"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Разрешава на приложението да записва нови думи в потребителския речник."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"четене на съдърж. от USB хран. ви"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"четене на съдържанието от SD картата ви"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Разрешава на прил. да чете съдърж. на USB."</string> diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml index b8a204b..9cda852 100644 --- a/core/res/res/values-bn-rBD/strings.xml +++ b/core/res/res/values-bn-rBD/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"আপনার পরিচিতিগুলিতে অ্যাক্সেস করুন"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"অবস্থান"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"এই ডিভাইসের অবস্থানে অ্যাক্সেস করুন"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"আপনার সামাজিক তথ্য"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"আপনার পরিচিতিগুলি এবং সামাজিক পরিচিতিগুলি সম্পর্কিত তথ্যে সরাসরি অ্যাক্সেস৷"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ক্যালেন্ডার"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"আপনার ক্যালেন্ডারে অ্যাক্সেস করুন"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS বার্তাগুলি পাঠান এবং দেখুন"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"সঞ্চয়স্থান"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"আপনার ডিভাইসে ফটো, মিডিয়া এবং ফাইলগুলিতে অ্যাক্সেস করুন"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ব্যবহারকারীর অভিধান"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ব্যবহারকারীর অভিধানে শব্দগুলিকে পড়ুন এবং লিখুন৷"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"বুকমার্কগুলি এবং ইতিহাস"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"বুকমার্কগুলি এবং ব্রাউজারের ইতিহাসে সরাসরি অ্যাক্সেস৷"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"মাইক্রোফোন"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"অডিও রেকর্ড করুন"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ক্যামেরা"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ইনকামিং ও আউটগোয়িং কলগুলি সম্পর্কিত ডেটা সহ আপনার ট্যাবলেটের কল লগ পরিবর্তন করতে দেয়৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি এটিকে আপনার কল লগ মুছে দিতে বা পরিবর্তন করতে ব্যবহার করতে পারে৷"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ইনকামিং ও আউটগোয়িং কলগুলি সম্পর্কিত ডেটা সহ আপনার টিভির কল লগ পরিবর্তন করতে দেয়৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি এটিকে আপনার কল লগ মুছে দিতে বা পরিবর্তন করতে ব্যবহার করতে পারে৷"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ইনকামিং ও আউটগোয়িং কলগুলি সম্পর্কিত ডেটা সহ আপনার ফোনের কল লগ পরিবর্তন করতে দেয়৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি এটিকে আপনার কল লগ মুছে দিতে বা পরিবর্তন করতে ব্যবহার করতে পারে৷"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"আপনার নিজের পরিচিতি কার্ড পড়ুন"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"অ্যাপ্লিকেশানটিকে আপনার নাম এবং পরিচিতি তথ্যের মতো আপনার ডিভাইসে সংরক্ষিত ব্যক্তিগত প্রোফাইলের তথ্য পড়ার অনুমতি দেয়৷ এর মানে হল এই অ্যাপ্লিকেশানটি আপনাকে শনাক্ত করতে পারে এবং আপনার প্রোফাইলের তথ্য অন্যদের পাঠাতে পারে৷"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"আপনার নিজস্ব পরিচিতি কার্ড সংশোধন করুন"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"অ্যাপ্লিকেশানটিকে আপনার ডিভাইসে সংরক্ষিত ব্যক্তিগত প্রোফাইলের তথ্য যেমন আপনার নাম এবং পরিচিতি তথ্য পড়ার অনুমতি দেয়৷ এর মানে হল এই অ্যাপ্লিকেশানটি আপনাকে শনাক্ত করতে পারে এবং আপনার প্রোফাইলের তথ্য অন্যদের পাঠাতে পারে৷"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"শরীরের সেন্সর (হার্ট রেট মনিটারের মত)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"অ্যাপ্লিকেশানটিকে আপনার শারীরিক অবস্থা যেমন, আপনার হৃৎস্পন্দন পর্যবেক্ষণ করে এমন সেন্সরগুলি অ্যাক্সেস করতে মঞ্জুরি দেয়।"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"আপনার সামাজিক স্ট্রীম পড়ে"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"অ্যাপ্লিকেশানটিকে আপনার এবং আপনার বন্ধুদের থেকে সামাজিক আপডেটগুলিতে অ্যাক্সেস এবং সিঙ্ক করতে দেয়৷ তথ্য ভাগ করার সময় সতর্ক থাকুন -- এই অ্যাপ্লিকেশানটিকে গোপনীয়তা নির্বিশেষে সামাজিক নেটওয়ার্কগুলিতে আপনি এবং আপনার বন্ধুদের মধ্যে যোগাযোগগুলি পড়তে দেয়৷ দ্রষ্টব্য: এই অনুমতি সমস্ত সামাজিক নেটওয়ার্কে বলবৎ নাও হতে পারে৷"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"আপনার সামাজিক স্ট্রীমে লেখে"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"অ্যাপ্লিকেশানটিকে আপনার বন্ধুদের থেকে সামাজিক আপডেটগুলিতে প্রদর্শন করতে দেয়৷ তথ্য ভাগ করার সময় সতর্ক থাকুন -- এই অ্যাপ্লিকেশানটিকে এমন ধরনের বার্তা তৈরি করতে অনুমতি দেয় যা দেখে মনে হবে কোনো বন্ধু আপনাকে পাঠিয়েছে৷ দ্রষ্টব্য: এই অনুমতি সমস্ত সামাজিক নেটওয়ার্কে বলবৎ নাও হতে পারে৷"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ক্যালেন্ডার ইভেন্ট, তার সাথে গোপন তথ্যও পড়ে"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"আপনার ট্যাবলেটে সঞ্চিত সমস্ত ক্যালেন্ডার ইভেন্ট পড়তে অ্যাপ্লিকেশানটিকে মঞ্জুর করে, এর মধ্যে বন্ধু ও সহকর্মীদেরগুলিও অন্তর্ভুক্ত৷ এটি গোপনীয়তা বা সংবেদনশীলতা নির্বিশেষে আপনার ক্যালেন্ডার ডেটা ভাগ ও সংরক্ষণ করতে অ্যাপ্লিকেশানটিকে মঞ্জুর করতে পারে৷"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"অ্যাপ্লিকেশানটিকে আপনার টিভিতে সংরক্ষিত সমস্ত ক্যালেন্ডার ইভেন্টগুলি পড়তে দেয়, যার মধ্যে বন্ধুদের বা সহকর্মীদের ক্যালেন্ডার ইভেন্টগুলিও অন্তর্ভুক্ত থাকে৷ গোপনীয়তা বা সংবেদনশীলতা নির্বিশেষে এটি অ্যাপ্লিকেশানটিকে আপনার ক্যালেন্ডার ডেটা ভাগ করতে বা সংরক্ষণ করার অনুমতি দিতে পারে৷"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"একটি অ্যাকাউন্টের জন্য সমন্বয় সেটিংস সংশোধন করতে একটি অ্যাপ্লিকেশানকে অনুমতি দেয়৷ উদাহরণস্বরূপ, এটি একটি অ্যাকাউন্টের সাথে People অ্যাপ্লিকেশানের সমন্বয় সক্ষম করার কাজে ব্যবহৃত হতে পারে৷"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"সিঙ্ক পরিসংখ্যান পড়ে"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"অ্যাপ্লিকেশানটিকে একটি অ্যাকাউন্টের জন্য কতটা ডেটা সিঙ্ক হয়েছে এবং সিঙ্ক করা ইভেন্টের ইতিহাস সহ সিঙ্কের স্থিতি পড়ার অনুমতি দেয়৷"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"আপনার অভিধানে যোগ করা শব্দগুলি পড়ুন"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"অ্যাপ্লিকেশানটিকে সমস্ত শব্দ, নাম এবং ব্যবহারকারী দ্বারা ব্যবহারকারী অভিধানে সংরক্ষিত বাক্যাংশ পড়ার অনুমতি দেয়৷"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ব্যবহারকারী নির্ধারিত অভিধানে শব্দ যোগ করুন"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"অ্যাপ্লিকেশানকে ব্যবহারকারীর অভিধানের মধ্যে নতুন শব্দ লিখতে দেয়৷"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"আপনার USB সংগ্রহস্থলের সামগ্রীগুলিকে পড়ুন"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"আপনার SD কার্ডের সামগ্রীগুলিকে পড়ুন"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"অ্যাপ্লিকেশানটিকে আপনার USB সঞ্চয়স্থানের সামগ্রীগুলিকে পড়ার অনুমতি দেয়৷"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index abe460e..0402264 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"accedir als contactes"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicació"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"accedeix a la ubicació del dispositiu"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informació social"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accés directe a informació sobre els teus contactes i sobre les teves connexions socials."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendari"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accedir al calendari"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar i llegir missatges SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Emmagatzematge"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accedir a fotos, contingut multimèdia i fitxers del dispositiu"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionari de l\'usuari"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Llegir o escriure paraules al diccionari de l\'usuari."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadors i historial"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accés directe a l\'historial de marcadors i de navegació."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Micròfon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"enregistrar àudio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Càmera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permet que l\'aplicació modifiqui el registre de trucades de la teva tauleta, incloses les dades de les trucades entrants i sortints. És possible que les aplicacions malicioses ho utilitzin per eliminar o per modificar el teu registre de trucades."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permet que l\'aplicació modifiqui el registre de trucades del televisor, com ara les dades de les trucades entrants i sortints. És possible que les aplicacions malicioses l\'utilitzin per esborrar o modificar les dades del registre de trucades."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permet que l\'aplicació modifiqui el registre de trucades del teu telèfon, incloses les dades de les trucades entrants i sortints. És possible que les aplicacions malicioses ho utilitzin per eliminar o per modificar el teu registre de trucades."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lectura targeta de contacte"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permet que l\'aplicació pugui llegir informació del perfil personal emmagatzemada al dispositiu, com ara el teu nom i la teva informació de contacte. Això significa que l\'aplicació et pot identificar i enviar la informació del teu perfil a altres persones."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modificació targeta contacte"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permet que l\'aplicació pugui canviar o afegir informació del perfil personal emmagatzemada al dispositiu, com ara el teu nom i la teva informació de contacte. Això significa que l\'aplicació et pot identificar i enviar la informació del teu perfil a altres persones."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensors corp. (monitors freq. cardíaca)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permet que l\'aplicació accedeixi a les dades dels sensors que supervisen el teu estat físic, com ara la freqüència cardíaca."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"llegeix el teu tauler d\'activitat social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permet que l\'aplicació accedeixi i sincronitzi actualitzacions socials teves i dels teus amics. Vés amb compte en compartir informació: això permet que l\'aplicació llegeixi comunicacions entre tu i els teus amics a les xarxes socials, independentment de la confidencialitat. Nota: És possible que aquest permís no s\'apliqui a totes les xarxes socials."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"escriu al tauler d\'activitat social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permet que l\'aplicació mostri actualitzacions socials dels teus amics. Vés amb compte en compartir informació: això permet que l\'aplicació produeixi missatges que pot semblar que provinguin d\'un amic. Nota: És possible que aquest permís no s\'apliqui a totes les xarxes socials."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"llegeix els esdeveniments del calendari més informació confidencial"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permet que l\'aplicació llegeixi tots els esdeveniments del calendari emmagatzemats a la tauleta, inclosos els dels amics o dels companys de feina. Aquesta acció pot permetre que l\'aplicació comparteixi o desi les dades del teu calendari, sense tenir en compte la confidencialitat."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permet que l\'aplicació llegeixi tots els esdeveniments del calendari emmagatzemats al televisor, com ara els dels amics o els dels companys de feina. Amb aquesta acció, l\'aplicació pot compartir o desar les dades del teu calendari sense tenir en compte la confidencialitat o la sensibilitat."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet que una aplicació modifiqui la configuració de sincronització d\'un compte. Per exemple, aquesta acció es pot fer servir per activar la sincronització de l\'aplicació Persones amb un compte."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"llegir les estadístiques de sincronització"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet que una aplicació llegeixi les estadístiques de sincronització d\'un compte, inclòs l\'historial d\'esdeveniments sincronitzats i quantes dades se sincronitzen."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lectura dels termes que afegeixes al diccionari"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permet que l\'aplicació llegeixi les paraules, els noms i les frases que l\'usuari pot haver emmagatzemat al seu diccionari."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"afegeix paraules al diccionari definit per l\'usuari"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permet que l\'aplicació escrigui paraules noves al diccionari de l\'usuari."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"consultar contingut emmagatzematge USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lectura del contingut de la targeta SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permet que l\'aplicació llegeixi el contingut de l\'emmagatzematge USB."</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 1a80267..c96173e 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"přístup ke kontaktům"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"přístup k poloze tohoto zařízení"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informace o vašich kontaktech a sociálních sítích"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Přímý přístup k informacím o vašich kontaktech a sociálních propojeních"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendář"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"přístup ke kalendáři"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"odesílání a zobrazení zpráv SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Úložiště"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"přístup k fotkám, médiím a souborům na zařízení"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Uživatelský slovník"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čtení a zápis slov v uživatelském slovníku"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Záložky a historie"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Přímý přístup k záložkám a historii prohlížení"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"nahrávání zvuku"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Umožňuje aplikaci upravovat seznam hovorů vašeho tabletu, včetně dat o příchozích a odchozích hovorech. Škodlivé aplikace to mohou zneužít k vymazání nebo změnám seznamu hovorů."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Umožňuje aplikaci upravovat seznam hovorů vaší televize včetně dat o příchozích a odchozích hovorech. Škodlivé aplikace to mohou zneužít k vymazání nebo změnám seznamu hovorů."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Umožňuje aplikaci upravovat seznam hovorů vašeho telefonu, včetně dat o příchozích a odchozích hovorech. Škodlivé aplikace to mohou zneužít k vymazání nebo změnám seznamu hovorů."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"čtení vaší vlastní vizitky"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Umožňuje aplikaci číst údaje v osobním profilu uložené v zařízení, například jméno nebo kontaktní údaje. Znamená to, že vás aplikace může identifikovat a odeslat údaje z profilu dalším aplikacím."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"úprava vaší vlastní vizitky"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Umožňuje aplikaci změnit nebo přidat údaje osobního profilu uložené v zařízení, například jméno nebo kontaktní údaje. Znamená to, že vás aplikace může identifikovat a odeslat údaje z profilu dalším aplikacím."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"tělesné senzory (například snímače tepu)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Umožňuje aplikaci používat data ze senzorů, které sledují vaši fyzickou kondici, například tepovou frekvenci."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"čtení vašeho sociálního streamu"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Umožňuje aplikaci získat přístup k sociálním aktualizacím od vašich přátel a synchronizaci těchto aktualizací. Při sdílení informací buďte opatrní – toto oprávnění umožňuje aplikaci číst komunikaci mezi vámi a vašimi přáteli v sociálních sítích bez ohledu na její důvěrnost. Poznámka: Toto oprávnění nemusí platit pro všechny sociální sítě."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"zápis do sociálního streamu"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Umožňuje aplikaci zobrazit sociální aktualizace od vašich přátel. Při sdílení informací buďte opatrní – aplikace s tímto oprávněním může vytvářet zprávy, které zdánlivě pochází od vašich přátel. Poznámka: Toto oprávnění nemusí platit pro všechny sociální sítě."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"čtení událostí kalendáře a důvěrné informace"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Umožňuje aplikaci číst všechny události kalendáře uložené v tabletu, včetně událostí přátel nebo spolupracovníků. Aplikace s tímto oprávněním může sdílet nebo ukládat údaje v kalendáři bez ohledu na důvěrnost nebo citlivost těchto údajů."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Umožňuje aplikaci číst veškeré události v kalendáři uložené v televizi, a to včetně událostí přátel a spolupracovníků. Aplikaci to může umožnit sdílet nebo ukládat data kalendáře bez ohledu na jejich důvěrnost či citlivost."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Umožňuje aplikaci změnit nastavení synchronizace v účtu. Pomocí tohoto oprávnění lze například zapnout synchronizaci aplikace Lidé s účtem."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"čtení statistických údajů o synchronizaci"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Umožňuje aplikaci číst statistické informace o synchronizaci v účtu, včetně historie uskutečněných synchronizací a informací o množství synchronizovaných dat."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"čtení výrazů přidaných do slovníku"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Umožňuje aplikaci číst slova, jména a fráze, která uživatel mohl uložit do svého slovníku."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"přidávání slov do slovníku definovaného uživatelem"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Umožňuje aplikaci zapisovat nová slova do uživatelského slovníku."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"čtení obsahu v úložišti USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"čtení obsahu na kartě SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Umožňuje aplikaci čtení obsahu USB."</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index f91a069..38caacb 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"have adgang til dine kontaktpersoner"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Placering"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"adgang til enhedens placering"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Dine sociale oplysninger"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte adgang til oplysninger om dine kontaktpersoner og sociale forbindelser."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"have adgang til din kalender"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"Send og se sms-beskeder"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"Få adgang til billeder, medier og filer på din enhed"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Brugerordbog"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Læse eller skrive ord i brugerordbogen."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bogmærker og historik"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte adgang til bogmærker og browserhistorik."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"optage lyd"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Tillader, at appen ændrer din tablets opkaldsliste, f.eks. data om indgående og udgående opkald. Ondsindede apps kan bruge dette til at slette eller ændre din opkaldsliste."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Giver appen lov til at ændre opkaldslisten på dit tv, herunder data om indgående og udgående opkald. Ondsindede apps kan bruge dette til at slette eller ændre din opkaldsliste."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Tillader, at appen ændrer telefonens opkaldsliste, f.eks. data om indgående og udgående opkald. Ondsindede apps kan bruge dette til at slette eller ændre din opkaldsliste."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"læse dit eget kontaktkort"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Tillader, at appen kan læse de personlige profiloplysninger, der er gemt på din enhed, f.eks. dit navn og dine kontaktoplysninger. Det betyder, at appen kan identificere dig og sende dine profiloplysninger til andre."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ændre dit eget kontaktkort"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Tillader, at appen kan ændre eller tilføje oplysninger i din personlige profil, der er gemt på din enhed, f.eks. dit navn eller dine kontaktoplysninger. Dette betyder, at andre apps kan identificere dig og sende profiloplysninger til andre."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kropssensorer (f.eks. pulsmålere)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Giver appen adgang til data fra sensorer, der overvåger din fysiske tilstand, f.eks. din puls."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"læse din sociale strøm"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Tillader, at appen kan få adgang til og synkronisere sociale opdateringer fra dig og dine venner. Vær forsigtig, når du deler oplysninger – med denne tilladelse kan appen læse kommunikation mellem dig og dine venner på sociale netværk, uanset fortrolighed. Bemærk! Denne tilladelse håndhæves muligvis ikke på alle sociale netværk."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"skrive i din sociale strøm"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Tillader, at appen kan vise sociale opdateringer fra dine venner. Vær forsigtig, når du deler oplysninger – med denne tilladelse kan appen producere meddelelser, der kan synes at komme fra en ven. Bemærk! Denne tilladelse håndhæves muligvis ikke på alle sociale netværk."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"læse kalenderbegivenheder og fortrolige oplysninger"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Tillader, at appen kan læse alle de kalenderbegivenheder, der er gemt på din tablet, f.eks. venners eller kollegers. Med denne tilladelse kan appen dele eller gemme dine kalenderdata, uanset fortrolighed eller følsomhed."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Giver appen lov til at læse alle kalenderbegivenheder, der er gemt på dit tv, herunder begivenheder tilhørende venner og kolleger. Dette kan give appen lov til at dele eller gemme dine kalenderdata, uanset om de er fortrolige eller følsomme."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tillader, at en app kan ændre synkroniseringsindstillingerne for en konto. Denne tilladelse kan f.eks. anvendes til at aktivere synkronisering af appen Personer med en konto."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"læse synkroniseringsstatistikker"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tillader, at en app kan læse synkroniseringsstatistikkerne for en konto, f.eks. historikken for synkroniserede begivenheder og hvor meget data der synkroniseres."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"læse termer, som du har føjet til ordbogen"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Tillader, at appen kan læse alle ord, navne og sætninger, som brugeren har gemt i brugerordbogen."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"føj ord til den brugerdefinerede ordbog"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Tillader, at appen kan skrive nye ord i brugerordbogen."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"læse USB-lagerets indhold"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"læse indholdet af dit SD-kort"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Tillader, at appen læser indholdet på dit USB-lager."</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 978a2b7..121e426 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"Auf Kontakte zuzugreifen"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Standort"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"Auf den Standort Ihres Geräts zugreifen"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ihre sozialen Informationen"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkter Zugriff auf Informationen über Ihre Kontakte und sozialen Verbindungen"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"Auf Kalender zuzugreifen"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS senden und abrufen"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Speicher"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"Auf Fotos, Medien und Dateien auf Ihrem Gerät zugreifen"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Mein Wörterbuch"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Wörter in Mein Wörterbuch lesen oder schreiben"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Lesezeichen und Verlauf"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkter Zugriff auf Lesezeichen und Browserverlauf"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"Audio aufzunehmen"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ermöglicht der App, die Anrufliste Ihres Tablets zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihre Anrufliste löschen oder ändern."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Ermöglicht der App, die Anrufliste Ihres Fernsehers zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihre Anrufliste löschen oder ändern."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ermöglicht der App, die Anrufliste Ihres Telefons zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihre Anrufliste löschen oder ändern."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"Ihre Kontaktkarten lesen"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Ermöglicht der App, auf Ihrem Gerät gespeicherte personenbezogene Profildaten zu lesen, einschließlich Ihres Namens und Ihrer Kontaktdaten. Die App kann Sie somit identifizieren und Ihre Profildaten an andere senden."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"Ihre Kontaktkarten ändern"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Ermöglicht der App, auf Ihrem Gerät gespeicherte personenbezogene Profildaten zu ändern, einschließlich Ihres Namens und Ihrer Kontaktdaten, sowie Daten hinzuzufügen. Die App kann Sie so identifizieren und Ihre Profildaten an andere senden."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"Körpersensoren (wie Pulsmonitore)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Ermöglicht der App, auf Daten von Sensoren zuzugreifen, die Ihre körperliche Verfassung überwachen, beispielsweise Ihren Puls"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"In sozialem Stream lesen"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Ermöglicht der App, auf Updates aus sozialen Netzwerken von Ihnen und Ihren Freunden zuzugreifen und diese zu synchronisieren. Seien Sie vorsichtig, wenn Sie Informationen teilen: Der App wird erlaubt, die Kommunikation zwischen Ihnen und Ihren Freunden in sozialen Netzwerken zu lesen, unabhängig von der Vertraulichkeit der kommunizierten Informationen. Hinweis: Diese Berechtigung kann möglicherweise nicht in allen sozialen Netzwerken erzwungen werden."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"In sozialem Stream schreiben"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Ermöglicht der App, Updates aus sozialen Netzwerken von Ihren Freunden einzublenden. Seien Sie vorsichtig, wenn Sie Informationen teilen: Die App kann damit Nachrichten erstellen, die so erscheinen, als stammten Sie von einem Freund. Hinweis: Diese Berechtigung kann möglicherweise nicht in allen sozialen Netzwerken erzwungen werden."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"Kalendertermine sowie vertrauliche Informationen lesen"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Ermöglicht der App, alle auf Ihrem Tablet gespeicherten Kalendertermine zu lesen, einschließlich der von Freunden und Kollegen. Damit kann die App möglicherweise Ihre Kalenderdaten unabhängig von der Vertraulichkeit weiterleiten oder speichern."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Ermöglicht der App, alle auf Ihrem Fernseher gespeicherten Kalendertermine zu lesen, einschließlich der von Freunden und Kollegen. Damit kann die App möglicherweise Ihre Kalenderdaten unabhängig von der Vertraulichkeit teilen oder speichern."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ermöglicht der App, die Synchronisierungseinstellungen eines Kontos zu ändern. Dies kann beispielsweise dazu verwendet werden, die Synchronisierung von Kontakten mit einem Konto zu aktivieren."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"Synchronisierungsstatistiken lesen"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ermöglicht der App, die Synchronisierungsstatistiken eines Kontos zu lesen, einschließlich des Verlaufs von Synchronisierungsereignissen und der Menge synchronisierter Daten."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"Begriffe lesen, die Sie zum Wörterbuch hinzugefügt haben"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Ermöglicht der App, alle Wörter, Namen und Ausdrücke zu lesen, die ein Nutzer in seinem Wörterbuch gespeichert hat."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"Wörter zu meinem Wörterbuch hinzufügen"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ermöglicht der App, neue Einträge zum Nutzerwörterbuch hinzuzufügen"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB-Speicherinhalte lesen"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD-Karteninhalte lesen"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Ermöglicht der App, den USB-Speicher zu lesen"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index a5e8ddd..9c9db11 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"πρόσβαση στις επαφές σας"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Τοποθεσία"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"πρόσβαση στην τοποθεσία αυτής της συσκευής"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Οι κοινωνικές πληροφορίες σας"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Άμεση πρόσβαση σε πληροφορίες σχετικά με τις επαφές και τις κοινωνικές συνδέσεις σας."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Ημερολόγιο"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"πρόσβαση στο ημερολόγιό σας"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"αποστολή και προβολή μηνυμάτων SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Αποθηκευτικός χώρος"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"πρόσβαση στις φωτογραφίες, τα πολυμέσα και τα αρχεία στη συσκευή σας"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Λεξικό χρήστη"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ανάγνωση ή εγγραφή λέξεων στο λεξικό χρήστη."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Σελιδοδείκτες και ιστορικό"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Άμεση πρόσβαση σε σελιδοδείκτες και ιστορικού προγράμματος περιήγησης."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Μικρόφωνο"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"εγγραφή ήχου"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Κάμερα"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Επιτρέπει στην εφαρμογή να τροποποιεί το αρχείο καταγραφής κλήσεων του tablet σας, συμπεριλαμβανομένων των δεδομένων σχετικά με τις εισερχόμενες και τις εξερχόμενες κλήσεις. Οι κακόβουλες εφαρμογές μπορεί να το χρησιμοποιήσουν για να διαγράψουν ή να τροποποιήσουν το αρχείο καταγραφής κλήσεων."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Επιτρέπει στην εφαρμογή να τροποποιεί το αρχείο καταγραφής κλήσεων της τηλεόρασής σας, συμπεριλαμβανομένων των δεδομένων σχετικά με τις εισερχόμενες και τις εξερχόμενες κλήσεις. Κακόβουλες εφαρμογές μπορεί να χρησιμοποιήσουν αυτήν τη δυνατότητα, για να διαγράψουν ή να τροποποιήσουν το αρχείο καταγραφής κλήσεων."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Επιτρέπει στην εφαρμογή να τροποποιεί το αρχείο καταγραφής κλήσεων του τηλεφώνου σας, συμπεριλαμβανομένων των δεδομένων σχετικά με τις εισερχόμενες και τις εξερχόμενες κλήσεις. Οι κακόβουλες εφαρμογές μπορεί να το χρησιμοποιήσουν για να διαγράψουν ή να τροποποιήσουν το αρχείο καταγραφής κλήσεων."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ανάγνωση της κάρτας επαφής σας"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Επιτρέπει στην εφαρμογή την ανάγνωση προσωπικών πληροφοριών προφίλ οι οποίες είναι αποθηκευμένες στη συσκευή σας, όπως το όνομα και τα στοιχεία επικοινωνίας σας. Αυτό σημαίνει ότι η εφαρμογή μπορεί να σας αναγνωρίσει και να στείλει τις πληροφορίες του προφίλ σας σε άλλους."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"τροποποίηση κάρτας επαφής"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Επιτρέπει στην εφαρμογή την αλλαγή ή την προσθήκη προσωπικών πληροφοριών προφίλ οι οποίες είναι αποθηκευμένες στη συσκευή σας, όπως το όνομα και τα στοιχεία επικοινωνίας σας. Αυτό σημαίνει ότι η εφαρμογή μπορεί να σας αναγνωρίσει και να στείλει τις πληροφορίες του προφίλ σας σε άλλα άτομα."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"αισθητήρες λειτουργιών (π.χ. καρδιακό ρυθμό)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Επιτρέπει στην εφαρμογή να αποκτήσει πρόσβαση στα δεδομένα των αισθητήρων που παρακολουθούν τη φυσική σας κατάσταση, όπως τον καρδιακό ρυθμό σας."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"διαβάστε τη ροή σας κοινωνικών δικτύων"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Επιτρέπει στην εφαρμογή την πρόσβαση και το συγχρονισμό κοινωνικών ενημερώσεων από εσάς και τους φίλους σας. Θα πρέπει να είστε προσεκτικοί όταν μοιράζεστε πληροφορίες -- αυτό δίνει τη δυνατότητα στην εφαρμογή να διαβάζει τις επικοινωνίες ανάμεσα σε εσάς και τους φίλους σας σε κοινωνικά δίκτυα, ανεξάρτητα από το επίπεδο εμπιστευτικότητας. Σημείωση: αυτή η άδεια ίσως να μην μπορεί να εφαρμοστεί σε όλα τα κοινωνικά δίκτυα."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"γράψτε στη ροή σας κοινωνικών δικτύων"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Επιτρέπει στην εφαρμογή την προβολή κοινωνικών ενημερώσεων από τους φίλους σας. Θα πρέπει να είστε προσεκτικοί όταν μοιράζεστε πληροφορίες -- αυτό δίνει τη δυνατότητα στην εφαρμογή να δημιουργεί μηνύματα που μπορεί να φαίνεται ότι προέρχονται από κάποιο φίλο. Σημείωση: αυτή η άδεια ίσως να μην μπορεί να εφαρμοστεί σε όλα τα κοινωνικά δίκτυα."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ανάγνωση συμβάντων ημερολογίου και εμπιστευτικών πληροφοριών"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Επιτρέπει στην εφαρμογή την ανάγνωση όλων των συμβάντων ημερολογίου που είναι αποθηκευμένα στο tablet σας, συμπεριλαμβανομένων εκείνων των φίλων ή των συναδέλφων σας. Αυτό μπορεί να δίνει τη δυνατότητα στην εφαρμογή να μοιράζεται ή να αποθηκεύει τα δεδομένα του ημερολογίου σας, ανεξάρτητα από το βαθμό εμπιστευτικότητας ή ευαισθησίας τους."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Επιτρέπει στην εφαρμογή να διαβάζει όλα τα συμβάντα ημερολογίου που είναι αποθηκευμένα στην τηλεόρασή σας, συμπεριλαμβανομένων εκείνων από τους φίλους ή τους συναδέλφους σας. Αυτό μπορεί να επιτρέψει στην εφαρμογή να μοιράζεται ή να αποθηκεύει τα δεδομένα ημερολογίου, ανεξαρτήτως εμπιστευτικότητας ή ευαισθησίας."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Επιτρέπει σε μια εφαρμογή την τροποποίηση των ρυθμίσεων συγχρονισμού για έναν λογαριασμό. Για παράδειγμα, αυτό μπορεί να χρησιμοποιηθεί για να ενεργοποιηθεί ο συγχρονισμός της εφαρμογής \"Άτομα\" με έναν λογαριασμό."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ανάγνωση στατιστικών συγχρονισμού"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Επιτρέπει σε μια εφαρμογή την ανάγνωση των στατιστικών στοιχείων συγχρονισμού για έναν λογαριασμό, συμπεριλαμβανομένων του ιστορικού των συμβάντων συγχρονισμού και του όγκου των δεδομένων που συγχρονίζονται."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ανάγνωση όρων που έχετε προσθέσει στο λεξικό"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Επιτρέπει στην εφαρμογή την ανάγνωση όλων των λέξεων, των ονομάτων και φράσεων, τα οποία ο χρήστης ενδέχεται να έχει αποθηκεύσει στο λεξικό χρήστη."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"προσθήκη λέξεων στο καθορισμένο από το χρήστη λεξικό"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Επιτρέπει στην εφαρμογή την εγγραφή νέων λέξεων στο λεξικό χρήστη."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ανάγν. περιεχ. αποθηκ. χώρ.USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ανάγνωση του περιεχομένου της κάρτας SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Επιτρέπει στην εφαρμογή την ανάγνωση του περιεχομένου του αποθηκευτικού σας χώρου USB."</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index ef20cec..f2f378c 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"access your contacts"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"access this device\'s location"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"send and view SMS messages"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Storage"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"access photos, media and files on your device"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"record audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Allows the app to modify your tablet\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Allows the app to modify your TV\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"read your own contact card"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Allows the app to read personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modify your own contact card"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Allows the app to change or add to personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"body sensors (like heart rate monitors)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Allows the app to access data from sensors that monitor your physical condition, such as your heart rate."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"read your social stream"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Allows the app to access and sync social updates from you and your friends. Be careful when sharing information - this allows the app to read communications between you and your friends on social networks, regardless of confidentiality. Note: this permission may not be enforced on all social networks."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"write to your social stream"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Allows the app to display social updates from your friends. Be careful when sharing information - this allows the app to produce messages that may appear to come from a friend. Note: this permission may not be enforced on all social networks."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"read calendar events plus confidential information"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Allows the app to read all calendar events stored on your tablet, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Allows the app to read all calendar events stored on your TV, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Allows the app to write new words into the user dictionary."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"read the contents of your USB storage"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"read the contents of your SD card"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Allows the app to read the contents of your USB storage."</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index ef20cec..f2f378c 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"access your contacts"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"access this device\'s location"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"send and view SMS messages"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Storage"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"access photos, media and files on your device"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"record audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Allows the app to modify your tablet\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Allows the app to modify your TV\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"read your own contact card"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Allows the app to read personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modify your own contact card"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Allows the app to change or add to personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"body sensors (like heart rate monitors)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Allows the app to access data from sensors that monitor your physical condition, such as your heart rate."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"read your social stream"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Allows the app to access and sync social updates from you and your friends. Be careful when sharing information - this allows the app to read communications between you and your friends on social networks, regardless of confidentiality. Note: this permission may not be enforced on all social networks."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"write to your social stream"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Allows the app to display social updates from your friends. Be careful when sharing information - this allows the app to produce messages that may appear to come from a friend. Note: this permission may not be enforced on all social networks."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"read calendar events plus confidential information"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Allows the app to read all calendar events stored on your tablet, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Allows the app to read all calendar events stored on your TV, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Allows the app to write new words into the user dictionary."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"read the contents of your USB storage"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"read the contents of your SD card"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Allows the app to read the contents of your USB storage."</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index ef20cec..f2f378c 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"access your contacts"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"access this device\'s location"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"access your calendar"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"send and view SMS messages"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Storage"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"access photos, media and files on your device"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"record audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Allows the app to modify your tablet\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Allows the app to modify your TV\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"read your own contact card"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Allows the app to read personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modify your own contact card"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Allows the app to change or add to personal profile information stored on your device, such as your name and contact information. This means that the app can identify you and may send your profile information to others."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"body sensors (like heart rate monitors)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Allows the app to access data from sensors that monitor your physical condition, such as your heart rate."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"read your social stream"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Allows the app to access and sync social updates from you and your friends. Be careful when sharing information - this allows the app to read communications between you and your friends on social networks, regardless of confidentiality. Note: this permission may not be enforced on all social networks."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"write to your social stream"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Allows the app to display social updates from your friends. Be careful when sharing information - this allows the app to produce messages that may appear to come from a friend. Note: this permission may not be enforced on all social networks."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"read calendar events plus confidential information"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Allows the app to read all calendar events stored on your tablet, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Allows the app to read all calendar events stored on your TV, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Allows the app to write new words into the user dictionary."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"read the contents of your USB storage"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"read the contents of your SD card"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Allows the app to read the contents of your USB storage."</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index d0a0c70..8b4f4b7 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"acceder a los contactos"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicación"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"acceso a la ubicación de este dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Tu información social"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceso directo a información sobre tus contactos y conexiones sociales"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder al calendario"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar y ver mensajes SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Espacio de almacenamiento"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"acceder a las fotos, el contenido multimedia y los archivos del dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionario del usuario"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"leer o escribir palabras en el diccionario del usuario"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e historial"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceso directo a marcadores e historial del navegador"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"grabar audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite que la aplicación modifique el registro de llamadas de la tablet, incluidos los datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite que la aplicación modifique el registro de llamadas de la TV, incluidos los datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite que la aplicación modifique el registro de llamadas del dispositivo, incluidos los datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"leer tarjeta contacto propia"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite que la aplicación consulte la información del perfil personal almacenada en el dispositivo, como el nombre o la información de contacto, lo que significa que la aplicación puede identificar al usuario y enviar la información de su perfil a otros usuarios."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modif. tarjeta contacto propia"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite que la aplicación modifique la información del perfil personal almacenada en el dispositivo, como el nombre o la información de contacto, o que agregue contenido a esa información. Esto significa que puede identificarte y enviar la información de tu perfil a otros usuarios."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensores corporales (frec. card)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite que la aplicación acceda a datos de sensores que controlan tu condición física, como el ritmo cardíaco."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"Lectura de tu muro social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite que la aplicación acceda a las actualizaciones de tus redes sociales y las de tus amigos, y que las sincronice. Ten cuidado al compartir información, ya que la aplicación puede utilizar este permiso para leer las conversaciones que tengas con tus amigos en las redes sociales sin tener en cuenta si son confidenciales. Nota: Este permiso no se puede utilizar en todas las redes sociales."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"Escritura en tu muro social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite que la aplicación muestre actualizaciones de las redes sociales de tus amigos. Ten cuidado al compartir información, ya que la aplicación puede generar mensajes que parezcan proceder de amigos. Nota: Este permiso no se puede utilizar en todas las redes sociales."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"leer eventos de calendario e información confidencial"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite que la aplicación consulte todos los eventos de calendario almacenados en la tablet, incluidos los de amigos y compañeros de trabajo. La aplicación puede utilizar este permiso para compartir o guardar datos del calendario del usuario sin tener en cuenta si son privados o confidenciales."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite que la aplicación lea todos los eventos de calendario almacenados en la TV, incluidos aquellos de amigos o colegas. Esta opción puede permitir que la aplicación comparta o guarde datos de calendario, independientemente de la confidencialidad o la privacidad."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que la aplicación modifique la configuración de sincronización de una cuenta. Este permiso se puede utilizar, por ejemplo, para activar la sincronización de la aplicación Personas con una cuenta."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"leer estadística de sincronización"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que la aplicación consulte las estadísticas de sincronización de una cuenta, por ejemplo, el historial de eventos sincronizados y la cantidad de datos sincronizados."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"leer los términos que agregaste al diccionario"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que la aplicación consulte cualquier palabra, nombre o frase que el usuario haya almacenado en su diccionario."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"agregar palabras en el diccionario definido por el usuario"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite que la aplicación ingrese palabras nuevas en el diccionario del usuario."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"leer contenido de disp. USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"leer el contenido de tu tarjeta SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permite leer contenido de USB."</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 3839d86..53e3e20 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"acceder a tus contactos"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicación"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"acceder a la ubicación de este dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Tu información social"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceder directamente a la información de tus contactos y tus conexiones sociales"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder a tu calendario"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar y ver mensajes SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Almacenamiento"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"acceder a fotos, contenido multimedia y archivos de tu dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionario del usuario"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Leer o escribir palabras en el diccionario del usuario."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e historial"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceder directamente a los marcadores y al historial del navegador"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"grabar audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite que la aplicación modifique el registro de llamadas del tablet, incluidos datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite que la aplicación modifique el registro de llamadas de la TV, incluidos datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden utilizar este permiso para borrar o modificar el registro de llamadas."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite que la aplicación modifique el registro de llamadas del teléfono, incluidos datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"consultar tu propia tarjeta de contacto"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite que la aplicación consulte la información del perfil personal almacenada en el dispositivo (como el nombre o la información de contacto), lo que significa que la aplicación puede identificar al usuario y enviar la información de su perfil a otros usuarios."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modificar tu propia tarjeta de contacto"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite que la aplicación modifique la información del perfil personal almacenada en el dispositivo (como el nombre o la información de contacto) o que añada contenido a esa información, lo que significa que puede identificar al usuario y enviar la información de su perfil a otros usuarios."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensores corporales (como monitores de frecuencia cardíaca)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite que la aplicación acceda a datos de sensores que controlan tu condición física, como la frecuencia cardíaca."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"consulta tu actividad social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite que la aplicación acceda a novedades de redes sociales tuyas y de tus amigos y las sincronice. Ten cuidado al compartir información, ya que la aplicación puede utilizar este permiso para leer conversaciones privadas con tus amigos en las redes sociales sin tener en cuenta si son confidenciales. Nota: este permiso no se puede utilizar en todas las redes sociales."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"escribir en tu actividad social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite que la aplicación muestre novedades de redes sociales de tus amigos. Ten cuidado al compartir información, ya que la aplicación puede utilizar este permiso para generar mensajes que parezcan proceder de amigos. Nota: este permiso no se puede utilizar en todas las redes sociales."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"leer eventos de calendario e información confidencial"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite que la aplicación consulte todos los eventos de calendario almacenados en el tablet, incluidos los de amigos y compañeros de trabajo. La aplicación puede utilizar este permiso para compartir o guardar datos del calendario del usuario sin tener en cuenta si son privados o confidenciales."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite que la aplicación lea los eventos de calendario almacenados en la TV, incluidos los eventos de amigos y compañeros de trabajo. Esto puede permitir a la aplicación compartir o guardar tus datos de calendario, independientemente de su nivel de privacidad o confidencialidad."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que la aplicación modifique la configuración de sincronización de una cuenta. Este permiso se puede utilizar, por ejemplo, para habilitar la sincronización de la aplicación Contactos con una cuenta."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"leer estadísticas de sincronización"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que la aplicación consulte las estadísticas de sincronización de una cuenta (por ejemplo, el historial de eventos sincronizados y la cantidad de datos sincronizados)."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"consultar términos que hayas añadido al diccionario"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que la aplicación lea cualquier palabra, nombre o frase que el usuario haya almacenado en su diccionario."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"añadir palabras al diccionario definido por el usuario"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite que la aplicación escriba palabras nuevas en el diccionario de usuario."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"consultar el contenido del almacenamiento USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"consultar el contenido de la tarjeta SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permite que la aplicación lea el contenido del almacenamiento USB."</string> diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index 3c8a0ca..a9d9db5 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"juurdepääs kontaktidele"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Asukoht"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"pääseda juurde selle seadme asukohale"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Teie sotsiaalne teave"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Otsene juurdepääs teie kontaktide teabele ja sotsiaalsetele sidemetele."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"juurdepääs kalendrile"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"saata ja vaadata SMS-sõnumeid"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Mäluruum"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"juurde pääseda seadmesse salvestatud fotodele, meediale ja failidele"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kasutaja sõnaraamat"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kasutaja sõnaraamatus sõnade lugemine ja nende sinna kirjutamine."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Järjehoidjad ja ajalugu"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Otsene juurdepääs järjehoidjatele ja brauseri ajaloole."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"heli salvestamine"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kaamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Lubab rakendusel muuta tahvelarvuti kõnelogi, sh sissetulevate ja väljaminevate kõnede andmeid. Pahatahtlikud rakendused võivad kasutada seda kõnelogi kustutamiseks või muutmiseks."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Lubab rakendusel muuta teleri kõnelogi, sh sissetulevate ja väljaminevate kõnede andmeid. Pahatahtlikud rakendused võivad kasutada seda kõnelogi kustutamiseks või muutmiseks."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Lubab rakendusel muuta telefoni kõnelogi, sh sissetulevate ja väljaminevate kõnede andmeid. Pahatahtlikud rakendused võivad kasutada seda kõnelogi kustutamiseks või muutmiseks."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lugege oma kontaktikaarti"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Võimaldab rakendusel lugeda seadmesse salvestatud isiklikku profiiliteavet, näiteks teie nime ja kontaktteavet. See tähendab, et rakendus saab teid tuvastada ja saata teie profiiliteavet teistele."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"muutke oma kontaktikaarti"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Võimaldab rakendusel muuta või lisada seadmesse salvestatud isiklikku profiiliteavet, näiteks teie nime ja kontaktteavet. See tähendab, et rakendus saab teid tuvastada ja saata teie profiiliteavet teistele."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kehaandurid (nt pulsilugeja)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Lubab rakendusel hankida juurdepääsu andmetele anduritest, mis jälgivad teie füüsilist seisundit, nt südame löögisagedust."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"Sotsiaalvoo lugemine"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Annab rakendusele juurdepääsu ja võimaldab sünkroonida teie ja teie sõprade sotsiaalseid värskendusi. Olge teabe jagamisel ettevaatlik – see võimaldab rakendusel lugeda teie suhtlusi sõpradega suhtlusvõrgustikes konfidentsiaalsusest hoolimata. Märkus: see luba ei pruugi jõustuda kõigis suhtlusvõrgustikes."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"Sotsiaalvoogu kirjutamine"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Võimaldab rakendusel kuvada sõprade sotsiaalseid värskendusi. Olge teabe jagamisel ettevaatlik – see võimaldab rakendusel luua sõnumeid, mis võivad näida tulevat sõpradelt. Märkus: see luba ei pruugi jõustuda kõikides suhtlusvõrgustikes."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"kalendrisündmuste lugemine ja konfidentsiaalne teave"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Võimaldab rakendusel lugeda kõiki tahvelarvutisse salvestatud kalendrisündmusi, sh sõprade või töökaaslaste omi. See võib lubada rakendusel jagada või salvestada teie kalendriandmeid, hoolimata konfidentsiaalsusest või tundlikkusest."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Lubab rakendusel lugeda telerisse salvestatud kalendrisündmusi, sh sõprade ja töökaaslaste sündmusi. See võib võimaldada rakendusel kalendriandmeid jagada või salvestada, olenemata nende konfidentsiaalsusest või tundlikkusest."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Võimaldab rakendusel muuta konto sünkroonimisseadeid. Näiteks saab seda kasutada, et lubada rakenduse Inimesed sünkroonimine kontoga."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"loe sünkroonimisstatistikat"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Võimaldab rakendusel lugeda konto sünkroonimisstatistikat, sh sünkroonimissündmuste ajalugu ja sünkroonitud andmete hulka."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lugege termineid, mis te sõnastikku lisasite"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Võimaldab rakendusel lugeda kõiki sõnu, nimesid ja fraase, mille kasutaja on kasutaja sõnaraamatusse salvestanud."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"sõnade lisamine kasutaja määratletud sõnastikku"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Võimaldab rakendusel kirjutada kasutajasõnastikku uusi sõnu."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lugege USB-salvestusruumi sisu"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lugege oma SD-kaardi sisu"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Lubab rakendusel lugeda USB-salvestusruumi sisu."</string> diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml index 27275bc..3c73f4f 100644 --- a/core/res/res/values-eu-rES/strings.xml +++ b/core/res/res/values-eu-rES/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"Atzitu kontaktuak"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Kokapena"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"Atzitu gailuaren kokapena"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sare sozialetako zure informazioa"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Zure kontaktuei eta konexio sozialei buruzko informaziorako sarbide zuzena."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Egutegia"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"Atzitu egutegia"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS mezuak"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"Bidali eta ikusi SMS mezuak"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Memoria"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"Atzitu gailuko argazkiak, multimedia-elementuak eta fitxategiak"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Erabiltzailearen hiztegia"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Irakurri edo idatzi hitzak erabiltzaileek hiztegian."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Laster-markak eta historia"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Laster-marketarako eta arakatzailearen historiarako sarbide zuzena."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonoa"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"Grabatu audioa"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Tabletaren deien erregistroa aldatzeko baimena ematen die aplikazioei, sarrerako eta irteerako deiei buruzko datuak barne. Aplikazio gaiztoek deien erregistroa ezabatzeko edo aldatzeko erabil dezakete."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Telebistako deien erregistroa aldatzea baimentzen die aplikazioei, sarrerako eta irteerako deiei buruzko datuak barne. Aplikazio gaiztoek deien erregistroa ezabatzeko edo aldatzeko erabil dezakete."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Telefonoaren deien erregistroa aldatzeko baimena ematen die aplikazioei, sarrerako eta irteerako deiei buruzko datuak barne. Aplikazio gaiztoek deien erregistroa ezabatzeko edo aldatzeko erabil dezakete."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"zeure kontaktu-txartela irakurtzea"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Gailuan gordetako profil pertsonalaren informazioa irakurtzeko baimena ematen die aplikazioei; esaterako, zure izena eta harremanetan jartzeko informazioa. Horrek esan nahi du aplikazioek identifikatu egin zaitzaketela eta zure profil-informazioa besteei bidal diezaieketela."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"zeure kontaktu-txartela aldatzea"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Gailuan gordetako profil pertsonalaren informazioa aldatzeko baimena ematen dio; esaterako, zure izena eta harremanetan jartzeko informazioa. Horrek esan nahi du aplikazioak identifikatu egin zaitzakeela eta zure profil-informazioa besteei bidal diezaiekeela."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"Gorputzaren sentsoreak (adibidez, bihotz-erritmoaren monitoreak)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Zure egoera fisikoa kontrolatzen duten sentsoreetako datuak (adibidez, bihotz-maiztasuna) atzitzea baimentzen die aplikazioei."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"irakurri sare sozialetako korronteak"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Zure eta zure lagunen sare sozialetako eguneratzeak atzitzeko baimena ematen die aplikazioei. Kontuz partekatu informazioa; baimen honekin aplikazioak zure eta zure lagunen arteko sare sozialetako komunikazioak irakur ditzake, isilpekotasuna kontuan izan gabe. Oharra: baliteke baimen hori sare sozial guztiek ez aplikatzea."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"idatzi sare sozialetako korronteetan"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Zure lagunen sare sozialetako eguneratzeak bistaratzeko baimena ematen die aplikazioei. Kontuz partekatu informazioa; baimen honekin aplikazioak zure lagunenak direla diruditen mezuak sor ditzake. Oharra: baliteke baimen hori sare sozial guztiek ez aplikatzea."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"irakurri egutegiko gertaerak eta isilpeko informazioa"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Tabletan gordetako egunkari-gertaera guztiak irakurtzeko baimena ematen die aplikazioei, lagunenak eta lankideenak barne. Horrela, aplikazioak egutegiko datuak parteka edo gorde ditzake, isilpekotasuna edo konfidentzialtasuna kontuan izan gabe."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Telebistan gordetako egutegiko gertaera guztiak irakurtzea baimentzen die aplikazioei, lagunenak eta lankideenak barne. Horrela, aplikazioek egutegiko datuak parteka edo gorde ditzakete, isilpekotasuna edo konfidentzialtasuna kontuan izan gabe."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Kontu baten sinkronizazio-ezarpenak aldatzeko baimena ematen die aplikazioei. Adibidez, Jendea aplikazioa kontu batekin sinkronizatzeko erabil daiteke."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"irakurri sinkronizazio-estatistikak"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Kontu baten sinkronizazio-estatistikak irakurtzeko baimena ematen dio; besteak beste, sinkronizazio-gertaeren historia eta sinkronizatutako datu kopurua."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"hiztegian gehitutako terminoak irakurtzea"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Erabiltzaile-hiztegian erabiltzaileak gordetako hitzak, izenak eta esaldiak irakurtzeko baimena ematen die aplikazioei."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"erabiltzaileak definitutako hiztegian hitzak gehitzea"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Erabiltzailearen hiztegian hitz berriak idaztea baimentzen die aplikazioei."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB memoriako edukia irakurtzea"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD txarteleko edukia irakurtzea"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"USB memoriako edukia irakurtzeko aukera ematen die aplikazioei."</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 5efbd5c..dfcabc3 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"دسترسی به مخاطبین شما"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"مکان"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"دسترسی به موقعیت مکانی این دستگاه"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"اطلاعات اجتماعی شما"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"مستقیم به اطلاعات مخاطبین و روابط اجتماعی دسترسی داشته باشید."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"تقویم"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"دسترسی به تقویم شما"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"پیامک"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"ارسال و مشاهده پیامکها"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"حافظه"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"دسترسی به عکسها، رسانهها و فایلهای روی دستگاهتان"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"فرهنگ لغت کاربر"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"خواندن یا نوشتن کلمات در فرهنگ لغت کاربر."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"نشانکها و سابقه"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"مستقیم به نشانکها و سابقه مرور دسترسی داشته باشید."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"میکروفن"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ضبط صدا"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"دوربین"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"به برنامه اجازه میدهد گزارشات تماس رایانهٔ لوحی شما، از جمله دادههایی درمورد تماسهای ورودی و خروجی را تغییر دهد. برنامههای مخرب ممکن است از این ویژگی برای پاک کردن یا تغییر گزارش تماس شما استفاده کنند."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"به برنامه اجازه میدهد گزارشات تماس تلویزیون شما، از جمله دادههایی درمورد تماسهای ورودی و خروجی را تغییر دهد. برنامههای مخرب شاید از این ویژگی برای پاک کردن یا تغییر گزارش تماس شما استفاده کنند."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"به برنامه اجازه میدهد گزارشات تماس تلفنی شما، از جمله دادههایی درمورد تماسهای ورودی و خروجی را تغییر دهد. برنامههای مخرب ممکن است از این ویژگی برای پاک کردن یا تغییر گزارش تماس شما استفاده کنند."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"خواندن کارت تماس شما"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"به برنامه اجازه میدهد اطلاعات نمایه شخصی ذخیره شده در دستگاه شما، مانند نام و اطلاعات تماس شما را بخواند. یعنی برنامه میتواند شما را شناسایی کند و ممکن است اطلاعات نمایهٔ شما را به دیگران ارسال کند."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"اصلاح کارت تماس شما"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"به برنامه اجازه میدهد تا اطلاعات نمایه شخصی ذخیره شده در دستگاه شما، مانند نام و اطلاعات تماس شما را تغییر دهد یا اضافه کند. یعنی برنامه میتواند شما را شناسایی کند و ممکن است اطلاعات نمایهٔ شما را برای دیگران ارسال کند."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"حسگرهای بدن (مانند پایشگرهای ضربان قلب)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"به برنامه امکان میدهد به اطلاعات حسگرهایی که بر شرایط فیزیکی شما مانند ضربان قلبتان، نظارت دارند، دسترسی داشته باشد."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"خواندن جریان اجتماعی شما"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"به برنامه اجازه میدهد به بهروزرسانیهای اجتماعی از طرف شما و دوستان شما دسترسی پیدا کرده و آنها را همگامسازی کند. دقت کنید که هنگام اشتراکگذاری -- این ویژگی به برنامه اجازه میدهد ارتباطات بین شما و دوستان شما را در شبکههای اجتماعی، صرفنظر از محرمانه بودن آنها بخواند. توجه: این مجوز ممکن است در همه شبکههای اجتماعی اجرا نشود."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"نوشتن در جریان اجتماعی شما"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"به برنامه اجازه میدهد بهروزرسانیهای اجتماعی از طرف دوستان شما را نمایش دهد. دقت کنید هنگام اشتراکگذاری اطلاعات -- این ویژگی به برنامه اجازه میدهد پیامهایی را که به نظر میرسد از طرف یکی از دوستان شما باشد ایجاد کند. توجه: این مجوز در همه شبکههای اجتماعی قابل اجرا نیست."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"خواندن رویدادهای تقویم به همراه اطلاعات محرمانه"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"به برنامه امکان میدهد همه رویدادهای تقویم ذخیره شده در رایانهٔ لوحی شما را بخواند، از جمله رویدادهای دوستان یا همکاران. این ممکن است به برنامه امکان دهد دادههای تقویم شما را صرفنظر از محرمانه یا حساس بودن آنها به اشتراک گذاشته یا ذخیره کند."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"به برنامه اجازه میدهد تا همه رویدادهای تقویم ذخیرهشده روی تلویزیون از جمله رویدادهای دوستان یا همکاران را بخواند. شاید به برنامه اجازه دهد تا اطلاعات تقویم را صرفنظر از محرمانه بودن یا حساسیت، به اشتراک بگذارد یا ذخیره کند."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"به یک برنامه اجازه میدهد تنظیمات همگامسازی را برای یک حساب اصلاح کند. بهعنوان مثال، از این ویژگی میتوان برای فعال کردن همگامسازی برنامه «افراد» با یک حساب استفاده کرد."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"خواندن اطلاعات آماری همگامسازی"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"به یک برنامه اجازه میدهد وضعیت همگامسازی یک حساب را بخواند، از جمله سابقه رویدادهای همگامسازی و میزان دادههای همگامسازی شده."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"خواندن واژههایی که به فرهنگ لغت اضافه کردید"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"به برنامه اجازه میدهد همه کلمه، نام و عباراتی را که کاربر در فرهنگ لغت خود ذخیره کرده است بخواند."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"افزودن کلمات به فرهنگ لغت تعریف شده توسط کاربر"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"به برنامه اجازه میدهد تا کلمات جدید را در فهرست کاربر بنویسد."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"خواندن محتویات حافظهٔ USB شما"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"خواندن محتویات کارت SD شما"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"به برنامه اجازه میدهد محتواهای فضای ذخیره USB را بخواند."</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 981f117..76d6fab 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"käyttää yhteystietoja"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Sijainti"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"käyttää laitteen sijaintia"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosiaaliset tietosi"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktiesi ja internet-kontaktiesi tietojen käyttöoikeus."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenteri"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"käyttää kalenteria"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Tekstiviestit"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"lähettää ja tarkastella tekstiviestejä"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Tallennustila"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"käyttää laitteellesi tallennettuja valokuvia, mediatiedostoja ja muita tiedostoja"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Käyttäjän sanakirja"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lue tai kirjoita sanoja käyttäjän sanakirjaan."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Kirjanmerkit ja historia"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Kirjanmerkkien ja selaimen historian käyttöoikeus."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofoni"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"tallentaa ääntä"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Antaa sovelluksen muokata tablet-laitteesi puhelulokia, kuten tietoja vastatuista ja soitetuista puheluista. Haitalliset sovellukset voivat poistaa puhelulokisi tai muokata sitä."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Antaa sovelluksen muokata television puhelulokia, kuten tietoja vastatuista ja soitetuista puheluista. Haitalliset sovellukset voivat poistaa puhelulokisi tai muokata sitä."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Antaa sovelluksen muokata puhelimesi puhelulokia, kuten tietoja vastatuista ja soitetuista puheluista. Haitalliset sovellukset voivat poistaa puhelulokisi tai muokata sitä."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lue omia yhteystietoja"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Antaa sovelluksen lukea laitteelle tallennettuja henkilökohtaisia tietoja, kuten nimen ja yhteystietoja. Sovellus voi tunnistaa sinut ja lähettää profiilitietojasi muille."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"muokkaa omia yhteystietoja"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Antaa sovelluksen muuttaa laitteelle tallennettuja henkilökohtaisia tietoja, kuten nimeä ja yhteystietoja, tai lisätä niitä. Sovellus voi tunnistaa sinut ja lähettää profiilitietojasi muille."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kehon anturit (kuten sykemittarit)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Antaa sovelluksen käyttää kehosi tilaa seuraavien anturien tietoja, esimerkiksi sykettä."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lue sosiaalista streamia"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Antaa sovelluksen käyttää ja synkronoida sinun tai kavereidesi päivityksiä sosiaalisista palveluista. Mieti tarkkaan ennen tietojen jakamista: tämän luvan saaneet sovellukset voivat lukea sinun ja kavereidesi välisiä viestejä sosiaalisissa verkkopalveluissa huolimatta viestien arkaluonteisuudesta. Huom: tätä lupaa ei saa ottaa käyttöön kaikissa sosiaalisissa verkkopalveluissa."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"kirjoita sosiaaliseen streamiin"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Antaa sovelluksen näyttää kavereidesi päivityksiä sosiaalisista palveluista. Mieti tarkkaan ennen tietojen jakamista: tämän luvan saaneet sovellukset voivat luoda viestejä, jotka vaikuttavat kavereidesi lähettämiltä. Huom: tätä lupaa ei saa ottaa käyttöön kaikissa sosiaalisissa verkkopalveluissa."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lue kalenteritapahtumia ja luottamuksellisia tietoja"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Antaa sovelluksen lukea tablet-laitteelle tallennettuja kalenteritapahtumia, myös kavereiden tai työkavereiden tapahtumia. Sovellus voi jakaa tai tallentaa kalenteritietojasi niiden arkaluonteisuudesta huolimatta."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Antaa sovelluksen lukea kaikkia televisioon tallennettuja kalenteritapahtumia, myös kavereiden ja työkavereiden tapahtumia. Sovellus voi jakaa tai tallentaa kalenteritietoja niiden arkaluonteisuudesta huolimatta."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Antaa sovelluksen muokata tilin synkronointiasetuksia. Sovellus voi esimerkiksi ottaa Ihmiset-sovelluksen synkronoinnin käyttöön tilissä."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lue synkronointitilastoja"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Antaa sovelluksen lukea tilien synkronoinnin tilan sekä synkronoitujen tapahtumien historian ja kuinka paljon tietoja on synkronoitu."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lue sanakirjaan lisättyjä termejä"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Antaa sovelluksen lukea sanoja, nimiä tai ilmauksia, joita käyttäjä on voinut tallentaa käyttäjän sanakirjaan."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"lisää sanoja käyttäjän sanakirjaan"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Antaa sovelluksen kirjoittaa uusia sanoja käyttäjän sanakirjaan."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lue USB-tallennustilan sis."</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lue SD-kortin sisältöä"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Antaa sovelluksen lukea USB-tallennuslaitteen sisällön."</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index bfa55b9..646ab21 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"accéder à vos contacts"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Localisation"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"accéder à la position de cet appareil"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vos données sur les réseaux sociaux"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accès direct aux informations sur vos contacts et vos amis sur les réseaux sociaux"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accéder à votre agenda"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Messagerie texte"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"envoyer et afficher des messages texte"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Stockage"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accéder à des photos, à des contenus multimédias et à des fichiers sur votre appareil"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dctionnaire personnel"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lire ou écrire des mots dans le dictionnaire personnel."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoris et historique"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accès direct aux favoris et à l\'historique du navigateur"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"enregistrer des fichiers audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Appareil photo"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permet à l\'application de lire le journal d\'appels de votre tablette, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permet à l\'application de modifier le journal d\'appels de votre téléviseur, y compris les données sur les appels entrants et sortants. Des applications malveillantes pourraient utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permet à l\'application de lire le journal d\'appels de votre téléphone, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lire votre fiche de contact"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permet à l\'application d\'accéder aux données de profil enregistrées sur votre appareil, comme votre nom et vos coordonnées. L\'application peut alors vous identifier et envoyer les données de votre profil à des tiers."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modifier votre fiche de contact"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permet à l\'application de modifier les données de profil enregistrées sur votre appareil, telles que votre nom et vos coordonnées, ou d\'en ajouter. Elle peut alors vous identifier et envoyer vos données de profil à des tiers."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"capteurs corporels (tels que les moniteurs de fréquence cardiaque)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permet à l\'application d\'accéder aux données des capteurs qui surveillent votre condition physique, comme votre rythme cardiaque."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lire les flux de réseaux sociaux"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permet à l\'application d\'accéder à vos mises à jour sur les réseaux sociaux, ainsi qu\'à celles de vos amis, et de les synchroniser. Soyez prudent lorsque vous partagez de l\'information. Cette autorisation permet à l\'application de lire les communications entre vous et vos amis sur les réseaux sociaux, indépendamment de leur caractère confidentiel. Remarque : Il est possible que cette autorisation ne soit pas appliquée sur tous les réseaux sociaux."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"modifier vos flux de réseaux sociaux"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permet à l\'application d\'afficher les mises à jour de vos amis sur les réseaux sociaux. Soyez prudent lorsque vous partagez de l\'information. Cette autorisation permet à l\'application de générer des messages qui peuvent sembler provenir d\'un ami. Remarque : Il est possible que cette autorisation ne soit pas appliquée sur tous les réseaux sociaux."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"consulter les événements d\'agenda ainsi que les données confidentielles qu\'ils contiennent"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permet à l\'application de lire tous les événements d\'agenda stockés sur votre tablette, y compris ceux de vos amis ou de vos collègues. Cette autorisation peut lui permettre de partager ou d\'enregistrer vos données d\'agenda, indépendamment de leur caractère confidentiel ou sensible."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permet à l\'application de lire tous les événements du calendrier stockés sur votre téléviseur, y compris ceux de vos amis ou collègues. Cela peut permettre à l\'application de partager ou d\'enregistrer vos données de calendrier, indépendamment de la confidentialité ou de la sensibilité."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet à une application de modifier les paramètres de synchronisation d\'un compte. Cette autorisation peut, par exemple, être utilisée pour activer la synchronisation de l\'application Contacts avec un compte."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lire les statistiques de synchronisation"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet à une application d\'accéder aux statistiques de synchronisation d\'un compte, y compris l\'historique des événements de synchronisation et le volume de données synchronisées."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"voir les termes ajoutés au dictionnaire personnel"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permet à l\'application d\'accéder aux mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ajouter des mots au dictionnaire personnel"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permet à l\'application d\'enregistrer de nouveaux mots dans le dictionnaire personnel de l\'utilisateur."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lire le contenu du stockage USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lire le contenu de la carte SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permet à l\'application de lire le contenu de votre périphérique de stockage USB."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 5a9b8ca..c235486 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"accéder à vos contacts"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Position"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"accéder à la position de cet appareil"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vos informations sur les réseaux sociaux"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accès direct aux informations sur vos contacts et vos amis sur les réseaux sociaux"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accéder à votre agenda"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"envoyer et consulter des SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Stockage"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accéder à des photos, à des contenus multimédias et à des fichiers sur votre appareil"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dictionnaire personnel"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Consulter et ajouter des mots dans le dictionnaire personnel"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoris et historique"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accès direct aux favoris et à l\'historique du navigateur"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"enregistrer des fichiers audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Appareil photo"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permet à l\'application de lire le journal d\'appels de votre tablette, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permet à l\'application de lire le journal d\'appels du téléviseur, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permet à l\'application de lire le journal d\'appels de votre téléphone, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"voir votre fiche de contact"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permet à l\'application d\'accéder aux informations de profil stockées sur votre appareil, telles que votre nom et vos coordonnées. L\'application peut alors vous identifier et envoyer vos informations de profil à des tiers."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modifier votre fiche de contact"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permet à l\'application de modifier les informations de profil stockées sur votre appareil, telles que votre nom et vos coordonnées, ou d\'en ajouter. Elle peut alors vous identifier et envoyer vos informations de profil à des tiers."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"capteurs corporels (tels que les cardiofréquencemètres)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permet à l\'application d\'accéder aux données des capteurs qui contrôlent votre condition physique, comme votre rythme cardiaque."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lire votre flux de réseau social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permet à l\'application d\'accéder à vos mises à jour sur les réseaux sociaux, ainsi qu\'à celles de vos amis, et de les synchroniser. Soyez prudent lorsque vous partagez des informations. Cette autorisation permet à l\'application de lire les communications entre vous et vos amis sur les réseaux sociaux, indépendamment de leur caractère confidentiel. Remarque : il est possible que cette autorisation ne soit pas appliquée sur tous les réseaux sociaux."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"écrire sur votre flux social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permet à l\'application d\'afficher les mises à jour de vos amis sur les réseaux sociaux. Soyez prudent lorsque vous partagez des informations. Cette autorisation permet à l\'application de générer des messages qui peuvent sembler provenir d\'un ami. Remarque : il est possible que cette autorisation ne soit pas appliquée sur tous les réseaux sociaux."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"consulter les événements d\'agenda ainsi que les informations confidentielles"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permet à l\'application de lire tous les événements d\'agenda stockés sur votre tablette, y compris ceux de vos amis ou de vos collègues. Cette autorisation peut lui permettre de partager ou d\'enregistrer vos données d\'agenda, indépendamment de leur caractère confidentiel ou sensible."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permet à l\'application de lire tous les événements d\'agenda stockés sur le téléviseur, y compris ceux de vos amis ou de vos collègues. Cette autorisation peut permettre à l\'application de partager ou d\'enregistrer vos données d\'agenda, indépendamment de leur niveau de confidentialité."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet à une application de modifier les paramètres de synchronisation d\'un compte. Cette autorisation peut, par exemple, être utilisée pour activer la synchronisation de l\'application Contacts avec un compte."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"Lecture des statistiques de synchronisation"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet à une application d\'accéder aux statistiques de synchronisation d\'un compte, y compris l\'historique des événements de synchronisation et le volume de données synchronisées."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"voir les termes ajoutés au dictionnaire"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permet à l\'application d\'accéder aux mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ajouter des mots au dictionnaire personnel"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permet à l\'application d\'enregistrer de nouveaux mots dans le dictionnaire personnel de l\'utilisateur."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"voir le contenu de la mémoire USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"voir le contenu de la carte SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permettre de lire contenu de la mémoire de stockage USB"</string> diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index 6a79b89..001ea06 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"acceder aos teus contactos"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Localización"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"acceso á localización deste dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"A túa información social"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceso directo a información acerca dos teus contactos e as conexións sociais."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder ao teu calendario"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"envía e consulta mensaxes de SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Almacenamento"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accede a fotos, contido multimedia e ficheiros no teu dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionario de usuario"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escribir palabras no dicionario de usuario."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoritos e historial"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceso directo aos favoritos e ao historial do navegador."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"gravar audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite á aplicación modificar o rexistro de chamadas do tablet, incluídos os datos acerca de chamadas entrantes e saíntes. É posible que aplicacións maliciosas utilicen esta acción para borrar ou modificar o teu rexistro de chamadas."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite que a aplicación modifique o rexistro de chamadas da televisión, incluídos os datos sobre chamadas entrantes e saíntes. As aplicacións maliciosas poden utilizar este permiso para borrar ou modificar o rexistro de chamadas."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite á aplicación modificar o rexistro de chamadas do teléfono, incluídos os datos acerca de chamadas entrantes e saíntes. É posible que aplicacións maliciosas utilicen esta acción para borrar ou modificar o teu rexistro de chamadas."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ler a túa tarxeta de contacto"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite á aplicación ler información do perfil persoal almacenada no teu dispositivo, como o teu nome e información de contacto. Isto significa que a aplicación pode identificarte e enviar a información do teu perfil a outras persoas."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modificar tarxeta de contacto"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite á aplicación cambiar ou engadir á información do perfil persoal almacenada no teu dispositivo, como o teu nome e información de contacto. Isto significa que a aplicación pode identificarte e enviar a información do teu perfil a outros usuarios."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensores de corpo (como monitores de ritmo cardíaco)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite que a aplicación acceda aos datos dos sensores que controlan o teu estado físico, como o ritmo cardíaco."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ler a túa actividade social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite á aplicación acceder ás túas actualizacións nas redes sociais, e sincronizalas, e ás dos teus amigos. Ten coidado ao compartir información (esta acción permite á aplicación ler comunicacións entre ti e os teus amigos efectuadas a través das redes sociais, independentemente da súa confidencialidade). Nota: É posible que este permiso non se execute en todas as redes sociais."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"escribir na túa actividade social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite á aplicación mostrar actualizacións de redes sociais dos teus amigos. Ten coidado ao compartir información, esta acción permite á aplicación xerar mensaxes que parecen proceder dun amigo. Nota: É posible que este permiso non se execute en todas as redes sociais."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ler os eventos do calendario e a información confidencial"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite á aplicación ler todos os eventos do calendario que están almacenados no tablet, incluídos os pertencentes aos teus amigos ou compañeiros de traballo. É posible que esta acción permita á aplicación compartir ou gardar os datos do teu calendario, independentemente da confidencialidade."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite que a aplicación consulte todos os eventos do calendario almacenados na televisión, incluídos os de amigos e compañeiros de traballo. A aplicación pode utilizar este permiso para compartir ou gardar datos do calendario, sen ter en conta o nivel de privacidade ou confidencialidade."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite a unha aplicación modificar a configuración de sincronización dunha conta. Por exemplo, esta acción pode utilizarse para activar a sincronización da aplicación Contactos cunha conta."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ler as estatísticas de sincronización"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite a unha aplicación ler as estatísticas de sincronización dunha conta, incluído o historial de eventos de sincronización e a cantidade de datos sincronizados."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ler os termos engadidos ao dicionario"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite á aplicación ler todas as palabras, nomes e frases gardados polo usuario no dicionario do usuario."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"engadir palabras ao dicionario definido polo usuario"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite á aplicación escribir palabras novas no dicionario do usuario."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ler contidos do teu USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ler os contidos da túa tarxeta SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permite á aplicación ler o contido do teu almacenamento USB."</string> diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml index 51f9855..44ea388 100644 --- a/core/res/res/values-gu-rIN/strings.xml +++ b/core/res/res/values-gu-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"તમારા સંપર્કોને ઍક્સેસ કરો"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"સ્થાન"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"આ ઉપકરણના સ્થાનને ઍક્સેસ કરો"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"તમારી સામાજિક માહિતી"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"તમારા સંપર્કો અને સામાજિક કનેક્શન્સ વિશેની માહિતીની સીધી ઍક્સેસ."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"કૅલેન્ડર"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"તમારા કેલેન્ડરને ઍક્સેસ કરો"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS સંદેશા મોકલો અને જુઓ"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"સ્ટોરેજ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"તમારા ઉપકરણ પર ફોટા, મીડિયા અને ફાઇલો ઍક્સેસ કરો"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"વપરાશકર્તા શબ્દકોશ"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"વપરાશકર્તા શબ્દકોશમાં શબ્દો વાંચો અથવા લખો."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"બુકમાર્ક્સ અને ઇતિહાસ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"બુકમાર્ક્સ અને બ્રાઉઝર ઇતિહાસની સીધી ઍક્સેસ."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"માઇક્રોફોન"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ઑડિઓ રેકોર્ડ કરો"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"કૅમેરો"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"એપ્લિકેશનને ઇનકમિંગ અને આઉટગોઇંગ કૉલ્સ વિશેનાં ડેટા સહિત, તમારા ટેબ્લેટના કૉલ લૉગને સંશોધિત કરવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ એપ્લિકેશન્સ આનો ઉપયોગ તમારા કૉલ લૉગને કાઢી નાખવા અથવા સંશોધિત માટે કરી શકે છે."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"એપ્લિકેશનને ઇનકમિંગ અને આઉટગોઇંગ કૉલ્સ વિશેનાં ડેટા સહિત, તમારા TV ના કૉલ લૉગને સંશોધિત કરવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ એપ્લિકેશન્સ આનો ઉપયોગ તમારા કૉલ લૉગને કાઢી નાખવા અથવા સંશોધિત માટે કરી શકે છે."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"એપ્લિકેશનને ઇનકમિંગ અને આઉટગોઇંગ કૉલ્સ વિશેનાં ડેટા સહિત, તમારા ફોનના કૉલ લૉગને સંશોધિત કરવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ એપ્લિકેશન્સ આનો ઉપયોગ તમારા કૉલ લૉગને કાઢી નાખવા અથવા સંશોધિત માટે કરી શકે છે."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"તમારું પોતાનું સંપર્ક કાર્ડ વાંચો"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"એપ્લિકેશનને તમારા નામ અને સંપર્ક માહિતી જેવી તમારા ઉપકરણ પર સંગ્રહિત વ્યક્તિગત પ્રોફાઇલ માહિતીને વાંચવાની મંજૂરી આપે છે. આનો અર્થ છે કે એપ્લિકેશન તમને ઓળખી શકે છે અને અન્ય લોકોને તમારી પ્રોફાઇલ માહિતી મોકલી શકે છે."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"તમારું પોતાનું સંપર્ક કાર્ડ સંશોધિત કરો"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"એપ્લિકેશનને તમારા નામ અને સંપર્ક માહિતી જેવી તમારા ઉપકરણ પર સંગ્રહિત વ્યક્તિગત પ્રોફાઇલ માહિતીને બદલા અથવા ઉમેરવાની મંજૂરી આપે છે. આનો અર્થ છે કે એપ્લિકેશન તમને ઓળખી શકે છે અને અન્ય લોકોને તમારી પ્રોફાઇલ માહિતી મોકલી શકે છે."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"બૉડી સેન્સર્સ (જેમ કે હાર્ટ રેટ મૉનિટર્સ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"એપ્લિકેશનને તમારી હૃદય ગતિ જેવી તમારી શારીરિક સ્થિતિને મૉનિટર કરતાં સેન્સર્સથી ડેટા ઍક્સેસ કરવાની મંજૂરી આપે છે."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"તમારી સામાજિક સ્ટ્રીમ વાંચો"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"એપ્લિકેશનને તમારા અને તમારા મિત્રોના સામાજિક અપડેટ્સ ઍક્સેસ કરવા અને સમન્વયિત કરવાની મંજૂરી આપે છે. માહિતી શેર કરતી વખતે સાવચેત રહો -- આ એપ્લિકેશનને સામાજિક નેટવર્ક્સ પર તમારી અને તમારા મિત્રોની વચ્ચેના સંચારને વાંચવાની મંજૂરી આપે છે, પછી ભલેને ગોપનીયતા કોઈપણ હોય. નોંધ: આ પરવાનગી બધા સામાજિક નેટવર્ક્સ પર લાગુ કરી શકાશે નહીં."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"તમારા સામાજિક સ્ટ્રીમ પર લખો"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"એપ્લિકેશનને તમારા મિત્રોના સામાજિક અપડેટ્સ પ્રદર્શિત કરવાની મંજૂરી આપે છે. માહિતી શેર કરતી વખતે સાવચેત રહો -- આ એપ્લિકેશનને મિત્ર તરફથી આવતું દેખાઈ શકે તેવા સંદેશા નિર્મિત કરવાની મંજૂરી આપે છે. નોંધ: આ પરવાનગી બધા સામાજિક નેટવર્ક્સ પર લાગુ કરી શકાશે નહીં."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"કૅલેન્ડર ઇવેન્ટ્સ વત્તા ગોપનીયતા માહિતી વાંચો"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"એપ્લિકેશનને મિત્રોના અથવા સહકાર્યકરો સહિત તમારા ટેબ્લેટ પર સંગ્રહિત તમામ કૅલેન્ડર ઇવેન્ટ્સ વાંચવાની મંજૂરી આપે છે. આ એપ્લિકેશનને તમારા કૅલેન્ડર ડેટાને શેર કરવા કે સાચવવાની મંજૂરી આપી શકે છે, પછી ભલે ગોપનીયતા અથવા સંવેદિતા કોઈપણ હોય."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"એપ્લિકેશનને મિત્રોના અથવા સહકાર્યકરો સહિત તમારા ટીવી પર સંગ્રહિત તમામ કૅલેન્ડર ઇવેન્ટ્સ વાંચવાની મંજૂરી આપે છે. આ એપ્લિકેશનને તમારા કૅલેન્ડર ડેટાને શેર કરવા કે સાચવવાની મંજૂરી આપી શકે છે, પછી ભલે ગોપનીયતા અથવા સંવેદિતા કોઈપણ હોય."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"એપ્લિકેશનને એકાઉન્ટ માટે સમન્વયન સેટિંગ્સ સંશોધિત કરવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ એકાઉન્ટ સાથે લોકો એપ્લિકેશનના સમન્વયનને સક્ષમ કરવા માટે થઈ શકે છે."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"સમન્વયન આંકડા વાંચો"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"એપ્લિકેશનને સમન્વયન ઇવેન્ટ્સનો ઇતિહાસ અને કેટલો ડેટા સમન્વયિત થયો છે તે સહિત કોઈ એકાઉન્ટ માટેનાં સમન્વયન આંકડા વાંચવાની મંજૂરી આપે છે."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"તમે શબ્દકોશમાં ઉમેરેલ શબ્દો વાંચો"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"એપ્લિકેશનને વપરાશકર્તાએ વપરાશકર્તા શબ્દકોશમાં સંગ્રહિત કર્યા હોઈ શકે છે તે તમામ શબ્દો, નામો અને શબ્દસમૂહોને વાંચવાની મંજૂરી આપે છે."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"વપરાશકર્તા દ્વારા વ્યાખ્યાયિત શબ્દકોશમાં શબ્દો ઉમેરો"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"એપ્લિકેશનને વપરાશકર્તા શબ્દકોશ પર નવા શબ્દો લખવાની મંજૂરી આપે છે."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"તમારા USB સંગ્રહની સામગ્રીઓ વાંચો"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"તમારા SD કાર્ડની સામગ્રીઓ વાંચો"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"એપ્લિકેશનને તમારા USB સંગ્રહની સામગ્રીઓ વાંચવાની મંજૂરી આપે છે."</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index fff0377..a9daf0b 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"अपने संपर्कों को ऐक्सेस करें"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"इस डिवाइस के स्थान को ऐक्सेस करें"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"आपकी सामाजिक जानकारी"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"अपने संपर्कों और सामाजिक कनेक्शन के बारे में जानकारी पर सीधी पहुंच."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"कैलेंडर"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"अपने कैलेंडर को ऐक्सेस करें"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS संदेश भेजें और देखें"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"मेमोरी"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"अपने डिवाइस पर मौजूद फ़ोटो, मीडिया और फ़ाइलें ऐक्सेस करें"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"उपयोगकर्ता शब्दकोश"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"उपयोगकर्ता डिक्शनरी में शब्द पढ़ें या लिखें."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्क और इतिहास"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्क और ब्राउज़र इतिहास पर सीधी पहुंच."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"माइक्रोफ़ोन"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ऑडियो रिकॉर्ड करें"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"कैमरा"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ऐप्स को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके टेबलेट का कॉल लॉग संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए इसका उपयोग कर सकते हैं."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ऐप को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके टैबलेट के कॉल लॉग में बदलाव करने देती है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए उसका उपयोग कर सकते हैं."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ऐप्स को इनकमिंग और आउटगोइंग कॉल के डेटा सहित, आपके फ़ोन का कॉल लॉग संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके कॉल लॉग को मिटाने या संशोधित करने के लिए इसका उपयोग कर सकते हैं."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"स्वयं का संपर्क कार्ड पढ़ें"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ऐप्स को आपके डिवाइस में संग्रहीत व्यक्तिगत प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी, पढ़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"स्वयं का संपर्क कार्ड बदलें"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ऐप्स को आपके डिवाइस में संग्रहीत निजी प्रोफ़ाइल जानकारी, जैसे आपका नाम और संपर्क जानकारी को बदलने या उसमें कुछ जोड़ने देता है. इसका अर्थ है कि ऐप्स आपको पहचान सकता है और आपकी प्रोफ़ाइल जानकारी अन्य लोगों को भेज सकता है."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"बॉडी सेंसर (जैसे हृदय गति मॉनीटर)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ऐप को आपकी शारीरिक स्थिति, जैसे आपकी हृदय गति पर नज़र रखने वाले संवेदकों का डेटा एक्सेस करने देती है."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"अपनी सामाजिक स्ट्रीम पढ़ें"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"एप को आपके और आपके मित्रों की नई सामाजिक जानकारी तक पहुंचने और उन्हें समन्वयित करने देता है. जानकारी साझा करते समय सावधान रहें - इससे गोपनीयता पर ध्यान दिए बिना, एप सामाजिक नेटवर्क पर आपके और आपके मित्रों के बीच संचारों को पढ़ सकता है. ध्यान दें: यह अनुमति सभी सामाजिक नेटवर्क पर लागू नहीं की जा सकती."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"सामाजिक स्ट्रीम में लिखें"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"एप को आपके मित्रों की नई सामाजिक जानकारी प्रदर्शित करने देता है. जानकारी साझा करते समय सावधान रहें - इससे ऐप्स ऐसे संदेश बना सकता है जो किसी मित्र की ओर से आते दिखाई देते हैं. ध्यान दें: यह अनुमति सभी सामाजिक नेटवर्क पर लागू नहीं की जा सकती."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"केलैंडर ईवेंट के साथ-साथ गोपनीय जानकारी पढ़ें"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ऐप्स को मित्रों या सहकर्मियों के कैलेंडर इवेंट सहित, आपके टेबलेट पर संग्रहीत कैलेंडर इवेंट पढ़ने देता है. इससे गोपनीयता या संवेदनशीलता पर ध्यान दिए बिना, ऐप्स आपके कैलेंडर डेटा को साझा कर सकता है या सहेज सकता है."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ऐप को, मित्रों और सहकर्मियों के कैलेंडर ईवेंट सहित, आपके टीवी पर संग्रहीत सभी कैलेंडर ईवेंट पढ़ने देती है. इससे ऐप को गोपनीयता या संवेदनशीलता पर ध्यान दिए बिना, आपका कैलेडर डेटा साझा करने या सहेजने की अनुमति मिल जाती है."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ऐप्स को किसी खाते की समन्वयन सेटिंग संशोधित करने देता है. उदाहरण के लिए, इसका उपयोग लोग ऐप्स का समन्वयन किसी खाते से सक्षम करने में हो सकता है."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"समन्वयन आंकड़े पढ़ें"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ऐप्स को किसी खाते के समन्वयन आंकड़े, साथ ही समन्वयित ईवेंट का इतिहास और समन्वयित डेटा की मात्रा पढ़ने देता है."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"शब्दकोश में आपके द्वारा जोड़े गए शब्दों को पढ़ें"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ऐप्स को ऐसे सभी शब्दों, नामों और वाक्यांशों को पढ़ने देता है जो संभवत: उपयोगकर्ता द्वारा उपयोगकर्ता शब्दकोश में संग्रहीत किए गए हों."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"उपयोगकर्ता द्वारा परिभाषित शब्दकोश में शब्द जोड़ें"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ऐप्स को उपयोगकर्ता शब्दकोश में नए शब्द लिखने देता है."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"अपने USB मेमोरी की सामग्री पढ़ें"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"अपने SD कार्ड की सामग्री पढ़ें"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"एप्लिकेशन को आपके USB मेमोरी की सामग्री पढ़ने की अनुमति देता है."</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index a18bc4b..3d02071 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -231,18 +231,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"pristupati vašim kontaktima"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokacija"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"pristupiti lokaciji ovog uređaja"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informacije o vašoj društvenoj aktivnosti"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Izravan pristup informacijama o kontaktima i društvenim vezama."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pristupati kalendaru"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"slati i pregledavati SMS poruke"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Prostor za pohranu"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"pristupiti fotografijama, medijima i datotekama na vašem uređaju"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Korisnički rječnik"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čitanje ili pisanje riječi u korisničkom rječniku."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Oznake i povijest"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Izravan pristup oznakama i povijest preglednika."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"snimati zvuk"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparat"</string> @@ -333,16 +327,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Aplikaciji omogućuje izmjenu dnevnika poziva vašeg tabletnog računala zajedno s podacima o dolaznim i odlaznim pozivima. Zlonamjerne aplikacije to mogu upotrebljavati za brisanje ili izmjenu vašeg dnevnika poziva."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Aplikaciji omogućuje izmjenu zapisnika poziva vašeg televizora zajedno s podacima o dolaznim i odlaznim pozivima. Zlonamjerne aplikacije to mogu upotrebljavati za brisanje ili izmjenu vašeg zapisnika poziva."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Aplikaciji omogućuje izmjenu dnevnika poziva vašeg telefona zajedno s podacima o dolaznim i odlaznim pozivima. Zlonamjerne aplikacije to mogu upotrebljavati za brisanje ili izmjenu vašeg dnevnika poziva."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"čitanje vaše kontaktne kartice"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Aplikaciji omogućuje čitanje osobnih podataka profila pohranjenih na uređaju, kao što su vaše ime ili kontaktni podaci. To znači da vas aplikacija može identificirati i slati informacije s vašeg profila drugima."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"izmjena vaše kontaktne kartice"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Aplikaciji omogućuje promjenu ili dodavanje osobnih podataka profila pohranjenih na uređaju, kao što su vaše ime i kontaktni podaci. To znači da vas aplikacija može identificirati i slati informacije s vašeg profila drugima."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"senzori tjelesnih funkcija (npr. monitori otkucaja srca)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Omogućuje aplikaciji pristup podacima sa senzora koji nadziru vaše fizičko stanje, na primjer, broj otkucaja srca."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"čitanje društvenog streama"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Aplikaciji omogućuje pristup vašim ažuriranjima na društvenim mrežama i ažuriranjima vaših prijatelja, kao i sinkronizaciju tih ažuriranja. Budite oprezni kad dijelite informacije – to aplikaciji omogućuje čitanje poruka između vas i vaših prijatelja na društvenim mrežama, neovisno o povjerljivosti. Napomena: ta se dozvola možda ne primjenjuje na svim društvenim mrežama."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"pisanje društvenog streama"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Aplikaciji omogućuje prikazivanje ažuriranja vaših prijatelja na društvenim mrežama. Budite oprezni kad dijelite informacije – to aplikaciji omogućuje stvaranje poruka koje mogu izgledati kao da dolaze od prijatelja. Napomena: ta se dozvola možda ne primjenjuje na svim društvenim mrežama."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"čitajte kalendarske događaje i povjerljive informacije"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Aplikaciji omogućuje čitanje svih događaja u kalendaru pohranjenih na vašem tabletnom računalu, uključujući one od vaših prijatelja ili suradnika. To aplikaciji može omogućiti dijeljenje ili spremanje vaših podataka kalendara, neovisno o povjerljivosti ili osjetljivosti."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Aplikaciji omogućuje čitanje svih kalendarskih događaja pohranjenih na televizoru, uključujući događaje koji pripadaju vašim prijateljima i suradnicima. Aplikacija tako može dijeliti ili spremati vaše kalendarske podatke, bez obzira na povjerljivost i osjetljivost."</string> @@ -455,10 +441,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Aplikaciji omogućuje izmjenu postavki sinkronizacije za račun. Na primjer, to se može upotrijebiti za omogućavanje sinkronizacije aplikacije Osobe s računom."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"čitanje statistike o sinkronizaciji"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Aplikaciji omogućuje čitanje statistika sinkronizacije za račun, uključujući povijest sinkronizacije te količinu sinkroniziranih podataka."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"čitanje pojmova koje ste dodali u rječnik"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Aplikaciji omogućuje čitanje svih riječi, imena i fraza koje je korisnik pohranio u korisničkom rječniku."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"dodavanje riječi u rječnik koji je izradio korisnik"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Aplikaciji omogućuje pisanje novih riječi u korisnički rječnik."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"čitanje sadržaja USB pohrane"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"čitanje sadržaja SD kartice"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Aplikaciji omogućuje čitanje sadržaja vaše USB pohrane."</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index bd48e8c..54e6e56 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"hozzáférés a névjegyekhez"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Helyadatok"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"hozzáférés az eszköz földrajzi helyéhez"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Az Ön közösségi adatai"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Közvetlen hozzáférés a névjegyekre és közösségi kapcsolatokra vonatkozó információkhoz"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Naptár"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"hozzáférés a naptárhoz"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS-ek küldése és megtekintése"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Tárhely"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"az eszközön lévő fotók, médiatartalmak és fájlok elérése"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Felhasználói szótár"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Szavak olvasása vagy írása a felhasználói szótárban."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Könyvjelzők és előzmények"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Közvetlen hozzáférés a könyvjelzőkhöz és a böngészési előzményekhez"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"hanganyag rögzítése"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fényképezőgép"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Lehetővé teszi, hogy az alkalmazás módosítsa a táblagép híváslistáját, beleértve a bejövő és kimenő hívások adatait is. A rosszindulatú alkalmazások ezt arra használhatják, hogy híváslistáját töröljék vagy módosítsák."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Lehetővé teszi, hogy az alkalmazás módosítsa a tévé hívásnaplóját, így például a bejövő és kimenő hívások adatait is. A rosszindulatú alkalmazások ezt hívásnaplója törlésére vagy módosítására használhatják."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Lehetővé teszi, hogy az alkalmazás módosítsa a telefon híváslistáját, beleértve a bejövő és kimenő hívások adatait is. A rosszindulatú alkalmazások ezt arra használhatják, hogy híváslistáját töröljék vagy módosítsák."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"saját névjegykártya olvasása"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Lehetővé teszi az alkalmazás számára, hogy hozzáférést biztosítson az eszközön tárolt személyes profiladatokhoz, például a névhez és az elérhetőségekhez. Ez azt jelenti, hogy az alkalmazás azonosíthatja Önt, és elküldheti másoknak profiladatait."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"saját névjegykártya módosítása"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Lehetővé teszi az alkalmazás számára az eszközön tárolt személyes profiladatok, például a név és az elérhetőségek módosítását vagy hozzáadását. Ez azt jelenti, hogy az alkalmazás azonosíthatja Önt, és elküldheti másoknak profiladatait."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"testérzékelők (pl. pulzusmérő)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Engedélyezi az alkalmazásnak, hogy hozzáférjen az Ön fizikai állapotát – például a pulzusszámát – figyelő érzékelők adataihoz."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"közösségi adatfolyam olvasása"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Lehetővé teszi az alkalmazás számára, hogy hozzáférjen az Ön és ismerősei közösségi oldalakon szereplő frissítéseihez. Legyen elővigyázatos, amikor információt tesz közzé -- így az alkalmazás hozzáférhet az ismerőseivel a közösségi hálózatokon folytatott magánbeszélgetésekhez, a tartalom titkos jellegétől függetlenül. Megjegyzés: előfordulhat, hogy ez nincs minden közösségi hálózaton engedélyezve."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"írás a közösség adatfolyamra"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Lehetővé teszi az alkalmazás számára, hogy megjelenítse ismerősei közösségi oldalakon szereplő frissítéseit. Legyen elővigyázatos, amikor információt tesz közzé -- így az alkalmazás olyan üzeneteket hozhat létre, amelyek látszólag egy ismerőstől érkeztek. Megjegyzés: előfordulhat, hogy ez nincs minden közösségi hálózaton engedélyezve."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"naptári események és bizalmas információk beolvasása"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Lehetővé teszi az alkalmazás számára a táblagépén tárolt összes naptári esemény beolvasását, beleértve az ismerősök vagy munkatársak eseményeit is. Az alkalmazás így megoszthatja vagy elmentheti az Ön naptáradatait azok titkos vagy bizalmas jellegétől függetlenül."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Lehetővé teszi az alkalmazás számára a tévéjén tárolt összes naptáresemény elolvasását, beleértve az ismerősök vagy munkatársak eseményeit is. Ezáltal az alkalmazás megoszthatja vagy mentheti az Ön naptáradatait, az adatok titkosságára vagy érzékeny jellegére való tekintet nélkül."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lehetővé teszi az alkalmazás számára egy fiók szinkronizálási beállításainak módosítását. Például ezzel engedélyezni lehet a Személyek alkalmazás szinkronizálását egy fióknál."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"szinkronizálási statisztikák olvasása"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lehetővé teszi az alkalmazás számára egy fiók szinkronizálási statisztikáinak a beolvasását, beleértve a szinkronizálási események előzményeit, valamint a szinkronizált adatok mennyiségét."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"szótárhoz adott kifejezések olvasása"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Lehetővé teszi az alkalmazás számára, hogy beolvassa a felhasználói szótárban tárolt összes szót, nevet és kifejezést."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"szavak hozzáadása a felhasználó által definiált szótárhoz"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Lehetővé teszi az alkalmazás számára, hogy új szavakat írjon a felhasználói szótárba."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB-tár tartalmának olvasása"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD-kártya tartalmának olvasása"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Beolvashat USB-tárakat."</string> diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml index 535f7a6..b8dc2de 100644 --- a/core/res/res/values-hy-rAM/strings.xml +++ b/core/res/res/values-hy-rAM/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"կոնտակտների հասանելիություն"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Տեղադրություն"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"օգտագործել այս սարքի տեղադրությունը"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ձեր սոցիալական տեղեկությունները"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Ուղղակի մուտք ձեր կոնտակտների մասին տեղեկություններ և սոցիալական կապեր:"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Օրացույց"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"օրացույցի հասանելիություն"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Կարճ հաղորդագրություն"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"ուղարկել և դիտել SMS հաղորդագրությունները"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Պահոց"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"օգտագործել լուսանկարները, մեդիա ֆայլերը և ձեր սարքում պահվող այլ ֆայլերը"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Օգտվողի բառարան"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Կարդալ կամ ավելացնել բառեր օգտվողի բառարանում:"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Էջանիշեր և պատմություն"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Ուղղակի մուտք դեպի էջանիշեր և դիտարկիչի պատմություն:"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Բարձրախոս"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ձայնագրում"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Ֆոտոխցիկ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Թույլ է տալիս հավելվածին փոփոխել ձեր գրասալիկի զանգերի մատյանը, այդ թվում` մուտքային և ելքային զանգերի մասին տվյալները: Վնասարար հավելվածները կարող են սա օգտագործել` ձեր զանգերի մատյանը ջնջելու կամ փոփոխելու համար:"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Թույլ է տալիս հավելվածին փոփոխել հեռուստացույցի զանգերի մատյանը, այդ թվում` մուտքային և ելքային զանգերի մասին տվյալները: Վնասարար հավելվածները կարող են սա օգտագործել` ձեր զանգերի մատյանը ջնջելու կամ փոփոխելու համար:"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Թույլ է տալիս հավելվածին փոփոխել ձեր հեռախոսի զանգերի մատյանը, այդ թվում` մուտքային և ելքային զանգերի մասին տվյալները: Վնասարար հավելվածները կարող են սա օգտագործել` ձեր զանգերի մատյանը ջնջելու կամ փոփոխելու համար:"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"կարդալ ձեր սեփական կոնտակտային քարտը"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Թույլ է տալիս հավելվածին կարդալ ձեր սարքում պահված անհատական պրոֆիլի տվյալները, ինչպիսիք են ձեր անունը և կոնտակտային տվյալները: Սա նշանակում է, որ հավելվածը կարող է ձեզ ճանաչել և ուղարկել ձեր պրոֆիլի տվյալները ուրիշներին:"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"փոփոխել ձեր սեփական կոնտակտային քարտը"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Թույլ է տալիս հավելվածին փոխել կամ ավելացնել ձեր սարքում պահված անհատական պրոֆիլի տվյալները, ինչպիսիք են ձեր անունը և կոնտակտային տվյալները: Սա նշանակում է, որ հավելվածը կարող է ձեզ ճանաչել և ուղարկել ձեր պրոֆիլի տվյալները ուրիշներին:"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"մարմնի սենսորներ (օր.` սրտի)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Հավելվածին թույլ է տալիս մուտք ունենալ սենսորների տվյալներին, որոնք վերահսկում են ձեր ֆիզիկական վիճակը, օրինակ՝ ձեր սրտի զարկերը:"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"կարդալ ձեր սոցիալական հոսքը"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Թույլ է տալիս հավելվածին մուտք գործել և համաժամեցնել ձեր և ձեր ընկերների սոցիալական թարմացումները: Զգույշ եղեք տեղեկություններ տարածելիս. այն թույլ է տալիս հավելվածին կարդալ ձեր և ձեր ընկերների միջև անձնական հաղորդագրությունները սոցիալական ցանցերում` անկախ գաղտնիությունից: Նշում. այս թույլտվությունը չի կարող գործածվել բոլոր սոցիալական ցանցերում:"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"գրել ձեր սոցիալական հոսքում"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Թույլ է տալիս հավելվածին ցուցադրել ձեր ընկերների սոցիալական թարմացումները: Զգույշ եղեք տեղեկություններ տարածելիս. այն թույլ է տալիս հավելվածին հաղորդագություններ ստեղծել, որոնք իբրև ստացվում են ընկերոջից: Նշում. այս թույլտվությունը չի կարող գործածվել բոլոր սոցիալական ցանցերում:"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"կարդալ օրացուցային իրադարձությունները և գաղտնի տեղեկությունները"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Թույլ է տալիս հավելվածին կարդալ ձեր գրասալիկում պահված բոլոր օրացուցային իրադարձությունները, այդ թվում` ընկերների կամ գործընկերների: Սա կարող է թույլ տալ հավելվածին տարածել կամ պահել ձեր օրացուցային տվյալները` անկախ գաղտնիությունից կամ զգայունությունից:"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Թույլ է տալիս հավելվածին կարդալ հեռուստացույցի օրացույցում պահված բոլոր իրադարձությունները, այդ թվում նաև ընկերների կամ գործընկերների հետ կապված իրադարձությունները: Սա կարող է թույլ տալ հավելվածին համօգտագործել կամ պահել ձեր օրացույցի տվյալները՝ անկախ նրանց գաղտնիության կամ կարևորության աստիճանից:"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Թույլ է տալիս հավելվածին փոփոխել համաժամեցման կարգավորումները հաշվի համար: Օրինակ, այն կարող է օգտագործվել` միացնելու Մարդիկ հավելվածի համաժամեցումը հաշվի հետ:"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"կարդալ համաժամեցման վիճակագրությունը"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Թույլ է տալիս հավելվածին կարդալ հաշվի համաժամեցման վիճակագրությունը, այդ թվում` համաժամեցման իրադարձությունների պատմությունը և թե որքան տվյալ է համաժամեցված:"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"կարդալ պայմանները, որ ավելացրել եք բառարանում"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Թույլ է տալիս հավելվածին կարդալ բոլոր բառերը, անունները և արտահայտությունները, որոնք օգտագործողը հնարավոր է պահել է օգտվողի բառարանում:"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ավելացնել բառեր օգտվողի համար սահմանված բառարանում"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Թույլ է տալիս հավելվածին գրել նոր բառեր օգտվողի բառարանում:"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"կարդալ ձեր USB կրիչի պարունակությունը"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"կարդալ ձեր SD քարտի պարունակությունը"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Հավելվածին թույլ է տալիս կարդալ ձեր USB կրիչի պարունակությունը:"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index fe61d55..305e318 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"mengakses kontak"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasi"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"mengakses lokasi perangkat ini"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informasi sosial Anda"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Akses langsung ke informasi tentang kontak dan hubungan sosial Anda."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"mengakses kalender"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"mengirim dan melihat pesan SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Penyimpanan"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"mengakses foto, media, dan file di perangkat"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamus Pengguna"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Membaca atau menulis kata dalam kamus pengguna."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmark dan Riwayat"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Akses langsung ke bookmark dan riwayat browser."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"rekam audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Memungkinkan apl memodifikasi log panggilan tablet Anda, termasuk data tentang panggilan masuk dan keluar. Apl berbahaya dapat menggunakan ini untuk menghapus atau memodifikasi log panggilan Anda."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Mengizinkan aplikasi untuk memodifikasi log panggilan TV, termasuk data tentang panggilan masuk dan keluar. Aplikasi berbahaya mungkin menggunakan ini untuk menghapus atau memodifikasi log panggilan."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Memungkinkan apl memodifikasi log panggilan ponsel Anda, termasuk data tentang panggilan masuk dan keluar. Apl berbahaya dapat menggunakan ini untuk menghapus atau memodifikasi log panggilan Anda."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"baca kartu kontak Anda"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Memungkinkan aplikasi membaca informasi profil pribadi yang tersimpan di perangkat Anda, misalnya nama dan informasi kontak Anda. Ini artinya aplikasi dapat mengenali dan mengirim informasi profil Anda ke orang lain."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ubah kartu kontak Anda"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Memungkinkan aplikasi mengubah atau menambah informasi profil pribadi yang tersimpan di perangkat Anda, seperti nama dan informasi kontak. Ini berarti aplikasi tersebut dapat mengenali Anda dan mengirim informasi profil Anda ke orang lain."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensor tubuh (misal: monitor detak jantung)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Mengizinkan aplikasi untuk mengakses data dari sensor yang memantau kondisi fisik Anda, seperti denyut jantung."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"membaca aliran sosial Anda"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Memungkinkan aplikasi mengakses dan menyinkronkan pembaruan sosial dari Anda dan teman. Hati-hati ketika berbagi informasi -- izin ini memungkinkan aplikasi membaca komunikasi antara Anda dan teman di jejaring sosial, terlepas dari kerahasiaan. Catatan: izin ini tidak dapat diberlakukan di semua jejaring sosial."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"menulis ke aliran sosial Anda"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Memungkinkan aplikasi menampilkan pembaruan sosial dari teman Anda. Berhati-hatilah saat berbagi informasi -- izin ini memungkinkan aplikasi menghasilkan pesan yang mungkin kelihatannya berasal dari seorang teman. Catatan: izin ini tidak dapat diberlakukan di semua jejaring sosial."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"baca acara kalender serta informasi rahasia"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Memungkinkan aplikasi membaca semua acara kalender yang tersimpan di tablet Anda, termasuk milik teman atau rekan kerja. Izin ini memungkinkan aplikasi berbagi atau menyimpan data kalender Anda, terlepas dari kerahasiaan atau sensitivitas."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Mengizinkan aplikasi untuk membaca semua acara kalender yang disimpan di TV, termasuk milik teman atau rekan kerja. Izin ini memungkinkan aplikasi untuk membagikan atau menyimpan data kalender, meski data tersebut bersifat rahasia atau sensitif."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Memungkinkan aplikasi mengubah setelan sinkronisasi untuk sebuah akun. Misalnya, izin ini dapat digunakan untuk mengaktifkan sinkronisasi dari aplikasi Orang dengan sebuah akun."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"statistika baca sinkron"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Memungkinkan aplikasi membaca statistik sinkronisasi untuk sebuah akun, termasuk riwayat kejadian sinkronisasi dan berapa banyak data yang disinkronkan."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"baca istilah yang Anda tambahkan ke kamus"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Memungkinkan aplikasi membaca semua kata, nama, dan frasa yang mungkin disimpan oleh pengguna di kamus pengguna."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"Menambahkan kata ke kamus yang ditentukan pengguna"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Mengizinkan apl menulis kata-kata baru ke dalam kamus pengguna."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"baca konten simpanan USB Anda"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"baca konten kartu SD Anda"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Mengizinkan aplikasi membaca konten penyimpanan USB Anda."</string> diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml index 3b52f61..fa24444 100644 --- a/core/res/res/values-is-rIS/strings.xml +++ b/core/res/res/values-is-rIS/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"fá aðgang að tengiliðunum þínum"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Staðsetning"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"fá aðgang að staðsetningu þessa tækis"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Samfélagsupplýsingarnar þínar"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Beinn aðgangur að upplýsingum um tengiliði og samfélagstengingar."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Dagatal"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"fá aðgang að dagatalinu þínu"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"senda og skoða SMS-skilaboð"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Geymslurými"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"fá aðgang að myndum, efni og skrám í tækinu"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Orðabók notanda"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lesa eða skrifa orð í orðabók notanda."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bókamerki og ferill"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Beinn aðgangur að bókamerkjum og vafraferli."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Hljóðnemi"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"taka upp hljóð"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Myndavél"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Leyfir forriti að breyta símtalaskrá spjaldtölvunnar, þ. á m. gögnum um hringd og móttekin símtöl. Spilliforrit geta notað þetta til að eyða eða breyta símtalaskránni."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Leyfir forriti að breyta símtalaskrá sjónvarpsins, þ. á m. gögnum um hringd og móttekin símtöl. Spilliforrit geta notað þetta til að eyða eða breyta símtalaskránni."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Leyfir forriti að breyta símtalaskrá símans, þ. á m. gögnum um hringd og móttekin símtöl. Spilliforrit geta notað þetta til að eyða eða breyta símtalaskránni."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lesa tengiliðaspjaldið þitt"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Leyfir forriti að lesa persónulegar prófílupplýsingar sem vistaðar eru í tækinu, t.d. nafn og samskiptaupplýsingar. Þetta þýðir að forritið veit hver þú ert og getur sent prófílupplýsingarnar þínar til annarra."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"breyta tengiliðaspjaldinu þínu"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Leyfir forriti að breyta eða bæta við persónulegum prófílupplýsingum sem vistaðar eru í tækinu, t.d. nafni og samskiptaupplýsingum. Þetta þýðir að forritið veit hver þú ert og getur sent prófílupplýsingarnar þínar til annarra."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"líkamsskynjarar (s.s. hjartsláttarmælar)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Veitir forritinu aðgang að gögnum frá skynjurum sem fylgjast með líkamsstarfsemi þinni, svo sem hjartslætti."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lesa samfélagsstrauminn þinn"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Leyfir forriti að fá aðgang að og samstilla samfélagsuppfærslur þínar og vina þinna. Sýndu aðgát þegar þú deilir upplýsingum; þetta gerir forritinu kleift að lesa samskipti þín og vina þinna í netsamfélögum. Athugaðu: Ekki er víst að þessi heimild sé virt í öllum netsamfélögum."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"skrifa í samfélagsstrauminn þinn"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Leyfir forriti að birta samfélagsuppfærslur frá vinum þínum. Sýndu aðgát þegar þú deilir upplýsingum; þetta gerir forritinu kleift að útbúa skilaboð sem geta virst koma frá vini. Athugaðu: Ekki er víst að þessi heimild sé virt í öllum netsamfélögum."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lesa dagatalsviðburði og trúnaðarupplýsingar"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Leyfir forriti að lesa alla dagatalsviðburði sem vistaðir eru í spjaldtölvunni, þ. á m. þá sem vinir eða samstarfsmenn eiga. Þetta getur gert forritinu kleift að deila dagatalsgögnunum þínum burtséð frá því hvort þau innihalda trúnaðargögn eða viðkvæmar upplýsingar."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Leyfir forriti að lesa alla dagatalsviðburði sem vistaðir eru í sjónvarpinu, þ. á m. þá sem vinir eða samstarfsmenn eiga. Þetta getur gert forritinu kleift að deila dagatalsgögnunum þínum burtséð frá því hvort þau innihalda trúnaðargögn eða viðkvæmar upplýsingar."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Leyfir forriti að breyta kostum samstillingar fyrir reikning. Þetta er til dæmis hægt að nota til að kveikja á samstillingu forritsins Fólk við reikning."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lesa talnagögn um samstillingu"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Leyfir forriti að lesa talnagögn samstillingar fyrir reikning, þ. á m. feril samstillingaratvika og samstillt gagnamagn."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lesa hugtök sem þú hefur bætt við orðabókina"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Leyfir forriti að lesa öll orð, nöfn og setningar sem notandinn kann að hafa vistað í orðabók notanda."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"bæta orðum við orðabók notanda"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Leyfir forriti að skrifa ný orð inn í orðabók notanda."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lesa innihald USB-geymslunnar"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lesa innihald SD-kortsins"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Leyfir forriti að lesa innihald USB-geymslunnar."</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 4f074bc..a764c9f 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"accesso ai contatti"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Posizione"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"accedere alla posizione di questo dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Le tue informazioni social"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accesso diretto alle informazioni sui tuoi contatti e sulle tue connessioni social."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accesso al calendario"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"invio e lettura di SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Archiviazione"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accesso a foto, contenuti multimediali e file sul dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dizionario utente"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lettura o scrittura delle parole contenute nel dizionario utente."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Segnalibri e cronologia"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accesso diretto ai segnalibri e alla cronologia del browser."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microfono"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"registrazione audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotocamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Consente all\'applicazione di modificare il registro chiamate del tablet, inclusi i dati sulle chiamate in arrivo e in uscita. Le applicazioni dannose potrebbero farne uso per cancellare o modificare il registro chiamate."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Consente all\'app di modificare il registro chiamate della TV, inclusi i dati sulle chiamate in arrivo e in uscita. Le app dannose potrebbero farne uso per cancellare o modificare il registro chiamate."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Consente all\'applicazione di modificare il registro chiamate del telefono, inclusi i dati sulle chiamate in arrivo e in uscita. Le applicazioni dannose potrebbero farne uso per cancellare o modificare il registro chiamate."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lettura scheda contatti pers."</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Consente all\'applicazione di leggere informazioni del profilo personale memorizzate sul dispositivo, come il tuo nome e le tue informazioni di contatto. Ciò significa che l\'applicazione può identificarti e inviare le informazioni del tuo profilo ad altri."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modifica scheda contatti"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Consente all\'applicazione di modificare o aggiungere informazioni ai dati del profilo personale memorizzati sul dispositivo, come il tuo nome e le tue informazioni di contatto. Significa che l\'applicazione può identificarti e inviare le informazioni del tuo profilo ad altri."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensori per il corpo (come il cardiofrequenzimetro)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Consente all\'app di accedere ai dati relativi ai sensori che monitorano le tue condizioni fisiche, ad esempio la frequenza cardiaca."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lettura del tuo stream social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Consente all\'applicazione di accedere agli aggiornamenti dei social network tra te e i tuoi amici e di sincronizzarli. Fai attenzione quando condividi informazioni: questa autorizzazione consente all\'applicazione di leggere le comunicazioni tra te e i tuoi amici sui social network, indipendentemente dal livello di riservatezza. Nota. È possibile che questa autorizzazione non sia applicabile su tutti i social network."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"scrittura nel tuo stream social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Consente all\'applicazione di visualizzare gli aggiornamenti dei social network dai tuoi amici. Fai attenzione quando condividi informazioni: questa autorizzazione consente all\'applicazione di produrre messaggi apparentemente provenienti da un amico. Nota. È possibile che questa autorizzazione non sia applicabile su tutti i social network."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lettura di eventi di calendario e di informazioni riservate"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Consente all\'applicazione di leggere tutti gli eventi di calendario memorizzati sul tablet, inclusi quelli di amici o colleghi. Ciò potrebbe consentire all\'applicazione di condividere o salvare i dati del tuo calendario, a prescindere dal livello di riservatezza o privacy."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Consente all\'app di leggere tutti gli eventi di calendario memorizzati alla TV, inclusi gli eventi di amici o colleghi. L\'app potrebbe condividere o salvare i tuoi dati di calendario, a prescindere dal livello di riservatezza."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Consente a un\'applicazione di modificare le impostazioni di sincronizzazione per un account. Ad esempio, può servire per attivare la sincronizzazione dell\'applicazione Persone con un account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lettura statistiche di sincronizz."</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Consente a un\'applicazione di leggere le statistiche di sincronizzazione per un account, incluse la cronologia degli eventi di sincronizzazione e la quantità di dati sincronizzati."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lettura termini aggiunti al dizionario"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Consente all\'applicazione di leggere tutte le parole, le frasi e i nomi che l\'utente potrebbe aver memorizzato nel dizionario utente."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"aggiunta di parole al dizionario definito dall\'utente"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Consente all\'applicazione di scrivere nuove parole nel dizionario utente."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lettura contenuti archivio USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lettura contenuti scheda SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"L\'app può leggere i contenuti dell\'archivio USB."</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 0103049..d045237 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"גישה אל אנשי הקשר"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"מיקום"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"גישה אל מיקום המכשיר הזה"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"מידע על הקשרים החברתיים שלך"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"גישה ישירה למידע על אנשי קשר וקשרים חברתיים שלך."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"יומן"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"גישה אל היומן"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"שליחה והצגה של הודעות SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"אחסון"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"גישה אל תמונות, מדיה וקבצים במכשיר שלך"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"מילון משתמש"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"קריאה או כתיבה של מילים במילון המשתמש."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"סימניות והיסטוריה"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"גישה ישירה אל סימניות והיסטוריית דפדפן."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"מיקרופון"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"הקלטת אודיו"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"מצלמה"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"מאפשר לאפליקציה לשנות את יומן השיחות של הטאבלט, כולל נתונים על שיחות נכנסות ויוצאות. אפליקציות זדוניות עלולות לעשות בכך שימוש כדי למחוק או לשנות את יומן השיחות שלך."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"מאפשרת לאפליקציה לשנות את יומן השיחות של הטלוויזיה, כולל נתונים על שיחות נכנסות ויוצאות. אפליקציות זדוניות עלולות להשתמש בהרשאה זו כדי למחוק או לשנות את יומן השיחות שלך."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"מאפשר לאפליקציה לשנות את יומן השיחות של הטלפון, כולל נתונים על שיחות נכנסות ויוצאות. אפליקציות זדוניות עלולות לעשות בכך שימוש כדי למחוק או לשנות את יומן השיחות שלך."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"קריאת כרטיס איש הקשר שלך"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"מאפשר לאפליקציה לקרוא פרטים מהפרופיל האישי המאוחסנים במכשיר, כגון שמך ופרטי אנשי הקשר שלך. משמעות הדבר שהאפליקציה תוכל לזהות אותך ולשלוח את פרטי הפרופיל שלך לאנשים אחרים."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"שינוי כרטיס איש הקשר שלך"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"מאפשר לאפליקציה לשנות או להוסיף נתונים לפרטי הפרופיל האישי המאוחסנים במכשיר, כגון שמך ופרטי הקשר שלך. משמעות הדבר שהאפליקציה יכולה לזהות אותך ועשוי לשלוח את פרטי הפרופיל שלך לאנשים אחרים."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"חיישני גוף (כמו מוניטורים עבור קצב לב)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"מאפשר לאפליקציה לגשת אל נתוני חיישנים העוקבים אחר מצבך הגופני, כמו קצב הלב."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"קריאת הזרם החברתי שלך"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"מאפשר לאפליקציה גישה ויכולת סנכרון של עדכונים חברתיים שאתה וחבריך מבצעים. היזהר בעת שיתוף מידע -- הדבר מתיר לאפליקציה לקרוא התכתבויות בינך ובין חבריך ברשתות חברתיות, ללא התחשבות בסודיות. שים לב: ייתכן שאישור זה לא נאכף בכל הרשתות החברתיות."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"כתיבה בזרם החברתי שלך"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"מאפשר לאפליקציה להציג עדכונים חברתיים מהחברים שלך. היזהר בעת שיתוף מידע -- הדבר מאפשר לאפליקציה ליצור הודעות שעשויות להיראות כאילו שנשלחו מחבר. שים לב: ייתכן אישור זה לא נאכף בכל הרשתות החברתיות."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"קריאת אירועי יומן וגם מידע סודי"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"מאפשר לאפליקציה לקרוא את כל אירועי היומן המאוחסנים בטאבלט, כולל אלה של חברים ועמיתים לעבודה. הדבר עשוי להתיר לאפליקציה לשתף או לשמור את נתוני היומן שלך, ללא התחשבות בסודיות או ברגישות."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"מאפשרת לאפליקציה לקרוא את כל אירועי היומן השמורים בטלוויזיה שלך, כולל אירועים של חברים ועמיתים. הרשאה זו עשויה לאפשר לאפליקציה לשתף או לשמור נתונים מהיומן שלך, בלי קשר לסודיות או לרגישות הנתונים."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"מאפשר לאפליקציה לשנות את הגדרות הסנכרון של חשבון. לדוגמה, ניתן להשתמש בכך על מנת להפעיל סנכרון של האפליקציה \'אנשים\' עם חשבון כלשהו."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"קרא את הנתונים הסטטיסטיים של הסינכרון"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"מאפשר לאפליקציה לקרוא את סטטיסטיקת הסנכרון של חשבון, כולל היסטוריית אירועי הסנכרון וכמות הנתונים שסונכרנה."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"קריאת מונחים שהוספת למילון"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"מאפשר לאפליקציה לקרוא את כל המילים, השמות והביטויים שהמשתמש אחסן במילון המשתמש."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"הוספת מילים למילון מוגדר-משתמש"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"מאפשר לאפליקציה לכתוב מילים חדשות במילון המשתמש."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"קריאת התוכן של אחסון ה-USB שלך"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"קריאת התוכן של כרטיס ה-SD שלך"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"מאפשר לאפליקציה לקרוא את תוכן אחסון ה-USB שלך."</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index d3e1e7f..69e558e 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"連絡先へのアクセス"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"位置情報"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"この端末の位置情報にアクセス"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ソーシャル情報"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"連絡先とソーシャルコネクションに関する情報に直接アクセスします。"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"カレンダー"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"カレンダーへのアクセス"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMSメッセージの送信と表示"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ストレージ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"端末上の写真、メディア、ファイルへのアクセス"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"単語リスト"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"単語リストの語句の読み取りまたは書き込みを行います"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ブックマークと履歴"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ブックマークとブラウザの履歴に直接アクセスします。"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"マイク"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"音声の録音"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"カメラ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"タブレットの通話履歴(着信や発信のデータなど)の変更をアプリに許可します。この許可を悪意のあるアプリに利用されると、通話履歴が消去または変更される恐れがあります。"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"テレビの通話履歴(着信や発信のデータなど)の変更をアプリに許可します。この許可を悪意のあるアプリに利用されると、通話履歴が消去または変更される恐れがあります。"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"携帯端末の通話履歴(着信や発信のデータなど)の変更をアプリに許可します。この許可を悪意のあるアプリに利用されると、通話履歴が消去または変更される恐れがあります。"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"自分の連絡先カードの読み取り"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"端末に保存されている個人のプロフィール情報(名前、連絡先情報など)の読み取りをアプリに許可します。これにより、アプリがユーザーの身元を特定できるようになり、プロフィール情報を第三者に転送する可能性があります。"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"自分の連絡先カードの変更"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"端末に保存されている個人のプロフィール情報(名前、連絡先情報など)の変更と追加をアプリに許可します。これにより、アプリがユーザーの身元を特定できるようになり、プロフィール情報を第三者に転送する可能性があります。"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ボディーセンサー(心拍数モニターなど)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"心拍数など、身体状態を監視するセンサーからのデータにアクセスすることをアプリに許可します。"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ソーシャルストリームを読む"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"あなたや友だちのソーシャル更新情報へのアクセスと同期をアプリに許可します。情報の共有は慎重に行ってください。これを許可すると、あなたと友だちがソーシャルネットワークで行ったやり取りを、機密性に関係なくアプリから読み取ることができるようになります。注: この許可は、一部のソーシャルネットワークでは適用されない場合があります。"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ソーシャルストリームに書く"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"友だちのソーシャル更新情報の表示をアプリに許可します。情報の共有は慎重に行ってください。これによりアプリは、友だちから発信されたかのようなメッセージを作成できるようになります。注: この許可は、一部のソーシャルネットワークでは適用されない場合があります。"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"カレンダーの予定と機密情報の読み取り"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"タブレットに保存されているカレンダーの予定(友だちや同僚の予定も含めすべて)を読み取ることをアプリに許可します。これにより、アプリがカレンダーのデータを機密性に関係なく共有または保存できるようになる可能性があります。"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"テレビに保存されているカレンダーの予定(友だちや同僚の予定も含めすべて)を読み取ることをアプリに許可します。これにより、アプリがカレンダーのデータを機密性に関係なく共有または保存できるようになる可能性があります。"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"アカウントの同期設定の変更をアプリに許可します。たとえば、連絡帳アプリとアカウントの同期を有効にするために使用できます。"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"同期統計の読み取り"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"アカウントの同期ステータス(同期イベントの履歴、同期されたデータの量など)の読み取りをアプリに許可します。"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"辞書に追加された語句の読み取り"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"単語リストに登録されているすべての語句や名前を読み取ることをアプリに許可します。"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"単語リストへの語句の追加"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"単語リストに新しい語句を書き込むことをアプリに許可します。"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USBストレージの読み取り"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SDカードのコンテンツの読み取り"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"USBストレージのコンテンツの読み取りをアプリに許可します。"</string> diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml index bfeac1d..640d7bd 100644 --- a/core/res/res/values-ka-rGE/strings.xml +++ b/core/res/res/values-ka-rGE/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"თქვენს კონტაქტებზე წვდომა"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"მდებარეობა"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"მოწყობილობის მდებარეობაზე წვდომა"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"თქვენი სოციალური ინფორმაცია"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"თქვენს კონტაქტებისა და სოციალურ კავშირების შესახებ ინფორმაციაზე პირდაპირი წვდომა."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"კალენდარი"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"თქვენს კალენდარზე წვდომა"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS შეტყობინებების გაგზავნა და ნახვა"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"შესანახი სივრცე"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"თქვენს მოწყობილობაზე არსებულ ფოტოებზე, მედიასა და ფაილებზე წვდომა"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"მომხმარებლის ლექსიკონი"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"მომხმარებლის ლექსიკონში სიტყვების წაკითხვა ან ჩაწერა."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"სანიშნეები და ისტორია"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"პირდაპირი წვდომა სანიშნეებსა და ბრაუზერის ისტორიაზე"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"მიკროფონი"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"აუდიოს ჩაწერა"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"კამერა"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"აპს შეეძლება, შეცვალოს თქვენი ტაბლეტის ზარების ჟურნალი, მათ შორის შემომავალი და გამავალი ზარების მონაცემები. მავნე აპებმა შეიძლება გამოიყენონ ეს თქვენი ზარების ჟურნალის წასაშლელად ან შესაცვლელად."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ნებას რთვს აპლიკაციას, შეცვალოს თქვენი ტელევიზორის ზარების ჟურნალი, შემომავალი და გამავალი ზარების მონაცემთა ჩათვლით. მავნე აპლიკაციებს შეუძლიათ ამოშალონ ან შეცვალონ თქვენი ზარების ჟურნალი."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"აპს შეეძლება, შეცვალოს თქვენი ტელეფონის ზარების ჟურნალი, მათ შორის შემომავალი და გამავალი ზარების მონაცემები. მავნე აპებმა შეიძლება გამოიყენონ ეს თქვენი ზარების ჟურნალის წასაშლელად ან შესაცვლელად."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"თქვენი საკონტაქტო ინფორმაციის ნახვა"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"აპს შეეძლება მოწყობილობაზე შენახული პირადი პროფილის ინფორმაციის წაკითხვა, მაგალითად, თქვენი სახელისა და საკონტაქტო ინფორმაციის. ეს ნიშნავს, რომ აპს შეუძლია თქვენი იდენტიფიცირება და თქვენი პირადი ინფორმაციის სხვებისთვის გაგზავნა."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"თქვენი საკონტაქტო ინფორმაციის შეცვლა"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"აპს შეეძლება მოწყობილობაზე შენახული პირადი პროფილის ინფორმაციის შეცვლა ან დამატება, მაგალითად, თქვენი სახელისა და საკონტაქტო ინფორმაციის. ეს ნიშნავს, რომ აპს შეუძლია თქვენი იდენტიფიცირება და თქვენი პირადი ინფორმაციის სხვებისთვის გაგზავნა."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"სხეულის სენსორები (მაგ. გულისცემის მონიტორები)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"აპისთვის ნების დართვა, რათა მას ჰქონდეს წვდომა თქვენი ფიზიკური მდგომარეობის მონიტორინგის სენსორების მონაცემებზე."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"სოციალური ნაკადის წაკითხვა"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"აპს შეეძლება თქვენი და თქვენი მეგობრების სოციალური განახლებებთან წვდომა და სინქრონიზაცია. ინფორმაციის გაზიარებისას იყავით ფრთხიად - აპს ექნება შესაძლებლობა, რომ წაიკითხოს სოციალურ ქსელებში კომუნიკაცია თქვენსა და თქვენს მეგობრებს შორის კონფიდენციალურობის მიუხედავად. შენიშვნა: ეს უფლება შესაძლოა ვერ იყოს გამოყენებული ყველა სოციალურ ქსელში."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"თქვენს სოციალურ მაუწყებლობაზე დაწერა"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"აპს შეეძლება, გიჩვენოთ თქვენი მეგობრების სოციალური სიახლეები. ფრთხილად იყავით ინფორმაციის გაზიარებისას - აპს შეუძლია შექმნას შეტყობინება, რომელიც თითქოსდა მეგობრისგან არის მოწერილი. შენიშვნა: ეს ნებართვა არ შეიძლება შესრულდეს ყველა სოციალურ ქსელში."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"კალენდრის ღონისძიებებისა და კონფიდენციალური ინფორმაციის წაკითხვა"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"აპს შეეძლება, წაიკითხოს თქვენ ტაბლეტზე შენახული კალენდრის ყველა მოვლენა, მათ შორის მეგობრებისა და თანამშრომლების მოვლენებიც. ამან შეიძლება უფლება მისცეს აპს, გააზიაროს ან შეინახოს თქვენი კალენდრის მონაცემები, მიუხედავად კონფიდენციალურობისა თუ მგრძობიარობისა."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ნებას რთავს აპლიკაციას, წაიკითხოს თქვენს ტელევიზორში განთავსებული კალენდარული მოვლენები, მეგობრებისა თუ თანამშრომლების ჩათვლით. ამან შესაძლოა ნება დართოს აპლიკაციას გააზიროს ან შეინახოს კალენდარული მონაცემები, მიუხედავად მათი კონფიდენცალურობისა და სენსიტიურობის."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"აპს შეეძლება, შეცვალოს ანგარიშის სინქრონიზაციის პარამეტრები. მაგალითად, მისი გამოყენება შეიძლება ანგარიშის People აპთან სინქრონიზაციის ჩასართავად."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"სინქრონიზაციის სტატისტიკების წაკითხვა"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"აპს შეეძლება ანგარიშის სინქრონიზაციის სტატისტიკის, მათ შორის სინქრონიზაციის მოვლენების ისტორიისა და სინქრონიზაციისას გადაცემული მონაცემების რაოდენობის წაკითხვა."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ლექსიკონში თქვენი დამატებული ტერმინების ნახვა"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"აპს შეეძლება წაიკითხოს ყველა სიტყვა, სახელი და ფრაზა, რომელიც შეიძლება მომხმარებელმა შეიტანა მომხმარებლის ლექსიკონში."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"მომხმარებლისთვის განკუთვნილ ლექსიკონში სიტყვების დამატება."</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"აპს შეეძლება ახალი სიტყვების დამატება მომხმარებლის ლექსიკონში."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"თქვენი USB მეხსიერების კონტენტის წაკითხვა"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"თქვენი SD ბარათის კონტენტის წაკითხვა"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"აპი წაიკითხავს USB კონტენტს."</string> diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml index e9b3709..21281f0 100644 --- a/core/res/res/values-kk-rKZ/strings.xml +++ b/core/res/res/values-kk-rKZ/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"контактілерге кіру"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Орын"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"бұл құрылғының орнына кіру"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Сіздің әлеуметтік ақпаратыңыз"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Байланыстарыңыз бен әлеуметтік контактілеріңіз туралы ақпаратқа тікелей қол жетімділік."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Күнтізбе"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"күнтізбеге кіру"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS хабарларын жіберу және көру"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Жад"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"құрылғыдағы фотосуреттерге, мультимедиаға және файлдарға қол жеткізу"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Пайдаланушы сөздігі"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Пайдаланушы сөздігінде сөздерді оқыңыз не жазыңыз."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Бетбелгілер және Тарих"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Бетбелгілер мен браузерге тікелей қол жетімділік."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"аудио жазу"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Қолданбаға сіздің планшетіңіздегі қоңырау тіркеуін, келетін немесе шығатын қоңыраулар туралы деректерді қоса, өзгерту мүмкіндігін береді. Залалды қолданбалар бұны сіздің қоңырау тіркеуіңізді өшіру үшін қолдануы мүмкін."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Қолданбаға ТД қоңыраулар журналын, соның ішінде, кіріс және шығыс қоңыраулар туралы деректерді өзгертуге рұқсат етеді. Зиянкес қолданбалар мұны қоңыраулар журналын өшіру немесе өзгерту үшін пайдалануы мүмкін."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Қолданбаға сіздің телефоныңыздың қоңырау тіркеуін, келетін немесе шығатын қоңыраулар туралы деректерді қоса, өзгерту мүмкіндігін береді. Залалды қолданбалар бұны сіздің қоңырау тіркеуіңізді өшіру үшін қолдануы мүмкін."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"өзіңіздің контакт картаңызды оқу"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Қолданбаға құрылғыда сақталған сіздің аты-жөніңіз және байланыс ақпаратыңыз сияқты жеке ақпаратты оқу мүмкіндігін береді. Бұл қолданба сізді анықтап, сіз туралы жеке ақпаратты басқаларға жібере алады дегенді білдіреді."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"өзіңіздің байланыс картаңызды өзгерту"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Қолданбаға құрылғыда сақталған сіздің аты-жөніңіз және байланыс ақпаратыңыз сияқты жеке ақпаратты өзгерту немесе қосу мүмкіндігін береді. Бұл - қолданба сізді анықтап, сіз туралы жеке ақпаратты басқаларға жібере алады дегенді білдіреді."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"дене сен-ры (жүрек соғу жиіл. мон-ры сияқты)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Қолданбаға жүрек соғу жиілігіңіз сияқты дене күйіңізді бақылайтын сенсорлардың деректеріне қатынасуға рұқсат етеді."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"әлеуметтік ағымды оқу"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Қолданбаға сіз және достарыңыздың әлеуметтік жаңартуларына кіру және синхрондау мүмкіндігін береді. Ақпарат бөліскенде абай болыңыз -- бұл қолданбаға сіз және достарыңызды әлеуметтік желілердегі қарым-қатынасты, құпиялығына қарамастан, оқу мүмкіндігін берді. Есіңізде болсын: бұл рұқсатты барлық әлеуметтік желілер қолданбайды."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"әлеуметтік ағынға жазу"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Қолданбаға сіздің достарыңыздың әлеуметтік желі жаңартуларын көрсету мүмкіндігін береді. Ақпарат бөліскенде абай болыңыз -- бұл қолданбаға сіздің досыңыздан келген сияқты болып көрінетін хабар жіберу мүмкіндігін береді. Есіңізде болсын: әлеуметтік желілер бұл рұқсатты қолданбауы мүмкін."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"күнтізбе шаралары мен құпия ақпаратты оқу"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Қолданбаға планшетте сақталған барлық күнтізбе шараларын, достар немесе әріптестердің шараларын қоса, оқу мүмкіндігін береді. Бұл қолданбаға күнтізбе деректерін, құпиялығы мен сезімталдығына қарамастан, бөлісу немесе сақтау мүмкіндігін беруі ықтимал."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Қолданбаға теледидарда сақталған бүкіл күнтізбе оқиғаларын, соның ішінде, достардыкін немесе әріптестердікін, оқуға рұқсат етеді. Бұл қолданбаға құпиялығына немесе сезімталдығына қарамастан күнтізбе деректеріңізді бөлісуге рұқсат етуі мүмкін."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Қолданбаға есептік жазбаның синхрондау параметрлерін жөндеу мүмкіндігін береді. Мысалы, бұл People қолданбасын есептік жазбамен синхрондауды қосу үшін қолданылуы мүмкін."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"үйлестіру санақтық ақпаратын оқу"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Қолданбаға есептік жазбаның синхрондалу статистикаларын, оның ішінде синхрондау шараларының тарихы және қанша дерек синхрондалғаны жайлы, оқу мүмкіндігін береді."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"сөздікке сіз қосқан шарттарды оқу"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Қолданбаға пайдаланушы сөздігінде сақталған барлық сөздер, аттар және фразаларды оқу мүмкіндігін береді."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"пайдаланушы анықтаған сөздікке сөздер қосу"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Қолданбаға пайдаланушы сөздігіне жаңа сөздерді жазуға рұқсат береді."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"Өзіңіздің USB жадыңыздың мазмұнын оқу"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"Өзіңіздің SD картаңыздың мазмұнын оқу"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Қолданбаға USB жадыңыздың мазмұнын оқу мүмкіндігін береді."</string> diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml index d437294..95d6fbf 100644 --- a/core/res/res/values-km-rKH/strings.xml +++ b/core/res/res/values-km-rKH/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ចូលប្រើទំនាក់ទំនងរបស់អ្នក"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ទីតាំង"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ចូលដំណើរការទីតាំងរបស់ឧបករណ៍នេះ"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ព័ត៌មានសង្គមរបស់អ្នក"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ចូលដំណើរការព័ត៌មានដោយផ្ទាល់អំពីទំនាក់ទំនង និងការភ្ជាប់សង្គមរបស់អ្នក។"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ប្រតិទិន"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ចូលប្រើប្រិតិទិនរបស់អ្នក"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"សារ SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"ផ្ញើ និងមើលសារ SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ការផ្ទុក"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"ចូលដំណើការរូបភាព មេឌៀ និងឯកសារនៅលើឧបករណ៍របស់អ្នក"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"វចនានុក្រមអ្នកប្រើ"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"អាន ឬសរសេរនៅក្នុងវចនានុក្រមអ្នកប្រើ។"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ចំណាំ និងប្រវត្តិ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ចូលដំណើរការចំណាំ និងប្រវត្តិកម្មវិធីអ៊ីនធឺណិតដោយផ្ទាល់។"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"មីក្រូហ្វូន"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ថតសំឡេង"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ម៉ាស៊ីនថត"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ឲ្យកម្មវិធីកែបញ្ជីហៅកុំព្យូទ័របន្ទះរបស់អ្នករួមមានទិន្នន័យអំពីការហៅចូល និងចេញ។កម្មវិធីព្យាបាទអាចប្រើវា ដើម្បីលុប ឬកែបញ្ជីហៅរបស់អ្នក។"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"អនុញ្ញាតឲ្យកម្មវិធីកែសម្រួលកំណត់ហេតុហៅទូរស័ព្ទទូរទស្សន៍របស់អ្នក ដោយរាប់បញ្ចូលទាំងទិន្នន័យអំពីការហៅចូល និងការហៅចេញ។ កម្មវិធីព្យាបាទអាចប្រើវាដើម្បីលុប ឬកែសម្រួលកំណត់ហេតុការហៅទូរស័ព្ទរបស់អ្នក។"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ឲ្យកម្មវិធីកែបញ្ជីហៅនៃទូរស័ព្ទរបស់អ្នក រួមមានទិន្នន័យអំពីការហៅចូល និងចេញ។ កម្មវិធីព្យាបាទអាចប្រើវា ដើម្បីលុប ឬកែបញ្ជីការហៅរបស់អ្នក។"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"អានកាតទំនាក់ទំនងផ្ទាល់ខ្លួនរបស់អ្នក"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ឲ្យកម្មវិធីអានព័ត៌មានប្រវត្តិរូបផ្ទាល់ខ្លួនដែលមានលើឧបករណ៍របស់អ្នក ដូចជា ឈ្មោះ និងព័ត៌មានទំនាក់ទំនង។ វាមានន័យថា កម្មវិធីអាចកំណត់អ្នក និងអាចផ្ញើព័ត៌មានប្រវត្តិរូបរបស់អ្នកទៅអ្នកផ្សេង។"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"កែកាតទំនាក់ទំនងផ្ទាល់ខ្លួនរបស់អ្នក"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ឲ្យកម្មវិធីប្ដូរ ឬបន្ថែមព័ត៌មានប្រវត្តិរូបផ្ទាល់ខ្លួនដែលបានរក្សាទុកក្នុងឧបករណ៍របស់អ្នក ដូចជា ឈ្មោះ និងព័ត៌មានទំនាក់ទំនងរបស់អ្នក។ នេះមានន័យថាកម្មវិធីអាចកំណត់អ្នក និងផ្ញើព័ត៌មានប្រវត្តិរូបរបស់អ្នកទៅអ្នកផ្សេង។"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ឧបករណ៍ចាប់សញ្ញារាងកាយ(ដូចជាម៉ាស៊ីនវាស់ចង្វាក់បេះដូង)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ឲ្យកម្មវិធីចូលដំណើរការទិន្នន័យពីឧបករណ៍ចាប់សញ្ញាដែលតាមដានលក្ខខណ្ឌសុខភាពរបស់អ្នក ដូចជាចង្វាក់បេះដូង។"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"អានចរន្តសង្គមរបស់អ្នក"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ឲ្យកម្មវិធីចូលដំណើរការ និងធ្វើសមកាលកម្មបច្ចុប្បន្នភាពសង្គមពីអ្នក និងមិត្តភ័ក្ដិ។ ប្រយ័ត្នពេលចែករំលែកព័ត៌មាន វាអនុញ្ញាតឲ្យកម្មវិធីអានការទាក់ទងរវាងអ្នក និងមិត្តភ័ក្ដិលើបណ្ដាញសង្គម ទាក់ទងនឹងព័ត៌មានសម្ងាត់។ ចំណាំ៖ សិទ្ធិនេះមិនអាចត្រូវបានអនុវត្តលើបណ្ដាញសង្គមទាំងអស់បានទេ។"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"សរសេរទៅចរន្តសង្គមរបស់អ្នក"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ឲ្យកម្មវិធីបង្ហាញបច្ចុប្បន្នភាពសង្គមពីមិត្តភ័ក្ដិរបស់អ្នក។ ប្រយ័ត្នពេលចែករំលែកព័ត៌មាន វាឲ្យកម្មវិធីបង្កើតសារដែលអាចបង្ហាញថាមកពីមិត្តភ័ក្ដិ។ ចំណាំ៖ សិទ្ធិនេះមិនអាចប្រើលើបណ្ដាញសង្គមបានទេ។"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"អានព្រឹត្តិការណ៍ប្រតិទិននិងព័ត៌មានសម្ងាត់"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ឲ្យកម្មវិធីអាចព្រឹត្តិការណ៍ប្រតិទិនទាំងអស់ដែលបានរក្សាទុកក្នុងទូរស័ព្ទរបស់អ្នក រួមមានមិត្តភ័ក្ដិ និងមិត្តរួមការងារ។ វាអាចឲ្យកម្មវិធីចែករំលែក ឬរក្សាទុកទិន្នន័យប្រតិទិនរបស់អ្នកដោយមិនគិតពីការសម្ងាត់ ឬការយល់ដឹង។"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"អនុញ្ញាតឲ្យកម្មវិធីអានព្រឹត្តិការណ៍ប្រតិទិនទាំងអស់ដែលបានផ្ទុកនៅលើទូរទស្សន៍របស់អ្នក ដោយរាប់បញ្ចូលទាំងព្រឹត្តិការណ៍របស់មិត្តភ័ក្ត និងមិត្តរួមការងាររបស់អ្នក។ វាអាចអនុញ្ញាតឲ្យកម្មវិធីចែករំលែក ឬរក្សាទុកទិន្នន័យប្រតិទិនរបស់អ្នក ដោយមិនគិតថាវាជាព័ត៌មានសម្ងាត់ ឬរសើបក៏ដោយ។"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ឲ្យកម្មវិធីកែការកំណត់ធ្វើសមកាលកម្មសម្រាប់គណនី។ ឧទាហរណ៍ វាអាចត្រូវបានប្រើដើម្បីបើកការធ្វើសមកាលកម្មកម្មវិធីរបស់មនុស្សជាមួយគណនី។"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"អានស្ថិតិធ្វើសមកាលកម្ម"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ឲ្យកម្មវិធីអានស្ថានភាពធ្វើសមកាលកម្មសម្រាប់គណនី រួមមានព្រឹត្តិការណ៍ប្រវត្តិធ្វើសមកាលកម្ម និងទំហំទិន្នន័យបានធ្វើសមកាលកម្ម។"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"អានពាក្យដែលអ្នកបានបន្ថែមទៅវចនានុក្រម"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ឲ្យកម្មវិធីអានពាក្យ ឈ្មោះ និងឃ្លាទាំងអស់ដែលអ្នកប្រើអាចរក្សាទុកក្នុងវចនានុក្រមអ្នកប្រើ។"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"បន្ថែមពាក្យទៅវចនានុក្រមកំណត់ដោយអ្នកប្រើ"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ឲ្យកម្មវិធីសរសេរពាក្យថ្មីក្នុងវចនានុក្រមអ្នកប្រើ។"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"អានមាតិកាឧបករណ៍ផ្ទុកយូអេសប៊ីរបស់អ្នក"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"អានមាតិកាកាតអេសឌីរបស់អ្នក"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ឲ្យកម្មវិធីអានមាតិកាឧបករណ៍ផ្ទុកយូអេសប៊ីរបស់អ្នក។"</string> diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml index 325f377..96c6b4f 100644 --- a/core/res/res/values-kn-rIN/strings.xml +++ b/core/res/res/values-kn-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ಸ್ಥಳ"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ಈ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಿ"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ನಿಮ್ಮ ಸಾಮಾಜಿಕ ಮಾಹಿತಿ"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಸಾಮಾಜಿಕ ಸಂಪರ್ಕಗಳ ಕುರಿತ ಮಾಹಿತಿಗೆ ನೇರ ಪ್ರವೇಶ."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ಕ್ಯಾಲೆಂಡರ್"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಪ್ರವೇಶಿಸಿ"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ಸಂಗ್ರಹಣೆ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಫೋಟೋಗಳು, ಮಾಧ್ಯಮ ಮತ್ತು ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ಬಳಕೆದಾರರ ನಿಘಂಟು"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ಬಳಕೆದಾರರ ನಿಘಂಟಿನಲ್ಲಿನ ಪದಗಳನ್ನು ಓದಿ ಮತ್ತು ಬರೆಯಿರಿ."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ಬುಕ್ಮಾರ್ಕ್ಗಳು ಮತ್ತು ಇತಿಹಾಸ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ಬುಕ್ಮಾರ್ಕ್ಗಳು ಮತ್ತು ಬ್ರೌಸರ್ ಇತಿಹಾಸಕ್ಕೆ ನೇರ ಪ್ರವೇಶ."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ಮೈಕ್ರೋಫೋನ್"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ಆಡಿಯೊ ರೆಕಾರ್ಡ್ ಮಾಡಿ"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ಕ್ಯಾಮರಾ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ಒಳಬರುವ ಮತ್ತು ಹೊರಹೋಗುವ ಕರೆಗಳ ಕುರಿತ ಡೇಟಾ ಸೇರಿದಂತೆ, ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಅಪ್ಲಿಕೇಶನ್ಗಳು ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಅಳಿಸಲು ಅಥವಾ ಮಾರ್ಪಡಿಸಲು ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ಒಳಬರುವ ಮತ್ತು ಹೊರಹೋಗುವ ಕರೆಗಳ ಕುರಿತು ಡೇಟಾ ಸೇರಿದಂತೆ ನಿಮ್ಮ ಟಿವಿಯ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಅಪ್ಲಿಕೇಶನ್ಗಳು ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಅಳಿಸಲು ಅಥವಾ ಮಾರ್ಪಡಿಸಲು ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ಒಳಬರುವ ಮತ್ತು ಹೊರಹೋಗುವ ಕರೆಗಳ ಕುರಿತ ಡೇಟಾ ಸೇರಿದಂತೆ, ನಿಮ್ಮ ಫೋನ್ನ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಅಪ್ಲಿಕೇಶನ್ಗಳು ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ಅಳಿಸಲು ಅಥವಾ ಮಾರ್ಪಡಿಸಲು ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ನಿಮ್ಮದೇ ಸಂಪರ್ಕದ ಕಾರ್ಡ್ ಓದಿ"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವ ನಿಮ್ಮ ಹೆಸರು ಮತ್ತು ಸಂಪರ್ಕ ಮಾಹಿತಿಯಂತಹ, ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್ ಮಾಹಿತಿಯನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಇದರರ್ಥ, ಅಪ್ಲಿಕೇಶನ್ ನಿಮ್ಮನ್ನು ಗುರುತಿಸಬಹುದು ಮತ್ತು ಇತರರಿಗೆ ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಬಹುದು."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ನಿಮ್ಮದೇ ಸಂಪರ್ಕದ ಕಾರ್ಡ್ ಮಾರ್ಪಡಿಸಿ"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವ ನಿಮ್ಮ ಹೆಸರು ಹಾಗೂ ಸಂಪರ್ಕ ಮಾಹಿತಿಯಂತಹ, ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್ ಮಾಹಿತಿಯನ್ನು ಬದಲಿಸಲು ಅಥವಾ ಸೇರಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಅಂದರೆ, ಅಪ್ಲಿಕೇಶನ್ ನಿಮ್ಮನ್ನು ಗುರುತಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಮಾಹಿತಿಯನ್ನು ಇತರರಿಗೆ ಕಳುಹಿಸಬಹುದು ಎಂದರ್ಥ."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ದೇಹದ ಸಂವೇದಗಳು (ಹೃದಯದ ರೇಟ್ ಮಾನಿಟರ್ಗಳಂತಹ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ನಿಮ್ಮ ಹೃದಯ ಬಡಿತದಂತಹ ನಿಮ್ಮ ದೈಹಿಕ ಸ್ಥಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸೆನ್ಸರ್ಗಳಿಂದ ಡೇಟಾ ಪ್ರವೇಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ನಿಮ್ಮ ಸಾಮಾಜಿಕ ಸ್ಟ್ರೀಮ್ ಓದಿರಿ"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ನೀವು ಮತ್ತು ನಿಮ್ಮ ಸ್ನೇಹಿತರ ಸಾಮಾಜಿಕ ನವೀಕರಣಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಸಿಂಕ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವಾಗ ಜಾಗರೂಕರಾಗಿರಿ -- ಇದು ಗೌಪ್ಯತೆಯನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ, ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ನೀವು ಮತ್ತು ನಿಮ್ಮ ಸ್ನೇಹಿತರ ನಡುವೆ ನಡೆದಿರುವ ಸಂವಹನವನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಗಮನಿಸಿ: ಈ ಅನುಮತಿಯನ್ನು ಎಲ್ಲಾ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಜಾರಿಗೊಳಿಸದೇ ಇರಬಹುದು."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ನಿಮ್ಮ ಸಾಮಾಜಿಕ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಬರೆಯಿರಿ"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ನಿಮ್ಮ ಸ್ನೇಹಿತರ ಸಾಮಾಜಿಕ ನವೀಕರಣಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವಾಗ ಜಾಗರೂಕರಾಗಿರಿ -- ಇದು ಸ್ನೇಹಿತರು ಕಳುಹಿಸಿರುವಂತಹ ಸಂದೇಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಗಮನಿಸಿ: ಈ ಅನುಮತಿಯನ್ನು ಎಲ್ಲಾ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಜಾರಿಗೊಳಿಸದೇ ಇರಬಹುದು."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್ಗಳು ಅಲ್ಲದೇ ಗೌಪ್ಯತೆ ಮಾಹಿತಿಯನ್ನು ಓದಿರಿ"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವ ಸ್ನೇಹಿತರ ಅಥವಾ ಸಹೋದ್ಯೋಗಿಗಳ ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್ಗಳೂ ಸೇರಿದಂತೆ, ಎಲ್ಲಾ ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್ಗಳನ್ನು ರೀಡ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ಕಲ್ಪಿಸಿಕೊಡುತ್ತದೆ. ಇದು ಗೌಪ್ಯತೆ ಮತ್ತು ಸೂಕ್ಷ್ಮತೆಯನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ, ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಡೇಟಾವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಮತ್ತು ಉಳಿಸಿಕೊಳ್ಳಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ಕಲ್ಪಿಸಬಹುದು."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ನಿಮ್ಮ ಟಿವಿಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಎಲ್ಲಾ ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್ಗಳು, ಸ್ನೇಹಿತರು ಅಥವಾ ಸಹ-ಕೆಲಸಗಾರರನ್ನು ಒಳಗೊಂಡಂತೆ ಅಪ್ಲಿಕೇಶನ್ ಓದಲು ಅನುಮತಿಸುತ್ತದೆ. ಗೌಪ್ಯತೆ ಅಥವಾ ಸಂವೇದನೆಯನ್ನು ಪರಿಗಣಿಸದೆ ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಡೇಟಾವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಥವಾ ಉಳಿಸಲು ಇದು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸಬಹುದು."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ಖಾತೆಗೆ ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಖಾತೆಯನ್ನು ಹೊಂದಿರುವ ವ್ಯಕ್ತಿಗಳ ಸಿಂಕ್ ಸಕ್ರಿಯಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದಾಗಿದೆ."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ಸಿಂಕ್ ಅಂಕಿಅಂಶಗಳನ್ನು ಓದಿರಿ"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ಸಿಂಕ್ ಈವೆಂಟ್ಗಳ ಇತಿಹಾಸ ಮತ್ತು ಎಷ್ಟು ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದು ಸೇರಿದಂತೆ, ಒಂದು ಖಾತೆಗಾಗಿ ಸಿಂಕ್ ಅಂಕಿಅಂಶಗಳನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ನೀವು ನಿಘಂಟಿಗೆ ಸೇರಿಸಿದ ಪದಗಳನ್ನು ಓದಿ"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ಬಳಕೆದಾರರು ಬಳಕೆದಾರ ನಿಘಂಟಿನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿರಬಹುದಾದ ಎಲ್ಲಾ ಪದಗಳು, ಹೆಸರುಗಳು ಮತ್ತು ನುಡಿಗಟ್ಟುಗಳನ್ನು ರೀಡ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ಬಳಕೆದಾರ-ನಿರ್ಧರಿತ ನಿಘಂಟಿಗೆ ಪದಗಳನ್ನು ಸೇರಿಸಿ"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ಬಳಕೆದಾರರ ನಿಘಂಟಿನಲ್ಲಿ ಹೊಸ ಪದಗಳನ್ನು ಬರೆಯಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ನಿಮ್ಮ USB ಸಂಗ್ರಹಣೆಯ ವಿಷಯಗಳನ್ನು ಓದಿ"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ನಿಮ್ಮ SD ಕಾರ್ಡ್ನ ವಿಷಯಗಳನ್ನು ಓದಿ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ನಿಮ್ಮ USB ಸಂಗ್ರಹಣೆಯ ವಿಷಯಗಳನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 3766ec0..086f1ed 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"주소록 액세스"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"위치"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"이 기기의 위치에 액세스하기"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"소셜 정보"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"내 연락처 및 소셜 친구의 개인 정보에 직접 액세스합니다."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"캘린더"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"캘린더 액세스"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS 메시지를 전송하고 봅니다."</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"저장"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"기기의 사진, 미디어, 파일에 액세스합니다."</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"사용자 사전"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"사용자 사전의 단어를 읽거나 씁니다."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"북마크 및 기록"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"북마크 및 브라우저 기록에 직접 액세스합니다."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"마이크"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"오디오 녹음"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"카메라"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"앱에서 수신 및 발신 통화 데이터를 포함하여 태블릿의 통화 기록을 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 통화 기록을 지우거나 수정할 수 있습니다."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"앱에서 수신 및 발신 통화 데이터를 포함하여 TV의 통화 기록을 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 통화 기록을 삭제하거나 수정할 수도 있습니다."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"앱에서 수신 및 발신 통화 데이터를 포함하여 휴대전화의 통화 기록을 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 통화 기록을 지우거나 수정할 수 있습니다."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"나만의 연락처 카드 읽기"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"앱이 기기에 저장된 개인 프로필 정보(예: 사용자 이름, 연락처 정보 등)를 읽을 수 있도록 허용합니다. 이는 앱이 사용자를 확인할 수 있으며 다른 사용자에게 해당 프로필 정보를 전송할 수도 있다는 것을 의미합니다."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"나만의 연락처 카드 수정"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"앱이 기기에 저장된 개인 프로필 정보(예: 사용자 이름, 연락처 정보 등)를 변경 또는 추가할 수 있도록 허용합니다. 이는 앱이 사용자를 확인하고 다른 사용자에게 해당 프로필 정보를 전송할 수 있다는 것을 의미합니다."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"신체 센서(예: 심박수 모니터)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"앱이 심박수와 같은 신체 상태를 모니터링하는 센서의 데이터에 액세스하도록 허용합니다."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"소셜 스트림 읽기"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"앱이 사용자와 친구의 최신 소셜 소식에 액세스하고 동기화할 수 있도록 허용합니다. 이 경우 앱이 비밀유지와 관계 없이 소셜 네트워크에서 사용자와 친구가 주고받는 내용을 읽을 수 있으므로, 정보를 공유할 때 주의해야 합니다. 참고: 이 권한이 적용되지 않는 소셜 네트워크도 있습니다."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"소셜 스트림에 쓰기"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"앱이 친구의 소셜 소식을 표시할 수 있도록 허용합니다. 이 경우 친구로부터 나온 것으로 보이는 메시지를 생성할 수 있으므로, 정보를 공유할 때 주의해야 합니다. 참고: 이 권한이 적용되지 않는 소셜 네트워크도 있습니다."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"캘린더 일정 및 기밀정보 읽기"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"앱이 친구나 동료의 일정을 포함하여 태블릿에 저장된 모든 캘린더 일정을 읽을 수 있도록 허용합니다. 이 경우 앱이 비밀유지 또는 기밀성을 무시하고 캘린더 데이터를 공유 또는 저장할 수도 있습니다."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"앱이 친구 및 동료들의 일정을 포함하여 TV에 저장된 모든 캘린더 일정을 읽을 수 있도록 허용합니다. 이 경우 앱이 데이터의 민감성 또는 기밀성과 상관없이 캘린더 데이터를 공유하거나 저장할 수 있게 됩니다."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"앱이 계정의 동기화 설정을 수정할 수 있도록 허용합니다. 예를 들어, 계정에서 주소록 앱을 동기화할 목적으로 앱이 사용될 수 있습니다."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"동기화 통계 읽기"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"앱이 동기화된 일정의 기록이나 동기화된 데이터의 양 등을 포함하여 계정의 동기화 통계를 읽을 수 있도록 허용합니다."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"사전에 추가한 단어 읽기"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"앱이 사용자 사전에 저장하고 있는 모든 단어, 이름, 문구 등을 읽을 수 있도록 허용합니다."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"사용자 정의 사전에 단어 추가"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"앱이 사용자 사전에 새 단어를 입력할 수 있도록 허용합니다."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB 저장소의 콘텐츠 읽기"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD 카드의 콘텐츠 읽기"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"앱이 USB 저장소의 콘텐츠를 읽을 수 있도록 허용합니다."</string> diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index 91eaab6..f86f171 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -338,8 +338,6 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"байланыштарыңызга уруксат"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Жайгашкан жер"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"бул түзмөктүн жайгашкан жерине кирүү"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Сиздин социалдык маалыматыңыз"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Сиздин байланыштарыңыз жана социалдык байланыштарыңыз тууралуу маалыматтарга түз жетки алуу."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Күнбарак"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"жылнаамаңызды пайдалануу"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> @@ -347,10 +345,6 @@ <!-- no translation found for permgrouplab_storage (1971118770546336966) --> <skip /> <string name="permgroupdesc_storage" msgid="637758554581589203">"түзмөгүңүздөгү сүрөттөр, медиа жана файлдарга кирүү"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Колдонуучунун сөздүгү"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Колдонуучунун сөздүгүндөгү сөздөрдү окуу же жазуу"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Бүктөмөлөр жана тарых"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Бүктөмөлөргө же серепчи тарыхына түз жетки алуу."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"аудио жаздыруу"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -449,16 +443,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Колдонмого планшетиңиздин чалуулар тизмегин, анын ичинде, чыгыш жана кириш чалууларына тиешелүү берилиштерди өзгөртүү уруксатын берет. Зыяндуу колдонмолор муну колдонуп чалуулар тизмегин өзгөртө же жок кыла алышат."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Колдонмого сыналгыңыздын чалуулар таржымалын, ошондой эле келүүчү жана чыгуучу чалуулар тууралуу дайындарды өзгөртүү мүмкүнчүлүгү берилет. Зыянкеч колдонмолор ушуну менен чалуулар таржымалыңызды жок кылып же өзгөртүп коюшу мүмкүн."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Колдонмого телефонуңуздун чалуулар тизмегин, анын ичинде, чыгыш жана кириш чалууларына тиешелүү берилиштерди өзгөртүү уруксатын берет. Зыяндуу колдонмолор муну колдонуп чалуулар тизмегин өзгөртө же жок кыла алышат."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"сиздин байланыш картаңызды окуу"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Колдонмого түзмөгүңүздө сакталган сиздин атыңыз жана байланыш маалыматтарыңыз сыяктуу персоналдык профайл маалыматтарын окуганга уруксат берет. Бул колдонмо сизди аныктай алат жана сиздин профайл маалыматтарыңызды башкаларга жөнөткөнгө жөндөмдүү билдирет."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"сиздин байланыш картаңызды өзгөртүү"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Колдонмого түзмөгүңүздө сакталган, сиздин атыңыз жана байланыш маалыматтарыңыз сыяктуу жеке профайл маалыматтарын өзгөртүү же кошуу уруксатын берет. Бул колдонмо сизди аныктай алат жана сиздин профилдик маалыматтарыңызды башкаларга жөнөтүүгө жөндөм алат дегенди билдирет."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"дене-бой сенсорлору (жүрөктүн кагышын өлчөгүчтөр сыяктуу)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Колдонмого жүрөгүңүздүн согушу сыяктуу дене-бой абалыңызды көзөмөлдөгөн сенсорлордогу дайындарды көрүп туруу мүмкүнчүлүгүн берет."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"сиздин социалдык агымыңызды окуу"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Колдонмого социалдык түйүндөргө жетүү жана сиздин жана досторуңуздун жаңыртуулары менен синхрондошуу уруксатын берет. Маалымат бөлүшкөндө абайлаңыз -- бул колдонмого сиздин социалдык түйүндөрдөгү досторуңуз менен баарлашууңузду, анын конфиденциалдуулугуна карабастан, окуганга уруксат берет. Эскертүү: бул уруксат айрым социалдык түйүндөрдө иштебеши мүмкүн."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"сиздин социалдык агымыңызга жазуу"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Колдонмого социалдык түйүндөрдөгү досторуңуздардан келген жаңыртууларды көрсөтүү мүмкүнчүлүгүн берет. Маалымат бөлүшкөндө абайлаңыз -- бул колдонмого досуңуздан келген сыяктуу көрүнгөн билдирүүлөрдү жаратууга жол берет. Эскертүү: бул уруксат айрым социалдык түйүндөрдө иштебеши мүмкүн."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"күнбарак иш-аракеттерин жана купуя маалыматтарды окуу"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Колдонмого планшетиңизде сакталган сиздин, досторуңуздун жана кесиптештериңиздин күнбарак окуяларын окуганга уруксат берет. Бул колдонмого күнбарак берилиштерин, алардын купуялуулугана жана маанилүүлүгөн карабастан бөлүшүү же сактоо уруксатын берет."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Колдонмого сыналгыңызда сакталган бардык жылнаама окуяларын, ошондой эле досторуңуз же кесиптештериңиздин окуяларын окуу мүмкүнчүлүгүн берет. Ушуну менен, колдонмо купуялуулук же астейдил мамилени талап кылуу шартына карабастан, жылнаама дайындарыңызды бөлүшүп же сактай алышы мүмкүн."</string> @@ -586,10 +572,6 @@ <!-- no translation found for permlab_readSyncStats (7396577451360202448) --> <skip /> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Колдонмого эсептин статистикасын, синхрондоштуруу тарыхын, анын ичинде, канча берилиштер синхрондошкондугун окуганга уруксат берет."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"сөздүккө кошкон терминдериңизди окуу"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Колдонмого колдонуучу сөздүгүндө сакталган бардык сөздөрдү, аттарды жана фразаларды окуганга уруксат берет."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"колдонуучунун сөздүгүнө сөздөрдү кошуу"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Колдонмого колдонуучунун сөздүгүнө жаңы сөздөрдү жазуу мүмкүнчүлүгүн берет."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB сактагычыңыздын мазмунун окуу"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD-картаңыздын мазмунун окуу"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Колдонмого USB сактагычыңыздын мазмунун окуу мүмкүнчүлүгүн берет."</string> diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml index 767defb..19f069f 100644 --- a/core/res/res/values-lo-rLA/strings.xml +++ b/core/res/res/values-lo-rLA/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ເຂົ້າຫາລາຍຊື່ຂອງທ່ານ"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ສະຖານທີ່"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ເຂົ້າເຖິງທີ່ຕັ້ງອຸປະກອນນີ້"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ຂໍ້ມູນສັງຄົມຂອງທ່ານ"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ເຂົ້າເຖິງຂໍ້ມູນກ່ຽວກັບລາຍຊື່ຜູ່ຕິດຕໍ່ ແລະການເຊື່ອມຕໍ່ທາງສັງຄົມຂອງທ່ານໂດຍກົງ."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ປະຕິທິນ"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ເຂົ້າຫາປະຕິທິນຂອງທ່ານ"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"ສົ່ງ ແລະເບິ່ງຂໍ້ຄວາມ SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"ເຂົ້າເຖິງຮູບຖ່າຍ, ສື່ ແລະໄຟລ໌ຢູ່ເທິງອຸປະກອນຂອງທ່ານ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ວັດຈະນານຸກົມຜູ່ໃຊ້"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ອ່ານ ຫຼືຂຽນຄຳສັບໃນວັດຈະນານຸກົມຜູ້ໃຊ້."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ບຸກມາກ ແລະປະຫວັດເວັບໄຊ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ເຂົ້ານຳໃຊ້ບຸກແລະປະຫວັດການທ່ອງເວັບໂດຍກົງ."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ໄມໂຄຣໂຟນ"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ບັນທຶກສຽງ"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ກ້ອງ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ອະນຸຍາດໃຫ້ແອັບຯແກ້ໄຂບັນທຶກການໂທຂອງແທັບເລັດ ຮວມທັງຂໍ້ມູນກ່ຽວກັບການໂທອອກ ແລະໂທເຂົ້ານຳ. ແອັບຯທີ່ເປັນອັນຕະລາຍອາດໃຊ້ຄຸນສົມບັດນີ້ເພື່ອລຶບ ຫຼືແກ້ໄຂບັນທຶກການໂທຂອງທ່ານໄດ້."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ອະນຸຍາດໃຫ້ແອັບແກ້ໄຂບັນທຶກການໂທຂອງໂທລະພາບຂອງທ່ານ ລວມທັງຂໍ້ມູນກ່ຽວກັບການໂທອອກ ແລະໂທເຂົ້ານຳ. ແອັບທີ່ເປັນອັນຕະລາຍອາດໃຊ້ຄຸນສົມບັດນີ້ເພື່ອລຶບ ຫຼືແກ້ໄຂບັນທຶກການໂທຂອງທ່ານໄດ້."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ອະນຸຍາດໃຫ້ແອັບຯ ແກ້ໄຂລາຍການການໂທໃນໂທລະສັບຂອງທ່ານ, ຮວມທັງຂໍ້ມູນກ່ຽວກັບສາຍໂທເຂົ້າ ແລະການໂທອອກ. ແອັບຯທີ່ເປັນອັນຕະລາຍ ອາດໃຊ້ຄວາມສາມາດນີ້ ເພື່ອລຶບ ຫຼືແກ້ໄຂລາຍການການໂທຂອງທ່ານໄດ້."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ອ່ານບັດລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານເອງ"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານຂໍ້ມູນໂປໄຟລ໌ສ່ວນໂຕໃນອຸປະກອນຂອງທ່ານເຊັ່ນ: ຊື່ຂອງທ່ານ ແລະຂໍ້ມູນການຕິດຕໍ່ຂອງທ່ານ. ນີ້ໝາຍຄວາມວ່າແອັບຯຈະສາມາດລະບຸໂຕຕົນຂອງທ່ານ ແລະສົ່ງຂໍ້ມູນໂປຣໄຟລ໌ຂອງທ່ານໃຫ້ຜູ່ອື່ນໄດ້."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ແກ້ໄຂບັດລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານເອງ"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ອະນຸຍາດໃຫ້ແອັບຯ ປ່ຽນແປງ ຫຼືເພີ່ມຂໍ້ມູນໃສ່ໂປຣໄຟລ໌ສ່ວນບຸກຄົນທີ່ເກັບໄວ້ໃນອຸປະກອນຂອງທ່ານ, ເຊັ່ນ: ຊື່ ແລະຂໍ້ມູນຕິດຕໍ່ທ່ານ. ນີ້ໝາຍຄວາມວ່າແອັບຯສາມາດບົ່ງບອກໂຕທ່ານ ແລະອາດສົ່ງຂໍ້ມູນໂປຣໄຟລ໌ຂອງທ່ານໃຫ້ຜູ່ອື່ນໄດ້."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ເຊັນເຊີຮ່າງກາຍ (ເຊັ່ນ: ຕິດຕາມອັດຕາການເຕັ້ນຂອງຫົວໃຈ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ອະນຸຍາດໃຫ້ແອັບຯເຂົ້າເຖິງຂໍ້ມູນຈາກເຊັນເຊີທີ່ຕິດຕາມສະພາບຮ່າງການຂອງທ່ານ, ເຊັ່ນ: ອັດຕາການເຕັ້ນຂອງຫົວໃຈຂອງທ່ານ."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ອ່ານການອັບເດດສັງຄົມອອນລາຍຂອງທ່ານ"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ອະນຸຍາດໃຫ້ແອັບຯ ເຂົ້າເຖິງ ແລະຊິ້ງຂໍ້ມູນຂ່າວສານສັງຄົມຈາກທ່ານ ແລະໝູ່ຂອງທ່ານ. ຄວນລະມັດລະວັງໃນເວລາທີ່ແລກປ່ຽນຂໍ້ມູນ -- ນີ້ຈະເປັນການອະນຸຍາດໃຫ້ແອັບຯ ອ່ານການສື່ສານລະຫວ່າງທ່ານ ກັບໝູ່ຂອງທ່ານເທິງເຄືອຂ່າຍສັງຄົມ ໂດຍບໍ່ຄຳນຶງເຖິງຄວາມລັບ. ໝາຍເຫດ: ການກຳນົດສິດນີ້ອາດບໍ່ໄດ້ບັງຄັບໃຊ້ໃນທຸກເຄືອຂ່າຍສັງຄົມ."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ຂຽນໃສ່ເຄືອຂ່າຍສັງຄົມຂອງທ່ານ"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ອະນຸຍາດໃຫ້ແອັບຯສະແດງການອັບເດດຈາກໝູ່ຂອງທ່ານ. ຄວນລະວັງໃນການແປ່ງປັນຂໍ້ມູນ. ມັນຈະໄປອະນຸຍາດໃຫ້ແອັບຯ ສ້າງຂໍ້ຄວາມທີ່ອ້າງວ່າມາຈາກໝູ່ຂອງທ່ານ. ໝາຍເຫດ: ການອະນຸຍາດອາດບໍ່ຖືກບັງຄັບ ໃນບໍລິການເຄືອຂ່າຍສັງຄອມອອນລາຍທຸກອັນ."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ອ່ານກຳນົດການໃນປະຕິທິນຮວມທັງຂໍ້ມູນຄວາມລັບ"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານການນັດໝາຍທັງໝົດທີ່ມີບັນທຶກໃນແທັບເລັດຂອງທ່ານ, ຮວມທັງຂອງໝູ່ ຫຼືໝູ່ທີ່ເຮັດວຽກນຳກັນໄດ້ ເຊິ່ງອາດເຮັດໃຫ້ແອັບຯສາມາດສົ່ງຕໍ່ ຫຼືບັນທຶກຂໍ້ມູນປະຕິທິນຂອງທ່ານ ບໍ່ວ່າຈະເປັນເລື່ອງຄວາມລັບ ຫຼືເລື່ອງລະອຽດອ່ອນແບບໃດກໍຕາມ."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ອະນຸຍາດໃຫ້ແອັບອ່ານທຸກເຫດການປະຕິທິນທີ່ເກັບໄວ້ຢູ່ໃນໂທລະພາບຂອງທ່ານ, ລວມທັງເຫດການຂອງໝູ່ ຫຼືເພື່ອນຮ່ວມງານ. ອັນນີ້ອາດຈະອະນຸຍາດໃຫ້ແອັບແຊຣ໌ ແລະບັນທຶກຂໍ້ມູນປະຕິທິນຂອງທ່ານ, ໂດຍບໍ່ຄຳນຶງເຖິງຄວາມລັບ ຫຼືຄວາມອ່ອນໄຫວ."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ອະນຸຍາດໃຫ້ແອັບຯແກ້ໄຂການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນສຳລັບບັນຊີ. ຍົກຕົວຢ່າງ: ມັນສາມາດໃຊ້ເພື່ອເປີດນຳໃຊ້ການຊິ້ງຂໍ້ມູນຂອງ People ແອັບຯກັບບັນຊີໃດນຶ່ງໄດ້."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ອ່ານສະຖິຕິການຊິ້ງຂໍ້ມູນ"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານສະຖິຕິການຊິ້ງຂໍ້ມູນຂອງບັນຊີໃດນຶ່ງ ຮວມທັງປະຫວັດການຊິ້ງຂໍ້ມູນ ແລະຈຳນວນຂໍ້ມູນທີ່ຖືກຊິ້ງ."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ອ່ານຄຳສັບທີ່ທ່ານເພີ່ມໃສ່ວັດຈະນານຸກົມ"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ອະນຸຍາດແອັບຯອ່ານຄຳສັບ, ຊື່ ແລະປະໂຫຍກທັງໝົດທີ່ຜູ່ໃຊ້ອາດບັນທຶກໄວ້ໃນວັດຈະນານຸກົມຜູ່ໃຊ້."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ເພີ່ມຄຳສັບໃສ່ວັດຈະນານຸກົມທີ່ຜູ່ໃຊ້ກຳນົດເອງ"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ອະນຸຍາດໃຫ້ແອັບຯຂຽນຄຳສັບໃໝ່ ໃສ່ວັດຈະນານຸກົມຜູ່ໃຊ້."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ອ່ານເນື້ອຫາຕ່າງໆໃນບ່ອນຈັດເກັບຂໍ້ມູນ USB ຂອງທ່ານ"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ອ່ານເນື້ອຫາຕ່າງໆໃນ SD Card ຂອງທ່ານ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ອະນຸຍາດໃຫ້ແອັບຯອ່ານເນື້ອຫາຕ່າງໆໃນບ່ອນຈັດເກັບຂໍ້ມູນ USB ຂອງທ່ານ."</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index bd59ebf..f81bf66 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"pasiekti kontaktus"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Vietovė"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"galimybė pasiekti įrenginio vietovės informaciją"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Socialinė informacija"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Tiesioginė prieiga prie kontaktų ir socialinių ryšių informacijos."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendorius"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"pasiekti kalendorių"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"siųsti ir peržiūrėti SMS pranešimus"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Saugykla"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"pasiekti nuotraukas, mediją ir failus įrenginyje"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Naudotojo žodynas"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Skaityti arba rašyti žodžius naudotojo žodyne."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Žymės ir istorija"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Tiesioginė prieiga prie žymių ir naršyklės istorijos."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonas"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"įrašyti garso įrašą"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparatas"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Programai leidžiama skaityti planšetinio kompiuterio skambučių žurnalą, įskaitant duomenis apie gaunamuosius ir siunčiamuosius skambučius. Kenkėjiškos programos tai gali naudoti, kad ištrintų ar keistų jūsų skambučių žurnalą."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Programai leidžiama keisti TV skambučių žurnalą, įskaitant duomenis apie gaunamus ir siunčiamus skambučius. Taip kenkėjiškos programos gali ištrinti arba pakeisti skambučių žurnalą."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Programai leidžiama skaityti telefono skambučių žurnalą, įskaitant duomenis apie gaunamuosius ir siunčiamuosius skambučius. Kenkėjiškos programos tai gali naudoti, kad ištrintų ar keistų jūsų skambučių žurnalą."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"skaityti jūsų kontakt. kortelę"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Programai leidžiama skaityti įrenginyje saugomą asmeninę profilio informaciją, pvz., vardą, pavardę ir kontaktinę informaciją. Tai reiškia, kad programa gali nustatyti tapatybę ir siųsti profilio informaciją kitiems."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"keisti jūsų kontaktinę kortelę"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Leidžiama programai keisti įrenginyje saugomą asmeninę profilio informaciją, pvz., vardą, pavardę ir kontaktinę informaciją, arba jos pridėti. Tai reiškia, kad programa gali nustatyti tapatybę ir siųsti profilio informaciją kitiems."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kūno jut. (pvz., pulso d. t.)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Programai leidžiama pasiekti duomenis, gautus iš jutiklių, stebinčių fizinę būseną, pvz., širdies ritmą."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"skaityti socialinį srautą"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Leidžiama programai pasiekti ir sinchronizuoti viešas naujienas iš jūsų ir jūsų draugų. Būkite atidūs bendrindami informaciją – programai leidžiama skaityti korespondenciją tarp jūsų ir draugų viešuosiuose tinkluose, neatsižvelgiant į konfidencialumą. Pastaba: šis leidimas negali būti taikomas visuose viešuosiuose tinkluose."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"rašyti į socialinį srautą"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Leidžiama programai rodyti viešas naujienas iš jūsų draugų. Būkite atidūs bendrindami informaciją – programai leidžiama kurti pranešimus, kurie atrodo lyg būtų siunčiami draugo. Pastaba: šis leidimas negali būti taikomas visuose viešuosiuose tinkluose."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"nuskaito kalendoriaus įvykius ir konfidencialią informaciją"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Leidžiama programai skaityti visus planšetiniame kompiuteryje išsaugotus kalendoriaus įvykius, įskaitant draugų ar bendradarbių įvykius. Dėl to programai gali būti leidžiama bendrinti ar saugoti kalendoriaus duomenis, neatsižvelgiant į konfidencialumą ar privatumą."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Programai leidžiama nuskaityti visus TV saugomus kalendoriaus įvykius, įskaitant draugų ir bendradarbių. Tai pasirinkus programai gali būti leidžiama bendrinti arba išsaugoti kalendoriaus duomenis, neatsižvelgiant į tai, kad informacija gali būti konfidenciali arba neskelbtina."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Leidžiama programai keisti sinchronizuotus paskyros nustatymus. Pvz., tai gali būti naudojama norint įgalinti Žmonių programos sinchronizavimą su paskyra."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"skaityti sinchronizavimo statistiką"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Leidžiama programai skaityti sinchronizuotą paskyros statistiką, įskaitant sinchronizuotų įvykių istoriją ir informaciją, kiek duomenų sinchronizuota."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"skaityti terminus, kuriuos pridėjote į žodyną"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Leidžiama programai skaityti visus žodžius, vardus ir frazes, kuriuos naudotojas išsaugojo naudotojo žodyne."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"pridėti žodžių prie naudotojo apibrėžto žodyno"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Leidžiama programai rašyti naujus žodžius į naudotojo žodyną."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"skaityti USB atminties turinį"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"skaityti SD kortelės turinį"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Leidžiama skait. USB atmintį."</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index fe6d530..1ca1a36 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -231,18 +231,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"piekļūt jūsu kontaktpersonu datiem"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Atrašanās vieta"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"piekļūt ierīces atrašanās vietas informācijai"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Jūsu sociālo tīklu informācija"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Tieša piekļuve informācijai par jūsu kontaktpersonām un sociālajiem savienojumiem."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendārs"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"piekļūt jūsu kalendāram"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Īsziņas"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"sūtīt un skatīt īsziņas"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Krātuve"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"piekļūt fotoattēliem, multividei un failiem jūsu ierīcē"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Lietotāja vārdnīca"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lasīt vai rakstīt vārdus lietotāja vārdnīcā."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Grāmatzīmes un vēsture"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Tieša piekļuve grāmatzīmēm un pārlūkprogrammas vēsturei."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofons"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ierakstīt audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -333,16 +327,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ļauj lietotnei pārveidot planšetdatora zvanu žurnālu, tostarp ienākošo un izejošo zvanu datus. Ļaunprātīgas lietotnes var to izmantot, lai dzēstu vai pārveidotu savu zvanu žurnālu."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Ļauj lietotnei pārveidot televizora zvanu žurnālu, tostarp ienākošo un izejošo zvanu datus. Ļaunprātīgas lietotnes var to izmantot, lai dzēstu vai pārveidotu zvanu žurnālu."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ļauj lietotnei pārveidot tālruņa zvanu žurnālu, tostarp ienākošo un izejošo zvanu datus. Ļaunprātīgas lietotnes var to izmantot, lai dzēstu vai pārveidotu savu zvanu žurnālu."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lasīt manu vizītkarti"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Ļauj lietotnei lasīt ierīcē saglabāto personīgā profila informāciju, piemēram, jūsu vārdu un kontaktinformāciju. Tas nozīmē, ka lietotne var jūs identificēt un var nosūtīt jūsu profila informāciju citām personām."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"mainīt manu vizītkarti"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Ļauj lietotnei mainīt ierīcē saglabāto personīgā profila informāciju, piemēram, jūsu vārdu un kontaktinformāciju, vai pievienot tai citu informāciju. Tas nozīmē, ka lietotne var jūs identificēt un var nosūtīt jūsu profila informāciju citām personām."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ķermeņa sensori (piemēram, sirdsdarbības monitori)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Ļauj lietotnei piekļūt to sensoru datiem, kuri pārrauga jūsu fizisko stāvokli (piemēram, sirdsdarbības ātrumu)."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lasīt jūsu soc. tīklu straumi"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Ļauj lietotnei piekļūt sociālajiem atjauninājumiem no jums un jūsu draugiem un sinhronizēt tos. Esiet piesardzīgs, kad kopīgojat informāciju, — šādi lietotne var lasīt sociālajos tīklos ar draugiem veikto saziņu, neraugoties uz konfidencialitāti. Piezīme: šo atļauju nedrīkst piemērot visiem sociālajiem tīkliem."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"rakstīt sociālo tīklu straumē"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Ļauj lietotnei parādīt jūsu draugu atjauninājumus sociālajos tīklos. Esiet piesardzīgs, kad kopīgojat informāciju, — šādi lietotne var veidot ziņojumus, kas šķietami saņemti no drauga. Piezīme: šo atļauju nevar piemērot visiem sociālajiem tīkliem."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lasīt kalendāra pasākumus un konfidenciālu informāciju"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Ļauj lietotnei lasīt visus planšetdatorā saglabātos kalendāra notikumus, tostarp draugu vai kolēģu notikumus. Tas var ļaut lietotnei kopīgot vai saglabāt jūsu kalendāra datus, neraugoties uz to konfidencialitāti vai sensitivitāti."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Ļauj lietotnei nolasīt visus kalendāra pasākumus, kas saglabāti televizorā, tostarp jūsu draugu un kolēģu pasākumus. Tādējādi lietotne var kopīgot vai saglabāt jūsu kalendāru datus, neņemot vērā konfidencialitāti vai sensitivitāti."</string> @@ -455,10 +441,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ļauj lietotnei pārveidot konta sinhronizācijas iestatījumus. Piemēram, to var izmantot, lai iespējotu lietotnes Personas sinhronizēšanu ar kontu."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lasīt sinhronizācijas statistiku"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ļauj lietotnei lasīt konta sinhronizācijas statistiku, tostarp sinhronizācijas notikumu vēsturi un sinhronizēto datu apjomu."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lasīt vārdnīcai pievienotos vārdus"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Ļauj lietotnei lasīt visus vārdus, nosaukumus un frāzes, ko lietotājs ir saglabājis lietotāja vārdnīcā."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"vārdu pievienošana lietotāja noteiktai vārdnīcai"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ļauj lietotnei rakstīt jaunus vārdus lietotāja vārdnīcā."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lasīt USB atmiņas saturu"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lasīt SD kartes saturu"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Ļauj liet. lasīt USB atm. sat."</string> diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml index e7f2970..c7b8704 100644 --- a/core/res/res/values-mk-rMK/strings.xml +++ b/core/res/res/values-mk-rMK/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"пристапи до контактите"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Локација"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"да пристапува до локацијата на овој уред"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Тво социјални информации"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Директен пристап до информации за вашите контакти и социјални врски."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"пристапи до календарот"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"СМС"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"испраќа и прикажува СМС-пораки"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Меморија"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"пристапува до фотографии, медиуми и датотеки на уредот"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Кориснички речник"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Читајте или пишувајте зборови во корисничкиот речник."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Обележувачи и историја"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Директен пристап до обележувачи и историја на прелистувач."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"снимај аудио"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Фотоапарат"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Овозможува апликацијата да го менува дневникот на повици на вашиот таблет, вклучувајќи податоци за дојдовни и појдовни повици. Злонамерните апликации може да го искористат ова да го избришат или да го менуваат вашиот дневник на повици."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Дозволува апликацијата да го менува дневникот на повици на вашиот телевизор, вклучувајќи и податоци за дојдовните или појдовните повици. Злонамерните апликации може да го искористат ова за да го избришат или да го менуваат вашиот дневник на повици."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Овозможува апликацијата да го менува дневникот на повици на вашиот телефон, вклучувајќи податоци за дојдовни и појдовни повици. Злонамерните апликации може да го искористат ова да го избришат или да го менуваат вашиот дневник на повици."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"прочитај ја својата картичка за контакт"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Овозможува апликацијата да чита лични податоци од профил што се зачувани на вашиот уред, како што се вашето име и информации за контакт. Ова значи дека апликацијата може да идентификува и да ги испрати информациите од вашиот профил на други."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"измени ја сопствената картичка за контакт"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Овозможува апликацијата да менува или да додава информации од личниот профил што се зачувани на вашиот уред, како што се вашето име и информации за контакт. Ова значи дека апликацијата може да ве идентификува и да ги испрати информациите од вашиот профил на други."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"телесни сензори (како монитори за срцев пулс)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Дозволува апликацијата да пристапува до податоци од сензори кои ја следат вашата физичка состојба, како на пр. отчукувањата на срцето."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"читај социјални текови"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Овозможува апликацијата да пристапува и да синхронизира социјални ажурирања од вас и вашите пријатели. Бидете внимателни кога споделувате информации - ова овозможува апликацијата да ја чита комуникацијата меѓу вас и вашите пријатели на социјалните мрежи, без оглед на нејзината доверливост. Напомена: оваа дозвола не може да се наметне на сите социјални мрежи."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"пишувај на социјалните текови"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Овозможува апликацијата да прикажува социјални ажурирања од вашите пријатели. Бидете внимателни кога споделувате информации - ова овозможува апликацијата да создава пораки кои се чини дека ги испратил пријател. Напомена: оваа дозвола не може да се наметне на сите социјални мрежи."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"прочитај настани во календар и доверливи информации"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Овозможува апликацијата да ги чита сите календарски настани што се зачувани на вашиот таблет, вклучувајќи ги и оние на пријатели или соработници. Ова може да овозможи апликацијата да ги споделува или да го зачува вашите податоци од календарот, без оглед на нивната доверливост или чувствителност."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Дозволува апликацијата да ги чита сите настани во календарот складирани во вашиот телевизор, вклучувајќи ги и оние на пријателите и соработниците. Ова може да ѝ овозможи на апликацијата да ги споделува или зачувува вашите податоци од календарот, без оглед на доверливоста или чувствителноста."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Овозможува апликацијата да ги менува подесувањата за синхронизирање на сметка. На пример, ова може да се употреби да овозможи синхронизација на апликацијата „Луѓе“ со сметка."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"читај статистика за синхронизација"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Овозможува апликацијата да ја чита статистиката за синхронизација на сметка, вклучувајќи ја и историјата на синхронизирани настани и колку податоци се синхронизирани."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"прочитај ги термините кои ги додаде во речникот"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Овозможува апликацијата да ги чита сите зборови, имиња и фрази кои корисникот можеби ги зачувал во речникот на корисникот."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"додај зборови во речник дефиниран од корисникот"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Дозволува апликацијата да напише нови зборови во корисничкиот речник."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"прочитај ги содржините на твојата УСБ меморија"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"прочитај ги содржините на твојата СД картичка"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Овозможува апликацијата да ги чита содржините од вашето УСБ."</string> diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml index 1372ea6..6bf5f9dc 100644 --- a/core/res/res/values-ml-rIN/strings.xml +++ b/core/res/res/values-ml-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ ആക്സസ്സ് ചെയ്യുക"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ലൊക്കേഷൻ"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ഈ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ആക്സസ് ചെയ്യുക"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"നിങ്ങളുടെ സോഷ്യൽ വിവരം"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"നിങ്ങളുടെ കോൺടാക്റ്റുകളേയും സോഷ്യൽ കണക്ഷനുകളേയും സംബന്ധിച്ച വിവരങ്ങളിലേക്കുള്ള നേരിട്ടുള്ള ആക്സസ്സ്."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"കലണ്ടർ"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"നിങ്ങളുടെ കലണ്ടർ ആക്സസ്സ് ചെയ്യുക"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS സന്ദേശങ്ങൾ അയയ്ക്കുകയും കാണുകയും ചെയ്യുക"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"സംഭരണം"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"നിങ്ങളുടെ ഉപകരണത്തിലെ ഫോട്ടോകളും മീഡിയയും ഫയലുകളും ആക്സസ് ചെയ്യുക"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ഉപയോക്തൃ നിഘണ്ടു"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ഉപയോക്തൃ നിഘണ്ടുവിലെ പദങ്ങൾ വായിക്കുകയോ എഴുതുകയോ ചെയ്യുക."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ബുക്ക്മാർക്കുകളും ചരിത്രവും"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ബുക്ക്മാർക്കുകളിലേക്കും ബ്രൗസർ ചരിത്രത്തിലേക്കുമുള്ള നേരിട്ടുള്ള ആക്സസ്സ്."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"മൈക്രോഫോണ്"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ഓഡിയോ റെക്കോർഡ് ചെയ്യുക"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ക്യാമറ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ഇൻകമിംഗ്, ഔട്ട്ഗോയിംഗ് കോളുകളെക്കുറിച്ചുള്ള ഡാറ്റയുൾപ്പെടുന്ന, നിങ്ങളുടെ ടാബ്ലെറ്റിന്റെ കോൾ ലോഗ് പരിഷ്ക്കരിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ക്ഷുദ്രകരമായ അപ്ലിക്കേഷനുകൾ നിങ്ങളുടെ കോൾ ലോഗ് മായ്ക്കാനോ പരിഷ്ക്കരിക്കാനോ ഇത് ഉപയോഗിച്ചേക്കാം."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ഇൻകമിംഗ്, ഔട്ട്ഗോയിംഗ് കോളുകളെക്കുറിച്ചുള്ള വിവരമുൾപ്പെടുന്ന, നിങ്ങളുടെ ടിവിയുടെ കോൾ ലോഗ് പരിഷ്ക്കരിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ദോഷകരമായ അപ്ലിക്കേഷനുകൾ നിങ്ങളുടെ കോൾ ലോഗ് മായ്ക്കാനോ പരിഷ്ക്കരിക്കാനോ ഇത് ഉപയോഗിച്ചേക്കാം."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ഇൻകമിംഗ്, ഔട്ട്ഗോയിംഗ് കോളുകളെക്കുറിച്ചുള്ള ഡാറ്റയുൾപ്പെടുന്ന, നിങ്ങളുടെ ഫോണിന്റെ കോൾ ലോഗ് പരിഷ്ക്കരിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ക്ഷുദ്രകരമായ അപ്ലിക്കേഷനുകൾ നിങ്ങളുടെ കോൾ ലോഗ് മായ്ക്കാനോ പരിഷ്ക്കരിക്കാനോ ഇത് ഉപയോഗിച്ചേക്കാം."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"നിങ്ങളുടെ സ്വന്തം കോൺടാക്റ്റ് കാർഡ് റീഡുചെയ്യുക"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"നിങ്ങളുടെ പേരും ബന്ധപ്പെടാനുള്ള വിവരവും പോലുള്ള, നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന വ്യക്തിഗത പ്രൊഫൈൽ വിവരം റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. നിങ്ങളെ തിരിച്ചറിയാനും നിങ്ങളുടെ പ്രൊഫൈൽ വിവരം മറ്റുള്ളവർക്ക് അയയ്ക്കാനും അപ്ലിക്കേഷന് കഴിഞ്ഞേക്കാമെന്നാണ് ഇതിനർത്ഥം."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"നിങ്ങളുടെ സ്വന്തം കോൺടാക്റ്റ് കാർഡ് പരിഷ്ക്കരിക്കുക"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന നിങ്ങളുടെ പേരും ബന്ധപ്പെടാനുള്ള വിവരങ്ങളും പോലുള്ള വ്യക്തിഗത പ്രൊഫൈൽ വിവരം മാറ്റാനോ ചേർക്കാനോ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. നിങ്ങളെ തിരിച്ചറിയാനും നിങ്ങളുടെ പ്രൊഫൈൽ വിവരം മറ്റുള്ളവർക്ക് അയയ്ക്കാനും അപ്ലിക്കേഷന് കഴിഞ്ഞേക്കാമെന്നാണ് ഇതിനർത്ഥം."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ശാരീര സെൻസറുകൾ (ഹൃദയമിടിപ്പ് നിരക്ക് മോണിറ്ററുകൾ പോലെ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"നിങ്ങളുടെ ഹൃദയമിടിപ്പ് പോലുള്ള ശാരീരികാവസ്ഥ നിരീക്ഷിക്കാൻ സെൻസറുകളിൽ നിന്ന് വിവരം ആക്സസ്സുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"നിങ്ങളുടെ സോഷ്യൽ സ്ട്രീം വായിക്കുക"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"നിങ്ങളിൽ നിന്നും സുഹൃത്തുക്കളിൽ നിന്നും സോഷ്യൽ അപ്ഡേറ്റുകൾ ആക്സസ്സുചെയ്യാനും സമന്വയിപ്പിക്കാനും അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. വിവരം പങ്കിടുമ്പോൾ ജാഗ്രത പാലിക്കുക -- ഇത് സോഷ്യൽ നെറ്റ്വർക്കുകളിൽ നിങ്ങൾക്കും സുഹൃത്തുക്കൾക്കും ഇടയിലുള്ള ആശയവിനിമയങ്ങൾ രഹസ്യാത്മകത പരിഗണിക്കാതെ റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ശ്രദ്ധിക്കുക: ഈ അനുമതി എല്ലാ സോഷ്യൽ നെറ്റ്വർക്കുകളിലും നടപ്പിലാക്കാനിടയില്ല."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"നിങ്ങളുടെ സോഷ്യൽ സ്ട്രീമിലേക്ക് എഴുതുക"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"നിങ്ങളുടെ സുഹൃത്തുക്കളിൽ നിന്നുള്ള സോഷ്യൽ അപ്ഡേറ്റുകൾ പ്രദർശിപ്പിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. വിവരം പങ്കിടുമ്പോൾ ജാഗ്രത പാലിക്കുക -- ഒരു സുഹൃത്ത് അയച്ചതായി തോന്നുന്ന സന്ദേശങ്ങൾ നിർമ്മിക്കാൻ അപ്ലിക്കേഷനുകളെ ഇത് അനുവദിക്കുന്നു. ശ്രദ്ധിക്കുക: എല്ലാ സോഷ്യൽ നെറ്റ്വർക്കുകളിലും ഈ അനുമതി നടപ്പിലാക്കണമെന്നില്ല."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"കലണ്ടർ ഇവന്റുകളും രഹസ്യാത്മക വിവരവും വായിക്കുക"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"നിങ്ങളുടെ ടാബ്ലെറ്റിൽ സംഭരിച്ചിരിക്കുന്ന സുഹൃത്തുക്കളുടെയോ സഹപ്രവർത്തകരുടെയോ ഉൾപ്പെടെ, എല്ലാ കലണ്ടർ ഇവന്റുകളും റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഇത് രഹസ്യാത്മകമാണെന്നോ തന്ത്രപ്രധാനമാണെന്നോ പരിഗണിക്കാതെ നിങ്ങളുടെ കലണ്ടർ ഡാറ്റ പങ്കിടാനോ സംരക്ഷിക്കാനോ അപ്ലിക്കേഷനെ അനുവദിക്കാനിടയുണ്ട്."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"സുഹൃത്തുക്കളുടെതോ സഹപ്രവർത്തകരുടെതോ ഉൾപ്പെടെ നിങ്ങളുടെ ടിവിയിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ കലണ്ടർ ഇവന്റുകളും റീഡുചെയ്യുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഇത് രഹസ്യാത്മകമോ സെൻസിറ്റിവിറ്റിയല്ലാത്തതോ ആയ കലണ്ടർ വിവരം പങ്കിടുന്നതിനോ സംരക്ഷിക്കുന്നതിനോ അപ്ലിക്കേഷനെ അനുവദിച്ചേക്കാം."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ഒരു അക്കൗണ്ടിനായി സമന്വയ ക്രമീകരണങ്ങൾ പരിഷ്ക്കരിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ആളുകൾ അപ്ലിക്കേഷൻ ഒരു അക്കൗണ്ടിൽ സമന്വയിപ്പിക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കാൻ ഇത് ഉപയോഗിക്കാം."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"സമന്വയ സ്ഥിതിവിവരണക്കണക്കുകൾ വായിക്കുക"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"സമന്വയ ഇവന്റുകളുടെ ചരിത്രവും ഡാറ്റ എത്രത്തോളം സമന്വയിപ്പിച്ചുവെന്നതും ഉൾപ്പെടെ, ഒരു അക്കൗണ്ടിനായി സമന്വയ സ്ഥിതിവിവരക്കണക്കുകൾ റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"നിഘണ്ടുവിൽ നിങ്ങൾ ചേർത്ത പദങ്ങൾ വായിക്കുക"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ഉപയോക്തൃ നിഘണ്ടുവിൽ ഉപയോക്താവ് സംഭരിച്ചിരിക്കാനിടയുള്ള എല്ലാ പദങ്ങളും പേരുകളും വാക്യങ്ങളും വായിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ഉപയോക്തൃ നിർവചിത നിഘണ്ടുവിൽ പദങ്ങൾ ചേർക്കുക"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ഉപയോക്തൃ നിഘണ്ടുവിൽ പുതിയ പദങ്ങൾ എഴുതുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"നിങ്ങളുടെ USB കാർഡ് ഉള്ളടക്കം റീഡുചെയ്യുക"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"നിങ്ങളുടെ SD കാർഡ് ഉള്ളടക്കം റീഡുചെയ്യുക"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"നിങ്ങളുടെ USB സംഭരണത്തിലെ ഉള്ളടക്കങ്ങൾ റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> @@ -1066,7 +1048,7 @@ <string name="extmedia_format_message" product="default" msgid="14131895027543830">"നിങ്ങളുടെ കാർഡിലുള്ള എല്ലാ ഡാറ്റയും നഷ്ടമാവും."</string> <string name="extmedia_format_button_format" msgid="4131064560127478695">"ഫോർമാറ്റുചെയ്യുക"</string> <string name="adb_active_notification_title" msgid="6729044778949189918">"USB ഡീബഗ്ഗിംഗ് കണക്റ്റുചെയ്തു"</string> - <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ഡീബഗ്ഗിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ സ്പർശിക്കുക."</string> + <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ഡീബഗ്ഗിംഗ് ഓഫാക്കാൻ സ്പർശിക്കൂ."</string> <string name="select_input_method" msgid="8547250819326693584">"കീബോർട്ട് മാറ്റുക"</string> <string name="configure_input_methods" msgid="4769971288371946846">"കീബോർഡുകൾ തിരഞ്ഞെടുക്കുക"</string> <string name="show_ime" msgid="9157568568695230830">"ടൈപ്പുചെയ്യൽ രീതി കാണിക്കുക"</string> diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml index a287a46..a36340e 100644 --- a/core/res/res/values-mn-rMN/strings.xml +++ b/core/res/res/values-mn-rMN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"харилцагч руугаа хандах"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Байршил"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"энэ төхөөрөмжийн байршилд хандалт хийх"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Таны нийтийн мэдээлэл"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Таны харилцагчид болон нийтийн холбооны тухай мэдээлэлд шууд хандах."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"Хуанли руу хандах"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Мессеж"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS мессежийг илгээх, харах"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Сан"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"Tөхөөрөмж дээрх зураг, медиа болон файлд хандалт хийх"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Хэрэглэгчийн толь бичиг"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Хэрэглэгчийн толь бичигт үг унших,бичих"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Хавчуурга болон түүх"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Хавчуурга болон хөтчийн түүхрүү шууд хандах."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"дуу хураах"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камер"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Апп нь таны таблетын ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг унших боломжтой. Хортой апп нь энийг ашиглан таны дуудлагын логыг өөрчлөх болон арилгах боломжтой."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Апп-д орж ирсэн болон гадагш хийсэн телевизийн дуудлагын бүртгэлийг өөрчлөхийг зөвшөөрдөг. Хорлонтой апликейшнүүд үүнийг ашиглан таны дуудлагын бүртгэлийг устгах эсвэл өөрчилж болох юм."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Апп нь таны утасны ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг өөрчлөх боломжтой. Хортой апп нь энийг ашиглан таны дуудлагын логыг өөрчлөх болон арилгах боломжтой."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"та өөрийн харилцагчийн картыг унших"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Апп нь таны нэр болон холбоо барих мэдээлэл зэрэг таны утсан дээр хадгалагдсан хувийн профайл мэдээллийг унших боломжтой. Ингэснээр апп нь танийг таньж чадах ба таны профайл мэдээллийг бусдад илгээх боломжтой."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"та өөрийн харилцагчийн картыг өөрчлөх"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Апп нь таны нэр болон холбоо барих мэдээлэл зэрэг таны төхөөрөмж дээр хадгалагдсан хувийн профайл мэдээллийг солих эсвэл нэмэх боломжтой. Ингэснээр апп нь танийг таньж чадах ба таны профайл мэдээллийг бусдад илгээх боломжтой."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"биеийн сенсор (зүрхний цохилт хянагч гэх мэт)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Апп-т таны зүрхний цохилт гэх мэт биеийн байдлыг хянадаг мэдрэгчдийн датанд хандалт хийх боломж олгоно."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"таны нийтийн урсгалаас унших"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Апп нь та болон таны найзуудын нийтийн шинэчлэлтэд хандах болон синк хийх боломжтой. Мэдээлэл хуваалцахдаа болгоомжтой байна уу - энэ нь апп-д нийтийн сүлжээндэх та болон таны найзууд хоорондын холбоог нууц эсэхээс үл хамааран унших боломжтой. Анхаар: энэ зөвшөөрөл нь бүх нийтийн сүлжээнд ашиглаж боломжгүй."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"Таны нийтийн урсгалруу бичих"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Апп нь таны найзуудын нийтийн шинэчлэлтийг дүрслэх боломжтой.Мэдээлэл хуваалцахдаа болгоомжтой байна уу - энэ нь апп-д таны найзаас ирсэн мэт харагдах мессеж хийх боломжийг олгоно. Анхаар: энэ зөвшөөрөл нь бүх нийтийн сүлжээнд ашиглаж боломжгүй."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"календарийн хуваарийн нууц мэдээллийг унших"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Апп нь таны таблет дээр хадгалагдсан найзууд болон хамтран ажиллагсдын календарийн бүх хуваарийг унших боломжтой. Энэ нь апп-д таны календарийн датаг нууц эсвэл эмзэг эсэхээс нь үл хамааран хуваалцах эсвэл хадгалах боломжийг олгоно."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Апп-д таны найз, эсвэл хамтран ажиллагсдын гэх мэт таны телевиз дээр хадгалагдсан бүх хуанлийн үйл ажиллагааг уншихыг зөвшөөрдөг. Энэ нь апп-д таны хуанлийн өгөгдлийг нууцлалтай эсэхээс үл хамааран хадгалахыг зөвшөөрч болох юм."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Апп нь акаунтын синк тохиргоог өөрчлөх боломжтой. Жишээ нь энэ нь Хүмүүс апп акаунттай синк хийхийг идэвхжүүлэх боломжтой."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"синк статистикийг унших"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Апп нь синк үйлдэлийн түүх болон хэр их дата синк хийгдсэн зэрэг акаунтын синк статусыг унших боломжтой."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"таны толь бичигт нэмсэн нөхцөлийг унших"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Апп нь хэрэглэгч хэрэглэгчийн толь бичигт хадгалсан бүх үгс, нэрс болон хэлцийг унших боломжтой."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"хэрэглэгчийн толь бичигт үгс нэмэх"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Апп нь хэрэглэгчийн толь бичигт шинэ үг бичих боломжтой."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"таны USB сангийн контентыг унших боломжтой"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"таны SD картны контентыг унших боломжтой"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Апп нь таны USB сангийн контентыг унших боломжтой."</string> diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml index 64db2be..97a7d37 100644 --- a/core/res/res/values-mr-rIN/strings.xml +++ b/core/res/res/values-mr-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"आपल्या संपर्कांवर प्रवेश करा"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"या डिव्हाइसच्या स्थानावर प्रवेश करा"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"आपली सामाजिक माहिती"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"आपले संपर्क आणि सामाजिक कनेक्शनविषयीच्या माहितीवर प्रत्यक्ष प्रवेश करेल."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"कॅलेंडर"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"आपल्या कॅलेंडरवर प्रवेश करा"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS संदेश पाठवा आणि पहा"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"संचयन"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"आपल्या डिव्हाइस वरील फोटो, मीडिया आणि फायलींमध्ये प्रवेश करा"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"वापरकर्ता शब्दकोश"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"वापरकर्ता शब्दकोशामध्ये शब्द वाचा किंवा लिहा."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्क आणि इतिहास"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्कवर आणि ब्राउझर इतिहासावर प्रत्यक्ष प्रवेश करेल."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"मायक्रोफोन"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ऑडिओ रेकॉर्ड करा"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"कॅमेरा"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"येणार्या आणि केल्या जाणार्या कॉलविषयीच्या डेटासह, आपल्या टॅब्लेटचा कॉल लॉग सुधारित करण्यासाठी अॅप ला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपला कॉल लॉग मिटवण्यासाठी किंवा सुधारित करण्यासाठी याचा वापर करू शकतात."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"येणार्या आणि केल्या जाणार्या कॉलविषयीच्या डेटासह, आपल्या टीव्हीचा कॉल लॉग सुधारित करण्यासाठी अॅपला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपला कॉल लॉग मिटवण्यासाठी किंवा सुधारित करण्यासाठी याचा वापर करू शकतात."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"येणार्या आणि केल्या जाणार्या कॉलविषयीच्या डेटासह, आपल्या फोनचा कॉल लॉग सुधारित करण्यासाठी अॅप ला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपला कॉल लॉग मिटवण्यासाठी किंवा सुधारित करण्यासाठी याचा वापर करू शकतात."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"आपले स्वतःचे संपर्क कार्ड वाचा"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"आपले नाव आणि संपर्क माहिती यासारखी, आपल्या डिव्हाइसवर संचयित केलेली वैयक्तिक प्रोफाईल माहिती वाचण्यासाठी अॅप ला अनुमती देते. म्हणजेच आपल्याला अॅप ओळखू शकतो आणि इतरांना आपली प्रोफाईल माहिती पाठवू शकतो."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"आपल्या स्वतःचे संपर्क कार्ड सुधारित करा"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"आपल्या डिव्हाइसवर संचयित केलेली वैयक्तिक माहिती बदलण्यासाठी किंवा जोडण्यासाठी अॅप ला अनुमती देते. म्हणजेच अॅप आपल्याला ओळखू शकतो आणि इतरांना आपली प्रोफाईल माहिती पाठवू शकतो."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"(हृदय गती मॉनिटरसारखे) शरीर सेन्सर"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"हृदय गती सारख्या, आपल्या शारीरिक स्थितीचे नियंत्रण करणार्या सेन्सरवरून डेटामध्ये प्रवेश करण्यासाठी अॅपला अनुमती देते."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"आपला सामाजिक प्रवाह वाचा"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"आपल्याकडील आणि आपल्या मित्रांकडील सामाजिक अद्यतनांवर प्रवेश करण्यास आणि त्यांचे संकालन करण्यास अॅप ला अनुमती देते. माहिती सामायिक करताना सावधगिरी बाळगा -- हे गोपनीयतेकडे दुर्लक्ष करून, आपण आणि सामाजिक नेटवर्कवरील आपल्या मित्रांमधील संप्रेषणे वाचण्यास अॅप ला अनुमती देते. टीप: या परवानगीची अंमलबजावणी सर्व सामाजिक नेटवर्कवर होऊ शकत नाही."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"आपल्या सामाजिक प्रवाहावर लिहा"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"आपल्या मित्रांकडील सामाजिक अद्यतने प्रदर्शित करण्यासाठी अॅप ला अनुमती देते. माहिती सामायिक करताना सावधगिरी बाळगा -- हे मित्राकडून येत असल्याचे दिसू शकणारे संदेश उत्पन्न करण्यासाठी अॅप ला अनुमती देते. टीप: या परवानगीची अंमलबजावणी सर्व सामाजिक नेटवर्कवर केली जाऊ शकत नाही."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"कॅलेंडर इव्हेंट तसेच गोपनीय माहिती वाचा"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"मित्र किंवा सहकर्मींसह, आपल्या टॅब्लेटवर संचयित केलेले सर्व कॅलेंडर इव्हेंट वाचण्यासाठी अॅप ला अनुमती देते. यामुळे गोपनीयता किंवा संवेदनशीलता याकडे दुर्लक्ष करून, आपला कॅलेंडर डेटा सामायिक किंवा जतन करण्यासाठी अॅप ला अनुमती देऊ शकते."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"आपल्या टीव्हीवर संचयित केलेले सर्व कॅलेंडर इव्हेंट, या मित्रांसह किंवा सह-कर्मींसह, वाचण्याची अॅपला अनुमती देते. हे गोपनीयतेकडे किंवा संवेदनशीलतेकडे दुर्लक्ष करून, आपला कॅलेंडर डेटा सामायिक करण्यासाठी किंवा जतन करण्यासाठी अॅपला अनुमती देऊ शकते."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"खात्यासाठी संकालन सेटिंग्ज सुधारित करण्यासाठी अॅप ला अनुमती देते. उदाहरणार्थ, हे खात्यासह लोकांच्या अॅप चे संकालन सक्षम करण्यासाठी वापरले जाऊ शकते."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"संकालन आकडेवारी वाचा"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"संकालन इव्हेंटचा इतिहास आणि किती डेटाचे संकालन केले आहे यासह, खात्याची संकालन स्थिती वाचण्यासाठी अॅप ला अनुमती देते."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"आपण शब्दकोशात जोडलेल्या अटी वाचा"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"वापरकर्ता शब्दकोशात वापरकर्ता संचयित करू शकतो असे सर्व शब्द, नावे आणि वाक्यांश वाचण्यासाठी अॅप ला अनुमती देते."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"वापरकर्ता-परिभाषित शब्दकोशामध्ये शब्द जोडा"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"वापरकर्ता शब्दकोशात नवीन शब्द लिहिण्यासाठी अॅप ला अनुमती देते."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"आपल्या USB संचयनाची सामग्री वाचा"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"आपल्या SD कार्डची सामग्री वाचा"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"अॅपला आपल्या USB संचयनाची सामग्री वाचण्याची अनुमती देते."</string> diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml index 9a576e1..ef51f45 100644 --- a/core/res/res/values-ms-rMY/strings.xml +++ b/core/res/res/values-ms-rMY/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"akses kenalan anda"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasi"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"akses lokasi peranti ini"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Maklumat sosial anda"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Akses langsung ke maklumat tentang kenalan anda dan sambungan sosial."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"akses kalendar anda"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"hantar dan lihat mesej SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Storan"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"akses foto, media dan fail pada peranti anda"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamus Pengguna"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Baca atau tulis perkataan dalam kamus pengguna."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Penanda halaman dan Sejarah"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Akses langsung ke penanda halaman dan sejarah penyemak imbas."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"rakam audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Membenarkan apl untuk mengubah suai panggilan tablet anda, termasuk data tentang panggilan masuk dan keluar. Apl hasad boleh menggunakannya untuk memadam atau mengubah suai log panggilan anda."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Membenarkan apl untuk mengubah suai log panggilan TV anda, termasuk data mengenai panggilan masuk atau keluar. Apl hasad mungkin menggunakan ini untuk memadam atau mengubah suai log panggilan anda."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Membenarkan apl untuk mengubah suai panggilan telefon anda, termasuk data tentang panggilan masuk dan keluar. Apl hasad boleh menggunakannya untuk memadam atau mengubah suai log panggilan anda."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"baca kad kenalan anda sendiri"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Membenarkan apl membaca maklumat profil peribadi yang disimpan dalam peranti anda, seperti nama dan maklumat kenalan anda. Ini bermakna apl lain boleh mengenal pasti anda dan menghantar maklumat profil anda kepada orang lain."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ubah suai kad kenalan sendiri"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Membenarkan apl menukar atau menambah maklumat profil peribadi yang disimpan pada peranti anda, seperti nama dan maklumat kenalan anda. Ini bermakna apl boleh mengenal pasti anda dan menghantar maklumat profil anda kepada orang lain."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"penderia (spt. denyut jantung)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Membenarkan apl mengakses data dari penderia yang memantau keadaan fizikal anda, seperti kadar denyutan jantung anda."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"baca aliran sosial anda"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Membenarkan apl mengakses dan menyegerakkan kemas kini sosial daripada anda dan rakan anda. Berhati-hati semasa berkongsi maklumat - ini membenarkan apl untuk membaca komunikasi di antara anda dan rakan anda pada rangkaian sosial tanpa mengira kerahsiaan. Nota: kebenaran ini tidak boleh dikuatkuasakan pada semua rangkaian sosial."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"tulis ke aliran sosial anda"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Membenarkan apl memaparkan kemas kini sosial dari rakan anda. Berhati-hati semasa berkongsi maklumat - ini membenarkan apl untuk menghasilkan mesej yang kelihatan seperti datang dari seorang rakan. Nota: kebenaran ini tidak boleh dikuatkuasakan pada semua rangkaian sosial."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"baca acara kalendar serta maklumat sulit"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Membenarkan apl membaca semua acara kalendar yang tersimpan pada tablet anda, termasuk milik rakan atau rakan sekerja. Ini boleh membenarkan apl untuk berkongsi atau menyimpan data kalendar anda, tanpa mengira kerahsiaan atau sensitiviti."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Membenarkan apl membaca semua acara kalendar yang disimpan pada TV anda, termasuk milik rakan atau rakan sekerja. Ini mungkin membenarkan apl berkongsi atau menyimpan data kalendar anda, tanpa mengira kerahsiaan atau sensitiviti."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Membenarkan apl mengubah suai tetapan segerak untuk akaun. Sebagai contoh, ini boleh digunakan untuk mendayakan penyegerakan apl Orang dengan akaun."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"baca statistik penyegerakan"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Membenarkan apl untuk membaca statistik segerak untuk akaun, termasuk sejarah acara segerak dan berapa banyak data disegerakkan."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"baca istilah yang anda tambahkan kepada kamus"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Membenarkan apl membaca semua perkataan, nama dan frasa yang mungkin telah disimpan oleh pengguna dalam kamus pengguna."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"tambah perkataan ke kamus ditakrifkan pengguna"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Membenarkan apl menulis perkataan baharu ke dalam kamus pengguna."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"baca kandungan storan USB anda"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"baca kandungan kad SD anda"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Membenarkan aplikasi membaca kandungan storan USB anda."</string> diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml index 8c5bf14..16a1121 100644 --- a/core/res/res/values-my-rMM/strings.xml +++ b/core/res/res/values-my-rMM/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"သင့် အဆက်အသွယ်များအား ဝင်ရောက်သုံးရန်"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"တည်နေရာ"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"စက်ပစ္စည်း၏ တည်နေရာကို အသုံးပြုမည်"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"သင်၏ ဆိုရှယ် သတင်းအချက်အလက်"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"သင်၏ အဆက်အသွယ်များနှင့် ဆိုရှယ်လ် အဆက်အသွယ်များအား၏ သတင်းအချက်အလက်များအား တိုက်ရိုက်အသုံးပြုခွင့် ရယူရန်"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ပြက္ခဒိန်"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"သင့်ပြက္ခဒိန်အား ဝင်ရောက်သုံးရန်"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"စာတိုစနစ်"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS စာများကို ပို့ကာ ကြည့်မည်"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"သိုလှောင်မှုများ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"သင့်ဖုန်းရှိ ဓာတ်ပုံများ၊ မီဒီယာနှင့် ဖိုင်များအား ဝင်သုံးပါ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"သုံးစွဲသူ အဘိဓာန်"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"သုံးစွဲသူ အဘိဓာန်တွင် စာလုံးများ ဖတ်ရန် သို့မဟုတ် ရေးရန်"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"မှတ်တမ်း နှင့် အမှတ်အသား နေရာများ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ဘရောင်ဇာ မှတ်တမ်း နှင့် အမှတ်နေရာများအား တိုက်ရိုက် ရယူရန်"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"မိုက်ခရိုဖုန်း"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"အသံဖမ်းခြင်း"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ကင်မရာ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"အပလီကေးရှင်းအား သင့်တက်ဘလက်၏ ဖုန်းခေါ်ဆိုမှု မှတ်တမ်း (အဝင်အထွက်ခေါ်ဆိုမှု အချက်အလက်များ) ကို ပြင်ဆင်ခွင့် ပေးခြင်း။ အန္တရာယ်ရှိ အပလီကေးရှင်းများမှ ဤအချက်ကို အသုံးပြု၍ သင့် ဖုန်းခေါ်ဆိုမှု မှတ်တမ်းကို ဖျက်ပစ်ခြင်း၊ ပြင်ဆင်ခြင်းများ ပြုလုပ်နိုင်ပါသည်"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"အဝင်အထွက်ခေါ်ဆိုမှု အချက်အလက်များ အပါအဝင်၊ သင့်တီဗွီ၏ ဖုန်းခေါ်ဆိုမှု မှတ်တမ်းကို အပလီကေးရှင်းအား ပြင်ဆင်ခွင့်ပေးခြင်း။ အန္တရာယ်ရှိ အပလီကေးရှင်းများမှ ဤအချက်ကို အသုံးပြု၍ သင့် ဖုန်းခေါ်ဆိုမှု မှတ်တမ်းကို ဖျက်ပစ်ခြင်း၊ ပြင်ဆင်ခြင်းများ ပြုလုပ်နိုင်၏။"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"အပလီကေးရှင်းအား သင့်ဖုန်း၏ ဖုန်းခေါ်ဆိုမှု မှတ်တမ်း (အဝင်အထွက်ခေါ်ဆိုမှု အချက်အလက်များ) ကို ပြင်ဆင်ခွင့် ပေးခြင်း။ အန္တရာယ်ရှိ အပလီကေးရှင်းများမှ ဤအချက်ကို အသုံးပြု၍ သင့် ဖုန်းခေါ်ဆိုမှု မှတ်တမ်းကို ဖျက်ပစ်ခြင်း၊ ပြင်ဆင်ခြင်းများ ပြုလုပ်နိုင်ပါသည်"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"သင့်ရဲ့ အဆက်အသွယ် ကဒ် အား ဖတ်ခြင်း"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"အပလီကေးရှင်းအား စက်မှာ သိမ်းထားသော သင့်နာမည် နှင့် အဆက်အသွယ် သတင်းအချက်အလက်များကဲ့သို့သော ကိုယ်ရေးကိုယ်တာ အချက်အလက်များအား ဖတ်ခွင့် ပြုခြင်း။ အပလီကေးရှင်းမှ သင့်အား သိရှိနိုင်ပြီး သင့်ကိုယ်ရေးအချက်အလက်များအား အခြားသူများကို ပေးပို့နိုင်ပါသည်"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"သင့်ရဲ့ အဆက်အသွယ်ကဒ် အား ပြင်ရန်"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"အပလီကေးရှင်းအား စက်မှာ သိမ်းထားသော သင့်နာမည် နှင့် အဆက်အသွယ် သတင်းအချက်အလက်များကဲ့သို့သော ကိုယ်ရေးကိုယ်တာ အချက်အလက်များအား ပြင်ဆင်ခွင့် သို့ ထည့်ခွင့် ပြုခြင်း။ အပလီကေးရှင်းမှ သင့်အား သိရှိနိုင်ပြီး သင့်ကိုယ်ရေးအချက်အလက်များအား အခြားသူများကို ပေးပို့နိုင်ပါသည်"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ခန္ဓာကိုယ် အာရံခံကိရိယာများ (နှလုံးခုန်နှုန်း စောင့်ကြည့်စက် လို)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"သင်၏ နှလုံးခုန်နှုန်းလို ရုပ်ပိုင်း အခြေအနေကို စောင့်ကြပ်သည့် အာရုံခံစက်များထံမှ ဒေတာများကို appအား ရယူသုံးခွင့် ပြုပါ။"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"သင့်လူမှုရေးရာအဖွဲ့အစည်းတွင်ရေးသားရန်"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"အပလီကေးရှင်းအား သင်နှင့် သင့်သူငယ်ချင်းတို့၏ ဆိုရှယ်နက်ဝဘ်မှ နောက်ဆုံးပေါ် အချက်အလက်များအား အသုံးပြုခွင့်နင့် ထပ်တူညီအောင် လုပ်ဆောင်ခွင့် ပြုပါ။ သတင်းအချက်အလက် မျှဝေခြင်းတွင် သတိပြုရန် -- ဤသို့ ခွင့်ပြုခြင်းဖြင့် အပလီကေးရှင်းမှ ယုံကြည်စိတ်ချရမှုကို ဂရုမပြုပဲ သင် နှင့် သူငယ်ချင်းများကြား ဆက်သွယ်မှုများအား သိရှိနိုင်ပါသည်။ မှတ်ချက်။ ဤခွင့်ပြုချက်အား ဆိုရှယ်နက်ဝဘ် အားလုံးတွင် ခွင့်ပြုခြင်း မလုပ်သင့်ပါ။"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"သင့်လူမှုရေးရာအဖွဲ့အစည်းတွင်ရေးသားရန်"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"အပလီကေးရှင်းအား သူငယ်ချင်းများရဲ့ ဆိုရှယ်နက်ဝဘ်မှနောက်ဆုံးပေါ် အချက်အလက်များအား ဖန်သားပြင်ပေါ်တွင် ပြခွင့်ပြုရန်။ သတင်းအချက်အလက် မျှဝေခြင်းတွင် သတိပြုရန် -- ဤသို့ ခွင့်ပြုခြင်းဖြင့် အပလီကေးရှင်းမှ သူငယ်ချင်းများထံမှ လာသကဲ့သို့ သတင်းများ ပြုလုပ်နိုင်ပါသည်။ မှတ်ချက်၊ ဤခွင့်ပြုချက်အား ဆိုရှယ်နက်ဝဘ် အားလုံးတွင် ခွင့်ပြုခြင်း မလုပ်သင့်ပါ။"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ပြက္ခဒိန်အဖြစ်အပျက်များနှင့် လှို့ဝှက်အချက်အလက်များအား ဖတ်ခြင်း"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"အပလီကေးရှင်းအား တက်ဘလက်ထဲတွင် သိမ်းထားသော သူငယ်ချင်းနှင့် လုပ်ဖော်ကိုင်ဘက်များ၏ ပြက္ခဒိန် အဖြစ်အပျက်များအပါအဝင် အားလုံးကို ဖတ်ရှုခွင့်ပြုပါ။ ဒီခွင့်ပြုချက်ကြောင့် အပလီကေးရှင်းမှ ပြက္ခဒိန် အဖြစ်အပျက်များအား လျှို့ဝှက်မှု သို့ ဂရုပြုမှု ကို ထည့်သွင်းမစဉ်းစားပဲ သိမ်းဆည်းခြင်း၊ မျှဝေခြင်း ပြုလုပ်စေနိုင်ပါသည်"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"သူငယ်ချင်းများ သို့မဟုတ် လုပ်ဖော်ကိုင်ဖက်များ၏ ဖြစ်ရပ်များ အပါအဝင်၊ သင့် တီဗွီတွင် သိမ်းထားသော ပြက္ခဒိန်ရှိ ဖြစ်ရပ်များအား ဖတ်ရန် app အား ခွင့်ပြုပါ။ ဤနည်းဖြင့် ယုံကြည်စိတ်ချရမှု သို့မဟုတ် ထိခိုက်လွယ်မှုတို့နှင့် မသက်ဆိုင်ဘဲ၊ သင့် ပြက္ခဒိန်ရှိ ဒေတာကို ဝေမျှရန် သို့မဟုတ် သိမ်းဆည်းရန် app အား ခွင့်ပြုသည်။"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"အကောင့်တစ်ခုအတွက် ထပ်တူညီအောင်လုပ်သော ဆက်တင်များကို ပြင်ရန် အပလီကေးရှင်းကို ခွင့်ပြုရန်။ ဥပမာ People အပလီကေးရှင်း က အကောင့်တစ်ခုနှင့် ထပ်တူညီအောင် လုပ်ဆောင်ခြင်းအား ဖွင့်ရန် သုံးနိုင်သည်။"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ထပ်တူကူးခြင်း ကိန်းဂဏန်းအချက်အလက်များကို ဖတ်ခြင်း"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"အပလီကေးရှင်းအား အကောင့်တစ်ခု၏ ထပ်တူညီအောင် လုပ်ဆောင်မှု အခြေအနေ (ပြီးခဲ့သော အဖြစ်အပျက်၊ ဒေတာ ပမာဏ ပါဝင်မှု များအပါအဝင်)ကို ဖတ်ရှုခွင့် ပြုပါ။"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"အဘိဓာန်သို့ သင့် ထည့်ထားသည်များအား ဖတ်ခြင်း"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"အပလီကေးရှင်းအား အဘိဓာန်တွင် သိမ်းဆည်းထားသော စာလုံးအားလုံး၊ နာမည်များနှင့် စာစုများ ဖတ်ရှုခွင့် ပြုရန်"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"သုံးစွဲသူ၏ အဘိဓာန် ထဲသို့ စာလုံးများ ထည့်ခြင်း"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"အသုံးပြုသူ အဘိဓာန်ထဲသို့ စာလုံး အသစ်များကို ရေးခွင့် ပြုသည်။"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB သိုလှောင်မှုမှ အချက်အလက်များအား ဖတ်ခြင်း"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD ကဒ်မှ အချက်အလက်များအား ဖတ်ခြင်း"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"အပလီကေးရှင်းအား USB သိုလှောင်မှုပေါ်မှ ဒေတာများ ဖတ်ရှုခွင့်ပြုခြင်း"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 6a2fb12..1849d3e 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"få tilgang til kontaktene dine"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Posisjon"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"tilgang til enhetens plassering"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Den sosiale informasjonen din"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte tilgang til informasjon om kontaktene og de sosiale forbindelsene dine."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenderen"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"få tilgang til kalenderen din"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"sende og lese SMS-meldinger"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"få tilgang til bilder, media og filer på enheten din"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Brukerordlisten"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Les eller skriv inn ord i brukerordlisten."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bokmerkene og loggen"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte tilgang til bokmerker og nettleserloggen."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonen"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"spill inn lyd"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kameraet"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Lar appen endre nettbrettets samtalelogg, inkludert data om innkommende og utgående anrop. Skadelige apper kan utnytte denne tillatelsen til å slette eller endre samtaleloggen din."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Gjør at appen kan endre TV-ens samtalelogg, herunder data om innkommende eller utgående samtaler. Skadelige apper kan bruke dette til å slette eller endre samtaleloggen."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Lar appen endre telefonens samtalelogg, inkludert data om innkommende og utgående anrop. Skadelige apper kan utnytte denne tillatelsen til å slette eller endre samtaleloggen din."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lese ditt eget kontaktkort"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Lar appen lese personlig profilinformasjon som er lagret på enheten, som for eksempel navn og kontaktinformasjon. Dette betyr at appen kan identifisere deg og sende profilinformasjonen din til andre."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"endre ditt eget kontaktkort"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Lar appen endre eller legge til personlig profilinformasjon som er lagret på enheten din, som for eksempel navn og kontaktinformasjon. Dette betyr at appen kan identifisere deg og sende profilinformasjonen din til andre."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kroppssensorer (som pulsmålere)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Gir appen tilgang til data fra sensorer som overvåker den fysiske tilstanden din, for eksempel hjertefrekvensen din."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lese din sosiale strøm"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Lar appen lese og synkronisere sosiale oppdateringer fra deg selv og vennene dine. Vær forsiktig når du deler informasjon - med denne tillatelsen kan appen lese kommunikasjon mellom deg og vennene dine på sosiale nettverk, uavhengig av konfidensialitet. Vær oppmerksom på at denne tillatelsen kanskje ikke gjelder for alle sosiale nettverk."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"skrive i din sosiale strøm"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Lar appen vise sosiale oppdateringer fra vennene dine. Vær forsiktig når du deler informasjon - med denne tillatelsen kan appen lage meldinger som ser ut som om de kommer fra en venn. Vær oppmerksom på at denne tillatelsen kanskje ikke gjelder på alle sosiale nettverk."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lese kalenderhendelser og konfidensiell informasjon"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Lar appen lese alle kalenderaktivitetene lagret på nettbrettet ditt, inkludert aktiviteter for venner eller kolleger. Dette kan gjøre at appen deler eller lagrer kalenderinformasjonen din uavhengig av konfidensialitet og sensitivitet."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Gjør at appen kan lese alle kalenderaktiviteter lagret på TV-en, herunder venner eller kollegaers aktiviteter. Dette kan føre til at appen kan dele eller lagre kalenderdataene dine uavhengig av konfidensialitet og sensitivitet."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lar appen endre synkroniseringsinnstillingene for en konto. For eksempel kan dette brukes til å synkronisere Personer-appen med en konto."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lese synkroniseringsstatistikk"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lar appen lese synkroniseringsstatistikk for en konto, inkludert loggen over synkroniseringsaktiviteter og hvor mye data som er synkronisert."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lese ord du har lagt til i ordboken"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Lar appen lese alle ord, navn og uttrykk som brukeren har lagret i brukerordlisten."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"legge til ord i brukerdefinert ordliste"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Lar appen skrive nye ord i brukerordlisten."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"leser innholdet i USB-lagringen"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"leser innholdet i SD-kortet"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Lar appen lese innhold på USB-lagringen din."</string> diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml index 0812866..e3d795d 100644 --- a/core/res/res/values-ne-rNP/strings.xml +++ b/core/res/res/values-ne-rNP/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"तपाईँको सम्पर्कमा पहुँच गर्नुहोस्"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"यस यन्त्रको स्थान पहुँच गर्नुहोस्"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"तपाईँको सामाजिक सूचना"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"तपाईँको सम्पर्कहरू र सामाजिक जडानहरूको बारेको जानकारीमा सिधा पहुँच पुर्याउनुहोस्।"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"पात्रो"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"तपाईँको पात्रोमा पहुँच गर्नुहोस्"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS सन्देशहरू पठाउनुहोस् र हेर्नुहोस्"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"भण्डारण"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"तपाईँको यन्त्रमा तस्बिर, मिडिया, र फाइलहरूको पहुँच गर्नुहोस्"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"प्रयोगकर्ता शब्दकोश"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"प्रयोगकर्ता शब्दकोशमा शब्दहरू पढ्नुहोस् वा लेख्नुहोस्।"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्कहरू र इतिहास"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्कहरू र ब्राउजर इतिहासमा सिधा पहुँच।"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"माइक्रोफोन"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"अडियो रेकर्ड गर्नुहोस्"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"क्यामेरा"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"आगमन तथा बहर्गमन डेटासहित तपाईँको ट्याब्लेटको कल लगको परिमार्जन गर्न अनुप्रयोगलाई अनुमति दिन्छ। खराब अनुप्रयोगहरूले यसलाई तपाईँको कल लग परिमार्जन गर्न वा मेटाउन प्रयोग गर्न सक्छन्।"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"अनुप्रयोगहरूलाई अनुमति दिन्छ तपाईँको TV को कल लग, आगमन र बहिर्गमन कलका डेटा लगायत, परिमार्जन गर्न। दुस्प्रभावी अनुप्रयोगहरूले यसलाई तपाईँको कल लग मेट्न वा परिमार्जन गर्न सक्छ।"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"अनुप्रयोगलाई तपाईंको फोनको आउने र बाहिर जाने कलहरूको बारेको डेटा सहित कल लग परिमार्जन गर्न अनुमति दिन्छ। खराब अनुप्रयोगहरूले यसलाई तपाईंको कल लग मेटाउन वा परिमार्जन गर्न प्रयोग गर्न सक्दछ।"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"तपाईँको आफ्नै सम्पर्क कार्ड पढ्नुहोस्"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"अनुप्रयोगलाई तपाईंको उपकरणमा भण्डारण गरिएका व्यक्तिगत प्रोफाइल जानकारी पढ्न अनुमति दिन्छ, जस्तै तपाईंको नाम र सम्पर्क जानकारी। यसको मतलब अनुप्रयोगले तपाईंलाई पहिचान गर्न सक्दछ र तपाईंको प्रोफाइल जानकारी अरूलाई पठाउन सक्दछ।"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"तपाईँको आफ्नै सम्पर्क कार्ड परिमार्जन गर्नुहोस्"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"तपाईँको उपकरणमा भण्डार भएको व्याक्तिगत प्रोफाइल जानकारी, जस्तै तपाईँको नाम वा सम्पर्क जानकारीलाई परिवर्तन गर्न वा थप्नको लागि अनुप्रयोगलाई अनुमति दिन्छ। यसको मतलब अन्य अनुप्रयोगले तपाईँलाई चिन्न सक्छन् र सायद अन्यलाई तपाईँको प्रोफाइल जानकारी पठाउन सक्छन्।"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"शरीर सेन्सर (हृदयदर मोनिटर जस्तै)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"तपाईँको हृदय गति जस्तो सेंसर बाट डेटा पहुँचको लागि अनुप्रयोग अनुमति दिन्छ जसले तपाईँको भौतिक अवस्था अनुगमन गर्छ।"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"तपाईंको सामाजिक स्ट्रिम पढ्नुहोस्"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"तपाईँ र तपाईँका साथीहरूबाट सामाजिक अपडेटलाई पहुँच र सिंक गर्नको लागि अनुप्रयोगलाई अनुमति दिन्छ। जानकारी साझेदारी गर्दा सावधान रहनुहोस् -- समाजिक नेटवर्कहरूमा तपाईँ र तपाईँको साथीको बिचमा भएका संचारलाई पढ्न विश्वासनीयता बेगरै यसले अनुप्रयोगलाई अनुमति दिन्छ। नोट: यो अनुमति बलपूर्वक सबै सामाजिक नेटवर्कहरूमा सायद नगर्न सकिन्छ।"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"तपाईँको सामाजिक प्रवाहमा लेख्नुहोस्"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"अनुप्रयोगलाई तपाईंको साथीहरूबाट सामाजिक अपडेटहरू प्रदर्शन गर्न अनुमति दिन्छ। जानकारी साझेदारी गर्ने बेलामा होशियार रहनुहोस् -- यसले अनुप्रयोगलाई सन्देशहरू निर्माण गर्न अनुमति दिन्छ जुन साथीबाट आएको देखिन्छ। टिप्पणी: यो अनुमति सबै सामाजिक सञ्जालहरूमा लागू नहुन सक्दछ।"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"गोप्य जानकारी र पात्रो घटनाहरू पढ्नुहोस्"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"अनुप्रयोगलाई तपाईंको ट्याब्लेटमा भण्डारण गरिएका ती साथीहरू वा सहयोगीहरू सहितको पात्राका कार्यक्रमहरू पढ्न अनुमति दिन्छ। यसले गोपनीयता वा संवेदनशीलता बिना पनि अनुप्रयोगलाई तपाईंको पात्राका डेटा साझेदारी गर्न वा बचत गर्न अनुमति दिन्छ।"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"अनुप्रयोगलाई अनुमति दिन्छ तपाईँको TV मा भण्डारण गरिएका पात्रो घटनाहरू, साथी तथा सहकर्मीहरू लगायतका पढ्न। यसले अनुप्रयोगहरूलाई तपाईँको पात्रो डेटा साझेदारी गर्न वा सुरक्षित गर्न अनुमति दिन सक्छ, गोपनीयता वा सम्वेदनशीलताको पर्वाह बिना।"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"अनुप्रयोगहरूलाई खाताको लागि सिङ्क सेटिङहरू परिमार्जन गर्न अनुमति दिन्छ। उदाहरणको लागि, यो खातासँग व्यक्ति अनुप्रयोगको सिङ्क सक्षम गर्न प्रयोग गर्न सकिन्छ।"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"सिङ्क तथ्याङ्कहरू पढ्नुहोस्"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"अनुप्रयोगलाई खाताको लागि समीकरणको आँकडा समीकरण घटनाहरूको इतिहास र समीकरण गरिएको डेटाको मापन समेत, पढ्न अनुमति दिन्छ।"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"तपाईँले शब्दकोशमा थपेका शब्दहरू पढ्नुहोस्"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"अनुप्रयोगलाई प्रयोगकर्ताले प्रयोगकर्ता शब्दकोशमा भण्डारण गरेका हुन सक्ने सबै शब्दहरू, नामहरू र पदावलीहरू पढ्न अनुमति दिन्छ।"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"प्रयोगकर्ता-परिभाषित शब्दकोशमा शब्दहरू थप्नुहोस्।"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"प्रयोगकर्ता शब्दकोशमा नयाँ शब्द लेख्न अनुप्रयोगलाई अनुमति दिन्छ।"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"आफ्नो USB भण्डारणको सामग्रीहरूहरु पढ्नुहोस्"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"आफ्नो SD कार्डको सामग्रीहरूहरु पढ्नुहोस्"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"अनुप्रयोगलाई तपाईंको USB भण्डारणको सामग्री पढ्न अनुमति दिन्छ।"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 23a4ca2..57e29ea 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"toegang krijgen tot uw contacten"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Locatie"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"de locatie van dit apparaat openen"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Uw sociale informatie"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Rechtstreeks toegang krijgen tot informatie over uw contacten en sociale connecties."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"toegang krijgen tot uw agenda"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"sms\'jes verzenden en bekijken"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Opslagruimte"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"toegang tot foto\'s, media en bestanden op uw apparaat"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Gebruikerswoordenboek"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Woorden lezen of schrijven in gebruikerswoordenboek."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bladwijzers en geschiedenis"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Rechtstreeks toegang krijgen tot bladwijzers en browsergeschiedenis."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microfoon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"audio opnemen"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Toestaan dat de app het gesprekkenlijst van uw tablet aanpast, waaronder gegevens over inkomende en uitgaande oproepen. Schadelijke apps kunnen hiermee uw gesprekkenlijst wissen of aanpassen."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Toestaan dat de app het gesprekkenlijst van uw tv aanpast, waaronder gegevens over inkomende en uitgaande oproepen. Schadelijke apps kunnen hiermee uw gesprekkenlijst wissen of aanpassen."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Toestaan dat de app het gesprekkenlijst van uw telefoon aanpast, waaronder gegevens over inkomende en uitgaande oproepen. Schadelijke apps kunnen hiermee uw gesprekkenlijst wissen of aanpassen."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"uw eigen contactkaart lezen"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Hiermee kan de app persoonlijke profielgegevens lezen die op uw apparaat zijn opgeslagen, zoals uw naam en contactgegevens. Dit betekent dat de app u kan identificeren en uw profielgegevens naar anderen kan verzenden."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"uw eigen contactkaart aanpassen"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Hiermee kan de app persoonlijke profielgegevens wijzigen of toevoegen die op uw apparaat zijn opgeslagen, zoals uw naam en contactgegevens. Dit betekent dat de app u kan identificeren en uw profielgegevens naar anderen kan verzenden."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"lichaamssensoren (zoals hartslagmeters)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Hiermee kan de app toegang krijgen tot gegevens van sensoren die uw lichamelijke conditie controleren, zoals uw hartslag."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"uw sociale stream lezen"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Hiermee kan de app toegang krijgen tot sociale updates van u en uw vrienden en deze synchroniseren. Wees voorzichtig bij het delen van informatie: hiermee kan de app communicatie lezen tussen u en uw vrienden op sociale netwerken, ongeacht de vertrouwelijkheid. Opmerking: deze toestemming kan niet worden afgedwongen voor alle sociale netwerken."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"schrijven naar sociale streams"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Hiermee kan de app sociale updates van u en uw vrienden weergeven. Wees voorzichtig bij het delen van informatie: hiermee kan de app berichten produceren die afkomstig lijken te zijn van een vriend. Opmerking: deze toestemming kan niet worden afgedwongen voor alle sociale netwerken."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"agenda-afspraken en vertrouwelijke informatie lezen"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Hiermee kan de app alle agenda-afspraken lezen die zijn opgeslagen op uw tablet, inclusief die van vrienden of collega\'s. De app kan uw agenda delen of uw agendagegevens opslaan, ongeacht vertrouwelijkheid of gevoeligheid."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Hiermee kan de app alle agenda-afspraken lezen die zijn opgeslagen op uw tv, inclusief die van vrienden of collega\'s. De app kan uw agenda delen of uw agendagegevens opslaan, ongeacht vertrouwelijkheid of gevoeligheid."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Hiermee kan een app de synchronisatie-instellingen aanpassen voor een account. Deze toestemming kan bijvoorbeeld worden gebruikt om synchronisatie van de app Personen in te schakelen voor een account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"synchronisatiestatistieken lezen"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Hiermee kan een app de synchronisatiestatistieken voor een account lezen, inclusief de geschiedenis van synchronisatie-activiteiten en hoeveel gegevens zijn gesynchroniseerd."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"termen lezen die u heeft toegevoegd aan het woordenboek"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Hiermee kan de app alle woorden, namen en woordcombinaties lezen die de gebruiker heeft opgeslagen in het gebruikerswoordenboek."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"woorden toevoegen aan het gebruikerswoordenboek"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Hiermee kan de app nieuwe woorden schrijven naar het gebruikerswoordenboek."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"de inhoud van uw USB-opslag lezen"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"de inhoud van uw SD-kaart lezen"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"De app toestaan de inhoud van uw USB-opslag te lezen."</string> diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml index fba7a81..a91578f 100644 --- a/core/res/res/values-pa-rIN/strings.xml +++ b/core/res/res/values-pa-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰੋ"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ਇਸ ਡਿਵਾਈਸ ਦੇ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਤੱਕ ਪਹੁੰਚੋ"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ਤੁਹਾਡੀ ਸਮਾਜਿਕ ਜਾਣਕਾਰੀ"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਅਤੇ ਸਮਾਜਿਕ ਕਨੈਕਸ਼ਨਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਤੱਕ ਸਿੱਧੀ ਪਹੁੰਚ।"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ਕੈਲੰਡਰ"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ਆਪਣੇ ਕੈਲੰਡਰ ਦੀ ਐਕਸੈਸ ਕਰੋ"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਦਿਖਾਓ"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ਸਟੋਰੇਜ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"ਆਪਣੀ ਡਿਵਾਈਸ ਤੇ ਫੋਟੋਆਂ, ਮੀਡੀਆ ਅਤੇ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚੋ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਸ਼ਬਦ ਪੜ੍ਹੋ ਜਾਂ ਲਿਖੋ।"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ਬੁੱਕਮਾਰਕਸ ਅਤੇ ਇਤਿਹਾਸ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ਬੁੁੱਕਮਾਰਕਾਂ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਇਤਿਹਾਸ ਤੱਕ ਸਿੱਧੀ ਪਹੁੰਚ।"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ਮਾਈਕ੍ਰੋਫੋਨ"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ਔਡੀਓ ਰਿਕਾਰਡ ਕਰੋ"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"ਕੈਮਰਾ"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਟੈਬਲੇਟ ਦਾ ਕਾਲ ਲੌਗ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਨਕਮਿੰਗ ਅਤੇ ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਬਾਰੇ ਡਾਟਾ ਸਮੇਤ। ਖ਼ਰਾਬ ਐਪਸ ਇਸਦੀ ਵਰਤੋਂ ਤੁਹਾਡੇ ਕਾਲ ਲੌਗ ਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਲਈ ਕਰ ਸਕਦੇ ਹਨ।"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ TV ਦਾ ਕਾਲ ਲੌਗ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਨਕਮਿੰਗ ਅਤੇ ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਬਾਰੇ ਡਾਟਾ ਸਮੇਤ। ਖ਼ਰਾਬ ਐਪਸ ਇਸਦੀ ਵਰਤੋਂ ਤੁਹਾਡੇ ਕਾਲ ਲੌਗ ਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਲਈ ਕਰ ਸਕਦੇ ਹਨ।"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫੋਨ ਦਾ ਕਾਲ ਲੌਗ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਨਕਮਿੰਗ ਅਤੇ ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਬਾਰੇ ਡਾਟਾ ਸਮੇਤ। ਖ਼ਰਾਬ ਐਪਸ ਇਸਦੀ ਵਰਤੋਂ ਤੁਹਾਡੇ ਕਾਲ ਲੌਗ ਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਲਈ ਕਰ ਸਕਦੇ ਹਨ।"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ਆਪਣਾ ਖੁਦ ਦਾ ਸੰਪਰਕ ਕਾਰਡ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਤੇ ਸਟੋਰ ਕੀਤੀ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਤੁਹਾਡਾ ਨਾਮ ਅਤੇ ਸੰਪਰਕ ਜਾਣਕਾਰੀ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪ ਤੁਹਾਨੂੰ ਪਛਾਣ ਸਕਦਾ ਹੈ ਅਤੇ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡੀ ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ ਭੇਜ ਸਕਦਾ ਹੈ।"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ਆਪਣਾ ਖੁਦ ਦਾ ਸੰਪਰਕ ਕਾਰਡ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਤੇ ਸਟੋਰ ਕੀਤੀ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ ਬਦਲਣ ਜਾਂ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਤੁਹਾਡਾ ਨਾਮ ਅਤੇ ਸੰਪਰਕ ਜਾਣਕਾਰੀ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪ ਤੁਹਾਨੂੰ ਪਛਾਣ ਸਕਦਾ ਹੈ ਅਤੇ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡੀ ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ ਭੇਜ ਸਕਦਾ ਹੈ।"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ਸਰੀਰ ਸੰਵੇਦਕ (ਜਿਵੇਂ ਦਿਲ ਦੀ ਧੜਕਣ ਦੇ ਨਿਰੀਖਕ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ਐਪ ਨੂੰ ਉਹਨਾਂ ਸੰਵੇਦਕਾਂ ਦੇ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੀ ਸਰੀਰਕ ਸਥਿਤੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ ਤੁਹਾਡੇ ਦਿਲ ਦੀ ਧੜਕਣ।"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ਆਪਣੀ ਸਮਾਜਿਕ ਸਟ੍ਰੀਮ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਅਤੇ ਤੁਹਾਡੇ ਦੋਸਤਾਂ ਦੀਆਂ ਸਮਾਜਿਕ ਅਪਡੇਟਾਂ ਤੱਕ ਪਹੁੰਚ ਅਤੇ ਸਿੰਕ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਜਾਣਕਾਰੀ ਸੇਅਰ ਕਰਦੇ ਸਮੇਂ ਸਾਵਧਾਨ ਰਹੋ - ਇਹ ਸਮਾਜਿਕ ਨੈਟਵਰਕਾਂ ਤੇ ਤੁਹਾਡੇ ਅਤੇ ਤੁਹਾਡੇ ਦੋਸਤਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਗੁਪਤਤਾ ਤੇ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ। ਨੋਟ: ਇਹ ਅਨੁਮਤੀ ਸਾਰੇ ਸਮਾਜਿਕ ਨੈਟਵਰਕਾਂ ਤੇ ਲਾਗੂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ਆਪਣੀ ਸਮਾਜਿਕ ਸਟ੍ਰੀਮ ਵਿੱਚ ਲਿਖੋ"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦੋਸਤਾਂ ਦੀਆਂ ਸਮਾਜਿਕ ਅਪਡੇਟਾਂ ਤੱਕ ਡਿਸਪਲੇ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਜਾਣਕਾਰੀ ਸੇਅਰ ਕਰਦੇ ਸਮੇਂ ਸਾਵਧਾਨ ਰਹੋ - ਇਹ ਐਪ ਨੂੰ ਅਜਿਹੇ ਸੁਨੇਹੇ ਉਤਪੰਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਦੋਸਤ ਤੋਂ ਆਏ ਜਾਪ ਸਕਦੇ ਹਨ। ਨੋਟ: ਇਹ ਅਨੁਮਤੀ ਸਾਰੇ ਸਮਾਜਿਕ ਨੈਟਵਰਕਾਂ ਤੇ ਲਾਗੂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਪਲਸ ਗੁਪਤ ਜਾਣਕਾਰੀ ਪੜ੍ਹੋ"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਟੈਬਲੇਟ ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਸਾਰੀਆਂ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਦੋਸਤਾਂ ਜਾਂ ਸਹਿਯੋਗੀਆਂ ਦੀਆਂ ਇਵੈਂਟਾਂ ਸਮੇਤ। ਇਹ ਐਪ ਨੂੰ ਤੁਹਾਡਾ ਕੈਲੰਡਰ ਡਾਟਾ ਸ਼ੇਅਰ ਜਾਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ, ਗੁਪਤਤਾ ਜਾਂ ਸੰਵੇਦਨਸ਼ੀਲਤਾ ਤੇ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ।"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ TV ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਸਾਰੀਆਂ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਦੋਸਤਾਂ ਜਾਂ ਸਹਿਯੋਗੀਆਂ ਦੀਆਂ ਇਵੈਂਟਾਂ ਸਮੇਤ। ਇਹ ਐਪ ਨੂੰ ਤੁਹਾਡਾ ਕੈਲੰਡਰ ਡਾਟਾ ਸ਼ੇਅਰ ਜਾਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ, ਗੁਪਤਤਾ ਜਾਂ ਸੰਵੇਦਨਸ਼ੀਲਤਾ ਤੇ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ।"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ਐਪ ਨੂੰ ਇੱਕ ਖਾਤੇ ਲਈ ਸਿੰਕ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸਦੀ ਵਰਤੋਂ ਇੱਕ ਖਾਤੇ ਨਾਲ People ਐਪ ਦਾ ਸਿੰਕ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ਸਿੰਕ ਅੰਕੜੇ ਪੜ੍ਹੋ"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ਐਪ ਨੂੰ ਇੱਕ ਖਾਤੇ ਲਈ ਸਿੰਕ ਸਟੇਟਸ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਸਿੰਕ ਇਵੈਂਟਾਂ ਦੇ ਇਤਿਹਾਸ ਅਤੇ ਕਿੰਨਾ ਡਾਟਾ ਸਿੰਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਮੇਤ।"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ਉਹ ਸ਼ਬਦ ਪੜ੍ਹੋ ਜੋ ਤੁਸੀਂ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਜੋੜੇ ਸੀ"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ਐਪ ਨੂੰ ਉਹ ਸਾਰੇ ਸ਼ਬਦ, ਨਾਮ ਅਤੇ ਵਾਕਾਂਸ਼ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਹਨਾਂ ਨੂੰ ਉਪਭੋਗਤਾ ਨੇ ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਹੋਇਆ ਹੋ ਸਕਦਾ ਹੈ।"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ਉਪਭੋਗਤਾ-ਪਰਿਭਾਸ਼ਿਤ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਸ਼ਬਦ ਜੋੜੋ"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ਐਪ ਨੂੰ ਉਪਭੋਗਤਾ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਨਵੇਂ ਸ਼ਬਦ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ਆਪਣੀ USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹੋ"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ਆਪਣੇ SD ਕਾਰਡ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹੋ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ਐਪ ਨੂੰ ਆਪਣੀ USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 3c895cc..0cd0e2b 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"dostęp do kontaktów"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokalizacja"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"dostęp do lokalizacji tego urządzenia"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Twoje informacje społecznościowe"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Bezpośredni dostęp do informacji o Twoich kontaktach i powiązaniach społecznościowych."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendarz"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"dostęp do kalendarza"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"wysyłać i wyświetlać SMS-y"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Pamięć"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"uzyskiwać dostęp do zdjęć, multimediów i plików na Twoim urządzeniu"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Słownik użytkownika"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Odczytywanie lub zapisywanie słów w słowniku użytkownika."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Zakładki i historia"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Bezpośredni dostęp do zakładek i historii przeglądarki."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"nagrywanie dźwięku"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Aparat"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Zezwala aplikacji na modyfikowanie rejestru połączeń tabletu, w tym danych o połączeniach przychodzących i wychodzących. Złośliwe aplikacje mogą wykorzystać tę możliwość, by wyczyścić lub zmodyfikować rejestr połączeń."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Pozwala aplikacji modyfikować rejestr połączeń telewizora, w tym dane o połączeniach przychodzących i wychodzących. Szkodliwe aplikacje mogą to wykorzystać do skasowania lub zmodyfikowania rejestru połączeń."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Zezwala aplikacji na modyfikowanie rejestru połączeń telefonu, w tym danych o połączeniach przychodzących i wychodzących. Złośliwe aplikacje mogą wykorzystać tę możliwość, by wyczyścić lub zmodyfikować rejestr połączeń."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"odczytywanie własnej karty kontaktu"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Pozwala aplikacji na odczyt osobistych informacji przechowywanych w Twoim profilu na urządzeniu (np. imienia i nazwiska lub adresu). Oznacza to, że aplikacja może Cię zidentyfikować i wysłać informacje z Twojego profilu do innych osób."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"zmiana własnej karty kontaktu"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Pozwala aplikacji na zmianę lub dodanie osobistych informacji przechowywanych w Twoim profilu na urządzeniu (np. imienia i nazwiska lub adresu). Oznacza to, że aplikacja może Cię zidentyfikować i wysłać informacje z Twojego profilu do innych osób."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"czujniki ciała (np. monitorujące tętno)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Pozwala aplikacji na dostęp do danych z czujników, które monitorują Twój stan fizyczny (np. tętno)."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"odczyt sieci społecznościowych"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Pozwala aplikacji na odczyt i synchronizację informacji publikowanych przez Ciebie i Twoich znajomych w sieciach społecznościowych. Zachowaj ostrożność, udostępniając informacje. Aplikacja z tym uprawnieniem może odczytać całą komunikację, którą prowadzisz ze swoimi znajomymi w sieciach społecznościowych, niezależnie od jej poufności. Uwaga: to uprawnienie może nie być egzekwowane we wszystkich sieciach społecznościowych."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"zapis sieci społecznościowych"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Pozwala aplikacji na wyświetlanie informacji publikowanych przez Twoich znajomych w sieciach społecznościowych. Zachowaj ostrożność, udostępniając informacje. Aplikacja z tym uprawnieniem może tworzyć wiadomości, które wyglądają jakby pochodziły od znajomych. Uwaga: to uprawnienie może nie być egzekwowane we wszystkich sieciach społecznościowych."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"odczyt wydarzeń w kalendarzu wraz z informacjami poufnymi"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Pozwala aplikacji na odczytywanie wszystkich wydarzeń w kalendarzu zapisanych na tablecie, w tym pochodzących od znajomych i współpracowników. Aplikacja z takim uprawnieniem może udostępniać i zapisywać dane kalendarza niezależnie od ich poufności."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Pozwala aplikacji odczytywać wszystkie zapisane na urządzeniu wydarzenia z kalendarza, również należące do znajomych i współpracowników. Może to umożliwić aplikacji przekazywanie lub zapisywanie danych z kalendarza, także tych poufnych."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Pozwala aplikacji na modyfikowanie ustawień synchronizacji z kontem. Tego uprawnienia można użyć np. do włączenia synchronizacji z kontem aplikacji Ludzie."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"czytanie statystyk dotyczących synchronizowania"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Pozwala aplikacji na czytanie statystyk synchronizacji konta, w tym historii zdarzeń synchronizacji oraz ilości zsynchronizowanych danych."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"odczytywanie terminów dodanych do słownika"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Pozwala aplikacji na odczytywanie wszelkich słów, nazw i wyrażeń zapisanych w słowniku użytkownika."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"dodawanie wyrazów do słownika zdefiniowanego przez użytkownika"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Pozwala aplikacji na zapisywanie nowych słów do słownika użytkownika."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"odczytywanie zawartości pamięci USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"odczytywanie zawartości karty SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Pozwala aplikacji na odczyt Twojej pamięci USB."</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index a9968cc..3d6d4fd 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"aceder aos contactos"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Localização"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"aceder à localização do seu dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"As suas informações sociais"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acesso direto às informações sobre os seus contactos e ligações sociais."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendário"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"aceder ao calendário"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar e ver mensagens SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"aceder a fotos, multimédia e ficheiros no dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionário do Utilizador"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escrever palavras no dicionário do utilizador."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e Histórico"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acesso direto aos marcadores e histórico do navegador."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microfone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"gravar áudio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Câmara"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite à aplicação modificar o registo de chamadas do tablet, incluindo os dados sobre as chamadas recebidas e efetuadas. As aplicações maliciosas podem utilizar esta funcionalidade para apagar ou modificar o registo de chamadas."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite à aplicação modificar o registo de chamadas da sua TV, incluindo os dados sobre as chamadas recebidas e efetuadas. As aplicações maliciosas podem utilizar esta funcionalidade para apagar ou modificar o registo de chamadas."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite à aplicação modificar o registo de chamadas do telemóvel, incluindo os dados sobre as chamadas recebidas e efetuadas. As aplicações maliciosas podem utilizar esta funcionalidade para apagar ou modificar o seu registo de chamadas."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ler o próprio cartão de contacto"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite que a aplicação leia dados de perfil pessoais guardados no dispositivo, tais como o seu nome e informações de contacto. Isto significa que outras aplicações podem identificá-lo e enviar os seus dados de perfil a terceiros."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modificar o próprio cartão de contacto"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite que a aplicação altere ou adicione dados de perfil pessoais guardados no dispositivo, tais como o seu nome e informações de contacto. Isto significa que outras aplicações podem identificá-lo e enviar os seus dados de perfil a terceiros."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensores corporais (como monitores do ritmo cardíaco)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite que a aplicação aceda a dados de sensores que monitorizam a sua condição física, como o ritmo cardíaco."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ler o seu fluxo social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite que a aplicação aceda e sincronize atualizações de redes sociais suas e dos seus amigos. Tenha cuidado ao partilhar informações, pois esta ação permite que a aplicação leia comunicações entre si e os seus amigos nas redes sociais, independentemente do grau de confidencialidade. Nota: esta autorização pode não ser aplicada a todas as redes sociais."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"escrever para o seu fluxo social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite que a aplicação apresente atualizações de redes sociais de amigos. Tenha cuidado ao partilhar informações, pois esta ação permite que a aplicação produza mensagens que podem parecer ser enviadas por um amigo. Nota: esta autorização pode não ser aplicada a todas as redes sociais."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ler eventos do calendário, para além de informações confidenciais"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite que a aplicação leia todos os eventos do calendário guardados no tablet, incluindo os de amigos ou colegas de trabalho. Pode permitir que a aplicação partilhe ou guarde dados do calendário, independentemente da confidencialidade ou sensibilidade."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite à aplicação ler todos os eventos de calendário armazenados na sua TV, incluindo os de amigos e de colegas de trabalho. Isto pode permitir à aplicação partilhar ou guardar os seus dados de calendário, independentemente da confidencialidade ou sensibilidade."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que uma aplicação modifique as definições de sincronização de uma conta. Por exemplo, pode ser utilizada para ativar a sincronização da aplicação Pessoas com uma conta."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ler estatísticas de sincronização"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que uma aplicação leia o estado de sincronização de uma conta, incluindo o histórico de eventos de sincronização e a quantidade de dados sincronizados."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ler os termos adicionados ao dicionário"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que a aplicação leia todas as palavras, nomes e expressões que o utilizador possa ter guardado no dicionário do utilizador."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"adicionar palavras ao dicionário definido pelo utilizador"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite à aplicação escrever novas palavras no dicionário do utilizador."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ler os conteúdos da memória USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ler os conteúdos do cartão SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permite que a aplicação leia conteúdos da memória USB."</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 1112bdb..600a659 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"acessar seus contatos"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Local"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"acessar o local do dispositivo"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Suas informações sociais"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acesso direto às informações de seus contatos e conexões sociais."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"acessar sua agenda"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar e ver mensagens SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"acessar fotos, mídia e arquivos do seu dispositivo"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionário do usuário"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escrever as palavras do dicionário do usuário."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoritos e histórico"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acesso direto aos favoritos e histórico do navegador."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microfone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"gravar áudio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Câmera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite que o app modifique o registro de chamadas de seu tablet, incluindo dados sobre chamadas recebidas e efetuadas. Apps maliciosos podem usar esta permissão para apagar ou modificar seu registro de chamadas."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite que o app modifique o registro de chamadas da sua TV, incluindo dados sobre chamadas recebidas e efetuadas. Apps maliciosos podem usá-lo para apagar ou modificar seu registro de chamadas."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite que o app modifique o registro de chamadas de seu telefone, incluindo dados sobre chamadas recebidas e efetuadas. Apps maliciosos podem usar esta permissão para apagar ou modificar seu registro de chamadas."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ler próprio cartão de contato"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite que o app leia informações de perfil pessoal armazenadas no dispositivo, como seu nome e dados de contato. Isso significa que o app poderá identificá-lo e enviar suas informações de perfil para terceiros."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"mod. próprio cartão contato"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite que o app altere ou adicione informações pessoais de perfil armazenadas em seu dispositivo, como seu nome e informações de contato. Isso significa que o app pode identificá-lo e enviar as informações de seus perfil para terceiros."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sensores corporais"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite que o app acesse dados de sensores que monitoram sua condição física, como a frequência cardíaca."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ler suas transmissões sociais"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite que o app acesse e sincronize suas atualizações sociais e as de seus amigos. Tenha cuidado ao compartilhar informações: isto permite que o app leia as mensagens trocadas por você e seus amigos em redes sociais, independentemente de sua confidencialidade. Obsservaç: pode não ser aplicável a todas as redes sociais."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"escrever p/ suas transm. soc."</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite que o app exiba atualizações sociais de seus amigos. Tenha cuidado ao compartilhar informações: isto permite que o app produza mensagens aparentemente enviadas por amigos. Observação: pode não ser aplicável a todas as redes sociais."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"ler compromissos e informações confidenciais"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite que o app leia todos os eventos do calendário armazenados no tablet, incluindo os de amigos ou colegas de trabalho. Pode permitir que o app compartilhe ou salve os dados do calendário, independentemente de sua confidencialidade."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite que o app leia todos os eventos da agenda armazenados na sua TV, incluindo os de amigos ou colegas de trabalho. Isso pode permitir que o app compartilhe ou salve os dados da sua agenda, independentemente de serem confidenciais ou sensíveis."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que o app modifique as configurações de sincronização de uma conta. Por exemplo, pode ser usado para ativar a sincronização do app People com uma conta."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ler estatísticas de sincronização"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que um app acesse as estatísticas de sincronização de uma conta, incluindo a história dos eventos de sincronização e a quantidade de dados sincronizados."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ler termos adicionados ao dicionário"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que o app leia palavras, nomes e frases armazenados pelo usuário no dicionário do usuário."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"adicionar palavras ao dicionário do usuário"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite que o app grave novas palavras no dicionário do usuário."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ler conteúdo do armaz. USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ler conteúdo do cartão SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Perm. que app leia cartão SD."</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 347439c..984c57d 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -231,18 +231,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"accesează persoanele de contact"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Locație"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"accesează locația acestui dispozitiv"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informaţiile dvs. sociale"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acces direct la informaţii despre persoanele de contact și conexiunile dvs. sociale."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"accesează calendarul"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"trimite și vede mesajele SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Stocare"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"accesează fotografiile, conținutul media și fișierele de pe dispozitiv"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicţionarul utilizatorului"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Citește sau scrie cuvinte în dicționarul utilizatorului."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcajele și Istoricul"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acces direct la marcaje și la istoricul navigării."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Microfonul"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"înregistrează conținut audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera foto"</string> @@ -333,16 +327,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Permite aplicației să modifice jurnalul de apeluri al tabletei dvs., inclusiv datele despre apelurile primite sau efectuate. Aplicaţiile rău intenţionate pot utiliza această permisiune pentru a şterge sau pentru a modifica jurnalul dvs. de apeluri."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Permite aplicației să modifice jurnalul de apeluri al televizorului, inclusiv datele despre apelurile primite sau efectuate. Aplicațiile rău-intenționate pot utiliza această permisiune pentru a șterge sau pentru a modifica jurnalul de apeluri."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Permite aplicației să modifice jurnalul de apeluri al telefonului dvs., inclusiv datele despre apelurile primite sau efectuate. Aplicaţiile rău intenţionate pot utiliza această permisiune pentru a şterge sau pentru a modifica jurnalul dvs. de apeluri."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"citeşte cartea dvs. de vizită"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Permite aplicației să citească informaţiile personale din profil stocate pe dispozitiv, cum ar fi numele și informaţiile de contact, ceea ce înseamnă că aplicația vă poate identifica și poate trimite informaţiile dvs. de profil altor utilizatori."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modifică cartea dvs. de vizită"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Permite aplicației să schimbe sau să adauge conţinut în informaţiile personale din profil stocate pe dispozitivul dvs., cum ar fi numele și informaţiile dvs. de contact. Aceasta înseamnă că aplicația vă poate identifica și poate trimite informaţiile din profilul dvs. altor persoane."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"senzori (ex.: senzori de ritm cardiac)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Permite aplicației să acceseze date de la senzorii care vă monitorizează starea fizică, cum ar fi ritmul cardiac."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"citeşte fluxul social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Permite aplicației să acceseze și să sincronizeze actualizările sociale de la dvs. și de la prietenii dvs. Daţi dovadă de precauţie când distribuiţi informaţii - cu această permisiune aplicația citeşte comunicările realizate între dvs. și prietenii dvs. în reţelele sociale, indiferent de gradul de confidenţialitate a acestora. Notă: această permisiune nu poate fi aplicată pentru toate reţelele sociale."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"scrie în fluxul social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Permite aplicației să afişeze actualizări sociale de la prietenii dvs. Distribuiți cu precauţie aceste informaţii - cu această permisiune aplicația produce mesaje care pot părea că vin de la un prieten. Notă: această permisiune nu poate fi aplicată pentru toate reţelele sociale."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"citirea evenimentelor din calendar și a informaţiilor confidenţiale"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Permite aplicației să citească toate evenimentele din calendar stocate pe tabletă, inclusiv cele ale prietenilor sau colegilor. Acest lucru poate permite aplicației să distribuie sau să salveze datele din calendar, indiferent dacă acestea sunt confidenţiale sau sensibile."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Permite aplicației să citească toate evenimentele din calendar stocate pe televizor, inclusiv cele ale prietenilor sau colegilor. Cu această permisiune, aplicația poate să permită accesul la datele din calendar sau să le salveze, indiferent dacă acestea sunt confidențiale sau sensibile."</string> @@ -455,10 +441,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite unei aplicații să modifice setările de sincronizare ale unui cont. De exemplu, cu această permisiune aplicația poate activa sincronizarea aplicației Persoane cu un anumit cont."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"citire statistici privind sincronizarea"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite unei aplicații să citească statisticile de sincronizare ale unui cont, inclusiv istoricul evenimentelor de sincronizare și volumul datelor sincronizate."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"citeşte termenii adăugaţi în dicţionar"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Permite aplicației să citească toate cuvintele, numele și expresiile stocate în dicţionarul utilizatorului."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"adaugă cuvinte în dicţionarul definit de utilizator"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Permite aplicației să scrie cuvinte noi în dicţionarul utilizatorului."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"citeşte conţinutul stocării USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"citeşte conţinutul cardului SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Permite aplic. citirea conținutului stoc. USB."</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 2532852..f453011 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"доступ к контактам"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Местоположение"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"доступ к данным о местоположении устройства"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Информация о моих контактах"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Прямой доступ к информации о моих контактах и социальных связях."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"доступ к календарю"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"отправка и просмотр SMS-сообщений"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Память"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"доступ к фотографиям, файлам и мультимедийному контенту на вашем устройстве"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Пользовательский словарь"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Чтение слов в пользовательском словаре или их запись."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Закладки и история"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Прямой доступ к закладкам и истории браузера."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"запись аудио"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Приложение сможет вносить изменения в список вызовов планшетного ПК и данные о входящих и исходящих звонках. Вредоносные приложения смогут воспользоваться этим для удаления или изменения информации о звонках."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Изменение списка вызовов телевизора и данных о входящих и исходящих звонках. Вредоносные приложения смогут воспользоваться этим для удаления или изменения информации о звонках."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Приложение сможет вносить изменения в список вызовов телефона и данные о входящих и исходящих звонках. Вредоносные приложения смогут воспользоваться этим для удаления или изменения информации о звонках."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"Просмотр ваших контактных данных"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Приложение сможет просматривать вашу личную информацию (например, имя и контактные данные), сохраненную на устройстве. Получив эти данные, приложение сможет отправить их другим пользователям."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"Изменение ваших контактных данных"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Приложение сможет изменять вашу личную информацию (например, имя и контактные данные), сохраненную на устройстве. Получив эти данные, приложение сможет отправить их другим пользователям."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"датчики (например, пульсометр)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Приложение сможет получить доступ к данным датчиков, размещенных на теле, например измеряющих частоту сердцебиения."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"Просмотр записей в вашей социальной ленте"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Приложение сможет просматривать и синхронизировать записи, публикуемые вами и вашими друзьями в социальных сетях. Будьте осторожны при передаче информации! С этим разрешением приложение сможет просматривать вашу переписку с друзьями в социальных сетях независимо от настроек конфиденциальности. Примечание. Это разрешение может применяться не во всех социальных сетях."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"Добавление записей в вашу социальную ленту"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Приложение сможет отображать новости, добавленные вашими друзьями в социальных сетях. Будьте осторожны при передаче этой информации! С этим разрешением приложение сможет создавать сообщения от лица друзей. Примечание. Это разрешение может применяться не во всех социальных сетях."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"Просмотр в календаре мероприятий и конфиденциальных данных"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Приложение сможет просматривать мероприятия в календаре устройства, в том числе добавленные друзьями или коллегами, а также передавать и сохранять данные календаря независимо от настроек конфиденциальности."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Доступ к записям календаря на телевизоре, в том числе добавленным вашими друзьями и коллегами. Приложение сможет пересылать данные календаря и сохранять их независимо от параметров конфиденциальности."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Приложение сможет изменять настройки синхронизации аккаунта. Например, с помощью этого разрешения можно включить в аккаунте синхронизацию контактов."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"Просмотр статистики синхронизации"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Приложение сможет просматривать статистику синхронизации аккаунта, в том числе историю событий и объем синхронизированных данных."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"Просмотр добавленных в словарь слов"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Приложение получит доступ ко всем словам и фразам, которые хранятся в пользовательском словаре."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"Добавление слов в словарь пользователя"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Приложение сможет добавлять слова в пользовательский словарь."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"Просмотр данных на USB-накопителе"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"Считывание содержимого SD-карты"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Приложение сможет считывать данные на USB-накопителе."</string> diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml index b866db2..b2a2b5d 100644 --- a/core/res/res/values-si-rLK/strings.xml +++ b/core/res/res/values-si-rLK/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ඔබේ සම්බන්ධතාවලට පිවිසෙන්න"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ස්ථානය"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"මෙම උපාංගයේ ස්ථානය ප්රවේශ කිරීම"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ඔබගේ සමාජයීය තොරතුරු"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ඔබගේ සම්බන්ධතා සහ සාමාජ සම්බන්ධයන් ගැන තොරතුරු වෙත ඍජු ප්රවේශය."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"දින දර්ශනය"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ඔබේ දින දර්ශනයට පිවිසෙන්න"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"කෙටි පණිවිඩ"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS පණිවිඩ යැවීම සහ බැලීම"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ආචයනය"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"ඔබේ උපාංගයේ ඇති ඡායාරූප, මාධ්ය සහ ගොනුවලට පිවිසීම"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"පරිශීලක ශබ්ද කෝෂය"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"පරිශීලක ශබ්ද කෝෂයේ වචන කියවීම සහ ලිවිම."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"පිටුසන් සහ ඉතිහාසය"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"පිටුසන් සහ බ්රව්සර ඉතිහාසය වෙත ඍජු ප්රවේශය."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"මයික්රොෆෝනය"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ශ්රව්ය පටිගත කරන්න"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"කැමරාව"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ලැබෙන ඇමතුම් සහ පිටවන ඇමතුම් දත්ත ඇතුළත්ව ඔබගේ ටැබ්ලටයේ ඇමතුම් ලොගය වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. ඔබගේ ඇමතුම් ලොගය මැකීමට හෝ වෙනස් කිරීමට අනිෂ්ට යෙදුම් මෙය භාවිතා කෙරේ."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ලැබෙන ඇමතුම් සහ පිටවන ඇමතුම් දත්ත ඇතුළත්ව ඔබගේ ටැබ්ලටයේ ඇමතුම් ලොගය වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. ඔබගේ ඇමතුම් ලොගය මැකීමට හෝ වෙනස් කිරීමට අනිෂ්ට යෙදුම් මෙය භාවිතා කෙරේ."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"පැමිණෙන සහ පිටවෙන ඇමතුම් දත්ත ඇතුළුව ඔබගේ දුරකථනයේ ඇමතුම් ලොගය වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. ඔබගේ ඇමතුම් ලොගය මැකීමට හෝ වෙනස් කිරීමට අනිෂ්ට යෙදුම් මෙය භාවිත කල හැක."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"ඔබගේ සම්බන්ධතා පත කියවන්න"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ඔබගේ නම සම්බන්ධතා තොරතුරු ආදී ඔබගේ උපාංගයේ ගබඩා වී ඇති පුද්ගලික පැතිකඩ තොරතුරු කියවීමට යෙදුමට අවසර දෙන්න. මෙහි තේරුම යෙදුමට ඔබව හඳුනා ගැනීමට හැකි වන බව සහ ඔබගේ පුද්ගලික තොරතුරු අනෙක් අයට යැවීමට ද හැකි වීමයි."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ඔබගේ සම්බන්ධතා පත වෙනස් කිරීම"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ඔබගේ නම සහ සම්බන්ධතා තොරතුරු වැනි ඔබගේ උපාංගයේ ආචයනය කරන ලද පුද්ගලික පැතිකඩ තොරතුරු වෙනස් කිරීමට හෝ එකතු කිරීමට යෙදුමට අවසර දෙන්න. මෙමගින් යෙදුමට ඔබව හඳුනා ගත හැකි අතර අනෙක් අයට ඔබගේ පැතිකඩ තොරතුරු යැවිය හැකි බව කියවෙයි."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"සිරුර සංවේදකයන් (හෘද ස්පන්දන වේගය නිරීක්ෂණය කිරීම වැනි)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"හෘද ස්පන්දන වේගය වැනි ඔබගේ ශාරීරික තත්ත්වය නිරීක්ෂණය කරන සංවේදක වලින් දත්ත ලබාගැනීමට යෙදුමට ඉඩ දෙන්න."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ඔබගේ සමාජ ප්රවාහය කියවන්න"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ඔබගේ සහ ඔබගේ යහළුවන්ගේ සමාජ යාවත්කාලීනයන් වෙත පිවිසීමට හෝ සමමුහුර්ත කිරීමට යෙදුමට අවසර දෙන්න. තොරතුරු බෙදා ගැනීමේ දී සැලකිලිමත් වන්න -- විශ්වාසයකින් තොරව සමාජ ජාලවල ඔබගේ සහ ඔබගේ යහළුවන් අතර සන්නිවේදන කියවීමට මෙමගින් යෙදුමට අවසර දෙයි. සටහන: සියලු සමාජ ජාලවල මෙම අවසරය බල නොකරයි."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ඔබගේ සමාජ ප්රවාහය වෙත ලිවීම"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ඔබගේ යහළුවන්ගේ සමාජ යාවත්කාලීනයන් පෙන්වීමට යෙදුමට අවසර දෙන්න. තොරතුරු බෙදා ගැනීමේදී සැලකිලිමත් වන්න -- යහළුවෙක්ගෙන් පැමිණෙන ලෙස පණිවිඩ නිපදවීමට මෙමඟින් යෙදුමට අවසර දෙන්න. සටහන : සියලු සමාජ ජාල සඳහා මෙම අවසරය බල නොදෙයි."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"දින දර්ශනයේ සිදුවීම් සහ රහසිගත තොරතුරු කියවීම"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ඔබගේ ටැබ්ලටය තුල ගබඩා කර ඇති මිතුරන්ගේ සහ එක්ව ක්රියාකරන්නන්ගේ ද ඇතුළුව සියලුම දින දර්ශන සිද්ධි කියවීමට යෙදුමට අවසර දෙන්න. මෙය රහස්යභාවය හෝ සංවේදීතාවය නොසලකා ඔබගේ දින දර්ශන දත්ත බෙදා ගැනීමට හෝ සුරැකීමට යෙදුමට අවසර දෙන්න."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ඔබගේ රූපවාහිනියේ ගබඩා කර ඇති මිතුරන්ගේ සහ එකට වැඩ කරන්නන්ගේ සියළුම දින දර්ශනය සිදුවීම් කියවීමට යෙදුම ඉඩ දෙන්න. නොසලකන හෝ රහසිගත සියළුම දින දර්ශන දත්ත බෙදාගැනීමට හෝ සුරැකීමට යෙදුමට මෙයින් අවසර ලැබේ."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ගිණුම සඳහා සමමුහුර්ත සැකසීම් වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. උදාහරණයක් ලෙස, ගිණුම සමඟ පුද්ගල යෙදුම සමමුහුර්ත කිරීම සක්රිය කිරීමට භාවිත කල හැක."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"සමමුහුර්ත කිරීමේ සංඛ්යාන කියවීම"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"සමමුහුර්ත කිරීමේ සිදුවීම් ඉතිහාසය සහ කෙතරම් දත්ත සමමුහුර්ත වී ඇතිදැයි ඇතුලත් ගිණුම සඳහා සමමුහුර්ත කිරීමේ සංඛ්යාන කියවීමට යෙදුමට අවසර දෙන්න."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"ඔබ විසින් ශබ්දකෝෂයට ඇතුළත්කොට ඇති කොන්දේසි කියවීම"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"පරිශීලක ශබ්ද කෝෂයේ පරිශීලකයන් විසින් ගබඩා කර තිබිය හැකි වචන, නම්, වාක්යංශ කියවීමට යෙදුමට අවසර දෙන්න."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"පරිශීලකයින් අර්ථ දැක්වූ ශබ්ද කෝෂයට වචන එකතු කිරීම"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"පරිශීලක ශබ්දකෝෂය තුළට අලුත් වචන ලිවීමට යෙදුමට ඉඩ දෙන්න."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ඔබගේ USB ආචයනය හි අන්තර්ගතය කියවන්න"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ඔබගේ SD කාඩ් පතෙහි අන්තර්ගතය කියවන්න"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"යෙදුමට ඔබගේ USB ආචයනය අන්තර්ගතය කියවීමට අවසර දෙන්න."</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 73b9be7..8e38c0c 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"prístup k vašim kontaktom"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"prístup k polohe tohto zariadenia"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vaše sociálne informácie"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Priamy prístup k informáciám o vašich kontaktoch a sociálnych prepojeniach."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendár"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"prístup ku kalendáru"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"posielanie a zobrazovanie správ SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Úložisko"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"prístup k fotkám, médiám a súborom na zariadení"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Používateľský slovník"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čítanie a zadávanie slov v používateľskom slovníku."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Záložky a história"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Priamy prístup k záložkám a histórii prehliadača."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofón"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"zaznamenávanie zvuku"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Umožňuje aplikácii upravovať denník hovorov vo vašom tablete vrátane údajov o prichádzajúcich a odchádzajúcich hovoroch. Škodlivé aplikácie to môžu zneužiť na vymazanie alebo úpravu vášho denníka hovorov."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Umožňuje aplikácii upravovať denník hovorov vo vašom televízore vrátane údajov o prichádzajúcich a odchádzajúcich hovoroch. Škodlivé aplikácie to môžu zneužiť na vymazanie alebo úpravu vášho denníka hovorov."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Umožňuje aplikácii upravovať denník hovorov vo vašom telefóne vrátane údajov o prichádzajúcich a odchádzajúcich hovoroch. Škodlivé aplikácie to môžu zneužiť na vymazanie alebo úpravu vášho denníka hovorov."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"čítať vlastnú kartu kontaktu"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Umožňuje aplikácii čítať informácie v osobnom profile uložené v zariadení, ako je vaše meno a kontaktné informácie. Znamená to, že vás ostatné aplikácie môžu identifikovať a odoslať informácie o vašom profile iným aplikáciám."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"upraviť vlastnú kartu kontaktu"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Umožňuje aplikácii zmeniť alebo pridať do osobného profilu informácie uložené vo vašom zariadení, ako je vaše meno a kontaktné informácie. Znamená to, že vás aplikácia môže identifikovať a odoslať informácie o vašom profile ostatným aplikáciám."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"telesné senzory (napr. snímače tepu)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Umožňuje aplikácii získať prístup k údajom senzorov monitorujúcich vašu fyzickú kondíciu (napríklad pulz)."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"čítať váš sociálny stream"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Umožňuje aplikácii pristupovať k sociálnym aktualizáciám od vás a vašich priateľov a synchronizovať ich. Pri zdieľaní informácií dávajte pozor – toto povolenie umožňuje aplikácii čítať komunikáciu medzi vami a vašimi priateľmi v sociálnych sieťach, a to bez ohľadu na jej dôvernosť. Poznámka: Toto povolenie nie je možné vynucovať v prípade všetkých sociálnych sietí."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"písať do vášho sociálneho streamu"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Umožňuje aplikácii zobraziť sociálne aktualizácie od vašich priateľov. Pri zdieľaní informácií dávajte pozor – toto povolenie umožňuje aplikácii vytvárať správy, ktoré zdanlivo pochádzajú od vašich priateľov. Poznámka: Toto povolenie nie je možné vynucovať v prípade všetkých sociálnych sietí."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"čítať udalosti v kalendári a dôverné informácie"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Umožňuje aplikácii čítať všetky udalosti kalendára uložené v tablete vrátane udalostí priateľov alebo spolupracovníkov. Aplikácii to umožní zdieľať alebo ukladať údaje kalendára bez ohľadu na dôvernosť či citlivosť týchto údajov."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Umožňuje aplikácii čítať všetky udalosti kalendára uložené vo vašom televízore vrátane tých, ktoré zadali vaši priatelia alebo spolupracovníci. Toto povolenie môže aplikácii povoliť zdieľať alebo ukladať vaše údaje kalendára bez ohľadu na ich dôvernosť či citlivosť."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Umožňuje aplikácii upraviť nastavenia synchronizácie v účte. Pomocou tohto povolenia je možné napríklad povoliť synchronizáciu aplikácie Ľudia s účtom."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"čítať štatistické údaje o synchronizácii"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Umožňuje aplikácii čítať štatistické informácie o synchronizácii v účte vrátane histórie uskutočnených synchronizácií a informácií o množstve synchronizovaných údajov."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"čítať výrazy pridané do slovníka"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Umožňuje aplikácii čítať všetky slová, názvy a frázy, ktoré mohol používateľ uložiť do svojho slovníka."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"pridať slová do slovníka definovaného používateľom"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Umožňuje aplikácii zapisovať nové slová do používateľského slovníka."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"čítať obsah úložiska USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"čítať obsah SD karty"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Povoľuje ap. čítať obsah USB."</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 2296350..5a4c4da 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"dostop do stikov"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokacija"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"dostop do lokacije te naprave"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Podatki v družabnih omrežjih"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Neposreden dostop do podatkov o stikih in družabnih povezav."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Google Koledar"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"dostop do koledarja"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"pošiljanje in ogled sporočil SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Prostor za shranjevanje"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"dostop do fotografij, predstavnosti in datotek v napravi"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Uporabniški slovar"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Branje besed iz uporabniškega slovarja ali pisanje besed vanj."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Zaznamki in zgodovina"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Neposreden dostop do zaznamkov in zgodovine brskalnika."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"snemanje zvoka"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparat"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Aplikaciji dovoli spreminjanje dnevnika klicev v tabličnem računalniku, vključno s podatki o dohodnih in odhodnih klicih. Zlonamerne aplikacije lahko tako izbrišejo ali spreminjajo vaš dnevnik klicev."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Aplikaciji dovoljuje spreminjanje dnevnika klicev v televizorju, vključno s podatki o dohodnih in odhodnih klicih. Zlonamerne aplikacije lahko tako izbrišejo ali spreminjajo vaš dnevnik klicev."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Aplikaciji dovoli spreminjanje dnevnika klicev v telefonu, vključno s podatki o dohodnih in odhodnih klicih. Zlonamerne aplikacije lahko tako izbrišejo ali spreminjajo vaš dnevnik klicev."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"branje vaše osebne vizitke"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Aplikaciji omogoča branje osebnih podatkov v profilu, ki so shranjeni v napravi, na primer ime in podatki za stik. To pomeni, da vas lahko aplikacija prepozna in vaše podatke v profilu pošlje drugim."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"spreminj. vaše osebne vizitke"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Aplikaciji omogoča spreminjanje ali dodajanje osebnih podatkov v profilu, ki so shranjeni v napravi, na primer ime in podatki za stik. To pomeni, da vas lahko aplikacija prepozna in vaše podatke v profilu pošlje drugim."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"tipala telesnih funkcij (npr. merilniki srčnega utripa)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Aplikaciji omogoča dostop do podatkov tipal, ki nadzirajo vaše fizično stanje, med drugim vaš srčni utrip."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"branje vašega družabnega toka"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Aplikaciji omogoča dostop do vaših objav in objav vaših prijateljev v družabnih omrežjih ter njihovo sinhronizacijo. Previdno pri objavljanju informacij – aplikacija lahko s tem bere komunikacijo med vami in prijatelji v družabnih omrežjih, ne glede na zasebnost. Opomba: Tega dovoljenja ni mogoče uveljaviti v vseh družabnih omrežjih."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"pisanje v vaš družabni tok"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Aplikaciji omogoča prikaz objav vaših prijateljev v družabnih omrežjih. Previdno pri objavljanju informacij – aplikacija lahko s tem ustvari sporočila, za katera je videti, da jih pošiljajo prijatelji. Opomba: Tega dovoljenja ni mogoče uveljaviti v vseh družabnih omrežjih."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"branje dogodkov v koledarju in zaupnih podatkov"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Aplikaciji omogoča branje vseh dogodkov v koledarju, ki so shranjeni v tabličnem računalniku, vključno z dogodki prijateljev in sodelavcev. S tem lahko aplikacija objavi ali shrani podatke v koledarju, ne glede na njihovo zaupnost ali občutljivost."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Aplikaciji dovoljuje branje vseh dogodkov v koledarju, ki so shranjeni v televizorju, vključno z dogodki prijateljev in sodelavcev. S tem lahko aplikacija deli z drugimi ali shrani podatke v koledarju, ne glede na njihovo zaupnost ali občutljivost."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Aplikaciji omogoča spreminjanje nastavitev sinhronizacije za račun. S tem se lahko na primer omogoči sinhronizacijo aplikacije Ljudje z računom."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"branje statističnih podatkov sinhronizacije"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Aplikaciji omogoča branje statističnih podatkov o sinhronizaciji za račun, vključno z zgodovino dogodkov sinhronizacije in količino sinhroniziranih podatkov."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"branje izrazov, ki ste jih dodali v slovar"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Aplikaciji omogoča, da prebere vse besede, imena in besedne zveze, ki jih je uporabnik morda shranil v uporabniški slovar."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"dodajanje besed v uporabniški slovar"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Aplikaciji omogoča pisanje nove besede v uporabniški slovar."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"branje vsebine pomnilnika USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"branje vsebine kartice SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Aplikaciji omogoča branje vsebine shrambe USB."</string> diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml index d5ec38c..3cb5c51 100644 --- a/core/res/res/values-sq-rAL/strings.xml +++ b/core/res/res/values-sq-rAL/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"qasu te kontaktet e tua"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Vendndodhja"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"qasu te vendndodhja e kësaj pajisjeje"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informacionet e tua sociale"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Qasje e drejtpërdrejtë në informacionin e kontakteve të tua dhe lidhjeve sociale."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendari"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"qasu te kalendari yt"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"dërgo dhe shiko mesazhet SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Hapësira e ruajtjes"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"qasu te fotografitë, media dhe skedarët në pajisje"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Fjalori i përdoruesit"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Të lexojë ose të shkruajë fjalë në fjalorin e përdoruesit."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Faqeshënuesit dhe historiku"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Qasje të drejtpërdrejtë në faqet e ruajtura si dhe historinë e shfletuesit."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofoni"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"regjistro audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Lejon aplikacionin të modifikojë ditarin e telefonatave të tabletit tënd, përfshirë të dhëna rreth telefonatave hyrëse dhe dalëse. Aplikacione keqdashëse mund ta përdorin këtë leje për të fshirë ose modifikuar ditarin tënd të telefonatave."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Lejon aplikacionin të modifikojë ditarin e telefonatave të televizorit tënd, përfshirë të dhëna rreth telefonatave hyrëse dhe dalëse. Aplikacione keqdashëse mund ta përdorin këtë leje për të fshirë ose modifikuar ditarin tënd të telefonatave."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Lejon aplikacionin të modifikojë ditarin e telefonatave të telefonit tënd, përfshirë të dhënat rreth telefonatave hyrëse dhe dalëse. Aplikacionet keqdashëse mund ta përdorin këtë për të fshirë ose modifikuar ditarin tënd të telefonatave."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"lexo kartën tënde të kontakteve"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Lejon aplikacionin të lexojë informacionin personal të profilit të ruajtur në pajisjen tënde, siç është emri yt dhe informacioni i kontaktit. Kjo do të thotë se aplikacioni mund të të identifikojë dhe t\'u dërgojë të tjerëve informacionin e profilit tënd."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"modifiko kartën tënde të kontaktit"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Lejon aplikacionin të ndryshojë ose shtojë informacionin personal të profilit të ruajtur në pajisjen tënde, siç është emri yt dhe informacioni i kontaktit. Kjo do të thotë se aplikacioni mund të të identifikojë dhe t\'u dërgojë të tjerëve informacionin e profilit tënd."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"ndjesorët e trupit (si monitorimet e rrahjeve të zemrës)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Lejon aplikacionin të ketë qasje në të dhënat nga ndjesorë që monitorojnë gjendjen tënde fizike, siç janë rrahjet e zemrës."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"lexo transmetimin tënd social"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Lejon aplikacionin të ketë qasje dhe të sinkronizojë përditësime shoqërore nga ty dhe miqtë e tu. Ki kujdes kur ndan informacione - kjo e lejon aplikacionin të lexojë komunikime mes teje dhe miqve të tu në rrjetet sociale, pavarësisht privatësisë. Shënim. Kjo leje nuk mund të zbatohet në të gjitha rrjetet sociale."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"shkruaj në transmetimin tënd social"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Lejon aplikacionin të shfaqë përditësime shoqërore nga miqtë. Ki kujdes kur ndan informacione - kjo e lejon aplikacionin të prodhojë mesazhe që mund të duken se vijnë nga një mik. Shënim. Kjo leje mund të mos zbatohet në të gjithë rrjetet sociale."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"lexo ngjarjet kalendarike si dhe informacionin e privatësisë së tyre"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Lejon aplikacionin të lexojë të gjitha ngjarjet kalendarike të ruajtura në tabletin tënd, përfshirë ato të miqve ose kolegëve. Kjo mund ta lejojë aplikacionin të ndajë ose ruajë të dhënat e tua të kalendarit, pavarësisht privatësisë ose ndjeshmërisë së tyre."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Lejon aplikacionin të lexojë të gjitha ngjarjet kalendarike të ruajtura në televizorin tënd, përfshi ato të miqve apo kolegëve të tu. Kjo mund ta lejojë aplikacionin të ndajë ose ruajë të dhënat kalendarike, pavarësisht privatësisë ose ndjeshmërisë së tyre."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lejon një aplikacion të modifikojë cilësimet e sinkronizimit për një llogari. Për shembull, kjo mund të përdoret për të mundësuar sinkronizimin e aplikacionit \"Kontaktet\" me një llogari."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"lexo statistikat e sinkronizimit"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lejon një aplikacion të lexojë statistikat e sinkronizimit për një llogari, përfshirë historikun e ngjarjeve të sinkronizimit dhe se sa të dhëna janë sinkronizuar."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lexo termat që ke shtuar në fjalor"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Lejon aplikacionin të lexojë të gjitha fjalët, emrat dhe frazat që përdoruesi mund të ketë ruajtur në fjalorin e përdoruesit."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"shto fjalë në fjalorin e përcaktuar nga përdoruesi"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Lejon aplikacionin të shkruajë fjalë të reja në fjalorin e përdoruesit."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"lexo përmbajtjet e USB-së"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"lexo përmbajtjet e kartës tënde SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Lejon aplikacionin të lexojë përmbajtjet e USB-së tënde."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 3a158ae..d2106a7 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -231,18 +231,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"приступ контактима"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Локација"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"приступ локацији овог уређаја"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Информације са друштвених мрежа"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Директан приступ информацијама о контактима и друштвеним везама."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"приступ календару"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"слање и преглед SMS порука"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Складиште"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"приступ сликама, медијима и датотекама на уређају"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Кориснички речник"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Читање или писање речи у корисничком речнику."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Обележивачи и историја"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Директан приступ обележивачима и историји прегледача."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"снимање аудио снимака"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -333,16 +327,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Дозвољава апликацији да мења евиденцију позива на таблету, укључујући податке о долазним и одлазним позивима. Злонамерне апликације могу ово да користе да би брисале или мењале евиденцију позива."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Дозвољава апликацији да мења евиденцију позива на ТВ-у, укључујући податке о долазним и одлазним позивима. Злонамерне апликације могу ово да користе да би брисале или мењале евиденцију позива."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Дозвољава апликацији да мења евиденцију позива на телефону, укључујући податке о долазним и одлазним позивима. Злонамерне апликације могу ово да користе да би брисале или мењале евиденцију позива."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"читање ваше контакт картице"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Дозвољава апликацији да чита личне информације о профилу ускладиштене на уређају, као што су име и контакт информације. То значи да апликација може да вас идентификује и шаље другима информације о профилу."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"измена ваше контакт картице"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Дозвољава апликацији да мења или додаје нове личне информације о профилу ускладиштене на уређају, као што су име и контакт информације. То значи да апликација може да вас идентификује и шаље другима информације о профилу."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"телесни сензори (нпр. срчани монитор)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Дозвољава апликацији да приступа подацима са сензора који надгледају физичку кондицију, као што је број откуцаја срца."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"читање друштвеног стрима"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Дозвољава апликацији да приступа вашим друштвеним ажурирањима и друштвеним ажурирањима пријатеља и да их синхронизује. Будите опрезни када делите информације – ово омогућава апликацији да чита преписке између вас и пријатеља на друштвеним мрежама, без обзира на поверљивост. Напомена: Ова дозвола се можда не примењује на све друштвене мреже."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"писање у друштвени стрим"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Дозвољава апликацији да приказује друштвена ажурирања пријатеља. Будите опрезни када делите информације – ово омогућава апликацији да прави поруке које изгледају као да их шаљу пријатељи. Напомена: Ова дозвола се можда не примењује на свим друштвеним мрежама."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"читање календарских догађаја и поверљивих информација"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Дозвољава апликацији да чита све догађаје календара ускладиштене на таблету, укључујући догађаје пријатеља или колега. Ово може да омогући апликацији да дели или чува податке календара, без обзира на поверљивост или осетљивост."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Дозвољава апликацији да чита све догађаје из календара које чувате на ТВ-у, укључујући и оне који припадају пријатељима или колегама. То може да дозволи апликацији да дели или чува податке из календара, независно од поверљивости или осетљивости."</string> @@ -455,10 +441,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Дозвољава апликацији да мења подешавања синхронизације за налог. На пример, овако може да се омогући синхронизација апликације Људи са налогом."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"читање статистике о синхронизацији"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Дозвољава апликацији да чита статистику синхронизације за налог, укључујући историју синхронизованих догађаја и количину података који се синхронизују."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"читање термина које сте додали у речник"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Дозвољава апликацији да чита све речи, називе и фразе које је корисник можда сачувао у корисничком речнику."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"додавање речи у речник корисника"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Дозвољава апликацији да уписује нове речи у кориснички речник."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"читање садржаја USB меморије"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"читање садржаја SD картице"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Омогућава апликацији да чита садржај USB меморије."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 7f22323..082e9c0 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"få tillgång till dina kontakter"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Plats"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"komma åt enhetens platsuppgifter"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Dina sociala uppgifter"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direktåtkomst till information om dina kontakter och sociala kontakter."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"få tillgång till din kalender"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"skicka och visa sms"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"få åtkomst till foton, media och filer på din enhet"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Egen ordlista"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Läsa eller skriva ord i användarordlistan."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bokmärken och historik"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direktåtkomst till bokmärken och webbläsarhistorik."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"spela in ljud"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Tillåter att appen gör ändringar i pekdatorns samtalslista, inklusive i uppgifter om inkommande och utgående samtal. Skadliga program kan använda detta för att radera eller ändra din samtalslista."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Tillåter att appen gör ändringar i tv:ns samtalslista, inklusive i uppgifter om inkommande och utgående samtal. Skadliga appar kan använda detta för att rensa eller ändra din samtalslista."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Tillåter att appen gör ändringar i mobilens samtalslista, inklusive i uppgifter om inkommande och utgående samtal. Skadliga program kan använda detta för att radera eller ändra din samtalslista."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"läsa ditt eget kontaktkort"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Tillåter att appen läser personliga profiluppgifter som sparats på din enhet, t.ex. ditt namn och kontaktuppgifter. Det innebär att appen kan identifiera dig och skicka profiluppgifter till andra."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"ändra ditt eget kontaktkort"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Tillåter att appen ändrar eller lägger till personliga profiluppgifter som sparats på din enhet, till exempel ditt namn och dina kontaktuppgifter. Det innebär att appen kan identifiera dig och skicka profiluppgifter till andra."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"kroppssens. (för hjärtat m.m.)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Ger appen åtkomst till information från sensorer om ditt fysiska tillstånd, till exempel din puls."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"läs mitt sociala flöde"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Tillåter att appen kommer åt och synkroniserar sociala uppdateringar från dig och dina vänner. Var försiktig när du delar information – med den här behörigheten tillåts appen att läsa kommunikation mellan dig och dina vänner på sociala nätverk oavsett sekretessnivå. Observera att den här behörigheten kanske inte är tillämplig på alla sociala nätverk."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"skriv till mitt sociala flöde"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Tillåter att appen visar sociala uppdateringar från dina vänner. Var försiktig när du delar information – med den här behörigheten tillåts appen att generera meddelanden som kan se ut att komma från en vän. Observera att den här behörigheten kanske inte är tillämplig på alla sociala nätverk."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"läsa kalenderuppgifter plus konfidentiell information"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Tillåter att appen läser alla kalenderuppgifter som sparats på surfplattan, inklusive dina vänners eller kollegors uppgifter. Med den här behörigheten kan appen tillåtas att dela eller spara kalenderuppgifter även om de är sekretessbelagda eller känsliga."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Tillåter att appen läser alla kalenderhändelser som sparats på tv:n, bland annat de som tillhör vänner eller kollegor. På så sätt kan appen dela eller spara dina kalenderhändelser oavsett sekretess eller känslighet."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tillåter att appen ändrar synkroniseringsinställningarna för ett konto. Detta kan användas till exempel för att synkronisera appen Personer med ett konto."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"läsa synkroniseringsstatistik"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tillåter att appen läser synkroniseringsstatistik för ett konto, inklusive historiken för synkroniseringshändelser och mängden data som synkroniseras."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"läsa termer som du har lagt till i ordlistan"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Tillåter att appen läser alla ord, namn och fraser som användaren har sparat i ordlistan."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"lägga till ord i den användardefinierade ordlistan"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Tillåter att appen anger nya ord i användarordlistan."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"läsa innehåll på USB-enheten"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"läsa innehållet på SD-kortet"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Låter appen läsa USB-innehåll."</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 20a750e..5b1bd48 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"fikia anwani zako"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Mahali"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"fikia mahali kilipo kifaa hiki"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Taarifa yako ya kijamii"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kufikia moja kwa moja taarifa kuhusu anwani zako na miunganisho ya kijamii."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"fikia kalenda yako"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"tuma na uangalie ujumbe wa SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Hifadhi"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"fikia picha, maudhui na faili kwenye kifaa chako"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamusi ya Mtumiaji"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kusoma au kuandika maneno katika kamusi ya mtumiaji."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Alamisho na Historia"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Kufikia, moja kwa moja, alamisho na historia ya kivinjari."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Kipokea sauti"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"rekodi sauti"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Huruhusu programu kurekebisha rajisi ya kompyuta kibao yako, ikiwa ni pamoja na simu zinazoingia na kutoka. Huenda programu hasidi zikatumia hii ili kufuta au kurekebisha rajisi ya simu yako."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Huruhusu programu kurekebisha rajisi ya runinga yako, ikiwa ni pamoja na data ya simu zinazoingia na kutoka. Huenda programu hasidi zikatumia hii ili kufuta au kurekebisha rajisi ya simu yako."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Huruhusu programu kurekebisha rajisi ya simu yako, ikiwa ni pamoja na simu zinazoingia na kutoka. Huenda programu hasidi zikatumia hii ili kufuta au kurekebisha rajisi ya simu yako."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"kusoma kadi yako ya mawasiliano"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Inaruhusu programu kusoma taarifa ya kibinafsi ya maelezo mafupi yaliyohifadhiwa kwenye kifaa chako, kama vile jina lako na taarifa ya anwani. Hii inamaanisha kuwa programu inaweza kukutambua na inaweza kuwatumia wengine taarifa yako ya maelezo mafupi."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"rekebisha kadi yako mwenyewe ya mawasiliano"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Inaruhusu programu kubadilisha au kuongeza taarifa ya maelezo mafupi ya kibinafsi yaliyohifadhiwa kwenye kifaa chako, kama vile jina lako na taarifa ya anwani. Hii inamaanisha kuwa programu inaweza kukutambua na inaweza kutuma taarifa ya maelezo yako mafupi kwa wengine."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"vipima hali ya mwili (kama mpigo wa moyo)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Huruhusu programu kufikia data kutoka vihisi vinavyofuatilia hali yako ya kimwili, kama vile mapigo ya moyo."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"soma mipasho yako wa kijamii"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Huruhusu programu kufikia na kupatanisha masasisho ya kijamii kutoka kwa marafiki zako. Kuwa makini wakati unashiriki taarifa -- hii huruhusu programu kusoma mawasiliano kati yako na marafiki zako kwenye mitandao jamii, bila kujali usiri. Kumbuka: idhini hii haiwezi kutekelezwa kwenye mitandao yote ya jamii."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"kuandikia mipasho yako wa kijamii"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Huruhusu programu kuonyesha masasisho ya kijamii kutoka kwa marafiki zako. Kuwa makini wakati unashiriki taarifa -- hii inaruhusu programu kutoa ujumbe unaoweza kuonekana kuwa unatoka kwa rafiki. Kumbuka: idhini hii huenda usitekelezwe kwenye mitandao yote ya jamii."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"soma matukio ya kalenda pamoja na maelezo ya siri"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Inaruhusu programu kusoma matukio yote ya kalenda yaliohifadhiwa kwenye kompyuta kibao yako, yakijumuisha yale ya marafiki au wafanyakazi wenza. Hii inaweza kuruhusu programu kushiriki au kuhifadhi data yako ya kaelnda, bila kujali usiri au unyeti."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Huruhusu programu kusoma matukio yote ya kalenda yaliyohifadhiwa kwenye runinga yako, ikiwa ni pamoja na yale ya marafiki au wafanyakazi wenza. Hii inaweza kuruhusu programu kushiriki au kuhifadhi data yako ya kelenda, licha ya usiri au unyeti."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Inaruhusu programu kurekebisha mipangalio ya upatanishi wa akaunti. Kwa mfano, hii inaweza kuwezesha programu ya upatanishi wa Watu na akaunti."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"kusoma takwimu za usawazishaji"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Inaruhusu programu kusoma takwimu za upatanishi za akaunti, ikiwa ni pamoja na historia ya matukio ya upatanishi na kiasi cha data kimepatanishwa."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"soma maneno uliyoongeza kwenye kamusi"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Inaruhusu programu kusoma maneno, majina na misemo yote ambayo mtumiaji alihifadhi katika kamusi ya mtumiaji."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"ongeza maneno katika kamusi ya mtumiaji iliyofafanuliwa"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Inaruhusu programu kuandika maneno mapya katika kamusi ya mtumiaji."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"kusoma maudhui yaliyo kwenye hifadhi yako ya USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"soma maudhui ya kadi yako ya SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Huruhusu programu kusoma maudhui ya hifadhi ya USB."</string> diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml index 1acab80..d1cb5e7 100644 --- a/core/res/res/values-ta-rIN/strings.xml +++ b/core/res/res/values-ta-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"தொடர்புகளை அணுகும்"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"இருப்பிடம்"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"சாதனத்தின் இருப்பிடத்தை அணுகும்"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"உங்கள் சமூகத் தகவல்"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"உங்கள் தொடர்புகள் மற்றும் சமூக இணைப்புகள் குறித்த தகவலுக்கான நேரடி அணுகல்."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"கேலெண்டர்"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"கேலெண்டரை அணுகும்"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS செய்திகளை அனுப்பும் மற்றும் பார்க்கும்"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"சேமிப்பிடம்"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"உங்கள் சாதனத்தில் உள்ள படங்கள், மீடியா மற்றும் கோப்புகளை அணுகும்"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"பயனர் அகராதி"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"பயனர் அகராதியில் சொற்களைப் படிக்கும் அல்லது எழுதும்."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"புத்தகக்குறிகள் மற்றும் வரலாறு"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"புத்தகக்குறிகள் மற்றும் உலாவியின் வரலாற்றுக்கான நேரடி அணுகல்."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"மைக்ரோஃபோன்"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ஆடியோவைப் பதிவுசெய்யும்"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"கேமரா"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"உள்வரும் மற்றும் வெளிச்செல்லும் அழைப்புகள் குறித்த தகவல் உள்பட உங்கள் டேப்லெட்டின் அழைப்புப் பதிவைத் திருத்துவதற்குப் பயன்பாட்டை அனுமதிக்கிறது. உங்கள் அழைப்பின் பதிவை அழிக்க அல்லது திருத்த தீங்கு விளைவிக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"உள்வரும் மற்றும் வெளிச்செல்லும் அழைப்புகள் குறித்த தகவல் உள்ளிட்ட உங்கள் டிவியின் அழைப்பு பதிவைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. உங்கள் அழைப்பு பதிவை அழிக்க அல்லது திருத்த தீங்கு விளைவிக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"உள்வரும் மற்றும் வெளிச்செல்லும் அழைப்புகள் குறித்த தகவல் உள்பட உங்கள் மொபைல் அழைப்புப் பதிவைத் திருத்துவதற்குப் பயன்பாட்டை அனுமதிக்கிறது. உங்கள் அழைப்பின் பதிவை அழிக்க அல்லது திருத்த தீங்கு விளைவிக்கும் பயன்பாடுகள் இதைப் பயன்படுத்தலாம்."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"உங்கள் சொந்த தொடர்பு அட்டையைப் படித்தல்"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"உங்கள் பெயர் மற்றும் தொடர்பு தகவல் போன்ற, உங்கள் சாதனத்தில் சேமிக்கப்பட்ட தனிப்பட்ட சுயவிவரத் தகலைப் படிக்கப் பயன்பாட்டை அனுமதிக்கிறது, இதற்கு அர்த்தம், பயன்பாடு உங்களைக் அடையாளங்காணலாம் மற்றும் உங்கள் சுயவிவரத் தகவலைப் பிறருக்கு அனுப்பலாம் என்பதாகும்."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"உங்கள் சொந்த தொடர்பு அட்டையை மாற்றுதல்"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"உங்கள் சாதனத்தில் சேமிக்கப்பட்ட உங்கள் பெயர் மற்றும் தொடர்பு தகவல் போன்ற தனிப்பட்ட சுயவிவரத் தகவலை மாற்ற அல்லது சேர்க்க பயன்பாட்டை அனுமதிக்கிறது. அதாவது பயன்பாடு உங்களை அடையாளப்படுத்தலாம், உங்கள் சுயவிவரத் தகவலை மற்றவர்களுக்கு அனுப்பலாம்."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"உடல் உணர்விகள் (இதயத்துடிப்பு கண்காணித்தல் போன்றவை)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"உங்கள் இதயத்துடிப்பு விகிதம் போன்ற உங்கள் உடல்நிலையைக் கண்காணிக்கும் உணர்விகளில் இருந்து தரவை அணுக பயன்பாடுகளை அனுமதிக்கும்."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"எனது சமூக ஸ்ட்ரீமைப் படித்தல்"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"உங்களிடமிருந்தும், உங்கள் நண்பர்களிடமிருந்தும் வரும் சமூகப் புதுப்பிப்புகளை அணுகி ஒத்திசைக்கப் பயன்பாட்டை அனுமதிக்கிறது. தகவலைப் பகிரும்போது எச்சரிக்கையாக இருக்கவும் -- ரகசியத்தன்மையைப் பொருட்படுத்தாமல், சமூக நெட்வொர்க்குகளில் உங்களுக்கும், உங்கள் நண்பர்களுக்கிடையேயும் உள்ள தொடர்புகளைப் படிக்க பயன்பாட்டை அனுமதிக்கிறது. குறிப்பு: இந்த அனுமதி எல்லா சமூக நெட்வொர்க்குகளிலும் செயல்படுத்தப்படாமல் இருக்கலாம்."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"உங்கள் சமூக ஸ்ட்ரீமில் எழுதுக"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"உங்கள் நண்பர்களிடமிருந்து வரும் சமூக அறிவிப்புகளைக் காண்பிக்க பயன்பாட்டை அனுமதிக்கிறது. தகவலைப் பகிர்வதில் கவனமாக இருங்கள் -- நண்பரிடமிருந்து வரும் செய்திகளை உருவாக்க பயன்பாட்டை அனுமதிக்கிறது. குறிப்பு: இந்த அனுமதி எல்லா சமூக நெட்வொர்க்குகளிலும் செயல்படுத்தப்படாமல் இருக்கலாம்."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"கேலெண்டர் நிகழ்வுகளையும், ரகசிய தகவலையும் படித்தல்"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"நண்பர்கள் அல்லது சகப் பணியாளர்கள் ஆகியோரின் நிகழ்வுகளையும் சேர்த்து, உங்கள் டேப்லெட்டில் சேமிக்கப்பட்ட எல்லா கேலெண்டர் நிகழ்வுகளையும் படிக்க பயன்பாட்டை அனுமதிக்கிறது. உங்கள் கேலெண்டர் தரவின் ரகசியத்தன்மை அல்லது முக்கியத்துவத்தைப் பொருட்படுத்தாமல் அதனைப் பகிர அல்லது சேமிக்க பயன்பாட்டை இது அனுமதிக்கிறது."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"நண்பர்கள் அல்லது சகப் பணியாளர்களின் நிகழ்வுகள் உள்ளிட்ட உங்கள் டிவியில் சேமிக்கப்பட்ட எல்லா கேலெண்டர் நிகழ்வுகளையும் படிக்க, பயன்பாட்டை அனுமதிக்கிறது. தரவின் ரகசியத்தன்மை அல்லது அதன் முக்கியத்துவத்தைப் பொருட்படுத்தாமல், உங்கள் கேலெண்டர் தரவைப் பகிர அல்லது சேமிக்க, இது பயன்பாட்டை அனுமதிக்கலாம்."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"கணக்கிற்கான ஒத்திசைவு அமைப்புகளைத் திருத்த பயன்பாட்டை அனுமதிக்கிறது. எடுத்துக்காட்டாக, பீப்பிள் பயன்பாட்டைக் கணக்குடன் ஒத்திசைவை இயக்குவதற்கு இது பயன்படுத்தப்படலாம்."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ஒத்திசைவு புள்ளிவிவரங்களைப் படித்தல்"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"நிகழ்வுகள் ஒத்திசைவின் வரலாறு மற்றும் ஒத்திசைக்கப்பட்ட தரவு எவ்வளவு ஆகியன உட்பட, கணக்கிற்கான ஒத்திசைவு புள்ளிவிவரங்களைப் படிக்க பயன்பாட்டை அனுமதிக்கிறது."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"அகராதியில் நீங்கள் சேர்த்த சொற்களைப் படித்தல்"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"பயனர் அகராதியில் பயனர் சேமித்திருக்கக்கூடிய எல்லா வார்த்தைகள், பெயர்கள் மற்றும் சொற்றொடர்களைப் படிக்க பயன்பாட்டை அனுமதிக்கிறது."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"பயனர் வரையறுத்த அகராதியில் வார்த்தைகளைச் சேர்த்தல்"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"பயனர் அகராதியில் புதிய சொற்களை எழுத, பயன்பாட்டை அனுமதிக்கிறது."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"உங்கள் USB சேமிப்பிடத்தின் உள்ளடக்கங்களைப் படித்தல்"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"உங்கள் SD கார்டின் உள்ளடக்கங்களைப் படித்தல்"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"உங்கள் USB சேமிப்பிடத்தின் உள்ளடக்கங்களைப் படிக்கப் பயன்பாட்டை அனுமதிக்கிறது."</string> @@ -644,7 +626,7 @@ <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"வாழ்வுத் துணை"</string> <string name="relationTypeFather" msgid="5228034687082050725">"தந்தை"</string> <string name="relationTypeFriend" msgid="7313106762483391262">"நண்பர்"</string> - <string name="relationTypeManager" msgid="6365677861610137895">"நிர்வாகி"</string> + <string name="relationTypeManager" msgid="6365677861610137895">"மேலாளர்"</string> <string name="relationTypeMother" msgid="4578571352962758304">"தாய்"</string> <string name="relationTypeParent" msgid="4755635567562925226">"பெற்றோர்"</string> <string name="relationTypePartner" msgid="7266490285120262781">"கூட்டாளர்"</string> diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml index 69b2465..364e21c 100644 --- a/core/res/res/values-te-rIN/strings.xml +++ b/core/res/res/values-te-rIN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"మీ పరిచయాలను ప్రాప్యత చేస్తుంది"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"స్థానం"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"ఈ పరికర స్థానాన్ని ప్రాప్యత చేయడానికి అనుమతి"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"మీ సామాజిక సమాచారం"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"మీ పరిచయాలు మరియు సామాజిక బాంధవ్యాలకు సంబంధించిన సమాచారానికి ప్రత్యక్ష ప్రాప్యత."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"క్యాలెండర్"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"మీ క్యాలెండర్ను ప్రాప్యత చేస్తుంది"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS సందేశాలను పంపుతుంది మరియు వీక్షిస్తుంది"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"నిల్వ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"మీ పరికరంలోని ఫోటోలు, మీడియా మరియు ఫైల్లను ప్రాప్యత చేస్తుంది"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"వినియోగదారు నిఘంటువు"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"వినియోగదారు నిఘంటువులో పదాలు చదువుతుంది లేదా వ్రాస్తుంది."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"బుక్మార్క్లు మరియు చరిత్ర"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"బుక్మార్క్లు మరియు బ్రౌజర్ చరిత్రకు ప్రత్యక్ష ప్రాప్యత."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"మైక్రోఫోన్"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ఆడియోను రికార్డ్ చేస్తుంది"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"కెమెరా"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ఇన్కమింగ్ మరియు అవుట్గోయింగ్ కాల్ల గురించిన డేటాతో సహా మీ టాబ్లెట్ యొక్క కాల్ లాగ్ను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. హానికరమైన అనువర్తనాలు మీ కాల్ లాగ్ను ఎరేజ్ చేయడానికి లేదా సవరించడానికి దీన్ని ఉపయోగించవచ్చు."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"ఇన్కమింగ్ మరియు అవుట్గోయింగ్ కాల్లకు సంబంధించిన డేటాతో సహా మీ టీవీ కాల్ లాగ్ను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. హానికరమైన అనువర్తనాలు మీ కాల్ లాగ్ను తీసివేయడానికి లేదా సవరించడానికి దీన్ని ఉపయోగించవచ్చు."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ఇన్కమింగ్ మరియు అవుట్గోయింగ్ కాల్ల గురించిన డేటాతో సహా మీ ఫోన్ యొక్క కాల్ లాగ్ను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. హానికరమైన అనువర్తనాలు మీ కాల్ లాగ్ను ఎరేజ్ చేయడానికి లేదా సవరించడానికి దీన్ని ఉపయోగించవచ్చు."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"మీ స్వంత సంప్రదింపు కార్డును చదవడం"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"మీ పరికరంలో నిల్వ చేయబడిన వ్యక్తిగత ప్రొఫైల్ సమాచారాన్ని అనగా మీ పేరు మరియు సంప్రదింపు సమాచారం వంటివి చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది. అనువర్తనం మిమ్మల్ని గుర్తించగలదని మరియు మీ ప్రొఫైల్ సమాచారాన్ని ఇతరులకు పంపించగలదని దీని అర్థం."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"మీ స్వంత సంప్రదింపు కార్డును సవరించడం"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"మీ పరికరంలో నిల్వ చేయబడిన వ్యక్తిగత ప్రొఫైల్ సమాచారాన్ని అనగా మీ పేరు మరియు సంప్రదింపు సమాచారం వంటివి మార్చడానికి లేదా జోడించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. అనువర్తనం మిమ్మల్ని గుర్తించగలదని మరియు మీ ప్రొఫైల్ సమాచారాన్ని ఇతరులకు పంపగలదని దీని అర్థం."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"శరీర సెన్సార్లు (హృదయ స్పందన మానిటర్లు వంటివి)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"మీ శారీరక పరిస్థితిని అనగా మీ గుండె స్పందన రేటు వంటి వాటిని పర్యవేక్షించే సెన్సార్ల నుండి డేటాను ప్రాప్యత చేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"మీ సామాజిక ప్రసారాన్ని చదవడం"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"మీరు మరియు మీ స్నేహితులు సమర్పించిన తాజా సామాజిక విషయాలను ప్రాప్యత చేయడానికి మరియు సమకాలీకరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. సమాచారాన్ని భాగస్వామ్యం చేస్తున్నప్పుడు జాగ్రత్తగా ఉండండి -- ఇది గోప్యతతో సంబంధం లేకుండా, మీ మధ్య మరియు మీ స్నేహితుల మధ్య జరిగిన కమ్యూనికేషన్లను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది. గమనిక: ఈ అనుమతి అన్ని సామాజిక నెట్వర్క్ల్లో అమలు చేయబడకపోవచ్చు."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"మీ సామాజిక ప్రసారానికి వ్రాయడం"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"మీ స్నేహితుల నుండి తాజా సామాజిక విషయాలను ప్రదర్శించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. సమాచారాన్ని భాగస్వామ్యం చేసేటప్పుడు జాగ్రత్తగా ఉండండి -- ఇది మీ స్నేహితుల నుండి వచ్చినట్లుగా కనిపించే రీతిలో సందేశాలను రూపొందించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. గమనిక: ఈ అనుమతి అన్ని సామాజిక నెట్వర్క్ల్లో అమలు చేయబడకపోవచ్చు."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"క్యాలెండర్ ఈవెంట్లతో పాటు గోప్యమైన సమాచారాన్ని చదవడం"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"స్నేహితులు లేదా సహోద్యోగులకు సంబంధించిన ఈవెంట్లతో సహా మీ టాబ్లెట్లో నిల్వ చేయబడిన అన్ని క్యాలెండర్ ఈవెంట్లను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది. ఇది గోప్యత లేదా తీవ్రతతో సంబంధం లేకుండా మీ క్యాలెండర్ డేటాను భాగస్వామ్యం చేయడానికి లేదా సేవ్ చేయడానికి అనువర్తనాన్ని అనుమతించవచ్చు."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"స్నేహితులు లేదా సహోద్యోగులకు సంబంధించిన ఈవెంట్లతో సహా మీ టీవీలో నిల్వ చేసిన అన్ని క్యాలెండర్ ఈవెంట్లను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది. ఇది గోప్యత లేదా తీవ్రతతో సంబంధం లేకుండా మీ క్యాలెండర్ డేటాను భాగస్వామ్యం చేయడానికి లేదా సేవ్ చేయడానికి అనువర్తనాన్ని అనుమతించవచ్చు."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ఖాతా యొక్క సమకాలీకరణ సెట్టింగ్లను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. ఉదాహరణకు, ఇది ఒక ఖాతాతో వ్యక్తుల అనువర్తనం యొక్క సమకాలీకరణను ప్రారంభించడానికి ఉపయోగించబడవచ్చు."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"సమకాలీకరణ గణాంకాలను చదవడం"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ఖాతా యొక్క సమకాలీకరణ గణాంకాలను అలాగే సమకాలీకరణ ఈవెంట్ల చరిత్రను మరియు ఎంత డేటా సమకాలీకరించబడింది అనేవాటిని చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"మీరు నిఘంటువుకు జోడించిన పదాలను చదవడం"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"వినియోగదారు నిఘంటువులో వినియోగదారు నిల్వ చేసిన అన్ని పదాలు, పేర్లు మరియు పదబంధాలను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"వినియోగదారు-నిర్వచిత నిఘంటువుకు పదాలను జోడించడం"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"వినియోగదారు నిఘంటువులోకి కొత్త పదాలను వ్రాయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"మీ USB నిల్వ యొక్క కంటెంట్లను చదవడం"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"మీ SD కార్డు యొక్క కంటెంట్లను చదవడం"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"మీ USB నిల్వలోని కంటెంట్లను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 0f17334..147763e 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"เข้าถึงรายชื่อติดต่อ"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ตำแหน่ง"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"เข้าถึงตำแหน่งของอุปกรณ์นี้"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ข้อมูลทางสังคมของคุณ"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"เข้าถึงข้อมูลเกี่ยวกับผู้ติดต่อและเครือข่ายสังคมของคุณโดยตรง"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ปฏิทิน"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"เข้าถึงปฏิทิน"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"ส่งและดูข้อความ SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"พื้นที่เก็บข้อมูล"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"เข้าถึงรูปภาพ สื่อ และไฟล์บนอุปกรณ์ของคุณ"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"พจนานุกรมผู้ใช้"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"อ่านหรือเขียนคำในพจนานุกรมผู้ใช้"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"บุ๊กมาร์กและประวัติ"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"เข้าถึงบุ๊กมาร์กและประวัติของเบราว์เซอร์โดยตรง"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ไมโครโฟน"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"บันทึกเสียง"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"กล้องถ่ายรูป"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"อนุญาตให้แอปแก้ไขประวัติการโทรจากแท็บเล็ตของคุณ รวมถึงข้อมูลเกี่ยวกับสายเรียกเข้าและการโทรออก แอปที่เป็นอันตรายอาจใช้สิ่งนี้เพื่อลบหรือแก้ไขประวัติการโทรของคุณ"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"อนุญาตให้แอปแก้ไขประวัติการโทรของทีวี รวมถึงข้อมูลเกี่ยวกับสายเรียกเข้าและโทรออก แอปที่เป็นอันตรายอาจใช้สิทธิ์นี้เพื่อลบหรือแก้ไขประวัติการโทรได้"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"อนุญาตให้แอปแก้ไขประวัติการโทรจากโทรศัพท์ของคุณ รวมถึงข้อมูลเกี่ยวกับสายเรียกเข้าและการโทรออก แอปที่เป็นอันตรายอาจใช้สิ่งนี้เพื่อลบหรือแก้ไขประวัติการโทรของคุณ"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"อ่านบัตรผู้ติดต่อของคุณเอง"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"อนุญาตให้แอปพลิเคชันอ่านข้อมูลส่วนตัวในโปรไฟล์ที่จัดเก็บไว้ในอุปกรณ์ของคุณ เช่น ชื่อและข้อมูลติดต่อของคุณ ซึ่งหมายความว่าแอปพลิเคชันสามารถระบุตัวคุณและอาจส่งข้อมูลโปรไฟล์ของคุณให้ผู้อื่น"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"แก้ไขบัตรผู้ติดต่อของคุณเอง"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"อนุญาตให้แอปพลิเคชันเปลี่ยนแปลงหรือเพิ่มข้อมูลโปรไฟล์ส่วนตัวที่จัดเก็บไว้บนอุปกรณ์ของคุณ เช่น ชื่อและข้อมูลติดต่อ ซึ่งหมายความว่าแอปพลิเคชันจะสามารถระบุตัวตนของคุณและส่งข้อมูลโปรไฟล์ของคุณให้แก่ผู้อื่นได้"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"เซ็นเซอร์ร่างกาย (เช่น วัดอัตราการเต้นของหัวใจ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"อนุญาตให้แอปเข้าถึงข้อมูลจากเซ็นเซอร์ที่ตรวจสอบสภาพทางกายภาพ เช่น อัตราการเต้นของหัวใจ"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"อ่านสตรีมเครือข่ายสังคม"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"อนุญาตให้แอปพลิเคชันเข้าถึงและซิงค์การอัปเดตทางสังคมจากคุณและเพื่อน โปรดแชร์ข้อมูลอย่างระมัดระวังเนื่องจากการอนุญาตนี้ทำให้แอปพลิเคชันสามารถอ่านการติดต่อระหว่างคุณและเพื่อนในเครือข่ายสังคมได้ ไม่ว่าจะมีการรักษาข้อมูลที่เป็นความลับแบบใดก็ตาม หมายเหตุ: การอนุญาตนี้อาจไม่สามารถใช้งานได้กับทุกเครือข่ายสังคม"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"เขียนในสตรีมเครือข่ายสังคม"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"อนุญาตให้แอปพลิเคชันแสดงการอัปเดตทางสังคมจากเพื่อนของคุณ โปรดแชร์ข้อมูลอย่างระมัดระวังเนื่องจากการอนุญาตนี้ทำให้แอปพลิเคชันสามารถสร้างข้อความที่ดูเหมือนมาจากเพื่อนได้ หมายเหตุ: การอนุญาตนี้อาจไม่สามารถใช้ได้กับทุกเครือข่ายสังคม"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"อ่านกิจกรรมบนปฏิทินรวมถึงข้อมูลที่เป็นความลับ"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"อนุญาตให้แอปพลิเคชันอ่านกิจกรรมในปฏิทินทั้งหมดที่จัดเก็บไว้ในแท็บเล็ตของคุณ ซึ่งรวมถึงกิจกรรมของเพื่อนหรือเพื่อนร่วมงานด้วย ซึ่งอาจทำให้แอปพลิเคชันสามารถแชร์หรือบันทึกข้อมูลในปฏิทินของคุณได้ไม่ว่าจะมีการรักษาข้อมูลที่เป็นความลับหรือหรือข้อมูลที่อ่อนไหวแบบใดก็ตาม"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"อนุญาตให้แอปอ่านกิจกรรมทั้งหมดในปฏิทินที่เก็บไว้ในทีวี รวมถึงกิจกรรมของเพื่อนๆ หรือเพื่อนร่วมงาน โดยอาจอนุญาตให้แอปแชร์หรือบันทึกข้อมูลปฏิทิน แม้ว่าจะเป็นข้อมูลลับหรือข้อมูลละเอียดอ่อน"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"อนุญาตให้แอปพลิเคชันเปลี่ยนแปลงการตั้งค่าการซิงค์ของบัญชี ตัวอย่างเช่น สามารถใช้การอนุญาตเปิดใช้งานการซิงค์แอปพลิเคชัน People กับบัญชี"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"อ่านสถิติการซิงค์"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"อนุญาตให้แอปพลิเคชันอ่านสถานะการซิงค์ของบัญชี ซึ่งรวมถึงประวัติกิจกรรมการซิงค์และปริมาณข้อมูลที่ซิงค์"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"อ่านคำที่คุณเพิ่มลงในพจนานุกรม"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"อนุญาตให้แอปพลิเคชันอ่านคำ ชื่อ และวลีทั้งหมดที่ผู้ใช้ได้จัดเก็บไว้ในพจนานุกรมผู้ใช้"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"เพิ่มคำลงในพจนานุกรมที่ผู้ใช้กำหนด"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"อนุญาตให้แอปพลิเคชันเขียนคำใหม่ลงในพจนานุกรมผู้ใช้"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"อ่านเนื้อหาในที่จัดเก็บ USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"อ่านเนื้อหาในการ์ด SD ของคุณ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"อนุญาตให้แอปอ่านเนื้อหาในที่จัดเก็บข้อมูล USB"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 7c91b09..152e9e4 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ina-access ang iyong mga contact"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasyon"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"i-access ang lokasyon ng device na ito"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ang iyong social na impormasyon"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direktang access sa impormasyon tungkol sa iyong mga contact at social na koneksyon."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendaryo"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ina-access ang iyong kalendaryo"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"magpadala at tumingin ng mga mensaheng SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Imbakan"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"mag-access ng mga larawan, media at file sa iyong device"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diksyunaryo ng User"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Magbasa o magsulat ng mga salita sa diksyunaryo ng user"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Mga Bookmark at Kasaysayan"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direktang access sa mga bookmark at kasaysayan ng browser."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikropono"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"nagre-record ng audio"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Binibigyan-daan ang app na baguhin ang log ng tawag ng iyong tablet, kabilang ang data tungkol sa mga paparating at papalabas na tawag. Maaari itong gamitin ng nakakahamak na apps upang burahin o baguhin ang iyong log ng tawag."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Binibigyan-daan ang app na baguhin ang log ng tawag ng iyong TV, kabilang ang data tungkol sa mga paparating at papalabas na tawag. Maaari itong gamitin ng mga nakakahamak na app upang burahin o baguhin ang iyong log ng tawag."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Binibigyan-daan ang app na baguhin ang log ng tawag ng iyong telepono, kabilang ang data tungkol sa mga paparating at papalabas na tawag. Maaari itong gamitin ng nakakahamak na apps upang burahin o baguhin ang iyong log ng tawag."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"basahin sarili mo contact card"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Pinapayagan ang app na basahin ang personal na impormasyon ng profile na naka-imbak sa iyong device, gaya ng iyong pangalan at impormasyon sa pakikipag-ugnay. Nangangahulugan ito na makikilala ka ng app at maaari nitong ipadala ang impormasyon ng iyong profile sa iba."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"baguhin sarili mo contact card"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Pinapayagan ang app na baguhin ang o magdagdag sa personal na impormasyon ng profile na naka-imbak sa iyong device, gaya ng iyong pangalan at impormasyon sa pakikipag-ugnay. Nangangahulugan ito na makikilala ka ng app at maaari nitong ipadala ang impormasyon ng iyong profile sa iba."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"mga sensor sa katawan (gaya ng mga heart rate monitor)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Pinapayagan ang app na i-access ang data mula sa mga sensor na sumusubaybay sa iyong pisikal na kundisyon, tulad ng iyong heart rate."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"basahin ang iyong social stream"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Pinapayagan ang app na mag-access at mag-sync ng mga social na update mula sa iyo at sa iyong mga kaibigan. Maging maingat kapag nagbabahagi ng impormasyon -- pinapayagan nito ang app na magbasa ng mga pakikipag-ugnayan sa pagitan mo at ng iyong mga kaibigan sa mga social network, ano pa man ang katayuan sa pagiging kumpedensyal nito. Tandaan: hindi maaaring ipatupad ang pahintulot na ito sa lahat ng social network."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"magsulat sa iyong social stream"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Pinapayagan ang app na magpakita ng mga social na update mula sa iyong mga kaibigan. Maging maingat kapag nagbabahagi ng impormasyon -- pinapayagan nito ang app na bumuo ng mga mensaheng maaaring lumitaw na mula sa isang kaibigan. Tandaan: hindi maaaring ipatupad ang pahintulot na ito sa lahat ng social network."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"magbasa ng mga kaganapan sa kalendaryo kasama ang kumpedensyal na impormasyon"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Pinapayagan ang app na basahin ang lahat ng kaganapan sa kalendaryo na naka-imbak sa iyong tablet, kabilang iyong sa mga kaibigan o katrabaho. Maaari nitong payagan ang app na ibahagi o i-save ang data ng iyong kalendaryo, ano pa man ang katayuan ng pagiging kumpedensyal o sensitibo nito."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Nagbibigay-daan sa app na mabasa ang lahat ng mga kaganapan sa kalendaryo na nakaimbak sa iyong TV, kabilang ang mga kaganapan mula sa iyong mga kaibigan o katrabaho. Maaaring payagan nito ang app na magbahagi o mag-save ng iyong data ng kalendaryo kahit na kumpidensyal o sensitibo ito."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Pinapayagan ang isang app na baguhin ang mga setting ng pag-sync para sa isang account. Halimbawa, magagamit ito upang paganahin ang pag-sync ng app na Mga Tao sa isang account."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"basahin ang mga istatistika ng sync"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Pinapayagan ang app na basahin ang mga istatistika ng pag-sync para sa isang account, kabilang ang kasaysayan ng mga kaganapan sa pag-sync at kung ilang data ang naka-sync."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"basahin ang mga terminong idinagdag mo sa diksyunaryo"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Pinapayagan ang app na basahin ang lahat ng salita, pangalan at parirala na maaaring inimbak ng user sa diksyunaryo ng user."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"magdagdag ng mga salita sa diksyunaryong tinukoy ng user"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Pinapayagan ang app na magsulat ng mga bagong salita sa diksyunaryo ng user."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"basa nilalaman USB storage mo"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"basahin ang mga nilalaman ng iyong SD card"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Pinapayagan ang app na basahin ang mga nilalaman ng iyong USB storage."</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 192adb9..d9c587c 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"kişilerinize erişme"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Konum"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"bu cihazın konumuna erişme"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosyal bilgileriniz"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kişileriniz ve sosyal bağlantılarınızla ilgili bilgilere doğrudan erişim."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Takvim"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"takviminize erişme"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS iletileri gönderme ve görüntüleme"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Depolama"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"cihazınızdaki fotoğraflara, medyaya ve dosyalara erişme"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kullanıcı Sözlüğü"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kullanıcı sözlüğündeki kelimeleri okuma veya yazma"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Yer İşaretleri ve Geçmiş"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Yer işaretlerine ve tarayıcı geçmişine doğrudan erişim."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ses kaydetme"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Uygulamaya tabletinizin çağrı günlüğünde (gelen ve giden çağrılarla ilgili veriler dahil olmak üzere) değişiklik yapma izni verir. Kötü amaçlı uygulamalar bu izni kullanarak çağrı günlüğünüzü silebilir veya değiştirebilir."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Uygulamaya, tabletinizin çağrı kaydında (gelen ve giden çağrılarla ilgili veriler dahil olmak üzere) değişiklik yapma izni verir. Kötü amaçlı uygulamalar bu izni kullanarak çağrı kaydınızı silebilir veya değiştirebilir."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Uygulamaya telefonunuzun çağrı günlüğünde (gelen ve giden çağrılarla ilgili veriler dahil olmak üzere) değişiklik yapma izni verir. Kötü amaçlı uygulamalar bu izni kullanarak çağrı günlüğünüzü silebilir veya değiştirebilir."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"kendi kişi kartımı oku"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Uygulamaya adınız ve iletişim bilgileriniz gibi cihazınızda saklanan kişisel profil bilgilerini okuma izni verir. Bu izin, uygulamanın sizi tanımlayabileceği ve profil bilgilerinizi başkalarına gönderebileceği anlamına gelir."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"kendi kişi kartınızı değiştirme"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Uygulamaya adınız ve iletişim bilgileriniz gibi cihazınızda saklanan kişisel profil bilgilerini değiştirme veya bunlara ekleme yapma izni verir. Bu izin, uygulamanın sizi tanımlayabileceği ve profil bilgilerinizi başkalarına gönderebileceği anlamına gelir."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"vücut sensörleri (kalp atış hızı takip cihazları gibi)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Uygulamanın, nabzınız gibi fiziksel durumunuzu izleyen sensörlerin gönderdiği verilere erişmesine izin verir."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"sosyal akışınızı okuma"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Uygulamaya size veya arkadaşlarınıza ait sosyal güncellemelere erişme ve bunları senkronize etme izni verir. Bilgi paylaşırken dikkatli olun. Bu izin, uygulamanın sosyal ağlarda sizinle arkadaşlarınız arasındaki iletişimi, gizliliğine bakılmaksızın okumasına olanak sağlar. Not: Bu izin tüm sosyal ağlar için geçerli olmayabilir."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"sosyal akışınıza yazma"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Uygulamaya arkadaşlarınızın sosyal güncellemelerini gösterme izni verir. Bilgi paylaşırken dikkatli olun -- Bu uygulama bir arkadaşınızdan geliyormuş gibi görünen iletiler oluşturabilir. Not: Bu izin, tüm sosyal ağlarda geçerli olmayabilir."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"takvim etkinliklerini ve gizli bilgileri oku"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Uygulamaya, arkadaşlarınızın ve iş arkadaşlarınızın etkinlikleri de olmak üzere tabletinizde depolanan tüm takvim etkinliklerini okuma izni verir. Bu izin, uygulamanın takvim verilerinizi gizliliğine ve hassaslığına bakmaksızın paylaşmasına ve kaydetmesine olanak sağlayabilir."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Uygulamaya, arkadaşlarınızın ve iş arkadaşlarınızın etkinlikleri dahil olmak üzere TV\'nizde kayıtlı tüm takvim etkinliklerini okuma izni verir. Bu da uygulamanın gizlilik ve duyarlılık dikkate alınmaksızın takvim verilerinizi paylaşmasına veya kaydetmesine olanak sağlayabilir."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Uygulamaya bir hesaba ait senkronizasyon ayarlarını değiştirme izni verir. Örneğin, bu izne sahip bir uygulama Kişiler uygulamasının bir hesapla senkronize edilmesini etkinleştirebilir."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"senk. istatistiklerini okuma"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Uygulamaya bir hesaba ait senkronizasyon istatistiklerini okuma izni verir. Buna senkronizasyon etkinlikleri geçmişi ve senkronize edilen veri miktarı bilgileri de dahildir."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"sözlüğe eklediğiniz terimleri okuma"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Uygulamaya, kullanıcının kullanıcı sözlüğünde depolamış olabileceği kelimeleri, adları ve kelime öbeklerini okuma izni verir."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"kullanıcı tanımlı sözlüğe kelime ekleme"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Uygulamaya, kullanıcı sözlüğüne yeni kelimeler yazma izni verir."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB belleğini okuma"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD kartımın içeriğini oku"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Uygulamaya, USB depolama biriminizin içeriğini okuma izni verir."</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 7ad6f1d..5545d46 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -232,18 +232,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"отримувати доступ до контактів"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Геодані"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"доступ до геоданих пристрою"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Соціальна інформація"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Безпосередній доступ до інформації про ваші контакти та соціальні зв’язки."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"отримувати доступ до календаря"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"надсилати та переглядати SMS-повідомлення"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Зберігання"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"отримувати доступ до фотографій, мультимедійного вмісту та файлів на вашому пристрої"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Словник користувача"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Переглядати або додавати слова в словнику користувача."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Закладки й історія"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Безпосередній доступ до закладок та історії веб-переглядача."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Мікрофон"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"записувати аудіо"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string> @@ -334,16 +328,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Дозволяє програмі змінювати журнал викликів вашого планшетного ПК, включно з даними про вхідні та вихідні дзвінки. Шкідливі програми можуть використовувати це для стирання або зміни вашого журналу викликів."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Додаток може змінювати журнал викликів телевізора, зокрема дані про вхідні та вихідні дзвінки. Шкідливі додатки можуть використовувати це, щоб стирати чи змінювати ваш журнал викликів."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Дозволяє програмі змінювати журнал викликів вашого телефону, включно з даними про вхідні та вихідні дзвінки. Шкідливі програми можуть використовувати це для стирання або зміни вашого журналу викликів."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"читати картки контактів"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Дозволяє програмі читати особисту інформацію профілю, збережену на пристрої, як-от ваше ім’я та контактну інформацію. Це означає, що програма може ідентифікувати вашу особу та надсилати дані вашого профілю іншим."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"змінювати картки контактів"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Дозволяє програмі змінювати чи додавати особисту інформацію профілю, збережену на пристрої, як-от ваше ім’я та контактну інформацію. Це означає, що програма може ідентифікувати вашу особу та надсилати дані вашого профілю іншим."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"датчики на тілі (як-от пульсометр)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Додаток має доступ до даних із датчиків, які відстежують фізичний стан, зокрема пульс."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"читати ваш соціальний потік"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Дозволяє програмі отримувати доступ до оновлень із соціальних мереж від вас і ваших друзів та синхронізувати їх. Будьте обережні, надаючи доступ до інформації – це дозволяє програмі читати повідомлення, якими ви та ваші друзі обмінювалися в соціальних мережах, незалежно від конфіденційності. Зауважте: цей дозвіл не можна застосовувати в усіх соціальних мережах."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"писати у ваш соціальний потік"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Дозволяє програмі відображати оновлення із соціальних мереж від ваших друзів. Будьте обережні, надаючи доступ до інформації – це дозволяє програмі створювати повідомлення, які надходять ніби від друга. Зауважте: цей дозвіл не можна застосовувати в усіх соціальних мережах."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"читати події календаря, а також конфіденційну інформацію"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Дозволяє програмі читати всі події календаря, збережені в планшетному ПК, включно з подіями друзів або співробітників. Це може дозволити програмі надсилати або зберігати дані календаря, незалежно від конфіденційності або закритості."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Додаток може читати всі події календаря, збережені в телевізорі, зокрема події друзів або співробітників. Завдяки цьому додаток може надсилати або зберігати дані календаря, незалежно від їх конфіденційності або закритості."</string> @@ -456,10 +442,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Дозволяє програмі змінювати налаштування синхронізації для облікового запису, наприклад, вмикати синхронізацію програми Люди з обліковим записом."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"Перегляд статистики синхронізації"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Дозволяє програмі читати статистику синхронізації облікового запису, зокрема історію синхронізацій і обсяг синхронізованих даних."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"читати додані в словник терміни"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Дозволяє програмі читати всі слова, назви та фрази, які користувач міг зберегти у своєму словнику."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"додавати слова у вказаний користувачем словник"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Дозволяє програмі писати нові слова в словник користувача."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"читати вміст носія USB"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"читати вміст карти SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Дозволяє програмі читати вміст носія USB."</string> diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml index bee9998..7d94b64 100644 --- a/core/res/res/values-ur-rPK/strings.xml +++ b/core/res/res/values-ur-rPK/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"اپنے رابطوں تک رسائی حاصل کریں"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"مقام"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"اس آلہ کے مقام تک رسائی حاصل کریں"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"آپ کی سوشل معلومات"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"اپنے رابطوں اور سوشل کنکشنز کے بارے میں معلومات تک براہ راست رسائی۔"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"کیلنڈر"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"اپنے کیلنڈر تک رسائی حاصل کریں"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS پیغامات بھیجیں اور دیکھیں"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"اسٹوریج"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"اپنے آلہ پر تصاویر، میڈیا اور فائلوں تک رسائی حاصل کریں"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"صارف کی لغت"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"صارف کی لغت میں الفاظ پڑھیں یا لکھیں۔"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"بُک مارکس اور سرگزشت"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"بک مارکس اور براؤزر کی سرگزشت تک براہ راست رسائی۔"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"مائکروفون"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"آڈیو ریکارڈ کریں"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"کیمرا"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"ایپ کو آپ کے ٹیبلٹ کی کال لاگ، بشمول آنے والی اور باہر جانے والی کالوں کے بارے میں ڈیٹا میں ترمیم کرنے کی اجازت دیتا ہے۔ نقصان دہ ایپس آپ کی کال لاگ مٹانے یا اس میں ترمیم کرنے کیلئے اسے استعمال کرسکتی ہیں۔"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"انکمنگ اور آؤٹ گوئنگ کالز کے بارے میں ڈیٹا سمیت، ایپ کو آپ کے TV کے کال لاگ میں ترمیم کرنے کی اجازت دیتا ہے۔ نقصان دہ ایپس آپ کی کال لاگ مٹانے یا اس میں ترمیم کرنے کیلئے اسے استعمال کرسکتی ہیں۔"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"ایپ کو آپ کے فون کی کال لاگ، بشمول آنے والی اور باہر جانے والی کالوں کے بارے میں ڈیٹا میں ترمیم کرنے کی اجازت دیتا ہے۔ نقصان دہ ایپس آپ کی کال لاگ مٹانے یا اس میں ترمیم کرنے کیلئے اسے استعمال کرسکتی ہیں۔"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"خود اپنا رابطہ کارڈ پڑھیں"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"ایپ کو آپ کے آلے پر اسٹور کردہ ذاتی پروفائل کی معلومات، جیسے آپ کا نام اور رابطہ کی معلومات پڑھنے کی اجازت دیتا ہے۔ اس کا مطلب یہ ہے کہ ایپ آپ کی نشاندہی کرسکتی ہے اور آپ کے پروفائل کی معلومات دوسروں کو بھیج سکتی ہے۔"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"اپنے رابطہ کارڈ میں ترمیم کریں"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"ایپ کو آپ کے آلے پر اسٹور کردہ ذاتی پروفائل کی معلومات، جیسے آپ کا نام اور رابطے کی معلومات تبدیل یا اس میں شامل کرنے کی اجازت دیتا ہے۔ اس کا مطلب یہ ہے کہ ایپ آپ کی نشاندہی کرسکتی اور آپ کے پروفائل کی معلومات دوسروں کو بھیج سکتی ہے۔"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"باڈی سینسرز (جیسے دل کی دھڑکن کے مانیٹرز)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ان سینسرز سے ڈیٹا تک رسائی حاصل کرنے کی اجازت دیتی ہے جو آپ کی حرکت قلب کی شرح جیسی آپ کی فزیکل صورتحال کو مانیٹر کرتے ہیں۔"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"اپنا سوشل سلسلہ پڑھیں"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"ایپ کو آپ اور آپ کے دوستوں کے سماجی اپ ڈیٹس تک رسائی حاصل کرنے اور انہیں مطابقت پذیر بنانے کی اجازت دیتا ہے۔ معلومات کا اشتراک کرتے وقت محتاط رہیں -- رازداری سے قطع نظر، یہ سماجی نیٹ ورکس پر آپ اور آپ کے دوستوں کے بیچ مواصلتوں کو پڑھنے کی اجازت دیتا ہے۔ نوٹ: یہ اجازت سبھی سماجی نیٹ ورکس پر نافذ نہیں کی جاسکتی ہے۔"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"اپنے سوشل سلسلہ میں لکھیں"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"ایپ کو آپ کے دوستوں کی جانب سے سماجی اپ ڈیٹس کو ڈسپلے کرنے کی اجازت دیتا ہے. معلومات کا اشتراک کرتے وقت محتاط رہیں - یہ ایپ کو ایسے پیغامات تیار کرنے کی اجازت دیتا ہے جو کسی دوست کی جانب سے آئے ہوئے معلوم پڑسکتے ہیں۔ نوٹ: یہ اجازت سبھی سماجی نیٹ ورکس پر نافذ نہیں کی جاسکتی ہے۔"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"کیلنڈر ایونٹس کے ساتھ رازداری کی معلومات پڑھیں"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"ایپ کو آپ کے، بشمول آپ کے دوستوں یا ساتھی کارکنان کے ٹیبلٹ پر اسٹور کردہ سبھی کیلنڈر ایونٹس کو پڑھنے کی اجازت دیتا ہے۔ یہ ایپ کو رازداری یا حساسیت سے قطع نظر آپ کے کیلنڈر ڈیٹا کا اشتراک یا اسے محفوظ کرنے کی اجازت دیتا ہے۔"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"ایپ کو آپ کے TV پر اسٹور کردہ دوستوں اور ساتھی کارکنوں کے کیلنڈر ایونٹس سمیت، سبھی کیلنڈر ایونٹس کو پڑھنے کی اجازت دیتا ہے۔ رازداری یا حساسیت سے قطع نظر، یہ ایپ کو آپ کے کیلنڈر ڈیٹا کا اشتراک یا اسے محفوظ کرنے کی اجازت دے سکتا ہے۔"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ایپ کو کسی اکاؤنٹ کیلئے مطابقت پذیری کی ترتیبات میں ترمیم کرنے کی اجازت دیتا ہے۔ مثلا، کسی اکاؤنٹ کے ساتھ People ایپ کی مطابقت پذیری فعال کرنے کیلئے اسے استعمال کیا جاسکتا ہے۔"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"مطابقت پذیری کے اعداد و شمار پڑھیں"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ایپ کو کسی اکاؤنٹ کیلئے مطابقت پذیری کے اعداد و شمار، بشمول مطابقت پذیری کے ایونٹس اور جس قدر ڈیٹا مطابقت پذیر ہے اس کی سرگزشت کو پڑھنے کی اجازت دیتا ہے۔"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"لغت میں اپنے ذریعہ شامل کردہ اصطلاحات کو پڑھیں"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"ایپ کو وہ سبھی الفاظ، نام اور فقرے پڑھنے کی اجازت دیتا ہے جو صارف نے صارف کی لغت میں محفوظ کیے ہو سکتے ہیں۔"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"صارف کے ذریعہ متعین کردہ لغت میں الفاظ شامل کریں"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"ایپ کو صارف کی لغت میں نئے الفاظ لکھنے کی اجازت دیتا ہے۔"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"آپ USB سٹوریج کے مواد کو پڑھیں"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"اپنے SD کارڈ کے مواد کو پڑھیں"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ایپ کو آپ کے USB اسٹوریج کے مواد کو پڑھنے کی اجازت دیتا ہے۔"</string> diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml index d817e11..875e350 100644 --- a/core/res/res/values-uz-rUZ/strings.xml +++ b/core/res/res/values-uz-rUZ/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"kontaktlarga kirish"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Joylashuv"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"qurilmaning joylashuvi haqidagi ma’lumotlarga kirish"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ijtimoiy ma’lumotingiz"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktlaringiz va ijtimoiy aloqalaringiz haqidagi ma’lumotga to‘g‘ridan to‘g‘ri o‘tadi."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Taqvim"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"taqvimga kirish"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS xabarlarni yuborish va ko‘rish"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Xotira"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"qurilmangizdagi rasm, media va fayllarga kirish"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Foydalanuvchi lug‘ati"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Foydalanuvchi lug‘atida so‘zlarni o‘qish yoki yozish"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Xatcho‘plar va tarix"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Xatcho‘plar va brauzer tarixiga to‘g‘ridan to‘g‘ri kirishga ruxsat."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ovoz yozib olish"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ilovaga planshetingizdagi qo‘ng‘iroq jurnallari, kiruvchi va chiquvchi qo‘ng‘rioqlar haqidagi ma’lumotlarni o‘zgartirishga ruxsat beradi. Zararli ilovalar bundan qo‘ng‘iroqlar jurnalini o‘zgartirish yoki o‘chirish uchun foydalanishi mumkin."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Ilovaga televizoringizdagi qo‘ng‘iroqlar jurnali, kirish va chiqish qo‘ng‘rioqlari haqidagi ma’lumotlarni o‘zgartirish huquqini beradi. Zararli ilovalar undan qo‘ng‘iroqlar jurnalini o‘zgartirish yoki o‘chirish uchun foydalanishi mumkin."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ilovaga telefoningizdagi qo‘ng‘iroq jurnallari, kiruvchi va chiquvchi qo‘ng‘rioqlar haqidagi ma’lumotlarni o‘zgartirishga ruxsat beradi. Zararli ilovalar bundan qo‘ng‘iroqlar jurnalini o‘zgartirish yoki o‘chirish uchun foydalanishi mumkin."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"shaxsiy kontaktlar kartangizni o‘qish"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Ilovaga ismingiz va aloqa ma’lumotlari kabi qurilmangizga zaxiralangan shaxsiy profil ma’lumotlaringizni o‘qish uchun ruxsat beradi. Bu ilova sizni tanib olishi va profil ma’lumotlaringizni boshqalarga jo‘natishi mumkinligini bildiradi."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"shaxsiy kontaktlar kartangizni o‘zgartirish"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Ilovaga qurilmangizga zaxiralangan ismingiz va aloqa ma’lumotlaringiz kabi shaxsiy profillingiz ma’lumotlarini o‘zgartirish yoki ularga ma’lumot qo‘shish imkonini beradi. Bu ilova sizni tanib olishi va profil ma’lumotlaringizni boshqalarga jo‘natishi mumkinligini bildiradi."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"sezgichlar (m-n, yurak urishi)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Ilovaga sezgichlardan olingan jismoniy holatingiz haqidagi ma’lumotlarni, masalan, yurak urishini kuzatish uchun ruxsat beradi."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"ijtimoiy uzatishni o‘qish"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Ilovaga siz va do‘stlaringizning ijtimoiy tarmoqlaridagi yangiliklarga kirish va ularni sinxronlashga ruxsat beradi. Ma’lumot ulashayotganda ehtiyot bo‘ling -- u ilovaga ijtimoiy tarmoqlarda maxfiyligidan qat’iy nazar siz va do‘stlaringiz o‘rtasidagi yozishmalarni o‘qish imkonini beradi. Diqqat qiling: ushbu ruxsat na barcha ijtimoiy tarmoqlarda talab qilinishi mumkin."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ijtimoiy uzatishga yozish"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Ilovaga do‘stlaringizning ijtimoiy tarmoqlardagi yangiliklarini ko‘rsatishiga ruxsat beradi. Ma’lumot ulashayotganda ehtiyot bo‘ling -- u ilovaga go‘yoki do‘stlardan kelgan xabarlarni yaratishga imkon beradi. Diqqat qiling: ushbu ruxsat na barcha ijtimoiy tarmoqlarda talab qilinishi mumkin."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"taqvimdagi tadbirlarni maxfiy ma’lumotlari bilan birga o‘qish"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Ilovaga planshetingizda joylashgan va do‘stlaringiz yoki hamkasblaringiz tomonidan qo‘shilgan barcha taqvim tadbirlarini o‘qishga ruxsat beradi. Bu ilovaga maxfiyligi va muhimligidan qat’iy nazar taqvim ma’lumotlaringizni ulashish yoki saqlashga ruxsat berishi mumkin."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Ilovaga televizoringizga saqlangan barcha taqvim tadbirlarini, jumladan, do‘stlaringiz yoki hamkasblaringiz tomonidan yaratilgan tadbirlarni o‘qish huquqini beradi. Bu ilovaga taqvimingizdagi ma’lumotlarni, ularning maxfiyligi yoki ta’sirchanligidan qat’i nazar, o‘ziga saqlash yoki boshqalarga ulashish huquqini berishi mumkin."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ilovaga hisobning sinxronlash sozlamalarini o‘zgartirish uchun ruxsat beradi. Masalan, bundan \"Odamlar\" ilovasini hisob bilan sinxronlanlash uchun foydalanish mumkin."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"sinxronlash statistikasini o‘qish"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ilovaga hisobning sinxronlash statistikasini, shu jumladan, sinxronlangan hodisalar tarixi va qancha ma’lumot sinxronlanganligi haqidagi ma’lumotni o‘qishga ruxsat beradi."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"lug‘atga qo‘shgan atamalaringizni o‘qish"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Ilovaga foydalanuvchi lug‘atga zaxiralagan barcha so‘zlar, nomlar va so‘z birikmalarini o‘qish uchun ruxsat beradi."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"foydalanuvchi lug‘atiga so‘zlar qo‘shish"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ilova yangi so‘zlarni foydalanuvchi lug‘atiga kiritishi mumkin."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB xotirasi tarkibidagilarni o‘qish"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"SD xotira kartasi tarkibidagilarni o‘qish"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Dasturga USB xotiradagi ma’lumotlarini ko‘rib chiqish uchun ruxsat beradi."</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index f00bd88..b3d9ac5 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"truy cập vào danh bạ của bạn"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Vị trí"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"truy cập vị trí của thiết bị này"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Thông tin xã hội của bạn"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Truy cập trực tiếp vào thông tin về các địa chỉ liên hệ và các kết nối xã hội của bạn."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Lịch"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"truy cập lịch của bạn"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"Tin nhắn SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"gửi và xem tin nhắn SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Bộ nhớ"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"truy cập ảnh, phương tiện và tệp trên thiết bị của bạn"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Từ điển người dùng"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Đọc hoặc viết các từ trong từ điển người dùng."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Dấu trang và lịch sử"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Truy cập trực tiếp vào dấu trang và lịch sử trình duyệt."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"Micrô"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"ghi âm"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Máy ảnh"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Cho phép ứng dụng sửa đổi nhật ký cuộc gọi trên máy tính bảng của bạn, bao gồm dữ liệu về các cuộc gọi đến và gọi đi. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi nhật ký cuộc gọi của bạn."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Cho phép ứng dụng sửa đổi nhật ký cuộc gọi trên TV của bạn, bao gồm dữ liệu về các cuộc gọi đến và gọi đi. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi nhật ký cuộc gọi của bạn."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Cho phép ứng dụng sửa đổi nhật ký cuộc gọi trên điện thoại của bạn, bao gồm dữ liệu về các cuộc gọi đến và gọi đi. Các ứng dụng độc hại có thể sử dụng quyền này để xóa hoặc sửa đổi nhật ký cuộc gọi của bạn."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"đọc thẻ liên hệ của riêng bạn"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Cho phép ứng dụng đọc thông tin tiểu sử cá nhân được lưu trữ trên thiết bị, chẳng hạn như tên và thông tin liên hệ của bạn. Điều này có nghĩa là ứng dụng có thể xác định danh tính của bạn và gửi thông tin tiểu sử của bạn cho người khác."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"sửa đổi thẻ liên hệ của riêng bạn"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Cho phép ứng dụng thay đổi hoặc thêm vào thông tin tiểu sử cá nhân được lưu trữ trên thiết bị, chẳng hạn như tên và thông tin liên hệ của bạn. Điều này có nghĩa là ứng dụng có thể xác định danh tính của bạn và gửi thông tin tiểu sử của bạn cho người khác."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"cảm biến cơ thể (như máy đo nhịp tim)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Cho phép ứng dụng truy cập dữ liệu từ bộ cảm biến giám sát tình trạng sức khỏe của bạn, ví dụ như nhịp tim."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"đọc luồng xã hội của bạn"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Cho phép ứng dụng truy cập và đồng bộ hóa các cập nhật xã hội của bạn và bạn bè bạn. Hãy cẩn trọng khi chia sẻ thông tin -- việc này có thể cho phép ứng dụng đọc thông tin liên lạc giữa bạn và bạn bè bạn trên các mạng xã hội, bất kể tính bí mật là gì. Lưu ý: quyền này có thể không được thực thi trên tất cả các mạng xã hội."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"ghi luồng xã hội của bạn"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Cho phép ứng dụng hiển thị các cập nhật xã hội từ bạn bè của bạn. Hãy cẩn trọng khi chia sẻ thông tin -- việc này có thể cho phép ứng dụng tạo tin nhắn dường như đến từ một người bạn. Lưu ý: quyền này có thể không được thực thi trên tất cả các mạng xã hội."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"đọc các sự kiện lịch và thông tin bí mật"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Cho phép ứng dụng đọc tất cả các sự kiện trên lịch được lưu trữ trên máy tính bảng của bạn, bao gồm các sự kiện trên lịch của bạn bè hoặc đồng nghiệp. Việc này có thể cho phép ứng dụng chia sẻ hoặc lưu dữ liệu lịch của bạn, bất kể tính bí mật hay tính nhạy cảm là gì."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Cho phép ứng dụng đọc tất cả các sự kiện trên lịch được lưu trữ trên TV của bạn, bao gồm các sự kiện trên lịch của bạn bè hoặc đồng nghiệp. Việc này có thể cho phép ứng dụng chia sẻ hoặc lưu dữ liệu lịch của bạn, bất kể mức độ bảo mật hay mức độ nhạy cảm."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Cho phép ứng dụng sửa đổi cài đặt đồng bộ hóa cho tài khoản. Ví dụ: ứng dụng có thể được sử dụng để cho phép đồng bộ hóa ứng dụng Mọi người với tài khoản."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"đọc thống kê đồng bộ hóa"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Cho phép ứng dụng đọc thống kê đồng bộ hóa cho tài khoản, bao gồm lịch sử của các sự kiện đồng bộ hóa và lượng dữ liệu được đồng bộ hóa."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"đọc cụm từ bạn đã thêm vào từ điển"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Cho phép ứng dụng đọc tất cả các từ, tên và cụm từ mà người dùng có thể đã lưu trữ trong từ điển của người dùng."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"thêm từ vào từ điển do người dùng xác định"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Cho phép ứng dụng ghi từ mới vào từ điển của người dùng."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"đọc nội dung của bộ lưu trữ USB của bạn"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"đọc nội dung của thẻ SD của bạn"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Cho phép ứng dụng đọc nội dung của bộ lưu trữ USB."</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 9e42c8c..0eb949d 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"使用您的通讯录"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"位置信息"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"使用此设备的位置信息"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交信息"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接访问与您的联系人和社交人脉相关的信息。"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"日历"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"访问您的日历"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"短信"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"发送和查看短信"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"存储空间"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"访问您设备上的照片、媒体内容和文件"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"用户字典"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"读取用户字典中的字词或写入新字词。"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"书签和历史记录"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接访问书签和浏览器历史记录。"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"麦克风"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"录制音频"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"相机"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"允许该应用修改平板电脑的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"允许应用修改电视的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"允许该应用修改手机的通话记录,包括有关来电和外拨电话的数据。恶意应用可能会借此清除或修改您的通话记录。"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"读取您自己的名片"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"允许该应用读取您设备上存储的个人资料信息,例如您的姓名和联系信息。这意味着该应用可以识别您的身份,并可能将您的个人资料信息发送给他人。"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"修改您自己的名片"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"允许该应用更改或添加您设备上存储的个人资料信息,例如您的姓名和联系信息。这意味着该应用可以识别您的身份,并可能将您的个人资料信息发送给他人。"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"人体传感器(如心跳速率检测器)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"允许该应用存取监测您身体状况的传感器所收集的数据,例如您的心率。"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"读取您的社交信息流"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"允许该应用访问并同步您和朋友的社交动态信息。在分享信息时一定要小心,因为此权限可让该应用读取您与社交网络上的朋友之间的交流信息。"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"写入您的社交信息流"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"允许该应用显示您朋友的社交动态信息。在分享信息时一定要小心,因为此权限可让该应用冒充某个朋友编写消息。请注意:此权限可能不适用于所有社交网络。"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"读取日历活动和机密信息"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"允许该应用读取您平板电脑上存储的所有日历活动,包括朋友或同事的活动。此权限可让该应用分享或保存您的日历数据,而不论这些数据是否属于机密或敏感内容。"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"允许应用读取您的电视上存储的所有日历活动,包括朋友或同事的活动。此权限可让应用分享或保存您的日历数据,而不论这些数据是否属于机密或敏感内容。"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允许该应用修改某个帐户的同步设置。例如,此权限可用于在“联系人”应用与某个帐户之间启用同步。"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"读取同步统计信息"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"允许该应用读取某个帐户的同步统计信息,包括同步活动历史记录和同步数据量。"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"读取您添加到字典的字词"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"允许该应用读取用户可能已在用户字典中存储的所有字词、名称和词组。"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"向用户定义的字典添加字词"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"允许应用向用户字典中写入新词。"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"读取您的USB存储设备中的内容"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"读取您的SD卡中的内容"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"允许应用读取您USB存储设备中的内容。"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index 5d54d76..7043399 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"存取您的通訊錄"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"位置"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"存取此裝置的位置"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交資訊"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接存取您的聯絡人資訊和社交網站資訊。"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"存取您的日曆"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"短訊"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"傳送和查看短訊"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"儲存空間"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"在您的裝置上存取相片、媒體和檔案"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"使用者字典"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"讀取或寫入使用者字典中的字詞。"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"書籤和記錄"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接存取書籤和瀏覽器紀錄。"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"麥克風"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"錄製語音訊息"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"相機"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"允許應用程式修改平板電腦的通話記錄,包括來電和已撥電話相關資料。惡意應用程式可能會藉此刪除或修改您的通話記錄。"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"允許應用程式修改電視的通話記錄,包括來電和撥出電話的相關資料。惡意應用程式可能會藉此清除或修改您的通話記錄。"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"允許應用程式修改手機的通話記錄,包括來電和已撥電話相關資料。惡意應用程式可能會藉此刪除或修改您的通話記錄。"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"讀取自己的聯絡資料"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"允許應用程式讀取裝置上儲存的個人資料,例如您的姓名和聯絡資訊。這表示應用程式可以識別您的身份,並將您的個人資料傳送給他人。"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"修改自己的聯絡資料"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"允許應用程式新增或更改裝置上儲存的個人資料,例如您的姓名和聯絡資訊。這表示應用程式可以識別您的身份,並將您的個人資料傳送給他人。"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"身體感應器 (例如心跳監視器)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"允許應用程式存取感應器所收集的資料 (這類感應器可監測您的體能狀態,例如您的心跳速率)。"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"讀取您的社交串流"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"允許應用程式存取並同步處理您和好友的最新動態。當您分享資訊時,請務必小心,因為這項權限允許應用程式讀取您和好友在社交網絡上的私人通訊,不論是否機密。注意:這項權限可能不適用於所有社交網絡。"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"寫入您的社交串流"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"允許應用程式顯示好友的最新動態。當您分享資訊時,請務必小心,因為這項權限讓應用程式可偽裝好友產生訊息。注意:這項權限可能不適用於所有社交網絡。"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"讀取日曆活動與機密資訊"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"允許應用程式讀取平板電腦上儲存的所有日曆活動,包括好友或同事的活動。如此一來,應用程式或可不論資料是否機密或敏感,自行共用或儲存您的日曆資料。"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"允許應用程式讀取儲存在電視中的所有日曆活動,包括好友或同事的活動。這可能允許應用程式分享或儲存您的日曆資料 (不論是否機密或敏感資料)。"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允許應用程式修改帳戶的同步設定,例如讓「通訊錄」應用程式與某個帳戶保持同步。"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"讀取同步處理統計資料"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"允許應用程式讀取帳戶的同步統計資料,包括同步活動記錄,以及保持同步的資料量。"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"讀取加入字典中的字詞"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"允許應用程式讀取使用者儲存在使用者字典中的所有字詞、名稱和詞組。"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"將字詞加入使用者定義字典"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"允許應用程式將新字詞寫入使用者字典。"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"讀取您 USB 儲存裝置中的內容"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"讀取您 SD 記憶卡中的內容"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"允許應用程式讀取 USB 儲存裝置的內容。"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index b96f2d0..f3a4aec 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"存取您的聯絡人"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"位置"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"存取這台裝置的位置資訊"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交資訊"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接存取您的聯絡人資訊與社交網站資訊。"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"存取您的日曆"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"簡訊"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"傳送及查看簡訊"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"儲存"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"存取裝置中的相片、媒體和檔案"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"使用者字典"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"讀取使用者字典中的字詞或寫入新字詞"</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"書籤與紀錄"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接存取書籤和瀏覽器紀錄。"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"麥克風"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"錄音"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"相機"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"允許應用程式修改平板電腦的通話紀錄,包括來電和已撥電話相關資料。請注意,惡意應用程式可能濫用此功能刪除或修改您的通話紀錄。"</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"允許應用程式修改電視的通話紀錄,包括來電和已撥電話相關資料。惡意應用程式可能會藉此清除或修改您的通話紀錄。"</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"允許應用程式修改手機的通話紀錄,包括來電和已撥電話相關資料。請注意,惡意應用程式可能濫用此功能刪除或修改您的通話紀錄。"</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"讀取自己的聯絡資訊"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"允許應用程式讀取裝置上儲存的個人資料,例如您的姓名和聯絡資訊。這表示應用程式可以識別您的身分,並將您的個人資料傳送給他人。"</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"修改自己的聯絡資訊"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"允許應用程式新增或變更裝置上儲存的個人資料,例如您的姓名和聯絡資訊。這項設定可讓應用程式識別您的身分,並可能將您的個人資料傳送給他人。"</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"身體感應器 (例如心律監測器)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"允許應用程式存取感測器所收集的資料 (這類感測器可監測您的體能狀態,例如您的心跳速率)。"</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"讀取您的社交串流"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"允許應用程式存取並同步處理您和好友的最新動態。因此,當您分享資訊時請小心,因為這項權限可讓應用程式讀取您和好友在社交網路上的私人通訊,包括機密通訊。注意:並非所有社交網路皆適用於這項權限。"</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"寫入您的社交串流"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"允許應用程式顯示好友的最新動態。因此,當您分享資訊時請小心,因為這項權限可讓應用程式偽裝好友產生訊息。注意:並非所有社交網路皆適用於這項權限。"</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"讀取日曆活動與機密資訊"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"允許應用程式讀取平板電腦上儲存的所有日曆活動,包括好友或同事的活動。這項設定會讓應用程式共用或儲存您的日曆資料,甚至包括機密或敏感的資料。"</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"允許應用程式讀取所有儲存在電視上的日曆活動,包括好友或同事的活動。應用程式可能會藉此洩漏或儲存您的日曆資料 (不論是否為機密或敏感資料)。"</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允許應用程式修改帳戶的同步處理設定,例如讓「使用者」應用程式與某個帳戶進行同步處理。"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"讀取同步處理狀態"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"允許應用程式讀取帳戶的同步處理統計資料,包括同步處理活動紀錄,以及同步處理的資料量。"</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"讀取您加入字典的字詞"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"允許應用程式讀取使用者儲存在使用者字典內的所有字詞、名稱和詞組。"</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"將字詞加入使用者定義的字典"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"允許應用程式將新字詞寫入使用者的字典。"</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"讀取 USB 儲存裝置的內容"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"讀取 SD 卡的內容"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"允許應用程式讀取 USB 儲存裝置的內容。"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 92839d1..afb1fbd 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -230,18 +230,12 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"finyelela koxhumana nabo"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"Indawo"</string> <string name="permgroupdesc_location" msgid="1346617465127855033">"finyelela kundawo yale divayisi"</string> - <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ulwazi lakho lomphakathi"</string> - <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Ukufinyelela okuqondile kulwazi mayelana noxhumana nabo bomphakathi."</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"Ikhalenda"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"finyelela kukhalenda yakho"</string> <string name="permgrouplab_sms" msgid="228308803364967808">"I-SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"thumela uphinde ubuke imilayezo ye-SMS"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"Isitoreji"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"finyelela kuzithombe, imidiya, namafayela kudivayisi yakho"</string> - <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Isichazamazwi somsebenzisi"</string> - <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Funda noma bhala amagama kusichazamazwi somsebenzisi."</string> - <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Amabhukhimakhi nomlando"</string> - <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Ukufinyelela okuqondile kumlando wamabhukimakhi nesiphequluli."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"I-Microphone"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">"rekhoda ividiyo"</string> <string name="permgrouplab_camera" msgid="4820372495894586615">"Ikhamela"</string> @@ -332,16 +326,8 @@ <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ivumela uhlelo lokusebenza ukushintsha ilogi yekholi yethebulethi yakho, kufaka phakathi idatha mayelana namakholi angenayo naphumayo. Izinhlelo zikusebenza ezingalungile zingasebenzisa lokhu ukusula noma ukushintsha irekhodi lwamakholi wakho."</string> <string name="permdesc_writeCallLog" product="tv" msgid="4225034892248398019">"Ivumela uhlelo lokusebenza ukuthi liguqule ilogi yekholi yakho ye-TV, okufaka idatha emayelana namakholi angenayo naphumayo. Izinhlelo zokusebenza ezinobungozi zingasebenzisa lokhu ukususa noma ukuguqula ilogi yakho yekholi."</string> <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ivumela uhlelo lokusebenza ukushintsha irekhodi lamakholi efoni yakho, kufaka phakathi idatha emayelana namakholi angenayo naphumayo. Izinhlelo zikusebenza ezingalungile zingasebenzisa lokhu ukusula noma ukushintsha irekhodi lwamakholi wakho."</string> - <string name="permlab_readProfile" msgid="4701889852612716678">"funda ikhadi lakho lokuxhumana"</string> - <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Ivumela uhlelo lokusebenza ukuthi lifunde ulwazi lephrofayela lomuntu siqu olugcinwe kudivayisi yakho njengegama lakho kanye nolwazi lokuxhumana. Lokhu kuchaza ukuthi uhlelo lokusebenza lingakuhlonza bese lithumelela abanye ulwazi lakho lephrofayela."</string> - <string name="permlab_writeProfile" msgid="907793628777397643">"guqula ikhadi lakho lokuxhumana"</string> - <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Ivumela uhlelo lokusebenza ukushintsha noma ingeze ulwazi lomuntu siqu lwephrofayela olulondolozwe kudivayisi yakho, njengegama lakho kanye nolwazi lokuxhumana. Lokhu kuchaza ukuthi ezinye izinhlelo zokusebenza zingakuhlonza bese zithumelela abanye ulwazi lephrofayela yakho."</string> <string name="permlab_bodySensors" msgid="4871091374767171066">"izinzwa zomzimba (njengeziqaphi zokulinganisela inhliziyo)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kudatha kusukela kuzinzwa eziqapha isimo sakho somzimba, esifana nesilinganiso senhliziyo yakho."</string> - <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"funda ngezindlela zakho zokuxhumana nabanye abantu"</string> - <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Ivumela uhlelo lokusebenza ukufinyelela nokuvumelanisa izibuyekezo zomphakathi ezivela kuwe nakubangani bakho. Qaphela uma waba ulwazi -- lokhu kuvumela uhlelo lokusebenza ukufunda ukuxhumana phakathi kwakho nabangani bakho kumanethiwekhi omphakathi, ngaphandle kokugcinwa kuyimfihlo. Qaphela: le mvume ingaphoqelelwa kuwo onke amanethiwekhi omphakathi."</string> - <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"bhala indlela yakho yokuxhumana nabantu"</string> - <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Ivumela uhlelo lokusebenza ukubonisa izibuyekezo zomphakathi ezivela kubangani bakho. Qaphela uma wabelana ngolwazi -- lokhu kuvumela uhlelo lokusebenza ukukhiqiza imilayezo engabonakala sengathi ivela kumngani. Qaphela: le mvume kungenzeka ingaphoqelelwa kuwo onke amanethiwekhi omphakathi."</string> <string name="permlab_readCalendar" msgid="5972727560257612398">"funda imicimbi yekhalenda kanye nokwaziswa okuyimfihlo"</string> <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Ivumela uhlelo lokusebenza ukufunda zonke izehlakalo zekhalenda ezilondolozwe kuthebhulethi yakho, kufaka phakathi lezo zabangani noma osebenza nabo. Lokhu kungavumela uhlelo lokusebenza ukwabelana noma ukulondoloza idatha yakho yekhalenda, ngaphandle kokugcinwa kuyimfihlo noma ukuzwela."</string> <string name="permdesc_readCalendar" product="tv" msgid="3191352452242394196">"Ivumela uhlelo lokusebenza ukuthi lifunde yonke imicimbi yekhalenda egcinwe ku-TV yakho, efaka leyo yabangani noma osebenza nabo. Lokhu kungavumela uhlelo lokusebenza ukuthi labelane noma lilondoloze idatha yekhalenda yakho, ngokunganaki ubumfihlo noma ukuzwela."</string> @@ -454,10 +440,6 @@ <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ivumela uhlelo lokusebenza ukushintsha izilungiselelo zokuvumelanisa ze-akhawunti. Isibonelo, lokhu kungasetshenziswa ukunika amandla ukuvumelanisa kohlelo lokusebenza le-People ne-akhawunti."</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"funda izibalo zokuvumelanisa"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ivumela uhlelo lokusebenza ukufunda izibalo zokuvumelanisa ze-akhawunti, kufaka phakathi umlando wezehlakalo ezivumelanisiwe nokuthi ingakanani idatha evumelanisiwe."</string> - <string name="permlab_readDictionary" msgid="4107101525746035718">"funda imibandela oyengezile esichazimazwini"</string> - <string name="permdesc_readDictionary" msgid="659614600338904243">"Ivumela uhlelo lokusebenza ukufunda onke amabizo, amagama, namatemu umsebenzisi awalondolozile kusichazamazwi somsebenzisi."</string> - <string name="permlab_writeDictionary" msgid="2183110402314441106">"engeza amagama kusichazamazwi ezichazwe umsebenzisi"</string> - <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Ivumela uhlelo lokusebenza ukuthi ibhale amagama amasha esichazinimazwi."</string> <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"funda okuqukethwe kokugciniwe kwakho okufinyeleleka nge-USD"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"funda okuqukethwe ekhadini lakho le-SD"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"Ivumela uhlelo lokusebenza ukufunda okuqukethwe kwesitoreji sakho se-USB."</string> diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 33c9c60..fd47d49 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -27,6 +27,9 @@ <!-- ============== --> <eat-comment /> + <!-- Specifies that a theme has a light background with dark text on top. --> + <attr name="isLightTheme" format="boolean" /> + <!-- Default color of foreground imagery. --> <attr name="colorForeground" format="color" /> <!-- Default color of foreground imagery on an inverted background. --> diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index f31c1d6..3cb4d7c 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -231,6 +231,9 @@ may cost the user money. Such permissions may be highlighted when shown to the user with this additional information. --> <flag name="costsMoney" value="0x0001" /> + <!-- Additional flag from base permission type: this permission is hidden + and should not show in the UI. --> + <flag name="hide" value="0x2" /> </attr> <!-- Specified the name of a group that this permission is associated diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index f5c89c5..4bc2205 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1268,6 +1268,14 @@ application is desired. --> <string name="default_sms_application" translatable="false">com.android.mms</string> + <!-- Default web browser. This is the package name of the application that will + be the default browser when the device first boots. Afterwards the user + can select whatever browser app they wish to use as the default. + + If this string is empty or the specified package does not exist, then + the behavior will be as though no app was named as an explicit default. --> + <string name="default_browser" translatable="false"></string> + <!-- Enable/disable default bluetooth profiles: HSP_AG, ObexObjectPush, Audio, NAP --> <bool name="config_bluetooth_default_profiles">true</bool> @@ -1851,7 +1859,9 @@ 2. Pre-installed 3. In the default state (enabled but not explicitly) And SubscriptionInfoUpdater undoes this and marks the app enabled when a SIM is inserted - that marks the app as carrier privileged. --> + that marks the app as carrier privileged. It also grants the app default permissions + for Phone and Location. As such, apps MUST only ever be added to this list if they + obtain user consent to access their location through other means. --> <string-array name="config_disabledUntilUsedPreinstalledCarrierApps" translatable="false" /> <!-- The list of classes that should be added to the notification ranking pipline. @@ -2246,4 +2256,6 @@ (range of 18 - 21 kHz). --> <bool name="config_supportSpeakerNearUltrasound">true</bool> + <!-- Flag indicating device support for EAP SIM, AKA, AKA' --> + <bool name="config_eap_sim_based_auth_supported">true</bool> </resources> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index ea0d349..5288fa3 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -554,11 +554,6 @@ <string name="permgroupdesc_location">access this device\'s location</string> <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgrouplab_socialInfo">Your social information</string> - <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgroupdesc_socialInfo">Direct access to information about your contacts and social connections.</string> - - <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgrouplab_calendar">Calendar</string> <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgroupdesc_calendar">access your calendar</string> @@ -573,16 +568,6 @@ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgroupdesc_storage">access photos, media, and files on your device</string> - <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgrouplab_dictionary">User Dictionary</string> - <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgroupdesc_dictionary">Read or write words in user dictionary.</string> - - <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgrouplab_bookmarks">Bookmarks and History</string> - <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgroupdesc_bookmarks">Direct access to bookmarks and browser history.</string> - <!-- Title of a category of application permissioncds, listed so the user can choose whether they want to allow the application to do this. --> <string name="permgrouplab_microphone">Microphone</string> <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> @@ -599,9 +584,9 @@ <string name="permgroupdesc_phone">make and manage phone calls</string> <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgrouplab_sensors">Sensors</string> + <string name="permgrouplab_sensors">Body Sensors</string> <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permgroupdesc_sensors">access information about your vital signs and physical activity</string> + <string name="permgroupdesc_sensors">access sensor data about your vital signs</string> <!-- Title for the capability of an accessibility service to retrieve window content. --> <string name="capability_title_canRetrieveWindowContent">Retrieve window content</string> @@ -901,23 +886,6 @@ <string name="permdesc_writeCallLog" product="default">Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.</string> - - <!-- Title of the read profile permission, listed so the user can decide whether to allow the application to read the user's personal profile data. [CHAR LIMIT=30] --> - <string name="permlab_readProfile">read your own contact card</string> - <!-- Description of the read profile permission, listed so the user can decide whether to allow the application to read the user's personal profile data. [CHAR LIMIT=NONE] --> - <string name="permdesc_readProfile" product="default">Allows the app to read - personal profile information stored on your device, such as your name and - contact information. This means the app can identify you and may send your - profile information to others.</string> - - <!-- Title of the write profile permission, listed so the user can decide whether to allow the application to write to the user's personal profile data. [CHAR LIMIT=30] --> - <string name="permlab_writeProfile">modify your own contact card</string> - <!-- Description of the write profile permission, listed so the user can decide whether to allow the application to write to the user's personal profile data. [CHAR LIMIT=NONE] --> - <string name="permdesc_writeProfile" product="default">Allows the app to - change or add to personal profile information stored on your device, such - as your name and contact information. This means the app can identify you - and may send your profile information to others.</string> - <!-- Title of the body sensors permission, listed so the user can decide whether to allow the application to access body sensor data. [CHAR LIMIT=30] --> <string name="permlab_bodySensors">body sensors (like heart rate monitors) </string> @@ -925,23 +893,6 @@ <string name="permdesc_bodySensors" product="default">Allows the app to access data from sensors that monitor your physical condition, such as your heart rate.</string> - <!-- Title of the read social stream permission, listed so the user can decide whether to allow the application to read information from the user's social stream. [CHAR LIMIT=30] --> - <string name="permlab_readSocialStream" product="default">read your social stream</string> - <string name="permdesc_readSocialStream" product="default">Allows the app - to access and sync social updates from you and your friends. Be careful - when sharing information -- this allows the app to read communications - between you and your friends on social networks, regardless of - confidentiality. Note: this permission may not be enforced on all social - networks.</string> - - <!-- Title of the write social stream permission, listed so the user can decide whether to allow the application to write information to the user's social stream. [CHAR LIMIT=30] --> - <string name="permlab_writeSocialStream" product="default">write to your social stream</string> - <string name="permdesc_writeSocialStream" product="default">Allows the app to - display social updates from your friends. Be careful when sharing - information -- this allows the app to produce messages that may appear to - come from a friend. Note: this permission may not be enforced on all social - networks.</string> - <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_readCalendar">read calendar events plus confidential information</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> @@ -1285,18 +1236,6 @@ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_readSyncStats">Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced. </string> - <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_readDictionary">read terms you added to the dictionary</string> - <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_readDictionary">Allows the app to read all words, - names and phrases that the user may have stored in the user dictionary.</string> - - <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permlab_writeDictionary">add words to user-defined dictionary</string> - <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> - <string name="permdesc_writeDictionary">Allows the app to write new words into the - user dictionary.</string> - <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] --> <string name="permlab_sdcardRead" product="nosdcard">read the contents of your USB storage</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 3a1a156..ebbbc4c 100755 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -240,6 +240,7 @@ <java-symbol type="attr" name="windowFixedHeightMajor" /> <java-symbol type="attr" name="windowFixedHeightMinor" /> <java-symbol type="attr" name="accessibilityFocusedDrawable"/> + <java-symbol type="attr" name="isLightTheme"/> <java-symbol type="bool" name="action_bar_embed_tabs" /> <java-symbol type="bool" name="action_bar_embed_tabs_pre_jb" /> @@ -902,6 +903,7 @@ <java-symbol type="string" name="sipAddressTypeOther" /> <java-symbol type="string" name="sipAddressTypeWork" /> <java-symbol type="string" name="default_sms_application" /> + <java-symbol type="string" name="default_browser" /> <java-symbol type="string" name="sms_control_message" /> <java-symbol type="string" name="sms_control_title" /> <java-symbol type="string" name="sms_control_no" /> @@ -2318,5 +2320,5 @@ <java-symbol type="drawable" name="ic_dialog_alert_material" /> <java-symbol type="bool" name="allow_stacked_button_bar" /> - + <java-symbol type="bool" name="config_eap_sim_based_auth_supported" /> </resources> diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index b7acdd4..c230645 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -42,6 +42,7 @@ please see themes_device_defaults.xml. --> <style name="Theme"> + <item name="isLightTheme">false</item> <item name="colorForeground">@color/bright_foreground_dark</item> <item name="colorForegroundInverse">@color/bright_foreground_dark_inverse</item> <item name="colorBackground">@color/background_dark</item> @@ -472,6 +473,7 @@ please see themes_device_defaults.xml. background will be a light color. <p>This is designed for API level 10 and lower.</p>--> <style name="Theme.Light"> + <item name="isLightTheme">true</item> <item name="windowBackground">@drawable/screen_background_selector_light</item> <item name="windowClipToOutline">false</item> diff --git a/core/res/res/xml/sms_short_codes.xml b/core/res/res/xml/sms_short_codes.xml index 18c83b4..5783a49 100644 --- a/core/res/res/xml/sms_short_codes.xml +++ b/core/res/res/xml/sms_short_codes.xml @@ -92,12 +92,14 @@ <shortcode country="fi" pattern="\\d{5,6}" premium="0600.*|0700.*|171(?:59|63)" free="116\\d{3}" /> <!-- France: 5 digits, free: 3xxxx, premium [4-8]xxxx, plus EU: - http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements --> - <shortcode country="fr" premium="[4-8]\\d{4}" free="3\\d{4}|116\\d{3}" /> + http://clients.txtnation.com/entries/161972-france-premium-sms-short-code-requirements, + visual voicemail code for Orange: 21101 --> + <shortcode country="fr" premium="[4-8]\\d{4}" free="3\\d{4}|116\\d{3}|21101" /> <!-- United Kingdom (Great Britain): 4-6 digits, common codes [5-8]xxxx, plus EU: - http://www.short-codes.com/media/Co-regulatoryCodeofPracticeforcommonshortcodes170206.pdf --> - <shortcode country="gb" pattern="\\d{4,6}" premium="[5-8]\\d{4}" free="116\\d{3}" /> + http://www.short-codes.com/media/Co-regulatoryCodeofPracticeforcommonshortcodes170206.pdf, + visual voicemail code for EE: 887 --> + <shortcode country="gb" pattern="\\d{4,6}" premium="[5-8]\\d{4}" free="116\\d{3}|887" /> <!-- Georgia: 4 digits, known premium codes listed --> <shortcode country="ge" pattern="\\d{4}" premium="801[234]|888[239]" /> @@ -183,7 +185,8 @@ <!-- Ukraine: 4 digits, known premium codes listed --> <shortcode country="ua" pattern="\\d{4}" premium="444[3-9]|70[579]4|7540" /> - <!-- USA: 5-6 digits (premium codes from https://www.premiumsmsrefunds.com/ShortCodes.htm) --> - <shortcode country="us" pattern="\\d{5,6}" premium="20433|21(?:344|472)|22715|23(?:333|847)|24(?:15|28)0|25209|27(?:449|606|663)|28498|305(?:00|83)|32(?:340|941)|33(?:166|786|849)|34746|35(?:182|564)|37975|38(?:135|146|254)|41(?:366|463)|42335|43(?:355|500)|44(?:578|711|811)|45814|46(?:157|173|327)|46666|47553|48(?:221|277|669)|50(?:844|920)|51(?:062|368)|52944|54(?:723|892)|55928|56483|57370|59(?:182|187|252|342)|60339|61(?:266|982)|62478|64(?:219|898)|65(?:108|500)|69(?:208|388)|70877|71851|72(?:078|087|465)|73(?:288|588|882|909|997)|74(?:034|332|815)|76426|79213|81946|83177|84(?:103|685)|85797|86(?:234|236|666)|89616|90(?:715|842|938)|91(?:362|958)|94719|95297|96(?:040|666|835|969)|97(?:142|294|688)|99(?:689|796|807)" free="87902" /> + <!-- USA: 5-6 digits (premium codes from https://www.premiumsmsrefunds.com/ShortCodes.htm), + visual voicemail code for T-Mobile: 122 --> + <shortcode country="us" pattern="\\d{5,6}" premium="20433|21(?:344|472)|22715|23(?:333|847)|24(?:15|28)0|25209|27(?:449|606|663)|28498|305(?:00|83)|32(?:340|941)|33(?:166|786|849)|34746|35(?:182|564)|37975|38(?:135|146|254)|41(?:366|463)|42335|43(?:355|500)|44(?:578|711|811)|45814|46(?:157|173|327)|46666|47553|48(?:221|277|669)|50(?:844|920)|51(?:062|368)|52944|54(?:723|892)|55928|56483|57370|59(?:182|187|252|342)|60339|61(?:266|982)|62478|64(?:219|898)|65(?:108|500)|69(?:208|388)|70877|71851|72(?:078|087|465)|73(?:288|588|882|909|997)|74(?:034|332|815)|76426|79213|81946|83177|84(?:103|685)|85797|86(?:234|236|666)|89616|90(?:715|842|938)|91(?:362|958)|94719|95297|96(?:040|666|835|969)|97(?:142|294|688)|99(?:689|796|807)" free="122|87902" /> </shortcodes> diff --git a/core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.mk b/core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.mk index 6ee6ffa..6b3b55e 100644 --- a/core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.mk +++ b/core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.mk @@ -5,6 +5,4 @@ LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := install_jni_lib_open_from_apk -LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES := true - include $(FrameworkCoreTests_BUILD_PACKAGE) diff --git a/core/tests/coretests/src/android/text/format/FormatterTest.java b/core/tests/coretests/src/android/text/format/FormatterTest.java new file mode 100644 index 0000000..d2e2131 --- /dev/null +++ b/core/tests/coretests/src/android/text/format/FormatterTest.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.text.format; + +import android.content.res.Configuration; +import android.content.res.Resources; +import android.test.AndroidTestCase; +import android.test.suitebuilder.annotation.SmallTest; +import android.text.format.Formatter.BytesResult; + +import java.util.Locale; + +public class FormatterTest extends AndroidTestCase { + + private Locale mOriginalLocale; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + mOriginalLocale = mContext.getResources().getConfiguration().locale; + } + + @Override + protected void tearDown() throws Exception { + if (mOriginalLocale != null) { + setLocale(mOriginalLocale); + } + super.tearDown(); + } + + private void setLocale(Locale locale) { + Resources res = getContext().getResources(); + Configuration config = res.getConfiguration(); + config.locale = locale; + res.updateConfiguration(config, res.getDisplayMetrics()); + + Locale.setDefault(locale); + } + + @SmallTest + public void testFormatBytes() { + setLocale(Locale.ENGLISH); + + checkFormatBytes(0, true, "0.00", 0); + checkFormatBytes(0, false, "0.00", 0); + + checkFormatBytes(1, true, "1.0", 1); + checkFormatBytes(1, false, "1.00", 1); + + checkFormatBytes(12, true, "12", 12); + checkFormatBytes(12, false, "12.00", 12); + + checkFormatBytes(123, true, "123", 123); + checkFormatBytes(123, false, "123", 123); + + checkFormatBytes(812, true, "812", 812); + checkFormatBytes(812, false, "812", 812); + + checkFormatBytes(912, true, "0.89", 911); + checkFormatBytes(912, false, "0.89", 911); + + checkFormatBytes(9123, true, "8.9", 9113); + checkFormatBytes(9123, false, "8.91", 9123); + + checkFormatBytes(9123000, true, "8.7", 9122611); + checkFormatBytes(9123000, false, "8.70", 9122611); + + // The method doesn't really support negative values, but apparently people pass -1... + checkFormatBytes(-1, true, "-1.00", -1); + checkFormatBytes(-1, false, "-1.00", -1); + + // Missing FLAG_CALCULATE_ROUNDED case. + BytesResult r = Formatter.formatBytes(getContext().getResources(), 1, 0); + assertEquals("1.00", r.value); + assertEquals(0, r.roundedBytes); // Didn't pass FLAG_CALCULATE_ROUNDED + + // Make sure it works on different locales. + setLocale(new Locale("es", "ES")); + checkFormatBytes(9123000, false, "8,70", 9122611); + } + + private void checkFormatBytes(long bytes, boolean useShort, + String expectedString, long expectedRounded) { + BytesResult r = Formatter.formatBytes(getContext().getResources(), bytes, + Formatter.FLAG_CALCULATE_ROUNDED | (useShort ? Formatter.FLAG_SHORTER : 0)); + assertEquals(expectedString, r.value); + assertEquals(expectedRounded, r.roundedBytes); + } +} |