diff options
255 files changed, 6062 insertions, 1572 deletions
diff --git a/Android.bp b/Android.bp index 33b6209a6d67..028e8a45fd03 100644 --- a/Android.bp +++ b/Android.bp @@ -1039,7 +1039,7 @@ doc_defaults { "ext", "framework", "voip-common", - "android.test.mock", + "android.test.mock.impl", ], local_sourcepaths: frameworks_base_subdirs, html_dirs: [ @@ -1474,13 +1474,13 @@ doc_defaults { "ext", "framework", "voip-common", - "android.test.mock", + "android.test.mock.impl", ], local_sourcepaths: frameworks_base_subdirs, installable: false, metalava_enabled: true, metalava_annotations_enabled: true, - metalava_previous_api: ":public-api-for-metalava-annotations", + metalava_previous_api: ":last-released-public-api", metalava_merge_annotations_dirs: [ "metalava-manual", "ojluni-annotated-stubs", @@ -1497,6 +1497,12 @@ droiddoc { "core/res/AndroidManifest.xml", ], args: metalava_framework_docs_args, + check_api: { + current: { + api_file: "api/current.txt", + removed_api_file: "api/removed.txt", + }, + }, } droiddoc { @@ -1511,6 +1517,12 @@ droiddoc { "core/res/AndroidManifest.xml", ], args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi", + check_api: { + current: { + api_file: "api/system-current.txt", + removed_api_file: "api/system-removed.txt", + }, + }, } droiddoc { @@ -1523,4 +1535,10 @@ droiddoc { "core/res/AndroidManifest.xml", ], args: metalava_framework_docs_args + " --show-annotation android.annotation.TestApi", + check_api: { + current: { + api_file: "api/test-current.txt", + removed_api_file: "api/test-removed.txt", + }, + }, } diff --git a/api/current.txt b/api/current.txt index 19a0f31136e8..300ab3af79c4 100644 --- a/api/current.txt +++ b/api/current.txt @@ -15190,7 +15190,7 @@ package android.graphics.drawable.shapes { package android.graphics.fonts { - public class Font { + public final class Font { method public android.graphics.fonts.FontVariationAxis[] getAxes(); method public int getTtcIndex(); method public int getWeight(); @@ -15208,12 +15208,12 @@ package android.graphics.fonts { public static class Font.Builder { ctor public Font.Builder(java.nio.ByteBuffer); - ctor public Font.Builder(java.io.File) throws java.io.IOException; - ctor public Font.Builder(java.io.FileDescriptor) throws java.io.IOException; - ctor public Font.Builder(java.io.FileDescriptor, long, long) throws java.io.IOException; - ctor public Font.Builder(android.content.res.AssetManager, java.lang.String) throws java.io.IOException; - ctor public Font.Builder(android.content.res.Resources, int) throws java.io.IOException; - method public android.graphics.fonts.Font build(); + ctor public Font.Builder(java.io.File); + ctor public Font.Builder(java.io.FileDescriptor); + ctor public Font.Builder(java.io.FileDescriptor, long, long); + ctor public Font.Builder(android.content.res.AssetManager, java.lang.String); + ctor public Font.Builder(android.content.res.Resources, int); + method public android.graphics.fonts.Font build() throws java.io.IOException; method public android.graphics.fonts.Font.Builder setFontVariationSettings(java.lang.String); method public android.graphics.fonts.Font.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); method public android.graphics.fonts.Font.Builder setItalic(boolean); @@ -15221,9 +15221,9 @@ package android.graphics.fonts { method public android.graphics.fonts.Font.Builder setWeight(int); } - public class FontFamily { + public final class FontFamily { method public android.graphics.fonts.Font getFont(int); - method public int getFontCount(); + method public int getSize(); } public static class FontFamily.Builder { @@ -46512,7 +46512,7 @@ package android.view { method public final deprecated boolean dispatch(android.view.KeyEvent.Callback); method public final boolean dispatch(android.view.KeyEvent.Callback, android.view.KeyEvent.DispatcherState, java.lang.Object); method public final int getAction(); - method public final java.lang.String getCharacters(); + method public final deprecated java.lang.String getCharacters(); method public static int getDeadChar(int, int); method public final int getDeviceId(); method public char getDisplayLabel(); @@ -46561,7 +46561,7 @@ package android.view { method public final void startTracking(); method public void writeToParcel(android.os.Parcel, int); field public static final int ACTION_DOWN = 0; // 0x0 - field public static final int ACTION_MULTIPLE = 2; // 0x2 + field public static final deprecated int ACTION_MULTIPLE = 2; // 0x2 field public static final int ACTION_UP = 1; // 0x1 field public static final android.os.Parcelable.Creator<android.view.KeyEvent> CREATOR; field public static final int FLAG_CANCELED = 32; // 0x20 diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index d7a926ffa28e..6065bbfc3f90 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -127,6 +127,7 @@ message Atom { WTFOccurred wtf_occurred = 80; LowMemReported low_mem_reported = 81; GenericAtom generic_atom = 82; + KeyValuePairsAtom key_value_pairs_atom = 83; } // Pulled events will start at field 10000. @@ -177,6 +178,20 @@ message AttributionNode { optional string tag = 2; } +message KeyValuePair { + optional int32 key = 1; + oneof value { + int64 value_int = 2; + string value_str = 3; + float value_float = 4; + } +} + +message KeyValuePairsAtom { + optional int32 uid = 1; + repeated KeyValuePair pairs = 2; +} + /* * ***************************************************************************** * Below are all of the individual atoms that are logged by Android via statsd. diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp index 04d34f3be2c0..73e6572db50f 100644 --- a/cmds/statsd/src/logd/LogEvent.cpp +++ b/cmds/statsd/src/logd/LogEvent.cpp @@ -18,6 +18,7 @@ #include "logd/LogEvent.h" #include "stats_log_util.h" +#include "statslog.h" namespace android { namespace os { @@ -51,6 +52,52 @@ LogEvent::LogEvent(int32_t tagId, int64_t wallClockTimestampNs, int64_t elapsedT } } +LogEvent::LogEvent(int32_t tagId, int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, + int32_t uid, + const std::map<int32_t, int64_t>& int_map, + const std::map<int32_t, std::string>& string_map, + const std::map<int32_t, float>& float_map) { + mLogdTimestampNs = wallClockTimestampNs; + mElapsedTimestampNs = elapsedTimestampNs; + mTagId = android::util::KEY_VALUE_PAIRS_ATOM; + mLogUid = uid; + + int pos[] = {1, 1, 1}; + + mValues.push_back(FieldValue(Field(mTagId, pos, 0 /* depth */), Value(uid))); + pos[0]++; + for (const auto&itr : int_map) { + pos[2] = 1; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.first))); + pos[2] = 2; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.second))); + mValues.back().mField.decorateLastPos(2); + pos[1]++; + } + + for (const auto&itr : string_map) { + pos[2] = 1; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.first))); + pos[2] = 3; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.second))); + mValues.back().mField.decorateLastPos(2); + pos[1]++; + } + + for (const auto&itr : float_map) { + pos[2] = 1; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.first))); + pos[2] = 4; + mValues.push_back(FieldValue(Field(mTagId, pos, 2 /* depth */), Value(itr.second))); + mValues.back().mField.decorateLastPos(2); + pos[1]++; + } + if (!mValues.empty()) { + mValues.back().mField.decorateLastPos(1); + mValues.at(mValues.size() - 2).mField.decorateLastPos(1); + } +} + LogEvent::LogEvent(int32_t tagId, int64_t timestampNs) { mLogdTimestampNs = timestampNs; mTagId = tagId; diff --git a/cmds/statsd/src/logd/LogEvent.h b/cmds/statsd/src/logd/LogEvent.h index 24d624d9d9be..9ed09dd12fbd 100644 --- a/cmds/statsd/src/logd/LogEvent.h +++ b/cmds/statsd/src/logd/LogEvent.h @@ -69,6 +69,15 @@ public: // For testing. The timestamp is used as both elapsed real time and logd timestamp. explicit LogEvent(int32_t tagId, int64_t timestampNs); + /** + * Constructs a KeyValuePairsAtom LogEvent from value maps. + */ + explicit LogEvent(int32_t tagId, int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, + int32_t uid, + const std::map<int32_t, int64_t>& int_map, + const std::map<int32_t, std::string>& string_map, + const std::map<int32_t, float>& float_map); + ~LogEvent(); /** diff --git a/cmds/statsd/tests/LogEvent_test.cpp b/cmds/statsd/tests/LogEvent_test.cpp index 2fcde29fbbdb..acfa151c6f95 100644 --- a/cmds/statsd/tests/LogEvent_test.cpp +++ b/cmds/statsd/tests/LogEvent_test.cpp @@ -158,6 +158,96 @@ TEST(LogEventTest, TestLogParsing2) { EXPECT_EQ((float)1.1, item7.mValue.float_value); } +TEST(LogEventTest, TestKeyValuePairsAtomParsing) { + std::map<int32_t, int64_t> int_map; + std::map<int32_t, std::string> string_map; + std::map<int32_t, float> float_map; + + int_map[11] = 123L; + int_map[22] = 345L; + + string_map[1] = "test2"; + string_map[2] = "test1"; + + float_map[111] = 2.2f; + float_map[222] = 1.1f; + + LogEvent event1(83, 2000, 2001, 10001, int_map, string_map, float_map); + event1.init(); + + EXPECT_EQ(83, event1.GetTagId()); + EXPECT_EQ((int64_t)2000, event1.GetLogdTimestampNs()); + EXPECT_EQ((int64_t)2001, event1.GetElapsedTimestampNs()); + + const auto& items = event1.getValues(); + EXPECT_EQ((size_t)13, items.size()); + + const FieldValue& item0 = event1.getValues()[0]; + EXPECT_EQ(0x00010000, item0.mField.getField()); + EXPECT_EQ(Type::INT, item0.mValue.getType()); + EXPECT_EQ(10001, item0.mValue.int_value); + + const FieldValue& item1 = event1.getValues()[1]; + EXPECT_EQ(0x2020101, item1.mField.getField()); + EXPECT_EQ(Type::INT, item1.mValue.getType()); + EXPECT_EQ(11, item1.mValue.int_value); + + const FieldValue& item2 = event1.getValues()[2]; + EXPECT_EQ(0x2020182, item2.mField.getField()); + EXPECT_EQ(Type::LONG, item2.mValue.getType()); + EXPECT_EQ(123L, item2.mValue.long_value); + + const FieldValue& item3 = event1.getValues()[3]; + EXPECT_EQ(0x2020201, item3.mField.getField()); + EXPECT_EQ(Type::INT, item3.mValue.getType()); + EXPECT_EQ(22, item3.mValue.int_value); + + const FieldValue& item4 = event1.getValues()[4]; + EXPECT_EQ(0x2020282, item4.mField.getField()); + EXPECT_EQ(Type::LONG, item4.mValue.getType()); + EXPECT_EQ(345L, item4.mValue.long_value); + + const FieldValue& item5 = event1.getValues()[5]; + EXPECT_EQ(0x2020301, item5.mField.getField()); + EXPECT_EQ(Type::INT, item5.mValue.getType()); + EXPECT_EQ(1, item5.mValue.int_value); + + const FieldValue& item6 = event1.getValues()[6]; + EXPECT_EQ(0x2020383, item6.mField.getField()); + EXPECT_EQ(Type::STRING, item6.mValue.getType()); + EXPECT_EQ("test2", item6.mValue.str_value); + + const FieldValue& item7 = event1.getValues()[7]; + EXPECT_EQ(0x2020401, item7.mField.getField()); + EXPECT_EQ(Type::INT, item7.mValue.getType()); + EXPECT_EQ(2, item7.mValue.int_value); + + const FieldValue& item8 = event1.getValues()[8]; + EXPECT_EQ(0x2020483, item8.mField.getField()); + EXPECT_EQ(Type::STRING, item8.mValue.getType()); + EXPECT_EQ("test1", item8.mValue.str_value); + + const FieldValue& item9 = event1.getValues()[9]; + EXPECT_EQ(0x2020501, item9.mField.getField()); + EXPECT_EQ(Type::INT, item9.mValue.getType()); + EXPECT_EQ(111, item9.mValue.int_value); + + const FieldValue& item10 = event1.getValues()[10]; + EXPECT_EQ(0x2020584, item10.mField.getField()); + EXPECT_EQ(Type::FLOAT, item10.mValue.getType()); + EXPECT_EQ(2.2f, item10.mValue.float_value); + + const FieldValue& item11 = event1.getValues()[11]; + EXPECT_EQ(0x2028601, item11.mField.getField()); + EXPECT_EQ(Type::INT, item11.mValue.getType()); + EXPECT_EQ(222, item11.mValue.int_value); + + const FieldValue& item12 = event1.getValues()[12]; + EXPECT_EQ(0x2028684, item12.mField.getField()); + EXPECT_EQ(Type::FLOAT, item12.mValue.getType()); + EXPECT_EQ(1.1f, item12.mValue.float_value); +} + } // namespace statsd } // namespace os diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt index 14568d561a09..d5884417e3b8 100644 --- a/config/hiddenapi-light-greylist.txt +++ b/config/hiddenapi-light-greylist.txt @@ -1650,348 +1650,8 @@ Landroid/system/OsConstants;->XATTR_CREATE:I Landroid/system/OsConstants;->XATTR_REPLACE:I Landroid/system/OsConstants;->_LINUX_CAPABILITY_VERSION_3:I Landroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval; -Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY:Ljava/lang/String; -Landroid/telephony/CarrierConfigManager;->KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL:Ljava/lang/String; Landroid/telephony/CarrierMessagingServiceManager;-><init>()V -Landroid/telephony/cdma/CdmaCellLocation;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z -Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationId:I -Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLatitude:I -Landroid/telephony/cdma/CdmaCellLocation;->mBaseStationLongitude:I -Landroid/telephony/cdma/CdmaCellLocation;->mNetworkId:I -Landroid/telephony/cdma/CdmaCellLocation;->mSystemId:I -Landroid/telephony/CellBroadcastMessage;-><init>(Landroid/telephony/SmsCbMessage;)V -Landroid/telephony/CellBroadcastMessage;->createFromCursor(Landroid/database/Cursor;)Landroid/telephony/CellBroadcastMessage; -Landroid/telephony/CellBroadcastMessage;->getContentValues()Landroid/content/ContentValues; -Landroid/telephony/CellBroadcastMessage;->getDeliveryTime()J -Landroid/telephony/CellBroadcastMessage;->getEtwsWarningInfo()Landroid/telephony/SmsCbEtwsInfo; -Landroid/telephony/CellBroadcastMessage;->getLanguageCode()Ljava/lang/String; -Landroid/telephony/CellBroadcastMessage;->getMessageBody()Ljava/lang/String; -Landroid/telephony/CellBroadcastMessage;->getSerialNumber()I -Landroid/telephony/CellBroadcastMessage;->getServiceCategory()I -Landroid/telephony/CellBroadcastMessage;->getSpokenDateString(Landroid/content/Context;)Ljava/lang/String; -Landroid/telephony/CellBroadcastMessage;->isCmasMessage()Z -Landroid/telephony/CellBroadcastMessage;->isEmergencyAlertMessage()Z -Landroid/telephony/CellBroadcastMessage;->isEtwsMessage()Z -Landroid/telephony/CellBroadcastMessage;->isRead()Z -Landroid/telephony/CellIdentityCdma;-><init>(IIIII)V -Landroid/telephony/CellIdentityGsm;-><init>()V -Landroid/telephony/CellIdentityGsm;->mArfcn:I -Landroid/telephony/CellIdentityGsm;->mBsic:I -Landroid/telephony/CellIdentityLte;-><init>()V -Landroid/telephony/CellIdentityLte;-><init>(IIIII)V -Landroid/telephony/CellIdentityLte;->mEarfcn:I -Landroid/telephony/CellIdentityWcdma;->mUarfcn:I -Landroid/telephony/CellInfo;->getTimeStampType()I -Landroid/telephony/CellInfo;->timeStampTypeToString(I)Ljava/lang/String; -Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_ANTENNA:I -Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_JAVA_RIL:I -Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_MODEM:I -Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_OEM_RIL:I -Landroid/telephony/CellInfo;->TIMESTAMP_TYPE_UNKNOWN:I -Landroid/telephony/CellInfoCdma;-><init>()V -Landroid/telephony/CellInfoCdma;-><init>(Landroid/telephony/CellInfoCdma;)V -Landroid/telephony/CellInfoCdma;->setCellIdentity(Landroid/telephony/CellIdentityCdma;)V -Landroid/telephony/CellInfoGsm;-><init>()V -Landroid/telephony/CellInfoLte;-><init>()V -Landroid/telephony/CellInfoLte;->setCellIdentity(Landroid/telephony/CellIdentityLte;)V -Landroid/telephony/CellInfoLte;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthLte;)V -Landroid/telephony/CellLocation;->fillInNotifierBundle(Landroid/os/Bundle;)V -Landroid/telephony/CellLocation;->isEmpty()Z -Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation; -Landroid/telephony/CellSignalStrengthGsm;-><init>()V -Landroid/telephony/CellSignalStrengthGsm;->mBitErrorRate:I -Landroid/telephony/CellSignalStrengthGsm;->mSignalStrength:I -Landroid/telephony/CellSignalStrengthGsm;->mTimingAdvance:I -Landroid/telephony/CellSignalStrengthLte;-><init>()V -Landroid/telephony/CellSignalStrengthLte;->mCqi:I -Landroid/telephony/CellSignalStrengthLte;->mRsrp:I -Landroid/telephony/CellSignalStrengthLte;->mRsrq:I -Landroid/telephony/CellSignalStrengthLte;->mRssnr:I -Landroid/telephony/CellSignalStrengthLte;->mSignalStrength:I -Landroid/telephony/CellSignalStrengthLte;->mTimingAdvance:I -Landroid/telephony/CellSignalStrengthWcdma;->mBitErrorRate:I -Landroid/telephony/CellSignalStrengthWcdma;->mSignalStrength:I -Landroid/telephony/DisconnectCause;->toString(I)Ljava/lang/String; -Landroid/telephony/euicc/EuiccInfo;->osVersion:Ljava/lang/String; -Landroid/telephony/gsm/GsmCellLocation;->setPsc(I)V -Landroid/telephony/ims/ImsSsInfo;-><init>()V -Landroid/telephony/NeighboringCellInfo;->mCid:I -Landroid/telephony/NeighboringCellInfo;->mLac:I -Landroid/telephony/NeighboringCellInfo;->mNetworkType:I -Landroid/telephony/NeighboringCellInfo;->mPsc:I -Landroid/telephony/NeighboringCellInfo;->mRssi:I -Landroid/telephony/PhoneNumberFormattingTextWatcher;->mFormatter:Lcom/android/i18n/phonenumbers/AsYouTypeFormatter; -Landroid/telephony/PhoneNumberUtils;->cdmaCheckAndProcessPlusCode(Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;Z)Z -Landroid/telephony/PhoneNumberUtils;->compareLoosely(Ljava/lang/String;Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->compareStrictly(Ljava/lang/String;Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->compareStrictly(Ljava/lang/String;Ljava/lang/String;Z)Z -Landroid/telephony/PhoneNumberUtils;->convertPreDial(Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/PhoneNumberUtils;->getUsernameFromUriNumber(Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(Ljava/lang/String;Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isNanp(Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isUriNumber(Ljava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isVoiceMailNumber(Landroid/content/Context;ILjava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->MIN_MATCH:I -Landroid/telephony/PhoneNumberUtils;->ttsSpanAsPhoneNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -Landroid/telephony/PhoneStateListener;-><init>(Landroid/os/Looper;)V -Landroid/telephony/PhoneStateListener;->callback:Lcom/android/internal/telephony/IPhoneStateListener; -Landroid/telephony/PhoneStateListener;->LISTEN_PRECISE_CALL_STATE:I -Landroid/telephony/PhoneStateListener;->mSubId:Ljava/lang/Integer; -Landroid/telephony/PhoneStateListener;->onDataConnectionRealTimeInfoChanged(Landroid/telephony/DataConnectionRealTimeInfo;)V -Landroid/telephony/PhoneStateListener;->onOemHookRawEvent([B)V -Landroid/telephony/PhoneStateListener;->onOtaspChanged(I)V -Landroid/telephony/PhoneStateListener;->onPreciseCallStateChanged(Landroid/telephony/PreciseCallState;)V -Landroid/telephony/PhoneStateListener;->onPreciseDataConnectionStateChanged(Landroid/telephony/PreciseDataConnectionState;)V -Landroid/telephony/PhoneStateListener;->onVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V -Landroid/telephony/PreciseCallState;-><init>(IIIII)V -Landroid/telephony/PreciseCallState;->getDisconnectCause()I -Landroid/telephony/PreciseCallState;->getPreciseDisconnectCause()I -Landroid/telephony/PreciseCallState;->getRingingCallState()I -Landroid/telephony/PreciseDataConnectionState;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Ljava/lang/String;)V -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionAPN()Ljava/lang/String; -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionAPNType()Ljava/lang/String; -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionChangeReason()Ljava/lang/String; -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionFailCause()Ljava/lang/String; -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionLinkProperties()Landroid/net/LinkProperties; -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionNetworkType()I -Landroid/telephony/PreciseDataConnectionState;->getDataConnectionState()I -Landroid/telephony/RadioAccessFamily;->getNetworkTypeFromRaf(I)I -Landroid/telephony/RadioAccessFamily;->getPhoneId()I -Landroid/telephony/RadioAccessFamily;->getRadioAccessFamily()I -Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -Landroid/telephony/Rlog;->v(Ljava/lang/String;Ljava/lang/String;)I -Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I -Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -Landroid/telephony/ServiceState;->bearerBitmapHasCdma(I)Z -Landroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z -Landroid/telephony/ServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V -Landroid/telephony/ServiceState;->getCdmaDefaultRoamingIndicator()I -Landroid/telephony/ServiceState;->getCdmaEriIconIndex()I -Landroid/telephony/ServiceState;->getCdmaEriIconMode()I -Landroid/telephony/ServiceState;->getCdmaRoamingIndicator()I -Landroid/telephony/ServiceState;->getCssIndicator()I -Landroid/telephony/ServiceState;->getDataNetworkType()I -Landroid/telephony/ServiceState;->getDataOperatorAlphaShort()Ljava/lang/String; -Landroid/telephony/ServiceState;->getDataOperatorNumeric()Ljava/lang/String; -Landroid/telephony/ServiceState;->getDataRoamingType()I -Landroid/telephony/ServiceState;->getRadioTechnology()I -Landroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I -Landroid/telephony/ServiceState;->getVoiceOperatorAlphaLong()Ljava/lang/String; -Landroid/telephony/ServiceState;->getVoiceOperatorAlphaShort()Ljava/lang/String; -Landroid/telephony/ServiceState;->getVoiceOperatorNumeric()Ljava/lang/String; -Landroid/telephony/ServiceState;->getVoiceRoaming()Z -Landroid/telephony/ServiceState;->getVoiceRoamingType()I -Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I -Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I -Landroid/telephony/ServiceState;->mCdmaEriIconMode:I -Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I -Landroid/telephony/ServiceState;->mCssIndicator:Z -Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z -Landroid/telephony/ServiceState;->mIsUsingCarrierAggregation:Z -Landroid/telephony/ServiceState;->mNetworkId:I -Landroid/telephony/ServiceState;->mSystemId:I -Landroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState; -Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IWLAN:I -Landroid/telephony/ServiceState;->setCdmaDefaultRoamingIndicator(I)V -Landroid/telephony/ServiceState;->setCdmaEriIconIndex(I)V -Landroid/telephony/ServiceState;->setCdmaEriIconMode(I)V -Landroid/telephony/ServiceState;->setCdmaRoamingIndicator(I)V -Landroid/telephony/ServiceState;->setCssIndicator(I)V -Landroid/telephony/ServiceState;->setDataRegState(I)V -Landroid/telephony/ServiceState;->setDataRoaming(Z)V -Landroid/telephony/ServiceState;->setDataRoamingFromRegistration(Z)V -Landroid/telephony/ServiceState;->setDataRoamingType(I)V -Landroid/telephony/ServiceState;->setEmergencyOnly(Z)V -Landroid/telephony/ServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V -Landroid/telephony/ServiceState;->setOperatorAlphaLong(Ljava/lang/String;)V -Landroid/telephony/ServiceState;->setVoiceRegState(I)V -Landroid/telephony/ServiceState;->setVoiceRoaming(Z)V -Landroid/telephony/ServiceState;->setVoiceRoamingType(I)V -Landroid/telephony/SignalStrength;-><init>()V -Landroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V -Landroid/telephony/SignalStrength;-><init>(Landroid/telephony/SignalStrength;)V -Landroid/telephony/SignalStrength;-><init>(Z)V -Landroid/telephony/SignalStrength;->copyFrom(Landroid/telephony/SignalStrength;)V -Landroid/telephony/SignalStrength;->CREATOR:Landroid/os/Parcelable$Creator; -Landroid/telephony/SignalStrength;->fillInNotifierBundle(Landroid/os/Bundle;)V -Landroid/telephony/SignalStrength;->getAsuLevel()I -Landroid/telephony/SignalStrength;->getCdmaAsuLevel()I -Landroid/telephony/SignalStrength;->getCdmaLevel()I -Landroid/telephony/SignalStrength;->getDbm()I -Landroid/telephony/SignalStrength;->getEvdoAsuLevel()I -Landroid/telephony/SignalStrength;->getEvdoLevel()I -Landroid/telephony/SignalStrength;->getGsmAsuLevel()I -Landroid/telephony/SignalStrength;->getGsmDbm()I -Landroid/telephony/SignalStrength;->getGsmLevel()I -Landroid/telephony/SignalStrength;->getLteAsuLevel()I -Landroid/telephony/SignalStrength;->getLteCqi()I -Landroid/telephony/SignalStrength;->getLteDbm()I -Landroid/telephony/SignalStrength;->getLteLevel()I -Landroid/telephony/SignalStrength;->getLteRsrp()I -Landroid/telephony/SignalStrength;->getLteRsrq()I -Landroid/telephony/SignalStrength;->getLteRssnr()I -Landroid/telephony/SignalStrength;->getLteSignalStrength()I -Landroid/telephony/SignalStrength;->getTdScdmaAsuLevel()I -Landroid/telephony/SignalStrength;->getTdScdmaDbm()I -Landroid/telephony/SignalStrength;->getTdScdmaLevel()I -Landroid/telephony/SignalStrength;->mCdmaDbm:I -Landroid/telephony/SignalStrength;->mCdmaEcio:I -Landroid/telephony/SignalStrength;->mEvdoDbm:I -Landroid/telephony/SignalStrength;->mEvdoEcio:I -Landroid/telephony/SignalStrength;->mEvdoSnr:I -Landroid/telephony/SignalStrength;->mGsmBitErrorRate:I -Landroid/telephony/SignalStrength;->mGsmSignalStrength:I -Landroid/telephony/SignalStrength;->mLteCqi:I -Landroid/telephony/SignalStrength;->mLteRsrp:I -Landroid/telephony/SignalStrength;->mLteRsrpBoost:I -Landroid/telephony/SignalStrength;->mLteRsrq:I -Landroid/telephony/SignalStrength;->mLteRssnr:I -Landroid/telephony/SignalStrength;->mLteSignalStrength:I -Landroid/telephony/SignalStrength;->mTdScdmaRscp:I -Landroid/telephony/SignalStrength;->mWcdmaRscp:I -Landroid/telephony/SignalStrength;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/SignalStrength; -Landroid/telephony/SignalStrength;->NUM_SIGNAL_STRENGTH_BINS:I -Landroid/telephony/SignalStrength;->setFromNotifierBundle(Landroid/os/Bundle;)V -Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GOOD:I -Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_GREAT:I -Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_MODERATE:I -Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I -Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_POOR:I -Landroid/telephony/SignalStrength;->validateInput()V -Landroid/telephony/SmsManager;->copyMessageToIcc([B[BI)Z -Landroid/telephony/SmsManager;->deleteMessageFromIcc(I)Z -Landroid/telephony/SmsManager;->disableCellBroadcastRange(III)Z -Landroid/telephony/SmsManager;->enableCellBroadcastRange(III)Z -Landroid/telephony/SmsManager;->getAllMessagesFromIcc()Ljava/util/ArrayList; -Landroid/telephony/SmsManager;->isSMSPromptEnabled()Z -Landroid/telephony/SmsManager;->mSubId:I -Landroid/telephony/SmsManager;->sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;IZI)V -Landroid/telephony/SmsManager;->sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V -Landroid/telephony/SmsManager;->sendTextMessageWithoutPersisting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;IZI)V -Landroid/telephony/SmsManager;->updateMessageOnIcc(II[B)Z -Landroid/telephony/SmsMessage;->fragmentText(Ljava/lang/String;)Ljava/util/ArrayList; -Landroid/telephony/SmsMessage;->getSubId()I -Landroid/telephony/SmsMessage;->mSubId:I -Landroid/telephony/SmsMessage;->mWrappedSmsMessage:Lcom/android/internal/telephony/SmsMessageBase; -Landroid/telephony/SmsMessage;->setSubId(I)V -Landroid/telephony/SmsMessage;->useCdmaFormatForMoSms()Z -Landroid/telephony/SmsMessage;->useCdmaFormatForMoSms(I)Z -Landroid/telephony/SubscriptionInfo;->getNameSource()I -Landroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V -Landroid/telephony/SubscriptionManager;->CONTENT_URI:Landroid/net/Uri; -Landroid/telephony/SubscriptionManager;->DEFAULT_SUBSCRIPTION_ID:I -Landroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList()[I -Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoCount()I -Landroid/telephony/SubscriptionManager;->getAllSubscriptionInfoList()Ljava/util/List; -Landroid/telephony/SubscriptionManager;->getDefaultDataPhoneId()I -Landroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionInfo()Landroid/telephony/SubscriptionInfo; -Landroid/telephony/SubscriptionManager;->getDefaultSmsPhoneId()I -Landroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionInfo()Landroid/telephony/SubscriptionInfo; -Landroid/telephony/SubscriptionManager;->getPhoneId(I)I -Landroid/telephony/SubscriptionManager;->getSlotIndex(I)I -Landroid/telephony/SubscriptionManager;->getSubId(I)[I -Landroid/telephony/SubscriptionManager;->NAME_SOURCE_USER_INPUT:I -Landroid/telephony/SubscriptionManager;->setDataRoaming(II)I -Landroid/telephony/SubscriptionManager;->setDefaultDataSubId(I)V -Landroid/telephony/SubscriptionManager;->setDefaultSmsSubId(I)V -Landroid/telephony/SubscriptionManager;->setDisplayNumber(Ljava/lang/String;I)I -Landroid/telephony/TelephonyManager$MultiSimVariants;->TSTS:Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager$MultiSimVariants;->UNKNOWN:Landroid/telephony/TelephonyManager$MultiSimVariants; Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager;-><init>()V -Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V -Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V -Landroid/telephony/TelephonyManager;->ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED:Ljava/lang/String; -Landroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager; -Landroid/telephony/TelephonyManager;->getCallState(I)I -Landroid/telephony/TelephonyManager;->getCdmaEriIconIndex(I)I -Landroid/telephony/TelephonyManager;->getCdmaEriIconMode(I)I -Landroid/telephony/TelephonyManager;->getCdmaEriText(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getDataNetworkType(I)I -Landroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager; -Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getGroupIdLevel1(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getIccAuthentication(IIILjava/lang/String;)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getImsConfig(II)Landroid/telephony/ims/aidl/IImsConfig; -Landroid/telephony/TelephonyManager;->getImsRegistration(II)Landroid/telephony/ims/aidl/IImsRegistration; -Landroid/telephony/TelephonyManager;->getIsimImpi()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getIsimPcscf()[Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony; -Landroid/telephony/TelephonyManager;->getLine1AlphaTag(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getLteOnCdmaMode()I -Landroid/telephony/TelephonyManager;->getLteOnCdmaMode(I)I -Landroid/telephony/TelephonyManager;->getLteOnCdmaModeStatic()I -Landroid/telephony/TelephonyManager;->getMergedSubscriberIds()[Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getMsisdn()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getMsisdn(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager;->getNai(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkClass(I)I -Landroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkCountryIsoForPhone(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkOperator(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkType(I)I -Landroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getOtaSpNumberSchemaForPhone(ILjava/lang/String;)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getPhoneId(I)I -Landroid/telephony/TelephonyManager;->getPhoneType(I)I -Landroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I -Landroid/telephony/TelephonyManager;->getProcCmdLine()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimCount()I -Landroid/telephony/TelephonyManager;->getSimCountryIso(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperator(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperatorName(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperatorNameForPhone(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSlotIndex()I -Landroid/telephony/TelephonyManager;->getSubId(I)I -Landroid/telephony/TelephonyManager;->getSubIdForPhoneAccount(Landroid/telecom/PhoneAccount;)I -Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getSubscriberInfo()Lcom/android/internal/telephony/IPhoneSubInfo; -Landroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getTelephonyProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getVoiceMailAlphaTag(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getVoiceMailNumber(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getVoiceMessageCount(I)I -Landroid/telephony/TelephonyManager;->hasIccCard(I)Z -Landroid/telephony/TelephonyManager;->isMultiSimEnabled()Z -Landroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z -Landroid/telephony/TelephonyManager;->isVideoTelephonyAvailable()Z -Landroid/telephony/TelephonyManager;->isVolteAvailable()Z -Landroid/telephony/TelephonyManager;->isWifiCallingAvailable()Z -Landroid/telephony/TelephonyManager;->mSubscriptionManager:Landroid/telephony/SubscriptionManager; -Landroid/telephony/TelephonyManager;->NETWORK_CLASS_2_G:I -Landroid/telephony/TelephonyManager;->NETWORK_CLASS_3_G:I -Landroid/telephony/TelephonyManager;->NETWORK_CLASS_4_G:I -Landroid/telephony/TelephonyManager;->NETWORK_TYPE_LTE_CA:I -Landroid/telephony/TelephonyManager;->nvReadItem(I)Ljava/lang/String; -Landroid/telephony/TelephonyManager;->setBasebandVersionForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setDataNetworkTypeForPhone(II)V -Landroid/telephony/TelephonyManager;->setImsRegistrationState(Z)V -Landroid/telephony/TelephonyManager;->setNetworkOperatorNameForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setNetworkOperatorNumericForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setNetworkRoamingForPhone(IZ)V -Landroid/telephony/TelephonyManager;->setPhoneType(II)V -Landroid/telephony/TelephonyManager;->setRoamingOverride(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z -Landroid/telephony/TelephonyManager;->setSimCountryIsoForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setSimOperatorNameForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setSimOperatorNumericForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setSimStateForPhone(ILjava/lang/String;)V -Landroid/telephony/TelephonyManager;->setTelephonyProperty(ILjava/lang/String;Ljava/lang/String;)V -Landroid/telephony/VoLteServiceState;-><init>(I)V Landroid/transition/ChangeBounds;->BOTTOM_RIGHT_ONLY_PROPERTY:Landroid/util/Property; Landroid/transition/ChangeBounds;->POSITION_PROPERTY:Landroid/util/Property; Landroid/transition/Scene;->mEnterAction:Ljava/lang/Runnable; diff --git a/config/hiddenapi-vendor-list.txt b/config/hiddenapi-vendor-list.txt index 4dc5bd4e7016..efc4ca7116ac 100644 --- a/config/hiddenapi-vendor-list.txt +++ b/config/hiddenapi-vendor-list.txt @@ -137,42 +137,10 @@ Landroid/system/Os;->setsockoptIfreq(Ljava/io/FileDescriptor;IILjava/lang/String Landroid/system/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V Landroid/system/PacketSocketAddress;-><init>(I[B)V Landroid/system/PacketSocketAddress;-><init>(SI)V -Landroid/telephony/euicc/DownloadableSubscription;->encodedActivationCode:Ljava/lang/String; -Landroid/telephony/euicc/DownloadableSubscription;->setAccessRules([Landroid/telephony/UiccAccessRule;)V -Landroid/telephony/euicc/DownloadableSubscription;->setCarrierName(Ljava/lang/String;)V -Landroid/telephony/ims/compat/feature/ImsFeature;->getFeatureState()I -Landroid/telephony/ims/compat/feature/ImsFeature;->setFeatureState(I)V Landroid/telephony/ims/compat/feature/MMTelFeature;-><init>()V Landroid/telephony/ims/compat/ImsService;-><init>()V -Landroid/telephony/ims/compat/ImsService;->mImsServiceController:Landroid/os/IBinder; Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;-><init>()V -Landroid/telephony/ims/compat/stub/ImsConfigImplBase;-><init>(Landroid/content/Context;)V -Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getIImsConfig()Lcom/android/ims/internal/IImsConfig; Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;-><init>()V -Landroid/telephony/ims/ImsCallForwardInfo;-><init>()V -Landroid/telephony/ims/ImsCallForwardInfo;->mCondition:I -Landroid/telephony/ims/ImsCallForwardInfo;->mNumber:Ljava/lang/String; -Landroid/telephony/ims/ImsCallForwardInfo;->mServiceClass:I -Landroid/telephony/ims/ImsCallForwardInfo;->mStatus:I -Landroid/telephony/ims/ImsCallForwardInfo;->mTimeSeconds:I -Landroid/telephony/ims/ImsCallForwardInfo;->mToA:I -Landroid/telephony/ims/ImsCallProfile;->mCallExtras:Landroid/os/Bundle; -Landroid/telephony/ims/ImsCallProfile;->mCallType:I -Landroid/telephony/ims/ImsCallProfile;->mMediaProfile:Landroid/telephony/ims/ImsStreamMediaProfile; -Landroid/telephony/ims/ImsCallProfile;->mRestrictCause:I -Landroid/telephony/ims/ImsCallProfile;->presentationToOIR(I)I -Landroid/telephony/ims/ImsExternalCallState;-><init>(ILandroid/net/Uri;ZIIZ)V -Landroid/telephony/ims/ImsReasonInfo;-><init>(II)V -Landroid/telephony/ims/ImsReasonInfo;->mCode:I -Landroid/telephony/ims/ImsReasonInfo;->mExtraCode:I -Landroid/telephony/ims/ImsReasonInfo;->mExtraMessage:Ljava/lang/String; -Landroid/telephony/ims/ImsSsInfo;->mIcbNum:Ljava/lang/String; -Landroid/telephony/ims/ImsSsInfo;->mStatus:I -Landroid/telephony/ims/ImsStreamMediaProfile;-><init>()V -Landroid/telephony/ims/ImsStreamMediaProfile;->mAudioDirection:I -Landroid/telephony/ims/ImsStreamMediaProfile;->mAudioQuality:I -Landroid/telephony/ims/ImsStreamMediaProfile;->mVideoDirection:I -Landroid/telephony/ims/ImsVideoCallProvider;->getInterface()Lcom/android/ims/internal/IImsVideoCallProvider; Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;-><init>()V Landroid/telephony/mbms/IStreamingServiceCallback$Stub;-><init>()V Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/vendor/IMbmsStreamingService; @@ -180,58 +148,6 @@ Landroid/telephony/mbms/vendor/IMbmsStreamingService;->getPlaybackUri(ILjava/lan Landroid/telephony/mbms/vendor/IMbmsStreamingService;->initialize(Landroid/telephony/mbms/IMbmsStreamingSessionCallback;I)I Landroid/telephony/mbms/vendor/IMbmsStreamingService;->requestUpdateStreamingServices(ILjava/util/List;)I Landroid/telephony/mbms/vendor/IMbmsStreamingService;->startStreaming(ILjava/lang/String;Landroid/telephony/mbms/IStreamingServiceCallback;)I -Landroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;I)Ljava/lang/String; -Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(ILjava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(ILjava/lang/String;)Z -Landroid/telephony/PhoneNumberUtils;->isPotentialLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z -Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;)V -Landroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V -Landroid/telephony/PreciseCallState;->getBackgroundCallState()I -Landroid/telephony/PreciseCallState;->getForegroundCallState()I -Landroid/telephony/RadioAccessFamily;-><init>(II)V -Landroid/telephony/RadioAccessFamily;->getRafFromNetworkType(I)I -Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I -Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I -Landroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -Landroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;)I -Landroid/telephony/ServiceState;->bitmaskHasTech(II)Z -Landroid/telephony/ServiceState;->getDataRegState()I -Landroid/telephony/ServiceState;->getDataRoaming()Z -Landroid/telephony/ServiceState;->getRilDataRadioTechnology()I -Landroid/telephony/ServiceState;->getVoiceNetworkType()I -Landroid/telephony/ServiceState;->getVoiceRegState()I -Landroid/telephony/ServiceState;->isCdma(I)Z -Landroid/telephony/ServiceState;->isEmergencyOnly()Z -Landroid/telephony/ServiceState;->isGsm(I)Z -Landroid/telephony/ServiceState;->mergeServiceStates(Landroid/telephony/ServiceState;Landroid/telephony/ServiceState;)Landroid/telephony/ServiceState; -Landroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String; -Landroid/telephony/SubscriptionInfo;->setDisplayName(Ljava/lang/CharSequence;)V -Landroid/telephony/SubscriptionInfo;->setIconTint(I)V -Landroid/telephony/SubscriptionManager;->clearDefaultsForInactiveSubIds()V -Landroid/telephony/SubscriptionManager;->getDefaultVoicePhoneId()I -Landroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources; -Landroid/telephony/SubscriptionManager;->isActiveSubId(I)Z -Landroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z -Landroid/telephony/SubscriptionManager;->isValidPhoneId(I)Z -Landroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z -Landroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z -Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;I)V -Landroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;II)V -Landroid/telephony/SubscriptionManager;->setDisplayName(Ljava/lang/String;IJ)I -Landroid/telephony/SubscriptionManager;->setIconTint(II)I -Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDA:Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager$MultiSimVariants;->DSDS:Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager;->getIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;I)I -Landroid/telephony/TelephonyManager;->getIsimDomain()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getNetworkTypeName()Ljava/lang/String; -Landroid/telephony/TelephonyManager;->getPreferredNetworkType(I)I -Landroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState; -Landroid/telephony/TelephonyManager;->getVoiceMessageCount()I -Landroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I -Landroid/telephony/TelephonyManager;->isImsRegistered()Z -Landroid/telephony/TelephonyManager;->nvResetConfig(I)Z -Landroid/telephony/TelephonyManager;->putIntAtIndex(Landroid/content/ContentResolver;Ljava/lang/String;II)Z -Landroid/telephony/TelephonyManager;->setPreferredNetworkType(II)Z Landroid/view/AppTransitionAnimationSpec;-><init>(ILandroid/graphics/GraphicBuffer;Landroid/graphics/Rect;)V Landroid/view/BatchedInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;Landroid/view/Choreographer;)V Landroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer; diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index a0cfa8c8cb2f..8d5b96bdd051 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -6382,6 +6382,10 @@ public class Activity extends ContextThemeWrapper } void dumpInner(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { + if (args != null && args.length > 0 && args[0].equals("--autofill")) { + dumpAutofillManager(prefix, writer); + return; + } writer.print(prefix); writer.print("Local Activity "); writer.print(Integer.toHexString(System.identityHashCode(this))); writer.println(" State:"); @@ -6409,16 +6413,20 @@ public class Activity extends ContextThemeWrapper mHandler.getLooper().dump(new PrintWriterPrinter(writer), prefix); + dumpAutofillManager(prefix, writer); + + ResourcesManager.getInstance().dump(prefix, writer); + } + + void dumpAutofillManager(String prefix, PrintWriter writer) { final AutofillManager afm = getAutofillManager(); if (afm != null) { + afm.dump(prefix, writer); writer.print(prefix); writer.print("Autofill Compat Mode: "); writer.println(isAutofillCompatibilityEnabled()); - afm.dump(prefix, writer); } else { writer.print(prefix); writer.println("No AutofillManager"); } - - ResourcesManager.getInstance().dump(prefix, writer); } /** diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index a056b24fb7b7..63c61d319a44 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -960,14 +960,15 @@ public class ActivityOptions { } /** - * Sets the bounds (window size) that the activity should be launched in. + * Sets the bounds (window size and position) that the activity should be launched in. * Rect position should be provided in pixels and in screen coordinates. - * Set to null explicitly for fullscreen. + * Set to {@code null} to explicitly launch fullscreen. * <p> - * <strong>NOTE:<strong/> This value is ignored on devices that don't have + * <strong>NOTE:</strong> This value is ignored on devices that don't have * {@link android.content.pm.PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT} or * {@link android.content.pm.PackageManager#FEATURE_PICTURE_IN_PICTURE} enabled. - * @param screenSpacePixelRect Launch bounds to use for the activity or null for fullscreen. + * @param screenSpacePixelRect launch bounds or {@code null} for fullscreen + * @return {@code this} {@link ActivityOptions} instance */ public ActivityOptions setLaunchBounds(@Nullable Rect screenSpacePixelRect) { mLaunchBounds = screenSpacePixelRect != null ? new Rect(screenSpacePixelRect) : null; diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java index 68869c65d7c9..6d1383ad54ef 100644 --- a/core/java/android/app/ResourcesManager.java +++ b/core/java/android/app/ResourcesManager.java @@ -125,10 +125,13 @@ public class ResourcesManager { } } + private static final boolean ENABLE_APK_ASSETS_CACHE = true; + /** * The ApkAssets we are caching and intend to hold strong references to. */ - private final LruCache<ApkKey, ApkAssets> mLoadedApkAssets = new LruCache<>(3); + private final LruCache<ApkKey, ApkAssets> mLoadedApkAssets = + (ENABLE_APK_ASSETS_CACHE) ? new LruCache<>(3) : null; /** * The ApkAssets that are being referenced in the wild that we can reuse, even if they aren't @@ -316,9 +319,12 @@ public class ResourcesManager { private @NonNull ApkAssets loadApkAssets(String path, boolean sharedLib, boolean overlay) throws IOException { final ApkKey newKey = new ApkKey(path, sharedLib, overlay); - ApkAssets apkAssets = mLoadedApkAssets.get(newKey); - if (apkAssets != null) { - return apkAssets; + ApkAssets apkAssets = null; + if (mLoadedApkAssets != null) { + apkAssets = mLoadedApkAssets.get(newKey); + if (apkAssets != null) { + return apkAssets; + } } // Optimistically check if this ApkAssets exists somewhere else. @@ -326,7 +332,10 @@ public class ResourcesManager { if (apkAssetsRef != null) { apkAssets = apkAssetsRef.get(); if (apkAssets != null) { - mLoadedApkAssets.put(newKey, apkAssets); + if (mLoadedApkAssets != null) { + mLoadedApkAssets.put(newKey, apkAssets); + } + return apkAssets; } else { // Clean up the reference. @@ -341,7 +350,11 @@ public class ResourcesManager { } else { apkAssets = ApkAssets.loadFromPath(path, false /*system*/, sharedLib); } - mLoadedApkAssets.put(newKey, apkAssets); + + if (mLoadedApkAssets != null) { + mLoadedApkAssets.put(newKey, apkAssets); + } + mCachedApkAssets.put(newKey, new WeakReference<>(apkAssets)); return apkAssets; } @@ -441,18 +454,22 @@ public class ResourcesManager { pw.println("ResourcesManager:"); pw.increaseIndent(); - pw.print("cached apks: total="); - pw.print(mLoadedApkAssets.size()); - pw.print(" created="); - pw.print(mLoadedApkAssets.createCount()); - pw.print(" evicted="); - pw.print(mLoadedApkAssets.evictionCount()); - pw.print(" hit="); - pw.print(mLoadedApkAssets.hitCount()); - pw.print(" miss="); - pw.print(mLoadedApkAssets.missCount()); - pw.print(" max="); - pw.print(mLoadedApkAssets.maxSize()); + if (mLoadedApkAssets != null) { + pw.print("cached apks: total="); + pw.print(mLoadedApkAssets.size()); + pw.print(" created="); + pw.print(mLoadedApkAssets.createCount()); + pw.print(" evicted="); + pw.print(mLoadedApkAssets.evictionCount()); + pw.print(" hit="); + pw.print(mLoadedApkAssets.hitCount()); + pw.print(" miss="); + pw.print(mLoadedApkAssets.missCount()); + pw.print(" max="); + pw.print(mLoadedApkAssets.maxSize()); + } else { + pw.print("cached apks: 0 [cache disabled]"); + } pw.println(); pw.print("total apks: "); diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index 15bcbe32bbfb..173b7667897e 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -41,18 +41,23 @@ import java.util.Arrays; import java.util.List; /** - * Assist data automatically created by the platform's implementation of assist and autofill. + * <p>This API automatically creates assist data from the platform's + * implementation of assist and autofill. * * <p>The structure is used for assist purposes when created by * {@link android.app.Activity#onProvideAssistData}, {@link View#onProvideStructure(ViewStructure)}, * or {@link View#onProvideVirtualStructure(ViewStructure)}. * - * <p>The structure is used for autofill purposes when created by + * <p>The structure is also used for autofill purposes when created by * {@link View#onProvideAutofillStructure(ViewStructure, int)}, * or {@link View#onProvideAutofillVirtualStructure(ViewStructure, int)}. * - * <p>For performance reasons, some properties of the assist data might be available just for assist - * or autofill purposes; in those case, the property availability will be document in its javadoc. + * <p>For performance reasons, some properties of the assist data might only be available for + * assist or autofill purposes. In those cases, a property's availability will be documented + * in its javadoc. + * + * <p>To learn about using Autofill in your app, read the + * <a href="/guide/topics/text/autofill">Autofill Framework</a> guides. */ public class AssistStructure implements Parcelable { static final String TAG = "AssistStructure"; diff --git a/core/java/android/content/ClipboardManager.java b/core/java/android/content/ClipboardManager.java index 3b6c8c148dcb..3fe17840488e 100644 --- a/core/java/android/content/ClipboardManager.java +++ b/core/java/android/content/ClipboardManager.java @@ -95,6 +95,9 @@ public class ClipboardManager extends android.text.ClipboardManager { * Sets the current primary clip on the clipboard. This is the clip that * is involved in normal cut and paste operations. * + * <em>If the application is not the default IME or does not have input focus this will have + * no effect.</em> + * * @param clip The clipped data item to set. * @see #getPrimaryClip() * @see #clearPrimaryClip() @@ -112,6 +115,9 @@ public class ClipboardManager extends android.text.ClipboardManager { /** * Clears any current primary clip on the clipboard. * + * <em>If the application is not the default IME or does not have input focus this will have + * no effect.</em> + * * @see #setPrimaryClip(ClipData) */ public void clearPrimaryClip() { @@ -125,6 +131,9 @@ public class ClipboardManager extends android.text.ClipboardManager { /** * Returns the current primary clip on the clipboard. * + * <em>If the application is not the default IME or does not have input focus this return + * {@code null}.</em> + * * @see #setPrimaryClip(ClipData) */ public @Nullable ClipData getPrimaryClip() { @@ -139,6 +148,9 @@ public class ClipboardManager extends android.text.ClipboardManager { * Returns a description of the current primary clip on the clipboard * but not a copy of its data. * + * <em>If the application is not the default IME or does not have input focus this return + * {@code null}.</em> + * * @see #setPrimaryClip(ClipData) */ public @Nullable ClipDescription getPrimaryClipDescription() { @@ -151,6 +163,9 @@ public class ClipboardManager extends android.text.ClipboardManager { /** * Returns true if there is currently a primary clip on the clipboard. + * + * <em>If the application is not the default IME or the does not have input focus this will + * return {@code false}.</em> */ public boolean hasPrimaryClip() { try { diff --git a/core/java/android/service/autofill/Dataset.java b/core/java/android/service/autofill/Dataset.java index 521176797657..f8408bedd7bc 100644 --- a/core/java/android/service/autofill/Dataset.java +++ b/core/java/android/service/autofill/Dataset.java @@ -33,8 +33,13 @@ import java.util.ArrayList; import java.util.regex.Pattern; /** - * A dataset object represents a group of fields (key / value pairs) used to autofill parts of a - * screen. + * <p>A <code>Dataset</code> object represents a group of fields (key / value pairs) used + * to autofill parts of a screen. + * + * <p>For more information about the role of datasets in the autofill workflow, read + * <a href="/guide/topics/text/autofill-services">Build autofill services</a> and the + * <code><a href="/reference/android/service/autofill/AutofillService">AutofillService</a></code> + * documentation. * * <a name="BasicUsage"></a> * <h3>Basic usage</h3> @@ -88,10 +93,6 @@ import java.util.regex.Pattern; * <li>All other datasets are hidden. * </ol> * - * <a name="MoreInfo"></a> - * <h3>More information</h3> - * <p>See {@link android.service.autofill.AutofillService} for more information and examples about - * the role of datasets in the autofill workflow. */ public final class Dataset implements Parcelable { diff --git a/core/java/android/service/autofill/FillCallback.java b/core/java/android/service/autofill/FillCallback.java index 0257891e5f38..1695c1306824 100644 --- a/core/java/android/service/autofill/FillCallback.java +++ b/core/java/android/service/autofill/FillCallback.java @@ -21,8 +21,11 @@ import android.app.Activity; import android.os.RemoteException; /** - * Handles autofill requests from the {@link AutofillService} into the {@link Activity} being - * autofilled. + * <p><code>FillCallback</code> handles autofill requests from the {@link AutofillService} into + * the {@link Activity} being autofilled. + * + * <p>To learn about using Autofill services in your app, read + * <a href="/guide/topics/text/autofill-services">Build autofill services</a>. */ public final class FillCallback { private final IFillCallback mCallback; diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index ca952da15c72..33c977b6fe25 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -50,9 +50,9 @@ import java.util.Arrays; public abstract class Layout { /** @hide */ @IntDef(prefix = { "BREAK_STRATEGY_" }, value = { - BREAK_STRATEGY_SIMPLE, - BREAK_STRATEGY_HIGH_QUALITY, - BREAK_STRATEGY_BALANCED + NativeLineBreaker.BREAK_STRATEGY_SIMPLE, + NativeLineBreaker.BREAK_STRATEGY_HIGH_QUALITY, + NativeLineBreaker.BREAK_STRATEGY_BALANCED }) @Retention(RetentionPolicy.SOURCE) public @interface BreakStrategy {} @@ -63,19 +63,20 @@ public abstract class Layout { * before it (which yields a more consistent user experience when editing), but layout may not * be the highest quality. */ - public static final int BREAK_STRATEGY_SIMPLE = 0; + public static final int BREAK_STRATEGY_SIMPLE = NativeLineBreaker.BREAK_STRATEGY_SIMPLE; /** * Value for break strategy indicating high quality line breaking, including automatic * hyphenation and doing whole-paragraph optimization of line breaks. */ - public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; + public static final int BREAK_STRATEGY_HIGH_QUALITY = + NativeLineBreaker.BREAK_STRATEGY_HIGH_QUALITY; /** * Value for break strategy indicating balanced line breaking. The breaks are chosen to * make all lines as close to the same length as possible, including automatic hyphenation. */ - public static final int BREAK_STRATEGY_BALANCED = 2; + public static final int BREAK_STRATEGY_BALANCED = NativeLineBreaker.BREAK_STRATEGY_BALANCED; /** @hide */ @IntDef(prefix = { "HYPHENATION_FREQUENCY_" }, value = { @@ -93,29 +94,32 @@ public abstract class Layout { * layout and there is otherwise no valid break. Soft hyphens are ignored and will not be used * as suggestions for potential line breaks. */ - public static final int HYPHENATION_FREQUENCY_NONE = 0; + public static final int HYPHENATION_FREQUENCY_NONE = + NativeLineBreaker.HYPHENATION_FREQUENCY_NONE; /** * Value for hyphenation frequency indicating a light amount of automatic hyphenation, which * is a conservative default. Useful for informal cases, such as short sentences or chat * messages. */ - public static final int HYPHENATION_FREQUENCY_NORMAL = 1; + public static final int HYPHENATION_FREQUENCY_NORMAL = + NativeLineBreaker.HYPHENATION_FREQUENCY_NORMAL; /** * Value for hyphenation frequency indicating the full amount of automatic hyphenation, typical * in typography. Useful for running text and where it's important to put the maximum amount of * text in a screen with limited space. */ - public static final int HYPHENATION_FREQUENCY_FULL = 2; + public static final int HYPHENATION_FREQUENCY_FULL = + NativeLineBreaker.HYPHENATION_FREQUENCY_FULL; private static final ParagraphStyle[] NO_PARA_SPANS = ArrayUtils.emptyArray(ParagraphStyle.class); /** @hide */ @IntDef(prefix = { "JUSTIFICATION_MODE_" }, value = { - JUSTIFICATION_MODE_NONE, - JUSTIFICATION_MODE_INTER_WORD + NativeLineBreaker.JUSTIFICATION_MODE_NONE, + NativeLineBreaker.JUSTIFICATION_MODE_INTER_WORD }) @Retention(RetentionPolicy.SOURCE) public @interface JustificationMode {} @@ -123,12 +127,13 @@ public abstract class Layout { /** * Value for justification mode indicating no justification. */ - public static final int JUSTIFICATION_MODE_NONE = 0; + public static final int JUSTIFICATION_MODE_NONE = NativeLineBreaker.JUSTIFICATION_MODE_NONE; /** * Value for justification mode indicating the text is justified by stretching word spacing. */ - public static final int JUSTIFICATION_MODE_INTER_WORD = 1; + public static final int JUSTIFICATION_MODE_INTER_WORD = + NativeLineBreaker.JUSTIFICATION_MODE_INTER_WORD; /* * Line spacing multiplier for default line spacing. diff --git a/core/java/android/text/NativeLineBreaker.java b/core/java/android/text/NativeLineBreaker.java index a31b3361d970..2bcfa5fe0857 100644 --- a/core/java/android/text/NativeLineBreaker.java +++ b/core/java/android/text/NativeLineBreaker.java @@ -17,6 +17,7 @@ package android.text; import android.annotation.FloatRange; +import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; @@ -26,12 +27,233 @@ import dalvik.annotation.optimization.FastNative; import libcore.util.NativeAllocationRegistry; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * A native implementation of the line breaker. * TODO: Consider to make this class public. * @hide */ public class NativeLineBreaker { + @IntDef(prefix = { "BREAK_STRATEGY_" }, value = { + BREAK_STRATEGY_SIMPLE, + BREAK_STRATEGY_HIGH_QUALITY, + BREAK_STRATEGY_BALANCED + }) + @Retention(RetentionPolicy.SOURCE) + public @interface BreakStrategy {} + + /** + * Value for break strategy indicating simple line breaking. Automatic hyphens are not added + * (though soft hyphens are respected), and modifying text generally doesn't affect the layout + * before it (which yields a more consistent user experience when editing), but layout may not + * be the highest quality. + */ + public static final int BREAK_STRATEGY_SIMPLE = 0; + + /** + * Value for break strategy indicating high quality line breaking, including automatic + * hyphenation and doing whole-paragraph optimization of line breaks. + */ + public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; + + /** + * Value for break strategy indicating balanced line breaking. The breaks are chosen to + * make all lines as close to the same length as possible, including automatic hyphenation. + */ + public static final int BREAK_STRATEGY_BALANCED = 2; + + @IntDef(prefix = { "HYPHENATION_FREQUENCY_" }, value = { + HYPHENATION_FREQUENCY_NORMAL, + HYPHENATION_FREQUENCY_FULL, + HYPHENATION_FREQUENCY_NONE + }) + @Retention(RetentionPolicy.SOURCE) + public @interface HyphenationFrequency {} + + /** + * Value for hyphenation frequency indicating no automatic hyphenation. Useful + * for backward compatibility, and for cases where the automatic hyphenation algorithm results + * in incorrect hyphenation. Mid-word breaks may still happen when a word is wider than the + * layout and there is otherwise no valid break. Soft hyphens are ignored and will not be used + * as suggestions for potential line breaks. + */ + public static final int HYPHENATION_FREQUENCY_NONE = 0; + + /** + * Value for hyphenation frequency indicating a light amount of automatic hyphenation, which + * is a conservative default. Useful for informal cases, such as short sentences or chat + * messages. + */ + public static final int HYPHENATION_FREQUENCY_NORMAL = 1; + + /** + * Value for hyphenation frequency indicating the full amount of automatic hyphenation, typical + * in typography. Useful for running text and where it's important to put the maximum amount of + * text in a screen with limited space. + */ + public static final int HYPHENATION_FREQUENCY_FULL = 2; + + @IntDef(prefix = { "JUSTIFICATION_MODE_" }, value = { + JUSTIFICATION_MODE_NONE, + JUSTIFICATION_MODE_INTER_WORD + }) + @Retention(RetentionPolicy.SOURCE) + public @interface JustificationMode {} + + /** + * Value for justification mode indicating no justification. + */ + public static final int JUSTIFICATION_MODE_NONE = 0; + + /** + * Value for justification mode indicating the text is justified by stretching word spacing. + */ + public static final int JUSTIFICATION_MODE_INTER_WORD = 1; + + /** + * A builder class of NativeLineBreaker. + */ + public static class Builder { + private @BreakStrategy int mBreakStrategy = BREAK_STRATEGY_SIMPLE; + private @HyphenationFrequency int mHyphenationFrequency = HYPHENATION_FREQUENCY_NONE; + private @JustificationMode int mJustified = JUSTIFICATION_MODE_NONE; + private @Nullable int[] mIndents = null; + + /** + * Construct a builder class. + */ + public Builder() {} + + /** + * Set break strategy. + */ + public Builder setBreakStrategy(@BreakStrategy int breakStrategy) { + mBreakStrategy = breakStrategy; + return this; + } + + /** + * Set hyphenation frequency. + */ + public Builder setHyphenationFrequency(@HyphenationFrequency int hyphenationFrequency) { + mHyphenationFrequency = hyphenationFrequency; + return this; + } + + /** + * Set whether the text is justified. + */ + public Builder setJustified(@JustificationMode int justified) { + mJustified = justified; + return this; + } + + /** + * Set indents for entire text. + * + * Sets the total (left + right) indents in pixel per lines. + */ + public Builder setIndents(@Nullable int[] indents) { + mIndents = indents; + return this; + } + + /** + * Returns the NativeLineBreaker with given parameters. + */ + NativeLineBreaker build() { + return new NativeLineBreaker(mBreakStrategy, mHyphenationFrequency, mJustified, + mIndents); + } + } + + /** + * Line breaking constraints for single paragraph. + */ + public static class ParagraphConstraints { + private @FloatRange(from = 0.0f) float mWidth = 0; + private @FloatRange(from = 0.0f) float mFirstWidth = 0; + private @IntRange(from = 0) int mFirstWidthLineCount = 0; + private @Nullable int[] mVariableTabStops = null; + private @IntRange(from = 0) int mDefaultTabStop = 0; + + public ParagraphConstraints() {} + + /** + * Set width for this paragraph. + */ + public void setWidth(@FloatRange(from = 0.0f) float width) { + mWidth = width; + } + + /** + * Set indent for this paragraph. + * + * @param firstWidth the line width of the starting of the paragraph + * @param firstWidthLineCount the number of lines that applies the firstWidth + */ + public void setIndent(@FloatRange(from = 0.0f) float firstWidth, + @IntRange(from = 0) int firstWidthLineCount) { + mFirstWidth = firstWidth; + mFirstWidthLineCount = firstWidthLineCount; + } + + /** + * Set tab stops for this paragraph. + * + * @param tabStops the array of pixels of tap stopping position + * @param defaultTabStop pixels of the default tab stopping position + */ + public void setTabStops(@Nullable int[] tabStops, @IntRange(from = 0) int defaultTabStop) { + mVariableTabStops = tabStops; + mDefaultTabStop = defaultTabStop; + } + + /** + * Return the width for this paragraph in pixels. + */ + public @FloatRange(from = 0.0f) float getWidth() { + return mWidth; + } + + /** + * Return the first line's width for this paragraph in pixel. + * + * @see #setIndent(float, int) + */ + public @FloatRange(from = 0.0f) float getFirstWidth() { + return mFirstWidth; + } + + /** + * Return the number of lines to apply the first line's width. + * + * @see #setIndent(float, int) + */ + public @IntRange(from = 0) int getFirstWidthLineCount() { + return mFirstWidthLineCount; + } + + /** + * Returns the array of tab stops in pixels. + * + * @see #setTabStops(int[], int) + */ + public @Nullable int[] getTabStops() { + return mVariableTabStops; + } + + /** + * Returns the default tab stops in pixels. + * + * @see #setTabStop(int[], int) + */ + public @IntRange(from = 0) int getDefaultTabStop() { + return mDefaultTabStop; + } + } /** * A result object of a line breaking @@ -43,6 +265,7 @@ public class NativeLineBreaker { public float[] widths = new float[INITIAL_SIZE]; public float[] ascents = new float[INITIAL_SIZE]; public float[] descents = new float[INITIAL_SIZE]; + // TODO: Introduce Hyphenator for explaining the meaning of flags. public int[] flags = new int[INITIAL_SIZE]; // breaks, widths, and flags should all have the same length } @@ -53,54 +276,44 @@ public class NativeLineBreaker { private final long mNativePtr; /** - * A constructor of NativeLineBreaker + * Use Builder instead. */ - public NativeLineBreaker(@Layout.BreakStrategy int breakStrategy, - @Layout.HyphenationFrequency int hyphenationFrequency, - boolean justify, @Nullable int[] indents) { - mNativePtr = nInit(breakStrategy, hyphenationFrequency, justify, indents); + private NativeLineBreaker(@BreakStrategy int breakStrategy, + @HyphenationFrequency int hyphenationFrequency, @JustificationMode int justify, + @Nullable int[] indents) { + mNativePtr = nInit(breakStrategy, hyphenationFrequency, + justify == JUSTIFICATION_MODE_INTER_WORD, indents); sRegistry.registerNativeAllocation(this, mNativePtr); } /** - * Break text into lines + * Break paragraph into lines. + * + * The result is filled to out param. * - * @param chars an array of characters * @param measuredPara a result of the text measurement - * @param length a length of the target text from the begining - * @param firstWidth a width of the first width of the line in this paragraph - * @param firstWidthLineCount a number of lines that has the length of the firstWidth - * @param restWidth a width of the rest of the lines. - * @param variableTabStops an array of tab stop widths - * @param defaultTabStop a width of the tab stop - * @param indentsOffset an offset of the indents to be used. - * @param out output buffer - * @return a number of the lines + * @param constraints for a single paragraph + * @param lineNumber a line number of this paragraph + * @param out object to set line break information for the given paragraph */ - @NonNull public int computeLineBreaks( - @NonNull char[] chars, + public void computeLineBreaks( @NonNull NativeMeasuredParagraph measuredPara, - @IntRange(from = 0) int length, - @FloatRange(from = 0.0f) float firstWidth, - @IntRange(from = 0) int firstWidthLineCount, - @FloatRange(from = 0.0f) float restWidth, - @Nullable int[] variableTabStops, - int defaultTabStop, - @IntRange(from = 0) int indentsOffset, + @NonNull ParagraphConstraints constraints, + @IntRange(from = 0) int lineNumber, @NonNull LineBreaks out) { - return nComputeLineBreaks( + out.breakCount = nComputeLineBreaks( mNativePtr, // Inputs - chars, + measuredPara.getChars(), measuredPara.getNativePtr(), - length, - firstWidth, - firstWidthLineCount, - restWidth, - variableTabStops, - defaultTabStop, - indentsOffset, + measuredPara.getChars().length, + constraints.mFirstWidth, + constraints.mFirstWidthLineCount, + constraints.mWidth, + constraints.mVariableTabStops, + constraints.mDefaultTabStop, + lineNumber, // Outputs out, @@ -114,10 +327,8 @@ public class NativeLineBreaker { } @FastNative - private static native long nInit( - @Layout.BreakStrategy int breakStrategy, - @Layout.HyphenationFrequency int hyphenationFrequency, - boolean isJustified, + private static native long nInit(@BreakStrategy int breakStrategy, + @HyphenationFrequency int hyphenationFrequency, boolean isJustified, @Nullable int[] indents); @CriticalNative diff --git a/core/java/android/text/NativeMeasuredParagraph.java b/core/java/android/text/NativeMeasuredParagraph.java index d03674f86109..bfdccca2955b 100644 --- a/core/java/android/text/NativeMeasuredParagraph.java +++ b/core/java/android/text/NativeMeasuredParagraph.java @@ -36,10 +36,19 @@ public class NativeMeasuredParagraph { NativeMeasuredParagraph.class.getClassLoader(), nGetReleaseFunc(), 1024); private long mNativePtr; + private @NonNull char[] mChars; // Use builder instead. - private NativeMeasuredParagraph(long ptr) { + private NativeMeasuredParagraph(long ptr, @NonNull char[] chars) { mNativePtr = ptr; + mChars = chars; + } + + /** + * Returns a characters of this paragraph. + */ + public char[] getChars() { + return mChars; } /** @@ -126,7 +135,7 @@ public class NativeMeasuredParagraph { try { long ptr = nBuildNativeMeasuredParagraph(mNativePtr, text, computeHyphenation, computeLayout); - NativeMeasuredParagraph res = new NativeMeasuredParagraph(ptr); + NativeMeasuredParagraph res = new NativeMeasuredParagraph(ptr, text); sRegistry.registerNativeAllocation(res, ptr); return res; } finally { diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index dc01178395e2..128f860d4838 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -626,11 +626,16 @@ public class StaticLayout extends Layout { indents = null; } - final NativeLineBreaker lineBreaker = new NativeLineBreaker( - b.mBreakStrategy, b.mHyphenationFrequency, + final NativeLineBreaker lineBreaker = new NativeLineBreaker.Builder() + .setBreakStrategy(b.mBreakStrategy) + .setHyphenationFrequency(b.mHyphenationFrequency) // TODO: Support more justification mode, e.g. letter spacing, stretching. - b.mJustificationMode != Layout.JUSTIFICATION_MODE_NONE, - indents); + .setJustified(b.mJustificationMode) + .setIndents(indents) + .build(); + + NativeLineBreaker.ParagraphConstraints constraints = + new NativeLineBreaker.ParagraphConstraints(); PrecomputedText.ParagraphInfo[] paragraphInfo = null; final Spanned spanned = (source instanceof Spanned) ? (Spanned) source : null; @@ -721,18 +726,14 @@ public class StaticLayout extends Layout { final char[] chs = measuredPara.getChars(); final int[] spanEndCache = measuredPara.getSpanEndCache().getRawArray(); final int[] fmCache = measuredPara.getFontMetrics().getRawArray(); - int breakCount = lineBreaker.computeLineBreaks( - measuredPara.getChars(), - measuredPara.getNativeMeasuredParagraph(), - paraEnd - paraStart, - firstWidth, - firstWidthLineCount, - restWidth, - variableTabStops, - TAB_INCREMENT, - mLineCount, - lineBreaks); + constraints.setWidth(restWidth); + constraints.setIndent(firstWidth, firstWidthLineCount); + constraints.setTabStops(variableTabStops, TAB_INCREMENT); + + lineBreaker.computeLineBreaks(measuredPara.getNativeMeasuredParagraph(), + constraints, mLineCount, lineBreaks); + int breakCount = lineBreaks.breakCount; final int[] breaks = lineBreaks.breaks; final float[] lineWidths = lineBreaks.widths; final float[] ascents = lineBreaks.ascents; diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java index 887d96e2ecf1..0f8ca44e5f93 100644 --- a/core/java/android/util/FeatureFlagUtils.java +++ b/core/java/android/util/FeatureFlagUtils.java @@ -40,7 +40,7 @@ public class FeatureFlagUtils { static { DEFAULT_FLAGS = new HashMap<>(); DEFAULT_FLAGS.put("settings_battery_display_app_list", "false"); - DEFAULT_FLAGS.put("settings_condition_manager_v2", "false"); + DEFAULT_FLAGS.put("settings_condition_manager_v2", "true"); DEFAULT_FLAGS.put("settings_bluetooth_while_driving", "false"); DEFAULT_FLAGS.put("settings_audio_switcher", "true"); DEFAULT_FLAGS.put("settings_systemui_theme", "true"); diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java index 0115d262fdb4..715440c9aa6e 100644 --- a/core/java/android/view/KeyEvent.java +++ b/core/java/android/view/KeyEvent.java @@ -890,6 +890,7 @@ public class KeyEvent extends InputEvent implements Parcelable { */ public static final int ACTION_UP = 1; /** + * @deprecated No longer used by the input system. * {@link #getAction} value: multiple duplicate key events have * occurred in a row, or a complex string is being delivered. If the * key code is not {#link {@link #KEYCODE_UNKNOWN} then the @@ -898,6 +899,7 @@ public class KeyEvent extends InputEvent implements Parcelable { * Otherwise, if the key code is {@link #KEYCODE_UNKNOWN}, then * this is a sequence of characters as returned by {@link #getCharacters}. */ + @Deprecated public static final int ACTION_MULTIPLE = 2; /** @@ -2474,7 +2476,10 @@ public class KeyEvent extends InputEvent implements Parcelable { * * @return Returns a String of 1 or more characters associated with * the event. + * + * @deprecated no longer used by the input system. */ + @Deprecated public final String getCharacters() { return mCharacters; } @@ -3032,6 +3037,7 @@ public class KeyEvent extends InputEvent implements Parcelable { mFlags = in.readInt(); mDownTime = in.readLong(); mEventTime = in.readLong(); + mCharacters = in.readString(); } @Override @@ -3049,5 +3055,6 @@ public class KeyEvent extends InputEvent implements Parcelable { out.writeInt(mFlags); out.writeLong(mDownTime); out.writeLong(mEventTime); + out.writeString(mCharacters); } } diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index f3e2edd514af..d9057de98025 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8747,14 +8747,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, info.setContentDescription(getContentDescription()); info.setEnabled(isEnabled()); - info.setClickable(isClickable()); - info.setFocusable(isFocusable()); info.setScreenReaderFocusable(isScreenReaderFocusable()); info.setFocused(isFocused()); info.setAccessibilityFocused(isAccessibilityFocused()); info.setSelected(isSelected()); - info.setLongClickable(isLongClickable()); - info.setContextClickable(isContextClickable()); info.setLiveRegion(getAccessibilityLiveRegion()); if ((mTooltipInfo != null) && (mTooltipInfo.mTooltipText != null)) { info.setTooltipText(mTooltipInfo.mTooltipText); diff --git a/core/java/android/view/ViewStructure.java b/core/java/android/view/ViewStructure.java index 3f7ab2aed4af..38dcdd30d843 100644 --- a/core/java/android/view/ViewStructure.java +++ b/core/java/android/view/ViewStructure.java @@ -33,9 +33,14 @@ import com.android.internal.util.Preconditions; import java.util.List; /** - * Container for storing additional per-view data generated by {@link View#onProvideStructure + * <p><code>ViewStructure</code> is a container for storing additional + * per-view data generated by {@link View#onProvideStructure * View.onProvideStructure} and {@link View#onProvideAutofillStructure * View.onProvideAutofillStructure}. + * + * <p>To learn more about using Autofill in your app, read the + * <a href="/guide/topics/text/autofill">Autofill Framework</a> guides. + * */ public abstract class ViewStructure { diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index f2429bd60da0..17bb04f7ef42 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -1159,7 +1159,13 @@ public class AccessibilityNodeInfo implements Parcelable { } private boolean hasActionWithId(int actionId) { - return getActionList().stream().anyMatch(action -> action.getId() == actionId); + List<AccessibilityAction> actions = getActionList(); + for (int i = 0; i < actions.size(); i++) { + if (actions.get(i).getId() == actionId) { + return true; + } + } + return false; } /** @@ -1761,7 +1767,7 @@ public class AccessibilityNodeInfo implements Parcelable { * @return True if the node is focusable. */ public boolean isFocusable() { - return hasActionWithId(ACTION_FOCUS); + return hasActionWithId(ACTION_FOCUS) || hasActionWithId(ACTION_CLEAR_FOCUS); } /** diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index 2cc175f08dc2..2cd4b2bca898 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -81,11 +81,16 @@ import java.util.concurrent.TimeUnit; import sun.misc.Cleaner; /** - * The {@link AutofillManager} provides ways for apps and custom views to integrate with the - * Autofill Framework lifecycle. + * <p>The {@link AutofillManager} class provides ways for apps and custom views to + * integrate with the Autofill Framework lifecycle. + * + * <p>To learn about using Autofill in your app, read + * the <a href="/guide/topics/text/autofill">Autofill Framework</a> guides. + * + * <h3 id="autofill-lifecycle">Autofill lifecycle</h3> * * <p>The autofill lifecycle starts with the creation of an autofill context associated with an - * activity context; the autofill context is created when one of the following methods is called for + * activity context. The autofill context is created when one of the following methods is called for * the first time in an activity context, and the current user has an enabled autofill service: * * <ul> @@ -94,7 +99,7 @@ import sun.misc.Cleaner; * <li>{@link #requestAutofill(View)} * </ul> * - * <p>Tipically, the context is automatically created when the first view of the activity is + * <p>Typically, the context is automatically created when the first view of the activity is * focused because {@code View.onFocusChanged()} indirectly calls * {@link #notifyViewEntered(View)}. App developers can call {@link #requestAutofill(View)} to * explicitly create it (for example, a custom view developer could offer a contextual menu action @@ -138,7 +143,9 @@ import sun.misc.Cleaner; * shows an autofill save UI if the value of savable views have changed. If the user selects the * option to Save, the current value of the views is then sent to the autofill service. * - * <p>It is safe to call into its methods from any thread. + * <h3 id="additional-notes">Additional notes</h3> + * + * <p>It is safe to call <code>AutofillManager</code> methods from any thread. */ @SystemService(Context.AUTOFILL_MANAGER_SERVICE) @RequiresFeature(PackageManager.FEATURE_AUTOFILL) @@ -2152,7 +2159,11 @@ public final class AutofillManager { pw.print(pfx); pw.print("sessionId: "); pw.println(mSessionId); pw.print(pfx); pw.print("state: "); pw.println(getStateAsStringLocked()); pw.print(pfx); pw.print("context: "); pw.println(mContext); - pw.print(pfx); pw.print("client: "); pw.println(getClient()); + final AutofillClient client = getClient(); + if (client != null) { + pw.print(pfx); pw.print("client: "); pw.print(client); + pw.print(" ("); pw.print(client.autofillClientGetActivityToken()); pw.println(')'); + } pw.print(pfx); pw.print("enabled: "); pw.println(mEnabled); pw.print(pfx); pw.print("hasService: "); pw.println(mService != null); pw.print(pfx); pw.print("hasCallback: "); pw.println(mCallback != null); @@ -2172,8 +2183,24 @@ public final class AutofillManager { pw.print(pfx); pw.print("entered ids: "); pw.println(mEnteredIds); pw.print(pfx); pw.print("save trigger id: "); pw.println(mSaveTriggerId); pw.print(pfx); pw.print("save on finish(): "); pw.println(mSaveOnFinish); - pw.print(pfx); pw.print("compat mode enabled: "); pw.println( - isCompatibilityModeEnabledLocked()); + pw.print(pfx); pw.print("compat mode enabled: "); + synchronized (mLock) { + if (mCompatibilityBridge != null) { + final String pfx2 = pfx + " "; + pw.println("true"); + pw.print(pfx2); pw.print("windowId: "); + pw.println(mCompatibilityBridge.mFocusedWindowId); + pw.print(pfx2); pw.print("nodeId: "); + pw.println(mCompatibilityBridge.mFocusedNodeId); + pw.print(pfx2); pw.print("virtualId: "); + pw.println(AccessibilityNodeInfo + .getVirtualDescendantId(mCompatibilityBridge.mFocusedNodeId)); + pw.print(pfx2); pw.print("focusedBounds: "); + pw.println(mCompatibilityBridge.mFocusedBounds); + } else { + pw.println("false"); + } + } pw.print(pfx); pw.print("debug: "); pw.print(sDebug); pw.print(" verbose: "); pw.println(sVerbose); } @@ -2311,8 +2338,9 @@ public final class AutofillManager { if (sVerbose) { // NOTE: this is waaay spammy, but that's life. Log.v(TAG, "onAccessibilityEvent(" + AccessibilityEvent.eventTypeToString(type) - + "): " - + AccessibilityNodeInfo.getVirtualDescendantId(event.getSourceNodeId())); + + "): virtualId=" + + AccessibilityNodeInfo.getVirtualDescendantId(event.getSourceNodeId()) + + ", client=" + getClient()); } switch (type) { case AccessibilityEvent.TYPE_VIEW_FOCUSED: { diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java index bbdf15c871bb..d1de498d71ed 100644 --- a/core/java/android/widget/RelativeLayout.java +++ b/core/java/android/widget/RelativeLayout.java @@ -1247,7 +1247,10 @@ public class RelativeLayout extends ViewGroup { private int[] mRules = new int[VERB_COUNT]; private int[] mInitialRules = new int[VERB_COUNT]; - private int mLeft, mTop, mRight, mBottom; + private int mLeft; + private int mTop; + private int mRight; + private int mBottom; /** * Whether this view had any relative rules modified following the most diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 5cadbe46163a..3941d6a28b4a 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -421,7 +421,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private Editable.Factory mEditableFactory = Editable.Factory.getInstance(); private Spannable.Factory mSpannableFactory = Spannable.Factory.getInstance(); - private float mShadowRadius, mShadowDx, mShadowDy; + private float mShadowRadius; + private float mShadowDx; + private float mShadowDy; private int mShadowColor; private boolean mPreDrawRegistered; @@ -717,8 +719,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private Scroller mScroller; private TextPaint mTempTextPaint; - private BoringLayout.Metrics mBoring, mHintBoring; - private BoringLayout mSavedLayout, mSavedHintLayout; + private BoringLayout.Metrics mBoring; + private BoringLayout.Metrics mHintBoring; + private BoringLayout mSavedLayout; + private BoringLayout mSavedHintLayout; private TextDirectionHeuristic mTextDir; diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java index 7f481e3e681c..f6071d86b905 100644 --- a/core/java/android/widget/Toast.java +++ b/core/java/android/widget/Toast.java @@ -355,7 +355,8 @@ public class Toast { final Handler mHandler; int mGravity; - int mX, mY; + int mX; + int mY; float mHorizontalMargin; float mVerticalMargin; diff --git a/core/java/com/android/internal/widget/MessagingLinearLayout.java b/core/java/com/android/internal/widget/MessagingLinearLayout.java index 64b1f241464b..0c8613b460f6 100644 --- a/core/java/com/android/internal/widget/MessagingLinearLayout.java +++ b/core/java/com/android/internal/widget/MessagingLinearLayout.java @@ -111,14 +111,16 @@ public class MessagingLinearLayout extends ViewGroup { final int childHeight = child.getMeasuredHeight(); int newHeight = Math.max(totalHeight, totalHeight + childHeight + lp.topMargin + lp.bottomMargin + spacing); - first = false; int measureType = MessagingChild.MEASURED_NORMAL; if (messagingChild != null) { measureType = messagingChild.getMeasuredType(); linesRemaining -= messagingChild.getConsumedLines(); } - boolean isShortened = measureType == MessagingChild.MEASURED_SHORTENED; - boolean isTooSmall = measureType == MessagingChild.MEASURED_TOO_SMALL; + + // We never measure the first item as too small, we want to at least show something. + boolean isTooSmall = measureType == MessagingChild.MEASURED_TOO_SMALL && !first; + boolean isShortened = measureType == MessagingChild.MEASURED_SHORTENED + || measureType == MessagingChild.MEASURED_TOO_SMALL && first; if (newHeight <= targetHeight && !isTooSmall) { totalHeight = newHeight; measuredWidth = Math.max(measuredWidth, @@ -131,6 +133,7 @@ public class MessagingLinearLayout extends ViewGroup { } else { break; } + first = false; } setMeasuredDimension( diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index c93d2668136a..703ecf7fba3a 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Liggaamsensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"toegang te verkry tot sensordata oor jou lewenstekens"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Gee <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> toegang tot sensordata oor jou lewenstekens?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Venster-inhoud ophaal"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Die inhoud ondersoek van \'n venster waarmee jy interaksie het."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Verken deur raak aanskakel"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Laat die program toe om metodes te benut om vingerafdruksjablone vir gebruik by te voeg en uit te vee."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"gebruik vingerafdrukhardeware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Laat die program toe om vingerafdrukhardeware vir stawing te gebruik"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelike vingerafdruk is bespeur. Probeer asseblief weer."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kon nie vingerafdruk verwerk nie. Probeer asseblief weer."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Vingerafdruksensor is vuil. Maak dit skoon en probeer weer."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Stoor <xliff:g id="TYPE">%1$s</xliff:g> in <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Stoor <xliff:g id="TYPE_0">%1$s</xliff:g> en <xliff:g id="TYPE_1">%2$s</xliff:g> in <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Stoor <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> en <xliff:g id="TYPE_2">%3$s</xliff:g> in <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Stoor"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nee, dankie"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"wagwoord"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adres"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredietkaart"</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 400f304cf585..5a7e64399c3e 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"የሰውነት ዳሳሾች"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ስለአስፈላጊ ምልክቶችዎ ያሉ የዳሳሽ ውሂብ ይድረሱ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> የሰውነትዎ መሠረታዊ ምልክቶች የዳሳሽ ውሂብ እንዲደርስ ይፈቀድለት?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"ሙዚቃ"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"ሙዚቃዎን መድረስ"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ቀን ሙዚቃዎን እንዲደርስ ይፈቀድለት?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"ፎቶዎች እና ቪዲዮዎች"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"የእርስዎን ፎቶዎች እና ቪዲዮዎች መድረስ"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> የእርስዎን ፎቶዎች እና ቪዲዮዎች እንዲደርስ ይፈቀድለት?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"የመስኮት ይዘት ሰርስረው ያውጡ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"መስተጋበር የሚፈጥሩት የመስኮት ይዘት ይመርምሩ።"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"በመንካት ያስሱን ያብሩ"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"መተግበሪያው ጥቅም ላይ እንዲውሉ የጣት አሻራ ቅንብር ደንቦችን ለማከል እና ለመሰረዝ የሚያስችሉ ስልቶችን እንዲያስጀምር ያስችለዋል።"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"የጣት አሻራ ሃርድዌርን ተጠቀም"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"መተግበሪያው የጣት አሻራ ሃርድዌር ለማረጋገጥ ስራ እንዲጠቀም ያስችለዋል"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"የሙዚቃ ስብስብዎን ማንበብ"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"መተግበሪያው የሙዚቃ ስብስብዎን እንዲያነብብ ያስችለዋል።"</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"የሙዚቃ ስብስብዎን መቀየር"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"መተግበሪያው የሙዚቃ ስብስብዎን እንዲቀይረው ያስችለዋል።"</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"የቪዲዮ ስብስብዎን ማንበብ"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"መተግበሪያው የቪዲዮ ስብስብዎን እንዲያነብብ ያስችለዋል።"</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"የቪዲዮ ስብስብዎን መቀየር"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"መተግበሪያው የፎቶ ስብስብዎን እንዲቀይረው ያስችለዋል።"</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"የፎቶ ስብስብዎን ማንበብ"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"መተግበሪያው የፎቶ ስብስብዎን እንዲያነብብ ያስችለዋል።"</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"የፎቶ ስብስብዎን መቀየር"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"መተግበሪያው የፎቶ ስብስብዎን እንዲቀይረው ያስችለዋል።"</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"አካባቢዎችን ከሚዲያ ስብስብዎ ማንበብ"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"መተግበሪያው አካባቢዎችን ከሚዲያ ስብስብዎ እንዲያነብብ ያስችለዋል።"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ከፊል የጣት አሻራ ተገኝቷል። እባክዎ እንደገና ይሞክሩ።"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ጣት አሻራን መስራት አልተቻለም። እባክዎ እንደገና ይሞክሩ።"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"የጣት አሻራ ዳሳሽ ቆሽሿል። እባክዎ ያጽዱት እና እንደገና ይሞክሩ።"</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> ወደ <b><xliff:g id="LABEL">%2$s</xliff:g></b> ይቀመጥ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> እና <xliff:g id="TYPE_1">%2$s</xliff:g> ወደ <b><xliff:g id="LABEL">%3$s</xliff:g></b> ይቀመጡ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>፣ <xliff:g id="TYPE_1">%2$s</xliff:g> እና <xliff:g id="TYPE_2">%3$s</xliff:g> ወደ <b><xliff:g id="LABEL">%4$s</xliff:g></b> ይቀመጡ?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"ወደ <b><xliff:g id="LABEL">%1$s</xliff:g></b> ይዘመን?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g> ወደ <b><xliff:g id="LABEL">%2$s</xliff:g></b> ይዘመን?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g> እና <xliff:g id="TYPE_1">%2$s</xliff:g> ወደ <b><xliff:g id="LABEL">%3$s</xliff:g></b> ይዘመኑ?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>፣ <xliff:g id="TYPE_1">%2$s</xliff:g> እና <xliff:g id="TYPE_2">%3$s</xliff:g> ወደ <b><xliff:g id="LABEL">%4$s</xliff:g></b> ይዘመኑ?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"አስቀምጥ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"አይ፣ አመሰግናለሁ"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"አዘምን"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"የይለፍ ቃል"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"አድራሻ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ክሬዲት ካርድ"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 6d5ee11e4ff1..d46f758617ca 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -312,6 +312,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"أجهزة استشعار الجسم"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"الوصول إلى بيانات المستشعر حول علاماتك الحيوية"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"هل تريد السماح لتطبيق <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> بالدخول إلى بيانات المستشعر حول علاماتك الحيوية؟"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"الموسيقى"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"الوصول إلى الموسيقى"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"هل تريد السماح لتطبيق <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> بالوصول إلى الموسيقى؟"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"الصور والفيديوهات"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"الوصول إلى صورك وفيديوهاتك"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"هل تريد السماح لتطبيق <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> بالوصول إلى صورك وفيديوهاتك؟"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"استرداد محتوى النافذة"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"فحص محتوى نافذة يتم التفاعل معها"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"تشغيل الاستكشاف باللمس"</string> @@ -506,6 +512,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"للسماح للتطبيق باستدعاء طرق لإضافة نماذج من بصمات الأصابع وحذفها."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"لاستخدام أجهزة بصمة الإصبع"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"للسماح للتطبيق باستخدام أجهزة بصمة الإصبع للمصادقة"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"قراءة مجموعتك الموسيقية"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"للسماح للتطبيق بقراءة مجموعتك الموسيقية."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"تعديل مجموعتك الموسيقية"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"للسماح للتطبيق بتعديل مجموعتك الموسيقية."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"قراءة مجموعة الفيديو التابعة لك"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"للسماح للتطبيق بقراءة مجموعة الفيديوهات التابعة لك."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"تعديل مجموعة الفيديو التابعة لك"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"يسمح للتطبيق بتعديل مجموعة الفيديوهات التابعة لك."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"قراءة مجموعة صورك"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"للسماح للتطبيق بقراءة مجموعة صورك."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"تعديل مجموعة صورك"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"للسماح للتطبيق بتعديل مجموعة صورك."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"قراءة المواقع من مجموعة الوسائط التابعة لك"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"للسماح للتطبيق بقراءة المواقع من مجموعة الوسائط التابعة لك."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"تم اكتشاف بصمة الإصبع بشكل جزئي؛ يرجى إعادة المحاولة."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"تعذرت معالجة بصمة الإصبع. يُرجى إعادة المحاولة."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"جهاز استشعار بصمات الأصابع متسخ، يرجى تنظيفه وإعادة المحاولة."</string> @@ -2012,8 +2032,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"هل تريد حفظ <xliff:g id="TYPE">%1$s</xliff:g> في <b><xliff:g id="LABEL">%2$s</xliff:g></b>؟"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"هل تريد حفظ <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> في <b><xliff:g id="LABEL">%3$s</xliff:g></b>؟"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"هل تريد حفظ <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> و<xliff:g id="TYPE_2">%3$s</xliff:g> في <b><xliff:g id="LABEL">%4$s</xliff:g></b>؟"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"هل تريد التعديل إلى <b><xliff:g id="LABEL">%1$s</xliff:g></b>؟"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"هل تريد تعديل <xliff:g id="TYPE">%1$s</xliff:g> إلى <b><xliff:g id="LABEL">%2$s</xliff:g></b>؟"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"هل تريد تعديل <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> إلى <b><xliff:g id="LABEL">%3$s</xliff:g></b>؟"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"هل تريد تعديل <xliff:g id="TYPE_0">%1$s</xliff:g> و<xliff:g id="TYPE_1">%2$s</xliff:g> و<xliff:g id="TYPE_2">%3$s</xliff:g> إلى <b><xliff:g id="LABEL">%4$s</xliff:g></b>؟"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"حفظ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"لا، شكرًا"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"تعديل"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"كلمة مرور"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"عنوان"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"بطاقة ائتمان"</string> diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml index 2f9e4442396f..0e8aa001e925 100644 --- a/core/res/res/values-as/strings.xml +++ b/core/res/res/values-as/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"শৰীৰৰ ছেন্সৰসমূহ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"আপোনাৰ দেহৰ গুৰুত্বপূৰ্ণ অংগসমূহৰ অৱস্থাৰ বিষয়ে ছেন্সৰৰ ডেটা লাভ কৰিব পাৰে"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>ক আপোনাৰ দেহৰ গুৰুত্বপূৰ্ণ অংগসমূহৰ অৱস্থাৰ বিষয়ে ছেন্সৰৰ ডেটা লাভ কৰিবলৈ অনুমতি দিবনে?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ৱিণ্ড\' সমল বিচাৰি উলিয়াওক"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"আপুনি যোগাযোগ কৰি থকা ৱিণ্ড\'খনৰ সমল পৰীক্ষা কৰক।"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"স্পৰ্শৰদ্বাৰা অন্বেষণ কৰাৰ সুবিধা অন কৰক"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ফিংগাৰপ্ৰিণ্ট টেম্প্লেটসমূহ যোগ কৰা বা মচাৰ পদ্ধতিসমূহ কামত লগাবলৈ নিৰ্দেশ দিবলৈ এপটোক অনুমতি দিয়ে।"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ ব্যৱহাৰ কৰিব পাৰে"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"প্ৰমাণীকৰণৰ বাবে ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ ব্য়ৱহাৰ কৰিবলৈ এপটোক অনুমতি দিয়ে"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ফিংগাৰপ্ৰিণ্ট আংশিকভাৱে চিনাক্ত কৰা হৈছে। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ফিগাৰপ্ৰিণ্টৰ প্ৰক্ৰিয়া সম্পাদন কৰিবপৰা নগ\'ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ফিংগাৰপ্ৰিণ্ট ছেন্সৰটো লেতেৰা হৈ আছে। অনুগ্ৰহ কৰি পৰিষ্কাৰ কৰি আকৌ চেষ্টা কৰক।"</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>ক <b><xliff:g id="LABEL">%2$s</xliff:g></b>ত ছেভ কৰিবনে?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> আৰু <xliff:g id="TYPE_1">%2$s</xliff:g>ক <b><xliff:g id="LABEL">%3$s</xliff:g></b>ত ছেভ কৰিবনে?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, আৰু <xliff:g id="TYPE_2">%3$s</xliff:g>ক <b><xliff:g id="LABEL">%4$s</xliff:g></b>ত ছেভ কৰিবনে?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"ছেভ কৰক"</string> <string name="autofill_save_no" msgid="2625132258725581787">"নালাগে, ধন্যবাদ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"পাছৱৰ্ড"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ঠিকনা"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ক্ৰেডিট কাৰ্ড"</string> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 7ddd88c20736..6464c6126e82 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Bədən Sensorları"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"Həyati əlamətlər haqqında sensor dataya daxil olun"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> tətbiqinə həyati əlamətlər haqqında sensor dataya daxil olmaq icazəsi verilsin?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musiqi"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"musiqiyə daxil olun"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> tətbiqinin musiqiyə daxil olmağına icazə verilsin?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Foto və Videolar"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"foto və videolara daxil olun"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> tətbiqinin foto və videolarınıza daxil olmağına icazə verilsin?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pəncərənin məzmununu əldə edin"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Əlaqədə olduğunuz pəncərənin məzmununu nəzərdən keçirin."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Toxunaraq Kəşf et funksiyasını yandırın"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Proqrama istifadə üçün barmaq izi şablonlarını əlavə etmək və silmək üçün üsullara müraciət etməyə imkan verir."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"barmaq izi avadanlığından istifadə edin"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Proqrama əsilliyi yoxlama üçün barmaq izi avadanlığından istifadə etməyə imkan verir"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"musiqi kolleksiyanızı oxuyun"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Tətbiqin musiqi kolleksiyanızı oxumasına icazə verir."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"musiqi kolleksiyanıza düzəliş edin"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Tətbiqin musiqi kolleksiyanıza düzəliş etməsinə icazə verir."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"video kolleksiyanızı oxuyun"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Tətbiqin video kolleksiyanızı oxumasına icazə verin."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"video kolleksiyanıza düzəliş edin"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Tətbiqin video kolleksiyanıza düzəliş etməsinə icazə verin."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"foto kolleksiyanızı oxuyun"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Tətbiqin foto kolleksiyanızı oxumasına icazə verir."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"foto kolleksiyanıza düzəliş edin"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Tətbiqin foto kolleksiyanıza düzəliş etməsinə icazə verir."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"media kolleksiyanızdan məkanları oxuyun"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Tətbiqin media kolleksiyanızdan məkanları oxumasına icazə verin."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Barmaq qismən müəyyən olundu. Lütfən, yenidən cəhd edin."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Barmaq izi tanınmadı. Lütfən, yenidən cəhd edin."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Barmaq izi sensoru çirklidir. Lütfən, təmizləyin və yenidən cəhd edin."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g><b> etiketində yadda saxlansın?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> və <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> etiketində yadda saxlansın?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> və <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> etiketində yadda saxlansın?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"<b><xliff:g id="LABEL">%1$s</xliff:g></b> etiketində yenilənsin?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g><b> etiketində yenilənsin?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g> və <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> etiketində yenilənsin?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> və <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> etiketində yenilənsin?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Yadda saxlayın"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Xeyr, çox sağ olun"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Yeniləyin"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"parol"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ünvan"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredit kartı"</string> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 6338e690081f..dcb7e21e23c9 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Senzori za telo"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"pristupa podacima senzora o vitalnim funkcijama"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Želite li da omogućite da <b><xliff:g id="APP_NAME">%1$s</xliff:g></b>pristupa podacima senzora o vitalnim funkcijama?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"da preuzima sadržaj prozora"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Proverava sadržaj prozora sa kojim ostvarujete interakciju."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"da uključi Istraživanja dodirom"</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Dozvoljava aplikaciji da aktivira metode za dodavanje i brisanje šablona otisaka prstiju koji će se koristiti."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"koristi hardver za otiske prstiju"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Dozvoljava aplikaciji da koristi hardver za otiske prstiju radi potvrde autentičnosti"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je delimični otisak prsta. Probajte ponovo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nije uspela obrada otiska prsta. Probajte ponovo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor za otiske prstiju je prljav. Očistite ga i pokušajte ponovo."</string> @@ -1907,8 +1947,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Želite li da sačuvate stavku <xliff:g id="TYPE">%1$s</xliff:g> u: <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Želite li da sačuvate stavke <xliff:g id="TYPE_0">%1$s</xliff:g> i <xliff:g id="TYPE_1">%2$s</xliff:g> u: <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Želite li da sačuvate stavke <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> i <xliff:g id="TYPE_2">%3$s</xliff:g> u: <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Sačuvaj"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, hvala"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"lozinka"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresa"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditna kartica"</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index c93fa5100842..9041156f8aae 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Датчыкі цела"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"атрымліваць з датчыка даныя асноўных фізіялагічных паказчыкаў"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Дазволіць праграме <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> доступ да даных з датчыкаў пра вашы асноўныя фізіялагічныя паказчыкі?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Атрымліваць змесціва вакна"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Аналізаваць змесціва актыўнага вакна."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Уключаць Азнаямленне дотыкам"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Дазваляе праграме выкарыстоўваць спосабы дадання і выдалення шаблонаў адбіткаў пальцаў для выкарыстання."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"выкарыстоўваць апаратныя сродкі для адбіткаў пальцаў"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Дазваляе праграме выкарыстоўваць апаратныя сродкі распазнання адбіткаў пальцаў для аўтэнтыфікацыі"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Выяўлена частка адбіткаў пальцаў. Паспрабуйце яшчэ раз."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не атрымалася апрацаваць адбітак пальца. Паспрабуйце яшчэ раз."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Датчык адбіткаў пальцаў брудны. Ачысціце яго і паспрабуйце яшчэ раз."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Захаваць <xliff:g id="TYPE">%1$s</xliff:g> у <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Захаваць <xliff:g id="TYPE_0">%1$s</xliff:g> і <xliff:g id="TYPE_1">%2$s</xliff:g> у <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Захаваць <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> і <xliff:g id="TYPE_2">%3$s</xliff:g> у <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Захаваць"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Не, дзякуй"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"пароль"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"адрас"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"крэдытная картка"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index d05d78c9d1e5..80c6cebe5eec 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Телесни сензори"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"достъп до сензорните данни за жизнените ви показатели"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Да се разреши ли на <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> да осъществява достъп до данните от сензорите за жизнените ви показатели?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Извличане на съдържанието от прозореца"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Инспектиране на съдържанието на прозорец, с който взаимодействате."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включване на изследването чрез докосване"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Разрешава на приложението да извиква начини за добавяне и изтриване на шаблони за отпечатъци, които да се използват."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"използване на хардуера за отпечатъци"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Разрешава на приложението да използва хардуера за отпечатъци с цел удостоверяване"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Открит е частичен отпечатък. Моля, опитайте отново."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатъкът не можа да се обработи. Моля, опитайте отново."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорът за отпечатъци е мръсен. Моля, почистете го и опитайте отново."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> да се запази ли в/ъв <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> и <xliff:g id="TYPE_1">%2$s</xliff:g> да се запазят ли в/ъв <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> и <xliff:g id="TYPE_2">%3$s</xliff:g> да се запазят ли в/ъв <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Запазване"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Не, благодаря"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"Паролата"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"Адресът"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"Кредитната карта"</string> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index 61232e0cdd53..026a759360f0 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"বডি সেন্সরগুলি"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"আপনার অত্যাবশ্যক লক্ষণগুলির সম্পর্কে সেন্সর ডেটা অ্যাক্সেস করে"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>-কে সেন্সর থেকে আপনার ভাইটাল সাইনের ডেটা অ্যাক্সেস করতে দেবেন?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"উইন্ডোর কন্টেন্ট পুনরুদ্ধার করে"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"আপনি ইন্টারঅ্যাক্ট করছেন এমন একটি উইন্ডোর সামগ্রীকে সযত্নে নিরীক্ষণ করে৷"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"স্পর্শের মাধ্যমে অন্বেষণ করা চালু করুন"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ব্যবহার করার জন্য আঙ্গুলের ছাপের টেম্প্লেটগুলি যোগ করা এবং মোছার পদ্ধতিগুলি গ্রহন করতে অ্যাপ্লিকেশানটিতে অমুমতি দেয়৷"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"আঙ্গুলের ছাপ নেওয়ার হার্ডওয়্যার ব্যবহার করুন"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"অনুমোদনের জন্য আঙ্গুলের ছাপ নেওয়ার হার্ডওয়্যার ব্যবহার করতে অ্যাপ্লিকেশানটিতে অনুমতি দেয়"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"আঙ্গুলের ছাপ আংশিক শনাক্ত করা হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"আঙ্গুলের ছাপ প্রক্রিয়া করা যায়নি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"আঙ্গুলের ছাপ নেওয়ার সেন্সরটি অপরিস্কার৷ অনুগ্রহ করে পরিষ্কার করে আবার চেষ্টা করুন৷"</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> কে <b><xliff:g id="LABEL">%2$s</xliff:g></b>এ সংরক্ষণ করবেন?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> এবং <xliff:g id="TYPE_1">%2$s</xliff:g> কে <b><xliff:g id="LABEL">%3$s</xliff:g></b> এ সংরক্ষণ করবেন?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, এবং <xliff:g id="TYPE_2">%3$s</xliff:g> কে <b><xliff:g id="LABEL">%4$s</xliff:g></b> এ সংরক্ষণ করবেন?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"সেভ করুন"</string> <string name="autofill_save_no" msgid="2625132258725581787">"না থাক"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"পাসওয়ার্ড"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ঠিকানা"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ক্রেডিট কার্ড"</string> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index ccf8aa64183c..049b3835e915 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Tjelesni senzori"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"pristupa podacima senzora o vašim vitalnim funkcijama"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Dozvoliti aplikaciji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> pristup senzornim podacima o vašim vitalnim znacima?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Preuzima sadržaj prozora"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Pregleda sadržaj prozora koji trenutno koristite."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Uključi opciju Istraživanje dodirom"</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Omogućava aplikaciji da koristi metode za dodavanje i brisanje šablona otisaka prstiju za upotrebu."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"korištenje hardvera za otiske prstiju"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Omogućava aplikaciji da za provjeru vjerodostojnosti koristi hardver za otiske prstiju"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je djelomičan otisak prsta. Pokušajte ponovo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nije uspjela obrada otiska prsta. Pokušajte ponovo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor za otisak prsta je prljav. Očistite ga i pokušajte ponovo."</string> @@ -1909,8 +1949,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Želite li da se <xliff:g id="TYPE">%1$s</xliff:g> sačuva u <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Želite li da se <xliff:g id="TYPE_0">%1$s</xliff:g> i <xliff:g id="TYPE_1">%2$s</xliff:g> sačuvaju u <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Želite li da se <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, i <xliff:g id="TYPE_2">%3$s</xliff:g> sačuvaju <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Sačuvaj"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, hvala"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"lozinka"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresa"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditna kartica"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index da816a1e9f61..c75fc74ec7ab 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensors corporals"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accedir a les dades del sensor sobre els signes vitals"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vols permetre que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> accedeixi a les dades del sensor de constants vitals?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar el contingut de la finestra"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contingut d\'una finestra amb què estàs interaccionant."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar Exploració tàctil"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permet que l\'aplicació invoqui mètodes per afegir i suprimir plantilles d\'empremtes digitals que es puguin fer servir."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Utilitzar el maquinari d\'empremtes digitals"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permet que l\'aplicació faci servir maquinari d\'empremtes digitals per a l\'autenticació"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"S\'ha detectat una empremta digital parcial. Torna-ho a provar."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No s\'ha pogut processar l\'empremta digital. Torna-ho a provar."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor d\'empremtes digitals està brut. Neteja\'l i torna-ho a provar."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vols desar <xliff:g id="TYPE">%1$s</xliff:g> a <xliff:g id="LABEL">%2$s</xliff:g>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vols desar <xliff:g id="TYPE_0">%1$s</xliff:g> i <xliff:g id="TYPE_1">%2$s</xliff:g> a <xliff:g id="LABEL">%3$s</xliff:g>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vols desar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> i <xliff:g id="TYPE_2">%3$s</xliff:g> a <xliff:g id="LABEL">%4$s</xliff:g>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Desa"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, gràcies"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"contrasenya"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adreça"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"targeta de crèdit"</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 40b5e29308d9..7d9c3c593803 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Tělesné senzory"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"přístup k datům ze snímačů vašich životních funkcí"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Povolit aplikaci <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> přístup k údajům ze snímačů vašich životních funkcí?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načítat obsah oken"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Může prozkoumávat obsah oken, se kterými pracujete."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnout funkci Prozkoumání dotykem"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Umožňuje aplikaci volat metody k přidání a smazání šablon otisků prstů, které budou použity."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"použití hardwaru na čtení otisků prstů"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Umožňuje aplikaci použít k ověření hardware na čtení otisků prstů"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Byla zjištěna jen část otisku prstu. Zkuste to znovu."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Zpracování otisku prstu se nezdařilo. Zkuste to znovu."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otisků prstů je znečištěn. Vyčistěte jej a zkuste to znovu."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Uložit položku <xliff:g id="TYPE">%1$s</xliff:g> do služby <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Uložit položky <xliff:g id="TYPE_0">%1$s</xliff:g> a <xliff:g id="TYPE_1">%2$s</xliff:g> do služby <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Uložit položky <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> a <xliff:g id="TYPE_2">%3$s</xliff:g> do služby <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Uložit"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, děkuji"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"heslo"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresa"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"platební karta"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 947754f12a05..909cd10721c6 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kropssensorer"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"få adgang til sensordata om dine livstegn"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vil du give <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> adgang til sensordata om dine livstegn?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Hente indholdet i vinduet"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Undersøge indholdet i et vindue, du interagerer med."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivere Udforsk ved berøring"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Tillader, at appen kan køre metoder til at tilføje og slette fingeraftryksskabeloner"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"bruge fingeraftrykhardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Tillader, at appen kan bruge fingeraftrykhardware til godkendelse"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Der blev registreret et delvist fingeraftryk. Prøv igen."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingeraftrykket kunne ikke behandles. Prøv igen."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensoren til registrering af fingeraftryk er beskidt. Tør den af, og prøv igen."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vil du gemme <xliff:g id="TYPE">%1$s</xliff:g> i <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vil du gemme <xliff:g id="TYPE_0">%1$s</xliff:g> og <xliff:g id="TYPE_1">%2$s</xliff:g> i <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vil du gemme <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> og <xliff:g id="TYPE_2">%3$s</xliff:g> i <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Gem"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nej tak"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"adgangskode"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresse"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditkort"</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 8dc0ba481a97..e8434887ed0a 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Körpersensoren"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"auf Sensordaten zu deinen Vitaldaten zugreifen"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> erlauben, auf Sensordaten zu deinen Vitalfunktionen zuzugreifen?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Fensterinhalte abrufen"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Die Inhalte eines Fensters, mit dem du interagierst, werden abgerufen."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"\"Tippen & Entdecken\" aktivieren"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Erlaubt der App, Methoden zum Hinzufügen und Löschen zu verwendender Fingerabdruckvorlagen aufzurufen"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Fingerabdruckhardware verwenden"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Erlaubt der App, Fingerabdruckhardware zur Authentifizierung zu verwenden"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Fingerabdruck teilweise erkannt. Versuche es erneut."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingerabdruck konnte nicht verarbeitet werden. Versuche es erneut."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerabdrucksensor ist verschmutzt. Reinige ihn und versuche es erneut."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> in <b><xliff:g id="LABEL">%2$s</xliff:g></b> speichern?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> und <xliff:g id="TYPE_1">%2$s</xliff:g> in <b><xliff:g id="LABEL">%3$s</xliff:g></b> speichern?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> und <xliff:g id="TYPE_2">%3$s</xliff:g> in <b><xliff:g id="LABEL">%4$s</xliff:g></b> speichern?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Speichern"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nein danke"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"Passwort"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"Adresse"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"Kreditkarte"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index c6acc9e058ca..ef8b072c476b 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Αισθητήρες σώματος"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"πρόσβαση στα δεδομένα αισθητήρα σχετικά με τις ζωτικές ενδείξεις σας"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Να επιτρέπεται στην εφαρμογή <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> να έχει πρόσβαση στα δεδομένα αισθητήρα σχετικά με τις ζωτικές ενδείξεις σας;"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Ανάκτηση του περιεχομένου του παραθύρου"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Έλεγχος του περιεχομένου ενός παραθύρου με το οποίο αλληλεπιδράτε."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ενεργοποίηση της \"Εξερεύνησης με άγγιγμα\""</string> @@ -320,7 +332,7 @@ <string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Επιτρέπει στην εφαρμογή να αναπτύξει ή να συμπτύξει τη γραμμή κατάστασης."</string> <string name="permlab_install_shortcut" msgid="4279070216371564234">"εγκαθιστά συντομεύσεις"</string> <string name="permdesc_install_shortcut" msgid="8341295916286736996">"Επιτρέπει σε μια εφαρμογή την προσθήκη συντομεύσεων στην Αρχική οθόνη χωρίς την παρέμβαση του χρήστη."</string> - <string name="permlab_uninstall_shortcut" msgid="4729634524044003699">"καταργεί την εγκατάσταση συντομεύσεων"</string> + <string name="permlab_uninstall_shortcut" msgid="4729634524044003699">"απεγκατάσταση συντομεύσεων"</string> <string name="permdesc_uninstall_shortcut" msgid="6745743474265057975">"Επιτρέπει στην εφαρμογή την κατάργηση συντομεύσεων από την Αρχική οθόνη χωρίς την παρέμβαση του χρήστη."</string> <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"αναδρομολογεί τις εξερχόμενες κλήσεις"</string> <string name="permdesc_processOutgoingCalls" msgid="5156385005547315876">"Επιτρέπει στην εφαρμογή να βλέπει τον αριθμό που καλέσατε κατά τη διάρκεια μιας εξερχόμενης κλήσης με επιλογή ανακατεύθυνσης της κλήσης σε έναν διαφορετικό αριθμό ή διακοπής της κλήσης."</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Επιτρέπει στην εφαρμογή να επικαλείται μεθόδους για την προσθήκη και τη διαγραφή προτύπων μοναδικού χαρακτηριστικού για χρήση."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"χρησιμοποιεί τον εξοπλισμό δακτυλικού αποτυπώματος"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Επιτρέπει στην εφαρμογή να χρησιμοποιεί εξοπλισμό μοναδικού χαρακτηριστικού για έλεγχο ταυτότητας"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Εντοπίστηκε μερικό μοναδικό χαρακτηριστικό. Δοκιμάστε ξανά."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Δεν ήταν δυνατή η επεξεργασία του μοναδικού χαρακτηριστικού. Δοκιμάστε ξανά."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Ο αισθητήρας μοναδικού χαρακτηριστικού δεν είναι καθαρός. Καθαρίστε τον και δοκιμάστε ξανά."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Αποθήκευση <xliff:g id="TYPE">%1$s</xliff:g> σε <b><xliff:g id="LABEL">%2$s</xliff:g></b>;"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Αποθήκευση <xliff:g id="TYPE_0">%1$s</xliff:g> και <xliff:g id="TYPE_1">%2$s</xliff:g> σε <b><xliff:g id="LABEL">%3$s</xliff:g></b>;"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Αποθήκευση <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> και <xliff:g id="TYPE_2">%3$s</xliff:g> σε <b><xliff:g id="LABEL">%4$s</xliff:g></b>;"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Αποθήκευση"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Όχι, ευχαριστώ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"κωδικός πρόσβασης"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"διεύθυνση"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"πιστωτική κάρτα"</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index f70ba3bef3d9..19d0916de752 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Body sensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"access sensor data about your vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access sensor data about your vital signs?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Music"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"access your music"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your music?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos & Videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"access your photos & videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your photos & videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Allows the app to invoke methods to add and delete fingerprint templates for use."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Use fingerprint hardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Allows the app to use fingerprint hardware for authentication"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"read your music collection"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Allows the app to read your music collection."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modify your music collection"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Allows the app to modify your music collection."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"read your video collection"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Allows the app to read your video collection."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modify your video collection"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Allows the app to modify your video collection."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"read your photo collection"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Allows the app to read your photo collection."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modify your photo collection"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Allows the app to modify your photo collection."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"read locations from your media collection"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Save <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Save <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Save <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Update to <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Update <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Update <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Update <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, thanks"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml index 1ab78f153d0d..1e2e0816df86 100644 --- a/core/res/res/values-en-rCA/strings.xml +++ b/core/res/res/values-en-rCA/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Body sensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"access sensor data about your vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access sensor data about your vital signs?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Music"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"access your music"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your music?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos & Videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"access your photos & videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your photos & videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Allows the app to invoke methods to add and delete fingerprint templates for use."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Use fingerprint hardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Allows the app to use fingerprint hardware for authentication"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"read your music collection"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Allows the app to read your music collection."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modify your music collection"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Allows the app to modify your music collection."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"read your video collection"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Allows the app to read your video collection."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modify your video collection"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Allows the app to modify your video collection."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"read your photo collection"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Allows the app to read your photo collection."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modify your photo collection"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Allows the app to modify your photo collection."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"read locations from your media collection"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Save <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Save <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Save <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Update to <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Update <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Update <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Update <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, thanks"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index f70ba3bef3d9..19d0916de752 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Body sensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"access sensor data about your vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access sensor data about your vital signs?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Music"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"access your music"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your music?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos & Videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"access your photos & videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your photos & videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Allows the app to invoke methods to add and delete fingerprint templates for use."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Use fingerprint hardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Allows the app to use fingerprint hardware for authentication"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"read your music collection"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Allows the app to read your music collection."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modify your music collection"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Allows the app to modify your music collection."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"read your video collection"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Allows the app to read your video collection."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modify your video collection"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Allows the app to modify your video collection."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"read your photo collection"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Allows the app to read your photo collection."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modify your photo collection"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Allows the app to modify your photo collection."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"read locations from your media collection"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Save <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Save <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Save <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Update to <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Update <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Update <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Update <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, thanks"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index f70ba3bef3d9..19d0916de752 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Body sensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"access sensor data about your vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access sensor data about your vital signs?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Music"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"access your music"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your music?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos & Videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"access your photos & videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your photos & videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Allows the app to invoke methods to add and delete fingerprint templates for use."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Use fingerprint hardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Allows the app to use fingerprint hardware for authentication"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"read your music collection"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Allows the app to read your music collection."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modify your music collection"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Allows the app to modify your music collection."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"read your video collection"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Allows the app to read your video collection."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modify your video collection"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Allows the app to modify your video collection."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"read your photo collection"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Allows the app to read your photo collection."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modify your photo collection"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Allows the app to modify your photo collection."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"read locations from your media collection"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Save <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Save <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Save <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Update to <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Update <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Update <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Update <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, thanks"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml index a4c861560f65..68bc26163337 100644 --- a/core/res/res/values-en-rXC/strings.xml +++ b/core/res/res/values-en-rXC/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Body Sensors"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"access sensor data about your vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access sensor data about your vital signs?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Music"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"access your music"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your music?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos & Videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"access your photos & videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Allow <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> to access your photos & videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window you\'re interacting with."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Allows the app to invoke methods to add and delete fingerprint templates for use."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"use fingerprint hardware"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Allows the app to use fingerprint hardware for authentication"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"read your music collection"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Allows the app to read your music collection."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modify your music collection"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Allows the app to modify your music collection."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"read your video collection"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Allows the app to read your video collection."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modify your video collection"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Allows the app to modify your video collection."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"read your photo collection"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Allows the app to read your photo collection."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modify your photo collection"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Allows the app to modify your photo collection."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"read locations from your media collection"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Save <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Save <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Save <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Update to <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Update <xliff:g id="TYPE">%1$s</xliff:g> to <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Update <xliff:g id="TYPE_0">%1$s</xliff:g> and <xliff:g id="TYPE_1">%2$s</xliff:g> to <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Update <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, and <xliff:g id="TYPE_2">%3$s</xliff:g> to <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No thanks"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 2b7c4bfa6d9d..9969af373632 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporales"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceder a los datos del sensor acerca de tus signos vitales"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"¿Permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acceda a los datos del sensor de tus signos vitales?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Música"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"acceder a tu música"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"¿Quieres permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acceda a tu música?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Fotos y videos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"acceder a tus fotos y videos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"¿Quieres permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acceda a tus fotos y videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar el contenido de las ventanas"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contenido de la ventana con la que estés interactuando."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar la Exploración táctil"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que la aplicación emplee métodos para agregar y eliminar plantillas de huellas digitales para su uso."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Utilizar hardware de huellas digitales"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que la aplicación utilice el hardware de huellas digitales para realizar la autenticación."</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"leer tu colección de música"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Permite que la app lea tu colección de música."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modificar tu colección de música"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Permite que la app modifique tu colección de música."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"leer tu colección de videos"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Permite que la app lea tu colección de videos."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modificar tu colección de videos"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Permite que la app modifique tu colección de videos."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"leer tu colección de fotos"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Permite que la app lea tu colección de fotos."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modificar tu colección de fotos"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Permite que la app modifique tu colección de fotos."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"leer ubicaciones de tu colección de contenido multimedia"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que la app lea las ubicaciones de tu colección de contenido multimedia."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"La huella digital se detectó parcialmente. Vuelve a intentarlo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se pudo procesar la huella digital. Vuelve a intentarlo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Limpia el sensor y vuelve a intentarlo."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"¿Quieres guardar tu <xliff:g id="TYPE">%1$s</xliff:g> en <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"¿Quieres guardar tu <xliff:g id="TYPE_0">%1$s</xliff:g> y <xliff:g id="TYPE_1">%2$s</xliff:g> en <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"¿Quieres guardar tu <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> y <xliff:g id="TYPE_2">%3$s</xliff:g> en <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"¿Quieres actualizar los datos en <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"¿Quieres actualizar tu <xliff:g id="TYPE">%1$s</xliff:g> en <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"¿Quieres actualizar tu <xliff:g id="TYPE_0">%1$s</xliff:g> y <xliff:g id="TYPE_1">%2$s</xliff:g> en <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"¿Quieres actualizar tu <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, y <xliff:g id="TYPE_2">%3$s</xliff:g> en <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Guardar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, gracias"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Actualizar"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"contraseña"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"dirección"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"tarjeta de crédito"</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 36d0eb73e6f7..55e05261f502 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporales"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceder a datos de sensores de tus constantes vitales"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"¿Quieres permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acceda a los datos del sensor sobre tus constantes vitales?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Comprobar el contenido de la ventana"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contenido de una ventana con la que estés interactuando."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar la exploración táctil"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que la aplicación invoque métodos para añadir y eliminar plantillas de huellas digitales y utilizarlas."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"utilizar hardware de huellas digitales"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que la aplicación utilice el hardware de huellas digitales para realizar la autenticación"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Se ha detectado una huella digital parcial. Vuelve a intentarlo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se ha podido procesar la huella digital. Vuelve a intentarlo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Límpialo y vuelve a intentarlo."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"¿Guardar <xliff:g id="TYPE">%1$s</xliff:g> en <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"¿Guardar <xliff:g id="TYPE_0">%1$s</xliff:g> y <xliff:g id="TYPE_1">%2$s</xliff:g> en <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"¿Guardar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> y <xliff:g id="TYPE_2">%3$s</xliff:g> en <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Guardar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, gracias"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"contraseña"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"dirección"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"tarjeta de crédito"</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index 1e73bf1fa038..758bf4409a58 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kehaandurid"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"juurdepääs anduri andmetele teie eluliste näitajate kohta"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Kas lubada rakendusele <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> juurdepääs anduri andmetele teie eluliste näitajate kohta?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Akna sisu toomine"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kasutatava akna sisu kontrollimine."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Puudutusega sirvimise sisselülitamine"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Võimaldab rakendusel tühistada meetodid kasutatavate sõrmejäljemallide lisamiseks ja kustutamiseks."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"sõrmejälje riistvara kasutamine"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Võimaldab rakendusel autentimiseks kasutada sõrmejälje riistvara"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Tuvastati osaline sõrmejälg. Proovige uuesti."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sõrmejälge ei õnnestunud töödelda. Proovige uuesti."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sõrmejäljeandur on must. Puhastage see ja proovige uuesti."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Kas salvestada üksus <xliff:g id="TYPE">%1$s</xliff:g> teenusesse <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Kas salvestada üksused <xliff:g id="TYPE_0">%1$s</xliff:g> ja <xliff:g id="TYPE_1">%2$s</xliff:g> teenusesse <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Kas salvestada üksused <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ja <xliff:g id="TYPE_2">%3$s</xliff:g> teenusesse <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Salvesta"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Tänan, ei"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"parool"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"aadress"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"krediitkaart"</string> diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index aa6edaa015a3..567ca1863d8e 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -59,7 +59,7 @@ <string name="ClipMmi" msgid="6952821216480289285">"Sarrerako deien identifikazio-zerbitzua"</string> <string name="ClirMmi" msgid="7784673673446833091">"Irteerako deien identifikazio-zerbitzua"</string> <string name="ColpMmi" msgid="3065121483740183974">"Konektatutako linearen IDa"</string> - <string name="ColrMmi" msgid="4996540314421889589">"Konektatutako linearen ID murrizketa"</string> + <string name="ColrMmi" msgid="4996540314421889589">"Konektatutako linearen ID murriztapena"</string> <string name="CfMmi" msgid="5123218989141573515">"Dei-desbideratzea"</string> <string name="CwMmi" msgid="9129678056795016867">"Deia zain"</string> <string name="BaMmi" msgid="455193067926770581">"Deien debekuak"</string> @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Gorputz-sentsoreak"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"atzitu bizi-konstanteei buruzko sentsorearen datuak"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Bizi-konstanteei buruzko sentsorearen datuak atzitzea baimendu nahi diozu <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> aplikazioari?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Eskuratu leihoko edukia"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Arakatu irekita daukazun leihoko edukia."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktibatu \"Arakatu ukituta\""</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Erreferentzia-gako digitalen txantiloiak gehitzeko eta ezabatzeko metodoei dei egitea baimentzen die aplikazioei."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"erabili erreferentzia-gako digitalen hardwarea"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Autentifikatzeko erreferentzia-gako digitalen hardwarea erabiltzea baimentzen die aplikazioei."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hatz-marka digitala ez da osorik hauteman. Saiatu berriro."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ezin izan da prozesatu hatz-marka. Saiatu berriro."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Hatz-marka digitalen sentsorea zikina dago. Garbi ezazu, eta saiatu berriro."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g></b> zerbitzuan gorde nahi duzu?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> eta <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> zerbitzuan gorde nahi dituzu?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> eta <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> zerbitzuan gorde nahi dituzu?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Gorde"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ez, eskerrik asko"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"pasahitza"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"helbidea"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditu-txartela"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index d8067f0a3f2a..b64937c694aa 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"حسگرهای بدن"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"دسترسی به دادههای حسگر در رابطه با علائم حیاتی شما"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"به <b><xliff:g id="APP_NAME">%1$s</xliff:g><b> اجازه داده شود به دادههای حسگر مربوط به علائم حیاتی شما دسترسی پیدا کند؟"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"موسیقی"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"دسترسی به موسیقی شما"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"به <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> اجازه داده شود به موسیقی شما دسترسی پیدا کند؟"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"عکس و ویدیو"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"دسترسی به عکسها و ویدیوهایتان"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"به <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> اجازه داده شود به عکسها و ویدیوهای شما دسترسی پیدا کند؟"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"محتوای پنجره را بازیابی کند"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"محتوای پنجرهای را که درحال تعامل با آن هستید بررسی میکند."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"فعالسازی کاوش لمسی"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"به برنامه امکان میدهد روشهایی را برای افزودن و حذف الگوهای اثر انگشت جهت استفاده، فعال کند."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"استفاده از سختافزار اثر انگشت"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"به برنامه امکان میدهد از سختافزار اثر انگشت برای احراز هویت استفاده کند"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"خواندن مجموعه موسیقی شما"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"به برنامه اجازه میدهد مجموعه موسیقیتان را بخواند."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"تغییر مجموعه موسیقی شما"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"به برنامه اجازه میدهد مجموعه موسیقیتان را تغییر دهد."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"خواندن مجموعه ویدیوی شما"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"به برنامه اجازه میدهد مجموعه ویدیویتان را بخواند."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"تغییر مجموعه ویدیوی شما"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"به برنامه اجازه میدهد مجموعه ویدیویتان را تغییر دهد."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"خواندن مجموعه عکس شما"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"به برنامه اجازه میدهد مجموعه عکستان را بخواند."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"تغییر مجموعه عکس شما"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"به برنامه اجازه میدهد مجموعه عکستان را تغییر دهد."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"خواندن مکانها از مجموعه رسانه شما"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"به برنامه اجازه میدهد مکانها را از مجموعه رسانهتان بخواند."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"بخشی از اثر انگشت شناسایی شد. لطفاً دوباره امتحان کنید."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"اثرانگشت پردازش نشد. لطفاً دوباره امتحان کنید."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"حسگر اثر انگشت کثیف است. لطفاً آن را تمیز کنید و دوباره امتحان نمایید."</string> @@ -1410,7 +1430,7 @@ <string name="disable_tether_notification_message" msgid="2913366428516852495">"برای جزئیات، با سرپرستتان تماس بگیرید"</string> <string name="back_button_label" msgid="2300470004503343439">"برگشت"</string> <string name="next_button_label" msgid="1080555104677992408">"بعدی"</string> - <string name="skip_button_label" msgid="1275362299471631819">"پرش"</string> + <string name="skip_button_label" msgid="1275362299471631819">"رد شدن"</string> <string name="no_matches" msgid="8129421908915840737">"مورد منطبقی موجود نیست"</string> <string name="find_on_page" msgid="1946799233822820384">"یافتن در صفحه"</string> <plurals name="matches_found" formatted="false" msgid="1210884353962081884"> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> در <b><xliff:g id="LABEL">%2$s</xliff:g></b> ذخیره شود؟"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> و <xliff:g id="TYPE_1">%2$s</xliff:g> در <b><xliff:g id="LABEL">%3$s</xliff:g></b> ذخیره شوند؟"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>، <xliff:g id="TYPE_1">%2$s</xliff:g> و <xliff:g id="TYPE_2">%3$s</xliff:g> در <b><xliff:g id="LABEL">%4$s</xliff:g></b> ذخیره شوند؟"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"به <b><xliff:g id="LABEL">%1$s</xliff:g></b> بهروزرسانی شود؟"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g> به <b><xliff:g id="LABEL">%2$s</xliff:g></b> بهروزرسانی شود؟"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g> و <xliff:g id="TYPE_1">%2$s</xliff:g> به <b><xliff:g id="LABEL">%3$s</xliff:g></b> بهروزرسانی شود؟"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>، <xliff:g id="TYPE_1">%2$s</xliff:g>، و <xliff:g id="TYPE_2">%3$s</xliff:g> به <b><xliff:g id="LABEL">%4$s</xliff:g></b> بهروزرسانی شود؟"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"ذخیره"</string> <string name="autofill_save_no" msgid="2625132258725581787">"نه سپاسگزارم"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"بهروزرسانی"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"گذرواژه"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"نشانی"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"کارت اعتباری"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 36a656b0f3d1..e13a01fdcce7 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kehon anturit"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"käyttää anturitietoja elintoiminnoistasi"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Saako <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> käyttää anturitietoja elintoiminnoistasi?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musiikki"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"käyttää musiikkiasi"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Saako <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> käyttää musiikkiasi?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Kuvat ja videot"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"käyttää kuvia ja videoita"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Saako <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> käyttää kuviasi ja videoitasi?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Noutaa ikkunan sisältöä"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Tarkistaa käyttämäsi ikkunan sisältö."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ottaa kosketuksella tutkimisen käyttöön"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Sallii sovelluksen käyttää menetelmiä, joilla voidaan lisätä tai poistaa sormenjälkimalleja."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"sormenjälkilaitteiston käyttö"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Sallii sovelluksen käyttää sormenjälkilaitteistoa todennukseen."</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"lukea musiikkikokoelmaasi"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Antaa sovelluksen lukea musiikkikokoelmaasi."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"muokata musiikkikokoelmaasi"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Antaa sovelluksen muokata musiikkikokoelmaasi."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"lukea videokokoelmaasi"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Antaa sovelluksen lukea videokokoelmaasi."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"muokata videokokoelmaasi"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Antaa sovelluksen muokata videokokoelmaasi."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"lukea kuvakokoelmaasi"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Antaa sovelluksen lukea kuvakokoelmaasi."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"muokata kuvakokoelmaasi"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Antaa sovelluksen muokata kuvakokoelmaasi."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"lukea mediakokoelmasi sijainteja"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Antaa sovelluksen lukea mediakokoelmasi sijainteja."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sormenjälki havaittiin vain osittain. Yritä uudelleen."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sormenjäljen käsittely epäonnistui. Yritä uudelleen."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sormenjälkitunnistin on likainen. Puhdista tunnistin ja yritä uudelleen."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Tallennetaanko <xliff:g id="TYPE">%1$s</xliff:g> palveluun <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Tallennetaanko <xliff:g id="TYPE_0">%1$s</xliff:g> ja <xliff:g id="TYPE_1">%2$s</xliff:g> palveluun <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Tallennetaanko <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ja <xliff:g id="TYPE_2">%3$s</xliff:g> palveluun <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Muutetaanko tämä palvelussa <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Muutetaanko <xliff:g id="TYPE">%1$s</xliff:g>, jonka <b><xliff:g id="LABEL">%2$s</xliff:g></b> on tallentanut?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Muutetaanko <xliff:g id="TYPE_0">%1$s</xliff:g> ja <xliff:g id="TYPE_1">%2$s</xliff:g>, jotka <b><xliff:g id="LABEL">%3$s</xliff:g></b> on tallentanut?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Muutetaanko <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ja <xliff:g id="TYPE_2">%3$s</xliff:g>, jotka <b><xliff:g id="LABEL">%4$s</xliff:g></b> on tallentanut?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Tallenna"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ei kiitos"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Muuta"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"salasana"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"osoite"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"luottokortti"</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index eaa2ba005482..fda01a05ab75 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Capteurs corporels"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accéder aux données des capteurs sur vos signes vitaux"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Autoriser « <xliff:g id="APP_NAME">%1$s</xliff:g> » à accéder aux données des capteurs pour vos signes vitaux?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musique"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"accéder à votre musique"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Autoriser <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> à accéder à votre musique?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Photos et vidéos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"accéder à vos photos et vos vidéos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Autoriser <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> à accéder à vos photos et vos videos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Récupérer le contenu d\'une fenêtre"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecter le contenu d\'une fenêtre avec laquelle vous interagissez."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activer la fonctionnalité Explorer au toucher"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permet à l\'application de faire appel à des méthodes d\'ajout et de suppression de modèles d\'empreinte digitale que vous pouvez utiliser."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"utiliser le matériel d\'empreinte digitale"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permet à l\'application d\'utiliser du matériel d\'empreinte digitale pour l\'authentification"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"lire votre collection de musique"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Autoriser l\'application à lire votre collection de musique."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modifier votre collection de musique"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Autoriser l\'application à modifier votre collection de musique."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"lire votre collection de vidéos"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Autoriser l\'application à lire votre collection de vidéos."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modifier votre collection de vidéos"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Autoriser l\'application à modifier votre collection de vidéos."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"lire votre collection de photos"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Autoriser l\'application à lire votre collection de photos."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modifier votre collection de photos"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Autoriser l\'application à modifier votre collection de photos."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"lire les positions indiquées dans votre collection multimédia"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Autoriser l\'application à lire les positions indiquées dans votre collection multimédia."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte digitale partielle détectée. Veuillez essayer de nouveau."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de traiter les empreintes digitales. Veuillez essayer de nouveau."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le capteur d\'empreintes digitales est sale. Veuillez le nettoyer et essayer de nouveau."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Enregistrer <xliff:g id="TYPE">%1$s</xliff:g> dans <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Enregistrer <xliff:g id="TYPE_0">%1$s</xliff:g> et <xliff:g id="TYPE_1">%2$s</xliff:g> dans <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Enregistrer <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> et <xliff:g id="TYPE_2">%3$s</xliff:g> dans <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Mettre à jour vers <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Mettre à jour <xliff:g id="TYPE">%1$s</xliff:g> vers <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Mettre à jour <xliff:g id="TYPE_0">%1$s</xliff:g> et <xliff:g id="TYPE_1">%2$s</xliff:g> vers <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Mettre à jour <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> et <xliff:g id="TYPE_2">%3$s</xliff:g> vers <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Enregistrer"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Non, merci"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Mettre à jour"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"mot de passe"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresse"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"carte de crédit"</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 4e15595e1f45..94d33db84a1e 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Capteurs corporels"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accéder aux données des capteurs relatives à vos signes vitaux"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Permettre à <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> d\'accéder aux données des capteurs relatives à vos signes vitaux ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Récupérer le contenu d\'une fenêtre"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecte le contenu d\'une fenêtre avec laquelle vous interagissez."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activer la fonctionnalité Explorer au toucher"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Autoriser l\'application à invoquer des méthodes pour ajouter et supprimer des modèles d\'empreintes digitales"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Utiliser le matériel d\'empreintes digitales"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Autoriser l\'application à utiliser le matériel d\'empreintes digitales pour l\'authentification"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte numérique partiellement détectée. Veuillez réessayer."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de reconnaître l\'empreinte numérique. Veuillez réessayer."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le lecteur d\'empreintes numériques est sale. Veuillez le nettoyer, puis réessayer."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Enregistrer <xliff:g id="TYPE">%1$s</xliff:g> dans <b><xliff:g id="LABEL">%2$s</xliff:g></b> ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Enregistrer <xliff:g id="TYPE_0">%1$s</xliff:g> et <xliff:g id="TYPE_1">%2$s</xliff:g> dans <b><xliff:g id="LABEL">%3$s</xliff:g></b> ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Enregistrer <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> et <xliff:g id="TYPE_2">%3$s</xliff:g> dans <b><xliff:g id="LABEL">%4$s</xliff:g></b> ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Enregistrer"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Non, merci"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"mot de passe"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresse"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"carte de paiement"</string> diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index cf558400afad..a32a36e75d69 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporais"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceder aos datos do sensor sobre as túas constantes vitais"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Queres permitir que a aplicación <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acceda aos datos do sensor sobre as túas constantes vitais?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar contido da ventá"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona o contido dunha ventá coa que estás interactuando."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar a exploración táctil"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que a aplicación invoque métodos para engadir e eliminar modelos de uso de impresión dixital."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"usar hardware de impresión dixital"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que a aplicación utilice hardware de impresión dixital para a autenticación"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Detectouse unha impresión dixital parcial. Téntao de novo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Non se puido procesar a impresión dixital. Téntao de novo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impresión dixital está sucio. Límpao e téntao de novo."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Queres gardar <xliff:g id="TYPE">%1$s</xliff:g> en: <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Queres gardar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> en: <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Queres gardar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> en: <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Gardar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Non, grazas"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"contrasinal"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"enderezo"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"tarxeta de crédito"</string> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index d41a923327df..1cf889290d81 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"બોડી સેન્સર્સ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"તમારા મહત્વપૂર્ણ ચિહ્નો વિશે સેન્સર ડેટા ઍક્સેસ કરો"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>ને તમારી મહત્વપૂર્ણ સહી વિશેના સેન્સર ડેટાને ઍક્સેસ કરવાની મંજૂરી આપીએ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"વિંડો કન્ટેન્ટ પુનઃપ્રાપ્ત કરો"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"તમે જેની સાથે ક્રિયા-પ્રતિક્રિયા કરી રહ્યાં છો તે વિંડોનું કન્ટેન્ટ તપાસો."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"સ્પર્શ કરીને શોધખોળ કરવું ચાલુ કરો"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"એપ્લિકેશનને ઉપયોગ માટે ફિંગરપ્રિન્ટ નમૂના ઉમેરવા અને કાઢી નાખવા માટે પદ્ધતિઓની વિનંતી કરવાની મંજૂરી આપે છે."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ફિંગરપ્રિન્ટ હાર્ડવેરનો ઉપયોગ કરો"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"એપ્લિકેશનને પ્રમાણીકરણ માટે ફિંગરપ્રિન્ટ હાર્ડવેરનો ઉપયોગ કરવાની મંજૂરી આપે છે"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"આંશિક ફિંગરપ્રિન્ટ મળી. કૃપા કરીને ફરી પ્રયાસ કરો."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ફિંગરપ્રિન્ટ પ્રક્રિયા કરી શકાઈ નથી. કૃપા કરીને ફરી પ્રયાસ કરો."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ફિંગરપ્રિન્ટ સેન્સર ગંદું છે. કૃપા કરીને સાફ કરો અને ફરી પ્રયાસ કરો."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>ને <b><xliff:g id="LABEL">%2$s</xliff:g></b>માં સાચવીએ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> અને <xliff:g id="TYPE_1">%2$s</xliff:g>ને <b><xliff:g id="LABEL">%3$s</xliff:g></b>માં સાચવીએ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> અને <xliff:g id="TYPE_2">%3$s</xliff:g>ને <b><xliff:g id="LABEL">%4$s</xliff:g></b>માં સાચવીએ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"સાચવો"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ના, આભાર"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"પાસવર્ડ"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"સરનામું"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ક્રેડિટ કાર્ડ"</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 8c7a0d368ecf..a85d6fa11106 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"शरीर संवेदक"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"अपने महत्वपूर्ण संकेतों के बारे में सेंसर डेटा को ऐक्सेस करें"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> को अपने स्वास्थ्य से जुड़ी ज़रूरी जानकारी इस्तेमाल करने की अनुमति देना चाहते हैं?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विंडो की सामग्री वापस पाएं"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"उस विंडो की सामग्री की जाँच करें, जिसका आप इस्तेमाल कर रहे हैं."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"छूकर, किसी चीज़ से जुड़ी जानकारी सुनने की सुविधा चालू करें"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"उंगली की छाप वाले टेम्पलेट का उपयोग करने के लिए जोड़ने और हटाने हेतु ऐप को विधियां प्रारंभ करने देती है."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"उंगली की छाप के लिए हार्डवेयर का उपयोग करें"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ऐप के प्रमाणीकरण के लिए उंगली की छाप हार्डवेयर का उपयोग करने देती है"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फ़िंगरप्रिंट की पहचान की गई. कृपया पुनः प्रयास करें."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फ़िंगरप्रिंट संसाधित नहीं हो सका. कृपया पुन: प्रयास करें."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फ़िंगरप्रिंट सेंसर गंदा है. कृपया साफ़ करें और फिर कोशिश करें."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> को <b><xliff:g id="LABEL">%2$s</xliff:g></b> में सेव करें?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> और <xliff:g id="TYPE_1">%2$s</xliff:g> को <b><xliff:g id="LABEL">%3$s</xliff:g></b> में सेव करें?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> और <xliff:g id="TYPE_2">%3$s</xliff:g> को <b><xliff:g id="LABEL">%4$s</xliff:g></b> में सेव करें?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"सेव करें"</string> <string name="autofill_save_no" msgid="2625132258725581787">"नहीं, धन्यवाद"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"पासवर्ड"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"पता"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"क्रेडिट कार्ड"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 3baaf016da46..f9576e040508 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Biometrijski senzori"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"pristupiti podacima senzora o vašim vitalnim znakovima"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Želite li dopustiti aplikaciji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> da pristupa podacima senzora o vašim vitalnim znakovima?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Dohvaćati sadržaj prozora"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Pregledat će sadržaj prozora koji upotrebljavate."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Uključiti značajku Istraži dodirom"</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Aplikaciji omogućuje pozivanje načina za dodavanje i brisanje predložaka otisaka prstiju koji će se upotrijebiti."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"upotreba hardvera za čitanje otisaka prstiju"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Aplikaciji omogućuje upotrebu hardvera za čitanje otisaka prstiju radi autentifikacije."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je djelomični otisak prsta. Pokušajte ponovo."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Obrada otiska prsta nije uspjela. Pokušajte ponovo."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otiska prsta nije čist. Očistite ga i pokušajte ponovo."</string> @@ -1907,8 +1947,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Želite li da se podatak (<xliff:g id="TYPE">%1$s</xliff:g>) spremi na uslugu <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Želite li da se <xliff:g id="TYPE_0">%1$s</xliff:g> i <xliff:g id="TYPE_1">%2$s</xliff:g> spreme na uslugu <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Želite li da se <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> i <xliff:g id="TYPE_2">%3$s</xliff:g> spreme na uslugu <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Spremi"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, hvala"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"zaporku"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresu"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditnu karticu"</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 106f4970106b..f957384aecc9 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Testérzékelők"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"az érzékelők által mért, életjelekkel kapcsolatos adatok elérése"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Engedélyezi a(z) <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> számára, hogy hozzáférjen az életjelekkel kapcsolatos szenzoradatokhoz?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Ablaktartalom lekérdezése"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"A használt ablak tartalmának vizsgálata."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Felfedezés érintéssel bekapcsolása"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Lehetővé teszi az alkalmazás számára a használni kívánt ujjlenyomatsablonok hozzáadására és törlésére szolgáló metódusok indítását."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ujjlenyomat-olvasó hardver használata"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Lehetővé teszi az alkalmazás számára az ujjlenyomat-olvasó hardver hitelesítésre való használatát"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"A rendszer az ujjlenyomatnak csak egy részletét érzékelte. Próbálkozzon újra."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nem sikerült feldolgozni az ujjlenyomatot. Próbálkozzon újra."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Az ujjlenyomat-olvasó koszos. Tisztítsa meg, majd próbálkozzon újra."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Menti a következőt: <xliff:g id="TYPE">%1$s</xliff:g> ide: <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Menti a következőket: <xliff:g id="TYPE_0">%1$s</xliff:g> és <xliff:g id="TYPE_1">%2$s</xliff:g> ide: <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Menti a következőket: <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> és <xliff:g id="TYPE_2">%3$s</xliff:g> ide: <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Mentés"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nem, köszönöm"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"jelszó"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"cím"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"hitelkártya"</string> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index 96a03bfcbd06..978e66198bdf 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Մարմնի սենսորներ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"օգտագործել սենսորների տվյալները ձեր օրգանիզմի վիճակի մասին"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Թույլ տա՞լ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> հավելվածին սենսորից ստանալ ձեր կենսագործունեության հիմնական տվյալները:"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Առբերել պատուհանի բովանդակությունը"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Վերլուծել գործող պատուհանի բովանդակությունը"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Միացնել Հպման միջոցով հետազոտումը"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Հավելվածին թույլ է տալիս կատարել այնպիսի գործառույթներ, որոնց միջոցով կարելի է օգտագործման համար ավելացնել և հեռացնել մատնահետքերի նմուշներ:"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"օգտագործել մատնահետքերի գրանցման սարքը"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Հավելվածին թույլ է տալիս նույնականացման համար օգտագործել մատնահետքերի գրանցման սարքը"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Մատնահետքը հայտնաբերվել է մասամբ: Փորձեք նորից:"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Չհաջողվեց մշակել մատնահետքը: Նորից փորձեք:"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Մատնահետքերի սենսորն աղտոտված է: Մաքրեք այն և փորձեք նորից:"</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Պահե՞լ <xliff:g id="TYPE">%1$s</xliff:g>ը <b><xliff:g id="LABEL">%2$s</xliff:g></b> ծառայությունում"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Պահե՞լ <xliff:g id="TYPE_0">%1$s</xliff:g>ն ու <xliff:g id="TYPE_1">%2$s</xliff:g>ը <b><xliff:g id="LABEL">%3$s</xliff:g></b> ծառայությունում"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Պահե՞լ <xliff:g id="TYPE_0">%1$s</xliff:g>ը, <xliff:g id="TYPE_1">%2$s</xliff:g>ն ու <xliff:g id="TYPE_2">%3$s</xliff:g>ը <b><xliff:g id="LABEL">%4$s</xliff:g></b> ծառայությունում"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Պահել"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ոչ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"գաղտնաբառ"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"հասցե"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"վարկային քարտ"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 5bc03cdb8e20..7ba8e2c3c122 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensor Tubuh"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"mengakses data sensor tentang tanda-tanda vital"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Izinkan <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> mengakses data sensor tentang tanda-tanda vital Anda?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Mengambil konten jendela"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Memeriksa konten jendela tempat Anda berinteraksi."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Mengaktifkan Jelajahi dengan Sentuhan"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Mengizinkan aplikasi memanggil metode untuk menambahkan dan menghapus template sidik jari untuk digunakan."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"gunakan hardware sidik jari"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Mengizinkan aplikasi untuk menggunakan hardware sidik jari untuk otentikasi"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sebagian sidik jari terdeteksi. Coba lagi."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses sidik jari. Coba lagi."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensor sidik jari kotor. Bersihkan dan coba lagi."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Simpan <xliff:g id="TYPE">%1$s</xliff:g> ke <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Simpan <xliff:g id="TYPE_0">%1$s</xliff:g> dan <xliff:g id="TYPE_1">%2$s</xliff:g> ke <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Simpan <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, dan <xliff:g id="TYPE_2">%3$s</xliff:g> ke <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Simpan"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Lain kali"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"sandi"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"alamat"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kartu kredit"</string> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index a9152021f061..a2c79c043984 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Líkamsskynjarar"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"aðgangur að skynjaragögnum yfir lífsmörk þín"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Viltu veita <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> aðgang að skynjaragögnum yfir lífsmörk þín?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Sækja innihald glugga"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kanna innihald glugga sem þú ert að nota."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Kveikja á snertikönnun"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Gerir forritinu kleift að beita aðferðum til að bæta við og eyða fingrafarasniðmátum til notkunar."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"nota fingrafarabúnað"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Leyfir forritinu að nota fingrafarabúnað til auðkenningar"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hluti fingrafars greindist. Reyndu aftur."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ekki var hægt að vinna úr fingrafarinu. Reyndu aftur."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingrafaraskynjarinn er óhreinn. Hreinsaðu hann og reyndu aftur."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vista <xliff:g id="TYPE">%1$s</xliff:g> á <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vista <xliff:g id="TYPE_0">%1$s</xliff:g> og <xliff:g id="TYPE_1">%2$s</xliff:g> á <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vista <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> og <xliff:g id="TYPE_2">%3$s</xliff:g> á <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Vista"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nei, takk"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"aðgangsorð"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"heimilisfang"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditkort"</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index de0b5287af0b..a7c1ae29f7e8 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensori per il corpo"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accedere ai dati dei sensori relativi ai tuoi parametri vitali"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Consentire a <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> di accedere ai dati dei sensori relativi ai parametri vitali?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musica"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"Accesso alla tua musica"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Vuoi consentire all\'app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> di accedere alla tua musica?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Foto e video"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"Accesso alle tue foto e ai tuoi video"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Vuoi consentire all\'app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> di accedere alle tue foto e ai tuoi video?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperare contenuti della finestra"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Esaminare i contenuti di una finestra con cui interagisci."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Attivare Esplora al tocco"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Consente all\'app di richiamare metodi per aggiungere e rimuovere modelli di impronte digitali da utilizzare."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"utilizzo di hardware per il riconoscimento delle impronte digitali"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Consente all\'app di utilizzare l\'hardware per il riconoscimento delle impronte digitali per eseguire l\'autenticazione"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"Lettura della tua raccolta musicale"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Consente all\'app di leggere la tua raccolta musicale."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"Modifica della tua raccolta musicale"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Consente all\'app di modificare la tua raccolta musicale."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"Lettura della tua raccolta di video"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Consente all\'app di leggere la tua raccolta di video."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"Modifica della tua raccolta di video"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Consente all\'app di modificare la tua raccolta di video."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"Lettura della tua raccolta di foto"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Consente all\'app di leggere la tua raccolta di foto."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"Modifica della tua raccolta di foto"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Consente all\'app di modificare la tua raccolta di foto."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"Lettura delle posizioni dalla tua raccolta multimediale"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Consente all\'app di leggere le posizioni dalla tua raccolta multimediale."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Rilevata impronta digitale parziale. Riprova."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossibile elaborare l\'impronta digitale. Riprova."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Il sensore di impronte digitali è sporco. Puliscilo e riprova."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Salvare <xliff:g id="TYPE">%1$s</xliff:g> in <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Salvare <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> in <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Salvare <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> in <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Vuoi eseguire l\'aggiornamento a <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Vuoi eseguire l\'aggiornamento di <xliff:g id="TYPE">%1$s</xliff:g> a <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Vuoi eseguire l\'aggiornamento di <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> a <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Vuoi eseguire l\'aggiornamento di <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> a <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Salva"</string> <string name="autofill_save_no" msgid="2625132258725581787">"No, grazie"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Aggiorna"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"indirizzo"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"carta di credito"</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 0c0e0aba193c..60eb471b3a36 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"חיישני גוף"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"גישה אל נתוני חיישנים של הסימנים החיוניים שלך"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"לתת לאפליקציה <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> הרשאת גישה לנתוני חיישנים העוקבים אחר הסימנים החיוניים שלך?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"אחזור תוכן של חלון"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"בדוק את התוכן של חלון שאיתו אתה מבצע אינטראקציה."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"הפעלה של \'גילוי באמצעות מגע\'"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"מאפשר לאפליקציה להפעיל שיטות להוספה ומחיקה של תבניות טביעות אצבעות שבהן ייעשה שימוש."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"חומרה של טביעות אצבעות"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"מאפשר לאפליקציה להשתמש בחומרה של טביעות אצבעות לצורך אימות"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"זוהתה טביעת אצבע חלקית. נסה שוב."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"לא ניתן היה לעבד את טביעת האצבע. נסה שוב."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"החיישן של טביעות האצבעות מלוכלך. נקה אותו ונסה שוב."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"האם לשמור <xliff:g id="TYPE">%1$s</xliff:g> בשירות <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"האם לשמור <xliff:g id="TYPE_0">%1$s</xliff:g> ו<xliff:g id="TYPE_1">%2$s</xliff:g> בשירות <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"האם לשמור <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ו<xliff:g id="TYPE_2">%3$s</xliff:g> בשירות <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"שמירה"</string> <string name="autofill_save_no" msgid="2625132258725581787">"לא, תודה"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"סיסמה"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"כתובת"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"כרטיס אשראי"</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 00d1b5dca4f1..ec2ada4d3642 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ボディーセンサー"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"バイタルサインに関するセンサーデータへのアクセス"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"バイタルサインに関するセンサーデータへのアクセスを <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> に許可しますか?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"音楽"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"音楽へのアクセス"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"音楽へのアクセスを <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> に許可しますか?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"写真と動画"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"写真と動画へのアクセス"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"写真と動画へのアクセスを <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> に許可しますか?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ウィンドウコンテンツの取得"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ユーザーがアクセスしているウィンドウのコンテンツを検査します。"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"タッチガイドの有効化"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"使用する指紋テンプレートの追加や削除を行う方法の呼び出しをアプリに許可します。"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"指紋ハードウェアの使用"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"指紋ハードウェアを認証に使用することをアプリに許可します"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"音楽コレクションの読み取り"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"音楽コレクションの読み取りをアプリに許可します。"</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"音楽コレクションの変更"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"音楽コレクションの変更をアプリに許可します。"</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"動画コレクションの読み取り"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"動画コレクションの読み取りをアプリに許可します。"</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"動画コレクションの変更"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"動画コレクションの変更をアプリに許可します。"</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"写真コレクションの読み取り"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"写真コレクションの読み取りをアプリに許可します。"</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"写真コレクションの変更"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"写真コレクションの変更をアプリに許可します。"</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"メディア コレクションの位置情報の読み取り"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"メディア コレクションの位置情報の読み取りをアプリに許可します。"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"指紋を一部しか検出できませんでした。もう一度お試しください。"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"指紋を処理できませんでした。もう一度お試しください。"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋認証センサーに汚れがあります。汚れを落としてもう一度お試しください。"</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>を <b><xliff:g id="LABEL">%2$s</xliff:g></b> に保存しますか?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>を <b><xliff:g id="LABEL">%3$s</xliff:g></b> に保存しますか?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>、<xliff:g id="TYPE_2">%3$s</xliff:g>を <b><xliff:g id="LABEL">%4$s</xliff:g></b> に保存しますか?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"<b><xliff:g id="LABEL">%1$s</xliff:g></b> に更新しますか?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g>を <b><xliff:g id="LABEL">%2$s</xliff:g></b> に更新しますか?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g>と<xliff:g id="TYPE_1">%2$s</xliff:g>を <b><xliff:g id="LABEL">%3$s</xliff:g></b> に更新しますか?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>、<xliff:g id="TYPE_2">%3$s</xliff:g>を <b><xliff:g id="LABEL">%4$s</xliff:g></b> に更新しますか?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"はい"</string> <string name="autofill_save_no" msgid="2625132258725581787">"いいえ"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"更新"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"パスワード"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"住所"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"クレジット カード"</string> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index ab65348dfb75..e72876279d25 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"სხეულის სენსორები"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"თქვენი სასიცოცხლო ფუნქციების შესახებ სენსორის მონაცემებზე წვდომა"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"გსურთ, მიანიჭოთ <b><xliff:g id="APP_NAME">%1$s</xliff:g>-ს</b> თქვენი სასიცოცხლო ფუნქციების შესახებ სენსორის მონაცემებზე წვდომის ნებართვა?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ფანჯრის კონტენტის მოძიება"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"იმ ფანჯრის კონტენტის შემოწმება, რომელშიც მუშაობთ."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"„შეხებით აღმოჩენის“ ჩართვა"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"საშუალებას აძლევს აპლიკაციას დაამატოს ან ამოშალოს გამოსაყენებელი თითის ანაბეჭდის ნიმუშები,"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"თითის ანაბეჭდის აპარატის გამოყენება"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"საშუალებას აძლევს აპლიკაციას გამოიყენოს ავტენთიფიკაციისათვის თითის ანაბეჭდის აპარატი"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"აღმოჩენილია თითის ნაწილობრივი ანაბეჭდი. გთხოვთ, სცადოთ ხელახლა."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"თითის ანაბეჭდი ვერ მუშავდება. გთხოვთ, სცადოთ ხელახლა."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"თითის ანაბეჭდის სენსორი დაბინძურებულია. გთხოვთ, გაასუფთაოთ და სცადოთ ხელახლა."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"გსურთ, შეინახოთ <xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g>-ში</b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"გსურთ, შეინახოთ <xliff:g id="TYPE_0">%1$s</xliff:g> და <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g>-ში</b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"გსურთ, შეინახოთ <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, და <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g>-ში</b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"შენახვა"</string> <string name="autofill_save_no" msgid="2625132258725581787">"არა, გმადლობთ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"პაროლი"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"მისამართი"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"საკრედიტო ბარათი"</string> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index 3d4749feba0d..2e3ba648b341 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Дене датчиктері"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ағза күйінің көрсеткіштері туралы сенсор деректеріне қатынасу"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> қолданбасына негізгі физиологиялық көрсеткіштерді көрсететін сенсорлық деректерді пайдалануға рұқсат берілсін бе?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Терезе мазмұнын оқып отыру"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Ашық тұрған терезе мазмұнын тексеру."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Explore by Touch функциясын қосу"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Қолданбаға пайдаланатын саусақ ізі үлгілерін қосу және жою әдістерін шақыруға мүмкіндік береді."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"саусақ ізі жабдығын пайдалану"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Қолданбаға аутентификацияалу үшін саусақ ізі жабдығын пайдалануға мүмкіндік береді"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Саусақ ізі ішінара анықталды. Әрекетті қайталаңыз."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Саусақ ізін өңдеу мүмкін емес. Әрекетті қайталаңыз."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Саусақ ізі сенсоры лас. Тазалап, әрекетті қайталаңыз."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> \"<xliff:g id="LABEL">%2$s</xliff:g>\" қызметінде сақталсын ба?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> және <xliff:g id="TYPE_1">%2$s</xliff:g> \"<xliff:g id="LABEL">%3$s</xliff:g>\" қызметінде сақталсын ба?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> және <xliff:g id="TYPE_2">%3$s</xliff:g> \"<xliff:g id="LABEL">%4$s</xliff:g>\" қызметінде сақталсын ба?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Сақтау"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Жоқ, рақмет"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"құпия сөз"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"мекенжай"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"несие картасы"</string> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index d65e8865de9e..6e2d41b6e904 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ឧបករណ៍ចាប់សញ្ញារាងកាយ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ចូលដំណើរការទិន្នន័យឧបករណ៍ចាប់សញ្ញាអំពីស្ថានភាពសុខភាពរបស់អ្នក"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"អនុញ្ញាតឱ្យ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ចូលប្រើទិន្នន័យឧបករណ៍ចាប់សញ្ញាអំពីស្ថានភាពសុខភាពរបស់អ្នក?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ទាញយកខ្លឹមសារវិនដូ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ពិនិត្យខ្លឹមសារវិនដូដែលអ្នកកំពុងទាក់ទងជាមួយ។"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"បើកការរកមើលដោយប៉ះ"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"អនុញ្ញាតឲ្យកម្មវិធីប្រើវិធីសាស្ត្របន្ថែម និងលុបពុម្ពម្រាមដៃសម្រាប់ប្រើប្រាស់។"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ប្រើផ្នែករឹងស្នាមម្រាមដៃ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"អនុញ្ញាតឲ្យកម្មវិធីប្រើផ្នែករឹងស្នាមម្រាមដៃសម្រាប់ការផ្ទៀងផ្ទាត់"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"បានផ្តិតយកស្នាមម្រាមដៃមិនពេញលក្ខណៈ។ សូមព្យាយាមម្តងទៀត។"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"មិនអាចដំណើរការស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្តងទៀត។"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ឧបករណ៍ផ្តិតម្រាមដៃប្រលាក់ហើយ។ សូមសម្អាត ហើយព្យាយាមម្តងទៀត។"</string> @@ -1874,8 +1914,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"រក្សាទុក <xliff:g id="TYPE">%1$s</xliff:g> ទៅក្នុង <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"រក្សាទុក <xliff:g id="TYPE_0">%1$s</xliff:g> និង <xliff:g id="TYPE_1">%2$s</xliff:g> ទៅក្នុង <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"រក្សាទុក <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, និង <xliff:g id="TYPE_2">%3$s</xliff:g> ទៅក្នុង <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"រក្សាទុក"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ទេ អរគុណ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"ពាក្យសម្ងាត់"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"អាសយដ្ឋាន"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"បណ្ណឥណទាន"</string> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index c28e8e83e8c4..e99d53a53d99 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ದೇಹ ಸೆನ್ಸರ್ಗಳು"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ನಿಮ್ಮ ಮುಖ್ಯ ಲಕ್ಷಣಗಳ ಕುರಿತು ಸೆನ್ಸಾರ್ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಿ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"ನಿಮ್ಮ ಮುಖ್ಯ ಲಕ್ಷಣಗಳ ಕುರಿತು ಸೆನ್ಸರ್ ಡೇಟಾವನ್ನು <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ಗೆ ಅನುಮತಿಸಬೇಕೇ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ವಿಂಡೋ ವಿಷಯವನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ನೀವು ಬಳಸುತ್ತಿರುವ ವಿಂಡೋದ ವಿಷಯ ಪರೀಕ್ಷಿಸುತ್ತದೆ."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ಸ್ಪರ್ಶ-ಎಕ್ಸ್ಪ್ಲೋರ್ ಆನ್ ಮಾಡುತ್ತದೆ"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ಬಳಕೆಗೆ ಬೆರಳಚ್ಚು ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಅಳಿಸಲು ವಿಧಾನಗಳನ್ನು ಮನವಿ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ಬೆರಳಚ್ಚು ಹಾರ್ಡ್ವೇರ್ ಬಳಸಿ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ಪ್ರಮಾಣೀಕರಣಕ್ಕಾಗಿ ಬೆರಳಚ್ಚು ಹಾರ್ಡ್ವೇರ್ ಬಳಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ಭಾಗಶಃ ಬೆರಳಚ್ಚು ಪತ್ತೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ಬೆರಳಚ್ಚು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ಬೆರಳಚ್ಚು ಸೆನ್ಸಾರ್ ಕೊಳೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಅದನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> ಅನ್ನು <b><xliff:g id="LABEL">%2$s</xliff:g></b>ನಲ್ಲಿ ಉಳಿಸುವುದೇ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> ಹಾಗೂ <xliff:g id="TYPE_1">%2$s</xliff:g> ಅನ್ನು <b><xliff:g id="LABEL">%3$s</xliff:g></b>ನಲ್ಲಿ ಉಳಿಸುವುದೇ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, ಹಾಗೂ <xliff:g id="TYPE_2">%3$s</xliff:g> ಅನ್ನು <b><xliff:g id="LABEL">%4$s</xliff:g></b>ನಲ್ಲಿ ಉಳಿಸುವುದೇ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"ಉಳಿಸಿ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ಬೇಡ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"ಪಾಸ್ವರ್ಡ್"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ವಿಳಾಸ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 076b65fa3d80..89e726992a49 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"인체 감지 센서"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"생체 신호에 관한 센서 데이터에 액세스"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>에서 생체 신호에 관한 센서 데이터에 액세스하도록 허용하시겠습니까?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"창 콘텐츠 가져오기"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"상호작용 중인 창의 콘텐츠를 검사합니다."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"터치하여 탐색 사용"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"사용할 지문 템플릿의 추가 및 삭제 메소드를 앱에서 실행하도록 허용합니다."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"지문 하드웨어 사용"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"앱에서 지문 하드웨어를 인증에 사용하도록 허용합니다."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"지문이 일부만 인식되었습니다. 다시 시도해 주세요."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"지문을 인식할 수 없습니다. 다시 시도해 주세요."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"지문 센서를 깨끗이 닦고 다시 시도하세요."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>을(를) <b><xliff:g id="LABEL">%2$s</xliff:g></b>에 저장하시겠습니까?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> 및 <xliff:g id="TYPE_1">%2$s</xliff:g>을(를) <b><xliff:g id="LABEL">%3$s</xliff:g></b>에 저장하시겠습니까?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, <xliff:g id="TYPE_2">%3$s</xliff:g>을(를) <b><xliff:g id="LABEL">%4$s</xliff:g></b>에 저장하시겠습니까?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"저장"</string> <string name="autofill_save_no" msgid="2625132258725581787">"사용 안함"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"비밀번호"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"주소"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"신용카드"</string> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index a75a00c7af19..55a721ee36fb 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Дене сенсорлору"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"организмдин абалына көз салган сенсордун дайындарына мүмкүнчүлүк алуу"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> колдонмосуна организмдин абалына көз салган сенсордун дайындарын пайдаланууга уруксат берилсинби?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Терезедеги мазмунду алып турат"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Учурда ачылып турган терезедеги маалыматты талдайт."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"\"Сыйпалап изилдөө\" мүмкүнчүлүгүн иштетет"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Колдонмого пайдалануу үчүн манжа изинин үлгүлөрүн кошуу жана жок кылуу мүмкүндүгүн берет."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"манжа изинин аппараттык камсыздоосун колдонуу"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Колдонмого аныктыгын текшерүү үчүн манжа изинин аппараттык камсыздоосун пайдалануу мүмкүндүгүн берет"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Манжа изи жарым-жартылай аныкталды. Кайра аракет кылыңыз."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Манжа изи иштелбей койду. Кайра аракет кылыңыз."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Манжа изинин сенсору кирдеп калган. Тазалап, кайра аракет кылыңыз."</string> @@ -1874,8 +1914,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g></b> кызматында сакталсынбы?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> жана <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> кызматында сакталсынбы?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> жана <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> кызматында сакталсынбы?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Сактоо"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Жок, рахмат"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"сырсөз"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"дарек"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"насыя картасы"</string> diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index ef2cede2c777..24cef031887b 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ເຊັນເຊີຮ່າງກາຍ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ເຂົ້າຫາຂໍ້ມູນເຊັນເຊີກ່ຽວກັບສັນຍານຊີບຂອງທ່ານ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"ອະນຸຍາດ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ໃຫ້ເຂົ້າເຖິງຂໍ້ມູນເຊັນເຊີກ່ຽວກັບສັນຍານຊີບຂອງທ່ານບໍ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ດຶງຂໍ້ມູນເນື້ອຫາໃນໜ້າຈໍ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ກວດກາເນື້ອຫາຂອງໜ້າຈໍທີ່ທ່ານກຳລັງມີປະຕິສຳພັນນຳ."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ເປີດໃຊ້ \"ການສຳຫຼວດໂດຍສຳຜັດ\""</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ອະນຸຍາດໃຫ້ແອັບເຮັດໃຫ້ວິທີການຕ່າງໆເພີ່ມ ແລະລຶບແມ່ແບບລາຍນີ້ວມືສຳລັບການໃຊ້."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ໃຊ້ຮາດແວລາຍນີ້ວມື"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ອະນຸຍາດໃຫ້ແອັບນຳໃຊ້ຮາດແວລາຍນີ້ວມືສຳລັບການຮັບຮອງ"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ກວດພົບລາຍນີ້ວມືບາງສ່ວນແລ້ວ. ກະລຸນາລອງໃໝ່ອີກ."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ບໍ່ສາມາດດຳເນີນການລາຍນີ້ວມືໄດ້. ກະລຸນາລອງໃໝ່ອີກ."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ເຊັນເຊີລາຍນີ້ວມືເປື້ອນ. ກະລຸນາທຳຄວາມສະອາດ ແລະລອງໃໝ່ອີກ."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"ບັນທຶກ <xliff:g id="TYPE">%1$s</xliff:g> ໃສ່ <b><xliff:g id="LABEL">%2$s</xliff:g></b> ບໍ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"ບັນທຶກ <xliff:g id="TYPE_0">%1$s</xliff:g> ແລະ <xliff:g id="TYPE_1">%2$s</xliff:g> ໃສ່ <b><xliff:g id="LABEL">%3$s</xliff:g></b> ບໍ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"ບັນທຶກ <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ແລະ <xliff:g id="TYPE_2">%3$s</xliff:g> ໃສ່ <b><xliff:g id="LABEL">%4$s</xliff:g></b> ບໍ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"ບັນທຶກ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ບໍ່, ຂອບໃຈ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"ລະຫັດຜ່ານ"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ທີ່ຢູ່"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ບັດເຄຣດິດ"</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index e72b1a95fe8b..c61c30ff682b 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kūno jutikliai"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"pasiekti jutiklių duomenis apie gyvybinius ženklus"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Suteikti <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> galimybę pasiekti jutiklių duomenis apie gyvybinius ženklus?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Gauti lango turinį"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Tikrinti lango, su kuriuo sąveikaujate, turinį."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Įjungti „Naršyti paliečiant“"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Leidžiama programai aktyvinti metodus, norint pridėti ir ištrinti naudojamus kontrolinių kodų šablonus."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"naudoti kontrolinio kodo aparatinę įrangą"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Leidžiama programai naudoti kontrolinio kodo aparatinę įrangą tapatybei nustatyti"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Aptiktas dalinis kontrolinis kodas. Bandykite dar kartą."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nepavyko apdoroti kontrolinio kodo. Bandykite dar kartą."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Kontrolinio kodo jutiklis purvinas. Nuvalykite ir bandykite dar kartą."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Išsaugoti <xliff:g id="TYPE">%1$s</xliff:g> sistemoje <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Išsaugoti <xliff:g id="TYPE_0">%1$s</xliff:g> ir <xliff:g id="TYPE_1">%2$s</xliff:g> sistemoje <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Išsaugoti <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ir <xliff:g id="TYPE_2">%3$s</xliff:g> sistemoje <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Išsaugoti"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, ačiū"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"slaptažodį"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresą"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredito kortelę"</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index a5116e4c2229..ea7140b7ce25 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Ķermeņa sensori"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"piekļūt sensoru datiem par jūsu veselības rādījumiem"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vai atļaut lietotnei <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> piekļūt sensoru uztvertajiem veselības rādījumiem?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Izgūt loga saturu."</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Skatīt tā loga saturu, ar kuru mijiedarbojaties."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivizēt funkciju “Pārlūkot pieskaroties”."</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Atļauj lietotnei izsaukt metodes izmantojamo pirkstu nospiedumu veidņu pievienošanai un dzēšanai."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"lietot pirkstu nospiedumu aparatūru"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Atļauj lietotnei izmantot pirkstu nospiedumu aparatūru autentificēšanai."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Noteikts daļējs pirksta nospiedums. Lūdzu, mēģiniet vēlreiz."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nevarēja apstrādāt pirksta nospiedumu. Lūdzu, mēģiniet vēlreiz."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Pirkstu nospiedumu sensors ir netīrs. Lūdzu, notīriet to un mēģiniet vēlreiz."</string> @@ -1907,8 +1947,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vai saglabāt vienumu “<xliff:g id="TYPE">%1$s</xliff:g>” pakalpojumā <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vai saglabāt vienumus “<xliff:g id="TYPE_0">%1$s</xliff:g>” un “<xliff:g id="TYPE_1">%2$s</xliff:g>” pakalpojumā <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vai saglabāt vienumus “<xliff:g id="TYPE_0">%1$s</xliff:g>”, “<xliff:g id="TYPE_1">%2$s</xliff:g>” un “<xliff:g id="TYPE_2">%3$s</xliff:g>” pakalpojumā <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Saglabāt"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nē, paldies"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"paroli"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresi"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredītkartes informāciju"</string> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index 47f388debc20..b2beb3aad01a 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Телесни сензори"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"пристапува до податоците од сензорите за виталните знаци"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Дали да се дозволи <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> да пристапува до податоците на сензорот за витални знаци?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Музика"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"пристапува до музиката"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Дали да се дозволи <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> да пристапува до музиката?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Фотографии и видеа"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"пристапува до фотографиите и видеата"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Дали да се дозволи <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> да пристапува до фотографиите и видеата?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Преземе содржина на прозорец"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Ја следи содржината на прозорецот со кој се комуницира."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Вклучи „Истражувај со допир“"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Дозволува апликацијата да повика начини за додавање и бришење шаблони на отпечатоци за користење."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"користи хардвер за отпечатоци"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Дозволува апликацијата да користи хардвер за отпечатоци за проверка"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"да ја чита вашата музичка збирка"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Дозволува апликацијата да ја чита вашата музичка збирка."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"да ја менува вашата музичка збирка"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Дозволува апликацијата да ја менува вашата музичка збирка."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"да ја чита вашата збирка на видеа"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Дозволува апликацијата да ја чита вашата збирка на видеа."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"да ја менува вашата збирка на видеа"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Дозволува апликацијата да ја менува вашата збирка на видеа."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"да ја чита вашата збирка на фотографии"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Дозволува апликацијата да ја чита вашата збирка на фотографии."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"да ја менува вашата збирка на фотографии"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Дозволува апликацијата да ја менува вашата збирка на фотографии."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"да чита локации од вашата збирка на аудиовизуелни содржини"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Дозволува апликацијата да чита локации од вашата збирка на аудиовизуелни содржини."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откриен е делумен отпечаток. Обидете се повторно."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатокот не можеше да се обработи. Обидете се повторно."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорот за отпечатоци е валкан. Исчистете го и обидете се повторно."</string> @@ -1875,8 +1895,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Да се зачува <xliff:g id="TYPE">%1$s</xliff:g> во <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Да се зачуваат <xliff:g id="TYPE_0">%1$s</xliff:g> и <xliff:g id="TYPE_1">%2$s</xliff:g> во <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Да се зачуваат <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> и <xliff:g id="TYPE_2">%3$s</xliff:g> во <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Дали да се ажурира на <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Дали да се ажурира <xliff:g id="TYPE">%1$s</xliff:g> на <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Дали да се ажурираат <xliff:g id="TYPE_0">%1$s</xliff:g> и <xliff:g id="TYPE_1">%2$s</xliff:g> на <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Дали да се ажурираат <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> и <xliff:g id="TYPE_2">%3$s</xliff:g> на <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Зачувај"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Не, фала"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Ажурирај"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"лозинка"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"адреса"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"кредитна картичка"</string> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index 1a3556ccc369..db2aa1ee4e45 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ബോഡി സെൻസറുകൾ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"നിങ്ങളുടെ ജീവാധാര ലക്ഷണങ്ങളെ കുറിച്ചുള്ള സെൻസർ വിവരങ്ങൾ ആക്സസ് ചെയ്യുക"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"നിങ്ങളുടെ ജീവധാരണ ലക്ഷണങ്ങളെ കുറിച്ചുള്ള സെൻസർ ഡാറ്റ ആക്സസ് ചെയ്യാൻ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ആപ്പിനെ അനുവദിക്കണോ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"വിൻഡോ ഉള്ളടക്കം വീണ്ടെടുക്കുക"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"നിങ്ങൾ സംവദിക്കുന്ന ഒരു വിൻഡോയുടെ ഉള്ളടക്കം പരിശോധിക്കുക."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"സ്പർശനം വഴി പര്യവേക്ഷണം ചെയ്യുക, ഓണാക്കുക"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ഉപയോഗിക്കാനായി വിരലടയാള ടെംപ്ലേറ്റുകൾ ചേർക്കാനും ഇല്ലാതാക്കാനുമുള്ള രീതികൾ അഭ്യർത്ഥിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ഫിംഗർപ്രിന്റ് ഹാർഡ്വെയർ ഉപയോഗിക്കുക"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"പ്രാമാണീകരണത്തിനായി വിരലടയാളം ഉപയോഗിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"വിരലടയാളം ഭാഗികമായി തിരിച്ചറിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"വിരലടയാളം പ്രോസസ്സ് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"വിരലടയാള സെൻസറിന് വൃത്തിയില്ല. അത് ശുചിയാക്കി വീണ്ടും ശ്രമിക്കുക."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> എന്നതിനെ <b><xliff:g id="LABEL">%2$s</xliff:g></b>എന്നതിലേക്ക് സംരക്ഷിക്കണോ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> എന്നിവ<b><xliff:g id="LABEL">%3$s</xliff:g></b>എന്നതിലേക്ക് സംരക്ഷിക്കണോ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, <xliff:g id="TYPE_2">%3$s</xliff:g> എന്നിവ<b><xliff:g id="LABEL">%4$s</xliff:g></b>എന്നതിലേക്ക് സംരക്ഷിക്കണോ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"സംരക്ഷിക്കുക"</string> <string name="autofill_save_no" msgid="2625132258725581787">"വേണ്ട, നന്ദി"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"പാസ്വേഡ്"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"വിലാസം"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ക്രെഡിറ്റ് കാർഡ്"</string> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index e1b967093180..ddf1bc68da0b 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Биеийн мэдрэгч"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"таны биеийн байдлын талаарх мэдрэгч бүхий өгөгдөлд нэвтрэх"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>-д таны биеийн ерөнхий байдлын үзүүлэлтүүдийн мэдрэгчийн өгөгдөлд хандахыг зөвшөөрөх үү?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Хөгжим"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"хөгжимдөө хандах"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>-д таны хөгжимд хандахыг зөвшөөрөх үү?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Зураг & видео"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"зураг & видеондоо хандах"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>-д таны зураг & видеонд хандахыг зөвшөөрөх үү?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Цонхны агуулгыг авах"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Таны харилцан үйлчлэх цонхны контентоос шалгах."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Хүрч танихыг асаах"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Хурууны хээний загварыг нэмэх эсвэл усгтах үйлдлийг хийх зөвшөөрлийг програмд олгодог."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"хурууны хээний програм хангамжийг ашиглах"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Баталгаажуулалт хийх зорилгоор хурууны хээний апп хамгамжийг ашиглах зөвшөөрлийг аппд олгодог"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"хөгжмийн цуглуулгаа унших"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Таны хөгжмийн цуглуулгыг унших зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"хөгжмийн цуглуулгаа тохируулах"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Таны хөгжмийн цуглуулгыг тохируулах зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"видео цуглуулгаа унших"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Таны видео цуглуулгыг унших зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"видео цуглуулгаа тохируулах"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Таны видео цуглуулгыг тохируулах зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"зургийн цуглуулгаа унших"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Таны зургийн цуглуулгыг унших зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"зургийн цуглуулгаа тохируулах"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Таны зургийн цуглуулгыг тохируулах зөвшөөрлийг аппад олгодог."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"медиа цуглуулгаасаа байршлыг унших"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Таны медиа цуглуулгаас байршлыг унших зөвшөөрлийг аппад олгодог."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Хурууны хээг дутуу уншуулсан байна. Дахин оролдоно уу."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Хурууны хээ боловсруулж чадахгүй байна. Дахин оролдоно уу."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Хурууны хээ мэдрэгч бохирдсон байна. Та цэвэрлэсний дараагаар дахин оролдоно уу."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>-г <b><xliff:g id="LABEL">%2$s</xliff:g></b>-д хадгалах уу?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>-г <b><xliff:g id="LABEL">%3$s</xliff:g></b>-д хадгалах уу?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, <xliff:g id="TYPE_2">%3$s</xliff:g>-г <b><xliff:g id="LABEL">%4$s</xliff:g></b>-д хадгалах уу?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"<b><xliff:g id="LABEL">%1$s</xliff:g></b>-д шинэчлэх үү?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g>-г <b><xliff:g id="LABEL">%2$s</xliff:g></b>-д шинэчлэх үү?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>-г <b><xliff:g id="LABEL">%3$s</xliff:g></b>-д шинэчлэх үү?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, <xliff:g id="TYPE_2">%3$s</xliff:g>-г <b><xliff:g id="LABEL">%4$s</xliff:g></b>-д шинэчлэх үү?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Хадгалах"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Үгүй, баярлалаа"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Шинэчлэх"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"нууц үг"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"хаяг"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"кредит карт"</string> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index 65c882862dd1..4b0154340531 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"शरीर सेन्सर"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"आपल्या महत्त्वाच्या मापनांविषयी सेंसर डेटा अॅक्सेस करा"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ला तुमच्या महत्त्वाच्या लक्षणांविषयीचा सेन्सर डेटा अॅक्सेस करू द्यायचे?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विंडो सामग्री पुनर्प्राप्त करा"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"तुम्ही परस्परसंवाद करीत असलेल्या विंडोची सामग्री तपासा."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"स्पर्श करून अन्वेषण चालू करा"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"वापर करण्याकरिता फिंगरप्रिंट टेम्पलेट जोडण्यासाठी आणि हटविण्यासाठी पद्धती रद्द करण्यास अॅपला अनुमती देते."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"फिंगरप्रिंट हार्डवेअर वापरा"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"प्रमाणीकरणाकरिता फिंगरप्रिंट हार्डवेअरचा वापर करण्यासाठी अॅपला अनुमती देते"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फिंगरप्रिंट आढळली. कृपया पुन्हा प्रयत्न करा."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फिंगरप्रिंटवर प्रक्रिया करणे शक्य झाले नाही. कृपया पुन्हा प्रयत्न करा."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फिंगरप्रिंट सेन्सर खराब आहे. कृपया साफ करा आणि पुन्हा प्रयत्न करा."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<b><xliff:g id="LABEL">%2$s</xliff:g></b>मध्ये <xliff:g id="TYPE">%1$s</xliff:g> सेव्ह करायची?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<b><xliff:g id="LABEL">%3$s</xliff:g></b>मध्ये <xliff:g id="TYPE_0">%1$s</xliff:g> आणि <xliff:g id="TYPE_1">%2$s</xliff:g> सेव्ह करायची?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<b><xliff:g id="LABEL">%4$s</xliff:g></b>मध्ये <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> आणि <xliff:g id="TYPE_2">%3$s</xliff:g> सेव्ह करायची?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"सेव्ह करा"</string> <string name="autofill_save_no" msgid="2625132258725581787">"नाही, नको"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"पासवर्ड"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"पत्ता"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"क्रेडिट कार्ड"</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index b2f10c11c262..3df4e957a158 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Penderia Badan"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"akses data penderia tentang tanda vital anda"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Benarkan <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> mengakses data penderia tentang tanda vital anda?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Dapatkan kembali kandungan tetingkap"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Periksa kandungan tetingkap yang berinteraksi dengan anda."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Hidupkan Jelajah melalui Sentuhan"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Membenarkan apl menggunakan kaedah untuk menambahkan dan memadamkan templat cap jari untuk digunakan."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"gunakan perkakasan cap jari"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Membenarkan apl menggunakan perkakasan cap jari untuk pengesahan"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Cap jari separa dikesan. Sila cuba lagi."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses cap jari. Sila cuba lagi."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Penderia cap jari kotor. Sila bersihkan dan cuba lagi."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Simpan <xliff:g id="TYPE">%1$s</xliff:g> ke <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Simpan <xliff:g id="TYPE_0">%1$s</xliff:g> dan <xliff:g id="TYPE_1">%2$s</xliff:g> ke <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Simpan <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> dan <xliff:g id="TYPE_2">%3$s</xliff:g> ke <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Simpan"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Tidak, terima kasih"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"kata laluan"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"alamat"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kad kredit"</string> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index f9049f55e81c..db3fdd3c7c95 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ခန္ဓာကိုယ် အာရုံခံကိရိယာများ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"သင်၏ အဓိကကျသော လက္ခဏာများအကြောင်း အာရုံခံကိရိယာဒေတာကို ရယူသုံးစွဲရန်"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> အား သင်၏ အရေးကြီးသောလက္ခဏာ အာရုံခံကိရိယာ ဒေတာများကို သုံးခွင့်ပေးလိုပါသလား။"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"တေးဂီတ"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"သင့်တေးဂီတကို ဝင်သုံးသည်"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> အား သင့်တေးဂီတကို ဝင်သုံးခွင့်ပေးလိုပါသလား။"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"ဓာတ်ပုံနှင့် ဗီဒီယိုများ"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"သင့်ဓာတ်ပုံနှင့် ဗီဒီယိုများကို ဝင်သုံးသည်"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> အား သင့်ဓာတ်ပုံနှင့် ဗီဒီယိုများကို ဝင်သုံးခွင့်ပေးလိုပါသလား။"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ဝင်းဒိုးတွင် ပါရှိသည်များကို ပြန်လည်ရယူရန်"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"သင်အသုံးပြုနေသော ဝင်းဒိုးတွင် ပါရှိသည်များကို ကြည့်ရှုစစ်ဆေးသည်။"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"တို့ထိခြင်းဖြင့် ရှာဖွေမှုကို ဖွင့်ရန်"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"အသုံးပြုရန်အတွက် လက်ဗွေရာပုံစံများကို ပေါင်းထည့်ရန် သို့မဟုတ် ဖျက်ရန်နည်းလမ်းများကို အပ်ဖ်အား အသုံးပြုခွင့်ပြုသည်။"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"လက်ဗွေရာပစ္စည်းကို အသုံးပြုမည်"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းအတွက် လက်ဗွေရာပစ္စည်းကို အသုံးပြုရန် အပ်ဖ်အားခွင့်ပြုသည်။"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"သင့်တေးဂီတ စုစည်းမှုကို ဖတ်ခြင်း"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"အက်ပ်အား သင့်တေးဂီတစုစည်းမှုကို ဖတ်ခွင့်ပေးသည်။"</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"သင့်တေးဂီတ စုစည်းမှုကို ပြုပြင်ခြင်း"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"အက်ပ်အား သင့်တေးဂီတစုစည်းမှုကို ပြုပြင်ခွင့်ပေးသည်။"</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"သင့်ဗီဒီယို စုစည်းမှုကို ဖတ်ခြင်း"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"အက်ပ်အား သင့်ဗီဒီယိုစုစည်းမှုကို ဖတ်ခွင့်ပေးသည်။"</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"သင့်ဗီဒီယို စုစည်းမှုကို ပြုပြင်ခြင်း"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"အက်ပ်အား သင့်ဗီဒီယိုစုစည်းမှုကို ပြုပြင်ခွင့်ပေးသည်။"</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"သင့်ဓာတ်ပုံ စုစည်းမှုကို ဖတ်ခြင်း"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"အက်ပ်အား သင့်ဓာတ်ပုံစုစည်းမှုကို ဖတ်ခွင့်ပေးသည်။"</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"သင့်ဓာတ်ပုံ စုစည်းမှုကို ပြုပြင်ခြင်း"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"အက်ပ်အား သင့်ဓာတ်ပုံစုစည်းမှုကို ပြုပြင်ခွင့်ပေးသည်။"</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခြင်း"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"အက်ပ်အား သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခွင့်ပေးသည်။"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"လက်ဗွေရဦ တစ်ပိုင်းတစ်စ တွေ့ရှိသည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"လက်ဗွေရာယူခြင်း မဆောင်ရွက်နိုင်ပါ။ ထပ်မံကြိုးစားပါ။"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"လက်ဗွေရာဖတ်ကိရိယာ ညစ်ပေနေသည်။ ကျေးဇူးပြု၍ ရှင်းလင်းကာ ထပ်မံကြိုးစားပါ။"</string> @@ -1873,8 +1893,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> ကို <b><xliff:g id="LABEL">%2$s</xliff:g></b> တွင် သိမ်းဆည်းလိုပါသလား။"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> နှင့် <xliff:g id="TYPE_1">%2$s</xliff:g> ကို <b><xliff:g id="LABEL">%3$s</xliff:g></b> တွင် သိမ်းဆည်းလိုပါသလား။"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>၊ <xliff:g id="TYPE_1">%2$s</xliff:g> နှင့် <xliff:g id="TYPE_2">%3$s</xliff:g> ကို <b><xliff:g id="LABEL">%4$s</xliff:g></b> တွင် သိမ်းဆည်းလိုပါသလား။"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"<b><xliff:g id="LABEL">%1$s</xliff:g></b> သို့ အပ်ဒိတ်လုပ်လိုပါသလား။"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g> ကို <b><xliff:g id="LABEL">%2$s</xliff:g></b> သို့ အပ်ဒိတ်လုပ်လိုပါသလား။"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g> နှင့် <xliff:g id="TYPE_1">%2$s</xliff:g> ကို <b><xliff:g id="LABEL">%3$s</xliff:g></b> သို့ အပ်ဒိတ်လုပ်လိုပါသလား။"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>၊ <xliff:g id="TYPE_1">%2$s</xliff:g> နှင့် <xliff:g id="TYPE_2">%3$s</xliff:g> ကို <b><xliff:g id="LABEL">%4$s</xliff:g></b> သို့ အပ်ဒိတ်လုပ်လိုပါသလား။"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"သိမ်းရန်"</string> <string name="autofill_save_no" msgid="2625132258725581787">"မလိုပါ"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"အပ်ဒိတ်လုပ်ရန်"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"စကားဝှက်"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"လိပ်စာ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ခရက်တစ်ကတ်"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index a5bd899f35a2..da47ea7a1a50 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kroppssensorer"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"få tilgang til sensordata om de vitale tegnene dine"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vil du gi <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> tilgang til sensordata om de vitale tegnene dine?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"hente innhold i vinduer"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Appen analyserer innholdet i vinduer du samhandler med."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"slå på berøringsutforsking"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Lar appen fremkalle metoder for å legge til og slette fingeravtrykkmaler for bruk."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"bruke fingeravtrykkmaskinvare"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Lar appen bruke fingeravtrykkmaskinvare til godkjenning"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Deler av fingeravtrykket er registrert. Prøv på nytt."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kunne ikke registrere fingeravtrykket. Prøv på nytt."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtrykksensoren er skitten. Rengjør den og prøv på nytt."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vil du lagre <xliff:g id="TYPE">%1$s</xliff:g> i <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vil du lagre <xliff:g id="TYPE_0">%1$s</xliff:g> og <xliff:g id="TYPE_1">%2$s</xliff:g> i <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vil du lagre <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> og <xliff:g id="TYPE_2">%3$s</xliff:g> i <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Lagre"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nei takk"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"passord"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresse"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredittkort"</string> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index eac241b499b4..c39b7c80bf65 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"शारीरिक सेन्सर"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"तपाईंको महत्त्वपूर्ण संकेत बारे सेन्सर डेटा पहुँच गर्नुहोस्"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> लाई आफ्ना महत्त्वपूर्ण लक्षणहरूसम्बन्धी सेन्सर डेटामाथि पहुँच राख्न दिने हो?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विन्डो सामग्रीको पुनःबहाली गर्नुहोस्।"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"तपाईँको अन्तरक्रिया भइरहेको विन्डोको सामग्रीको निरीक्षण गर्नुहोस्।"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"छोएर गरिने खोजलाई सुचारु गर्नुहोस्"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"अनुप्रयोगलाई प्रयोगको लागि औठाछाप टेम्प्लेट थप्न र मेटाउने तरिका आह्वान गर्न अनुमति दिन्छ।"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"औठाछाप हार्डवेयर प्रयोग गर्नुहोस्"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"अनुप्रयोगलाई प्रमाणीकरणको लागि औठाछाप हार्डवेयर प्रयोग गर्न अनुमति दिन्छ"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक औठाछाप पत्ता लाग्यो। कृपया फेरि प्रयास गर्नुहोस्।"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"औठाछाप प्रशोधन गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"औँठाछाप सेन्सर फोहोर छ। कृपया सफा गरेर फेरि प्रयास गर्नुहोस्।"</string> @@ -1878,8 +1918,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> लाई <b><xliff:g id="LABEL">%2$s</xliff:g></b> मा सुरक्षित गर्ने हो?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> र <xliff:g id="TYPE_1">%2$s</xliff:g> लाई <b><xliff:g id="LABEL">%3$s</xliff:g></b> मा सुरक्षित गर्ने हो?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> र <xliff:g id="TYPE_2">%3$s</xliff:g> लाई to <b><xliff:g id="LABEL">%4$s</xliff:g></b> मा सुरक्षित गर्ने हो?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"सुरक्षित गर्नुहोस्"</string> <string name="autofill_save_no" msgid="2625132258725581787">"पर्दैन, धन्यवाद"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"पासवर्ड"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ठेगाना"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"क्रेडिट कार्ड"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 0981442ffd0b..0e131320b633 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Lichaamssensoren"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"toegang krijgen tot sensorgegevens over je vitale functies"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> toegang geven tot sensorgegevens over je vitale functies?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Muziek"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"toegang tot je muziek"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> toegang geven tot je muziek?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Foto\'s en video\'s"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"toegang tot je foto\'s en video\'s"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Wil je <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> toegang geven tot je foto\'s en video\'s?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Content van vensters ophalen"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"De content inspecteren van een venster waarmee je interactie hebt."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"\'Verkennen via aanraking\' inschakelen"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Hiermee kan de app methoden aanroepen om vingerafdruksjablonen toe te voegen en te verwijderen voor gebruik."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Vingerafdrukhardware gebruiken"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Hiermee kan de app vingerafdrukhardware gebruiken voor verificatie"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"je muziekcollectie bekijken"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Hiermee sta je de app toe je muziekcollectie te bekijken."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"je muziekcollectie aanpassen"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Hiermee sta je de app toe je muziekcollectie aan te passen."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"je videocollectie bekijken"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Hiermee sta je de app toe je videocollectie te bekijken."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"je videocollectie aanpassen"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Hiermee sta je de app toe je videocollectie aan te passen."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"je fotocollectie bekijken"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Hiermee sta je de app toe je fotocollectie te bekijken."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"je fotocollectie aanpassen"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Hiermee sta je de app toe je fotocollectie aan te passen."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"locaties van je mediacollecties bekijken"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Hiermee sta je de app toe locaties van je mediacollectie te bekijken."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelijke vingerafdruk gedetecteerd. Probeer het opnieuw."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kan vingerafdruk niet verwerken. Probeer het opnieuw."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"De vingerafdruksensor moet worden schoongemaakt. Probeer het daarna opnieuw."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> opslaan in <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> en <xliff:g id="TYPE_1">%2$s</xliff:g> opslaan in <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> en <xliff:g id="TYPE_2">%3$s</xliff:g> opslaan in <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Updaten naar <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<xliff:g id="TYPE">%1$s</xliff:g> updaten naar <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<xliff:g id="TYPE_0">%1$s</xliff:g> en <xliff:g id="TYPE_1">%2$s</xliff:g> updaten naar <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> en <xliff:g id="TYPE_2">%3$s</xliff:g> updaten naar <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Opslaan"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nee, bedankt"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Updaten"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"Wachtwoord"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"Adres"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"Creditcard"</string> diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml index c86fab8e11e8..4d5dd42d260b 100644 --- a/core/res/res/values-or/strings.xml +++ b/core/res/res/values-or/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ବଡୀ ସେନ୍ସର୍"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ଆପଣଙ୍କ ଗୁରୁତପୂର୍ଣ୍ଣ ସଂକେତଗୁଡ଼ିକ ବିଷୟରେ ସେନ୍ସର୍ ଡାଟା ଆକ୍ସେସ୍ କରେ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>କୁ ଆପଣଙ୍କ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ଲକ୍ଷଣଗୁଡ଼ିକ ବିଷୟରେ ସେନ୍ସର୍ ଡାଟା ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଅନୁମତି ଦେବେ କି?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ୱିଣ୍ଡୋ କଣ୍ଟେଣ୍ଟ ହାସଲ କରନ୍ତୁ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ଆପଣ କାମ କରୁଥିବା ୱିଣ୍ଡୋର କଣ୍ଟେଣ୍ଟକୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ସ୍ପର୍ଶ ଦ୍ୱାରା ଏକ୍ସପ୍ଲୋର୍ ଅନ୍ କରନ୍ତୁ"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ବ୍ୟବହାର କରିବା ପାଇଁ ଆଙ୍ଗୁଠି ଚିହ୍ନ ଯୋଡ଼ିବାକୁ ଓ ଡିଲିଟ୍ କରିବାକୁ ଆପକୁ ବିଧି ଆରମ୍ଭ କରିବାକୁ ଦେଇଥାଏ।"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ହାର୍ଡୱେର୍ ବ୍ୟବହାର କରନ୍ତୁ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ସ୍ୱୀକୃତି ପାଇଁ ଆଙ୍ଗୁଠି ଚିହ୍ନ ହାର୍ଡୱେର୍ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଏ"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ଆଂଶିକ ଚିହ୍ନଟ ହେଲା। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ପ୍ରୋସେସ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ସେନ୍ସର୍ ମଇଳା ହୋଇଯାଇଛି। ଦୟାକରି ସଫା କରନ୍ତୁ ଓ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g></b>ରେ ସେଭ୍ କରିବେ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> ଏବଂ <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b>ରେ ସେଭ୍ କରିବେ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, ଏବଂ <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b>ରେ ସେଭ୍ କରିବେ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"ସେଭ୍ କରନ୍ତୁ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ନାଁ, ପଚାରିଥିବାରୁ ଧନ୍ୟବାଦ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"ପାସୱର୍ଡ୍"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ଠିକଣା"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"କ୍ରେଡିଟ୍ କାର୍ଡ"</string> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index 48c1a38f4cb6..96fd692cb392 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ਸਰੀਰ ਸੰਵੇਦਕ"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ਆਪਣੇ ਸਰੀਰ ਦੇ ਅਹਿਮ ਚਿੰਨ੍ਹਾਂ ਬਾਰੇ ਸੰਵੇਦਕ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"ਕੀ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਤੁਹਾਡੇ ਸਰੀਰ ਦੇ ਅਹਿਮ ਲੱਛਣਾਂ ਸੰਬੰਧੀ ਸੈਂਸਰ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੇਣੀ ਹੈ?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ਵਿੰਡੋ ਸਮੱਗਰੀ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨਾ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ਇੱਕ ਵਿੰਡੋ ਦੀ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰੋ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਅੰਤਰਕਿਰਿਆ ਕਰ ਰਹੇ ਹੋ"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"\'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ\' ਚਾਲੂ ਕਰਨਾ"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ਐਪ ਨੂੰ ਵਰਤੋਂ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੀਆਂ ਵਿਧੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਵਰਤੋ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ਐਪ ਨੂੰ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ਅਧੂਰਾ ਫਿੰਗਰਪ੍ਰਿਟ ਮਿਲਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੰਵੇਦਕ ਗੰਦਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"ਕੀ <xliff:g id="TYPE">%1$s</xliff:g> ਨੂੰ <b><xliff:g id="LABEL">%2$s</xliff:g></b> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"ਕੀ <xliff:g id="TYPE_0">%1$s</xliff:g> ਅਤੇ <xliff:g id="TYPE_1">%2$s</xliff:g> ਨੂੰ <b><xliff:g id="LABEL">%3$s</xliff:g></b> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"ਕੀ <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, ਅਤੇ <xliff:g id="TYPE_2">%3$s</xliff:g> ਨੂੰ <b><xliff:g id="LABEL">%4$s</xliff:g></b> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"ਰੱਖਿਅਤ ਕਰੋ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ਨਹੀਂ ਧੰਨਵਾਦ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"ਪਾਸਵਰਡ"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ਪਤਾ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ਕ੍ਰੈਡਿਟ ਕਾਰਡ"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 76e5529876bd..dbc577900e6c 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Czujniki na ciele"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"dostęp do danych czujnika podstawowych funkcji życiowych"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Zezwolić aplikacji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> na dostęp do danych z czujnika podstawowych funkcji życiowych?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pobieranie zawartości okna"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Sprawdzanie zawartości okna, z którego korzystasz."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Włączenie czytania dotykiem"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Zezwala aplikacji aktywować metody dodawania i usuwania szablonów odcisków palców."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"używanie czytnika linii papilarnych"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Zezwala aplikacji na używanie czytnika linii papilarnych na potrzeby autoryzacji"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Odcisk palca został odczytany tylko częściowo. Spróbuj ponownie."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nie udało się przetworzyć odcisku palca. Spróbuj ponownie."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Czytnik linii papilarnych jest zabrudzony. Wyczyść go i spróbuj ponownie."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> – zapisać w: <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> i <xliff:g id="TYPE_1">%2$s</xliff:g> – zapisać w: <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> i <xliff:g id="TYPE_2">%3$s</xliff:g> – zapisać w: <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Zapisz"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nie, dziękuję"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"hasło"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adres"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"karta kredytowa"</string> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index 1260627f7efa..ad68dde271ea 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporais"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acesse dados do sensor sobre seus sinais vitais"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse os dados do sensor sobre seus sinais vitais?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Músicas"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"acessar suas músicas"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Permitir que o app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse suas músicas?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Fotos e vídeos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"acessar suas fotos e seus vídeos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Permitir que o app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse suas fotos e seus vídeos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Acessar conteúdo de uma janela"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspeciona o conteúdo de uma janela com a qual você está interagindo."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ativar Explorar por toque"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que o app execute métodos para adicionar e excluir modelos de impressão digital para uso."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"usar hardware de impressão digital"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que o app use hardware de impressão digital para autenticação."</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"ler sua coleção de músicas"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Permite que o app leia sua coleção de músicas."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modificar sua coleção de músicas"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Permite que o app modifique sua coleção de músicas."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"ler sua coleção de vídeos"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Permite que o app leia sua coleção de vídeos."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modificar sua coleção de vídeos"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Permite que o app modifique sua coleção de vídeos."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"ler sua coleção de fotos"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Permite que o app leia sua coleção de fotos."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modificar sua coleção de fotos"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Permite que o app modifique sua coleção de fotos."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"ler locais na sua coleção de mídias"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que o app leia os locais na sua coleção de mídias."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital parcial detectada. Tente novamente."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressão digital está sujo. Limpe-o e tente novamente."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Salvar <xliff:g id="TYPE">%1$s</xliff:g> em <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Salvar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> em <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Salvar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> em <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Atualizar no <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Atualizar <xliff:g id="TYPE">%1$s</xliff:g> no <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Atualizar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> no <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Atualizar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> no <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Salvar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Não, obrigado"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Atualizar"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"senha"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"endereço"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"cartão de crédito"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 597be1214786..631e9f3941c4 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores de corpo"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"aceder a dados do sensor acerca dos seus sinais vitais"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Pretende permitir que a aplicação <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> aceda aos dados do sensor acerca dos seus sinais vitais?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Música"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"aceder à sua música"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Pretende permitir que a aplicação <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> aceda à sua música?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Fotos e vídeos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"aceder aos seus vídeos e fotos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Pretende permitir que a aplicação <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> aceda às suas fotos e vídeos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Obter conteúdo da janela"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecionar o conteúdo de uma janela com a qual está a interagir."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ativar Explorar Através do Toque"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que a aplicação invoque métodos para adicionar e eliminar modelos de impressão digital para utilização."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"utilizar o hardware de impressão digital"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que a aplicação utilize o hardware de impressão digital para autenticação"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"ler a sua coleção de música"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Permite que a aplicação leia a sua coleção de música."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modificar a sua coleção de música"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Permite que a aplicação modifique a sua coleção de música."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"ler a sua coleção de vídeos"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Permite que a aplicação leia a sua coleção de vídeos."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modificar a sua coleção de vídeos"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Permite que a aplicação modifique a sua coleção de vídeos."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"ler a sua coleção de fotos"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Permite que a aplicação leia a sua coleção de fotos."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modificar a sua coleção de fotos"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Permite que a aplicação modifique a sua coleção de fotos."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"ler as localizações a partir da sua coleção de multimédia"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que a aplicação leia as localizações a partir da sua coleção de multimédia."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital detetada. Tente novamente."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressões digitais está sujo. Limpe-o e tente novamente."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Pretende guardar <xliff:g id="TYPE">%1$s</xliff:g> no <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Pretende guardar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> no <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Pretende guardar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> no <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Pretende atualizar para o <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Pretende atualizar <xliff:g id="TYPE">%1$s</xliff:g> para o <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Pretende atualizar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> para o <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Pretende atualizar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> para o <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Guardar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Não, obrigado"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Atualizar"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"palavra-passe"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"endereço"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"cartão de crédito"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 1260627f7efa..ad68dde271ea 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporais"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acesse dados do sensor sobre seus sinais vitais"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Permitir que <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse os dados do sensor sobre seus sinais vitais?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Músicas"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"acessar suas músicas"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Permitir que o app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse suas músicas?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Fotos e vídeos"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"acessar suas fotos e seus vídeos"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Permitir que o app <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> acesse suas fotos e seus vídeos?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Acessar conteúdo de uma janela"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspeciona o conteúdo de uma janela com a qual você está interagindo."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ativar Explorar por toque"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite que o app execute métodos para adicionar e excluir modelos de impressão digital para uso."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"usar hardware de impressão digital"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite que o app use hardware de impressão digital para autenticação."</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"ler sua coleção de músicas"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Permite que o app leia sua coleção de músicas."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"modificar sua coleção de músicas"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Permite que o app modifique sua coleção de músicas."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"ler sua coleção de vídeos"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Permite que o app leia sua coleção de vídeos."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"modificar sua coleção de vídeos"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Permite que o app modifique sua coleção de vídeos."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"ler sua coleção de fotos"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Permite que o app leia sua coleção de fotos."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"modificar sua coleção de fotos"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Permite que o app modifique sua coleção de fotos."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"ler locais na sua coleção de mídias"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que o app leia os locais na sua coleção de mídias."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital parcial detectada. Tente novamente."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressão digital está sujo. Limpe-o e tente novamente."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Salvar <xliff:g id="TYPE">%1$s</xliff:g> em <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Salvar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> em <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Salvar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> em <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Atualizar no <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Atualizar <xliff:g id="TYPE">%1$s</xliff:g> no <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Atualizar <xliff:g id="TYPE_0">%1$s</xliff:g> e <xliff:g id="TYPE_1">%2$s</xliff:g> no <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Atualizar <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> e <xliff:g id="TYPE_2">%3$s</xliff:g> no <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Salvar"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Não, obrigado"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Atualizar"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"senha"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"endereço"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"cartão de crédito"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index de01af6cce31..ab276df48a01 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Senzori corporali"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceseze datele de la senzori despre semnele vitale"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Permiteți <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să acceseze datele de la senzori despre semnele dvs. vitale?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Analizează conținutul ferestrei"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspectează conținutul unei ferestre cu care interacționați."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activează funcția Explorați prin atingere"</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Permite aplicației să invoce metode pentru a adăuga și pentru a șterge șabloane de amprentă pentru utilizare."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"folosește hardware-ul pentru amprentă"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Permite aplicației să folosească hardware pentru amprentă pentru autentificare"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"S-a detectat parțial amprenta. Încercați din nou."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Amprenta nu a putut fi procesată. Încercați din nou."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzorul pentru amprente este murdar. Curățați-l și încercați din nou."</string> @@ -1907,8 +1947,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Salvați <xliff:g id="TYPE">%1$s</xliff:g> în <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Salvați <xliff:g id="TYPE_0">%1$s</xliff:g> și <xliff:g id="TYPE_1">%2$s</xliff:g> în <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Salvați <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> și <xliff:g id="TYPE_2">%3$s</xliff:g> în <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Salvați"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nu, mulțumesc"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"parolă"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresă"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"card de credit"</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 63a8574bd0ea..de009a6a3d97 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Нательные датчики"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"доступ к данным датчиков о состоянии организма"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Разрешить приложению <b>\"<xliff:g id="APP_NAME">%1$s</xliff:g>\"</b> доступ к данным датчиков о состоянии организма?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Получать содержимое окна"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Анализировать содержимое активного окна."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включать Изучение касанием"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Приложение сможет добавлять и удалять шаблоны отпечатков пальцев."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"Использование сканера отпечатков"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Приложение сможет использовать сканер отпечатков пальцев для аутентификации."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Отсканирована только часть пальца. Повторите попытку."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не удалось распознать отпечаток. Повторите попытку."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Очистите сканер и повторите попытку."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Сохранить <xliff:g id="TYPE">%1$s</xliff:g> в <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Сохранить <xliff:g id="TYPE_0">%1$s</xliff:g> и <xliff:g id="TYPE_1">%2$s</xliff:g> в <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Сохранить <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> и <xliff:g id="TYPE_2">%3$s</xliff:g> в <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Сохранить"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Нет, спасибо"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"Пароль"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"Адрес"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"Банковская карта"</string> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index a3e3ea0c3735..bdc0c7bb8e60 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"ශරීර සංවේදක"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"ඔබේ ජෛව ලක්ෂණ පිළිබඳ සංවේදක දත්ත වෙත පිවිසෙන්න"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g><b> වෙත ඔබගේ ජෛව ලක්ෂණ පිළිබඳ සංවේදක දත්ත වෙත ප්රවේශ වීමට ඉඩ දෙන්නද?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"කවුළු අන්න්තර්ගතය ලබාගන්න"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ඔබ අන්තර්ක්රියාකාරී වන කවුළුවේ අන්තර්ගතය පරීක්ෂා කරන්න."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ස්පර්ශයෙන් ගවේෂණය සක්රිය කරන්න"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ඇඟිලි සලකුණු සැකිලි එකතු කිරීමට සහ ඉවත් කිරීමට අදාළ විධික්රම භාවිතය සඳහා මෙම යෙදුමට අවසර දෙයි."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ඇඟිලි සලකුණු දෘඩාංග භාවිතා කරන්න."</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"අනන්යතාවය තහවුරු කරගැනීමට ඇඟිලි සලකුණු දෘඩාංග භාවිතා කිරීමට මෙම යෙදුමට ඉඩ දෙන්න."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ඇඟිලි සලකුණ අඩ වශයෙන් අනාවරණය කර ගැනිණි. කරුණාකර නැවත උත්සාහ කරන්න."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ඇඟිලි සලකුණ පිරිසැකසීමට නොහැකි විය. කරුණාකර නැවත උත්සාහ කරන්න."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ඇඟිලි සලකුණු සංවේදකය අපිරිසිදුයි. කරුණාකර පිරිසිදු කර නැවත උත්සාහ කරන්න."</string> @@ -1874,8 +1914,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g></b> වෙත සුරකින්නද?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> සහ <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> වෙත සුරකින්නද?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, සහ <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> වෙත සුරකින්නද?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"සුරකින්න"</string> <string name="autofill_save_no" msgid="2625132258725581787">"එපා ස්තූතියි"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"මුරපදය"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ලිපිනය"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ණය කාඩ්පත"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 3f2f46d56b42..f46771a2a0e2 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -306,6 +306,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Telesné senzory"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"prístup k dátam senzorov vašich životných funkcií"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Povoliť aplikácii <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> používať údaje senzorov o vašich životných funkciách?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načítať obsah okna"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Môžete preskúmať obsah okna, s ktorým pracujete."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnúť funkciu Preskúmanie dotykom"</string> @@ -500,6 +512,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Umožňuje aplikácii zavolať metódy, ktoré pridávajú a odstraňujú vzory odtlačkov prstov."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"použiť hardvér na snímanie odtlačkov prstov"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Umožňuje aplikácii používať na overenie totožnosti hardvér na snímanie odtlačkov prstov."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Podarilo sa rozpoznať iba časť odtlačku prsta. Skúste to znova."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Odtlačok prsta sa nepodarilo spracovať. Skúste to znova."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Snímač odtlačkov je špinavý. Vyčistite ho a skúste to znova."</string> @@ -1942,8 +1982,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Uložiť <xliff:g id="TYPE">%1$s</xliff:g> do služby <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Uložiť <xliff:g id="TYPE_0">%1$s</xliff:g> a <xliff:g id="TYPE_1">%2$s</xliff:g> do služby <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Uložiť <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> a <xliff:g id="TYPE_2">%3$s</xliff:g> do služby <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Uložiť"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nie, vďaka"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"heslo"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresa"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditná karta"</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 90ab23b059b5..0f9d038332ba 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -306,6 +306,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Tipala telesnih funkcij"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"dostop do podatkov tipala o vaših vitalnih znakih"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Želite aplikaciji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> omogočiti dostop do podatkov tipala o vitalnih znakih?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Glasba"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"dostop do glasbe"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Želite aplikaciji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> omogočiti dostop do glasbe?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Fotografije in videoposnetki"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"dostop do fotografij in videoposnetkov"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Želite aplikaciji <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> omogočiti dostop do fotografij in videoposnetkov?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pridobiti vsebino okna"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Preverjanje vsebine okna, ki ga uporabljate."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Vklopiti raziskovanje z dotikom"</string> @@ -500,6 +506,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Aplikaciji omogoča sprožanje načinov za dodajanje in brisanje predlog s prstnimi odtisi za uporabo."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"uporaba strojne opreme za prstne odtise"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Aplikaciji omogoča uporabo strojne opreme za prstne odtise za preverjanje pristnosti"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"branje glasbene zbirke"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Aplikaciji omogoča branje glasbene zbirke."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"spreminjanje glasbene zbirke"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Aplikaciji omogoča spreminjanje glasbene zbirke."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"branje zbirke videoposnetkov"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Aplikaciji omogoča branje zbirke videoposnetkov."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"spreminjanje zbirke videoposnetkov"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Aplikaciji omogoča spreminjanje zbirke videoposnetkov."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"branje zbirke fotografij"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Aplikaciji omogoča branje zbirke fotografij."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"spreminjanje zbirke fotografij"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Aplikaciji omogoča spreminjanje zbirke fotografij."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"branje lokacij v predstavnostni zbirki"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Aplikaciji omogoča branje lokacij v predstavnostni zbirki."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Zaznan delni prstni odtis. Poskusite znova."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Prstnega odtisa ni bilo mogoče obdelati. Poskusite znova."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Tipalo prstnih odtisov je umazano. Očistite ga in poskusite znova."</string> @@ -1942,8 +1962,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Želite <xliff:g id="TYPE">%1$s</xliff:g> shraniti pod oznako <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Želite <xliff:g id="TYPE_0">%1$s</xliff:g> in <xliff:g id="TYPE_1">%2$s</xliff:g> shraniti pod oznako <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Želite <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> in <xliff:g id="TYPE_2">%3$s</xliff:g> shraniti pod oznako <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Želite posodobiti na oznako <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Želite <xliff:g id="TYPE">%1$s</xliff:g> posodobiti na oznako <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Želite <xliff:g id="TYPE_0">%1$s</xliff:g> in <xliff:g id="TYPE_1">%2$s</xliff:g> posodobiti na oznako <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Želite <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> in <xliff:g id="TYPE_2">%3$s</xliff:g> posodobiti na oznako <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Shrani"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ne, hvala"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Posodobi"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"geslo"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"naslov"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditno kartico"</string> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index bb42da41e15e..15888fb0f77a 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Sensorët e trupit"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"qasu tek të dhënat e sensorëve rreth shenjave të tua jetësore"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Të lejohet që <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> të ketë qasje te të dhënat e sensorëve rreth shenjave të tua jetësore?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Nxjerrë përmbajtjen e dritares"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspekton përmbajtjen e dritares me të cilën po ndërvepron."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivizojë funksionin \"Eksploro me prekje\""</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"E lejon aplikacionin që të aktivizojë metoda për të shtuar dhe për të fshirë shabllonet e gjurmës së gishtit për përdorim."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"përdor harduerin e gjurmës së gishtit"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"E lejon aplikacionin që të përdorë harduerin e gjurmës së gishtit për verifikim"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"U zbulua një gjurmë gishti e pjesshme. Provo përsëri."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Gjurma e gishtit nuk mund të përpunohej. Provo përsëri."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensori i gjurmës së gishtit nuk është i pastër. Pastroje dhe provo përsëri."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Të ruhet <xliff:g id="TYPE">%1$s</xliff:g> te <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Të ruhen <xliff:g id="TYPE_0">%1$s</xliff:g> dhe <xliff:g id="TYPE_1">%2$s</xliff:g> te <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Të ruhen <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> dhe <xliff:g id="TYPE_2">%3$s</xliff:g> te <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Ruaj"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Jo, faleminderit"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"fjalëkalimi"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adresa"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"karta e kreditit"</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index fa1dc59cce67..4c86605228fb 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -303,6 +303,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Сензори за тело"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"приступа подацима сензора о виталним функцијама"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Желите ли да омогућите да <b><xliff:g id="APP_NAME">%1$s</xliff:g></b>приступа подацима сензора о виталним функцијама?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"да преузима садржај прозора"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Проверава садржај прозора са којим остварујете интеракцију."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"да укључи Истраживања додиром"</string> @@ -497,6 +509,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Дозвољава апликацији да активира методе за додавање и брисање шаблона отисака прстију који ће се користити."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"користи хардвер за отиске прстију"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Дозвољава апликацији да користи хардвер за отиске прстију ради потврде аутентичности"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откривен је делимични отисак прста. Пробајте поново."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Није успела обрада отиска прста. Пробајте поново."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензор за отиске прстију је прљав. Очистите га и покушајте поново."</string> @@ -1907,8 +1947,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Желите ли да сачувате ставку <xliff:g id="TYPE">%1$s</xliff:g> у: <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Желите ли да сачувате ставке <xliff:g id="TYPE_0">%1$s</xliff:g> и <xliff:g id="TYPE_1">%2$s</xliff:g> у: <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Желите ли да сачувате ставке <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> и <xliff:g id="TYPE_2">%3$s</xliff:g> у: <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Сачувај"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Не, хвала"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"лозинка"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"адреса"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"кредитна картица"</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 7b9005c50563..1f3efe08e67f 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Kroppssensorer"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"få åtkomst till sensordata om dina vitalparametrar"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vill du ge <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> åtkomst till sensordata om vitalparametrar?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Hämta fönsterinnehåll"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Granska innehållet i ett fönster som du interagerar med."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivera Explore by touch"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Tillåter att appen anropar metoder för att lägga till och radera fingeravtrycksmallar."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"använda maskinvara för fingeravtryck"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Tillåter att appen använder maskinvara för fingeravtryck vid autentisering"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Ofullständigt fingeravtryck. Försök igen."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Det gick inte att bearbeta fingeravtrycket. Försök igen."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtryckssensorn är smutsig. Rengör den och försök igen."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Vill du spara <xliff:g id="TYPE">%1$s</xliff:g> i <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Vill du spara <xliff:g id="TYPE_0">%1$s</xliff:g> och <xliff:g id="TYPE_1">%2$s</xliff:g> i <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Vill du spara <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> och <xliff:g id="TYPE_2">%3$s</xliff:g> i <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Spara"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Nej tack"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"lösenordet"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adressen"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kreditkortet"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 9d8790dc0212..5a7dcca97bd1 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -298,6 +298,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Vihisi vya Mwili"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"fikia data ya kitambuzi kuhusu alama zako muhimu"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Ungependa kuiruhusu <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ifikie data ya vitambuzi kuhusu viashiria muhimu vya mwili wako?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Muziki"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"kufikia muziki wako"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Ungependa kuiruhusu <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ifikie muziki wako?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Picha na Video"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"kufikia picha na video zako"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Ungependa kuruhusu <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ifikie picha na video zako?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Kufikia maudhui ya dirisha"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kuchunguza maudhui ya dirisha unalotumia."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Kuwasha \'Chunguza kwa Kugusa\'"</string> @@ -492,6 +498,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Huruhusu programu kuomba njia za kuongeza na kufuta violezo vya kitambulisho kwa matumizi."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"tumia maunzi ya kitambulisho"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Huruhusu programu kutumia maunzi ya kitambulisho kwa uthibitisho"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"kusoma mkusanyiko muziki wako"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Inaruhusu programu kusoma mkusanyiko wa muziki wako."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"kubadilisha mkusanyiko wa muziki wako"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Inaruhusu programu kubadilisha mkusanyiko wa muziki wako."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"kusoma mkusanyiko wa video zako"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Inaruhusu programu kusoma mkusanyiko wa video zako."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"kubadilisha mkusanyiko wa video zako"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Inaruhusu programu kubadilisha mkusanyiko wa video zako."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"kusoma mkusanyiko wa picha zako"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Inaruhusu programu kusoma mkusanyiko wa picha zako."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"kubadilisha mkusanyiko wa picha zako"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Inaruhusu programu kubadilisha mkusanyiko wa picha zako."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"kusoma maeneo kwenye mkusanyiko wa vipengee vyako"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Inaruhusu programu kusoma maeneo kwenye mkusanyiko wa vipengee vyako."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Kitambuzi kimegundua sehemu ya kitambulisho. Tafadhali jaribu tena."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Haikuweza kuchakata kitambulisho. Tafadhali jaribu tena."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Kitambuzi alama ya kidole ni kichafu. Tafadhali kisafishe na ujaribu tena."</string> @@ -1870,8 +1890,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Ungependa kuhifadhi <xliff:g id="TYPE">%1$s</xliff:g> kwenye <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Ungependa kuhifadhi <xliff:g id="TYPE_0">%1$s</xliff:g> na <xliff:g id="TYPE_1">%2$s</xliff:g> kwenye <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Ungependa kuhifadhi <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, na <xliff:g id="TYPE_2">%3$s</xliff:g> kwenye <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Ungependa kusasisha kuwa <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Ungependa kusasisha <xliff:g id="TYPE">%1$s</xliff:g> kuwa <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Ungependa kusasisha <xliff:g id="TYPE_0">%1$s</xliff:g> na <xliff:g id="TYPE_1">%2$s</xliff:g> kuwa <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Ungependa kusasisha <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> na <xliff:g id="TYPE_2">%3$s</xliff:g> kuwa <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Hifadhi"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Hapana, asante"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Sasisha"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"nenosiri"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"anwani"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kadi ya mikopo"</string> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index f39044565c51..00143b9be0ba 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"உடல் சென்சார்கள்"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"உங்கள் உடல் இயக்கம் பற்றி உணர்விகள் கூறும் தகவலைப் பார்க்கலாம்"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"உங்கள் உடலியக்கக் குறிகள் பற்றிய சென்சார் தரவை அணுகுவதற்கு <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> பயன்பாட்டை அனுமதிக்கவா?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"சாளர உள்ளடக்கத்தைப் பெறும்"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"நீங்கள் பணியாற்றிக் கொண்டிருக்கும் சாளரத்தின் உள்ளடக்கத்தைப் பார்க்கலாம்."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"தொடுவதன் மூலம் அறிவதை இயக்கும்"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"பயன்படுத்துவதற்காக, கைரேகை டெம்ப்ளேட்களைச் சேர்க்க மற்றும் நீக்குவதற்கான செயல்முறைகளை இயக்குவதற்குப் பயன்பாட்டை அனுமதிக்கும்."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"கைரேகை வன்பொருளைப் பயன்படுத்து"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"அங்கீகரிப்பதற்கு, கைரேகை வன்பொருளைப் பயன்படுத்த, பயன்பாட்டை அனுமதிக்கும்"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"கைரேகையை ஓரளவுதான் கண்டறிய முடிந்தது. மீண்டும் முயலவும்."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"கைரேகையைச் செயலாக்க முடியவில்லை. மீண்டும் முயலவும்."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"கைரேகை உணர்வியில் தூசி உள்ளது. சுத்தம் செய்து, முயலவும்."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>ஐ <b><xliff:g id="LABEL">%2$s</xliff:g></b> இல் சேமிக்கவா?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> மற்றும் <xliff:g id="TYPE_1">%2$s</xliff:g>ஐ <b><xliff:g id="LABEL">%3$s</xliff:g></b> இல் சேமிக்கவா?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, <xliff:g id="TYPE_2">%3$s</xliff:g> ஆகியவற்றை <b><xliff:g id="LABEL">%4$s</xliff:g></b> இல் சேமிக்கவா?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"சேமி"</string> <string name="autofill_save_no" msgid="2625132258725581787">"வேண்டாம்"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"கடவுச்சொல்"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"முகவரி"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"கிரெடிட் கார்டு"</string> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 98b737f44348..e3f089a762ea 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"శరీర సెన్సార్లు"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాని యాక్సెస్ చేస్తుంది"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాని యాక్సెస్ చేయడానికి <b><xliff:g id="APP_NAME">%1$s</xliff:g></b>ని అనుమతించాలా?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"విండో కంటెంట్ను తిరిగి పొందుతుంది"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"మీరు పరస్పర చర్య చేస్తున్న విండో కంటెంట్ను పరిశీలిస్తుంది."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"తాకడం ద్వారా విశ్లేషణను ప్రారంభిస్తుంది"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"వినియోగం కోసం వేలిముద్ర టెంప్లేట్లను జోడించే మరియు తొలగించే పద్ధతులను అమలు చేయడానికి యాప్ను అనుమతిస్తుంది."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"వేలిముద్ర హార్డ్వేర్ని ఉపయోగించడానికి అనుమతి"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ప్రామాణీకరణ కోసం వేలిముద్ర హార్డ్వేర్ను ఉపయోగించడానికి అనువర్తనాన్ని అనుమతిస్తుంది"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"పాక్షిక వేలిముద్ర గుర్తించబడింది. దయచేసి మళ్లీ ప్రయత్నించండి."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"వేలిముద్రను ప్రాసెస్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"వేలిముద్ర సెన్సార్ మురికిగా ఉంది. దయచేసి శుభ్రపరిచి, మళ్లీ ప్రయత్నించండి."</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>ని <b><xliff:g id="LABEL">%2$s</xliff:g></b>కు సేవ్ చేయాలా?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> మరియు <xliff:g id="TYPE_1">%2$s</xliff:g>లను <b><xliff:g id="LABEL">%3$s</xliff:g></b>కు సేవ్ చేయాలా?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> మరియు <xliff:g id="TYPE_2">%3$s</xliff:g>లను <b><xliff:g id="LABEL">%4$s</xliff:g></b>కు సేవ్ చేయాలా?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"సేవ్ చేయి"</string> <string name="autofill_save_no" msgid="2625132258725581787">"వద్దు, ధన్యవాదాలు"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"పాస్వర్డ్"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"చిరునామా"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"క్రెడిట్ కార్డ్"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 89c2e44182c4..537527815318 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"เซ็นเซอร์ร่างกาย"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"เข้าถึงข้อมูลเซ็นเซอร์เกี่ยวกับสัญญาณชีพของคุณ"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"อนุญาตให้ <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> เข้าถึงข้อมูลเซ็นเซอร์เกี่ยวกับสัญญาณชีพไหม"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"เรียกข้อมูลเนื้อหาของหน้าต่าง"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ตรวจสอบเนื้อหาของหน้าต่างที่คุณกำลังโต้ตอบอยู่"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"เปิด \"แตะเพื่อสำรวจ\""</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"อนุญาตให้แอปเรียกใช้วิธีการเพื่อเพิ่มและลบเทมเพลตลายนิ้วมือสำหรับการใช้งาน"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ใช้ฮาร์ดแวร์ลายนิ้วมือ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"อนุญาตให้แอปใช้ฮาร์ดแวร์ลายนิ้วมือเพื่อตรวจสอบสิทธิ์"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ตรวจพบลายนิ้วมือเพียงบางส่วน โปรดลองอีกครั้ง"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ไม่สามารถประมวลผลลายนิ้วมือได้ โปรดลองอีกครั้ง"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"เซ็นเซอร์ลายนิ้วมือไม่สะอาด โปรดทำความสะอาดและลองอีกครั้ง"</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"บันทึก <xliff:g id="TYPE">%1$s</xliff:g> ไปยัง <b><xliff:g id="LABEL">%2$s</xliff:g></b> ใช่ไหม"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"บันทึก <xliff:g id="TYPE_0">%1$s</xliff:g> และ <xliff:g id="TYPE_1">%2$s</xliff:g> ไปยัง <b><xliff:g id="LABEL">%3$s</xliff:g></b> ใช่ไหม"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"บันทึก <xliff:g id="TYPE_0">%1$s</xliff:g> <xliff:g id="TYPE_1">%2$s</xliff:g> และ <xliff:g id="TYPE_2">%3$s</xliff:g> ไปยัง <b><xliff:g id="LABEL">%4$s</xliff:g></b> ใช่ไหม"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"บันทึก"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ไม่เป็นไร"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"รหัสผ่าน"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ที่อยู่"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"บัตรเครดิต"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 445330935792..c4b14f7f19ec 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Mga Sensor ng Katawan"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"i-access ang data ng sensor tungkol sa iyong vital signs"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Payagan ang <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> na i-access ang data ng sensor tungkol sa iyong mga vital sign?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musika"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"i-access ang iyong musika"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Payagan ang <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> na i-access ang iyong musika?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Mga Larawan at Video"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"i-access ang iyong mga larawan at video"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Payagan ang <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> na i-access ang iyong mga larawan at video?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Kunin ang content ng window"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Siyasatin ang nilalaman ng isang window kung saan ka nakikipag-ugnayan."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"I-on ang Explore by Touch"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Pinapayagan ang app na mag-invoke ng mga paraan upang magdagdag at mag-delete ng mga template ng fingerprint na magagamit."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"gamitin ang hardware ng fingerprint"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Pinapayagan ang app na gumamit ng hardware ng fingerprint para sa pagpapatotoo"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"basahin ang iyong koleksyon ng musika"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Pinapayagan ang app na basahin ang iyong koleksyon ng musika."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"baguhin ang iyong koleksyon ng musika"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Pinapayagan ang app na baguhin ang iyong koleksyon ng musika."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"basahin ang iyong koleksyon ng video"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Pinapayagan ang app na basahin ang iyong koleksyon ng video."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"baguhin ang iyong koleksyon ng video"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Pinapayagan ang app na baguhin ang iyong koleksyon ng video."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"basahin ang iyong koleksyon ng larawan"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Pinapayagan ang app na basahin ang iyong koleksyon ng larawan."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"baguhin ang iyong koleksyon ng larawan"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Pinapayagan ang app na baguhin ang iyong koleksyon ng larawan."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"basahin ang mga lokasyon mula sa iyong koleksyon ng media"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Pinapayagan ang app na basahin ang mga lokasyon mula sa iyong koleksyon ng media."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hindi buo ang natukoy na fingerprint. Pakisubukang muli."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Hindi maproseso ang fingerprint. Pakisubukang muli."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Marumi ang sensor ng fingerprint. Pakilinis at subukang muli."</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"I-save ang <xliff:g id="TYPE">%1$s</xliff:g> sa <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"I-save ang <xliff:g id="TYPE_0">%1$s</xliff:g> at <xliff:g id="TYPE_1">%2$s</xliff:g> sa <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"I-save ang <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, at <xliff:g id="TYPE_2">%3$s</xliff:g> sa <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"I-update sa <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"I-update ang <xliff:g id="TYPE">%1$s</xliff:g> sa <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"I-update ang <xliff:g id="TYPE_0">%1$s</xliff:g> at <xliff:g id="TYPE_1">%2$s</xliff:g> sa <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"I-update ang <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, at <xliff:g id="TYPE_2">%3$s</xliff:g> sa <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"I-save"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Hindi, salamat na lang"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"I-update"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"password"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"address"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"credit card"</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 54f92e1a3ea8..7ed5859313dc 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Vücut Sensörleri"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"hayati belirtilerinizle ilgili sensör verilerine erişme"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> uygulamasının hayati belirtilerinizle ilgili sensör verilerine erişmesine izin verilsin mi?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pencere içeriğini alma"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Etkileşim kurduğunuz pencerenin içeriğini inceler."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Dokunarak Keşfet\'i açma"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Uygulamanın, kullanılacak parmak izi şablonlarını ekleme ve silme yöntemlerini başlatmasına izin verir."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"parmak izi donanımını kullanma"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Uygulamanın kimlik doğrulama için parmak izi donanımını kullanmasına izin verir."</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Parmak izinin tümü algılanamadı. Lütfen tekrar deneyin."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Parmak izi işlenemedi. Lütfen tekrar deneyin."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Parmak izi sensörü kirli. Lütfen temizleyin ve tekrar deneyin."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g>, <b><xliff:g id="LABEL">%2$s</xliff:g></b> hizmetine kaydedilsin mi?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> ve <xliff:g id="TYPE_1">%2$s</xliff:g>, <b><xliff:g id="LABEL">%3$s</xliff:g></b> hizmetine kaydedilsin mi?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ve <xliff:g id="TYPE_2">%3$s</xliff:g>, <b><xliff:g id="LABEL">%4$s</xliff:g></b> hizmetine kaydedilsin mi?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Kaydet"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Hayır, teşekkürler"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"şifre"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"adres"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredi kartı"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 64761341c1c0..45b8dd4a37f2 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -306,6 +306,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Датчики на тілі"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"отримувати доступ до інформації датчиків про ваші життєві показники"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Надати додатку <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> доступ до життєвих показників із датчиків?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Музика"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"доступ до музики"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"Надати додатку <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> доступ до музики?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Фото й відео"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"доступ до фото й відео"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"Надати додатку <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> доступ до фото й відео?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Отримувати вміст вікна"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Перевіряти вміст вікна, з яким ви взаємодієте."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Увімкнути функцію дослідження дотиком"</string> @@ -500,6 +506,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Увімкнути в додатку функції для додавання й видалення шаблонів цифрових відбитків."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"використання сканера цифрових відбитків"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Дозволити додатку використовувати апаратне забезпечення для автентифікації"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"розпізнавати колекцію музики"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Додаток зможе розпізнавати вашу колекцію музики."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"змінювати колекцію музики"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Додаток зможе змінювати вашу колекцію музики."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"розпізнавати колекцію відео"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Додаток зможе розпізнавати вашу колекцію відео."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"змінювати колекцію відео"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Додаток зможе змінювати вашу колекцію відео."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"розпізнавати колекцію фотографій"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Додаток зможе розпізнавати вашу колекцію фотографій."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"змінювати колекцію фотографій"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Додаток зможе змінювати вашу колекцію фотографій."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"розпізнавати геодані з колекції медіа-вмісту"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Додаток зможе розпізнавати геодані з вашої колекції медіа-вмісту."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Відбиток розпізнано частково. Повторіть спробу."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не вдалось обробити відбиток. Повторіть спробу."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Датчик відбитків забруднився. Очистьте його та повторіть спробу."</string> @@ -1942,8 +1962,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Зберегти дані (<xliff:g id="TYPE">%1$s</xliff:g>) у службі <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Зберегти дані (<xliff:g id="TYPE_0">%1$s</xliff:g> і <xliff:g id="TYPE_1">%2$s</xliff:g>) у службі <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Зберегти дані (<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> і <xliff:g id="TYPE_2">%3$s</xliff:g>) у службі <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"Оновити дані в сервісі <b><xliff:g id="LABEL">%1$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"Оновити дані (<xliff:g id="TYPE">%1$s</xliff:g>) у сервісі <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"Оновити дані (<xliff:g id="TYPE_0">%1$s</xliff:g> і <xliff:g id="TYPE_1">%2$s</xliff:g>) у сервісі <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"Оновити дані (<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> і <xliff:g id="TYPE_2">%3$s</xliff:g>) у сервісі <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Зберегти"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Ні, дякую"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Оновити"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"пароль"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"адреса"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"кредитна картка"</string> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index 2ed0e6c8bdee..3c92c3d7ddbb 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"باڈی سینسرز"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"اپنی علامات حیات کے متعلق سنسر ڈیٹا تک رسائی حاصل کریں"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> کو آپ کے اہم اشاروں کے متعلق سینسر ڈیٹا تک رسائی کی اجازت دیں؟"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ونڈو مواد بازیافت کرنے کی"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"کسی ایسی ونڈو کے مواد کا معائنہ کریں جس کے ساتھ آپ تعامل کر رہے ہیں۔"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ٹچ کے ذریعے دریافت کریں کو آن کرنے کی"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ایپ کو استعمال کیلئے فنگر پرنٹ کی تمثیلات شامل کرنے اور حذف کرنے کیلئے طریقوں کو کالعدم قرار دینے کی اجازت دیتا ہے۔"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"فنگر پرنٹ ہارڈ ویئر استعمال کریں"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ایپ کو توثیق کیلئے فنگر پرنٹ ہارڈ ویئر استعمال کرنے کی اجازت دیتا ہے"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"جزوی فنگر پرنٹ کی شناخت ہوئی۔ براہ کرم دوبارہ کوشش کریں۔"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"فنگر پرنٹ پر کارروائی نہیں کی جا سکی۔ براہ کرم دوبارہ کوشش کریں۔"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"فنگر پرنٹ سینسر گندا ہے۔ براہ کرم صاف کریں اور دوبارہ کوشش کریں۔"</string> @@ -1873,8 +1913,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> کو <b><xliff:g id="LABEL">%2$s</xliff:g></b> میں محفوظ کریں؟"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> اور <xliff:g id="TYPE_1">%2$s</xliff:g> کو <b><xliff:g id="LABEL">%3$s</xliff:g></b> میں محفوظ کریں؟"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>،<xliff:g id="TYPE_1">%2$s</xliff:g>، اور <xliff:g id="TYPE_2">%3$s</xliff:g> کو <b><xliff:g id="LABEL">%4$s</xliff:g></b> میں محفوظ کریں؟"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"محفوظ کریں"</string> <string name="autofill_save_no" msgid="2625132258725581787">"نہیں، شکریہ"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"پاس ورڈ"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"پتہ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"کریڈٹ کارڈ"</string> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index 1d4c07426ccf..684e78a50e53 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Tana sezgichlari"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"organizm holati haqidagi sezgich ma’lumotlariga kirish"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> uchun organizm holati haqidagi sezgichlar axborotlariga ruxsat berilsinmi?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"Musiqa"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"musiqaga kirish"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> uchun musiqangizga kirishga ruxsat berilsinmi?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"Surat va videolar"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"surat va videolarga kirish"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> uchun surat va videolaringizga kirishga ruxsat berilsinmi?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Oynadagi kontentni o‘qiydi"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Joriy oynadagi kontent mazmunini aniqlaydi."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Teginib o‘rganish xizmatini yoqadi"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Ilova foydalanish uchun barmoq izi namunalarini qo‘shish va o‘chirish usullarini qo‘llashi mumkin."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"barmoq izi sensoridan foydalanish"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Ilova haqiqiylikni tekshirish uchun barmoq izi sensoridan foydalanishi mumkin"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"musiqiy to‘plamni o‘qish"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"Ilovaga musiqiy to‘plamingizni o‘qishga ruxsat beradi."</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"musiqiy to‘plamni o‘zgartirish"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"Ilovaga musiqiy to‘plamni o‘zgartirishga ruxsat beradi."</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"video to‘plamni o‘qish"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"Ilovaga video to‘plamingizni o‘qishga ruxsat beradi."</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"video to‘plamni o‘zgartirish"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"Ilovaga video to‘plamingizni o‘zgartirishga ruxsat beradi."</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"suratlar to‘plamini o‘qish"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"Ilovaga suratlar to‘plamingizni o‘qishga ruxsat beradi."</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"suratlar to‘plamini o‘zgartirish"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"Ilovaga suratlar to‘plamingizni o‘zgartirishga ruxsat beradi."</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"multimedia to‘plamidan joylashuv axborotini o‘qish"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Ilovaga multimedia to‘plamingizdan joylashuv axborotini o‘qishga ruxsat beradi."</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Barmoq izi qisman aniqlandi. Qayta urinib ko‘ring."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Barmoq izi aniqlanmadi. Qayta urinib ko‘ring."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Barmoq izi skaneri kirlangan. Uni tozalab, keyin qayta urinib ko‘ring."</string> @@ -1873,8 +1893,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"<xliff:g id="TYPE">%1$s</xliff:g> <b><xliff:g id="LABEL">%2$s</xliff:g></b> xizmatiga saqlansinmi?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"<xliff:g id="TYPE_0">%1$s</xliff:g> va <xliff:g id="TYPE_1">%2$s</xliff:g> <b><xliff:g id="LABEL">%3$s</xliff:g></b> xizmatiga saqlansinmi?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> va <xliff:g id="TYPE_2">%3$s</xliff:g> <b><xliff:g id="LABEL">%4$s</xliff:g></b> xizmatiga saqlansinmi?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"<b><xliff:g id="LABEL">%1$s</xliff:g></b> xizmatidagi ma’lumot yangilansinmi?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"<b><xliff:g id="LABEL">%2$s</xliff:g></b> xizmatida <xliff:g id="TYPE">%1$s</xliff:g> ma’lumotlari yangilansinmi?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"<b><xliff:g id="LABEL">%3$s</xliff:g></b> xizmatidagi <xliff:g id="TYPE_0">%1$s</xliff:g> va <xliff:g id="TYPE_1">%2$s</xliff:g> ma’lumotlari yangilansinmi?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"<b><xliff:g id="LABEL">%4$s</xliff:g></b> xizmatidagi <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> va <xliff:g id="TYPE_2">%3$s</xliff:g> ma’lumotlari yangilansinmi?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"Saqlash"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Kerak emas"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"Yangilash"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"parol"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"manzil"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"kredit karta"</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index a45118f472bd..4e84f620b225 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Cảm biến cơ thể"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"truy cập dữ liệu cảm biến về dấu hiệu sinh tồn của bạn"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Cho phép <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> truy cập vào dữ liệu cảm biến về các dấu hiệu sinh tồn của bạn?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Truy xuất nội dung cửa sổ"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kiểm tra nội dung của cửa sổ bạn đang tương tác."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Bật Khám phá bằng cách chạm"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Cho phép ứng dụng gọi các phương pháp để thêm và xóa các mẫu vân tay để sử dụng."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"sử dụng phần cứng vân tay"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Cho phép ứng dụng sử dụng phần cứng vân tay để xác thực"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Đã phát hiện được một phần vân tay. Vui lòng thử lại."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Không thể xử lý vân tay. Vui lòng thử lại."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Cảm biến vân tay bị bẩn. Hãy làm sạch và thử lại."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Lưu <xliff:g id="TYPE">%1$s</xliff:g> vào <b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Lưu <xliff:g id="TYPE_0">%1$s</xliff:g> và <xliff:g id="TYPE_1">%2$s</xliff:g> vào <b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Lưu <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> và <xliff:g id="TYPE_2">%3$s</xliff:g> vào <b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Lưu"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Không, cảm ơn"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"mật khẩu"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"địa chỉ"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"thẻ tín dụng"</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 8a55d016c74e..0de78ce64de7 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"身体传感器"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"访问与您的生命体征相关的传感器数据"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"允许<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>访问与您的生命体征相关的传感器数据吗?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"检索窗口内容"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"检测您正访问的窗口的内容。"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"启用触摸浏览"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"允许该应用调用方法来添加和删除可用的指纹模板。"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"使用指纹硬件"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"允许该应用使用指纹硬件进行身份验证"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"仅检测到部分指纹,请重试。"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"无法处理指纹,请重试。"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指纹传感器有脏污。请擦拭干净,然后重试。"</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"要将<xliff:g id="TYPE">%1$s</xliff:g>保存到<b><xliff:g id="LABEL">%2$s</xliff:g></b>吗?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"要将<xliff:g id="TYPE_0">%1$s</xliff:g>和<xliff:g id="TYPE_1">%2$s</xliff:g>保存到<b><xliff:g id="LABEL">%3$s</xliff:g></b>吗?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"要将<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>和<xliff:g id="TYPE_2">%3$s</xliff:g>保存到<b><xliff:g id="LABEL">%4$s</xliff:g></b>吗?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"保存"</string> <string name="autofill_save_no" msgid="2625132258725581787">"不用了"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"密码"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"地址"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"信用卡"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index 0b7520211b1e..91633cd705c1 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"人體感應器"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"存取與您生命體徵相關的感應器資料"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<b></b>存取與您身體機能相關的感應器資料嗎?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"音樂"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"存取你的音樂"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<b></b>存取你的音樂嗎?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"相片和影片"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"存取你的相片和影片"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<b></b>存取你的相片和影片嗎?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"擷取視窗內容"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"檢查您使用中的視窗內容。"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"開啟「輕觸探索」功能"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"允許應用程式調用加入和刪除指紋模板的方法以供使用。"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"使用指紋硬件"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"允許應用程式使用指紋硬件驗證"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"讀取你的音樂收藏"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"允許應用程式讀取你的音樂收藏。"</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"修改你的音樂收藏"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"允許應用程式修改你的音樂收藏。"</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"讀取你的影片收藏"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"允許應用程式讀取你的影片收藏。"</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"修改你的影片收藏"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"允許應用程式修改你的影片收藏。"</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"讀取你的相片收藏"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"允許應用程式讀取你的相片收藏。"</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"修改你的相片收藏"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"允許應用程式修改你的相片收藏。"</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"讀取你的媒體收藏的位置資訊"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"允許應用程式讀取你的媒體收藏的位置資訊。"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"只偵測到部分指紋。請再試一次。"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋。請再試一次。"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器不乾淨。請清潔後再試一次。"</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"要將<xliff:g id="TYPE">%1$s</xliff:g>儲存至「<b><xliff:g id="LABEL">%2$s</xliff:g></b>」嗎?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>和<xliff:g id="TYPE_1">%2$s</xliff:g>儲存至「<b><xliff:g id="LABEL">%3$s</xliff:g></b>」嗎?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>和<xliff:g id="TYPE_2">%3$s</xliff:g>儲存至「<b><xliff:g id="LABEL">%4$s</xliff:g></b>」嗎?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"要更新為「<xliff:g id="LABEL">%1$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"要將<xliff:g id="TYPE">%1$s</xliff:g>更新為「<xliff:g id="LABEL">%2$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>和<xliff:g id="TYPE_1">%2$s</xliff:g>更新為「<xliff:g id="LABEL">%3$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>和<xliff:g id="TYPE_2">%3$s</xliff:g>更新為「<xliff:g id="LABEL">%4$s</xliff:g>」<b></b>嗎?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"儲存"</string> <string name="autofill_save_no" msgid="2625132258725581787">"不用了,謝謝"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"更新"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"密碼"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"地址"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"信用卡"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index d130fba07502..219f137a75a7 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -300,6 +300,12 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"人體感應器"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"存取與你生命徵象相關的感應器資料"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」存取與你生命徵象相關的感應器資料嗎?"</string> + <string name="permgrouplab_aural" msgid="965607064083134896">"音樂"</string> + <string name="permgroupdesc_aural" msgid="4870189506255958055">"存取你的音樂"</string> + <string name="permgrouprequest_aural" msgid="6787926123071735620">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<b></b>存取你的音樂嗎?"</string> + <string name="permgrouplab_visual" msgid="8030190588123857921">"相片和影片"</string> + <string name="permgroupdesc_visual" msgid="3415827902566663546">"存取你的相片和影片"</string> + <string name="permgrouprequest_visual" msgid="6907523945030290376">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<b></b>存取你的相片和影片嗎?"</string> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"擷取視窗內容"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"檢查你存取的視窗內容。"</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"啟用輕觸探索功能"</string> @@ -494,6 +500,20 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"允許應用程式呼叫方法來新增及移除可用的指紋範本"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"使用指紋硬體"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"允許應用程式使用指紋硬體進行驗證"</string> + <string name="permlab_audioRead" msgid="6617225220728465565">"讀取你的音樂收藏"</string> + <string name="permdesc_audioRead" msgid="5034032570243484805">"允許應用程式讀取你的音樂收藏。"</string> + <string name="permlab_audioWrite" msgid="2661772059799779292">"修改你的音樂收藏"</string> + <string name="permdesc_audioWrite" msgid="8888544708166230494">"允許應用程式修改你的音樂收藏。"</string> + <string name="permlab_videoRead" msgid="9182618678674737229">"讀取你的影片收藏"</string> + <string name="permdesc_videoRead" msgid="7045676429859396194">"允許應用程式讀取你的影片收藏。"</string> + <string name="permlab_videoWrite" msgid="128769316366746446">"修改你的影片收藏"</string> + <string name="permdesc_videoWrite" msgid="5448565757490640841">"允許應用程式修改你的影片收藏。"</string> + <string name="permlab_imagesRead" msgid="3015078545742665304">"讀取你的相片收藏"</string> + <string name="permdesc_imagesRead" msgid="3144263806038695580">"允許應用程式讀取你的相片收藏。"</string> + <string name="permlab_imagesWrite" msgid="3391306186247235510">"修改你的相片收藏"</string> + <string name="permdesc_imagesWrite" msgid="7073662756617474375">"允許應用程式修改你的相片收藏。"</string> + <string name="permlab_mediaLocation" msgid="8675148183726247864">"讀取你的媒體收藏的位置資訊"</string> + <string name="permdesc_mediaLocation" msgid="2237023389178865130">"允許應用程式讀取你的媒體收藏的位置資訊。"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"僅偵測到部分指紋,請再試一次。"</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋,請再試一次。"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器有髒汙。請清潔感應器,然後再試一次。"</string> @@ -1872,8 +1892,13 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"要將<xliff:g id="TYPE">%1$s</xliff:g>儲存到「<xliff:g id="LABEL">%2$s</xliff:g>」嗎?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>和<xliff:g id="TYPE_1">%2$s</xliff:g>儲存到「<xliff:g id="LABEL">%3$s</xliff:g>」嗎?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>和<xliff:g id="TYPE_2">%3$s</xliff:g>儲存到「<xliff:g id="LABEL">%4$s</xliff:g>」嗎?"</string> + <string name="autofill_update_title" msgid="4879673117448810818">"要更新為「<xliff:g id="LABEL">%1$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_type" msgid="339733442087186755">"要將<xliff:g id="TYPE">%1$s</xliff:g>更新為「<xliff:g id="LABEL">%2$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_2types" msgid="6321714204167424745">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>和<xliff:g id="TYPE_1">%2$s</xliff:g>更新為「<xliff:g id="LABEL">%3$s</xliff:g>」<b></b>嗎?"</string> + <string name="autofill_update_title_with_3types" msgid="5866735124066629287">"要將<xliff:g id="TYPE_0">%1$s</xliff:g>、<xliff:g id="TYPE_1">%2$s</xliff:g>和<xliff:g id="TYPE_2">%3$s</xliff:g>更新為「<xliff:g id="LABEL">%4$s</xliff:g>」<b></b>嗎?"</string> <string name="autofill_save_yes" msgid="6398026094049005921">"儲存"</string> <string name="autofill_save_no" msgid="2625132258725581787">"不用了,謝謝"</string> + <string name="autofill_update_yes" msgid="310358413273276958">"更新"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"密碼"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"地址"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"信用卡"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index fed482486191..37a2e20426cb 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -300,6 +300,18 @@ <string name="permgrouplab_sensors" msgid="416037179223226722">"Izinzwa zomzimba"</string> <string name="permgroupdesc_sensors" msgid="7147968539346634043">"finyelela idatha yesizweli mayelana nezimpawu zakho ezibalulekile"</string> <string name="permgrouprequest_sensors" msgid="6349806962814556786">"Vumela i-<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ukuthi ifinyelele kudatha yenzwa emayelana nezimpawu zakho ezibalulekile?"</string> + <!-- no translation found for permgrouplab_aural (965607064083134896) --> + <skip /> + <!-- no translation found for permgroupdesc_aural (4870189506255958055) --> + <skip /> + <!-- no translation found for permgrouprequest_aural (6787926123071735620) --> + <skip /> + <!-- no translation found for permgrouplab_visual (8030190588123857921) --> + <skip /> + <!-- no translation found for permgroupdesc_visual (3415827902566663546) --> + <skip /> + <!-- no translation found for permgrouprequest_visual (6907523945030290376) --> + <skip /> <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Thola okuqukethwe kwewindi"</string> <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Hlola okuqukethwe kwewindi ohlanganyela nalo."</string> <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Vula ukuhlola ngokuthinta"</string> @@ -494,6 +506,34 @@ <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Ivumela uhlelo lokusebenza ukuthi libuyisele izindlela zokungeza nokususa izifanekiso zezigxivizo zeminwe ngokusetshenziswa."</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"sebenzisa izingxenyekazi zekhompyutha zezigxivizo zeminwe"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Ivumela uhlelo lokusebenza ukuthi lusebenzise izingxenyekazi zekhompyutha zezigxivizo zeminwe ukuze kuqinisekiswe"</string> + <!-- no translation found for permlab_audioRead (6617225220728465565) --> + <skip /> + <!-- no translation found for permdesc_audioRead (5034032570243484805) --> + <skip /> + <!-- no translation found for permlab_audioWrite (2661772059799779292) --> + <skip /> + <!-- no translation found for permdesc_audioWrite (8888544708166230494) --> + <skip /> + <!-- no translation found for permlab_videoRead (9182618678674737229) --> + <skip /> + <!-- no translation found for permdesc_videoRead (7045676429859396194) --> + <skip /> + <!-- no translation found for permlab_videoWrite (128769316366746446) --> + <skip /> + <!-- no translation found for permdesc_videoWrite (5448565757490640841) --> + <skip /> + <!-- no translation found for permlab_imagesRead (3015078545742665304) --> + <skip /> + <!-- no translation found for permdesc_imagesRead (3144263806038695580) --> + <skip /> + <!-- no translation found for permlab_imagesWrite (3391306186247235510) --> + <skip /> + <!-- no translation found for permdesc_imagesWrite (7073662756617474375) --> + <skip /> + <!-- no translation found for permlab_mediaLocation (8675148183726247864) --> + <skip /> + <!-- no translation found for permdesc_mediaLocation (2237023389178865130) --> + <skip /> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Izigxivizo zeminwe ezincane zitholiwe. Sicela uzame futhi."</string> <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ayikwazanga ukucubungula izigxivizo zeminwe. Sicela uzame futhi."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Inzwa yezigxivizo zeminwe ingcolile. Sicela uyihlanze uphinde uzame futhi."</string> @@ -1872,8 +1912,18 @@ <string name="autofill_save_title_with_type" msgid="8637809388029313305">"Londoloza i-<xliff:g id="TYPE">%1$s</xliff:g> ku-<b><xliff:g id="LABEL">%2$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_2types" msgid="5214035651838265325">"Londoloza i-<xliff:g id="TYPE_0">%1$s</xliff:g> ne-<xliff:g id="TYPE_1">%2$s</xliff:g> ku-<b><xliff:g id="LABEL">%3$s</xliff:g></b>?"</string> <string name="autofill_save_title_with_3types" msgid="6943161834231458441">"Londoloza i-<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g>, ne-<xliff:g id="TYPE_2">%3$s</xliff:g> ku-<b><xliff:g id="LABEL">%4$s</xliff:g></b>?"</string> + <!-- no translation found for autofill_update_title (4879673117448810818) --> + <skip /> + <!-- no translation found for autofill_update_title_with_type (339733442087186755) --> + <skip /> + <!-- no translation found for autofill_update_title_with_2types (6321714204167424745) --> + <skip /> + <!-- no translation found for autofill_update_title_with_3types (5866735124066629287) --> + <skip /> <string name="autofill_save_yes" msgid="6398026094049005921">"Londoloza"</string> <string name="autofill_save_no" msgid="2625132258725581787">"Cha ngiyabonga"</string> + <!-- no translation found for autofill_update_yes (310358413273276958) --> + <skip /> <string name="autofill_save_type_password" msgid="5288448918465971568">"iphasiwedi"</string> <string name="autofill_save_type_address" msgid="4936707762193009542">"ikheli"</string> <string name="autofill_save_type_credit_card" msgid="7127694776265563071">"ikhadi lesikweletu"</string> diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml index 483381660655..090f9afb551e 100644 --- a/core/res/res/values/themes.xml +++ b/core/res/res/values/themes.xml @@ -306,6 +306,7 @@ please see themes_device_defaults.xml. <item name="quickContactBadgeStyleSmallWindowLarge">@style/Widget.QuickContactBadgeSmall.WindowLarge</item> <item name="listPopupWindowStyle">@style/Widget.ListPopupWindow</item> <item name="popupMenuStyle">@style/Widget.PopupMenu</item> + <item name="popupTheme">@null</item> <item name="activityChooserViewStyle">@style/Widget.ActivityChooserView</item> <item name="fragmentBreadCrumbsStyle">@style/Widget.FragmentBreadCrumbs</item> <item name="contextPopupMenuStyle">?attr/popupMenuStyle</item> diff --git a/core/res/res/values/themes_holo.xml b/core/res/res/values/themes_holo.xml index cb5b93dd7df4..33832d4eb689 100644 --- a/core/res/res/values/themes_holo.xml +++ b/core/res/res/values/themes_holo.xml @@ -296,6 +296,7 @@ please see themes_device_defaults.xml. <item name="quickContactBadgeStyleSmallWindowLarge">@style/Widget.Holo.QuickContactBadgeSmall.WindowLarge</item> <item name="listPopupWindowStyle">@style/Widget.Holo.ListPopupWindow</item> <item name="popupMenuStyle">@style/Widget.Holo.PopupMenu</item> + <item name="popupTheme">@null</item> <item name="stackViewStyle">@style/Widget.Holo.StackView</item> <item name="activityChooserViewStyle">@style/Widget.Holo.ActivityChooserView</item> <item name="fragmentBreadCrumbsStyle">@style/Widget.Holo.FragmentBreadCrumbs</item> @@ -658,9 +659,11 @@ please see themes_device_defaults.xml. <item name="quickContactBadgeStyleSmallWindowLarge">@style/Widget.Holo.QuickContactBadgeSmall.WindowLarge</item> <item name="listPopupWindowStyle">@style/Widget.Holo.Light.ListPopupWindow</item> <item name="popupMenuStyle">@style/Widget.Holo.Light.PopupMenu</item> + <item name="popupTheme">@null</item> <item name="stackViewStyle">@style/Widget.Holo.StackView</item> <item name="activityChooserViewStyle">@style/Widget.Holo.Light.ActivityChooserView</item> <item name="fragmentBreadCrumbsStyle">@style/Widget.Holo.Light.FragmentBreadCrumbs</item> + <item name="contextPopupMenuStyle">?attr/popupMenuStyle</item> <!-- Preference styles --> <item name="preferenceScreenStyle">@style/Preference.Holo.PreferenceScreen</item> diff --git a/data/etc/platform.xml b/data/etc/platform.xml index b3f05dc9fc98..6f52fbd1b4f5 100644 --- a/data/etc/platform.xml +++ b/data/etc/platform.xml @@ -182,11 +182,11 @@ code to link against. --> <library name="android.test.base" - file="/system/framework/android.test.base.jar" /> + file="/system/framework/android.test.base.impl.jar" /> <library name="android.test.mock" - file="/system/framework/android.test.mock.jar" /> + file="/system/framework/android.test.mock.impl.jar" /> <library name="android.test.runner" - file="/system/framework/android.test.runner.jar" /> + file="/system/framework/android.test.runner.impl.jar" /> <!-- These are the standard packages that are white-listed to always have internet access while in power save mode, even if they aren't in the foreground. --> diff --git a/graphics/java/android/graphics/fonts/Font.java b/graphics/java/android/graphics/fonts/Font.java index 9d94a641f795..f0c519922fdd 100644 --- a/graphics/java/android/graphics/fonts/Font.java +++ b/graphics/java/android/graphics/fonts/Font.java @@ -36,11 +36,13 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; +import java.util.Arrays; +import java.util.Objects; /** * A font class can be used for creating FontFamily. */ -public class Font { +public final class Font { private static final String TAG = "Font"; private static final int NOT_SPECIFIED = -1; @@ -109,6 +111,7 @@ public class Font { private @IntRange(from = -1, to = 1) int mItalic = NOT_SPECIFIED; private @IntRange(from = 0) int mTtcIndex = 0; private @Nullable FontVariationAxis[] mAxes = null; + private @Nullable IOException mException; /** * Constructs a builder with a byte buffer. @@ -132,11 +135,13 @@ public class Font { * * @param path a file path to the font file */ - public Builder(@NonNull File path) throws IOException { + public Builder(@NonNull File path) { Preconditions.checkNotNull(path, "path can not be null"); try (FileInputStream fis = new FileInputStream(path)) { final FileChannel fc = fis.getChannel(); mBuffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); + } catch (IOException e) { + mException = e; } } @@ -145,7 +150,7 @@ public class Font { * * @param fd a file descriptor */ - public Builder(@NonNull FileDescriptor fd) throws IOException { + public Builder(@NonNull FileDescriptor fd) { this(fd, 0, -1); } @@ -157,11 +162,13 @@ public class Font { * @param size a size of the font data. If -1 is passed, use until end of the file. */ public Builder(@NonNull FileDescriptor fd, @IntRange(from = 0) long offset, - @IntRange(from = -1) long size) throws IOException { + @IntRange(from = -1) long size) { try (FileInputStream fis = new FileInputStream(fd)) { final FileChannel fc = fis.getChannel(); size = (size == -1) ? fc.size() - offset : size; mBuffer = fc.map(FileChannel.MapMode.READ_ONLY, offset, size); + } catch (IOException e) { + mException = e; } } @@ -171,15 +178,17 @@ public class Font { * @param am the application's asset manager * @param path the file name of the font data in the asset directory */ - public Builder(@NonNull AssetManager am, @NonNull String path) throws IOException { + public Builder(@NonNull AssetManager am, @NonNull String path) { final long nativeAsset = nGetNativeAsset(am, path, true /* is asset */, 0 /* cookie */); if (nativeAsset == 0) { - throw new FileNotFoundException("Unable to open " + path); + mException = new FileNotFoundException("Unable to open " + path); + return; } final ByteBuffer b = nGetAssetBuffer(nativeAsset); sAssetByteBufferRegistroy.registerNativeAllocation(b, nativeAsset); if (b == null) { - throw new FileNotFoundException(path + " not found"); + mException = new FileNotFoundException(path + " not found"); + return; } mBuffer = b; } @@ -192,25 +201,29 @@ public class Font { * @param res the resource of this application. * @param resId the resource ID of font file. */ - public Builder(@NonNull Resources res, int resId) throws IOException { + public Builder(@NonNull Resources res, int resId) { final TypedValue value = new TypedValue(); res.getValue(resId, value, true); if (value.string == null) { - throw new FileNotFoundException(resId + " not found"); + mException = new FileNotFoundException(resId + " not found"); + return; } final String str = value.string.toString(); if (str.toLowerCase().endsWith(".xml")) { - throw new FileNotFoundException(resId + " must be font file."); + mException = new FileNotFoundException(resId + " must be font file."); + return; } final long nativeAsset = nGetNativeAsset(res.getAssets(), str, false /* is asset */, value.assetCookie); if (nativeAsset == 0) { - throw new FileNotFoundException("Unable to open " + str); + mException = new FileNotFoundException("Unable to open " + str); + return; } final ByteBuffer b = nGetAssetBuffer(nativeAsset); sAssetByteBufferRegistroy.registerNativeAllocation(b, nativeAsset); if (b == null) { - throw new FileNotFoundException(str + " not found"); + mException = new FileNotFoundException(str + " not found"); + return; } mBuffer = b; } @@ -347,7 +360,7 @@ public class Font { * @return this builder */ public @NonNull Builder setFontVariationSettings(@Nullable FontVariationAxis[] axes) { - mAxes = axes; + mAxes = axes == null ? null : axes.clone(); return this; } @@ -355,7 +368,10 @@ public class Font { * Creates the font based on the configured values. * @return the Font object */ - public @Nullable Font build() { + public @Nullable Font build() throws IOException { + if (mException != null) { + throw new IOException("Failed to read font contents", mException); + } if (mWeight == NOT_SPECIFIED || mItalic == NOT_SPECIFIED) { final int packed = FontFileUtil.analyzeStyle(mBuffer, mTtcIndex, mAxes); if (FontFileUtil.isSuccess(packed)) { @@ -378,7 +394,7 @@ public class Font { } } final long ptr = nBuild(builderPtr, mBuffer, mWeight, italic, mTtcIndex); - final Font font = new Font(ptr, mWeight, italic, mTtcIndex, mAxes); + final Font font = new Font(ptr, mBuffer, mWeight, italic, mTtcIndex, mAxes); sFontRegistory.registerNativeAllocation(font, ptr); return font; } @@ -405,6 +421,7 @@ public class Font { } private final long mNativePtr; // address of the shared ptr of minikin::Font + private final @NonNull ByteBuffer mBuffer; private final @IntRange(from = 0, to = 1000) int mWeight; private final boolean mItalic; private final @IntRange(from = 0) int mTtcIndex; @@ -413,8 +430,10 @@ public class Font { /** * Use Builder instead */ - private Font(long nativePtr, @IntRange(from = 0, to = 1000) int weight, boolean italic, + private Font(long nativePtr, @NonNull ByteBuffer buffer, + @IntRange(from = 0, to = 1000) int weight, boolean italic, @IntRange(from = 0) int ttcIndex, @Nullable FontVariationAxis[] axes) { + mBuffer = buffer; mWeight = weight; mItalic = italic; mNativePtr = nativePtr; @@ -462,7 +481,7 @@ public class Font { * @return font variation settings */ public @Nullable FontVariationAxis[] getAxes() { - return mAxes; + return mAxes == null ? null : mAxes.clone(); } /** @hide */ @@ -471,6 +490,24 @@ public class Font { } @Override + public boolean equals(@Nullable Object o) { + if (o == this) { + return true; + } + if (o == null || !(o instanceof Font)) { + return false; + } + Font f = (Font) o; + return f.mWeight == mWeight && f.mItalic == mItalic && f.mTtcIndex == mTtcIndex + && Arrays.equals(f.mAxes, mAxes) && f.mBuffer.equals(mBuffer); + } + + @Override + public int hashCode() { + return Objects.hash(mWeight, mItalic, mTtcIndex, mAxes, mBuffer); + } + + @Override public String toString() { return "Font {weight=" + mWeight + ", italic=" + mItalic + "}"; } diff --git a/graphics/java/android/graphics/fonts/FontFamily.java b/graphics/java/android/graphics/fonts/FontFamily.java index dc213ea56f99..c914ecedd761 100644 --- a/graphics/java/android/graphics/fonts/FontFamily.java +++ b/graphics/java/android/graphics/fonts/FontFamily.java @@ -57,7 +57,7 @@ import java.util.HashSet; * </p> * */ -public class FontFamily { +public final class FontFamily { private static final String TAG = "FontFamily"; /** @@ -170,7 +170,7 @@ public class FontFamily { * * @return the number of fonts registered in this family. */ - public int getFontCount() { + public int getSize() { return mFonts.size(); } diff --git a/graphics/java/android/graphics/fonts/FontVariationAxis.java b/graphics/java/android/graphics/fonts/FontVariationAxis.java index 2a902c5a6b66..242cbb81b83c 100644 --- a/graphics/java/android/graphics/fonts/FontVariationAxis.java +++ b/graphics/java/android/graphics/fonts/FontVariationAxis.java @@ -22,6 +22,7 @@ import android.annotation.UnsupportedAppUsage; import android.text.TextUtils; import java.util.ArrayList; +import java.util.Objects; import java.util.regex.Pattern; /** @@ -186,5 +187,22 @@ public final class FontVariationAxis { } return TextUtils.join(",", axes); } + + @Override + public boolean equals(@Nullable Object o) { + if (o == this) { + return true; + } + if (o == null || !(o instanceof FontVariationAxis)) { + return false; + } + FontVariationAxis axis = (FontVariationAxis) o; + return axis.mTag == mTag && axis.mStyleValue == mStyleValue; + } + + @Override + public int hashCode() { + return Objects.hash(mTag, mStyleValue); + } } diff --git a/graphics/java/android/graphics/fonts/SystemFonts.java b/graphics/java/android/graphics/fonts/SystemFonts.java index bd49130c11c6..dae48f8b528f 100644 --- a/graphics/java/android/graphics/fonts/SystemFonts.java +++ b/graphics/java/android/graphics/fonts/SystemFonts.java @@ -169,12 +169,17 @@ public class SystemFonts { } } - final Font font = new Font.Builder(buffer) - .setWeight(fontConfig.getWeight()) - .setItalic(fontConfig.isItalic()) - .setTtcIndex(fontConfig.getTtcIndex()) - .setFontVariationSettings(fontConfig.getAxes()) - .build(); + final Font font; + try { + font = new Font.Builder(buffer) + .setWeight(fontConfig.getWeight()) + .setItalic(fontConfig.isItalic()) + .setTtcIndex(fontConfig.getTtcIndex()) + .setFontVariationSettings(fontConfig.getAxes()) + .build(); + } catch (IOException e) { + throw new RuntimeException(e); // Never reaches here + } if (b == null) { b = new FontFamily.Builder(font); diff --git a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RemotePrintServicePlugin.java b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RemotePrintServicePlugin.java index ef93d4a24aa2..3cfb8655ed0c 100644 --- a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RemotePrintServicePlugin.java +++ b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/RemotePrintServicePlugin.java @@ -19,7 +19,8 @@ package com.android.printservice.recommendation; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; -import androidx.core.util.Preconditions; + +import com.android.printservice.recommendation.util.Preconditions; import java.net.InetAddress; import java.util.Collections; diff --git a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/plugin/mdnsFilter/VendorConfig.java b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/plugin/mdnsFilter/VendorConfig.java index 5d735a887264..dece2d4c9345 100644 --- a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/plugin/mdnsFilter/VendorConfig.java +++ b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/plugin/mdnsFilter/VendorConfig.java @@ -22,9 +22,9 @@ import android.util.ArrayMap; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.util.Preconditions; import com.android.printservice.recommendation.R; +import com.android.printservice.recommendation.util.Preconditions; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; diff --git a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/MDNSFilteredDiscovery.java b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/MDNSFilteredDiscovery.java index 65cef9441fdc..a6d59cb6dbe7 100644 --- a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/MDNSFilteredDiscovery.java +++ b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/MDNSFilteredDiscovery.java @@ -24,7 +24,6 @@ import android.util.Log; import androidx.annotation.GuardedBy; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.util.Preconditions; import com.android.printservice.recommendation.PrintServicePlugin; diff --git a/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/Preconditions.java b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/Preconditions.java new file mode 100644 index 000000000000..9bba66c49e55 --- /dev/null +++ b/packages/PrintRecommendationService/src/com/android/printservice/recommendation/util/Preconditions.java @@ -0,0 +1,532 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.printservice.recommendation.util; + +import android.text.TextUtils; + +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; + +import java.util.Collection; + +/** + * Simple static methods to be called at the start of your own methods to verify + * correct arguments and state. + */ +public class Preconditions { + + public static void checkArgument(boolean expression) { + if (!expression) { + throw new IllegalArgumentException(); + } + } + + /** + * Ensures that an expression checking an argument is true. + * + * @param expression the expression to check + * @param errorMessage the exception message to use if the check fails; will + * be converted to a string using {@link String#valueOf(Object)} + * @throws IllegalArgumentException if {@code expression} is false + */ + public static void checkArgument(boolean expression, final Object errorMessage) { + if (!expression) { + throw new IllegalArgumentException(String.valueOf(errorMessage)); + } + } + + /** + * Ensures that an expression checking an argument is true. + * + * @param expression the expression to check + * @param messageTemplate a printf-style message template to use if the check fails; will + * be converted to a string using {@link String#format(String, Object...)} + * @param messageArgs arguments for {@code messageTemplate} + * @throws IllegalArgumentException if {@code expression} is false + */ + public static void checkArgument(boolean expression, + final String messageTemplate, + final Object... messageArgs) { + if (!expression) { + throw new IllegalArgumentException(String.format(messageTemplate, messageArgs)); + } + } + + /** + * Ensures that an string reference passed as a parameter to the calling + * method is not empty. + * + * @param string an string reference + * @return the string reference that was validated + * @throws IllegalArgumentException if {@code string} is empty + */ + public static @NonNull <T extends CharSequence> T checkStringNotEmpty(final T string) { + if (TextUtils.isEmpty(string)) { + throw new IllegalArgumentException(); + } + return string; + } + + /** + * Ensures that an string reference passed as a parameter to the calling + * method is not empty. + * + * @param string an string reference + * @param errorMessage the exception message to use if the check fails; will + * be converted to a string using {@link String#valueOf(Object)} + * @return the string reference that was validated + * @throws IllegalArgumentException if {@code string} is empty + */ + public static @NonNull <T extends CharSequence> T checkStringNotEmpty(final T string, + final Object errorMessage) { + if (TextUtils.isEmpty(string)) { + throw new IllegalArgumentException(String.valueOf(errorMessage)); + } + return string; + } + + /** + * Ensures that an object reference passed as a parameter to the calling + * method is not null. + * + * @param reference an object reference + * @return the non-null reference that was validated + * @throws NullPointerException if {@code reference} is null + */ + public static @NonNull <T> T checkNotNull(final T reference) { + if (reference == null) { + throw new NullPointerException(); + } + return reference; + } + + /** + * Ensures that an object reference passed as a parameter to the calling + * method is not null. + * + * @param reference an object reference + * @param errorMessage the exception message to use if the check fails; will + * be converted to a string using {@link String#valueOf(Object)} + * @return the non-null reference that was validated + * @throws NullPointerException if {@code reference} is null + */ + public static @NonNull <T> T checkNotNull(final T reference, final Object errorMessage) { + if (reference == null) { + throw new NullPointerException(String.valueOf(errorMessage)); + } + return reference; + } + + /** + * Ensures that an object reference passed as a parameter to the calling + * method is not null. + * + * @param reference an object reference + * @param messageTemplate a printf-style message template to use if the check fails; will + * be converted to a string using {@link String#format(String, Object...)} + * @param messageArgs arguments for {@code messageTemplate} + * @return the non-null reference that was validated + * @throws NullPointerException if {@code reference} is null + */ + public static @NonNull <T> T checkNotNull(final T reference, + final String messageTemplate, + final Object... messageArgs) { + if (reference == null) { + throw new NullPointerException(String.format(messageTemplate, messageArgs)); + } + return reference; + } + + /** + * Ensures the truth of an expression involving the state of the calling + * instance, but not involving any parameters to the calling method. + * + * @param expression a boolean expression + * @param message exception message + * @throws IllegalStateException if {@code expression} is false + */ + public static void checkState(final boolean expression, String message) { + if (!expression) { + throw new IllegalStateException(message); + } + } + + /** + * Ensures the truth of an expression involving the state of the calling + * instance, but not involving any parameters to the calling method. + * + * @param expression a boolean expression + * @throws IllegalStateException if {@code expression} is false + */ + public static void checkState(final boolean expression) { + checkState(expression, null); + } + + /** + * Check the requested flags, throwing if any requested flags are outside + * the allowed set. + * + * @return the validated requested flags. + */ + public static int checkFlagsArgument(final int requestedFlags, final int allowedFlags) { + if ((requestedFlags & allowedFlags) != requestedFlags) { + throw new IllegalArgumentException("Requested flags 0x" + + Integer.toHexString(requestedFlags) + ", but only 0x" + + Integer.toHexString(allowedFlags) + " are allowed"); + } + + return requestedFlags; + } + + /** + * Ensures that that the argument numeric value is non-negative. + * + * @param value a numeric int value + * @param errorMessage the exception message to use if the check fails + * @return the validated numeric value + * @throws IllegalArgumentException if {@code value} was negative + */ + public static @IntRange(from = 0) int checkArgumentNonnegative(final int value, + final String errorMessage) { + if (value < 0) { + throw new IllegalArgumentException(errorMessage); + } + + return value; + } + + /** + * Ensures that that the argument numeric value is non-negative. + * + * @param value a numeric int value + * + * @return the validated numeric value + * @throws IllegalArgumentException if {@code value} was negative + */ + public static @IntRange(from = 0) int checkArgumentNonnegative(final int value) { + if (value < 0) { + throw new IllegalArgumentException(); + } + + return value; + } + + /** + * Ensures that that the argument numeric value is non-negative. + * + * @param value a numeric long value + * @return the validated numeric value + * @throws IllegalArgumentException if {@code value} was negative + */ + public static long checkArgumentNonnegative(final long value) { + if (value < 0) { + throw new IllegalArgumentException(); + } + + return value; + } + + /** + * Ensures that that the argument numeric value is non-negative. + * + * @param value a numeric long value + * @param errorMessage the exception message to use if the check fails + * @return the validated numeric value + * @throws IllegalArgumentException if {@code value} was negative + */ + public static long checkArgumentNonnegative(final long value, final String errorMessage) { + if (value < 0) { + throw new IllegalArgumentException(errorMessage); + } + + return value; + } + + /** + * Ensures that that the argument numeric value is positive. + * + * @param value a numeric int value + * @param errorMessage the exception message to use if the check fails + * @return the validated numeric value + * @throws IllegalArgumentException if {@code value} was not positive + */ + public static int checkArgumentPositive(final int value, final String errorMessage) { + if (value <= 0) { + throw new IllegalArgumentException(errorMessage); + } + + return value; + } + + /** + * Ensures that the argument floating point value is a finite number. + * + * <p>A finite number is defined to be both representable (that is, not NaN) and + * not infinite (that is neither positive or negative infinity).</p> + * + * @param value a floating point value + * @param valueName the name of the argument to use if the check fails + * + * @return the validated floating point value + * + * @throws IllegalArgumentException if {@code value} was not finite + */ + public static float checkArgumentFinite(final float value, final String valueName) { + if (Float.isNaN(value)) { + throw new IllegalArgumentException(valueName + " must not be NaN"); + } else if (Float.isInfinite(value)) { + throw new IllegalArgumentException(valueName + " must not be infinite"); + } + + return value; + } + + /** + * Ensures that the argument floating point value is within the inclusive range. + * + * <p>While this can be used to range check against +/- infinity, note that all NaN numbers + * will always be out of range.</p> + * + * @param value a floating point value + * @param lower the lower endpoint of the inclusive range + * @param upper the upper endpoint of the inclusive range + * @param valueName the name of the argument to use if the check fails + * + * @return the validated floating point value + * + * @throws IllegalArgumentException if {@code value} was not within the range + */ + public static float checkArgumentInRange(float value, float lower, float upper, + String valueName) { + if (Float.isNaN(value)) { + throw new IllegalArgumentException(valueName + " must not be NaN"); + } else if (value < lower) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%f, %f] (too low)", valueName, lower, upper)); + } else if (value > upper) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%f, %f] (too high)", valueName, lower, upper)); + } + + return value; + } + + /** + * Ensures that the argument int value is within the inclusive range. + * + * @param value a int value + * @param lower the lower endpoint of the inclusive range + * @param upper the upper endpoint of the inclusive range + * @param valueName the name of the argument to use if the check fails + * + * @return the validated int value + * + * @throws IllegalArgumentException if {@code value} was not within the range + */ + public static int checkArgumentInRange(int value, int lower, int upper, + String valueName) { + if (value < lower) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%d, %d] (too low)", valueName, lower, upper)); + } else if (value > upper) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%d, %d] (too high)", valueName, lower, upper)); + } + + return value; + } + + /** + * Ensures that the argument long value is within the inclusive range. + * + * @param value a long value + * @param lower the lower endpoint of the inclusive range + * @param upper the upper endpoint of the inclusive range + * @param valueName the name of the argument to use if the check fails + * + * @return the validated long value + * + * @throws IllegalArgumentException if {@code value} was not within the range + */ + public static long checkArgumentInRange(long value, long lower, long upper, + String valueName) { + if (value < lower) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%d, %d] (too low)", valueName, lower, upper)); + } else if (value > upper) { + throw new IllegalArgumentException( + String.format( + "%s is out of range of [%d, %d] (too high)", valueName, lower, upper)); + } + + return value; + } + + /** + * Ensures that the array is not {@code null}, and none of its elements are {@code null}. + * + * @param value an array of boxed objects + * @param valueName the name of the argument to use if the check fails + * + * @return the validated array + * + * @throws NullPointerException if the {@code value} or any of its elements were {@code null} + */ + public static <T> T[] checkArrayElementsNotNull(final T[] value, final String valueName) { + if (value == null) { + throw new NullPointerException(valueName + " must not be null"); + } + + for (int i = 0; i < value.length; ++i) { + if (value[i] == null) { + throw new NullPointerException( + String.format("%s[%d] must not be null", valueName, i)); + } + } + + return value; + } + + /** + * Ensures that the {@link Collection} is not {@code null}, and none of its elements are + * {@code null}. + * + * @param value a {@link Collection} of boxed objects + * @param valueName the name of the argument to use if the check fails + * + * @return the validated {@link Collection} + * + * @throws NullPointerException if the {@code value} or any of its elements were {@code null} + */ + public static @NonNull <C extends Collection<T>, T> C checkCollectionElementsNotNull( + final C value, final String valueName) { + if (value == null) { + throw new NullPointerException(valueName + " must not be null"); + } + + long ctr = 0; + for (T elem : value) { + if (elem == null) { + throw new NullPointerException( + String.format("%s[%d] must not be null", valueName, ctr)); + } + ++ctr; + } + + return value; + } + + /** + * Ensures that the {@link Collection} is not {@code null}, and contains at least one element. + * + * @param value a {@link Collection} of boxed elements. + * @param valueName the name of the argument to use if the check fails. + + * @return the validated {@link Collection} + * + * @throws NullPointerException if the {@code value} was {@code null} + * @throws IllegalArgumentException if the {@code value} was empty + */ + public static <T> Collection<T> checkCollectionNotEmpty(final Collection<T> value, + final String valueName) { + if (value == null) { + throw new NullPointerException(valueName + " must not be null"); + } + if (value.isEmpty()) { + throw new IllegalArgumentException(valueName + " is empty"); + } + return value; + } + + /** + * Ensures that all elements in the argument floating point array are within the inclusive range + * + * <p>While this can be used to range check against +/- infinity, note that all NaN numbers + * will always be out of range.</p> + * + * @param value a floating point array of values + * @param lower the lower endpoint of the inclusive range + * @param upper the upper endpoint of the inclusive range + * @param valueName the name of the argument to use if the check fails + * + * @return the validated floating point value + * + * @throws IllegalArgumentException if any of the elements in {@code value} were out of range + * @throws NullPointerException if the {@code value} was {@code null} + */ + public static float[] checkArrayElementsInRange(float[] value, float lower, float upper, + String valueName) { + checkNotNull(value, valueName + " must not be null"); + + for (int i = 0; i < value.length; ++i) { + float v = value[i]; + + if (Float.isNaN(v)) { + throw new IllegalArgumentException(valueName + "[" + i + "] must not be NaN"); + } else if (v < lower) { + throw new IllegalArgumentException( + String.format("%s[%d] is out of range of [%f, %f] (too low)", + valueName, i, lower, upper)); + } else if (v > upper) { + throw new IllegalArgumentException( + String.format("%s[%d] is out of range of [%f, %f] (too high)", + valueName, i, lower, upper)); + } + } + + return value; + } + + /** + * Ensures that all elements in the argument integer array are within the inclusive range + * + * @param value an integer array of values + * @param lower the lower endpoint of the inclusive range + * @param upper the upper endpoint of the inclusive range + * @param valueName the name of the argument to use if the check fails + * + * @return the validated integer array + * + * @throws IllegalArgumentException if any of the elements in {@code value} were out of range + * @throws NullPointerException if the {@code value} was {@code null} + */ + public static int[] checkArrayElementsInRange(int[] value, int lower, int upper, + String valueName) { + checkNotNull(value, valueName + " must not be null"); + + for (int i = 0; i < value.length; ++i) { + int v = value[i]; + + if (v < lower) { + throw new IllegalArgumentException( + String.format("%s[%d] is out of range of [%d, %d] (too low)", + valueName, i, lower, upper)); + } else if (v > upper) { + throw new IllegalArgumentException( + String.format("%s[%d] is out of range of [%d, %d] (too high)", + valueName, i, lower, upper)); + } + } + + return value; + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java index f2c2b0818148..a71041045df2 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java @@ -42,7 +42,6 @@ public class A2dpProfile implements LocalBluetoothProfile { private BluetoothA2dp mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; static final ParcelUuid[] SINK_UUIDS = { @@ -71,7 +70,7 @@ public class A2dpProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "A2dpProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(A2dpProfile.this, BluetoothProfile.STATE_CONNECTED); device.refresh(); @@ -94,14 +93,12 @@ public class A2dpProfile implements LocalBluetoothProfile { return BluetoothProfile.A2DP; } - A2dpProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + A2dpProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { mContext = context; - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new A2dpServiceListener(), + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new A2dpServiceListener(), BluetoothProfile.A2DP); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java index 6a4aa0abfd20..0c4e02b59bec 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java @@ -38,7 +38,6 @@ final class A2dpSinkProfile implements LocalBluetoothProfile { private BluetoothA2dpSink mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; static final ParcelUuid[] SRC_UUIDS = { @@ -67,7 +66,7 @@ final class A2dpSinkProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "A2dpSinkProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(A2dpSinkProfile.this, BluetoothProfile.STATE_CONNECTED); device.refresh(); @@ -90,13 +89,11 @@ final class A2dpSinkProfile implements LocalBluetoothProfile { return BluetoothProfile.A2DP_SINK; } - A2dpSinkProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + A2dpSinkProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new A2dpSinkServiceListener(), + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new A2dpSinkServiceListener(), BluetoothProfile.A2DP_SINK); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java index a3f3b59da895..466d02bd3bcf 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java @@ -150,7 +150,7 @@ public class BluetoothEventManager { for (BluetoothDevice device : bondedDevices) { CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device); if (cachedDevice == null) { - cachedDevice = mDeviceManager.addDevice(mLocalAdapter, device); + cachedDevice = mDeviceManager.addDevice(device); dispatchDeviceAdded(cachedDevice); deviceAdded = true; } @@ -282,7 +282,7 @@ public class BluetoothEventManager { // Skip for now, there's a bluez problem and we are not getting uuids even for 2.1. CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device); if (cachedDevice == null) { - cachedDevice = mDeviceManager.addDevice(mLocalAdapter, device); + cachedDevice = mDeviceManager.addDevice(device); Log.d(TAG, "DeviceFoundHandler created new CachedBluetoothDevice: " + cachedDevice); } @@ -348,8 +348,7 @@ public class BluetoothEventManager { if (cachedDevice == null) { Log.w(TAG, "Got bonding state changed for " + device + ", but we have no record of that device."); - - cachedDevice = mDeviceManager.addDevice(mLocalAdapter, device); + cachedDevice = mDeviceManager.addDevice(device); dispatchDeviceAdded(cachedDevice); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index b0ff9e3faac3..5ecbe80b9645 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -48,7 +48,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> private static final String TAG = "CachedBluetoothDevice"; private final Context mContext; - private final LocalBluetoothAdapter mLocalAdapter; + private final BluetoothAdapter mLocalAdapter; private final LocalBluetoothProfileManager mProfileManager; private final BluetoothDevice mDevice; //TODO: consider remove, BluetoothDevice.getName() is already cached @@ -143,7 +143,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> Log.d(TAG, "onProfileStateChanged: profile " + profile + " newProfileState " + newProfileState); } - if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_TURNING_OFF) + if (mLocalAdapter.getState() == BluetoothAdapter.STATE_TURNING_OFF) { if (BluetoothUtils.D) { Log.d(TAG, " BT Turninig Off...Profile conn state change ignored..."); @@ -179,11 +179,10 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> } CachedBluetoothDevice(Context context, - LocalBluetoothAdapter adapter, LocalBluetoothProfileManager profileManager, BluetoothDevice device) { mContext = context; - mLocalAdapter = adapter; + mLocalAdapter = BluetoothAdapter.getDefaultAdapter(); mProfileManager = profileManager; mDevice = device; mProfileConnectionState = new HashMap<LocalBluetoothProfile, Integer>(); diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java index 475ece853291..f8543fc150e1 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java @@ -107,10 +107,10 @@ public class CachedBluetoothDeviceManager { * @param device the address of the new Bluetooth device * @return the newly created CachedBluetoothDevice object */ - public CachedBluetoothDevice addDevice(LocalBluetoothAdapter adapter, BluetoothDevice device) { + public CachedBluetoothDevice addDevice(BluetoothDevice device) { LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager(); - CachedBluetoothDevice newDevice = new CachedBluetoothDevice(mContext, adapter, - profileManager, device); + CachedBluetoothDevice newDevice = new CachedBluetoothDevice(mContext, profileManager, + device); if (profileManager.getHearingAidProfile() != null && profileManager.getHearingAidProfile().getHiSyncId(newDevice.getDevice()) != BluetoothHearingAid.HI_SYNC_ID_INVALID) { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java index e28438208995..99f550b9f6da 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java @@ -41,7 +41,6 @@ public class HeadsetProfile implements LocalBluetoothProfile { private BluetoothHeadset mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; @@ -70,7 +69,7 @@ public class HeadsetProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "HeadsetProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(HeadsetProfile.this, BluetoothProfile.STATE_CONNECTED); @@ -97,13 +96,11 @@ public class HeadsetProfile implements LocalBluetoothProfile { return BluetoothProfile.HEADSET; } - HeadsetProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + HeadsetProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new HeadsetServiceListener(), + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new HeadsetServiceListener(), BluetoothProfile.HEADSET); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java index a0cf105bcfbe..6eaa62049e4c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java @@ -38,7 +38,6 @@ public class HearingAidProfile implements LocalBluetoothProfile { private BluetoothHearingAid mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; static final String NAME = "HearingAid"; @@ -64,7 +63,7 @@ public class HearingAidProfile implements LocalBluetoothProfile { if (V) { Log.d(TAG, "HearingAidProfile found new device: " + nextDevice); } - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(HearingAidProfile.this, BluetoothProfile.STATE_CONNECTED); @@ -92,15 +91,13 @@ public class HearingAidProfile implements LocalBluetoothProfile { return BluetoothProfile.HEARING_AID; } - HearingAidProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + HearingAidProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { mContext = context; - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new HearingAidServiceListener(), - BluetoothProfile.HEARING_AID); + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + new HearingAidServiceListener(), BluetoothProfile.HEARING_AID); } public boolean isConnectable() { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java index b8c72fba27cc..4b4db753aba9 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java @@ -41,7 +41,6 @@ final class HfpClientProfile implements LocalBluetoothProfile { private BluetoothHeadsetClient mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; static final ParcelUuid[] SRC_UUIDS = { @@ -71,7 +70,7 @@ final class HfpClientProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "HfpClient profile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged( HfpClientProfile.this, BluetoothProfile.STATE_CONNECTED); @@ -97,14 +96,12 @@ final class HfpClientProfile implements LocalBluetoothProfile { return BluetoothProfile.HEADSET_CLIENT; } - HfpClientProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + HfpClientProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new HfpClientServiceListener(), - BluetoothProfile.HEADSET_CLIENT); + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + new HfpClientServiceListener(), BluetoothProfile.HEADSET_CLIENT); } @Override diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java index f9da1094e488..8c4bff5bc4ff 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java @@ -39,7 +39,6 @@ public class HidDeviceProfile implements LocalBluetoothProfile { private static final int PREFERRED_VALUE = -1; private static final boolean DEBUG = true; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; static final String NAME = "HID DEVICE"; @@ -47,14 +46,12 @@ public class HidDeviceProfile implements LocalBluetoothProfile { private BluetoothHidDevice mService; private boolean mIsProfileReady; - HidDeviceProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + HidDeviceProfile(Context context,CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - adapter.getProfileProxy(context, new HidDeviceServiceListener(), - BluetoothProfile.HID_DEVICE); + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + new HidDeviceServiceListener(), BluetoothProfile.HID_DEVICE); } // These callbacks run on the main thread. @@ -73,7 +70,7 @@ public class HidDeviceProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "HidProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } Log.d(TAG, "Connection status changed: " + device); device.onProfileStateChanged(HidDeviceProfile.this, diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java index c5ba58cbe959..701ef001e5a6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java @@ -38,7 +38,6 @@ public class HidProfile implements LocalBluetoothProfile { private BluetoothHidHost mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; @@ -62,7 +61,7 @@ public class HidProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "HidProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(HidProfile.this, BluetoothProfile.STATE_CONNECTED); device.refresh(); @@ -85,13 +84,12 @@ public class HidProfile implements LocalBluetoothProfile { return BluetoothProfile.HID_HOST; } - HidProfile(Context context, LocalBluetoothAdapter adapter, + HidProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - adapter.getProfileProxy(context, new HidHostServiceListener(), + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new HidHostServiceListener(), BluetoothProfile.HID_HOST); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java index 3ebbf7e57f72..8bb8210631ed 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java @@ -18,6 +18,7 @@ package com.android.settingslib.bluetooth; import android.bluetooth.BluetoothA2dp; import android.bluetooth.BluetoothA2dpSink; +import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothHeadset; import android.bluetooth.BluetoothHeadsetClient; @@ -79,7 +80,6 @@ public class LocalBluetoothProfileManager { } private final Context mContext; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final BluetoothEventManager mEventManager; @@ -111,14 +111,13 @@ public class LocalBluetoothProfileManager { BluetoothEventManager eventManager) { mContext = context; - mLocalAdapter = adapter; mDeviceManager = deviceManager; mEventManager = eventManager; mUsePbapPce = mContext.getResources().getBoolean(R.bool.enable_pbap_pce_profile); // MAP Client is typically used in the same situations as PBAP Client mUseMapClient = mContext.getResources().getBoolean(R.bool.enable_pbap_pce_profile); // pass this reference to adapter and event manager (circular dependency) - mLocalAdapter.setProfileManager(this); + adapter.setProfileManager(this); updateLocalProfiles(); if (DEBUG) Log.d(TAG, "LocalBluetoothProfileManager construction complete"); @@ -128,26 +127,26 @@ public class LocalBluetoothProfileManager { * create profile instance according to bluetooth supported profile list */ void updateLocalProfiles() { - List<Integer> supportedList = mLocalAdapter.getSupportedProfiles(); + List<Integer> supportedList = BluetoothAdapter.getDefaultAdapter().getSupportedProfiles(); if (CollectionUtils.isEmpty(supportedList)) { if(DEBUG) Log.d(TAG, "supportedList is null"); return; } if (mA2dpProfile == null && supportedList.contains(BluetoothProfile.A2DP)) { if(DEBUG) Log.d(TAG, "Adding local A2DP profile"); - mA2dpProfile = new A2dpProfile(mContext, mLocalAdapter, mDeviceManager, this); + mA2dpProfile = new A2dpProfile(mContext, mDeviceManager, this); addProfile(mA2dpProfile, A2dpProfile.NAME, BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED); } if (mA2dpSinkProfile == null && supportedList.contains(BluetoothProfile.A2DP_SINK)) { if(DEBUG) Log.d(TAG, "Adding local A2DP SINK profile"); - mA2dpSinkProfile = new A2dpSinkProfile(mContext, mLocalAdapter, mDeviceManager, this); + mA2dpSinkProfile = new A2dpSinkProfile(mContext, mDeviceManager, this); addProfile(mA2dpSinkProfile, A2dpSinkProfile.NAME, BluetoothA2dpSink.ACTION_CONNECTION_STATE_CHANGED); } if (mHeadsetProfile == null && supportedList.contains(BluetoothProfile.HEADSET)) { if (DEBUG) Log.d(TAG, "Adding local HEADSET profile"); - mHeadsetProfile = new HeadsetProfile(mContext, mLocalAdapter, mDeviceManager, this); + mHeadsetProfile = new HeadsetProfile(mContext, mDeviceManager, this); addHeadsetProfile(mHeadsetProfile, HeadsetProfile.NAME, BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED, BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED, @@ -155,7 +154,7 @@ public class LocalBluetoothProfileManager { } if (mHfpClientProfile == null && supportedList.contains(BluetoothProfile.HEADSET_CLIENT)) { if(DEBUG) Log.d(TAG, "Adding local HfpClient profile"); - mHfpClientProfile = new HfpClientProfile(mContext, mLocalAdapter, mDeviceManager, this); + mHfpClientProfile = new HfpClientProfile(mContext, mDeviceManager, this); addHeadsetProfile(mHfpClientProfile, HfpClientProfile.NAME, BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED, BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED, @@ -165,13 +164,13 @@ public class LocalBluetoothProfileManager { if (mMapClientProfile == null && supportedList.contains(BluetoothProfile.MAP_CLIENT)) { if(DEBUG) Log.d(TAG, "Adding local MAP CLIENT profile"); mMapClientProfile = - new MapClientProfile(mContext, mLocalAdapter, mDeviceManager,this); + new MapClientProfile(mContext, mDeviceManager,this); addProfile(mMapClientProfile, MapClientProfile.NAME, BluetoothMapClient.ACTION_CONNECTION_STATE_CHANGED); } } else if (mMapProfile == null && supportedList.contains(BluetoothProfile.MAP)) { if(DEBUG) Log.d(TAG, "Adding local MAP profile"); - mMapProfile = new MapProfile(mContext, mLocalAdapter, mDeviceManager, this); + mMapProfile = new MapProfile(mContext, mDeviceManager, this); addProfile(mMapProfile, MapProfile.NAME, BluetoothMap.ACTION_CONNECTION_STATE_CHANGED); } if (mOppProfile == null && supportedList.contains(BluetoothProfile.OPP)) { @@ -182,26 +181,26 @@ public class LocalBluetoothProfileManager { } if (mHearingAidProfile == null && supportedList.contains(BluetoothProfile.HEARING_AID)) { if(DEBUG) Log.d(TAG, "Adding local Hearing Aid profile"); - mHearingAidProfile = new HearingAidProfile(mContext, mLocalAdapter, mDeviceManager, + mHearingAidProfile = new HearingAidProfile(mContext, mDeviceManager, this); addProfile(mHearingAidProfile, HearingAidProfile.NAME, BluetoothHearingAid.ACTION_CONNECTION_STATE_CHANGED); } if (mHidProfile == null && supportedList.contains(BluetoothProfile.HID_HOST)) { if(DEBUG) Log.d(TAG, "Adding local HID_HOST profile"); - mHidProfile = new HidProfile(mContext, mLocalAdapter, mDeviceManager, this); + mHidProfile = new HidProfile(mContext, mDeviceManager, this); addProfile(mHidProfile, HidProfile.NAME, BluetoothHidHost.ACTION_CONNECTION_STATE_CHANGED); } if (mHidDeviceProfile == null && supportedList.contains(BluetoothProfile.HID_DEVICE)) { if(DEBUG) Log.d(TAG, "Adding local HID_DEVICE profile"); - mHidDeviceProfile = new HidDeviceProfile(mContext, mLocalAdapter, mDeviceManager, this); + mHidDeviceProfile = new HidDeviceProfile(mContext, mDeviceManager, this); addProfile(mHidDeviceProfile, HidDeviceProfile.NAME, BluetoothHidDevice.ACTION_CONNECTION_STATE_CHANGED); } if (mPanProfile == null && supportedList.contains(BluetoothProfile.PAN)) { if(DEBUG) Log.d(TAG, "Adding local PAN profile"); - mPanProfile = new PanProfile(mContext, mLocalAdapter); + mPanProfile = new PanProfile(mContext); addPanProfile(mPanProfile, PanProfile.NAME, BluetoothPan.ACTION_CONNECTION_STATE_CHANGED); } @@ -214,8 +213,7 @@ public class LocalBluetoothProfileManager { if (mUsePbapPce && mPbapClientProfile == null && supportedList.contains( BluetoothProfile.PBAP_CLIENT)) { if(DEBUG) Log.d(TAG, "Adding local PBAP Client profile"); - mPbapClientProfile = new PbapClientProfile(mContext, mLocalAdapter, mDeviceManager, - this); + mPbapClientProfile = new PbapClientProfile(mContext, mDeviceManager,this); addProfile(mPbapClientProfile, PbapClientProfile.NAME, BluetoothPbapClient.ACTION_CONNECTION_STATE_CHANGED); } @@ -271,7 +269,7 @@ public class LocalBluetoothProfileManager { CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device); if (cachedDevice == null) { Log.w(TAG, "StateChangedHandler found new device: " + device); - cachedDevice = mDeviceManager.addDevice(mLocalAdapter, device); + cachedDevice = mDeviceManager.addDevice(device); } onReceiveInternal(intent, cachedDevice); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java index 63af24c30f4a..7d334eb31a19 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java @@ -41,7 +41,6 @@ public final class MapClientProfile implements LocalBluetoothProfile { private BluetoothMapClient mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; @@ -71,7 +70,7 @@ public final class MapClientProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "MapProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(MapClientProfile.this, BluetoothProfile.STATE_CONNECTED); @@ -99,14 +98,12 @@ public final class MapClientProfile implements LocalBluetoothProfile { return BluetoothProfile.MAP_CLIENT; } - MapClientProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + MapClientProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new MapClientServiceListener(), - BluetoothProfile.MAP_CLIENT); + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + new MapClientServiceListener(), BluetoothProfile.MAP_CLIENT); } public boolean isConnectable() { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java index 2c63d500b68f..689669faf60d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java @@ -41,7 +41,6 @@ public class MapProfile implements LocalBluetoothProfile { private BluetoothMap mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; @@ -70,7 +69,7 @@ public class MapProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "MapProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(MapProfile.this, BluetoothProfile.STATE_CONNECTED); @@ -98,13 +97,11 @@ public class MapProfile implements LocalBluetoothProfile { return BluetoothProfile.MAP; } - MapProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + MapProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new MapServiceListener(), + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new MapServiceListener(), BluetoothProfile.MAP); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java index e204d03cb327..02afe8db7201 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java @@ -38,7 +38,6 @@ public class PanProfile implements LocalBluetoothProfile { private BluetoothPan mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; // Tethering direction for each device private final HashMap<BluetoothDevice, Integer> mDeviceRoleMap = @@ -74,9 +73,8 @@ public class PanProfile implements LocalBluetoothProfile { return BluetoothProfile.PAN; } - PanProfile(Context context, LocalBluetoothAdapter adapter) { - mLocalAdapter = adapter; - mLocalAdapter.getProfileProxy(context, new PanServiceListener(), + PanProfile(Context context) { + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new PanServiceListener(), BluetoothProfile.PAN); } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java index d34ad30c2628..ad3506fc2611 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java @@ -39,7 +39,6 @@ public final class PbapClientProfile implements LocalBluetoothProfile { private BluetoothPbapClient mService; private boolean mIsProfileReady; - private final LocalBluetoothAdapter mLocalAdapter; private final CachedBluetoothDeviceManager mDeviceManager; static final ParcelUuid[] SRC_UUIDS = { @@ -69,7 +68,7 @@ public final class PbapClientProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "PbapClientProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(PbapClientProfile.this, BluetoothProfile.STATE_CONNECTED); device.refresh(); @@ -105,14 +104,12 @@ public final class PbapClientProfile implements LocalBluetoothProfile { return BluetoothProfile.PBAP_CLIENT; } - PbapClientProfile(Context context, LocalBluetoothAdapter adapter, - CachedBluetoothDeviceManager deviceManager, + PbapClientProfile(Context context, CachedBluetoothDeviceManager deviceManager, LocalBluetoothProfileManager profileManager) { - mLocalAdapter = adapter; mDeviceManager = deviceManager; mProfileManager = profileManager; - mLocalAdapter.getProfileProxy(context, new PbapClientServiceListener(), - BluetoothProfile.PBAP_CLIENT); + BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + new PbapClientServiceListener(), BluetoothProfile.PBAP_CLIENT); } public boolean isConnectable() { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java index f1d73ed26390..f0e259e86456 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java @@ -69,7 +69,7 @@ final class SapProfile implements LocalBluetoothProfile { // we may add a new device here, but generally this should not happen if (device == null) { Log.w(TAG, "SapProfile found new device: " + nextDevice); - device = mDeviceManager.addDevice(mLocalAdapter, nextDevice); + device = mDeviceManager.addDevice(nextDevice); } device.onProfileStateChanged(SapProfile.this, BluetoothProfile.STATE_CONNECTED); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java index b2ab45ce9dc5..29831a89027a 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java @@ -19,11 +19,11 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.bluetooth.BluetoothA2dp; +import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothCodecConfig; import android.bluetooth.BluetoothCodecStatus; import android.bluetooth.BluetoothDevice; @@ -33,21 +33,23 @@ import android.content.res.Resources; import com.android.settingslib.R; import com.android.settingslib.SettingsLibRobolectricTestRunner; +import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; +import org.robolectric.shadow.api.Shadow; @RunWith(SettingsLibRobolectricTestRunner.class) +@Config(shadows = {ShadowBluetoothAdapter.class}) public class A2dpProfileTest { @Mock Context mContext; @Mock - LocalBluetoothAdapter mAdapter; - @Mock CachedBluetoothDeviceManager mDeviceManager; @Mock LocalBluetoothProfileManager mProfileManager; @@ -58,20 +60,14 @@ public class A2dpProfileTest { BluetoothProfile.ServiceListener mServiceListener; A2dpProfile mProfile; + private ShadowBluetoothAdapter mShadowBluetoothAdapter; @Before public void setUp() { MockitoAnnotations.initMocks(this); - - // Capture the A2dpServiceListener our A2dpProfile will pass during its constructor, so that - // we can call its onServiceConnected method and get it to use our mock BluetoothA2dp - // object. - doAnswer((invocation) -> { - mServiceListener = (BluetoothProfile.ServiceListener) invocation.getArguments()[1]; - return null; - }).when(mAdapter).getProfileProxy(any(Context.class), any(), eq(BluetoothProfile.A2DP)); - - mProfile = new A2dpProfile(mContext, mAdapter, mDeviceManager, mProfileManager); + mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter()); + mProfile = new A2dpProfile(mContext, mDeviceManager, mProfileManager); + mServiceListener = mShadowBluetoothAdapter.getServiceListener(); mServiceListener.onServiceConnected(BluetoothProfile.A2DP, mBluetoothA2dp); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java index b33e9c3dd482..2d34f237a555 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java @@ -21,7 +21,6 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; @@ -59,8 +58,6 @@ public class CachedBluetoothDeviceManagerTest { private final BluetoothClass DEVICE_CLASS_2 = new BluetoothClass(BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE); @Mock - private LocalBluetoothAdapter mLocalAdapter; - @Mock private LocalBluetoothProfileManager mLocalProfileManager; @Mock private LocalBluetoothManager mLocalBluetoothManager; @@ -110,18 +107,17 @@ public class CachedBluetoothDeviceManagerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalProfileManager); - when(mLocalAdapter.getBluetoothState()).thenReturn(BluetoothAdapter.STATE_ON); when(mHfpProfile.isProfileReady()).thenReturn(true); when(mA2dpProfile.isProfileReady()).thenReturn(true); when(mPanProfile.isProfileReady()).thenReturn(true); when(mHearingAidProfile.isProfileReady()).thenReturn(true); mCachedDeviceManager = new CachedBluetoothDeviceManager(mContext, mLocalBluetoothManager); mCachedDevice1 = spy( - new CachedBluetoothDevice(mContext, mLocalAdapter, mLocalProfileManager, mDevice1)); + new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice1)); mCachedDevice2 = spy( - new CachedBluetoothDevice(mContext, mLocalAdapter, mLocalProfileManager, mDevice2)); + new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice2)); mCachedDevice3 = spy( - new CachedBluetoothDevice(mContext, mLocalAdapter, mLocalProfileManager, mDevice3)); + new CachedBluetoothDevice(mContext, mLocalProfileManager, mDevice3)); } /** @@ -129,11 +125,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testAddDevice_validCachedDevices_devicesAdded() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); Collection<CachedBluetoothDevice> devices = mCachedDeviceManager.getCachedDevicesCopy(); @@ -149,8 +143,7 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testGetName_validCachedDevice_nameFound() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); assertThat(mCachedDeviceManager.getName(mDevice1)).isEqualTo(DEVICE_ALIAS_1); } @@ -160,8 +153,7 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnDeviceNameUpdated_validName_nameUpdated() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); assertThat(cachedDevice1.getName()).isEqualTo(DEVICE_ALIAS_1); @@ -176,11 +168,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testClearNonBondedDevices_bondedAndNonBondedDevices_nonBondedDevicesCleared() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); @@ -231,11 +221,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnHiSyncIdChanged_sameHiSyncId_populateInDifferentLists() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); // Since both devices do not have hiSyncId, they should be added in mCachedDevices. @@ -266,11 +254,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnHiSyncIdChanged_sameHiSyncIdAndOneConnected_chooseConnectedDevice() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); cachedDevice1.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); cachedDevice2.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); @@ -303,11 +289,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnHiSyncIdChanged_differentHiSyncId_populateInSameList() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); // Since both devices do not have hiSyncId, they should be added in mCachedDevices. @@ -339,8 +323,7 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnProfileConnectionStateChanged_singleDeviceConnected_visible() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); cachedDevice1.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); @@ -377,11 +360,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnProfileConnectionStateChanged_twoDevicesConnected_oneDeviceVisible() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); cachedDevice1.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); cachedDevice2.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); @@ -431,11 +412,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnProfileConnectionStateChanged_twoDevicesDisconnected_oneDeviceVisible() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); cachedDevice1.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); cachedDevice2.onProfileStateChanged(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED); @@ -486,11 +465,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnDeviceUnpaired_bothHearingAidsPaired_removesItsPairFromList() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); cachedDevice1.setHiSyncId(HISYNCID1); @@ -518,14 +495,11 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnDeviceUnpaired_bothHearingAidsNotPaired_doesNotRemoveAnyDeviceFromList() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); - CachedBluetoothDevice cachedDevice3 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice3); + CachedBluetoothDevice cachedDevice3 = mCachedDeviceManager.addDevice(mDevice3); assertThat(cachedDevice2).isNotNull(); cachedDevice1.setHiSyncId(HISYNCID1); @@ -570,8 +544,7 @@ public class CachedBluetoothDeviceManagerTest { doAnswer((invocation) -> HISYNCID1).when(mHearingAidProfile).getHiSyncId(mDevice1); doAnswer((invocation) -> HISYNCID1).when(mHearingAidProfile).getHiSyncId(mDevice2); - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); // The first hearing aid device should be populated in mCachedDevice and // mCachedDevicesMapForHearingAids. @@ -581,8 +554,7 @@ public class CachedBluetoothDeviceManagerTest { assertThat(mCachedDeviceManager.mCachedDevicesMapForHearingAids.values()) .contains(cachedDevice1); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); // The second hearing aid device should be populated in mHearingAidDevicesNotAddedInCache. assertThat(mCachedDeviceManager.getCachedDevicesCopy()).hasSize(1); @@ -599,8 +571,7 @@ public class CachedBluetoothDeviceManagerTest { .getHearingAidProfile(); doAnswer((invocation) -> HISYNCID1).when(mHearingAidProfile).getHiSyncId(mDevice1); doAnswer((invocation) -> HISYNCID2).when(mHearingAidProfile).getHiSyncId(mDevice2); - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); // The first hearing aid device should be populated in mCachedDevice and // mCachedDevicesMapForHearingAids. @@ -610,8 +581,7 @@ public class CachedBluetoothDeviceManagerTest { assertThat(mCachedDeviceManager.mCachedDevicesMapForHearingAids.values()) .contains(cachedDevice1); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); // The second hearing aid device should also be populated in mCachedDevice // and mCachedDevicesMapForHearingAids as its not a pair of the first one. @@ -680,8 +650,7 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnBtClassChanged_validBtClass_classChanged() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); assertThat(cachedDevice1.getBtClass()).isEqualTo(DEVICE_CLASS_1); @@ -696,8 +665,7 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnDeviceDisappeared_deviceBondedUnbonded_unbondedDeviceDisappeared() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); @@ -712,11 +680,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnActiveDeviceChanged_connectedDevices_activeDeviceChanged() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); @@ -777,11 +743,9 @@ public class CachedBluetoothDeviceManagerTest { */ @Test public void testOnActiveDeviceChanged_withA2dpAndHearingAid() { - CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice1); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mLocalAdapter, - mDevice2); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java index c39fb85428fa..034574faf6db 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java @@ -26,7 +26,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; -import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; @@ -49,8 +48,6 @@ public class CachedBluetoothDeviceTest { private final static String DEVICE_ADDRESS = "AA:BB:CC:DD:EE:FF"; private final static String DEVICE_ALIAS_NEW = "TestAliasNew"; @Mock - private LocalBluetoothAdapter mAdapter; - @Mock private LocalBluetoothProfileManager mProfileManager; @Mock private HeadsetProfile mHfpProfile; @@ -73,13 +70,11 @@ public class CachedBluetoothDeviceTest { mContext = RuntimeEnvironment.application; mShadowAudioManager = shadowOf(mContext.getSystemService(AudioManager.class)); when(mDevice.getAddress()).thenReturn(DEVICE_ADDRESS); - when(mAdapter.getBluetoothState()).thenReturn(BluetoothAdapter.STATE_ON); when(mHfpProfile.isProfileReady()).thenReturn(true); when(mA2dpProfile.isProfileReady()).thenReturn(true); when(mPanProfile.isProfileReady()).thenReturn(true); when(mHearingAidProfile.isProfileReady()).thenReturn(true); - mCachedDevice = spy( - new CachedBluetoothDevice(mContext, mAdapter, mProfileManager, mDevice)); + mCachedDevice = spy(new CachedBluetoothDevice(mContext, mProfileManager, mDevice)); doAnswer((invocation) -> mBatteryLevel).when(mCachedDevice).getBatteryLevel(); } @@ -477,7 +472,7 @@ public class CachedBluetoothDeviceTest { when(mDevice.getAliasName()).thenReturn(DEVICE_ALIAS); when(mDevice.getName()).thenReturn(DEVICE_NAME); CachedBluetoothDevice cachedBluetoothDevice = - new CachedBluetoothDevice(mContext, mAdapter, mProfileManager, mDevice); + new CachedBluetoothDevice(mContext, mProfileManager, mDevice); // Verify alias is returned on getName assertThat(cachedBluetoothDevice.getName()).isEqualTo(DEVICE_ALIAS); // Verify device is visible @@ -487,7 +482,7 @@ public class CachedBluetoothDeviceTest { @Test public void testDeviceName_testNameNotAvailable() { CachedBluetoothDevice cachedBluetoothDevice = - new CachedBluetoothDevice(mContext, mAdapter, mProfileManager, mDevice); + new CachedBluetoothDevice(mContext, mProfileManager, mDevice); // Verify device address is returned on getName assertThat(cachedBluetoothDevice.getName()).isEqualTo(DEVICE_ADDRESS); // Verify device is not visible @@ -504,7 +499,7 @@ public class CachedBluetoothDeviceTest { }).when(mDevice).setAlias(anyString()); when(mDevice.getName()).thenReturn(DEVICE_NAME); CachedBluetoothDevice cachedBluetoothDevice = - new CachedBluetoothDevice(mContext, mAdapter, mProfileManager, mDevice); + new CachedBluetoothDevice(mContext, mProfileManager, mDevice); // Verify alias is returned on getName assertThat(cachedBluetoothDevice.getName()).isEqualTo(DEVICE_ALIAS); // Verify null name does not get set diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java index bc8be4d5c3dd..c0a1f0cda3ee 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java @@ -2,18 +2,17 @@ package com.android.settingslib.bluetooth; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; +import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothHeadset; import android.bluetooth.BluetoothProfile; import android.content.Context; import com.android.settingslib.SettingsLibRobolectricTestRunner; +import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter; import org.junit.Before; import org.junit.Test; @@ -21,13 +20,14 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; +import org.robolectric.shadow.api.Shadow; @RunWith(SettingsLibRobolectricTestRunner.class) +@Config(shadows = {ShadowBluetoothAdapter.class}) public class HeadsetProfileTest { @Mock - private LocalBluetoothAdapter mAdapter; - @Mock private CachedBluetoothDeviceManager mDeviceManager; @Mock private LocalBluetoothProfileManager mProfileManager; @@ -39,19 +39,18 @@ public class HeadsetProfileTest { private BluetoothDevice mBluetoothDevice; private BluetoothProfile.ServiceListener mServiceListener; private HeadsetProfile mProfile; + private ShadowBluetoothAdapter mShadowBluetoothAdapter; @Before public void setUp() { MockitoAnnotations.initMocks(this); Context context = spy(RuntimeEnvironment.application); + mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter()); - doAnswer((invocation) -> { - mServiceListener = (BluetoothProfile.ServiceListener) invocation.getArguments()[1]; - return null; - }).when(mAdapter).getProfileProxy(any(Context.class), any(), eq(BluetoothProfile.HEADSET)); when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice); - mProfile = new HeadsetProfile(context, mAdapter, mDeviceManager, mProfileManager); + mProfile = new HeadsetProfile(context, mDeviceManager, mProfileManager); + mServiceListener = mShadowBluetoothAdapter.getServiceListener(); mServiceListener.onServiceConnected(BluetoothProfile.HEADSET, mService); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java index af66f7a62146..f223176795b8 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java @@ -38,6 +38,7 @@ import android.content.Intent; import android.os.ParcelUuid; import com.android.settingslib.SettingsLibRobolectricTestRunner; +import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter; import org.junit.Before; import org.junit.Test; @@ -45,34 +46,38 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; +import org.robolectric.shadow.api.Shadow; import java.util.ArrayList; import java.util.List; @RunWith(SettingsLibRobolectricTestRunner.class) +@Config(shadows = {ShadowBluetoothAdapter.class}) public class LocalBluetoothProfileManagerTest { @Mock private CachedBluetoothDeviceManager mDeviceManager; @Mock private BluetoothEventManager mEventManager; @Mock - private LocalBluetoothAdapter mAdapter; - @Mock private BluetoothDevice mDevice; @Mock private CachedBluetoothDevice mCachedBluetoothDevice; private Context mContext; - private LocalBluetoothProfileManager mProfileManager; private Intent mIntent; + private LocalBluetoothAdapter mLocalBluetoothAdapter; + private LocalBluetoothProfileManager mProfileManager; + private ShadowBluetoothAdapter mShadowBluetoothAdapter; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); - mEventManager = spy(new BluetoothEventManager(mAdapter, - mDeviceManager, mContext)); - when(mAdapter.getBluetoothState()).thenReturn(BluetoothAdapter.STATE_ON); + mLocalBluetoothAdapter = LocalBluetoothAdapter.getInstance(); + mEventManager = spy(new BluetoothEventManager(mLocalBluetoothAdapter, mDeviceManager, + mContext)); + mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter()); when(mDeviceManager.findDevice(mDevice)).thenReturn(mCachedBluetoothDevice); } @@ -81,12 +86,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void constructor_initiateHidAndHidDeviceProfile() { - when(mAdapter.getSupportedProfiles()).thenReturn( - generateList(new int[] {BluetoothProfile.HID_HOST})); - when(mAdapter.getSupportedProfiles()).thenReturn( - generateList(new int[] {BluetoothProfile.HID_HOST, BluetoothProfile.HID_DEVICE})); - mProfileManager = - new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, mEventManager); + mShadowBluetoothAdapter.setSupportedProfiles(generateList( + new int[] {BluetoothProfile.HID_HOST, BluetoothProfile.HID_DEVICE})); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); assertThat(mProfileManager.getHidProfile()).isNotNull(); assertThat(mProfileManager.getHidDeviceProfile()).isNotNull(); @@ -97,12 +100,12 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void updateLocalProfiles_addA2dpToLocalProfiles() { - mProfileManager = - new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, mEventManager); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); assertThat(mProfileManager.getA2dpProfile()).isNull(); assertThat(mProfileManager.getHeadsetProfile()).isNull(); - when(mAdapter.getSupportedProfiles()).thenReturn(generateList( + mShadowBluetoothAdapter.setSupportedProfiles(generateList( new int[] {BluetoothProfile.A2DP})); mProfileManager.updateLocalProfiles(); @@ -115,10 +118,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void updateProfiles_addHidProfileForRemoteDevice() { - when(mAdapter.getSupportedProfiles()).thenReturn(generateList( + mShadowBluetoothAdapter.setSupportedProfiles(generateList( new int[] {BluetoothProfile.HID_HOST})); - mProfileManager = - new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, mEventManager); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); ParcelUuid[] uuids = new ParcelUuid[]{BluetoothUuid.Hid}; ParcelUuid[] localUuids = new ParcelUuid[]{}; List<LocalBluetoothProfile> profiles = new ArrayList<>(); @@ -138,10 +141,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void stateChangedHandler_receiveA2dpConnectionStateChanged_shouldDispatchCallback() { - when(mAdapter.getSupportedProfiles()).thenReturn(generateList( + mShadowBluetoothAdapter.setSupportedProfiles(generateList( new int[] {BluetoothProfile.A2DP})); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); @@ -162,10 +165,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void stateChangedHandler_receiveHeadsetConnectionStateChanged_shouldDispatchCallback() { - when(mAdapter.getSupportedProfiles()).thenReturn(generateList( + mShadowBluetoothAdapter.setSupportedProfiles(generateList( new int[] {BluetoothProfile.HEADSET})); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); @@ -186,12 +189,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void stateChangedHandler_receiveHAPConnectionStateChanged_shouldDispatchCallback() { - ArrayList<Integer> supportProfiles = new ArrayList<>(); - supportProfiles.add(BluetoothProfile.HEARING_AID); - when(mAdapter.getSupportedProfiles()).thenReturn(supportProfiles); - when(mAdapter.getUuids()).thenReturn(new ParcelUuid[]{BluetoothUuid.HearingAid}); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mShadowBluetoothAdapter.setSupportedProfiles(generateList( + new int[] {BluetoothProfile.HEARING_AID})); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); @@ -212,10 +213,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void stateChangedHandler_receivePanConnectionStateChanged_shouldNotDispatchCallback() { - when(mAdapter.getSupportedProfiles()).thenReturn( - generateList(new int[] {BluetoothProfile.PAN})); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mShadowBluetoothAdapter.setSupportedProfiles(generateList( + new int[] {BluetoothProfile.PAN})); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); @@ -237,9 +238,9 @@ public class LocalBluetoothProfileManagerTest { @Test public void stateChangedHandler_receivePanConnectionStateChangedWithoutProfile_shouldNotRefresh () { - when(mAdapter.getSupportedProfiles()).thenReturn(null); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mShadowBluetoothAdapter.setSupportedProfiles(null); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); @@ -259,10 +260,10 @@ public class LocalBluetoothProfileManagerTest { */ @Test public void stateChangedHandler_receivePanConnectionStateChangedWithProfile_shouldRefresh() { - when(mAdapter.getSupportedProfiles()).thenReturn(generateList( + mShadowBluetoothAdapter.setSupportedProfiles(generateList( new int[] {BluetoothProfile.PAN})); - mProfileManager = new LocalBluetoothProfileManager(mContext, mAdapter, mDeviceManager, - mEventManager); + mProfileManager = new LocalBluetoothProfileManager(mContext, mLocalBluetoothAdapter, + mDeviceManager, mEventManager); // Refer to BluetoothControllerImpl, it will call setReceiverHandler after // LocalBluetoothProfileManager created. mEventManager.setReceiverHandler(null); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java new file mode 100644 index 000000000000..9b8c230dded4 --- /dev/null +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowBluetoothAdapter.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2018 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.settingslib.testutils.shadow; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothProfile; +import android.content.Context; + +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; + +import java.util.List; + +@Implements(value = BluetoothAdapter.class, inheritImplementationMethods = true) +public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter { + + private List<Integer> mSupportedProfiles; + private BluetoothProfile.ServiceListener mServiceListener; + + @Implementation + public boolean getProfileProxy(Context context, BluetoothProfile.ServiceListener listener, + int profile) { + mServiceListener = listener; + return true; + } + + public BluetoothProfile.ServiceListener getServiceListener() { + return mServiceListener; + } + + @Implementation + public List<Integer> getSupportedProfiles() { + return mSupportedProfiles; + } + + public void setSupportedProfiles(List<Integer> supportedProfiles) { + mSupportedProfiles = supportedProfiles; + } +} diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java index 9603562c0d4a..7479152f5da0 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java @@ -16,6 +16,8 @@ package com.android.keyguard; +import static android.app.slice.Slice.HINT_LIST_ITEM; + import android.animation.LayoutTransition; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; @@ -64,6 +66,7 @@ import androidx.slice.SliceViewManager; import androidx.slice.core.SliceQuery; import androidx.slice.widget.ListContent; import androidx.slice.widget.RowContent; +import androidx.slice.widget.SliceContent; import androidx.slice.widget.SliceLiveData; /** @@ -159,12 +162,13 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe return; } - ListContent lc = new ListContent(getContext(), mSlice, null, 0, 0); - mHasHeader = lc.hasHeader(); - List<SliceItem> subItems = new ArrayList<SliceItem>(); + ListContent lc = new ListContent(getContext(), mSlice); + SliceContent headerContent = lc.getHeader(); + mHasHeader = headerContent != null && !headerContent.getSliceItem().hasHint(HINT_LIST_ITEM); + List<SliceContent> subItems = new ArrayList<SliceContent>(); for (int i = 0; i < lc.getRowItems().size(); i++) { - SliceItem subItem = lc.getRowItems().get(i); - String itemUri = subItem.getSlice().getUri().toString(); + SliceContent subItem = lc.getRowItems().get(i); + String itemUri = subItem.getSliceItem().getSlice().getUri().toString(); // Filter out the action row if (!KeyguardSliceProvider.KEYGUARD_ACTION_URI.equals(itemUri)) { subItems.add(subItem); @@ -175,9 +179,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe } else { mTitle.setVisibility(VISIBLE); - // If there's a header it'll be the first subitem - RowContent header = new RowContent(getContext(), subItems.get(0), - true /* showStartItem */); + RowContent header = lc.getHeader(); SliceItem mainTitle = header.getTitleItem(); CharSequence title = mainTitle != null ? mainTitle.getText() : null; mTitle.setText(title); @@ -189,8 +191,8 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe final int startIndex = mHasHeader ? 1 : 0; // First item is header; skip it mRow.setVisibility(subItemsCount > 0 ? VISIBLE : GONE); for (int i = startIndex; i < subItemsCount; i++) { - SliceItem item = subItems.get(i); - RowContent rc = new RowContent(getContext(), item, true /* showStartItem */); + RowContent rc = (RowContent) subItems.get(i); + SliceItem item = rc.getSliceItem(); final Uri itemTag = item.getSlice().getUri(); // Try to reuse the view if already exists in the layout KeyguardSliceButton button = mRow.findViewWithTag(itemTag); diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java index 520e40aa1e56..9bbcfbcd07dd 100644 --- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java @@ -43,9 +43,12 @@ import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Region; import android.hardware.display.DisplayManager; +import android.os.Handler; +import android.os.HandlerThread; import android.os.SystemProperties; import android.provider.Settings.Secure; import android.util.DisplayMetrics; +import android.util.Log; import android.view.DisplayCutout; import android.view.DisplayInfo; import android.view.Gravity; @@ -60,6 +63,7 @@ import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ImageView; +import com.android.internal.util.Preconditions; import com.android.systemui.RegionInterceptingFrameLayout.RegionInterceptableView; import com.android.systemui.fragments.FragmentHostManager; import com.android.systemui.fragments.FragmentHostManager.FragmentListener; @@ -79,6 +83,9 @@ import androidx.annotation.VisibleForTesting; * for antialiasing and emulation purposes. */ public class ScreenDecorations extends SystemUI implements Tunable { + private static final boolean DEBUG = false; + private static final String TAG = "ScreenDecorations"; + public static final String SIZE = "sysui_rounded_size"; public static final String PADDING = "sysui_rounded_content_padding"; private static final boolean DEBUG_SCREENSHOT_ROUNDED_CORNERS = @@ -99,9 +106,24 @@ public class ScreenDecorations extends SystemUI implements Tunable { private DisplayCutoutView mCutoutBottom; private SecureSetting mColorInversionSetting; private boolean mPendingRotationChange; + private Handler mHandler; @Override public void start() { + mHandler = startHandlerThread(); + mHandler.post(this::startOnScreenDecorationsThread); + setupStatusBarPaddingIfNeeded(); + } + + @VisibleForTesting + Handler startHandlerThread() { + HandlerThread thread = new HandlerThread("ScreenDecorations"); + thread.start(); + return thread.getThreadHandler(); + } + + private void startOnScreenDecorationsThread() { + mRotation = RotationUtils.getExactRotation(mContext); mWindowManager = mContext.getSystemService(WindowManager.class); mRoundedDefault = mContext.getResources().getDimensionPixelSize( R.dimen.rounded_corner_radius); @@ -113,12 +135,6 @@ public class ScreenDecorations extends SystemUI implements Tunable { setupDecorations(); } - int padding = mContext.getResources().getDimensionPixelSize( - R.dimen.rounded_corner_content_padding); - if (padding != 0) { - setupPadding(padding); - } - mDisplayListener = new DisplayManager.DisplayListener() { @Override public void onDisplayAdded(int displayId) { @@ -132,8 +148,8 @@ public class ScreenDecorations extends SystemUI implements Tunable { @Override public void onDisplayChanged(int displayId) { - if ((hasRoundedCorners() || shouldDrawCutout()) && - mRotation != RotationUtils.getExactRotation(mContext)) { + final int newRotation = RotationUtils.getExactRotation(mContext); + if (mOverlay != null && mBottomOverlay != null && mRotation != newRotation) { // We cannot immediately update the orientation. Otherwise // WindowManager is still deferring layout until it has finished dispatching // the config changes, which may cause divergence between what we draw @@ -142,19 +158,24 @@ public class ScreenDecorations extends SystemUI implements Tunable { // - we are trying to redraw. This because WM resized our window and told us to. // - the config change has been dispatched, so WM is no longer deferring layout. mPendingRotationChange = true; + if (DEBUG) { + Log.i(TAG, "Rotation changed, deferring " + newRotation + ", staying at " + + mRotation); + } + mOverlay.getViewTreeObserver().addOnPreDrawListener( - new RestartingPreDrawListener(mOverlay)); + new RestartingPreDrawListener(mOverlay, newRotation)); mBottomOverlay.getViewTreeObserver().addOnPreDrawListener( - new RestartingPreDrawListener(mBottomOverlay)); + new RestartingPreDrawListener(mBottomOverlay, newRotation)); } updateOrientation(); } }; - mRotation = -1; mDisplayManager = (DisplayManager) mContext.getSystemService( Context.DISPLAY_SERVICE); - mDisplayManager.registerDisplayListener(mDisplayListener, null); + mDisplayManager.registerDisplayListener(mDisplayListener, mHandler); + updateOrientation(); } private void setupDecorations() { @@ -184,10 +205,11 @@ public class ScreenDecorations extends SystemUI implements Tunable { mWindowManager.getDefaultDisplay().getMetrics(metrics); mDensity = metrics.density; - Dependency.get(TunerService.class).addTunable(this, SIZE); + Dependency.get(Dependency.MAIN_HANDLER).post( + () -> Dependency.get(TunerService.class).addTunable(this, SIZE)); // Watch color inversion and invert the overlay as needed. - mColorInversionSetting = new SecureSetting(mContext, Dependency.get(Dependency.MAIN_HANDLER), + mColorInversionSetting = new SecureSetting(mContext, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) { @Override protected void handleValueChanged(int value, boolean observedChange) { @@ -199,7 +221,7 @@ public class ScreenDecorations extends SystemUI implements Tunable { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_USER_SWITCHED); - mContext.registerReceiver(mIntentReceiver, filter); + mContext.registerReceiver(mIntentReceiver, filter, null /* permission */, mHandler); mOverlay.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override @@ -217,6 +239,11 @@ public class ScreenDecorations extends SystemUI implements Tunable { .start(); } }); + + mOverlay.getViewTreeObserver().addOnPreDrawListener( + new ValidatingPreDrawListener(mOverlay)); + mBottomOverlay.getViewTreeObserver().addOnPreDrawListener( + new ValidatingPreDrawListener(mBottomOverlay)); } private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @@ -246,14 +273,28 @@ public class ScreenDecorations extends SystemUI implements Tunable { @Override protected void onConfigurationChanged(Configuration newConfig) { - mPendingRotationChange = false; - updateOrientation(); - if (shouldDrawCutout() && mOverlay == null) { - setupDecorations(); - } + mHandler.post(() -> { + int oldRotation = mRotation; + mPendingRotationChange = false; + updateOrientation(); + if (DEBUG) Log.i(TAG, "onConfigChanged from rot " + oldRotation + " to " + mRotation); + if (shouldDrawCutout() && mOverlay == null) { + setupDecorations(); + } + if (mOverlay != null) { + // Updating the layout params ensures that ViewRootImpl will call relayoutWindow(), + // which ensures that the forced seamless rotation will end, even if we updated + // the rotation before window manager was ready (and was still waiting for sending + // the updated rotation). + updateLayoutParams(); + } + }); } - protected void updateOrientation() { + private void updateOrientation() { + Preconditions.checkState(mHandler.getLooper().getThread() == Thread.currentThread(), + "must call on " + mHandler.getLooper().getThread() + + ", but was " + Thread.currentThread()); if (mPendingRotationChange) { return; } @@ -333,7 +374,19 @@ public class ScreenDecorations extends SystemUI implements Tunable { com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout); } - private void setupPadding(int padding) { + + private void setupStatusBarPaddingIfNeeded() { + // TODO: This should be moved to a more appropriate place, as it is not related to the + // screen decorations overlay. + int padding = mContext.getResources().getDimensionPixelSize( + R.dimen.rounded_corner_content_padding); + if (padding != 0) { + setupStatusBarPadding(padding); + } + + } + + private void setupStatusBarPadding(int padding) { // Add some padding to all the content near the edge of the screen. StatusBar sb = getComponent(StatusBar.class); View statusBar = (sb != null ? sb.getStatusBarWindow() : null); @@ -402,30 +455,32 @@ public class ScreenDecorations extends SystemUI implements Tunable { @Override public void onTuningChanged(String key, String newValue) { - if (mOverlay == null) return; - if (SIZE.equals(key)) { - int size = mRoundedDefault; - int sizeTop = mRoundedDefaultTop; - int sizeBottom = mRoundedDefaultBottom; - if (newValue != null) { - try { - size = (int) (Integer.parseInt(newValue) * mDensity); - } catch (Exception e) { + mHandler.post(() -> { + if (mOverlay == null) return; + if (SIZE.equals(key)) { + int size = mRoundedDefault; + int sizeTop = mRoundedDefaultTop; + int sizeBottom = mRoundedDefaultBottom; + if (newValue != null) { + try { + size = (int) (Integer.parseInt(newValue) * mDensity); + } catch (Exception e) { + } } - } - if (sizeTop == 0) { - sizeTop = size; - } - if (sizeBottom == 0) { - sizeBottom = size; - } + if (sizeTop == 0) { + sizeTop = size; + } + if (sizeBottom == 0) { + sizeBottom = size; + } - setSize(mOverlay.findViewById(R.id.left), sizeTop); - setSize(mOverlay.findViewById(R.id.right), sizeTop); - setSize(mBottomOverlay.findViewById(R.id.left), sizeBottom); - setSize(mBottomOverlay.findViewById(R.id.right), sizeBottom); - } + setSize(mOverlay.findViewById(R.id.left), sizeTop); + setSize(mOverlay.findViewById(R.id.right), sizeTop); + setSize(mBottomOverlay.findViewById(R.id.left), sizeBottom); + setSize(mBottomOverlay.findViewById(R.id.right), sizeBottom); + } + }); } private void setSize(View view, int pixelSize) { @@ -484,6 +539,11 @@ public class ScreenDecorations extends SystemUI implements Tunable { mVisibilityChangedListener = visibilityChangedListener; mDecorations = decorations; setId(R.id.display_cutout); + if (DEBUG) { + getViewTreeObserver().addOnDrawListener(() -> Log.i(TAG, + (mInitialStart ? "OverlayTop" : "OverlayBottom") + + " drawn in rot " + mRotation)); + } } public void setColor(int color) { @@ -719,20 +779,66 @@ public class ScreenDecorations extends SystemUI implements Tunable { private class RestartingPreDrawListener implements ViewTreeObserver.OnPreDrawListener { private final View mView; + private final int mTargetRotation; - private RestartingPreDrawListener(View view) { + private RestartingPreDrawListener(View view, int targetRotation) { mView = view; + mTargetRotation = targetRotation; } @Override public boolean onPreDraw() { - mPendingRotationChange = false; mView.getViewTreeObserver().removeOnPreDrawListener(this); + + if (mTargetRotation == mRotation) { + if (DEBUG) { + Log.i(TAG, (mView == mOverlay ? "OverlayTop" : "OverlayBottom") + + " already in target rot " + + mTargetRotation + ", allow draw without restarting it"); + } + return true; + } + + mPendingRotationChange = false; // This changes the window attributes - we need to restart the traversal for them to // take effect. updateOrientation(); + if (DEBUG) { + Log.i(TAG, (mView == mOverlay ? "OverlayTop" : "OverlayBottom") + + " restarting listener fired, restarting draw for rot " + mRotation); + } mView.invalidate(); return false; } } + + /** + * A pre-draw listener, that validates that the rotation we draw in matches the displays + * rotation before continuing the draw. + * + * This is to prevent a race condition, where we have not received the display changed event + * yet, and would thus draw in an old orientation. + */ + private class ValidatingPreDrawListener implements ViewTreeObserver.OnPreDrawListener { + + private final View mView; + + public ValidatingPreDrawListener(View view) { + mView = view; + } + + @Override + public boolean onPreDraw() { + final int displayRotation = RotationUtils.getExactRotation(mContext); + if (displayRotation != mRotation && !mPendingRotationChange) { + if (DEBUG) { + Log.i(TAG, "Drawing rot " + mRotation + ", but display is at rot " + + displayRotation + ". Restarting draw"); + } + mView.invalidate(); + return false; + } + return true; + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/KeyboardUI.java b/packages/SystemUI/src/com/android/systemui/keyboard/KeyboardUI.java index a42191cce487..76a1accb56f7 100644 --- a/packages/SystemUI/src/com/android/systemui/keyboard/KeyboardUI.java +++ b/packages/SystemUI/src/com/android/systemui/keyboard/KeyboardUI.java @@ -318,7 +318,7 @@ public class KeyboardUI extends SystemUI implements InputManager.OnTabletModeCha private CachedBluetoothDevice getCachedBluetoothDevice(BluetoothDevice d) { CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(d); if (cachedDevice == null) { - cachedDevice = mCachedDeviceManager.addDevice(mLocalBluetoothAdapter, d); + cachedDevice = mCachedDeviceManager.addDevice(d); } return cachedDevice; } diff --git a/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java b/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java index 2a2bc0923e1b..dfd3f735dfaa 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java +++ b/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java @@ -72,6 +72,12 @@ public class AutoAddTracker { } } + public void setTileRemoved(String tile) { + if (mAutoAdded.remove(tile)) { + saveTiles(); + } + } + public void destroy() { mContext.getContentResolver().unregisterContentObserver(mObserver); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSHost.java index 84524a62adfa..84fa7004f363 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSHost.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSHost.java @@ -32,6 +32,7 @@ public interface QSHost { void removeCallback(Callback callback); TileServices getTileServices(); void removeTile(String tileSpec); + void unmarkTileAsAutoAdded(String tileSpec); int indexOf(String tileSpec); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java index bb69b7a17660..86e69e34fb9e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java @@ -231,6 +231,11 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory> { changeTileSpecs(tileSpecs-> tileSpecs.remove(spec)); } + @Override + public void unmarkTileAsAutoAdded(String spec) { + mAutoTiles.unmarkTileAsAutoAdded(spec); + } + public void addTile(String spec) { changeTileSpecs(tileSpecs-> tileSpecs.add(spec)); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java index f52319659b0b..50c8698db2c7 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java @@ -145,7 +145,9 @@ public class DndTile extends QSTileImpl<BooleanState> { int zenDuration = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ZEN_DURATION, 0); boolean showOnboarding = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0; + Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0 + && Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.ZEN_SETTINGS_UPDATED, 0) != 1; if (showOnboarding) { // don't show on-boarding again or notification ever Settings.Secure.putInt(mContext.getContentResolver(), diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java index 5bab3e8f39a4..3109deaf7239 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java @@ -78,6 +78,7 @@ public class WorkModeTile extends QSTileImpl<BooleanState> implements @Override public void onManagedProfileRemoved() { mHost.removeTile(getTileSpec()); + mHost.unmarkTileAsAutoAdded(getTileSpec()); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java index ef0be8807645..ab47d3366b84 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java @@ -280,6 +280,7 @@ public class NotificationGutsManager implements Dumpable { mCheckSaveListener, onSettingsClick, onAppSettingsClick, + mPresenter.isDeviceProvisioned(), row.getIsNonblockable(), isForBlockingHelper, row.getEntry().userSentiment == USER_SENTIMENT_NEGATIVE); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java index 3e380d1ea192..9e2331f69e30 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java @@ -81,6 +81,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G private StatusBarNotification mSbn; private AnimatorSet mExpandAnimation; private boolean mIsForeground; + private boolean mIsDeviceProvisioned; private CheckSaveListener mCheckSaveListener; private OnSettingsClickListener mOnSettingsClickListener; @@ -143,12 +144,13 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G final CheckSaveListener checkSaveListener, final OnSettingsClickListener onSettingsClick, final OnAppSettingsClickListener onAppSettingsClick, + boolean isDeviceProvisioned, boolean isNonblockable) throws RemoteException { bindNotification(pm, iNotificationManager, pkg, notificationChannel, numUniqueChannelsInRow, sbn, checkSaveListener, onSettingsClick, - onAppSettingsClick, isNonblockable, false /* isBlockingHelper */, - false /* isUserSentimentNegative */); + onAppSettingsClick, isDeviceProvisioned, isNonblockable, + false /* isBlockingHelper */, false /* isUserSentimentNegative */); } public void bindNotification( @@ -161,6 +163,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G CheckSaveListener checkSaveListener, OnSettingsClickListener onSettingsClick, OnAppSettingsClickListener onAppSettingsClick, + boolean isDeviceProvisioned, boolean isNonblockable, boolean isForBlockingHelper, boolean isUserSentimentNegative) @@ -183,6 +186,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G (mSbn.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0; mIsForBlockingHelper = isForBlockingHelper; mAppUid = mSbn.getUid(); + mIsDeviceProvisioned = isDeviceProvisioned; int numTotalChannels = mINotificationManager.getNumNotificationChannelsForPackage( pkg, mAppUid, false /* includeDeleted */); @@ -246,7 +250,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G // Settings button. final View settingsButton = findViewById(R.id.info); - if (mAppUid >= 0 && mOnSettingsClickListener != null) { + if (mAppUid >= 0 && mOnSettingsClickListener != null && mIsDeviceProvisioned) { settingsButton.setVisibility(View.VISIBLE); final int appUidF = mAppUid; settingsButton.setOnClickListener( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java index 446a1d4c3c7b..ab58660f6ed6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java @@ -96,6 +96,10 @@ public class AutoTileManager { Dependency.get(ColorDisplayController.class).setListener(null); } + public void unmarkTileAsAutoAdded(String tabSpec) { + mAutoTracker.setTileRemoved(tabSpec); + } + private final ManagedProfileController.Callback mProfileCallback = new ManagedProfileController.Callback() { @Override @@ -104,8 +108,6 @@ public class AutoTileManager { if (Dependency.get(ManagedProfileController.class).hasActiveProfile()) { mHost.addTile(WORK); mAutoTracker.setTileAdded(WORK); - mHandler.post(() -> Dependency.get(ManagedProfileController.class) - .removeCallback(mProfileCallback)); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java index f1bf31d7a58a..644c0b347bde 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java @@ -34,8 +34,10 @@ import static org.mockito.Mockito.when; import android.app.Fragment; import android.content.res.Configuration; +import android.os.Handler; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; +import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.view.Display; import android.view.View; @@ -60,6 +62,7 @@ import org.junit.runner.RunWith; @SmallTest public class ScreenDecorationsTest extends SysuiTestCase { + private TestableLooper mTestableLooper; private ScreenDecorations mScreenDecorations; private StatusBar mStatusBar; private WindowManager mWindowManager; @@ -71,6 +74,10 @@ public class ScreenDecorationsTest extends SysuiTestCase { @Before public void setup() { + mTestableLooper = TestableLooper.get(this); + mDependency.injectTestDependency(Dependency.MAIN_HANDLER, + new Handler(mTestableLooper.getLooper())); + mStatusBar = mock(StatusBar.class); mWindowManager = mock(WindowManager.class); mView = spy(new StatusBarWindowView(mContext, null)); @@ -88,7 +95,31 @@ public class ScreenDecorationsTest extends SysuiTestCase { mTunerService = mDependency.injectMockDependency(TunerService.class); - mScreenDecorations = new ScreenDecorations(); + + mScreenDecorations = new ScreenDecorations() { + @Override + public void start() { + super.start(); + mTestableLooper.processAllMessages(); + } + + @Override + Handler startHandlerThread() { + return new Handler(mTestableLooper.getLooper()); + } + + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + mTestableLooper.processAllMessages(); + } + + @Override + public void onTuningChanged(String key, String newValue) { + super.onTuningChanged(key, newValue); + mTestableLooper.processAllMessages(); + } + }; mScreenDecorations.mContext = mContext; mScreenDecorations.mComponents = mContext.getComponents(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java index e56ccef8316a..676cb617cc9f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java @@ -286,6 +286,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase { any(NotificationInfo.OnSettingsClickListener.class), any(NotificationInfo.OnAppSettingsClickListener.class), eq(false), + eq(false), eq(true) /* isForBlockingHelper */, eq(true) /* isUserSentimentNegative */); } @@ -312,6 +313,35 @@ public class NotificationGutsManagerTest extends SysuiTestCase { any(NotificationInfo.OnSettingsClickListener.class), any(NotificationInfo.OnAppSettingsClickListener.class), eq(false), + eq(false), + eq(false) /* isForBlockingHelper */, + eq(true) /* isUserSentimentNegative */); + } + + @Test + public void testInitializeNotificationInfoView_PassesAlongProvisionedState() throws Exception { + NotificationInfo notificationInfoView = mock(NotificationInfo.class); + ExpandableNotificationRow row = spy(mHelper.createRow()); + row.setBlockingHelperShowing(false); + row.getEntry().userSentiment = USER_SENTIMENT_NEGATIVE; + when(row.getIsNonblockable()).thenReturn(false); + StatusBarNotification statusBarNotification = row.getStatusBarNotification(); + when(mPresenter.isDeviceProvisioned()).thenReturn(true); + + mGutsManager.initializeNotificationInfo(row, notificationInfoView); + + verify(notificationInfoView).bindNotification( + any(PackageManager.class), + any(INotificationManager.class), + eq(statusBarNotification.getPackageName()), + any(NotificationChannel.class), + anyInt(), + eq(statusBarNotification), + any(NotificationInfo.CheckSaveListener.class), + any(NotificationInfo.OnSettingsClickListener.class), + any(NotificationInfo.OnAppSettingsClickListener.class), + eq(true), + eq(false), eq(false) /* isForBlockingHelper */, eq(true) /* isUserSentimentNegative */); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java index 5ce53cfc2c7f..c236fbe12391 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java @@ -167,7 +167,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testBindNotification_SetsTextApplicationName() throws Exception { when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name"); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final TextView textView = mNotificationInfo.findViewById(R.id.pkgname); assertTrue(textView.getText().toString().contains("App Name")); assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.header).getVisibility()); @@ -179,7 +179,7 @@ public class NotificationInfoTest extends SysuiTestCase { when(mMockPackageManager.getApplicationIcon(any(ApplicationInfo.class))) .thenReturn(iconDrawable); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final ImageView iconView = mNotificationInfo.findViewById(R.id.pkgicon); assertEquals(iconDrawable, iconView.getDrawable()); } @@ -187,7 +187,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_GroupNameHiddenIfNoGroup() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name); assertEquals(GONE, groupNameView.getVisibility()); final TextView groupDividerView = mNotificationInfo.findViewById(R.id.pkg_group_divider); @@ -203,7 +203,7 @@ public class NotificationInfoTest extends SysuiTestCase { eq("test_group_id"), eq(TEST_PACKAGE_NAME), eq(TEST_UID))) .thenReturn(notificationChannelGroup); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name); assertEquals(View.VISIBLE, groupNameView.getVisibility()); assertEquals("Test Group Name", groupNameView.getText()); @@ -214,7 +214,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_SetsTextChannelName() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final TextView textView = mNotificationInfo.findViewById(R.id.channel_name); assertEquals(TEST_CHANNEL_NAME, textView.getText()); } @@ -222,7 +222,8 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_DefaultChannelDoesNotUseChannelName() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, true, + false); final TextView textView = mNotificationInfo.findViewById(R.id.channel_name); assertEquals(GONE, textView.getVisibility()); } @@ -234,7 +235,8 @@ public class NotificationInfoTest extends SysuiTestCase { when(mMockINotificationManager.getNumNotificationChannelsForPackage( eq(TEST_PACKAGE_NAME), eq(TEST_UID), anyBoolean())).thenReturn(10); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, true, + false); final TextView textView = mNotificationInfo.findViewById(R.id.channel_name); assertEquals(VISIBLE, textView.getVisibility()); } @@ -242,7 +244,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_UnblockablePackageUsesChannelName() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); final TextView textView = mNotificationInfo.findViewById(R.id.channel_name); assertEquals(VISIBLE, textView.getVisibility()); } @@ -250,7 +252,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_BlockButton() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final View block = mNotificationInfo.findViewById(R.id.block); final View minimize = mNotificationInfo.findViewById(R.id.minimize); assertEquals(VISIBLE, block.getVisibility()); @@ -261,7 +263,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testBindNotification_MinButton() throws Exception { mSbn.getNotification().flags = Notification.FLAG_FOREGROUND_SERVICE; mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); final View block = mNotificationInfo.findViewById(R.id.block); final View minimize = mNotificationInfo.findViewById(R.id.minimize); assertEquals(GONE, block.getVisibility()); @@ -276,7 +278,7 @@ public class NotificationInfoTest extends SysuiTestCase { (View v, NotificationChannel c, int appUid) -> { assertEquals(mNotificationChannel, c); latch.countDown(); - }, null, false); + }, null, true, false); final View settingsButton = mNotificationInfo.findViewById(R.id.info); settingsButton.performClick(); @@ -287,7 +289,19 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_SettingsButtonInvisibleWhenNoClickListener() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); + final View settingsButton = mNotificationInfo.findViewById(R.id.info); + assertTrue(settingsButton.getVisibility() != View.VISIBLE); + } + + @Test + public void testBindNotification_SettingsButtonInvisibleWhenDeviceUnprovisioned() + throws Exception { + mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, + (View v, NotificationChannel c, int appUid) -> { + assertEquals(mNotificationChannel, c); + }, null, false, false); final View settingsButton = mNotificationInfo.findViewById(R.id.info); assertTrue(settingsButton.getVisibility() != View.VISIBLE); } @@ -295,11 +309,11 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_SettingsButtonReappearsAfterSecondBind() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, (View v, NotificationChannel c, int appUid) -> { - }, null, false); + }, null, true, false); final View settingsButton = mNotificationInfo.findViewById(R.id.info); assertEquals(View.VISIBLE, settingsButton.getVisibility()); } @@ -307,7 +321,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testLogBlockingHelperCounter_doesntLogForNormalGutsView() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.logBlockingHelperCounter("HowCanNotifsBeRealIfAppsArent"); verify(mMetricsLogger, times(0)).count(anyString(), anyInt()); } @@ -316,7 +330,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testLogBlockingHelperCounter_logsForBlockingHelper() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false, true, - true); + true, true); mNotificationInfo.logBlockingHelperCounter("HowCanNotifsBeRealIfAppsArent"); verify(mMetricsLogger, times(1)).count(anyString(), anyInt()); } @@ -329,7 +343,7 @@ public class NotificationInfoTest extends SysuiTestCase { (View v, NotificationChannel c, int appUid) -> { assertEquals(null, c); latch.countDown(); - }, null, true); + }, null, true, true); mNotificationInfo.findViewById(R.id.info).performClick(); // Verify that listener was triggered. @@ -342,7 +356,7 @@ public class NotificationInfoTest extends SysuiTestCase { throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, mSbn, null, null, - null, true); + null, true, true); final TextView channelNameView = mNotificationInfo.findViewById(R.id.channel_name); assertEquals(GONE, channelNameView.getVisibility()); @@ -353,7 +367,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testStopInvisibleIfBundleFromDifferentChannels() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, mSbn, null, null, - null, true); + null, true, true); final TextView blockView = mNotificationInfo.findViewById(R.id.block); assertEquals(GONE, blockView.getVisibility()); } @@ -362,7 +376,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testbindNotification_BlockingHelper() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false, false, - true); + true, true); final TextView view = mNotificationInfo.findViewById(R.id.block_prompt); assertEquals(View.VISIBLE, view.getVisibility()); assertEquals(mContext.getString(R.string.inline_blocking_helper), view.getText()); @@ -371,7 +385,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testbindNotification_UnblockableTextVisibleWhenAppUnblockable() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); final TextView view = mNotificationInfo.findViewById(R.id.block_prompt); assertEquals(View.VISIBLE, view.getVisibility()); assertEquals(mContext.getString(R.string.notification_unblockable_desc), @@ -381,7 +395,7 @@ public class NotificationInfoTest extends SysuiTestCase { @Test public void testBindNotification_DoesNotUpdateNotificationChannel() throws Exception { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mTestableLooper.processAllMessages(); verify(mMockINotificationManager, never()).updateNotificationChannelForPackage( anyString(), eq(TEST_UID), any()); @@ -391,7 +405,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testDoesNotUpdateNotificationChannelAfterImportanceChanged() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.block).performClick(); mTestableLooper.processAllMessages(); @@ -404,7 +418,7 @@ public class NotificationInfoTest extends SysuiTestCase { throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.minimize).performClick(); mTestableLooper.processAllMessages(); @@ -417,7 +431,7 @@ public class NotificationInfoTest extends SysuiTestCase { throws Exception { int originalImportance = mNotificationChannel.getImportance(); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.handleCloseControls(true, false); mTestableLooper.processAllMessages(); @@ -431,7 +445,7 @@ public class NotificationInfoTest extends SysuiTestCase { throws Exception { mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.handleCloseControls(true, false); @@ -449,7 +463,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */, 10 /* numUniqueChannelsInRow */, mSbn, null /* checkSaveListener */, null /* onSettingsClick */, null /* onAppSettingsClick */ , - false /* isNonblockable */); + true, false /* isNonblockable */); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -470,7 +484,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */, 10 /* numUniqueChannelsInRow */, mSbn, null /* checkSaveListener */, null /* onSettingsClick */, null /* onAppSettingsClick */ , - false /* isNonblockable */); + true, false /* isNonblockable */); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -489,6 +503,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */, 10 /* numUniqueChannelsInRow */, mSbn, null /* checkSaveListener */, null /* onSettingsClick */, null /* onAppSettingsClick */ , + true /* provisioned */, false /* isNonblockable */, true /* isForBlockingHelper */, true /* isUserSentimentNegative */); @@ -516,7 +531,7 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */, 10 /* numUniqueChannelsInRow */, mSbn, listener /* checkSaveListener */, - null /* onSettingsClick */, null /* onAppSettingsClick */ , + null /* onSettingsClick */, null /* onAppSettingsClick */ , true /* provisioned */, false /* isNonblockable */, true /* isForBlockingHelper */, true /* isUserSentimentNegative */); @@ -546,7 +561,7 @@ public class NotificationInfoTest extends SysuiTestCase { 10 /* numUniqueChannelsInRow */, mSbn, listener /* checkSaveListener */, null /* onSettingsClick */, null /* onAppSettingsClick */ , false /* isNonblockable */, true /* isForBlockingHelper */, - true /* isUserSentimentNegative */); + true, true /* isUserSentimentNegative */); mNotificationInfo.handleCloseControls(true /* save */, false /* force */); @@ -562,7 +577,8 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */, 10 /* numUniqueChannelsInRow */, mSbn, listener /* checkSaveListener */, - null /* onSettingsClick */, null /* onAppSettingsClick */ , + null /* onSettingsClick */, null /* onAppSettingsClick */, + true /* provisioned */, false /* isNonblockable */, true /* isForBlockingHelper */, true /* isUserSentimentNegative */); @@ -588,6 +604,7 @@ public class NotificationInfoTest extends SysuiTestCase { null /* onAppSettingsClick */, false /* isNonblockable */, true /* isForBlockingHelper */, + true, false /* isUserSentimentNegative */); NotificationGuts guts = mock(NotificationGuts.class); doCallRealMethod().when(guts).closeControls(anyInt(), anyInt(), anyBoolean(), anyBoolean()); @@ -602,7 +619,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testNonBlockableAppDoesNotBecomeBlocked() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -615,7 +632,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testBlockChangedCallsUpdateNotificationChannel() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -644,6 +661,7 @@ public class NotificationInfoTest extends SysuiTestCase { null /* checkSaveListener */, null /* onSettingsClick */, null /* onAppSettingsClick */, + true /*provisioned */, false /* isNonblockable */, true /* isForBlockingHelper */, true /* isUserSentimentNegative */); @@ -667,7 +685,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testNonBlockableAppDoesNotBecomeMin() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.minimize).performClick(); waitForUndoButton(); @@ -681,7 +699,7 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationChannel.setImportance(IMPORTANCE_LOW); mSbn.getNotification().flags = Notification.FLAG_FOREGROUND_SERVICE; mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.minimize).performClick(); waitForUndoButton(); @@ -701,7 +719,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testKeepUpdatesNotificationChannel() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.handleCloseControls(true, false); @@ -718,7 +736,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testBlockUndoDoesNotBlockNotificationChannel() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -739,7 +757,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testMinUndoDoesNotMinNotificationChannel() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false); mNotificationInfo.findViewById(R.id.minimize).performClick(); waitForUndoButton(); @@ -760,7 +778,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testCloseControlsDoesNotUpdateiMinIfSaveIsFalse() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.minimize).performClick(); waitForUndoButton(); @@ -775,7 +793,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testCloseControlsDoesNotUpdateIfSaveIsFalse() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -792,7 +810,7 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, (Runnable saveImportance, StatusBarNotification sbn) -> { - }, null, null, true); + }, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -810,7 +828,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, (Runnable saveImportance, StatusBarNotification sbn) -> { saveImportance.run(); - }, null, null, false); + }, null, null, true, false); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -842,7 +860,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, (View v, Intent intent) -> { latch.countDown(); - }, false); + }, true, false); final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings); assertEquals(View.VISIBLE, settingsLink.getVisibility()); settingsLink.performClick(); @@ -870,7 +888,7 @@ public class NotificationInfoTest extends SysuiTestCase { TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, sbn, null, null, (View v, Intent intent) -> { latch.countDown(); - }, false); + }, true, false); final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings); assertEquals(View.VISIBLE, settingsLink.getVisibility()); settingsLink.performClick(); @@ -889,7 +907,7 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, sbn, null, null, - null, false); + null, true, false); final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings); assertEquals(GONE, settingsLink.getVisibility()); } @@ -909,7 +927,7 @@ public class NotificationInfoTest extends SysuiTestCase { 0, null, 0, 0, n, UserHandle.CURRENT, null, 0); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, null, false); + TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, null, true, false); final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings); assertEquals(GONE, settingsLink.getVisibility()); } @@ -932,7 +950,7 @@ public class NotificationInfoTest extends SysuiTestCase { mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, null, false, true, - true); + true, true); final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings); assertEquals(GONE, settingsLink.getVisibility()); } @@ -948,7 +966,7 @@ public class NotificationInfoTest extends SysuiTestCase { mSbn.getNotification().flags = Notification.FLAG_FOREGROUND_SERVICE; mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.minimize).performClick(); waitForUndoButton(); @@ -960,7 +978,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testUndoText_block() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -972,7 +990,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testNoHeaderOnConfirmation() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); @@ -983,7 +1001,7 @@ public class NotificationInfoTest extends SysuiTestCase { public void testHeaderOnUndo() throws Exception { mNotificationChannel.setImportance(IMPORTANCE_LOW); mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager, - TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true); + TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true); mNotificationInfo.findViewById(R.id.block).performClick(); waitForUndoButton(); diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index 081d6f99beb6..9de687527364 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -16,6 +16,14 @@ package com.android.server.am; +import static android.app.ActivityTaskManager.RESIZE_MODE_SYSTEM; +import static android.app.ActivityTaskManager.RESIZE_MODE_USER; +import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; +import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; +import static android.view.Display.INVALID_DISPLAY; + +import static com.android.server.am.TaskRecord.INVALID_TASK_ID; + import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.ActivityTaskManager; @@ -102,15 +110,6 @@ import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; -import static android.app.ActivityTaskManager.RESIZE_MODE_SYSTEM; -import static android.app.ActivityTaskManager.RESIZE_MODE_USER; -import static android.app.ActivityTaskManager.INVALID_STACK_ID; -import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; -import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; -import static android.view.Display.INVALID_DISPLAY; - -import static com.android.server.am.TaskRecord.INVALID_TASK_ID; - final class ActivityManagerShellCommand extends ShellCommand { public static final String NO_CLASS_ERROR_CODE = "Error type 3"; private static final String SHELL_PACKAGE_NAME = "com.android.shell"; @@ -2850,6 +2849,7 @@ final class ActivityManagerShellCommand extends ShellCommand { pw.println(" --checkin: output checkin format, resetting data."); pw.println(" --C: output checkin format, not resetting data."); pw.println(" --proto: output dump in protocol buffer format."); + pw.println(" --autofill: dump just the autofill-related state of an activity"); } else { pw.println("Activity manager (activity) commands:"); pw.println(" help"); diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index e2ad5f5ff30e..c80c0f12dcdc 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -47,12 +47,14 @@ import android.os.ServiceManager; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; +import android.provider.Settings; import android.util.Slog; import android.util.SparseArray; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.uri.UriGrantsManagerInternal; +import com.android.server.wm.WindowManagerInternal; import java.io.IOException; import java.io.RandomAccessFile; @@ -149,6 +151,7 @@ public class ClipboardService extends SystemService { private final IActivityManager mAm; private final IUriGrantsManager mUgm; private final UriGrantsManagerInternal mUgmInternal; + private final WindowManagerInternal mWm; private final IUserManager mUm; private final PackageManager mPm; private final AppOpsManager mAppOps; @@ -167,6 +170,7 @@ public class ClipboardService extends SystemService { mAm = ActivityManager.getService(); mUgm = UriGrantsManager.getService(); mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class); + mWm = LocalServices.getService(WindowManagerInternal.class); mPm = getContext().getPackageManager(); mUm = (IUserManager) ServiceManager.getService(Context.USER_SERVICE); mAppOps = (AppOpsManager) getContext().getSystemService(Context.APP_OPS_SERVICE); @@ -623,18 +627,19 @@ public class ClipboardService extends SystemService { if (mAppOps.noteOp(op, callingUid, callingPackage) != AppOpsManager.MODE_ALLOWED) { return false; } - try { - // Installed apps can access the clipboard at any time. - if (!AppGlobals.getPackageManager().isInstantApp(callingPackage, - UserHandle.getUserId(callingUid))) { - return true; - } - // Instant apps can only access the clipboard if they are in the foreground. - return mAm.isAppForeground(callingUid); - } catch (RemoteException e) { - Slog.e("clipboard", "Failed to get Instant App status for package " + callingPackage, - e); - return false; + // The default IME is always allowed to access the clipboard. + String defaultIme = Settings.Secure.getStringForUser(getContext().getContentResolver(), + Settings.Secure.DEFAULT_INPUT_METHOD, UserHandle.getUserId(callingUid)); + if (defaultIme != null && defaultIme.equals(callingPackage)) { + return true; + } + + // Otherwise only focused applications can access the clipboard. + boolean uidFocused = mWm.isUidFocused(callingUid); + if (!uidFocused) { + Slog.e(TAG, "Denying clipboard access to " + callingPackage + + ", application is not in focus."); } + return uidFocused; } } diff --git a/services/core/java/com/android/server/notification/ZenModeConditions.java b/services/core/java/com/android/server/notification/ZenModeConditions.java index 8013f7a099b6..b080a73c1e42 100644 --- a/services/core/java/com/android/server/notification/ZenModeConditions.java +++ b/services/core/java/com/android/server/notification/ZenModeConditions.java @@ -19,7 +19,6 @@ package com.android.server.notification; import android.content.ComponentName; import android.net.Uri; import android.service.notification.Condition; -import android.service.notification.IConditionListener; import android.service.notification.IConditionProvider; import android.service.notification.ZenModeConfig; import android.service.notification.ZenModeConfig.ZenRule; @@ -27,6 +26,8 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; +import com.android.internal.annotations.VisibleForTesting; + import java.io.PrintWriter; import java.util.Objects; @@ -36,7 +37,9 @@ public class ZenModeConditions implements ConditionProviders.Callback { private final ZenModeHelper mHelper; private final ConditionProviders mConditionProviders; - private final ArrayMap<Uri, ComponentName> mSubscriptions = new ArrayMap<>(); + + @VisibleForTesting + protected final ArrayMap<Uri, ComponentName> mSubscriptions = new ArrayMap<>(); private boolean mFirstEvaluation = true; @@ -152,7 +155,8 @@ public class ZenModeConditions implements ConditionProviders.Callback { if (current != null) { current.add(id); } - if (processSubscriptions && trigger != null && trigger.equals(rule.component)) { + if (processSubscriptions && ((trigger != null && trigger.equals(rule.component)) + || isSystemCondition)) { if (DEBUG) Log.d(TAG, "Subscribing to " + rule.component); if (mConditionProviders.subscribeIfNecessary(rule.component, rule.conditionId)) { synchronized (mSubscriptions) { diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 7149720f6353..6ac72d3ae167 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -102,7 +102,7 @@ public class ZenModeHelper { private final ZenModeFiltering mFiltering; protected final RingerModeDelegate mRingerModeDelegate = new RingerModeDelegate(); - private final ZenModeConditions mConditions; + @VisibleForTesting protected final ZenModeConditions mConditions; private final SparseArray<ZenModeConfig> mConfigs = new SparseArray<>(); private final Metrics mMetrics = new Metrics(); private final ConditionProviders.Config mServiceConfig; @@ -1199,7 +1199,9 @@ public class ZenModeHelper { && zen != Global.ZEN_MODE_OFF && !isWatch && Settings.Global.getInt(mContext.getContentResolver(), - Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0; + Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0) != 0 + && Settings.Global.getInt(mContext.getContentResolver(), + Settings.Secure.ZEN_SETTINGS_UPDATED, 0) != 1; if (isWatch) { Settings.Global.putInt(mContext.getContentResolver(), diff --git a/services/core/java/com/android/server/uri/UriGrantsManagerService.java b/services/core/java/com/android/server/uri/UriGrantsManagerService.java index a731e9b01f56..9a7e75e548af 100644 --- a/services/core/java/com/android/server/uri/UriGrantsManagerService.java +++ b/services/core/java/com/android/server/uri/UriGrantsManagerService.java @@ -30,6 +30,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.Process.ROOT_UID; import static android.os.Process.SYSTEM_UID; import static android.os.Process.myUid; + import static com.android.internal.util.XmlUtils.readBooleanAttribute; import static com.android.internal.util.XmlUtils.readIntAttribute; import static com.android.internal.util.XmlUtils.readLongAttribute; @@ -37,6 +38,7 @@ import static com.android.internal.util.XmlUtils.writeBooleanAttribute; import static com.android.internal.util.XmlUtils.writeIntAttribute; import static com.android.internal.util.XmlUtils.writeLongAttribute; import static com.android.server.uri.UriGrantsManagerService.H.PERSIST_URI_GRANTS_MSG; + import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.START_TAG; @@ -73,15 +75,19 @@ import android.util.AtomicFile; import android.util.Slog; import android.util.SparseArray; import android.util.Xml; + import com.android.internal.util.FastXmlSerializer; import com.android.internal.util.Preconditions; import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.SystemServiceManager; + import com.google.android.collect.Lists; import com.google.android.collect.Maps; +import libcore.io.IoUtils; + import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; @@ -98,8 +104,6 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; -import libcore.io.IoUtils; - /** Manages uri grants. */ public class UriGrantsManagerService extends IUriGrantsManager.Stub { private static final boolean DEBUG = false; @@ -150,7 +154,6 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { void onActivityManagerInternalAdded() { mAmInternal = LocalServices.getService(ActivityManagerInternal.class); - mPmInternal = LocalServices.getService(PackageManagerInternal.class); } public static final class Lifecycle extends SystemService { @@ -296,7 +299,7 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { if (toPackage != null) { mAmInternal.enforceCallingPermission(FORCE_PERSISTABLE_URI_PERMISSIONS, "takePersistableUriPermission"); - uid = mPmInternal.getPackageUid(toPackage, 0, userId); + uid = getPmInternal().getPackageUid(toPackage, 0, userId); } else { enforceNotIsolatedCaller("takePersistableUriPermission"); uid = Binder.getCallingUid(); @@ -361,7 +364,7 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { if (toPackage != null) { mAmInternal.enforceCallingPermission(FORCE_PERSISTABLE_URI_PERMISSIONS, "releasePersistableUriPermission"); - uid = mPmInternal.getPackageUid(toPackage, 0, userId); + uid = getPmInternal().getPackageUid(toPackage, 0, userId); } else { enforceNotIsolatedCaller("releasePersistableUriPermission"); uid = Binder.getCallingUid(); @@ -1266,6 +1269,14 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { } } + private PackageManagerInternal getPmInternal() { + // Don't need to synchonize; worst-case scenario LocalServices will be called twice. + if (mPmInternal == null) { + mPmInternal = LocalServices.getService(PackageManagerInternal.class); + } + return mPmInternal; + } + final class H extends Handler { static final int PERSIST_URI_GRANTS_MSG = 1; diff --git a/services/core/java/com/android/server/wm/ForcedSeamlessRotator.java b/services/core/java/com/android/server/wm/ForcedSeamlessRotator.java index f2cbc86eb9d0..f5e6e7210356 100644 --- a/services/core/java/com/android/server/wm/ForcedSeamlessRotator.java +++ b/services/core/java/com/android/server/wm/ForcedSeamlessRotator.java @@ -21,6 +21,7 @@ import static android.view.Surface.ROTATION_90; import android.graphics.Matrix; import android.view.DisplayInfo; +import android.view.Surface.Rotation; import com.android.server.wm.utils.CoordinateTransforms; @@ -66,6 +67,16 @@ public class ForcedSeamlessRotator { } /** + * Returns the rotation of the display before it started rotating. + * + * @return the old rotation of the display + */ + @Rotation + public int getOldRotation() { + return mOldRotation; + } + + /** * Removes the transform to the window token's surface that undoes the effect of the global * display rotation. * diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java index 90a763d4ddd5..44783f8b3a28 100644 --- a/services/core/java/com/android/server/wm/WindowManagerInternal.java +++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java @@ -436,4 +436,9 @@ public abstract class WindowManagerInternal { * the window token is not found. */ public abstract int getWindowOwnerUserId(IBinder windowToken); + + /** + * Returns {@code true} if a Window owned by {@code uid} has focus. + */ + public abstract boolean isUidFocused(int uid); } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index e18d56485d47..c1bfbeacf52f 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7422,6 +7422,13 @@ public class WindowManagerService extends IWindowManager.Stub return UserHandle.USER_NULL; } } + + @Override + public boolean isUidFocused(int uid) { + synchronized (mWindowMap) { + return mCurrentFocus != null ? uid == mCurrentFocus.getOwningUid() : false; + } + } } void registerAppFreezeListener(AppFreezeListener listener) { diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 0d093d1e3e35..58fb7a0f0a5e 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -634,6 +634,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP void forceSeamlesslyRotateIfAllowed(int oldRotation, int rotation) { if (mForceSeamlesslyRotate) { + if (mPendingForcedSeamlessRotate != null) { + oldRotation = mPendingForcedSeamlessRotate.getOldRotation(); + } + mPendingForcedSeamlessRotate = new ForcedSeamlessRotator( oldRotation, rotation, getDisplayInfo()); mPendingForcedSeamlessRotate.unrotate(this.mToken); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java index 8cff6f945075..91f4bc837eaa 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java @@ -38,6 +38,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.NotificationManager; import android.content.ComponentName; @@ -49,8 +50,10 @@ import android.media.AudioManager; import android.media.AudioManagerInternal; import android.media.VolumePolicy; import android.media.AudioSystem; +import android.net.Uri; import android.provider.Settings; import android.provider.Settings.Global; +import android.service.notification.Condition; import android.service.notification.ZenModeConfig; import android.service.notification.ZenModeConfig.ScheduleInfo; import android.test.suitebuilder.annotation.SmallTest; @@ -61,6 +64,7 @@ import android.util.Xml; import com.android.internal.R; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; +import com.android.server.notification.ManagedServices.UserProfiles; import com.android.internal.util.FastXmlSerializer; import com.android.server.UiServiceTestCase; @@ -82,7 +86,7 @@ import java.io.ByteArrayOutputStream; @TestableLooper.RunWithLooper public class ZenModeHelperTest extends UiServiceTestCase { - @Mock ConditionProviders mConditionProviders; + ConditionProviders mConditionProviders; @Mock NotificationManager mNotificationManager; @Mock private Resources mResources; private TestableLooper mTestableLooper; @@ -102,6 +106,9 @@ public class ZenModeHelperTest extends UiServiceTestCase { when(mResources.getString(R.string.zen_mode_default_events_name)).thenReturn("events"); when(mContext.getSystemService(NotificationManager.class)).thenReturn(mNotificationManager); + mConditionProviders = new ConditionProviders(mContext, new UserProfiles(), + AppGlobals.getPackageManager()); + mConditionProviders.addSystemProvider(new CountdownConditionProvider()); mZenModeHelperSpy = spy(new ZenModeHelper(mContext, mTestableLooper.getLooper(), mConditionProviders)); } @@ -289,23 +296,39 @@ public class ZenModeHelperTest extends UiServiceTestCase { @Test public void testZenUpgradeNotification() { - // shows zen upgrade notification if stored settings says to shows, boot is completed + // shows zen upgrade notification if stored settings says to shows, + // zen has not been updated, boot is completed // and we're setting zen mode on - Settings.Global.putInt(mContentResolver, Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 1); + Settings.Secure.putInt(mContentResolver, Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 1); + Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_SETTINGS_UPDATED, 0); mZenModeHelperSpy.mIsBootComplete = true; mZenModeHelperSpy.setZenModeSetting(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); verify(mZenModeHelperSpy, times(1)).createZenUpgradeNotification(); verify(mNotificationManager, times(1)).notify(eq(ZenModeHelper.TAG), eq(SystemMessage.NOTE_ZEN_UPGRADE), any()); - assertEquals(0, Settings.Global.getInt(mContentResolver, - Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION, -1)); + assertEquals(0, Settings.Secure.getInt(mContentResolver, + Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, -1)); } @Test public void testNoZenUpgradeNotification() { // doesn't show upgrade notification if stored settings says don't show - Settings.Global.putInt(mContentResolver, Settings.Global.SHOW_ZEN_UPGRADE_NOTIFICATION, 0); + Settings.Secure.putInt(mContentResolver, Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0); + Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_SETTINGS_UPDATED, 0); + mZenModeHelperSpy.mIsBootComplete = true; + mZenModeHelperSpy.setZenModeSetting(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); + + verify(mZenModeHelperSpy, never()).createZenUpgradeNotification(); + verify(mNotificationManager, never()).notify(eq(ZenModeHelper.TAG), + eq(SystemMessage.NOTE_ZEN_UPGRADE), any()); + } + + @Test + public void testNoZenUpgradeNotificationZenUpdated() { + // doesn't show upgrade notification since zen was already updated + Settings.Secure.putInt(mContentResolver, Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 0); + Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_SETTINGS_UPDATED, 1); mZenModeHelperSpy.mIsBootComplete = true; mZenModeHelperSpy.setZenModeSetting(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS); @@ -887,7 +910,6 @@ public class ZenModeHelperTest extends UiServiceTestCase { setupZenConfigMaintained(); } - @Test public void testReadXmlDefaultRulesExist() throws Exception { setupZenConfig(); @@ -943,6 +965,30 @@ public class ZenModeHelperTest extends UiServiceTestCase { setupZenConfigMaintained(); } + @Test + public void testCountdownConditionSubscription() throws Exception { + ZenModeConfig config = new ZenModeConfig(); + mZenModeHelperSpy.mConfig = config; + mZenModeHelperSpy.mConditions.evaluateConfig(mZenModeHelperSpy.mConfig, null, true); + assertEquals(0, mZenModeHelperSpy.mConditions.mSubscriptions.size()); + + mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule(); + Uri conditionId = ZenModeConfig.toCountdownConditionId(9000000, false); + mZenModeHelperSpy.mConfig.manualRule.conditionId = conditionId; + mZenModeHelperSpy.mConfig.manualRule.component = new ComponentName("android", + CountdownConditionProvider.class.getName()); + mZenModeHelperSpy.mConfig.manualRule.condition = new Condition(conditionId, "", "", "", 0, + Condition.STATE_TRUE, Condition.FLAG_RELEVANT_NOW); + mZenModeHelperSpy.mConfig.manualRule.enabled = true; + ZenModeConfig originalConfig = mZenModeHelperSpy.mConfig.copy(); + + mZenModeHelperSpy.mConditions.evaluateConfig(mZenModeHelperSpy.mConfig, null, true); + + assertEquals(true, ZenModeConfig.isValidCountdownConditionId(conditionId)); + assertEquals(originalConfig, mZenModeHelperSpy.mConfig); + assertEquals(1, mZenModeHelperSpy.mConditions.mSubscriptions.size()); + } + private void setupZenConfig() { mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS; mZenModeHelperSpy.mConfig.allowAlarms = false; diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index ab9409398973..a45d70bb5d78 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -22,6 +22,7 @@ import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.os.PersistableBundle; import android.os.RemoteException; @@ -1212,6 +1213,7 @@ public class CarrierConfigManager { * disable_metered_apns} * @hide */ + @UnsupportedAppUsage public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array"; @@ -1824,6 +1826,7 @@ public class CarrierConfigManager { * Key identifying if voice call barring notification is required to be shown to the user. * @hide */ + @UnsupportedAppUsage public static final String KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL = "disable_voice_barring_notification_bool"; diff --git a/telephony/java/android/telephony/CellIdentityCdma.java b/telephony/java/android/telephony/CellIdentityCdma.java index 28090666ea68..5b67dc44fe3c 100644 --- a/telephony/java/android/telephony/CellIdentityCdma.java +++ b/telephony/java/android/telephony/CellIdentityCdma.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.text.TextUtils; @@ -74,6 +75,7 @@ public final class CellIdentityCdma extends CellIdentity { * * @hide */ + @UnsupportedAppUsage public CellIdentityCdma(int nid, int sid, int bid, int lon, int lat) { this(nid, sid, bid, lon, lat, null, null); } diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java index 4031254ab071..5c847914b57b 100644 --- a/telephony/java/android/telephony/CellIdentityGsm.java +++ b/telephony/java/android/telephony/CellIdentityGsm.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.text.TextUtils; @@ -34,13 +35,16 @@ public final class CellIdentityGsm extends CellIdentity { // 16-bit GSM Cell Identity described in TS 27.007, 0..65535 private final int mCid; // 16-bit GSM Absolute RF Channel Number + @UnsupportedAppUsage private final int mArfcn; // 6-bit Base Station Identity Code + @UnsupportedAppUsage private final int mBsic; /** * @hide */ + @UnsupportedAppUsage public CellIdentityGsm() { super(TAG, CellInfo.TYPE_GSM, null, null, null, null); mLac = Integer.MAX_VALUE; diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java index 52573727e1c6..65c904b8548b 100644 --- a/telephony/java/android/telephony/CellIdentityLte.java +++ b/telephony/java/android/telephony/CellIdentityLte.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.text.TextUtils; @@ -36,6 +37,7 @@ public final class CellIdentityLte extends CellIdentity { // 16-bit tracking area code private final int mTac; // 18-bit Absolute RF Channel Number + @UnsupportedAppUsage private final int mEarfcn; // cell bandwidth, in kHz private final int mBandwidth; @@ -43,6 +45,7 @@ public final class CellIdentityLte extends CellIdentity { /** * @hide */ + @UnsupportedAppUsage public CellIdentityLte() { super(TAG, CellInfo.TYPE_LTE, null, null, null, null); mCi = Integer.MAX_VALUE; @@ -62,6 +65,7 @@ public final class CellIdentityLte extends CellIdentity { * * @hide */ + @UnsupportedAppUsage public CellIdentityLte(int mcc, int mnc, int ci, int pci, int tac) { this(ci, pci, tac, Integer.MAX_VALUE, Integer.MAX_VALUE, String.valueOf(mcc), String.valueOf(mnc), null, null); diff --git a/telephony/java/android/telephony/CellIdentityWcdma.java b/telephony/java/android/telephony/CellIdentityWcdma.java index a4ac8e30d02e..e26fcb314afa 100644 --- a/telephony/java/android/telephony/CellIdentityWcdma.java +++ b/telephony/java/android/telephony/CellIdentityWcdma.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.text.TextUtils; @@ -36,6 +37,7 @@ public final class CellIdentityWcdma extends CellIdentity { // 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511 private final int mPsc; // 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.4 + @UnsupportedAppUsage private final int mUarfcn; /** diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java index 6b320f4352cc..4fe1b01007a7 100644 --- a/telephony/java/android/telephony/CellInfo.java +++ b/telephony/java/android/telephony/CellInfo.java @@ -18,6 +18,7 @@ package android.telephony; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -70,14 +71,19 @@ public abstract class CellInfo implements Parcelable { // Type to distinguish where time stamp gets recorded. /** @hide */ + @UnsupportedAppUsage public static final int TIMESTAMP_TYPE_UNKNOWN = 0; /** @hide */ + @UnsupportedAppUsage public static final int TIMESTAMP_TYPE_ANTENNA = 1; /** @hide */ + @UnsupportedAppUsage public static final int TIMESTAMP_TYPE_MODEM = 2; /** @hide */ + @UnsupportedAppUsage public static final int TIMESTAMP_TYPE_OEM_RIL = 3; /** @hide */ + @UnsupportedAppUsage public static final int TIMESTAMP_TYPE_JAVA_RIL = 4; /** @hide */ @@ -184,6 +190,7 @@ public abstract class CellInfo implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getTimeStampType() { return mTimeStampType; } @@ -223,6 +230,7 @@ public abstract class CellInfo implements Parcelable { } } + @UnsupportedAppUsage private static String timeStampTypeToString(int type) { switch (type) { case 1: diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java index 8b8d1bbe3fc6..f67733d63ef2 100644 --- a/telephony/java/android/telephony/CellInfoCdma.java +++ b/telephony/java/android/telephony/CellInfoCdma.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -32,6 +33,7 @@ public final class CellInfoCdma extends CellInfo implements Parcelable { private CellSignalStrengthCdma mCellSignalStrengthCdma; /** @hide */ + @UnsupportedAppUsage public CellInfoCdma() { super(); mCellIdentityCdma = new CellIdentityCdma(); @@ -39,6 +41,7 @@ public final class CellInfoCdma extends CellInfo implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public CellInfoCdma(CellInfoCdma ci) { super(ci); this.mCellIdentityCdma = ci.mCellIdentityCdma.copy(); @@ -50,6 +53,7 @@ public final class CellInfoCdma extends CellInfo implements Parcelable { return mCellIdentityCdma; } /** @hide */ + @UnsupportedAppUsage public void setCellIdentity(CellIdentityCdma cid) { mCellIdentityCdma = cid; } diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java index f7af1b201698..7211de1798da 100644 --- a/telephony/java/android/telephony/CellInfoGsm.java +++ b/telephony/java/android/telephony/CellInfoGsm.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -32,6 +33,7 @@ public final class CellInfoGsm extends CellInfo implements Parcelable { private CellSignalStrengthGsm mCellSignalStrengthGsm; /** @hide */ + @UnsupportedAppUsage public CellInfoGsm() { super(); mCellIdentityGsm = new CellIdentityGsm(); diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java index 97d856e39c80..389f643e05a4 100644 --- a/telephony/java/android/telephony/CellInfoLte.java +++ b/telephony/java/android/telephony/CellInfoLte.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -32,6 +33,7 @@ public final class CellInfoLte extends CellInfo implements Parcelable { private CellSignalStrengthLte mCellSignalStrengthLte; /** @hide */ + @UnsupportedAppUsage public CellInfoLte() { super(); mCellIdentityLte = new CellIdentityLte(); @@ -51,6 +53,7 @@ public final class CellInfoLte extends CellInfo implements Parcelable { return mCellIdentityLte; } /** @hide */ + @UnsupportedAppUsage public void setCellIdentity(CellIdentityLte cid) { if (DBG) log("setCellIdentity: " + cid); mCellIdentityLte = cid; @@ -62,6 +65,7 @@ public final class CellInfoLte extends CellInfo implements Parcelable { return mCellSignalStrengthLte; } /** @hide */ + @UnsupportedAppUsage public void setCellSignalStrength(CellSignalStrengthLte css) { if (DBG) log("setCellSignalStrength: " + css); mCellSignalStrengthLte = css; diff --git a/telephony/java/android/telephony/CellLocation.java b/telephony/java/android/telephony/CellLocation.java index 5bcaa6e74531..01331535205c 100644 --- a/telephony/java/android/telephony/CellLocation.java +++ b/telephony/java/android/telephony/CellLocation.java @@ -20,6 +20,7 @@ import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; +import android.annotation.UnsupportedAppUsage; import android.telephony.cdma.CdmaCellLocation; import android.telephony.gsm.GsmCellLocation; import com.android.internal.telephony.ITelephony; @@ -57,6 +58,7 @@ public abstract class CellLocation { * * @hide */ + @UnsupportedAppUsage public static CellLocation newFromBundle(Bundle bundle) { // TelephonyManager.getDefault().getCurrentPhoneType() handles the case when // ITelephony interface is not up yet. @@ -73,11 +75,13 @@ public abstract class CellLocation { /** * @hide */ + @UnsupportedAppUsage public abstract void fillInNotifierBundle(Bundle bundle); /** * @hide */ + @UnsupportedAppUsage public abstract boolean isEmpty(); /** diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java index cff159b991c0..1e8d119c96c7 100644 --- a/telephony/java/android/telephony/CellSignalStrengthGsm.java +++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -34,11 +35,15 @@ public final class CellSignalStrengthGsm extends CellSignalStrength implements P private static final int GSM_SIGNAL_STRENGTH_GOOD = 8; private static final int GSM_SIGNAL_STRENGTH_MODERATE = 5; + @UnsupportedAppUsage private int mSignalStrength; // in ASU; Valid values are (0-31, 99) as defined in TS 27.007 8.5 + @UnsupportedAppUsage private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 + @UnsupportedAppUsage private int mTimingAdvance; // range from 0-219 or Integer.MAX_VALUE if unknown /** @hide */ + @UnsupportedAppUsage public CellSignalStrengthGsm() { setDefaultValues(); } diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java index 2f059f412b64..ed7d4b2331da 100644 --- a/telephony/java/android/telephony/CellSignalStrengthLte.java +++ b/telephony/java/android/telephony/CellSignalStrengthLte.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -30,14 +31,21 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P private static final String LOG_TAG = "CellSignalStrengthLte"; private static final boolean DBG = false; + @UnsupportedAppUsage private int mSignalStrength; + @UnsupportedAppUsage private int mRsrp; + @UnsupportedAppUsage private int mRsrq; + @UnsupportedAppUsage private int mRssnr; + @UnsupportedAppUsage private int mCqi; + @UnsupportedAppUsage private int mTimingAdvance; /** @hide */ + @UnsupportedAppUsage public CellSignalStrengthLte() { setDefaultValues(); } diff --git a/telephony/java/android/telephony/CellSignalStrengthWcdma.java b/telephony/java/android/telephony/CellSignalStrengthWcdma.java index 21cf0be96931..66e08822dfa7 100644 --- a/telephony/java/android/telephony/CellSignalStrengthWcdma.java +++ b/telephony/java/android/telephony/CellSignalStrengthWcdma.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Rlog; @@ -34,8 +35,10 @@ public final class CellSignalStrengthWcdma extends CellSignalStrength implements private static final int WCDMA_SIGNAL_STRENGTH_GOOD = 8; private static final int WCDMA_SIGNAL_STRENGTH_MODERATE = 5; + @UnsupportedAppUsage private int mSignalStrength; // in ASU; Valid values are (0-31, 99) as defined in TS 27.007 8.5 // or Integer.MAX_VALUE if unknown + @UnsupportedAppUsage private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 or // Integer.MAX_VALUE if unknown private int mRscp; // bit error rate (0-96, 255) as defined in TS 27.007 8.69 or diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java index 4fa304ae3b97..ee5cdc2780db 100644 --- a/telephony/java/android/telephony/DisconnectCause.java +++ b/telephony/java/android/telephony/DisconnectCause.java @@ -16,6 +16,8 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; + /** * Contains disconnect call causes generated by the framework and the RIL. * @hide @@ -329,6 +331,7 @@ public class DisconnectCause { } /** Returns descriptive string for the specified disconnect cause. */ + @UnsupportedAppUsage public static String toString(int cause) { switch (cause) { case NOT_DISCONNECTED: diff --git a/telephony/java/android/telephony/NeighboringCellInfo.java b/telephony/java/android/telephony/NeighboringCellInfo.java index b7ccee5871d0..8e99518d78b8 100644 --- a/telephony/java/android/telephony/NeighboringCellInfo.java +++ b/telephony/java/android/telephony/NeighboringCellInfo.java @@ -24,6 +24,7 @@ import static android.telephony.TelephonyManager.NETWORK_TYPE_HSUPA; import static android.telephony.TelephonyManager.NETWORK_TYPE_UMTS; import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -47,24 +48,29 @@ public class NeighboringCellInfo implements Parcelable * In GSM, mRssi is the Received RSSI; * In UMTS, mRssi is the Level index of CPICH Received Signal Code Power */ + @UnsupportedAppUsage private int mRssi; /** * CID in 16 bits format in GSM. Return UNKNOWN_CID in UMTS and CMDA. */ + @UnsupportedAppUsage private int mCid; /** * LAC in 16 bits format in GSM. Return UNKNOWN_CID in UMTS and CMDA. */ + @UnsupportedAppUsage private int mLac; /** * Primary Scrambling Code in 9 bits format in UMTS * Return UNKNOWN_CID in GSM and CMDA. */ + @UnsupportedAppUsage private int mPsc; /** * Radio network type, value is one of following * TelephonyManager.NETWORK_TYPE_XXXXXX. */ + @UnsupportedAppUsage private int mNetworkType; /** diff --git a/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java b/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java index f7dee99fe613..ac6bcaa61997 100644 --- a/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java +++ b/telephony/java/android/telephony/PhoneNumberFormattingTextWatcher.java @@ -19,6 +19,7 @@ package android.telephony; import com.android.i18n.phonenumbers.AsYouTypeFormatter; import com.android.i18n.phonenumbers.PhoneNumberUtil; +import android.annotation.UnsupportedAppUsage; import android.telephony.PhoneNumberUtils; import android.text.Editable; import android.text.Selection; @@ -50,6 +51,7 @@ public class PhoneNumberFormattingTextWatcher implements TextWatcher { */ private boolean mStopFormatting; + @UnsupportedAppUsage private AsYouTypeFormatter mFormatter; /** diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index fadfc91bcdef..f6e8d3422eca 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -23,6 +23,7 @@ import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber; import com.android.i18n.phonenumbers.ShortNumberInfo; import android.annotation.IntDef; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -279,6 +280,7 @@ public class PhoneNumberUtils { * * @hide */ + @UnsupportedAppUsage public static String extractNetworkPortionAlt(String phoneNumber) { if (phoneNumber == null) { return null; @@ -352,6 +354,7 @@ public class PhoneNumberUtils { * RFC 3601 says pause is 'p' and tonewait is 'w'. * @hide */ + @UnsupportedAppUsage public static String convertPreDial(String phoneNumber) { if (phoneNumber == null) { return null; @@ -464,6 +467,7 @@ public class PhoneNumberUtils { /** * @hide only for testing. */ + @UnsupportedAppUsage public static boolean compare(String a, String b, boolean useStrictComparation) { return (useStrictComparation ? compareStrictly(a, b) : compareLoosely(a, b)); } @@ -482,6 +486,7 @@ public class PhoneNumberUtils { * * @hide */ + @UnsupportedAppUsage public static boolean compareLoosely(String a, String b) { int ia, ib; @@ -579,6 +584,7 @@ public class PhoneNumberUtils { /** * @hide */ + @UnsupportedAppUsage public static boolean compareStrictly(String a, String b) { return compareStrictly(a, b, true); @@ -587,6 +593,7 @@ public class PhoneNumberUtils { /** * @hide */ + @UnsupportedAppUsage public static boolean compareStrictly(String a, String b, boolean acceptInvalidCCCPrefix) { if (a == null || b == null) { @@ -1260,6 +1267,7 @@ public class PhoneNumberUtils { * @deprecated Use link #formatNumber(String phoneNumber, String defaultCountryIso) instead */ @Deprecated + @UnsupportedAppUsage public static String formatNumber(String source, int defaultFormattingType) { SpannableStringBuilder text = new SpannableStringBuilder(source); formatNumber(text, defaultFormattingType); @@ -1720,6 +1728,7 @@ public class PhoneNumberUtils { // // However, in order to loose match 650-555-1212 and 555-1212, we need to set the min match // to 7. + @UnsupportedAppUsage static final int MIN_MATCH = 7; /** @@ -1744,6 +1753,7 @@ public class PhoneNumberUtils { * listed in the RIL / SIM, otherwise return false. * @hide */ + @UnsupportedAppUsage public static boolean isEmergencyNumber(int subId, String number) { // Return true only if the specified number *exactly* matches // one of the emergency numbers listed by the RIL / SIM. @@ -1794,6 +1804,7 @@ public class PhoneNumberUtils { * same digits as any of those emergency numbers. * @hide */ + @UnsupportedAppUsage public static boolean isPotentialEmergencyNumber(int subId, String number) { // Check against the emergency numbers listed by the RIL / SIM, // and *don't* require an exact match. @@ -1858,6 +1869,7 @@ public class PhoneNumberUtils { * * @hide */ + @UnsupportedAppUsage public static boolean isEmergencyNumber(String number, String defaultCountryIso) { return isEmergencyNumber(getDefaultVoiceSubId(), number, defaultCountryIso); } @@ -2081,6 +2093,7 @@ public class PhoneNumberUtils { * is currently in. * @hide */ + @UnsupportedAppUsage public static boolean isLocalEmergencyNumber(Context context, int subId, String number) { return isLocalEmergencyNumberInternal(subId, number, context, @@ -2109,6 +2122,7 @@ public class PhoneNumberUtils { * @see android.location.CountryDetector * @hide */ + @UnsupportedAppUsage public static boolean isPotentialLocalEmergencyNumber(Context context, String number) { return isPotentialLocalEmergencyNumber(context, getDefaultVoiceSubId(), number); } @@ -2135,6 +2149,7 @@ public class PhoneNumberUtils { * * @hide */ + @UnsupportedAppUsage public static boolean isPotentialLocalEmergencyNumber(Context context, int subId, String number) { return isLocalEmergencyNumberInternal(subId, number, @@ -2244,6 +2259,7 @@ public class PhoneNumberUtils { * to read the VM number. * @hide */ + @UnsupportedAppUsage public static boolean isVoiceMailNumber(Context context, int subId, String number) { String vmNumber, mdn; try { @@ -2390,6 +2406,7 @@ public class PhoneNumberUtils { * * @hide TODO: pending API Council approval */ + @UnsupportedAppUsage public static String cdmaCheckAndProcessPlusCode(String dialStr) { if (!TextUtils.isEmpty(dialStr)) { if (isReallyDialable(dialStr.charAt(0)) && @@ -2569,6 +2586,7 @@ public class PhoneNumberUtils { * @hide */ @Deprecated + @UnsupportedAppUsage public static CharSequence ttsSpanAsPhoneNumber(CharSequence phoneNumber) { return createTtsSpannable(phoneNumber); } @@ -2680,6 +2698,7 @@ public class PhoneNumberUtils { * i.e. NXX-NXX-XXXX, N is any digit 2-9 and X is any digit 0-9 * @hide */ + @UnsupportedAppUsage public static boolean isNanp (String dialStr) { boolean retVal = false; if (dialStr != null) { @@ -2727,6 +2746,7 @@ public class PhoneNumberUtils { * @param number * @return true if number contains @ */ + @UnsupportedAppUsage public static boolean isUriNumber(String number) { // Note we allow either "@" or "%40" to indicate a URI, in case // the passed-in string is URI-escaped. (Neither "@" nor "%40" @@ -2744,6 +2764,7 @@ public class PhoneNumberUtils { * * @hide */ + @UnsupportedAppUsage public static String getUsernameFromUriNumber(String number) { // The delimiter between username and domain name can be // either "@" or "%40" (the URI-escaped equivalent.) diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java index 842016511d39..7f7ce8e50735 100644 --- a/telephony/java/android/telephony/PhoneStateListener.java +++ b/telephony/java/android/telephony/PhoneStateListener.java @@ -17,6 +17,7 @@ package android.telephony; import android.annotation.NonNull; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -171,6 +172,7 @@ public class PhoneStateListener { * * @hide */ + @UnsupportedAppUsage public static final int LISTEN_PRECISE_CALL_STATE = 0x00000800; /** @@ -276,6 +278,7 @@ public class PhoneStateListener { * @hide */ /** @hide */ + @UnsupportedAppUsage protected Integer mSubId; private final Handler mHandler; @@ -293,6 +296,7 @@ public class PhoneStateListener { * using a particular non-null Looper. * @hide */ + @UnsupportedAppUsage public PhoneStateListener(Looper looper) { this(null, looper); } @@ -303,6 +307,7 @@ public class PhoneStateListener { * own non-null Looper use PhoneStateListener(int subId, Looper looper) below. * @hide */ + @UnsupportedAppUsage public PhoneStateListener(Integer subId) { this(subId, Looper.myLooper()); } @@ -312,6 +317,7 @@ public class PhoneStateListener { * and non-null Looper. * @hide */ + @UnsupportedAppUsage public PhoneStateListener(Integer subId, Looper looper) { if (DBG) log("ctor: subId=" + subId + " looper=" + looper); mSubId = subId; @@ -515,6 +521,7 @@ public class PhoneStateListener { * * @hide */ + @UnsupportedAppUsage public void onOtaspChanged(int otaspMode) { // default implementation empty } @@ -532,6 +539,7 @@ public class PhoneStateListener { * * @hide */ + @UnsupportedAppUsage public void onPreciseCallStateChanged(PreciseCallState callState) { // default implementation empty } @@ -541,6 +549,7 @@ public class PhoneStateListener { * * @hide */ + @UnsupportedAppUsage public void onPreciseDataConnectionStateChanged( PreciseDataConnectionState dataConnectionState) { // default implementation empty @@ -551,6 +560,7 @@ public class PhoneStateListener { * * @hide */ + @UnsupportedAppUsage public void onDataConnectionRealTimeInfoChanged( DataConnectionRealTimeInfo dcRtInfo) { // default implementation empty @@ -562,6 +572,7 @@ public class PhoneStateListener { * @param stateInfo is the current LTE network information * @hide */ + @UnsupportedAppUsage public void onVoLteServiceStateChanged(VoLteServiceState stateInfo) { } @@ -608,6 +619,7 @@ public class PhoneStateListener { * @param rawData is the byte array of the OEM hook raw data. * @hide */ + @UnsupportedAppUsage public void onOemHookRawEvent(byte[] rawData) { // default implementation empty } @@ -741,6 +753,7 @@ public class PhoneStateListener { } } + @UnsupportedAppUsage IPhoneStateListener callback = new IPhoneStateListenerStub(this); private void log(String s) { diff --git a/telephony/java/android/telephony/PreciseCallState.java b/telephony/java/android/telephony/PreciseCallState.java index f246416df765..ed5c26ac5cf2 100644 --- a/telephony/java/android/telephony/PreciseCallState.java +++ b/telephony/java/android/telephony/PreciseCallState.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.DisconnectCause; @@ -71,6 +72,7 @@ public class PreciseCallState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public PreciseCallState(int ringingCall, int foregroundCall, int backgroundCall, int disconnectCause, int preciseDisconnectCause) { mRingingCallState = ringingCall; @@ -113,6 +115,7 @@ public class PreciseCallState implements Parcelable { * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING */ + @UnsupportedAppUsage public int getRingingCallState() { return mRingingCallState; } @@ -131,6 +134,7 @@ public class PreciseCallState implements Parcelable { * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING */ + @UnsupportedAppUsage public int getForegroundCallState() { return mForegroundCallState; } @@ -149,6 +153,7 @@ public class PreciseCallState implements Parcelable { * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING */ + @UnsupportedAppUsage public int getBackgroundCallState() { return mBackgroundCallState; } @@ -195,6 +200,7 @@ public class PreciseCallState implements Parcelable { * @see DisconnectCause#CDMA_ACCESS_BLOCKED * @see DisconnectCause#ERROR_UNSPECIFIED */ + @UnsupportedAppUsage public int getDisconnectCause() { return mDisconnectCause; } @@ -233,6 +239,7 @@ public class PreciseCallState implements Parcelable { * @see PreciseDisconnectCause#CDMA_ACCESS_BLOCKED * @see PreciseDisconnectCause#ERROR_UNSPECIFIED */ + @UnsupportedAppUsage public int getPreciseDisconnectCause() { return mPreciseDisconnectCause; } diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java index 31c9a9e5316b..b258f52d58ec 100644 --- a/telephony/java/android/telephony/PreciseDataConnectionState.java +++ b/telephony/java/android/telephony/PreciseDataConnectionState.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; import android.telephony.TelephonyManager; @@ -53,6 +54,7 @@ public class PreciseDataConnectionState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public PreciseDataConnectionState(int state, int networkType, String apnType, String apn, String reason, LinkProperties linkProperties, String failCause) { @@ -95,6 +97,7 @@ public class PreciseDataConnectionState implements Parcelable { * @see TelephonyManager#DATA_CONNECTED * @see TelephonyManager#DATA_SUSPENDED */ + @UnsupportedAppUsage public int getDataConnectionState() { return mState; } @@ -119,6 +122,7 @@ public class PreciseDataConnectionState implements Parcelable { * @see TelephonyManager#NETWORK_TYPE_EHRPD * @see TelephonyManager#NETWORK_TYPE_HSPAP */ + @UnsupportedAppUsage public int getDataConnectionNetworkType() { return mNetworkType; } @@ -126,6 +130,7 @@ public class PreciseDataConnectionState implements Parcelable { /** * Get data connection APN type */ + @UnsupportedAppUsage public String getDataConnectionAPNType() { return mAPNType; } @@ -133,6 +138,7 @@ public class PreciseDataConnectionState implements Parcelable { /** * Get data connection APN. */ + @UnsupportedAppUsage public String getDataConnectionAPN() { return mAPN; } @@ -140,6 +146,7 @@ public class PreciseDataConnectionState implements Parcelable { /** * Get data connection change reason. */ + @UnsupportedAppUsage public String getDataConnectionChangeReason() { return mReason; } @@ -147,6 +154,7 @@ public class PreciseDataConnectionState implements Parcelable { /** * Get the properties of the network link. */ + @UnsupportedAppUsage public LinkProperties getDataConnectionLinkProperties() { return mLinkProperties; } @@ -154,6 +162,7 @@ public class PreciseDataConnectionState implements Parcelable { /** * Get data connection fail cause, in case there was a failure. */ + @UnsupportedAppUsage public String getDataConnectionFailCause() { return mFailCause; } diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index d657bae0981e..1d79988fecb3 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -77,6 +78,7 @@ public class RadioAccessFamily implements Parcelable { * in RadioAccessFamily. It's a bit mask value to represent * the support type. */ + @UnsupportedAppUsage public RadioAccessFamily(int phoneId, int radioAccessFamily) { mPhoneId = phoneId; mRadioAccessFamily = radioAccessFamily; @@ -87,6 +89,7 @@ public class RadioAccessFamily implements Parcelable { * * @return phone ID */ + @UnsupportedAppUsage public int getPhoneId() { return mPhoneId; } @@ -96,6 +99,7 @@ public class RadioAccessFamily implements Parcelable { * * @return radio access family */ + @UnsupportedAppUsage public int getRadioAccessFamily() { return mRadioAccessFamily; } @@ -150,6 +154,7 @@ public class RadioAccessFamily implements Parcelable { } }; + @UnsupportedAppUsage public static int getRafFromNetworkType(int type) { int raf; @@ -263,6 +268,7 @@ public class RadioAccessFamily implements Parcelable { return TelephonyManager.NETWORK_CLASS_UNKNOWN; } + @UnsupportedAppUsage public static int getNetworkTypeFromRaf(int raf) { int type; diff --git a/telephony/java/android/telephony/Rlog.java b/telephony/java/android/telephony/Rlog.java index e0b46e10eab5..5f2fa335135f 100644 --- a/telephony/java/android/telephony/Rlog.java +++ b/telephony/java/android/telephony/Rlog.java @@ -20,6 +20,7 @@ import android.os.Build; import android.text.TextUtils; import android.util.Log; +import android.annotation.UnsupportedAppUsage; import android.util.Base64; import java.security.MessageDigest; @@ -38,6 +39,7 @@ public final class Rlog { private Rlog() { } + @UnsupportedAppUsage public static int v(String tag, String msg) { return Log.println_native(Log.LOG_ID_RADIO, Log.VERBOSE, tag, msg); } @@ -47,28 +49,34 @@ public final class Rlog { msg + '\n' + Log.getStackTraceString(tr)); } + @UnsupportedAppUsage public static int d(String tag, String msg) { return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg); } + @UnsupportedAppUsage public static int d(String tag, String msg, Throwable tr) { return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg + '\n' + Log.getStackTraceString(tr)); } + @UnsupportedAppUsage public static int i(String tag, String msg) { return Log.println_native(Log.LOG_ID_RADIO, Log.INFO, tag, msg); } + @UnsupportedAppUsage public static int i(String tag, String msg, Throwable tr) { return Log.println_native(Log.LOG_ID_RADIO, Log.INFO, tag, msg + '\n' + Log.getStackTraceString(tr)); } + @UnsupportedAppUsage public static int w(String tag, String msg) { return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag, msg); } + @UnsupportedAppUsage public static int w(String tag, String msg, Throwable tr) { return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag, msg + '\n' + Log.getStackTraceString(tr)); @@ -78,10 +86,12 @@ public final class Rlog { return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag, Log.getStackTraceString(tr)); } + @UnsupportedAppUsage public static int e(String tag, String msg) { return Log.println_native(Log.LOG_ID_RADIO, Log.ERROR, tag, msg); } + @UnsupportedAppUsage public static int e(String tag, String msg, Throwable tr) { return Log.println_native(Log.LOG_ID_RADIO, Log.ERROR, tag, msg + '\n' + Log.getStackTraceString(tr)); diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 9e8529e20a7b..2ee1a09e87b6 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -19,6 +19,7 @@ package android.telephony; import android.annotation.IntDef; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -169,6 +170,7 @@ public class ServiceState implements Parcelable { * IWLAN * @hide */ + @UnsupportedAppUsage public static final int RIL_RADIO_TECHNOLOGY_IWLAN = 18; /** @@ -233,6 +235,7 @@ public class ServiceState implements Parcelable { private String mDataOperatorAlphaLong; private String mDataOperatorAlphaShort; private String mDataOperatorNumeric; + @UnsupportedAppUsage private boolean mIsManualNetworkSelection; private boolean mIsEmergencyOnly; @@ -240,16 +243,24 @@ public class ServiceState implements Parcelable { private int mRilVoiceRadioTechnology; private int mRilDataRadioTechnology; + @UnsupportedAppUsage private boolean mCssIndicator; + @UnsupportedAppUsage private int mNetworkId; + @UnsupportedAppUsage private int mSystemId; + @UnsupportedAppUsage private int mCdmaRoamingIndicator; + @UnsupportedAppUsage private int mCdmaDefaultRoamingIndicator; + @UnsupportedAppUsage private int mCdmaEriIconIndex; + @UnsupportedAppUsage private int mCdmaEriIconMode; private boolean mIsDataRoamingFromRegistration; + @UnsupportedAppUsage private boolean mIsUsingCarrierAggregation; private int mChannelNumber; @@ -294,6 +305,7 @@ public class ServiceState implements Parcelable { * @return newly created ServiceState * @hide */ + @UnsupportedAppUsage public static ServiceState newFromBundle(Bundle m) { ServiceState ret; ret = new ServiceState(); @@ -442,6 +454,7 @@ public class ServiceState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getVoiceRegState() { return mVoiceRegState; } @@ -456,6 +469,7 @@ public class ServiceState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getDataRegState() { return mDataRegState; } @@ -516,6 +530,7 @@ public class ServiceState implements Parcelable { * @return roaming status * @hide */ + @UnsupportedAppUsage public boolean getVoiceRoaming() { return mVoiceRoamingType != ROAMING_TYPE_NOT_ROAMING; } @@ -525,6 +540,7 @@ public class ServiceState implements Parcelable { * @return roaming type * @hide */ + @UnsupportedAppUsage public int getVoiceRoamingType() { return mVoiceRoamingType; } @@ -534,6 +550,7 @@ public class ServiceState implements Parcelable { * @return roaming type * @hide */ + @UnsupportedAppUsage public boolean getDataRoaming() { return mDataRoamingType != ROAMING_TYPE_NOT_ROAMING; } @@ -545,6 +562,7 @@ public class ServiceState implements Parcelable { * once the data registration phase has completed. * @hide */ + @UnsupportedAppUsage public void setDataRoamingFromRegistration(boolean dataRoaming) { mIsDataRoamingFromRegistration = dataRoaming; } @@ -563,6 +581,7 @@ public class ServiceState implements Parcelable { * @return roaming type * @hide */ + @UnsupportedAppUsage public int getDataRoamingType() { return mDataRoamingType; } @@ -570,6 +589,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public boolean isEmergencyOnly() { return mIsEmergencyOnly; } @@ -577,6 +597,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public int getCdmaRoamingIndicator(){ return this.mCdmaRoamingIndicator; } @@ -584,6 +605,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public int getCdmaDefaultRoamingIndicator(){ return this.mCdmaDefaultRoamingIndicator; } @@ -591,6 +613,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public int getCdmaEriIconIndex() { return this.mCdmaEriIconIndex; } @@ -598,6 +621,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public int getCdmaEriIconMode() { return this.mCdmaEriIconMode; } @@ -619,6 +643,7 @@ public class ServiceState implements Parcelable { * @return long name of operator * @hide */ + @UnsupportedAppUsage public String getVoiceOperatorAlphaLong() { return mVoiceOperatorAlphaLong; } @@ -648,6 +673,7 @@ public class ServiceState implements Parcelable { * @return short name of operator, null if unregistered or unknown * @hide */ + @UnsupportedAppUsage public String getVoiceOperatorAlphaShort() { return mVoiceOperatorAlphaShort; } @@ -657,6 +683,7 @@ public class ServiceState implements Parcelable { * @return short name of operator, null if unregistered or unknown * @hide */ + @UnsupportedAppUsage public String getDataOperatorAlphaShort() { return mDataOperatorAlphaShort; } @@ -700,6 +727,7 @@ public class ServiceState implements Parcelable { * @return numeric format of operator, null if unregistered or unknown * @hide */ + @UnsupportedAppUsage public String getVoiceOperatorNumeric() { return mVoiceOperatorNumeric; } @@ -709,6 +737,7 @@ public class ServiceState implements Parcelable { * @return numeric format of operator, null if unregistered or unknown * @hide */ + @UnsupportedAppUsage public String getDataOperatorNumeric() { return mDataOperatorNumeric; } @@ -794,6 +823,7 @@ public class ServiceState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public static String rilRadioTechnologyToString(int rt) { String rtString; @@ -968,12 +998,14 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public void setVoiceRegState(int state) { mVoiceRegState = state; if (DBG) Rlog.d(LOG_TAG, "[ServiceState] setVoiceRegState=" + mVoiceRegState); } /** @hide */ + @UnsupportedAppUsage public void setDataRegState(int state) { mDataRegState = state; if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setDataRegState=" + mDataRegState); @@ -997,21 +1029,25 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public void setVoiceRoaming(boolean roaming) { mVoiceRoamingType = (roaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ + @UnsupportedAppUsage public void setVoiceRoamingType(int type) { mVoiceRoamingType = type; } /** @hide */ + @UnsupportedAppUsage public void setDataRoaming(boolean dataRoaming) { mDataRoamingType = (dataRoaming ? ROAMING_TYPE_UNKNOWN : ROAMING_TYPE_NOT_ROAMING); } /** @hide */ + @UnsupportedAppUsage public void setDataRoamingType(int type) { mDataRoamingType = type; } @@ -1019,6 +1055,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public void setEmergencyOnly(boolean emergencyOnly) { mIsEmergencyOnly = emergencyOnly; } @@ -1026,6 +1063,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public void setCdmaRoamingIndicator(int roaming) { this.mCdmaRoamingIndicator = roaming; } @@ -1033,6 +1071,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public void setCdmaDefaultRoamingIndicator (int roaming) { this.mCdmaDefaultRoamingIndicator = roaming; } @@ -1040,6 +1079,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public void setCdmaEriIconIndex(int index) { this.mCdmaEriIconIndex = index; } @@ -1047,6 +1087,7 @@ public class ServiceState implements Parcelable { /** * @hide */ + @UnsupportedAppUsage public void setCdmaEriIconMode(int mode) { this.mCdmaEriIconMode = mode; } @@ -1080,6 +1121,7 @@ public class ServiceState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public void setOperatorAlphaLong(String longName) { mVoiceOperatorAlphaLong = longName; mDataOperatorAlphaLong = longName; @@ -1106,6 +1148,7 @@ public class ServiceState implements Parcelable { * @param b second obj * @return true if two objects equal or both are null */ + @UnsupportedAppUsage private static boolean equalsHandlesNulls (Object a, Object b) { return (a == null) ? (b == null) : a.equals (b); } @@ -1116,6 +1159,7 @@ public class ServiceState implements Parcelable { * @param m intent notifier map * @hide */ + @UnsupportedAppUsage private void setFromNotifierBundle(Bundle m) { mVoiceRegState = m.getInt("voiceRegState"); mDataRegState = m.getInt("dataRegState"); @@ -1149,6 +1193,7 @@ public class ServiceState implements Parcelable { * @param m intent notifier Bundle * @hide */ + @UnsupportedAppUsage public void fillInNotifierBundle(Bundle m) { m.putInt("voiceRegState", mVoiceRegState); m.putInt("dataRegState", mDataRegState); @@ -1221,6 +1266,7 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public void setCssIndicator(int css) { this.mCssIndicator = (css != 0); } @@ -1233,10 +1279,12 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public int getRilVoiceRadioTechnology() { return this.mRilVoiceRadioTechnology; } /** @hide */ + @UnsupportedAppUsage public int getRilDataRadioTechnology() { return this.mRilDataRadioTechnology; } @@ -1245,6 +1293,7 @@ public class ServiceState implements Parcelable { * @Deprecated to be removed Q3 2013 use {@link #getRilDataRadioTechnology} or * {@link #getRilVoiceRadioTechnology} */ + @UnsupportedAppUsage public int getRadioTechnology() { Rlog.e(LOG_TAG, "ServiceState.getRadioTechnology() DEPRECATED will be removed *******"); return getRilDataRadioTechnology(); @@ -1374,16 +1423,19 @@ public class ServiceState implements Parcelable { /** @hide */ + @UnsupportedAppUsage public int getDataNetworkType() { return rilRadioTechnologyToNetworkType(mRilDataRadioTechnology); } /** @hide */ + @UnsupportedAppUsage public int getVoiceNetworkType() { return rilRadioTechnologyToNetworkType(mRilVoiceRadioTechnology); } /** @hide */ + @UnsupportedAppUsage public int getCssIndicator() { return this.mCssIndicator ? 1 : 0; } @@ -1407,6 +1459,7 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public static boolean isGsm(int radioTechnology) { return radioTechnology == RIL_RADIO_TECHNOLOGY_GPRS || radioTechnology == RIL_RADIO_TECHNOLOGY_EDGE @@ -1424,6 +1477,7 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public static boolean isCdma(int radioTechnology) { return radioTechnology == RIL_RADIO_TECHNOLOGY_IS95A || radioTechnology == RIL_RADIO_TECHNOLOGY_IS95B @@ -1441,11 +1495,13 @@ public class ServiceState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public static boolean bearerBitmapHasCdma(int radioTechnologyBitmap) { return (RIL_RADIO_CDMA_TECHNOLOGY_BITMASK & radioTechnologyBitmap) != 0; } /** @hide */ + @UnsupportedAppUsage public static boolean bitmaskHasTech(int bearerBitmask, int radioTech) { if (bearerBitmask == 0) { return true; @@ -1517,6 +1573,7 @@ public class ServiceState implements Parcelable { * voice SS. The voice SS is only used if it is IN_SERVICE (otherwise the base SS is returned). * @hide * */ + @UnsupportedAppUsage public static ServiceState mergeServiceStates(ServiceState baseSs, ServiceState voiceSs) { if (voiceSs.mVoiceRegState != STATE_IN_SERVICE) { return baseSs; diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 95abb910e273..ed758a98a04c 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -36,21 +37,27 @@ public class SignalStrength implements Parcelable { private static final boolean DBG = false; /** @hide */ + @UnsupportedAppUsage public static final int SIGNAL_STRENGTH_NONE_OR_UNKNOWN = TelephonyProtoEnums.SIGNAL_STRENGTH_NONE_OR_UNKNOWN; // = 0 /** @hide */ + @UnsupportedAppUsage public static final int SIGNAL_STRENGTH_POOR = TelephonyProtoEnums.SIGNAL_STRENGTH_POOR; // = 1 /** @hide */ + @UnsupportedAppUsage public static final int SIGNAL_STRENGTH_MODERATE = TelephonyProtoEnums.SIGNAL_STRENGTH_MODERATE; // = 2 /** @hide */ + @UnsupportedAppUsage public static final int SIGNAL_STRENGTH_GOOD = TelephonyProtoEnums.SIGNAL_STRENGTH_GOOD; // = 3 /** @hide */ + @UnsupportedAppUsage public static final int SIGNAL_STRENGTH_GREAT = TelephonyProtoEnums.SIGNAL_STRENGTH_GREAT; // = 4 /** @hide */ + @UnsupportedAppUsage public static final int NUM_SIGNAL_STRENGTH_BINS = 5; /** @hide */ public static final String[] SIGNAL_STRENGTH_NAMES = { @@ -75,24 +82,39 @@ public class SignalStrength implements Parcelable { private static final String MEASUMENT_TYPE_RSCP = "rscp"; /** Parameters reported by the Radio */ + @UnsupportedAppUsage private int mGsmSignalStrength; // Valid values are (0-31, 99) as defined in TS 27.007 8.5 + @UnsupportedAppUsage private int mGsmBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 + @UnsupportedAppUsage private int mCdmaDbm; // This value is the RSSI value + @UnsupportedAppUsage private int mCdmaEcio; // This value is the Ec/Io + @UnsupportedAppUsage private int mEvdoDbm; // This value is the EVDO RSSI value + @UnsupportedAppUsage private int mEvdoEcio; // This value is the EVDO Ec/Io + @UnsupportedAppUsage private int mEvdoSnr; // Valid values are 0-8. 8 is the highest signal to noise ratio + @UnsupportedAppUsage private int mLteSignalStrength; + @UnsupportedAppUsage private int mLteRsrp; + @UnsupportedAppUsage private int mLteRsrq; + @UnsupportedAppUsage private int mLteRssnr; + @UnsupportedAppUsage private int mLteCqi; + @UnsupportedAppUsage private int mTdScdmaRscp; // Valid values are -24...-120dBm or INVALID if unknown private int mWcdmaSignalStrength; private int mWcdmaRscpAsu; // the WCDMA RSCP in ASU as reported from the HAL + @UnsupportedAppUsage private int mWcdmaRscp; // the WCDMA RSCP in dBm /** Parameters from the framework */ + @UnsupportedAppUsage private int mLteRsrpBoost; // offset to be reduced from the rsrp threshold while calculating // signal strength level private boolean mIsGsm; // This value is set by the ServiceStateTracker @@ -121,6 +143,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public static SignalStrength newFromBundle(Bundle m) { SignalStrength ret; ret = new SignalStrength(); @@ -133,6 +156,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public SignalStrength() { this(true); } @@ -145,6 +169,7 @@ public class SignalStrength implements Parcelable { * @return newly created SignalStrength * @hide */ + @UnsupportedAppUsage public SignalStrength(boolean gsmFlag) { mGsmSignalStrength = 99; mGsmBitErrorRate = -1; @@ -247,6 +272,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public SignalStrength(SignalStrength s) { copyFrom(s); } @@ -254,6 +280,7 @@ public class SignalStrength implements Parcelable { /** * @hide */ + @UnsupportedAppUsage protected void copyFrom(SignalStrength s) { mGsmSignalStrength = s.mGsmSignalStrength; mGsmBitErrorRate = s.mGsmBitErrorRate; @@ -284,6 +311,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public SignalStrength(Parcel in) { if (DBG) log("Size of signalstrength parcel:" + in.dataSize()); @@ -351,6 +379,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public static final Parcelable.Creator<SignalStrength> CREATOR = new Parcelable.Creator() { public SignalStrength createFromParcel(Parcel in) { return new SignalStrength(in); @@ -372,6 +401,7 @@ public class SignalStrength implements Parcelable { * Valid values for all signalstrength fields * @hide */ + @UnsupportedAppUsage public void validateInput() { if (DBG) log("Signal before validate=" + this); // TS 27.007 8.5 @@ -546,26 +576,31 @@ public class SignalStrength implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public int getLteSignalStrength() { return mLteSignalStrength; } /** @hide */ + @UnsupportedAppUsage public int getLteRsrp() { return mLteRsrp; } /** @hide */ + @UnsupportedAppUsage public int getLteRsrq() { return mLteRsrq; } /** @hide */ + @UnsupportedAppUsage public int getLteRssnr() { return mLteRssnr; } /** @hide */ + @UnsupportedAppUsage public int getLteCqi() { return mLteCqi; } @@ -594,6 +629,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getAsuLevel() { int asuLevel = 0; if (mIsGsm) { @@ -629,6 +665,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getDbm() { int dBm = INVALID; @@ -661,6 +698,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getGsmDbm() { int dBm; @@ -680,6 +718,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getGsmLevel() { int level; @@ -702,6 +741,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getGsmAsuLevel() { // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak @@ -717,6 +757,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getCdmaLevel() { final int cdmaDbm = getCdmaDbm(); final int cdmaEcio = getCdmaEcio(); @@ -746,6 +787,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getCdmaAsuLevel() { final int cdmaDbm = getCdmaDbm(); final int cdmaEcio = getCdmaEcio(); @@ -777,6 +819,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getEvdoLevel() { int evdoDbm = getEvdoDbm(); int evdoSnr = getEvdoSnr(); @@ -805,6 +848,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getEvdoAsuLevel() { int evdoDbm = getEvdoDbm(); int evdoSnr = getEvdoSnr(); @@ -835,6 +879,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getLteDbm() { return mLteRsrp; } @@ -844,6 +889,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getLteLevel() { /* * TS 36.214 Physical Layer Section 5.1.3 @@ -930,6 +976,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getLteAsuLevel() { int lteAsuLevel = 99; int lteDbm = getLteDbm(); @@ -973,6 +1020,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getTdScdmaDbm() { return this.mTdScdmaRscp; } @@ -985,6 +1033,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getTdScdmaLevel() { final int tdScdmaDbm = getTdScdmaDbm(); int level; @@ -1006,6 +1055,7 @@ public class SignalStrength implements Parcelable { * * @hide */ + @UnsupportedAppUsage public int getTdScdmaAsuLevel() { final int tdScdmaDbm = getTdScdmaDbm(); int tdScdmaAsuLevel; @@ -1245,6 +1295,7 @@ public class SignalStrength implements Parcelable { * @param m intent notifier map * @hide */ + @UnsupportedAppUsage private void setFromNotifierBundle(Bundle m) { mGsmSignalStrength = m.getInt("GsmSignalStrength"); mGsmBitErrorRate = m.getInt("GsmBitErrorRate"); @@ -1282,6 +1333,7 @@ public class SignalStrength implements Parcelable { * @param m intent notifier Bundle * @hide */ + @UnsupportedAppUsage public void fillInNotifierBundle(Bundle m) { m.putInt("GsmSignalStrength", mGsmSignalStrength); m.putInt("GsmBitErrorRate", mGsmBitErrorRate); diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index 38bc64036de0..9565507f4505 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -19,6 +19,7 @@ package android.telephony; import android.annotation.RequiresPermission; import android.annotation.SuppressAutoDoc; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.app.ActivityThread; import android.app.PendingIntent; import android.content.ActivityNotFoundException; @@ -88,6 +89,7 @@ public final class SmsManager { new ArrayMap<Integer, SmsManager>(); /** A concrete subscription id, or the pseudo DEFAULT_SUBSCRIPTION_ID */ + @UnsupportedAppUsage private int mSubId; /* @@ -440,6 +442,7 @@ public final class SmsManager { * @throws IllegalArgumentException if destinationAddress or text are empty * {@hide} */ + @UnsupportedAppUsage public void sendTextMessage( String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, @@ -493,6 +496,7 @@ public final class SmsManager { * PendingIntent, int, boolean, int) * @hide */ + @UnsupportedAppUsage public void sendTextMessageWithoutPersisting( String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, int priority, @@ -718,6 +722,7 @@ public final class SmsManager { * @throws IllegalArgumentException if destinationAddress or data are empty * {@hide} */ + @UnsupportedAppUsage public void sendMultipartTextMessage( String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents, @@ -985,6 +990,7 @@ public final class SmsManager { * @throws IllegalArgumentException if pdu is NULL * {@hide} */ + @UnsupportedAppUsage public boolean copyMessageToIcc(byte[] smsc, byte[] pdu,int status) { boolean success = false; @@ -1015,6 +1021,7 @@ public final class SmsManager { * * {@hide} */ + @UnsupportedAppUsage public boolean deleteMessageFromIcc(int messageIndex) { boolean success = false; @@ -1049,6 +1056,7 @@ public final class SmsManager { * * {@hide} */ + @UnsupportedAppUsage public boolean updateMessageOnIcc(int messageIndex, int newStatus, byte[] pdu) { boolean success = false; @@ -1075,6 +1083,7 @@ public final class SmsManager { * * {@hide} */ + @UnsupportedAppUsage public ArrayList<SmsMessage> getAllMessagesFromIcc() { List<SmsRawData> records = null; @@ -1187,6 +1196,7 @@ public final class SmsManager { * @throws IllegalArgumentException if endMessageId < startMessageId * {@hide} */ + @UnsupportedAppUsage public boolean enableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { boolean success = false; @@ -1229,6 +1239,7 @@ public final class SmsManager { * @throws IllegalArgumentException if endMessageId < startMessageId * {@hide} */ + @UnsupportedAppUsage public boolean disableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { boolean success = false; @@ -1346,6 +1357,7 @@ public final class SmsManager { * @return true if enabled, false otherwise * @hide */ + @UnsupportedAppUsage public boolean isSMSPromptEnabled() { ISms iccISms = null; try { diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java index 57f89e316e1c..91e24a955013 100644 --- a/telephony/java/android/telephony/SmsMessage.java +++ b/telephony/java/android/telephony/SmsMessage.java @@ -20,6 +20,7 @@ import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA; import android.annotation.Nullable; import android.annotation.StringDef; +import android.annotation.UnsupportedAppUsage; import android.content.res.Resources; import android.os.Binder; import android.text.TextUtils; @@ -107,18 +108,21 @@ public class SmsMessage { * * @hide */ + @UnsupportedAppUsage public SmsMessageBase mWrappedSmsMessage; /** Indicates the subId * * @hide */ + @UnsupportedAppUsage private int mSubId = 0; /** set Subscription information * * @hide */ + @UnsupportedAppUsage public void setSubId(int subId) { mSubId = subId; } @@ -127,6 +131,7 @@ public class SmsMessage { * * @hide */ + @UnsupportedAppUsage public int getSubId() { return mSubId; } @@ -368,6 +373,7 @@ public class SmsMessage { * * @hide */ + @UnsupportedAppUsage public static ArrayList<String> fragmentText(String text) { // This function is for MO SMS TextEncodingDetails ted = (useCdmaFormatForMoSms()) ? @@ -822,6 +828,7 @@ public class SmsMessage { * * @return true if Cdma format should be used for MO SMS, false otherwise. */ + @UnsupportedAppUsage private static boolean useCdmaFormatForMoSms() { // IMS is registered with SMS support, check the SMS format supported return useCdmaFormatForMoSms(SubscriptionManager.getDefaultSmsSubscriptionId()); @@ -836,6 +843,7 @@ public class SmsMessage { * * @return true if Cdma format should be used for MO SMS, false otherwise. */ + @UnsupportedAppUsage private static boolean useCdmaFormatForMoSms(int subId) { SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(subId); if (!smsManager.isImsSmsSupported()) { diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index 2bc43d410174..ec266229b83a 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -18,6 +18,7 @@ package android.telephony; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -216,6 +217,7 @@ public class SubscriptionInfo implements Parcelable { * Sets the name displayed to the user that identifies this subscription * @hide */ + @UnsupportedAppUsage public void setDisplayName(CharSequence name) { this.mDisplayName = name; } @@ -240,6 +242,7 @@ public class SubscriptionInfo implements Parcelable { * NAME_SOURCE_SIM_SOURCE or NAME_SOURCE_USER_INPUT. * @hide */ + @UnsupportedAppUsage public int getNameSource() { return this.mNameSource; } @@ -298,6 +301,7 @@ public class SubscriptionInfo implements Parcelable { * Sets the color displayed to the user that identifies this subscription * @hide */ + @UnsupportedAppUsage public void setIconTint(int iconTint) { this.mIconTint = iconTint; } diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 151b936604fd..119733e6a3d1 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -28,6 +28,7 @@ import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SuppressAutoDoc; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.UnsupportedAppUsage; import android.app.BroadcastOptions; import android.app.PendingIntent; import android.content.Context; @@ -86,6 +87,7 @@ public class SubscriptionManager { /** Indicates the caller wants the default sub id. */ /** @hide */ + @UnsupportedAppUsage public static final int DEFAULT_SUBSCRIPTION_ID = Integer.MAX_VALUE; /** @@ -108,6 +110,7 @@ public class SubscriptionManager { public static final int MAX_SUBSCRIPTION_ID_VALUE = DEFAULT_SUBSCRIPTION_ID - 1; /** @hide */ + @UnsupportedAppUsage public static final Uri CONTENT_URI = Uri.parse("content://telephony/siminfo"); /** @@ -185,6 +188,7 @@ public class SubscriptionManager { * The name_source is from the user * @hide */ + @UnsupportedAppUsage public static final int NAME_SOURCE_USER_INPUT = 2; /** @@ -615,6 +619,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public SubscriptionManager(Context context) { if (DBG) logd("SubscriptionManager created"); mContext = context; @@ -793,6 +798,7 @@ public class SubscriptionManager { * include those that were inserted before, maybe empty but not null. * @hide */ + @UnsupportedAppUsage public List<SubscriptionInfo> getAllSubscriptionInfoList() { if (VDBG) logd("[getAllSubscriptionInfoList]+"); @@ -964,6 +970,7 @@ public class SubscriptionManager { * all subscriptions that have been seen. * @hide */ + @UnsupportedAppUsage public int getAllSubscriptionInfoCount() { if (VDBG) logd("[getAllSubscriptionInfoCount]+"); @@ -1069,6 +1076,7 @@ public class SubscriptionManager { * @return the number of records updated * @hide */ + @UnsupportedAppUsage public int setIconTint(int tint, int subId) { if (VDBG) logd("[setIconTint]+ tint:" + tint + " subId:" + subId); return setSubscriptionPropertyHelper(subId, "setIconTint", @@ -1096,6 +1104,7 @@ public class SubscriptionManager { * @return the number of records updated or < 0 if invalid subId * @hide */ + @UnsupportedAppUsage public int setDisplayName(String displayName, int subId, long nameSource) { if (VDBG) { logd("[setDisplayName]+ displayName:" + displayName + " subId:" + subId @@ -1113,6 +1122,7 @@ public class SubscriptionManager { * @return the number of records updated * @hide */ + @UnsupportedAppUsage public int setDisplayNumber(String number, int subId) { if (number == null) { logd("[setDisplayNumber]- fail"); @@ -1130,6 +1140,7 @@ public class SubscriptionManager { * @return the number of records updated * @hide */ + @UnsupportedAppUsage public int setDataRoaming(int roaming, int subId) { if (VDBG) logd("[setDataRoaming]+ roaming:" + roaming + " subId:" + subId); return setSubscriptionPropertyHelper(subId, "setDataRoaming", @@ -1143,6 +1154,7 @@ public class SubscriptionManager { * SIM_NOT_INSERTED or < 0 if an invalid slot index * @hide */ + @UnsupportedAppUsage public static int getSlotIndex(int subId) { if (!isValidSubscriptionId(subId)) { if (DBG) { @@ -1166,6 +1178,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public static int[] getSubId(int slotIndex) { if (!isValidSlotIndex(slotIndex)) { logd("[getSubId]- fail"); @@ -1187,6 +1200,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public static int getPhoneId(int subId) { if (!isValidSubscriptionId(subId)) { if (DBG) { @@ -1284,11 +1298,13 @@ public class SubscriptionManager { * @return the SubscriptionInfo for the default voice subscription. * @hide */ + @UnsupportedAppUsage public SubscriptionInfo getDefaultVoiceSubscriptionInfo() { return getActiveSubscriptionInfo(getDefaultVoiceSubscriptionId()); } /** @hide */ + @UnsupportedAppUsage public static int getDefaultVoicePhoneId() { return getPhoneId(getDefaultVoiceSubscriptionId()); } @@ -1317,6 +1333,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public void setDefaultSmsSubId(int subId) { if (VDBG) logd("setDefaultSmsSubId sub id = " + subId); try { @@ -1342,6 +1359,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public int getDefaultSmsPhoneId() { return getPhoneId(getDefaultSmsSubscriptionId()); } @@ -1370,6 +1388,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public void setDefaultDataSubId(int subId) { if (VDBG) logd("setDataSubscription sub id = " + subId); try { @@ -1390,11 +1409,13 @@ public class SubscriptionManager { * @return the SubscriptionInfo for the default data subscription. * @hide */ + @UnsupportedAppUsage public SubscriptionInfo getDefaultDataSubscriptionInfo() { return getActiveSubscriptionInfo(getDefaultDataSubscriptionId()); } /** @hide */ + @UnsupportedAppUsage public int getDefaultDataPhoneId() { return getPhoneId(getDefaultDataSubscriptionId()); } @@ -1433,6 +1454,7 @@ public class SubscriptionManager { * an invalid subscription id, i.e. < 0. * @hide */ + @UnsupportedAppUsage public void clearDefaultsForInactiveSubIds() { if (VDBG) logd("clearDefaultsForInactiveSubIds"); try { @@ -1449,6 +1471,7 @@ public class SubscriptionManager { * @return true if a valid subId else false * @hide */ + @UnsupportedAppUsage public static boolean isValidSubscriptionId(int subId) { return subId > INVALID_SUBSCRIPTION_ID ; } @@ -1458,21 +1481,25 @@ public class SubscriptionManager { * usable subId means its neither a INVALID_SUBSCRIPTION_ID nor a DEFAULT_SUB_ID. * @hide */ + @UnsupportedAppUsage public static boolean isUsableSubIdValue(int subId) { return subId >= MIN_SUBSCRIPTION_ID_VALUE && subId <= MAX_SUBSCRIPTION_ID_VALUE; } /** @hide */ + @UnsupportedAppUsage public static boolean isValidSlotIndex(int slotIndex) { return slotIndex >= 0 && slotIndex < TelephonyManager.getDefault().getSimCount(); } /** @hide */ + @UnsupportedAppUsage public static boolean isValidPhoneId(int phoneId) { return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getPhoneCount(); } /** @hide */ + @UnsupportedAppUsage public static void putPhoneIdAndSubIdExtra(Intent intent, int phoneId) { int[] subIds = SubscriptionManager.getSubId(phoneId); if (subIds != null && subIds.length > 0) { @@ -1483,6 +1510,7 @@ public class SubscriptionManager { } /** @hide */ + @UnsupportedAppUsage public static void putPhoneIdAndSubIdExtra(Intent intent, int phoneId, int subId) { if (VDBG) logd("putPhoneIdAndSubIdExtra: phoneId=" + phoneId + " subId=" + subId); intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId); @@ -1498,6 +1526,7 @@ public class SubscriptionManager { * is never null but the length maybe 0. * @hide */ + @UnsupportedAppUsage public @NonNull int[] getActiveSubscriptionIdList() { int[] subId = null; @@ -1656,6 +1685,7 @@ public class SubscriptionManager { * @return Resources associated with Subscription. * @hide */ + @UnsupportedAppUsage public static Resources getResourcesForSubId(Context context, int subId) { final SubscriptionInfo subInfo = SubscriptionManager.from(context).getActiveSubscriptionInfo(subId); @@ -1679,6 +1709,7 @@ public class SubscriptionManager { * and the SIM providing the subscription is present in a slot and in "LOADED" state. * @hide */ + @UnsupportedAppUsage public boolean isActiveSubId(int subId) { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index ae3f7a27e15b..3a8dba81c984 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -28,6 +28,7 @@ import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; +import android.annotation.UnsupportedAppUsage; import android.annotation.WorkerThread; import android.app.ActivityThread; import android.app.PendingIntent; @@ -155,6 +156,7 @@ public class TelephonyManager { private final Context mContext; private final int mSubId; + @UnsupportedAppUsage private SubscriptionManager mSubscriptionManager; private TelephonyScanManager mTelephonyScanManager; @@ -168,18 +170,24 @@ public class TelephonyManager { **/ /** @hide */ public enum MultiSimVariants { + @UnsupportedAppUsage DSDS, + @UnsupportedAppUsage DSDA, + @UnsupportedAppUsage TSTS, + @UnsupportedAppUsage UNKNOWN }; /** @hide */ + @UnsupportedAppUsage public TelephonyManager(Context context) { this(context, SubscriptionManager.DEFAULT_SUBSCRIPTION_ID); } /** @hide */ + @UnsupportedAppUsage public TelephonyManager(Context context, int subId) { mSubId = subId; Context appContext = context.getApplicationContext(); @@ -192,6 +200,7 @@ public class TelephonyManager { } /** @hide */ + @UnsupportedAppUsage private TelephonyManager() { mContext = null; mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; @@ -201,6 +210,7 @@ public class TelephonyManager { /** @hide /* @deprecated - use getSystemService as described above */ + @UnsupportedAppUsage public static TelephonyManager getDefault() { return sInstance; } @@ -228,6 +238,7 @@ public class TelephonyManager { * Returns UNKNOWN for others */ /** {@hide} */ + @UnsupportedAppUsage public MultiSimVariants getMultiSimConfiguration() { String mSimConfig = SystemProperties.get(TelephonyProperties.PROPERTY_MULTI_SIM_CONFIG); @@ -288,6 +299,7 @@ public class TelephonyManager { } /** {@hide} */ + @UnsupportedAppUsage public static TelephonyManager from(Context context) { return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); } @@ -319,6 +331,7 @@ public class TelephonyManager { } /** {@hide} */ + @UnsupportedAppUsage public boolean isMultiSimEnabled() { return (multiSimConfig.equals("dsds") || multiSimConfig.equals("dsda") || multiSimConfig.equals("tsts")); @@ -672,6 +685,7 @@ public class TelephonyManager { */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) @Deprecated + @UnsupportedAppUsage public static final String ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED = "android.intent.action.PRECISE_DATA_CONNECTION_STATE_CHANGED"; @@ -1206,6 +1220,7 @@ public class TelephonyManager { */ /** {@hide} */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getDeviceSoftwareVersion(int slotIndex) { ITelephony telephony = getITelephony(); if (telephony == null) return null; @@ -1418,6 +1433,7 @@ public class TelephonyManager { * @param slotIndex of which Nai is returned */ /** {@hide}*/ + @UnsupportedAppUsage public String getNai(int slotIndex) { int[] subId = SubscriptionManager.getSubId(slotIndex); if (subId == null) { @@ -1657,6 +1673,7 @@ public class TelephonyManager { } /** {@hide} */ + @UnsupportedAppUsage private int getPhoneTypeFromProperty(int phoneId) { String type = getTelephonyProperty(phoneId, TelephonyProperties.CURRENT_ACTIVE_PHONE, null); @@ -1691,6 +1708,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static int getPhoneType(int networkMode) { switch(networkMode) { case RILConstants.NETWORK_MODE_CDMA: @@ -1736,6 +1754,7 @@ public class TelephonyManager { /** * The contents of the /proc/cmdline file */ + @UnsupportedAppUsage private static String getProcCmdLine() { String cmdline = ""; @@ -1782,6 +1801,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static int getLteOnCdmaModeStatic() { int retVal; int curVal; @@ -1837,6 +1857,7 @@ public class TelephonyManager { * @param subId * @hide */ + @UnsupportedAppUsage public String getNetworkOperatorName(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ALPHA, ""); @@ -1864,6 +1885,7 @@ public class TelephonyManager { * @param subId * @hide */ + @UnsupportedAppUsage public String getNetworkOperator(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getNetworkOperatorForPhone(phoneId); @@ -1880,6 +1902,7 @@ public class TelephonyManager { * @param phoneId * @hide **/ + @UnsupportedAppUsage public String getNetworkOperatorForPhone(int phoneId) { return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, ""); } @@ -1942,6 +1965,7 @@ public class TelephonyManager { * @param subId * @hide */ + @UnsupportedAppUsage public boolean isNetworkRoaming(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return Boolean.parseBoolean(getTelephonyProperty(phoneId, @@ -1970,6 +1994,7 @@ public class TelephonyManager { * @param subId for which Network CountryIso is returned * @hide */ + @UnsupportedAppUsage public String getNetworkCountryIso(int subId) { return getNetworkCountryIsoForPhone(getPhoneId(subId)); } @@ -1985,6 +2010,7 @@ public class TelephonyManager { * @param phoneId for which Network CountryIso is returned */ /** {@hide} */ + @UnsupportedAppUsage public String getNetworkCountryIsoForPhone(int phoneId) { try { ITelephony telephony = getITelephony(); @@ -2040,6 +2066,7 @@ public class TelephonyManager { /** Current network is IWLAN */ public static final int NETWORK_TYPE_IWLAN = TelephonyProtoEnums.NETWORK_TYPE_IWLAN; // = 18. /** Current network is LTE_CA {@hide} */ + @UnsupportedAppUsage public static final int NETWORK_TYPE_LTE_CA = TelephonyProtoEnums.NETWORK_TYPE_LTE_CA; // = 19. /** Max network type number. Update as new types are added. Don't add negative types. {@hide} */ @@ -2092,6 +2119,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getNetworkType(int subId) { try { ITelephony telephony = getITelephony(); @@ -2154,6 +2182,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getDataNetworkType(int subId) { try{ ITelephony telephony = getITelephony(); @@ -2189,6 +2218,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getVoiceNetworkType(int subId) { try{ ITelephony telephony = getITelephony(); @@ -2216,10 +2246,13 @@ public class TelephonyManager { /** Unknown network class. {@hide} */ public static final int NETWORK_CLASS_UNKNOWN = 0; /** Class of broadly defined "2G" networks. {@hide} */ + @UnsupportedAppUsage public static final int NETWORK_CLASS_2_G = 1; /** Class of broadly defined "3G" networks. {@hide} */ + @UnsupportedAppUsage public static final int NETWORK_CLASS_3_G = 2; /** Class of broadly defined "4G" networks. {@hide} */ + @UnsupportedAppUsage public static final int NETWORK_CLASS_4_G = 3; /** @@ -2228,6 +2261,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static int getNetworkClass(int networkType) { switch (networkType) { case NETWORK_TYPE_GPRS: @@ -2264,6 +2298,7 @@ public class TelephonyManager { * * @hide pending API council review */ + @UnsupportedAppUsage public String getNetworkTypeName() { return getNetworkTypeName(getNetworkType()); } @@ -2276,6 +2311,7 @@ public class TelephonyManager { * */ /** {@hide} */ + @UnsupportedAppUsage public static String getNetworkTypeName(int type) { switch (type) { case NETWORK_TYPE_GPRS: @@ -2475,6 +2511,7 @@ public class TelephonyManager { */ /** {@hide} */ // FIXME Input argument slotIndex should be of type int + @UnsupportedAppUsage public boolean hasIccCard(int slotIndex) { try { @@ -2638,6 +2675,7 @@ public class TelephonyManager { * @param subId for which SimOperator is returned * @hide */ + @UnsupportedAppUsage public String getSimOperator(int subId) { return getSimOperatorNumeric(subId); } @@ -2651,6 +2689,7 @@ public class TelephonyManager { * @see #getSimState * @hide */ + @UnsupportedAppUsage public String getSimOperatorNumeric() { int subId = mSubId; if (!SubscriptionManager.isUsableSubIdValue(subId)) { @@ -2679,6 +2718,7 @@ public class TelephonyManager { * @param subId for which SimOperator is returned * @hide */ + @UnsupportedAppUsage public String getSimOperatorNumeric(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getSimOperatorNumericForPhone(phoneId); @@ -2692,6 +2732,7 @@ public class TelephonyManager { * @param phoneId for which SimOperator is returned * @hide */ + @UnsupportedAppUsage public String getSimOperatorNumericForPhone(int phoneId) { return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, ""); @@ -2718,6 +2759,7 @@ public class TelephonyManager { * @param subId for which SimOperatorName is returned * @hide */ + @UnsupportedAppUsage public String getSimOperatorName(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getSimOperatorNameForPhone(phoneId); @@ -2728,6 +2770,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public String getSimOperatorNameForPhone(int phoneId) { return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA, ""); @@ -2746,6 +2789,7 @@ public class TelephonyManager { * @param subId for which SimCountryIso is returned * @hide */ + @UnsupportedAppUsage public String getSimCountryIso(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getSimCountryIsoForPhone(phoneId); @@ -2756,6 +2800,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public String getSimCountryIsoForPhone(int phoneId) { return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY, ""); @@ -2782,6 +2827,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getSimSerialNumber(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -2807,6 +2853,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getLteOnCdmaMode() { return getLteOnCdmaMode(getSubId()); } @@ -2822,6 +2869,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getLteOnCdmaMode(int subId) { try { ITelephony telephony = getITelephony(); @@ -2929,6 +2977,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getSubscriberId(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -3109,6 +3158,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getGroupIdLevel1(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -3158,6 +3208,7 @@ public class TelephonyManager { android.Manifest.permission.READ_SMS, android.Manifest.permission.READ_PHONE_NUMBERS }) + @UnsupportedAppUsage public String getLine1Number(int subId) { String number = null; try { @@ -3244,6 +3295,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getLine1AlphaTag(int subId) { String alphaTag = null; try { @@ -3278,6 +3330,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public @Nullable String[] getMergedSubscriberIds() { try { ITelephony telephony = getITelephony(); @@ -3296,6 +3349,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getMsisdn() { return getMsisdn(getSubId()); } @@ -3308,6 +3362,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getMsisdn(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -3341,6 +3396,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getVoiceMailNumber(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -3900,6 +3956,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getVoiceMessageCount() { return getVoiceMessageCount(getSubId()); } @@ -3910,6 +3967,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getVoiceMessageCount(int subId) { try { ITelephony telephony = getITelephony(); @@ -3945,6 +4003,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getVoiceMailAlphaTag(int subId) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -3991,6 +4050,7 @@ public class TelephonyManager { * @return the IMPI, or null if not present or not loaded * @hide */ + @UnsupportedAppUsage public String getIsimImpi() { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -4011,6 +4071,7 @@ public class TelephonyManager { * @return the IMS domain name, or null if not present or not loaded * @hide */ + @UnsupportedAppUsage public String getIsimDomain() { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -4032,6 +4093,7 @@ public class TelephonyManager { * not present or not loaded * @hide */ + @UnsupportedAppUsage public String[] getIsimImpu() { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -4050,6 +4112,7 @@ public class TelephonyManager { /** * @hide */ + @UnsupportedAppUsage private IPhoneSubInfo getSubscriberInfo() { // get it each time because that process crashes a lot return IPhoneSubInfo.Stub.asInterface(ServiceManager.getService("iphonesubinfo")); @@ -4115,6 +4178,7 @@ public class TelephonyManager { * @param subId the subscription to check call state for. * @hide */ + @UnsupportedAppUsage public @CallState int getCallState(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); return getCallStateForSlot(phoneId); @@ -4226,6 +4290,7 @@ public class TelephonyManager { /** * @hide */ + @UnsupportedAppUsage private ITelephony getITelephony() { return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE)); } @@ -4310,6 +4375,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getCdmaEriIconIndex(int subId) { try { ITelephony telephony = getITelephony(); @@ -4344,6 +4410,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public int getCdmaEriIconMode(int subId) { try { ITelephony telephony = getITelephony(); @@ -4374,6 +4441,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) + @UnsupportedAppUsage public String getCdmaEriText(int subId) { try { ITelephony telephony = getITelephony(); @@ -4846,6 +4914,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public String nvReadItem(int itemID) { try { ITelephony telephony = getITelephony(); @@ -4926,6 +4995,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public boolean nvResetConfig(int resetType) { try { ITelephony telephony = getITelephony(); @@ -4962,6 +5032,7 @@ public class TelephonyManager { * {@see SubscriptionManager#getDefaultVoiceSubscriptionId()} * {@see SubscriptionManager#getDefaultSmsSubscriptionId()} */ + @UnsupportedAppUsage private int getSubId(int preferredSubId) { if (SubscriptionManager.isUsableSubIdValue(mSubId)) { return mSubId; @@ -4990,6 +5061,7 @@ public class TelephonyManager { * {@see SubscriptionManager#getDefaultVoiceSubscriptionId()} * {@see SubscriptionManager#getDefaultSmsSubscriptionId()} */ + @UnsupportedAppUsage private int getPhoneId(int preferredSubId) { return SubscriptionManager.getPhoneId(getSubId(preferredSubId)); } @@ -5005,6 +5077,7 @@ public class TelephonyManager { * {@hide} */ @VisibleForTesting + @UnsupportedAppUsage public int getSlotIndex() { int slotIndex = SubscriptionManager.getSlotIndex(getSubId()); if (slotIndex == SubscriptionManager.SIM_NOT_INSERTED) { @@ -5018,6 +5091,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static void setTelephonyProperty(int phoneId, String property, String value) { String propVal = ""; String p[] = null; @@ -5095,6 +5169,7 @@ public class TelephonyManager { * @return The value at the given index of settings. * @hide */ + @UnsupportedAppUsage public static int getIntAtIndex(android.content.ContentResolver cr, String name, int index) throws android.provider.Settings.SettingNotFoundException { @@ -5127,6 +5202,7 @@ public class TelephonyManager { * @return true if the value was set, false on database errors * @hide */ + @UnsupportedAppUsage public static boolean putIntAtIndex(android.content.ContentResolver cr, String name, int index, int value) { String data = ""; @@ -5168,6 +5244,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static String getTelephonyProperty(int phoneId, String property, String defaultVal) { String propVal = null; String prop = SystemProperties.get(property); @@ -5188,12 +5265,14 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public static String getTelephonyProperty(String property, String defaultVal) { String propVal = SystemProperties.get(property); return propVal == null ? defaultVal : propVal; } /** @hide */ + @UnsupportedAppUsage public int getSimCount() { // FIXME Need to get it from Telephony Dev Controller when that gets implemented! // and then this method shouldn't be used at all! @@ -5230,6 +5309,7 @@ public class TelephonyManager { * not present or not loaded * @hide */ + @UnsupportedAppUsage public String[] getIsimPcscf() { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -5310,6 +5390,7 @@ public class TelephonyManager { * Authentication error, no memory space available in EFMUK * @hide */ + @UnsupportedAppUsage public String getIccAuthentication(int subId, int appType, int authType, String data) { try { IPhoneSubInfo info = getSubscriberInfo(); @@ -5472,6 +5553,7 @@ public class TelephonyManager { * Corresponds to features defined in ImsFeature. * @hide */ + @UnsupportedAppUsage public @Nullable IImsRegistration getImsRegistration(int slotIndex, int feature) { try { ITelephony telephony = getITelephony(); @@ -5491,6 +5573,7 @@ public class TelephonyManager { * Corresponds to features defined in ImsFeature. * @hide */ + @UnsupportedAppUsage public @Nullable IImsConfig getImsConfig(int slotIndex, int feature) { try { ITelephony telephony = getITelephony(); @@ -5509,6 +5592,7 @@ public class TelephonyManager { * @param Registration state * @hide */ + @UnsupportedAppUsage public void setImsRegistrationState(boolean registered) { try { ITelephony telephony = getITelephony(); @@ -5529,6 +5613,7 @@ public class TelephonyManager { * @return the preferred network type, defined in RILConstants.java. * @hide */ + @UnsupportedAppUsage public int getPreferredNetworkType(int subId) { try { ITelephony telephony = getITelephony(); @@ -5677,6 +5762,7 @@ public class TelephonyManager { * @return true on success; false on any failure. * @hide */ + @UnsupportedAppUsage public boolean setPreferredNetworkType(int subId, int networkType) { try { ITelephony telephony = getITelephony(); @@ -5851,6 +5937,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public boolean setRoamingOverride(List<String> gsmRoamingList, List<String> gsmNonRoamingList, List<String> cdmaRoamingList, List<String> cdmaNonRoamingList) { @@ -6705,6 +6792,7 @@ public class TelephonyManager { * @see SubscriptionManager#getDefaultSubscriptionId() * @hide */ + @UnsupportedAppUsage public boolean isImsRegistered() { try { return getITelephony().isImsRegistered(getSubId()); @@ -6721,6 +6809,7 @@ public class TelephonyManager { * @see SubscriptionManager#getDefaultSubscriptionId() * @hide */ + @UnsupportedAppUsage public boolean isVolteAvailable() { try { return getITelephony().isVolteAvailable(getSubId()); @@ -6737,6 +6826,7 @@ public class TelephonyManager { * @return true if VT is available, or false if it is unavailable or unknown. * @hide */ + @UnsupportedAppUsage public boolean isVideoTelephonyAvailable() { try { return getITelephony().isVideoTelephonyAvailable(getSubId()); @@ -6751,6 +6841,7 @@ public class TelephonyManager { * @return true if VoWiFi is available, or false if it is unavailable or unknown. * @hide */ + @UnsupportedAppUsage public boolean isWifiCallingAvailable() { try { return getITelephony().isWifiCallingAvailable(getSubId()); @@ -6793,6 +6884,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public void setSimOperatorNumericForPhone(int phoneId, String numeric) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, numeric); @@ -6813,6 +6905,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public void setSimOperatorNameForPhone(int phoneId, String name) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA, name); @@ -6833,6 +6926,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public void setSimCountryIsoForPhone(int phoneId, String iso) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY, iso); @@ -6853,6 +6947,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public void setSimStateForPhone(int phoneId, String state) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_SIM_STATE, state); @@ -6958,6 +7053,7 @@ public class TelephonyManager { * @param version baseband version * @hide */ + @UnsupportedAppUsage public void setBasebandVersionForPhone(int phoneId, String version) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_BASEBAND_VERSION, version); } @@ -7023,6 +7119,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public void setPhoneType(int phoneId, int type) { if (SubscriptionManager.isValidPhoneId(phoneId)) { TelephonyManager.setTelephonyProperty(phoneId, @@ -7052,6 +7149,7 @@ public class TelephonyManager { * * @hide */ + @UnsupportedAppUsage public String getOtaSpNumberSchemaForPhone(int phoneId, String defaultValue) { if (SubscriptionManager.isValidPhoneId(phoneId)) { return TelephonyManager.getTelephonyProperty(phoneId, @@ -7139,6 +7237,7 @@ public class TelephonyManager { * @param name the alphabetic name of current registered operator. * @hide */ + @UnsupportedAppUsage public void setNetworkOperatorNameForPhone(int phoneId, String name) { if (SubscriptionManager.isValidPhoneId(phoneId)) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ALPHA, name); @@ -7161,6 +7260,7 @@ public class TelephonyManager { * @param operator the numeric name (MCC+MNC) of current registered operator * @hide */ + @UnsupportedAppUsage public void setNetworkOperatorNumericForPhone(int phoneId, String numeric) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, numeric); } @@ -7181,6 +7281,7 @@ public class TelephonyManager { * @param isRoaming is network in romaing state or not * @hide */ + @UnsupportedAppUsage public void setNetworkRoamingForPhone(int phoneId, boolean isRoaming) { if (SubscriptionManager.isValidPhoneId(phoneId)) { setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ISROAMING, @@ -7208,6 +7309,7 @@ public class TelephonyManager { * @param type the network type currently in use on the device for data transmission * @hide */ + @UnsupportedAppUsage public void setDataNetworkTypeForPhone(int phoneId, int type) { if (SubscriptionManager.isValidPhoneId(phoneId)) { setTelephonyProperty(phoneId, @@ -7220,6 +7322,7 @@ public class TelephonyManager { * Returns the subscription ID for the given phone account. * @hide */ + @UnsupportedAppUsage public int getSubIdForPhoneAccount(PhoneAccount phoneAccount) { int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID; try { @@ -7311,6 +7414,7 @@ public class TelephonyManager { * either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE to retrieve the information. * @hide */ + @UnsupportedAppUsage public ServiceState getServiceStateForSubscriber(int subId) { try { ITelephony service = getITelephony(); diff --git a/telephony/java/android/telephony/VoLteServiceState.java b/telephony/java/android/telephony/VoLteServiceState.java index afef601b9c4c..25bb8b4a414e 100644 --- a/telephony/java/android/telephony/VoLteServiceState.java +++ b/telephony/java/android/telephony/VoLteServiceState.java @@ -16,6 +16,7 @@ package android.telephony; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -77,6 +78,7 @@ public final class VoLteServiceState implements Parcelable { * * @hide */ + @UnsupportedAppUsage public VoLteServiceState(int srvccState) { initialize(); diff --git a/telephony/java/android/telephony/cdma/CdmaCellLocation.java b/telephony/java/android/telephony/cdma/CdmaCellLocation.java index 7c10569f3376..ee602c06f0f7 100644 --- a/telephony/java/android/telephony/cdma/CdmaCellLocation.java +++ b/telephony/java/android/telephony/cdma/CdmaCellLocation.java @@ -16,6 +16,7 @@ package android.telephony.cdma; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.telephony.CellLocation; @@ -23,6 +24,7 @@ import android.telephony.CellLocation; * Represents the cell location on a CDMA phone. */ public class CdmaCellLocation extends CellLocation { + @UnsupportedAppUsage private int mBaseStationId = -1; /** @@ -36,6 +38,7 @@ public class CdmaCellLocation extends CellLocation { * to 1296000, both values inclusive (corresponding to a range of -90 * to +90 degrees). Integer.MAX_VALUE is considered invalid value. */ + @UnsupportedAppUsage private int mBaseStationLatitude = INVALID_LAT_LONG; /** @@ -44,9 +47,12 @@ public class CdmaCellLocation extends CellLocation { * to 2592000, both values inclusive (corresponding to a range of -180 * to +180 degrees). Integer.MAX_VALUE is considered invalid value. */ + @UnsupportedAppUsage private int mBaseStationLongitude = INVALID_LAT_LONG; + @UnsupportedAppUsage private int mSystemId = -1; + @UnsupportedAppUsage private int mNetworkId = -1; /** @@ -200,6 +206,7 @@ public class CdmaCellLocation extends CellLocation { * @param b second obj * @return true if two objects equal or both are null */ + @UnsupportedAppUsage private static boolean equalsHandlesNulls(Object a, Object b) { return (a == null) ? (b == null) : a.equals (b); } diff --git a/telephony/java/android/telephony/euicc/DownloadableSubscription.java b/telephony/java/android/telephony/euicc/DownloadableSubscription.java index edf3b08fbdd2..f1d5bdde92a4 100644 --- a/telephony/java/android/telephony/euicc/DownloadableSubscription.java +++ b/telephony/java/android/telephony/euicc/DownloadableSubscription.java @@ -17,6 +17,7 @@ package android.telephony.euicc; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.app.PendingIntent; import android.os.Parcel; import android.os.Parcelable; @@ -59,6 +60,7 @@ public final class DownloadableSubscription implements Parcelable { */ @Nullable @Deprecated + @UnsupportedAppUsage public final String encodedActivationCode; @Nullable private String confirmationCode; @@ -188,6 +190,7 @@ public final class DownloadableSubscription implements Parcelable { * @deprecated - Do not use. */ @Deprecated + @UnsupportedAppUsage public void setCarrierName(String carrierName) { this.carrierName = carrierName; } @@ -234,6 +237,7 @@ public final class DownloadableSubscription implements Parcelable { * @deprecated - Do not use. */ @Deprecated + @UnsupportedAppUsage public void setAccessRules(UiccAccessRule[] accessRules) { this.accessRules = Arrays.asList(accessRules); } diff --git a/telephony/java/android/telephony/euicc/EuiccInfo.java b/telephony/java/android/telephony/euicc/EuiccInfo.java index a4adf0591a00..28855b2e1794 100644 --- a/telephony/java/android/telephony/euicc/EuiccInfo.java +++ b/telephony/java/android/telephony/euicc/EuiccInfo.java @@ -16,6 +16,7 @@ package android.telephony.euicc; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -43,6 +44,7 @@ public final class EuiccInfo implements Parcelable { }; @Nullable + @UnsupportedAppUsage private final String osVersion; /** diff --git a/telephony/java/android/telephony/gsm/GsmCellLocation.java b/telephony/java/android/telephony/gsm/GsmCellLocation.java index 171780239edf..98ce33368ca6 100644 --- a/telephony/java/android/telephony/gsm/GsmCellLocation.java +++ b/telephony/java/android/telephony/gsm/GsmCellLocation.java @@ -16,6 +16,7 @@ package android.telephony.gsm; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.telephony.CellLocation; @@ -91,6 +92,7 @@ public class GsmCellLocation extends CellLocation { * Set the primary scrambling code. * @hide */ + @UnsupportedAppUsage public void setPsc(int psc) { mPsc = psc; } diff --git a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java index 283112793d87..34b888425fdb 100644 --- a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java +++ b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -30,30 +31,37 @@ public final class ImsCallForwardInfo implements Parcelable { // Refer to ImsUtInterface#CDIV_CF_XXX /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public int mCondition; // 0: disabled, 1: enabled /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public int mStatus; // 0x91: International, 0x81: Unknown /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public int mToA; // Service class /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public int mServiceClass; // Number (it will not include the "sip" or "tel" URI scheme) /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public String mNumber; // No reply timer for CF /** @hide */ // TODO: Make private, do not modify this field directly, use getter. + @UnsupportedAppUsage public int mTimeSeconds; /** @hide */ // TODO: Will be removed in the future, use public constructor instead. + @UnsupportedAppUsage public ImsCallForwardInfo() { } diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java index 350dfe3a8d08..f0d3c8956962 100644 --- a/telephony/java/android/telephony/ims/ImsCallProfile.java +++ b/telephony/java/android/telephony/ims/ImsCallProfile.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -260,8 +261,10 @@ public final class ImsCallProfile implements Parcelable { /** @hide */ public int mServiceType; /** @hide */ + @UnsupportedAppUsage public int mCallType; /** @hide */ + @UnsupportedAppUsage public int mRestrictCause = CALL_RESTRICT_CAUSE_NONE; /** @@ -287,8 +290,10 @@ public final class ImsCallProfile implements Parcelable { * a {@link android.os.Binder}. */ /** @hide */ + @UnsupportedAppUsage public Bundle mCallExtras; /** @hide */ + @UnsupportedAppUsage public ImsStreamMediaProfile mMediaProfile; /** @hide */ @@ -568,6 +573,7 @@ public final class ImsCallProfile implements Parcelable { * See {@link #presentationToOir(int)}. * @hide */ + @UnsupportedAppUsage public static int presentationToOIR(int presentation) { switch (presentation) { case PhoneConstants.PRESENTATION_RESTRICTED: diff --git a/telephony/java/android/telephony/ims/ImsExternalCallState.java b/telephony/java/android/telephony/ims/ImsExternalCallState.java index e158fa84e34e..8d18ae8ed281 100644 --- a/telephony/java/android/telephony/ims/ImsExternalCallState.java +++ b/telephony/java/android/telephony/ims/ImsExternalCallState.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; @@ -58,6 +59,7 @@ public final class ImsExternalCallState implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public ImsExternalCallState(int callId, Uri address, boolean isPullable, int callState, int callType, boolean isCallheld) { mCallId = callId; diff --git a/telephony/java/android/telephony/ims/ImsReasonInfo.java b/telephony/java/android/telephony/ims/ImsReasonInfo.java index 662cc7a652ad..b981f05b9655 100644 --- a/telephony/java/android/telephony/ims/ImsReasonInfo.java +++ b/telephony/java/android/telephony/ims/ImsReasonInfo.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -583,12 +584,15 @@ public final class ImsReasonInfo implements Parcelable { // For main reason code /** @hide */ + @UnsupportedAppUsage public int mCode; // For the extra code value; it depends on the code value. /** @hide */ + @UnsupportedAppUsage public int mExtraCode; // For the additional message of the reason info. /** @hide */ + @UnsupportedAppUsage public String mExtraMessage; /** @hide */ @@ -605,6 +609,7 @@ public final class ImsReasonInfo implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public ImsReasonInfo(int code, int extraCode) { mCode = code; mExtraCode = extraCode; diff --git a/telephony/java/android/telephony/ims/ImsSsInfo.java b/telephony/java/android/telephony/ims/ImsSsInfo.java index e924a2521617..3a784c163afb 100644 --- a/telephony/java/android/telephony/ims/ImsSsInfo.java +++ b/telephony/java/android/telephony/ims/ImsSsInfo.java @@ -18,6 +18,7 @@ package android.telephony.ims; import android.annotation.IntDef; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -65,15 +66,18 @@ public final class ImsSsInfo implements Parcelable { // 0: disabled, 1: enabled /** @hide */ // TODO: Make private, do not modify this field directly, use getter! + @UnsupportedAppUsage public int mStatus; /** @hide */ // TODO: Make private, do not modify this field directly, use getter! + @UnsupportedAppUsage public String mIcbNum; /** @hide */ public int mProvisionStatus = SERVICE_PROVISIONING_UNKNOWN; /**@hide*/ // TODO: Remove! Do not use this constructor, instead use public version. + @UnsupportedAppUsage public ImsSsInfo() { } diff --git a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java index 137106a011b0..52d72b5847b5 100644 --- a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java +++ b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.os.Parcel; import android.os.Parcelable; @@ -82,13 +83,16 @@ public final class ImsStreamMediaProfile implements Parcelable { // Audio related information /** @hide */ + @UnsupportedAppUsage public int mAudioQuality; /** @hide */ + @UnsupportedAppUsage public int mAudioDirection; // Video related information /** @hide */ public int mVideoQuality; /** @hide */ + @UnsupportedAppUsage public int mVideoDirection; // Rtt related information /** @hide */ @@ -156,6 +160,7 @@ public final class ImsStreamMediaProfile implements Parcelable { } /** @hide */ + @UnsupportedAppUsage public ImsStreamMediaProfile() { mAudioQuality = AUDIO_QUALITY_NONE; mAudioDirection = DIRECTION_SEND_RECEIVE; diff --git a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java index b4f60b952a00..17724018ee57 100644 --- a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java +++ b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java @@ -17,6 +17,7 @@ package android.telephony.ims; import android.annotation.SystemApi; +import android.annotation.UnsupportedAppUsage; import android.net.Uri; import android.os.Handler; import android.os.Looper; @@ -179,6 +180,7 @@ public abstract class ImsVideoCallProvider { * Returns binder object which can be used across IPC methods. * @hide */ + @UnsupportedAppUsage public final IImsVideoCallProvider getInterface() { return mBinder; } diff --git a/telephony/java/android/telephony/ims/compat/ImsService.java b/telephony/java/android/telephony/ims/compat/ImsService.java index cf1efb34bd0a..2750e51fc3d4 100644 --- a/telephony/java/android/telephony/ims/compat/ImsService.java +++ b/telephony/java/android/telephony/ims/compat/ImsService.java @@ -17,6 +17,7 @@ package android.telephony.ims.compat; import android.annotation.Nullable; +import android.annotation.UnsupportedAppUsage; import android.app.Service; import android.content.Intent; import android.os.IBinder; @@ -86,6 +87,7 @@ public class ImsService extends Service { /** * @hide */ + @UnsupportedAppUsage protected final IBinder mImsServiceController = new IImsServiceController.Stub() { @Override diff --git a/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java b/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java index 0a12cae26af4..e8fcac19f675 100644 --- a/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java +++ b/telephony/java/android/telephony/ims/compat/feature/ImsFeature.java @@ -17,6 +17,7 @@ package android.telephony.ims.compat.feature; import android.annotation.IntDef; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; import android.os.IInterface; @@ -104,10 +105,12 @@ public abstract class ImsFeature { mSlotId = slotId; } + @UnsupportedAppUsage public int getFeatureState() { return mState; } + @UnsupportedAppUsage protected final void setFeatureState(@ImsState int state) { if (mState != state) { mState = state; diff --git a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java index d3d17f4fb198..40ea208e4578 100644 --- a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java +++ b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java @@ -20,6 +20,7 @@ import android.app.PendingIntent; import android.os.Message; import android.os.RemoteException; +import android.annotation.UnsupportedAppUsage; import android.telephony.ims.ImsCallProfile; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsCallSessionListener; diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java index e5ed82572873..23de2fd3c32c 100644 --- a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java @@ -28,6 +28,7 @@ import android.telephony.ims.aidl.IImsCallSessionListener; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsVideoCallProvider; +import android.annotation.UnsupportedAppUsage; import android.telephony.ims.ImsCallSession; /** diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java index 2c325ba8e134..e55c3d0823c2 100644 --- a/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsConfigImplBase.java @@ -16,6 +16,7 @@ package android.telephony.ims.compat.stub; +import android.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; import android.os.RemoteException; @@ -58,6 +59,7 @@ public class ImsConfigImplBase { ImsConfigStub mImsConfigStub; + @UnsupportedAppUsage public ImsConfigImplBase(Context context) { mImsConfigStub = new ImsConfigStub(this, context); } @@ -162,6 +164,7 @@ public class ImsConfigImplBase { public void setVideoQuality(int quality, ImsConfigListener listener) throws RemoteException { } + @UnsupportedAppUsage public IImsConfig getIImsConfig() { return mImsConfigStub; } /** diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java index b2aa08015d10..976c2be1a3fe 100644 --- a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java +++ b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java @@ -19,6 +19,7 @@ package android.telephony.ims.compat.stub; import android.os.Bundle; import android.os.RemoteException; +import android.annotation.UnsupportedAppUsage; import android.telephony.ims.ImsCallForwardInfo; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsSsData; diff --git a/test-base/Android.bp b/test-base/Android.bp index d25b47727c0b..0b8a02a815d9 100644 --- a/test-base/Android.bp +++ b/test-base/Android.bp @@ -19,9 +19,8 @@ // This contains the junit.framework and android.test classes that were in // Android API level 25 excluding those from android.test.runner. // Also contains the com.android.internal.util.Predicate[s] classes. -java_library { +java_sdk_library { name: "android.test.base", - installable: true, srcs: ["src/**/*.java"], @@ -29,11 +28,38 @@ java_library { javacflags: ["-Xep:DepAnn:ERROR"], }, + hostdex: true, + + api_packages: [ + "android.test", + "android.test.suitebuilder.annotation", + "com.android.internal.util", + "junit.framework", + ], + + droiddoc_options: ["stubsourceonly"], + compile_dex: true, +} + +// Build the android.test.base_static library +// ========================================== +// This is only intended for inclusion in the android.test.runner-minus-junit, +// robolectric_android-all-stub and repackaged.android.test.* libraries. +// Must not be used elewhere. +java_library_static { + name: "android.test.base_static", + installable: false, + + srcs: ["src/**/*.java"], + + errorprone: { + javacflags: ["-Xep:DepAnn:ERROR"], + }, + // Needs to be consistent with the repackaged version of this make target. java_version: "1.8", sdk_version: "current", - hostdex: true, } // Build the legacy-test library @@ -46,7 +72,7 @@ java_library { installable: true, sdk_version: "current", - static_libs: ["android.test.base"], + static_libs: ["android.test.base_static"], } // Build the repackaged.android.test.base library @@ -57,7 +83,7 @@ java_library_static { name: "repackaged.android.test.base", sdk_version: "current", - static_libs: ["android.test.base"], + static_libs: ["android.test.base_static"], jarjar_rules: "jarjar-rules.txt", // Pin java_version until jarjar is certified to support later versions. http://b/72703434 @@ -84,38 +110,3 @@ java_library_static { ], } -droiddoc { - name: "android-test-base-api-stubs-gen-docs", - srcs: [ - "src/**/*.java", - ], - custom_template: "droiddoc-templates-sdk", - installable: false, - args: "-stubpackages android.test:" + - "android.test.suitebuilder.annotation:" + - "com.android.internal.util:" + - "junit.framework -stubsourceonly -nodocs", - sdk_version: "current", - api_tag_name: "ANDROID_TEST_BASE", - api_filename: "android-test-base-api.txt", - removed_api_filename: "android-test-base-removed.txt", -} - -// Build the android.test.base.stubs library -// ========================================= -java_library_static { - name: "android.test.base.stubs", - srcs: [ - ":android-test-base-api-stubs-gen-docs", - ], - product_variables: { - pdk: { - enabled: false, - }, - unbundled_build: { - enabled: false, - }, - }, - sdk_version: "current", - compile_dex: true, -} diff --git a/test-base/Android.mk b/test-base/Android.mk index baf5726ff8bd..a9d30cf3131a 100644 --- a/test-base/Android.mk +++ b/test-base/Android.mk @@ -16,50 +16,6 @@ LOCAL_PATH:= $(call my-dir) -# For unbundled build we'll use the prebuilt jar from prebuilts/sdk. -ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK))) - -ANDROID_TEST_BASE_API_FILE := $(LOCAL_PATH)/api/android-test-base-current.txt -ANDROID_TEST_BASE_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-base-removed.txt - -full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.base.stubs,,COMMON)/classes.jar -# Archive a copy of the classes.jar in SDK build. -$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.base.stubs.jar) - -# Check that the android.test.base.stubs library has not changed -# ============================================================== - -# Check that the API we're building hasn't changed from the not-yet-released -# SDK version. -$(eval $(call check-api, \ - check-android-test-base-api-current, \ - $(ANDROID_TEST_BASE_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_BASE_API_FILE), \ - $(ANDROID_TEST_BASE_REMOVED_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_BASE_REMOVED_API_FILE), \ - -error 2 -error 3 -error 4 -error 5 -error 6 \ - -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ - -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \ - -error 25 -error 26 -error 27, \ - cat $(LOCAL_PATH)/api/apicheck_msg_android_test_base.txt, \ - check-android-test-base-api, \ - $(OUT_DOCS)/android-test-base-api-stubs-gen-docs-stubs.srcjar \ - )) - -.PHONY: check-android-test-base-api -checkapi: check-android-test-base-api - -.PHONY: update-android-test-base-api -update-api: update-android-test-base-api - -update-android-test-base-api: $(INTERNAL_PLATFORM_ANDROID_TEST_BASE_API_FILE) | $(ACP) - @echo Copying current.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_BASE_API_FILE) $(ANDROID_TEST_BASE_API_FILE) - @echo Copying removed.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_BASE_REMOVED_API_FILE) $(ANDROID_TEST_BASE_REMOVED_API_FILE) - -endif # not TARGET_BUILD_APPS not TARGET_BUILD_PDK=true - ifeq ($(HOST_OS),linux) # Build the legacy-performance-test-hostdex library # ================================================= diff --git a/test-base/api/apicheck_msg_android_test_base.txt b/test-base/api/apicheck_msg_android_test_base.txt deleted file mode 100644 index 144aecc21bce..000000000000 --- a/test-base/api/apicheck_msg_android_test_base.txt +++ /dev/null @@ -1,17 +0,0 @@ - -****************************** -You have tried to change the API from what has been previously approved. - -To make these errors go away, you have two choices: - 1) You can add "@hide" javadoc comments to the methods, etc. listed in the - errors above. - - 2) You can update android-test-base-current.txt by executing the following command: - make update-android-test-base-api - - To submit the revised android-test-base-current.txt to the main Android repository, - you will need approval. -****************************** - - - diff --git a/test-base/api/android-test-base-current.txt b/test-base/api/current.txt index 7ebd6aa8a4a2..7ebd6aa8a4a2 100644 --- a/test-base/api/android-test-base-current.txt +++ b/test-base/api/current.txt diff --git a/test-base/api/android-test-base-removed.txt b/test-base/api/removed.txt index e69de29bb2d1..e69de29bb2d1 100644 --- a/test-base/api/android-test-base-removed.txt +++ b/test-base/api/removed.txt diff --git a/test-mock/api/android-test-mock-system-removed.txt b/test-base/api/system-current.txt index e69de29bb2d1..e69de29bb2d1 100644 --- a/test-mock/api/android-test-mock-system-removed.txt +++ b/test-base/api/system-current.txt diff --git a/test-runner/api/android-test-runner-removed.txt b/test-base/api/system-removed.txt index e69de29bb2d1..e69de29bb2d1 100644 --- a/test-runner/api/android-test-runner-removed.txt +++ b/test-base/api/system-removed.txt diff --git a/test-base/api/test-current.txt b/test-base/api/test-current.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-base/api/test-current.txt diff --git a/test-base/api/test-removed.txt b/test-base/api/test-removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-base/api/test-removed.txt diff --git a/test-legacy/Android.bp b/test-legacy/Android.bp index d2af8a9f1c82..833c714f07b0 100644 --- a/test-legacy/Android.bp +++ b/test-legacy/Android.bp @@ -25,7 +25,7 @@ java_library_static { static_libs: [ "android.test.base-minus-junit", "android.test.runner-minus-junit", - "android.test.mock", + "android.test.mock.impl", ], no_framework_libs: true, diff --git a/test-mock/Android.bp b/test-mock/Android.bp index 8d3faaef9f6b..5eba01779f46 100644 --- a/test-mock/Android.bp +++ b/test-mock/Android.bp @@ -16,95 +16,15 @@ // Build the android.test.mock library // =================================== -java_library { +java_sdk_library { name: "android.test.mock", - installable: true, - java_version: "1.8", srcs: ["src/**/*.java"], - no_framework_libs: true, - libs: [ - "framework", + api_packages: [ + "android.test.mock", ], -} - -doc_defaults { - name:"android.test.mock.docs-defaults", - srcs: ["src/android/test/mock/**/*.java"], - // Includes the main framework source to ensure that doclava has access to the - // visibility information for the base classes of the mock classes. Without it - // otherwise hidden methods could be visible. - srcs_lib: "framework", - srcs_lib_whitelist_dirs: ["core/java"], srcs_lib_whitelist_pkgs: ["android"], - libs: [ - "core-oj", - "core-libart", - "framework", - "conscrypt", - "okhttp", - "bouncycastle", - "ext", - ], - local_sourcepaths: ["src/android/test/mock"], - custom_template: "droiddoc-templates-sdk", - installable: false, -} - -android_test_mock_docs_args = - "-hide 110 -hide 111 -hide 113 -hide 121 -hide 125 -hide 126 -hide 127 -hide 128 " + - "-stubpackages android.test.mock " + - "-nodocs " - -droiddoc { - name: "android.test.mock.docs", - defaults: ["android.test.mock.docs-defaults"], - - api_tag_name: "ANDROID_TEST_MOCK", - api_filename: "api/android-test-mock-current.txt", - removed_api_filename: "api/android-test-mock-removed.txt", - - args: android_test_mock_docs_args, -} - -droiddoc { - name: "android.test.mock.docs-system", - defaults: ["android.test.mock.docs-defaults"], - - api_tag_name: "ANDROID_TEST_MOCK_SYSTEM", - api_filename: "api/android-test-mock-system-current.txt", - removed_api_filename: "api/android-test-mock-system-removed.txt", - - args: android_test_mock_docs_args + - "-showAnnotation android.annotation.SystemApi ", -} - -java_library_static { - name: "android.test.mock.stubs", - srcs: [":android.test.mock.docs"], - sdk_version: "current", - product_variables: { - unbundled_build: { - // Unbundled apps will use the prebuilt one - // prebuilts/sdk/current - enabled: false, - }, - }, - compile_dex: true, -} - -java_library_static { - name: "android.test.mock.stubs-system", - srcs: [":android.test.mock.docs-system"], - sdk_version: "system_current", - product_variables: { - unbundled_build: { - // Unbundled apps will use the prebuilt one - // prebuilts/sdk/system_current - enabled: false, - }, - }, compile_dex: true, } diff --git a/test-mock/Android.mk b/test-mock/Android.mk deleted file mode 100644 index 73a7340826a6..000000000000 --- a/test-mock/Android.mk +++ /dev/null @@ -1,93 +0,0 @@ -# -# Copyright (C) 2008 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. -# - -LOCAL_PATH:= $(call my-dir) - -# Archive a copy of the classes.jar in SDK build. -full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs,,COMMON)/classes.jar -$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs.jar) - -# Check that the android.test.mock.stubs library has not changed -# ============================================================== -ANDROID_TEST_MOCK_API_FILE := $(LOCAL_PATH)/api/android-test-mock-current.txt -ANDROID_TEST_MOCK_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-removed.txt - -# Check that the API we're building hasn't changed from the not-yet-released -# SDK version. -$(eval $(call check-api, \ - check-android-test-mock-api-current, \ - $(ANDROID_TEST_MOCK_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE), \ - $(ANDROID_TEST_MOCK_REMOVED_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_REMOVED_API_FILE), \ - -error 2 -error 3 -error 4 -error 5 -error 6 \ - -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ - -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \ - -error 25 -error 26 -error 27, \ - cat $(LOCAL_PATH)/api/apicheck_msg_android_test_mock.txt, \ - check-android-test-mock-api, \ - $(OUT_DOCS)/android.test.mock.docs-stubs.srcjar \ - )) - -.PHONY: check-android-test-mock-api -checkapi: check-android-test-mock-api - -.PHONY: update-android-test-mock-api -update-api: update-android-test-mock-api - -update-android-test-mock-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) | $(ACP) - @echo Copying current.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_API_FILE) $(ANDROID_TEST_MOCK_API_FILE) - @echo Copying removed.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_REMOVED_API_FILE) - -# Archive a copy of the classes.jar in SDK build. -full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.mock.stubs-system,,COMMON)/classes.jar -$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs_system.jar) - -# Check that the android.test.mock.stubs-system library has not changed -# ===================================================================== -ANDROID_TEST_MOCK_SYSTEM_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-current.txt -ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-system-removed.txt - -# Check that the API we're building hasn't changed from the not-yet-released -# SDK version. -$(eval $(call check-api, \ - check-android-test-mock-system-api-current, \ - $(ANDROID_TEST_MOCK_SYSTEM_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE), \ - $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE), \ - -error 2 -error 3 -error 4 -error 5 -error 6 \ - -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ - -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \ - -error 25 -error 26 -error 27, \ - cat $(LOCAL_PATH)/api/apicheck_msg_android_test_mock-system.txt, \ - check-android-test-mock-system-api, \ - $(OUT_DOCS)/android.test.mock.docs-system-stubs.srcjar \ - )) - -.PHONY: check-android-test-mock-system-api -checkapi: check-android-test-mock-system-api - -.PHONY: update-android-test-mock-system-api -update-api: update-android-test-mock-system-api - -update-android-test-mock-system-api: $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) | $(ACP) - @echo Copying current.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_API_FILE) - @echo Copying removed.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_SYSTEM_REMOVED_API_FILE) diff --git a/test-mock/api/apicheck_msg_android_test_mock-system.txt b/test-mock/api/apicheck_msg_android_test_mock-system.txt deleted file mode 100644 index 3a97117f3ea1..000000000000 --- a/test-mock/api/apicheck_msg_android_test_mock-system.txt +++ /dev/null @@ -1,17 +0,0 @@ - -****************************** -You have tried to change the API from what has been previously approved. - -To make these errors go away, you have two choices: - 1) You can add "@hide" javadoc comments to the methods, etc. listed in the - errors above. - - 2) You can update android-test-mock-current.txt by executing the following command: - make update-android-test-mock-system-api - - To submit the revised android-test-mock-system-current.txt to the main Android repository, - you will need approval. -****************************** - - - diff --git a/test-mock/api/apicheck_msg_android_test_mock.txt b/test-mock/api/apicheck_msg_android_test_mock.txt deleted file mode 100644 index e388935bf798..000000000000 --- a/test-mock/api/apicheck_msg_android_test_mock.txt +++ /dev/null @@ -1,17 +0,0 @@ - -****************************** -You have tried to change the API from what has been previously approved. - -To make these errors go away, you have two choices: - 1) You can add "@hide" javadoc comments to the methods, etc. listed in the - errors above. - - 2) You can update android-test-mock-current.txt by executing the following command: - make update-android-test-mock-api - - To submit the revised android-test-mock-current.txt to the main Android repository, - you will need approval. -****************************** - - - diff --git a/test-mock/api/android-test-mock-current.txt b/test-mock/api/current.txt index f3b253c0f460..f3b253c0f460 100644 --- a/test-mock/api/android-test-mock-current.txt +++ b/test-mock/api/current.txt diff --git a/test-mock/api/android-test-mock-removed.txt b/test-mock/api/removed.txt index bd109a887933..bd109a887933 100644 --- a/test-mock/api/android-test-mock-removed.txt +++ b/test-mock/api/removed.txt diff --git a/test-mock/api/android-test-mock-system-current.txt b/test-mock/api/system-current.txt index 20401a50b6a2..20401a50b6a2 100644 --- a/test-mock/api/android-test-mock-system-current.txt +++ b/test-mock/api/system-current.txt diff --git a/test-mock/api/system-removed.txt b/test-mock/api/system-removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-mock/api/system-removed.txt diff --git a/test-mock/api/test-current.txt b/test-mock/api/test-current.txt new file mode 100644 index 000000000000..f1ec000dfa6a --- /dev/null +++ b/test-mock/api/test-current.txt @@ -0,0 +1,22 @@ +package android.test.mock { + + public class MockContext extends android.content.Context { + method public java.lang.String getOpPackageName(); + } + + public deprecated class MockPackageManager extends android.content.pm.PackageManager { + method public boolean arePermissionsIndividuallyControlled(); + method public java.lang.String getDefaultBrowserPackageNameAsUser(int); + method public int getInstallReason(java.lang.String, android.os.UserHandle); + method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int); + method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int); + method public java.lang.String[] getNamesForUids(int[]); + method public java.lang.String getPermissionControllerPackageName(); + method public java.lang.String getServicesSystemSharedLibraryPackageName(); + method public java.lang.String getSharedSystemSharedLibraryPackageName(); + method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); + method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); + } + +} + diff --git a/test-mock/api/test-removed.txt b/test-mock/api/test-removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-mock/api/test-removed.txt diff --git a/test-runner/Android.bp b/test-runner/Android.bp index 2caa6c45f16b..ea615b920df6 100644 --- a/test-runner/Android.bp +++ b/test-runner/Android.bp @@ -16,23 +16,32 @@ // Build the android.test.runner library // ===================================== -java_library { +java_sdk_library { name: "android.test.runner", - installable: true, - // Needs to be consistent with the repackaged version of this make target. - java_version: "1.8", srcs: ["src/**/*.java"], errorprone: { javacflags: ["-Xep:DepAnn:ERROR"], }, - sdk_version: "current", libs: [ "android.test.base", - "android.test.mock.stubs", + "android.test.mock", + ], + stub_only_libs: [ + "android.test.base", + "android.test.mock", ], + api_packages: [ + "android.test", + "android.test.suitebuilder", + "junit.runner", + "junit.textui", + ], + + droiddoc_options: ["stubsourceonly"], + compile_dex: true } // Build the android.test.runner-minus-junit library @@ -46,8 +55,8 @@ java_library { sdk_version: "current", libs: [ - "android.test.base", - "android.test.mock.stubs", + "android.test.base_static", + "android.test.mock", "junit", ], } @@ -70,7 +79,7 @@ java_library_static { sdk_version: "current", libs: [ - "android.test.base", + "android.test.base_static", ], jarjar_rules: "jarjar-rules.txt", @@ -78,48 +87,3 @@ java_library_static { java_version: "1.8", } -droiddoc { - name: "android-test-runner-api-stubs-gen-docs", - srcs: [ - "src/**/*.java", - ], - libs: [ - "core-oj", - "core-libart", - "framework", - "android.test.base", - "android.test.mock", - ], - custom_template: "droiddoc-templates-sdk", - installable: false, - args: "-stubpackages android.test:" + - "android.test.suitebuilder:" + - "junit.runner:" + - "junit.textui -stubsourceonly -nodocs", - api_tag_name: "ANDROID_TEST_RUNNER", - api_filename: "android-test-runner-current.txt", - removed_api_filename: "android-test-runner-removed.txt", -} - -// Build the android.test.runner.stubs library -// ========================================= -java_library_static { - name: "android.test.runner.stubs", - srcs: [ - ":android-test-runner-api-stubs-gen-docs", - ], - libs: [ - "android.test.base.stubs", - "android.test.mock.stubs", - ], - product_variables: { - pdk: { - enabled: false, - }, - unbundled_build: { - enabled: false, - }, - }, - sdk_version: "current", - compile_dex: true, -} diff --git a/test-runner/Android.mk b/test-runner/Android.mk index b70d2498d491..18bde8517351 100644 --- a/test-runner/Android.mk +++ b/test-runner/Android.mk @@ -16,49 +16,5 @@ LOCAL_PATH:= $(call my-dir) -# For unbundled build we'll use the prebuilt jar from prebuilts/sdk. -ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK))) - -ANDROID_TEST_RUNNER_API_FILE := $(LOCAL_PATH)/api/android-test-runner-current.txt -ANDROID_TEST_RUNNER_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-runner-removed.txt - -full_classes_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,android.test.runner.stubs,,COMMON)/classes.jar -# Archive a copy of the classes.jar in SDK build. -$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.runner.stubs.jar) - -# Check that the android.test.runner.stubs library has not changed -# ================================================================ - -# Check that the API we're building hasn't changed from the not-yet-released -# SDK version. -$(eval $(call check-api, \ - check-android-test-runner-api-current, \ - $(ANDROID_TEST_RUNNER_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE), \ - $(ANDROID_TEST_RUNNER_REMOVED_API_FILE), \ - $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_REMOVED_API_FILE), \ - -error 2 -error 3 -error 4 -error 5 -error 6 \ - -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ - -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \ - -error 25 -error 26 -error 27, \ - cat $(LOCAL_PATH)/api/apicheck_msg_android_test_runner.txt, \ - check-android-test-runner-api, \ - $(OUT_DOCS)/android-test-runner-api-stubs-gen-docs-stubs.srcjar \ - )) - -.PHONY: check-android-test-runner-api -checkapi: check-android-test-runner-api - -.PHONY: update-android-test-runner-api -update-api: update-android-test-runner-api - -update-android-test-runner-api: $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE) | $(ACP) - @echo Copying current.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_API_FILE) $(ANDROID_TEST_RUNNER_API_FILE) - @echo Copying removed.txt - $(hide) $(ACP) $(INTERNAL_PLATFORM_ANDROID_TEST_RUNNER_REMOVED_API_FILE) $(ANDROID_TEST_RUNNER_REMOVED_API_FILE) - -endif # not TARGET_BUILD_APPS not TARGET_BUILD_PDK=true - # additionally, build unit tests in a separate .apk include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/test-runner/api/apicheck_msg_android_test_runner.txt b/test-runner/api/apicheck_msg_android_test_runner.txt deleted file mode 100644 index cf2d15ee1ee1..000000000000 --- a/test-runner/api/apicheck_msg_android_test_runner.txt +++ /dev/null @@ -1,17 +0,0 @@ - -****************************** -You have tried to change the API from what has been previously approved. - -To make these errors go away, you have two choices: - 1) You can add "@hide" javadoc comments to the methods, etc. listed in the - errors above. - - 2) You can update android-test-runner-current.txt by executing the following command: - make update-android-test-runner-api - - To submit the revised android-test-runner-current.txt to the main Android repository, - you will need approval. -****************************** - - - diff --git a/test-runner/api/android-test-runner-current.txt b/test-runner/api/current.txt index 1170eb53ab7f..1170eb53ab7f 100644 --- a/test-runner/api/android-test-runner-current.txt +++ b/test-runner/api/current.txt diff --git a/test-runner/api/removed.txt b/test-runner/api/removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-runner/api/removed.txt diff --git a/test-runner/api/system-current.txt b/test-runner/api/system-current.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-runner/api/system-current.txt diff --git a/test-runner/api/system-removed.txt b/test-runner/api/system-removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-runner/api/system-removed.txt diff --git a/test-runner/api/test-current.txt b/test-runner/api/test-current.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-runner/api/test-current.txt diff --git a/test-runner/api/test-removed.txt b/test-runner/api/test-removed.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test-runner/api/test-removed.txt diff --git a/vr/Android.bp b/tests/utils/testutils/Android.bp index 775ec968f59d..4be6534ce857 100644 --- a/vr/Android.bp +++ b/tests/utils/testutils/Android.bp @@ -1,4 +1,5 @@ -// Copyright (C) 2017 The Android Open Source Project +// +// Copyright (C) 2016 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. @@ -11,31 +12,19 @@ // 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. +// -// Library to perform dlopen on the actual shared library. -cc_library_shared { - name: "libdvr_loader", - owner: "google", - srcs: ["dvr_library_loader.cpp"], - cflags: [ - "-Wall", - "-Werror", - ], -} - -// Java platform library for vr stuff. java_library { - name: "com.google.vr.platform", - installable: true, - owner: "google", - required: [ - "libdvr_loader", - "libdvr", - ], + name: "frameworks-base-testutils", + srcs: ["java/**/*.java"], -} -prebuilt_etc_xml { - name: "com.google.vr.platform.xml", - src: "com.google.vr.platform.xml", + static_libs: ["android-support-test"], + + libs: [ + "android.test.runner", + "android.test.base", + "android.test.mock", + "mockito-target-minus-junit4", + ], } diff --git a/tests/utils/testutils/Android.mk b/tests/utils/testutils/Android.mk deleted file mode 100644 index a76616f179dd..000000000000 --- a/tests/utils/testutils/Android.mk +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (C) 2016 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. -# - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := frameworks-base-testutils -LOCAL_MODULE_TAG := tests - -LOCAL_SRC_FILES := $(call all-java-files-under,java) - -LOCAL_STATIC_JAVA_LIBRARIES := \ - android-support-test - -LOCAL_JAVA_LIBRARIES := \ - android.test.runner \ - android.test.base \ - android.test.mock \ - mockito-target-minus-junit4 \ - -include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp index ebdcdfdd6c50..40ee490fc186 100644 --- a/tools/stats_log_api_gen/Collation.cpp +++ b/tools/stats_log_api_gen/Collation.cpp @@ -116,6 +116,9 @@ java_type(const FieldDescriptor* field) if (field->message_type()->full_name() == "android.os.statsd.AttributionNode") { return JAVA_TYPE_ATTRIBUTION_CHAIN; + } else if (field->message_type()->full_name() == + "android.os.statsd.KeyValuePair") { + return JAVA_TYPE_KEY_VALUE_PAIR; } else { return JAVA_TYPE_OBJECT; } @@ -181,6 +184,16 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, expectedNumber++; } + // Skips the key value pair atom. + for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin(); + it != fields.end(); it++) { + const FieldDescriptor *field = it->second; + java_type_t javaType = java_type(field); + if (javaType == JAVA_TYPE_KEY_VALUE_PAIR) { + return 0; + } + } + // Check that only allowed types are present. Remove any invalid ones. for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin(); it != fields.end(); it++) { diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h index 5d2c30292c9c..ccdd1458f656 100644 --- a/tools/stats_log_api_gen/Collation.h +++ b/tools/stats_log_api_gen/Collation.h @@ -48,6 +48,7 @@ typedef enum { JAVA_TYPE_DOUBLE = 6, JAVA_TYPE_STRING = 7, JAVA_TYPE_ENUM = 8, + JAVA_TYPE_KEY_VALUE_PAIR = 9, JAVA_TYPE_OBJECT = -1, JAVA_TYPE_BYTE_ARRAY = -2, diff --git a/vr/com.google.vr.platform.xml b/vr/com.google.vr.platform.xml deleted file mode 100644 index 952b4763b123..000000000000 --- a/vr/com.google.vr.platform.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2017 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. ---> - -<permissions> - <library name="com.google.vr.platform" - file="/system/framework/com.google.vr.platform.jar" /> -</permissions> diff --git a/vr/dvr_library_loader.cpp b/vr/dvr_library_loader.cpp deleted file mode 100644 index 0b4298a100a9..000000000000 --- a/vr/dvr_library_loader.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include <dlfcn.h> -#include <jni.h> - -#include <string> - -extern "C" { - -JNIEXPORT jlong JNICALL -Java_com_google_vr_platform_Dvr_nativeLoadLibrary( - JNIEnv* env, jclass, jstring java_library) { - if (!java_library) - return 0; - - // Convert the Java String object to a C++ null-terminated string. - const char* data = env->GetStringUTFChars(java_library, NULL); - size_t size = env->GetStringUTFLength(java_library); - std::string library(data, size); - env->ReleaseStringUTFChars(java_library, data); - - // Return the handle to the requested library. - return reinterpret_cast<jlong>( - dlopen(library.c_str(), RTLD_NOW | RTLD_LOCAL)); -} - -} // extern "C" diff --git a/vr/java/com/google/vr/platform/DeviceInfo.java b/vr/java/com/google/vr/platform/DeviceInfo.java deleted file mode 100644 index 6a4617d4624d..000000000000 --- a/vr/java/com/google/vr/platform/DeviceInfo.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.google.vr.platform; - -import android.annotation.UnsupportedAppUsage; -import android.os.SystemProperties; - -/** - * Class to get information about the vr device. - * @hide - */ -public class DeviceInfo { - - private static final String VR_MODE_BOOT = "ro.boot.vr"; - - /** - * Returns true if this device boots directly in VR mode. - */ - @UnsupportedAppUsage - public static boolean getVrBoot() { - return SystemProperties.getBoolean(VR_MODE_BOOT, false); - } -} diff --git a/vr/java/com/google/vr/platform/Dvr.java b/vr/java/com/google/vr/platform/Dvr.java deleted file mode 100644 index 41dcd8741ffb..000000000000 --- a/vr/java/com/google/vr/platform/Dvr.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.google.vr.platform; - -import android.annotation.UnsupportedAppUsage; - -/** - * Class to load the dvr api. - * @hide - */ -public class Dvr { - /** - * Opens a shared library containing the dvr api and returns the handle to it. - * - * @return A Long object describing the handle returned by dlopen. - */ - @UnsupportedAppUsage - public static Long loadLibrary() { - // Load a thin JNI library that runs dlopen on request. - System.loadLibrary("dvr_loader"); - - // Performs dlopen on the library and returns the handle. - return nativeLoadLibrary("libdvr.so"); - } - - private static native long nativeLoadLibrary(String library); -} |