diff options
290 files changed, 4221 insertions, 1620 deletions
diff --git a/api/current.txt b/api/current.txt index 9c3929503a12..39944bf4f4ff 100644 --- a/api/current.txt +++ b/api/current.txt @@ -39524,6 +39524,7 @@ package android.telecom { method public boolean isInManagedCall(); method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle); method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle); + method public boolean isTtySupported(); method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String); method public void placeCall(android.net.Uri, android.os.Bundle); method public void registerPhoneAccount(android.telecom.PhoneAccount); diff --git a/api/test-current.txt b/api/test-current.txt index 9f5266626c50..aa9e5f93262f 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -39815,6 +39815,7 @@ package android.telecom { method public boolean isInManagedCall(); method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle); method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle); + method public boolean isTtySupported(); method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String); method public void placeCall(android.net.Uri, android.os.Bundle); method public void registerPhoneAccount(android.telecom.PhoneAccount); diff --git a/cmds/bu/src/com/android/commands/bu/Backup.java b/cmds/bu/src/com/android/commands/bu/Backup.java index 345895b794a3..834658da8ccc 100644 --- a/cmds/bu/src/com/android/commands/bu/Backup.java +++ b/cmds/bu/src/com/android/commands/bu/Backup.java @@ -136,7 +136,9 @@ public final class Backup { if (fd != null) { try { fd.close(); - } catch (IOException e) {} + } catch (IOException e) { + Log.e(TAG, "IO error closing output for backup: " + e.getMessage()); + } } } } diff --git a/cmds/incident/main.cpp b/cmds/incident/main.cpp index 47f1db89e1cb..519852dbe88b 100644 --- a/cmds/incident/main.cpp +++ b/cmds/incident/main.cpp @@ -25,6 +25,7 @@ #include <binder/IServiceManager.h> #include <utils/Looper.h> +#include <cstring> #include <fcntl.h> #include <getopt.h> #include <stdio.h> @@ -144,6 +145,16 @@ find_section(const char* name) } // ================================================================================ +static int +get_dest(const char* arg) +{ + if (strcmp(arg, "LOCAL") == 0) return 0; + if (strcmp(arg, "EXPLICIT") == 0) return 1; + if (strcmp(arg, "AUTOMATIC") == 0) return 2; + return -1; // return the default value +} + +// ================================================================================ static void usage(FILE* out) { @@ -155,6 +166,7 @@ usage(FILE* out) fprintf(out, " -b (default) print the report to stdout (in proto format)\n"); fprintf(out, " -d send the report into dropbox\n"); fprintf(out, " -l list available sections\n"); + fprintf(out, " -p privacy spec, LOCAL, EXPLICIT or AUTOMATIC\n"); fprintf(out, "\n"); fprintf(out, " SECTION the field numbers of the incident report fields to include\n"); fprintf(out, "\n"); @@ -166,10 +178,11 @@ main(int argc, char** argv) Status status; IncidentReportArgs args; enum { DEST_DROPBOX, DEST_STDOUT } destination = DEST_STDOUT; + int dest = -1; // default // Parse the args int opt; - while ((opt = getopt(argc, argv, "bhdl")) != -1) { + while ((opt = getopt(argc, argv, "bhdlp:")) != -1) { switch (opt) { case 'h': usage(stdout); @@ -183,6 +196,9 @@ main(int argc, char** argv) case 'd': destination = DEST_DROPBOX; break; + case 'p': + dest = get_dest(optarg); + break; default: usage(stderr); return 1; @@ -210,8 +226,7 @@ main(int argc, char** argv) } } } - - + args.setDest(dest); // Start the thread pool. sp<ProcessState> ps(ProcessState::self()); diff --git a/cmds/incident_helper/IncidentHelper.cpp b/cmds/incident_helper/IncidentHelper.cpp index fba5e662b7c1..787d3a1557d6 100644 --- a/cmds/incident_helper/IncidentHelper.cpp +++ b/cmds/incident_helper/IncidentHelper.cpp @@ -61,6 +61,21 @@ SetTableField(::google::protobuf::Message* message, string field_name, string fi } // ================================================================================ +status_t NoopParser::Parse(const int in, const int out) const +{ + string content; + if (!ReadFdToString(in, &content)) { + fprintf(stderr, "[%s]Failed to read data from incidentd\n", this->name.string()); + return -1; + } + if (!WriteStringToFd(content, out)) { + fprintf(stderr, "[%s]Failed to write data to incidentd\n", this->name.string()); + return -1; + } + return NO_ERROR; +} + +// ================================================================================ status_t ReverseParser::Parse(const int in, const int out) const { string content; @@ -189,4 +204,4 @@ status_t ProcrankParser::Parse(const int in, const int out) const { } fprintf(stderr, "[%s]Proto size: %d bytes\n", this->name.string(), proto.ByteSize()); return NO_ERROR; -}
\ No newline at end of file +} diff --git a/cmds/incident_helper/IncidentHelper.h b/cmds/incident_helper/IncidentHelper.h index f319c419fcd6..f6579a2d3736 100644 --- a/cmds/incident_helper/IncidentHelper.h +++ b/cmds/incident_helper/IncidentHelper.h @@ -36,6 +36,17 @@ public: }; /** + * No op parser returns what it reads + */ +class NoopParser : public TextParserBase { +public: + NoopParser() : TextParserBase(String8("NoopParser")) {}; + ~NoopParser() {}; + + virtual status_t Parse(const int in, const int out) const; +}; + +/** * This parser is used for testing only, results in timeout. */ class TimeoutParser : public TextParserBase { diff --git a/cmds/incident_helper/main.cpp b/cmds/incident_helper/main.cpp index 333344b8ce86..296d3001b7bb 100644 --- a/cmds/incident_helper/main.cpp +++ b/cmds/incident_helper/main.cpp @@ -41,9 +41,11 @@ static TextParserBase* selectParser(int section) { case -1: return new TimeoutParser(); case 0: + return new NoopParser(); + case 1: // 1 is reserved for incident header so it won't be section id return new ReverseParser(); /* ========================================================================= */ - // IDs larger than 0 are reserved in incident.proto + // IDs larger than 1 are section ids reserved in incident.proto case 2000: return new ProcrankParser(); case 2002: diff --git a/cmds/incidentd/Android.mk b/cmds/incidentd/Android.mk index 835a7b94507b..830bf9e66cde 100644 --- a/cmds/incidentd/Android.mk +++ b/cmds/incidentd/Android.mk @@ -23,10 +23,13 @@ include $(CLEAR_VARS) LOCAL_MODULE := incidentd LOCAL_SRC_FILES := \ + src/EncodedBuffer.cpp \ src/FdBuffer.cpp \ src/IncidentService.cpp \ + src/Privacy.cpp \ src/Reporter.cpp \ src/Section.cpp \ + src/io_util.cpp \ src/main.cpp \ src/protobuf.cpp \ src/report_directory.cpp @@ -69,7 +72,9 @@ LOCAL_GENERATED_SOURCES += $(GEN) gen_src_dir:= GEN:= +ifeq ($(BUILD_WITH_INCIDENTD_RC), true) LOCAL_INIT_RC := incidentd.rc +endif include $(BUILD_EXECUTABLE) @@ -88,12 +93,16 @@ LOCAL_CFLAGS := -Werror -Wall -Wno-unused-variable -Wunused-parameter LOCAL_C_INCLUDES += $(LOCAL_PATH)/src LOCAL_SRC_FILES := \ + src/EncodedBuffer.cpp \ src/FdBuffer.cpp \ + src/Privacy.cpp \ src/Reporter.cpp \ src/Section.cpp \ + src/io_util.cpp \ src/protobuf.cpp \ src/report_directory.cpp \ tests/section_list.cpp \ + tests/EncodedBuffer_test.cpp \ tests/FdBuffer_test.cpp \ tests/Reporter_test.cpp \ tests/Section_test.cpp \ diff --git a/cmds/incidentd/src/EncodedBuffer.cpp b/cmds/incidentd/src/EncodedBuffer.cpp new file mode 100644 index 000000000000..3d20548f18b7 --- /dev/null +++ b/cmds/incidentd/src/EncodedBuffer.cpp @@ -0,0 +1,195 @@ +/* + * 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. + */ + +#include "EncodedBuffer.h" +#include "io_util.h" +#include "protobuf.h" + +#include <deque> + +const size_t BUFFER_SIZE = 4 * 1024; // 4 KB + +/** + * Read varint from iterator, the iterator will point to next available byte. + * Return the number of bytes of the varint. + */ +static uint32_t +read_raw_varint(FdBuffer::iterator& it) +{ + uint32_t val = 0; + int i = 0; + bool hasNext = true; + while (hasNext) { + hasNext = ((*it & 0x80) != 0); + val += (*it & 0x7F) << (7*i); + it++; + i++; + } + return val; +} + +/** + * Write the field to buf based on the wire type, iterator will point to next field. + * If skip is set to true, no data will be written to buf. Return number of bytes written. + */ +static size_t +write_field_or_skip(FdBuffer::iterator &iterator, vector<uint8_t> &buf, uint8_t wireType, bool skip) +{ + FdBuffer::iterator snapshot = iterator.snapshot(); + size_t bytesToWrite = 0; + uint32_t varint = 0; + switch (wireType) { + case WIRE_TYPE_VARINT: + varint = read_raw_varint(iterator); + if(!skip) return write_raw_varint(buf, varint); + break; + case WIRE_TYPE_FIXED64: + bytesToWrite = 8; + break; + case WIRE_TYPE_LENGTH_DELIMITED: + bytesToWrite = read_raw_varint(iterator); + if(!skip) write_raw_varint(buf, bytesToWrite); + break; + case WIRE_TYPE_FIXED32: + bytesToWrite = 4; + break; + } + if (skip) { + iterator += bytesToWrite; + } else { + for (size_t i=0; i<bytesToWrite; i++) { + buf.push_back(*iterator); + iterator++; + } + } + return skip ? 0 : iterator - snapshot; +} + +/** + * Strip next field based on its private policy and request spec, then stores data in buf. + * Return NO_ERROR if succeeds, otherwise BAD_VALUE is returned to indicate bad data in FdBuffer. + * + * The iterator must point to the head of a protobuf formatted field for successful operation. + * After exit with NO_ERROR, iterator points to the next protobuf field's head. + */ +static status_t +stripField(FdBuffer::iterator &iterator, vector<uint8_t> &buf, const Privacy* parentPolicy, const PrivacySpec& spec) +{ + if (iterator.outOfBound() || parentPolicy == NULL) return BAD_VALUE; + + uint32_t varint = read_raw_varint(iterator); + uint8_t wireType = read_wire_type(varint); + uint32_t fieldId = read_field_id(varint); + const Privacy* policy = parentPolicy->lookup(fieldId); + + if (policy == NULL || !policy->IsMessageType() || !policy->HasChildren()) { + bool skip = !spec.CheckPremission(policy); + size_t amt = buf.size(); + if (!skip) amt += write_header(buf, fieldId, wireType); + amt += write_field_or_skip(iterator, buf, wireType, skip); // point to head of next field + return buf.size() != amt ? BAD_VALUE : NO_ERROR; + } + // current field is message type and its sub-fields have extra privacy policies + deque<vector<uint8_t>> q; + uint32_t msgSize = read_raw_varint(iterator); + size_t finalSize = 0; + FdBuffer::iterator start = iterator.snapshot(); + while ((iterator - start) != (int)msgSize) { + vector<uint8_t> v; + status_t err = stripField(iterator, v, policy, spec); + if (err != NO_ERROR) return err; + if (v.empty()) continue; + q.push_back(v); + finalSize += v.size(); + } + + write_header(buf, fieldId, wireType); + write_raw_varint(buf, finalSize); + buf.reserve(finalSize); + while (!q.empty()) { + vector<uint8_t> subField = q.front(); + for (vector<uint8_t>::iterator it = subField.begin(); it != subField.end(); it++) { + buf.push_back(*it); + } + q.pop_front(); + } + return NO_ERROR; +} + +// ================================================================================ +EncodedBuffer::EncodedBuffer(const FdBuffer& buffer, const Privacy* policy) + : mFdBuffer(buffer), + mPolicy(policy), + mBuffers(), + mSize(0) +{ +} + +EncodedBuffer::~EncodedBuffer() +{ +} + +status_t +EncodedBuffer::strip(const PrivacySpec& spec) +{ + // optimization when no strip happens + if (mPolicy == NULL || !mPolicy->HasChildren() || spec.RequireAll()) { + if (spec.CheckPremission(mPolicy)) mSize = mFdBuffer.size(); + return NO_ERROR; + } + + FdBuffer::iterator it = mFdBuffer.begin(); + vector<uint8_t> field; + field.reserve(BUFFER_SIZE); + + while (it != mFdBuffer.end()) { + status_t err = stripField(it, field, mPolicy, spec); + if (err != NO_ERROR) return err; + if (field.size() > BUFFER_SIZE) { // rotate to another chunk if buffer size exceeds + mBuffers.push_back(field); + mSize += field.size(); + field.clear(); + } + } + if (!field.empty()) { + mBuffers.push_back(field); + mSize += field.size(); + } + return NO_ERROR; +} + +void +EncodedBuffer::clear() +{ + mSize = 0; + mBuffers.clear(); +} + +size_t +EncodedBuffer::size() const { return mSize; } + +status_t +EncodedBuffer::flush(int fd) +{ + if (size() == mFdBuffer.size()) return mFdBuffer.flush(fd); + + for (vector<vector<uint8_t>>::iterator it = mBuffers.begin(); it != mBuffers.end(); it++) { + status_t err = write_all(fd, it->data(), it->size()); + if (err != NO_ERROR) return err; + } + return NO_ERROR; +} + diff --git a/cmds/incidentd/src/EncodedBuffer.h b/cmds/incidentd/src/EncodedBuffer.h new file mode 100644 index 000000000000..ea8603a585d7 --- /dev/null +++ b/cmds/incidentd/src/EncodedBuffer.h @@ -0,0 +1,64 @@ +/* + * 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. + */ + +#ifndef ENCODED_BUFFER_H +#define ENCODED_BUFFER_H + +#include "FdBuffer.h" +#include "Privacy.h" + +#include <stdint.h> +#include <vector> + +/** + * EncodedBuffer is constructed from FdBuffer which holds original protobuf formatted data and + * its privacy policy in its tagged proto message. The class strips PII-sensitive fields + * based on the request and holds stripped data in its buffer for output. + */ +class EncodedBuffer +{ +public: + EncodedBuffer(const FdBuffer& buffer, const Privacy* policy); + ~EncodedBuffer(); + + /** + * Strip based on the request and hold data in its own buffer. Return NO_ERROR if strip succeeds. + */ + status_t strip(const PrivacySpec& spec); + + /** + * Clear encoded buffer so it can be reused by another request. + */ + void clear(); + + /** + * Return the size of the stripped data. + */ + size_t size() const; + + /** + * Flush buffer to the given fd. NO_ERROR is returned if the flush succeeds. + */ + status_t flush(int fd); + +private: + const FdBuffer& mFdBuffer; + const Privacy* mPolicy; + vector<vector<uint8_t>> mBuffers; + size_t mSize; +}; + +#endif // ENCODED_BUFFER_H
\ No newline at end of file diff --git a/cmds/incidentd/src/FdBuffer.cpp b/cmds/incidentd/src/FdBuffer.cpp index 4d6a36cdba2e..bb399b57b8cd 100644 --- a/cmds/incidentd/src/FdBuffer.cpp +++ b/cmds/incidentd/src/FdBuffer.cpp @@ -17,6 +17,7 @@ #define LOG_TAG "incidentd" #include "FdBuffer.h" +#include "io_util.h" #include <cutils/log.h> #include <utils/SystemClock.h> @@ -239,25 +240,32 @@ FdBuffer::readProcessedDataInStream(int fd, int toFd, int fromFd, int64_t timeou } size_t -FdBuffer::size() +FdBuffer::size() const { if (mBuffers.empty()) return 0; return ((mBuffers.size() - 1) * BUFFER_SIZE) + mCurrentWritten; } status_t -FdBuffer::write(ReportRequestSet* reporter) +FdBuffer::flush(int fd) const { - const int N = mBuffers.size() - 1; - for (int i=0; i<N; i++) { - reporter->write(mBuffers[i], BUFFER_SIZE); + size_t i=0; + status_t err = NO_ERROR; + for (i=0; i<mBuffers.size()-1; i++) { + err = write_all(fd, mBuffers[i], BUFFER_SIZE); + if (err != NO_ERROR) return err; } - reporter->write(mBuffers[N], mCurrentWritten); - return NO_ERROR; + return write_all(fd, mBuffers[i], mCurrentWritten); } FdBuffer::iterator -FdBuffer::end() +FdBuffer::begin() const +{ + return iterator(*this, 0, 0); +} + +FdBuffer::iterator +FdBuffer::end() const { if (mBuffers.empty() || mCurrentWritten < 0) return begin(); if (mCurrentWritten == BUFFER_SIZE) @@ -266,6 +274,17 @@ FdBuffer::end() return FdBuffer::iterator(*this, mBuffers.size() - 1, mCurrentWritten); } +// =============================================================================== +FdBuffer::iterator::iterator(const FdBuffer& buffer, ssize_t index, ssize_t offset) + : mFdBuffer(buffer), + mIndex(index), + mOffset(offset) +{ +} + +FdBuffer::iterator& +FdBuffer::iterator::operator=(iterator& other) const { return other; } + FdBuffer::iterator& FdBuffer::iterator::operator+(size_t offset) { @@ -278,8 +297,50 @@ FdBuffer::iterator::operator+(size_t offset) return *this; } +FdBuffer::iterator& +FdBuffer::iterator::operator+=(size_t offset) { return *this + offset; } + +FdBuffer::iterator& +FdBuffer::iterator::operator++() { return *this + 1; } + +FdBuffer::iterator +FdBuffer::iterator::operator++(int) { return *this + 1; } + +bool +FdBuffer::iterator::operator==(iterator other) const +{ + return mIndex == other.mIndex && mOffset == other.mOffset; +} + +bool +FdBuffer::iterator::operator!=(iterator other) const { return !(*this == other); } + +int +FdBuffer::iterator::operator-(iterator other) const +{ + return (int)bytesRead() - (int)other.bytesRead(); +} + +FdBuffer::iterator::reference +FdBuffer::iterator::operator*() const +{ + return mFdBuffer.mBuffers[mIndex][mOffset]; +} + +FdBuffer::iterator +FdBuffer::iterator::snapshot() const +{ + return FdBuffer::iterator(mFdBuffer, mIndex, mOffset); +} + size_t -FdBuffer::iterator::bytesRead() +FdBuffer::iterator::bytesRead() const { return mIndex * BUFFER_SIZE + mOffset; } + +bool +FdBuffer::iterator::outOfBound() const +{ + return bytesRead() > mFdBuffer.size(); +} diff --git a/cmds/incidentd/src/FdBuffer.h b/cmds/incidentd/src/FdBuffer.h index e9a53ffe513a..dfe39c62de42 100644 --- a/cmds/incidentd/src/FdBuffer.h +++ b/cmds/incidentd/src/FdBuffer.h @@ -17,8 +17,6 @@ #ifndef FD_BUFFER_H #define FD_BUFFER_H -#include "Reporter.h" - #include <utils/Errors.h> #include <vector> @@ -55,7 +53,7 @@ public: /** * Whether we timed out. */ - bool timedOut() { return mTimedOut; } + bool timedOut() const { return mTimedOut; } /** * If more than 4 MB is read, we truncate the data and return success. @@ -65,23 +63,22 @@ public: * happens, truncated() will return true so it can be marked. If the data is * exactly 4 MB, truncated is still set. Sorry. */ - bool truncated() { return mTruncated; } + bool truncated() const { return mTruncated; } /** * How much data was read. */ - size_t size(); + size_t size() const; /** - * [Deprecated] Write the data that we recorded to the fd given. - * TODO: remove it once the iterator api is working + * Flush all the data to given file descriptor; */ - status_t write(ReportRequestSet* requests); + status_t flush(int fd) const; /** * How long the read took in milliseconds. */ - int64_t durationMs() { return mFinishTime - mStartTime; } + int64_t durationMs() const { return mFinishTime - mStartTime; } /** * Read data stored in FdBuffer @@ -89,30 +86,31 @@ public: class iterator; friend class iterator; class iterator : public std::iterator<std::random_access_iterator_tag, uint8_t> { + public: + iterator(const FdBuffer& buffer, ssize_t index, ssize_t offset); + iterator& operator=(iterator& other) const; + iterator& operator+(size_t offset); + iterator& operator+=(size_t offset); + iterator& operator++(); + iterator operator++(int); + bool operator==(iterator other) const; + bool operator!=(iterator other) const; + int operator-(iterator other) const; + reference operator*() const; + + // return the snapshot of the current iterator + iterator snapshot() const; + // how many bytes are read + size_t bytesRead() const; + // random access could make the iterator out of bound + bool outOfBound() const; private: - FdBuffer& mFdBuffer; + const FdBuffer& mFdBuffer; size_t mIndex; size_t mOffset; - public: - explicit iterator(FdBuffer& buffer, ssize_t index, ssize_t offset) - : mFdBuffer(buffer), mIndex(index), mOffset(offset) {} - iterator& operator=(iterator& other) { return other; } - iterator& operator+(size_t offset); // this is implemented in .cpp - iterator& operator+=(size_t offset) { return *this + offset; } - iterator& operator++() { return *this + 1; } - iterator operator++(int) { return *this + 1; } - bool operator==(iterator other) const { - return mIndex == other.mIndex && mOffset == other.mOffset; - } - bool operator!=(iterator other) const { return !(*this == other); } - reference operator*() const { return mFdBuffer.mBuffers[mIndex][mOffset]; } - - // random access could make the iterator out of bound - size_t bytesRead(); - bool outOfBound() { return bytesRead() > mFdBuffer.size(); }; }; - iterator begin() { return iterator(*this, 0, 0); } - iterator end(); + iterator begin() const; + iterator end() const; private: vector<uint8_t*> mBuffers; @@ -123,19 +121,4 @@ private: bool mTruncated; }; -class Fpipe { -public: - Fpipe() {} - bool close() { return !(::close(mFds[0]) || ::close(mFds[1])); } - ~Fpipe() { close(); } - - inline bool init() { return pipe(mFds) != -1; } - inline int readFd() const { return mFds[0]; } - inline int writeFd() const { return mFds[1]; } - -private: - int mFds[2]; -}; - - #endif // FD_BUFFER_H diff --git a/cmds/incidentd/src/Privacy.cpp b/cmds/incidentd/src/Privacy.cpp new file mode 100644 index 000000000000..dbab5480e698 --- /dev/null +++ b/cmds/incidentd/src/Privacy.cpp @@ -0,0 +1,111 @@ +/* + * 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. + */ + +#include "Privacy.h" + +// DESTINATION enum value +const uint8_t DEST_LOCAL = 0; +const uint8_t DEST_EXPLICIT = 1; +const uint8_t DEST_AUTOMATIC = 2; + +// type of the field, identitical to protobuf definition +const uint8_t TYPE_STRING = 9; +const uint8_t TYPE_MESSAGE = 11; + +Privacy::Privacy(uint32_t field_id, uint8_t type, uint8_t dest) + : field_id(field_id), + type(type), + children(NULL), + dest(dest), + patterns(NULL) +{ +} + +Privacy::Privacy(uint32_t field_id, const Privacy** children) + : field_id(field_id), + type(TYPE_MESSAGE), + children(children), + dest(DEST_DEFAULT_VALUE), // this will be ignored + patterns(NULL) +{ +} + +Privacy::Privacy(uint32_t field_id, uint8_t dest, const char** patterns) + : field_id(field_id), + type(TYPE_STRING), + children(NULL), + dest(dest), + patterns(patterns) +{ +} + +bool +Privacy::IsMessageType() const { return type == TYPE_MESSAGE; } + +bool +Privacy::IsStringType() const { return type == TYPE_STRING; } + +bool +Privacy::HasChildren() const { return children != NULL && children[0] != NULL; } + +const Privacy* +Privacy::lookup(uint32_t fieldId) const +{ + if (children == NULL) return NULL; + for (int i=0; children[i] != NULL; i++) { + if (children[i]->field_id == fieldId) return children[i]; + // This assumes the list's field id is in ascending order and must be true. + if (children[i]->field_id > fieldId) return NULL; + } + return NULL; +} + +static bool allowDest(const uint8_t dest, const uint8_t policy) +{ + switch (policy) { + case DEST_LOCAL: + return dest == DEST_LOCAL; + case DEST_EXPLICIT: + return dest == DEST_LOCAL || dest == DEST_EXPLICIT; + case DEST_AUTOMATIC: + return true; + default: + return false; + } +} + +bool +PrivacySpec::operator<(const PrivacySpec& other) const +{ + return dest < other.dest; +} + +bool +PrivacySpec::CheckPremission(const Privacy* privacy) const +{ + uint8_t policy = privacy == NULL ? DEST_DEFAULT_VALUE : privacy->dest; + return allowDest(dest, policy); +} + +bool +PrivacySpec::RequireAll() const { return dest == DEST_LOCAL; } + +PrivacySpec new_spec_from_args(int dest) { + if (dest < 0) return PrivacySpec(); + return PrivacySpec(dest); +} + +PrivacySpec get_default_dropbox_spec() { return PrivacySpec(DEST_AUTOMATIC); }
\ No newline at end of file diff --git a/cmds/incidentd/src/Privacy.h b/cmds/incidentd/src/Privacy.h new file mode 100644 index 000000000000..c56ba9b8e3fe --- /dev/null +++ b/cmds/incidentd/src/Privacy.h @@ -0,0 +1,70 @@ +/* + * 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. + */ + +#ifndef PRIVACY_H +#define PRIVACY_H + +#include <stdint.h> + +// This is the default value of DEST enum +const uint8_t DEST_DEFAULT_VALUE = 1; + +/* + * In order not to depend on libprotobuf-cpp-full nor libplatformprotos in incidentd, + * privacy options's data structure are explicitly redefined in this file. + */ +struct Privacy { + uint32_t field_id; + uint8_t type; + // ignore parent's privacy flags if children are set, NULL-terminated + const Privacy** children; + + // the following fields are identitical to + // frameworks/base/libs/incident/proto/android/privacy.proto + uint8_t dest; + const char** patterns; // only set when type is string + + Privacy(uint32_t field_id, uint8_t type, uint8_t dest); // generic constructor + Privacy(uint32_t field_id, const Privacy** children); // used for message type + Privacy(uint32_t field_id, uint8_t dest, const char** patterns); // used for string type + + bool IsMessageType() const; + bool IsStringType() const; + bool HasChildren() const; + const Privacy* lookup(uint32_t fieldId) const; +}; + +/** + * PrivacySpec defines the request has what level of privacy authorization. + * For example, a device without user consent should only be able to upload AUTOMATIC fields. + */ +class PrivacySpec { +public: + const uint8_t dest; + + PrivacySpec() : dest(DEST_DEFAULT_VALUE) {} + PrivacySpec(uint8_t dest) : dest(dest) {} + + bool operator<(const PrivacySpec& other) const; + + bool CheckPremission(const Privacy* privacy) const; + bool RequireAll() const; +}; + +PrivacySpec new_spec_from_args(int dest); +PrivacySpec get_default_dropbox_spec(); + +#endif // PRIVACY_H diff --git a/cmds/incidentd/src/Reporter.cpp b/cmds/incidentd/src/Reporter.cpp index 4ffc11984224..11347e22d88e 100644 --- a/cmds/incidentd/src/Reporter.cpp +++ b/cmds/incidentd/src/Reporter.cpp @@ -17,7 +17,6 @@ #define LOG_TAG "incidentd" #include "Reporter.h" -#include "protobuf.h" #include "report_directory.h" #include "section_list.h" @@ -38,20 +37,6 @@ static const char* INCIDENT_DIRECTORY = "/data/misc/incidents/"; // ================================================================================ -static status_t write_all(int fd, uint8_t const* buf, size_t size) -{ - while (size > 0) { - ssize_t amt = ::write(fd, buf, size); - if (amt < 0) { - return -errno; - } - size -= amt; - buf += amt; - } - return NO_ERROR; -} - -// ================================================================================ ReportRequest::ReportRequest(const IncidentReportArgs& a, const sp<IIncidentReportStatusListener> &l, int f) :args(a), @@ -65,11 +50,16 @@ ReportRequest::~ReportRequest() { } +bool +ReportRequest::ok() +{ + return fd >= 0 && err == NO_ERROR; +} + // ================================================================================ ReportRequestSet::ReportRequestSet() :mRequests(), mSections(), - mWritableCount(0), mMainFd(-1) { } @@ -84,45 +74,12 @@ ReportRequestSet::add(const sp<ReportRequest>& request) { mRequests.push_back(request); mSections.merge(request->args); - mWritableCount++; } void ReportRequestSet::setMainFd(int fd) { mMainFd = fd; - mWritableCount++; -} - -status_t -ReportRequestSet::write(uint8_t const* buf, size_t size) -{ - status_t err = EBADF; - - // The streaming ones - int const N = mRequests.size(); - for (int i=N-1; i>=0; i--) { - sp<ReportRequest> request = mRequests[i]; - if (request->fd >= 0 && request->err == NO_ERROR) { - err = write_all(request->fd, buf, size); - if (err != NO_ERROR) { - request->err = err; - mWritableCount--; - } - } - } - - // The dropbox file - if (mMainFd >= 0) { - err = write_all(mMainFd, buf, size); - if (err != NO_ERROR) { - mMainFd = -1; - mWritableCount--; - } - } - - // Return an error only when there are no FDs to write. - return mWritableCount > 0 ? NO_ERROR : err; } bool @@ -164,6 +121,7 @@ Reporter::runReport() status_t err = NO_ERROR; bool needMainFd = false; int mainFd = -1; + HeaderSection headers; // See if we need the main file for (ReportRequestSet::iterator it=batch.begin(); it!=batch.end(); it++) { @@ -176,7 +134,7 @@ Reporter::runReport() // Create the directory if (!isTest) err = create_directory(mIncidentDirectory); if (err != NO_ERROR) { - goto done; + goto DONE; } // If there are too many files in the directory (for whatever reason), @@ -187,7 +145,7 @@ Reporter::runReport() // Open the file. err = create_file(&mainFd); if (err != NO_ERROR) { - goto done; + goto DONE; } // Add to the set @@ -202,24 +160,7 @@ Reporter::runReport() } // Write the incident headers - for (ReportRequestSet::iterator it=batch.begin(); it!=batch.end(); it++) { - const sp<ReportRequest> request = (*it); - const vector<vector<int8_t>>& headers = request->args.headers(); - - for (vector<vector<int8_t>>::const_iterator buf=headers.begin(); buf!=headers.end(); - buf++) { - int fd = request->fd >= 0 ? request->fd : mainFd; - - uint8_t buffer[20]; - uint8_t* p = write_length_delimited_tag_header(buffer, FIELD_ID_INCIDENT_HEADER, - buf->size()); - write_all(fd, buffer, p-buffer); - - write_all(fd, (uint8_t const*)buf->data(), buf->size()); - // If there was an error now, there will be an error later and we will remove - // it from the list then. - } - } + headers.Execute(&batch); // For each of the report fields, see if we need it, and if so, execute the command // and report to those that care that we're doing it. @@ -240,7 +181,7 @@ Reporter::runReport() if (err != NO_ERROR) { ALOGW("Incident section %s (%d) failed. Stopping report.", (*section)->name.string(), id); - goto done; + goto DONE; } // Notify listener of starting @@ -254,7 +195,7 @@ Reporter::runReport() } } -done: +DONE: // Close the file. if (mainFd >= 0) { close(mainFd); diff --git a/cmds/incidentd/src/Reporter.h b/cmds/incidentd/src/Reporter.h index 509611c34d4b..2615c6202d3d 100644 --- a/cmds/incidentd/src/Reporter.h +++ b/cmds/incidentd/src/Reporter.h @@ -40,6 +40,8 @@ struct ReportRequest : public virtual RefBase ReportRequest(const IncidentReportArgs& args, const sp<IIncidentReportStatusListener> &listener, int fd); virtual ~ReportRequest(); + + bool ok(); // returns true if the request is ok for write. }; // ================================================================================ @@ -52,21 +54,16 @@ public: void add(const sp<ReportRequest>& request); void setMainFd(int fd); - // Write to all of the fds for the requests. If a write fails, it stops - // writing to that fd and returns NO_ERROR. When we are out of fds to write - // to it returns an error. - status_t write(uint8_t const* buf, size_t size); - typedef vector<sp<ReportRequest>>::iterator iterator; iterator begin() { return mRequests.begin(); } iterator end() { return mRequests.end(); } + int mainFd() { return mMainFd; } bool containsSection(int id); private: vector<sp<ReportRequest>> mRequests; IncidentReportArgs mSections; - int mWritableCount; int mMainFd; }; diff --git a/cmds/incidentd/src/Section.cpp b/cmds/incidentd/src/Section.cpp index ac87fe3b1e40..6f052deaecf2 100644 --- a/cmds/incidentd/src/Section.cpp +++ b/cmds/incidentd/src/Section.cpp @@ -16,11 +16,18 @@ #define LOG_TAG "incidentd" +#include "EncodedBuffer.h" +#include "FdBuffer.h" +#include "Privacy.h" #include "Section.h" + +#include "io_util.h" #include "protobuf.h" +#include "section_list.h" #include <private/android_filesystem_config.h> #include <binder/IServiceManager.h> +#include <map> #include <mutex> #include <wait.h> #include <unistd.h> @@ -32,7 +39,7 @@ const struct timespec WAIT_INTERVAL_NS = {0, 200 * 1000 * 1000}; const char* INCIDENT_HELPER = "/system/bin/incident_helper"; static pid_t -forkAndExecuteIncidentHelper(const int id, const char* name, Fpipe& p2cPipe, Fpipe& c2pPipe) +fork_execute_incident_helper(const int id, const char* name, Fpipe& p2cPipe, Fpipe& c2pPipe) { const char* ihArgs[] { INCIDENT_HELPER, "-s", String8::format("%d", id).string(), NULL }; @@ -66,14 +73,15 @@ forkAndExecuteIncidentHelper(const int id, const char* name, Fpipe& p2cPipe, Fpi return pid; } -static status_t killChild(pid_t pid) { +// ================================================================================ +static status_t kill_child(pid_t pid) { int status; kill(pid, SIGKILL); if (waitpid(pid, &status, 0) == -1) return -1; return WIFEXITED(status) == 0 ? NO_ERROR : -WEXITSTATUS(status); } -static status_t waitForChild(pid_t pid) { +static status_t wait_child(pid_t pid) { int status; bool died = false; // wait for child to report status up to 1 seconds @@ -82,13 +90,92 @@ static status_t waitForChild(pid_t pid) { // sleep for 0.2 second nanosleep(&WAIT_INTERVAL_NS, NULL); } - if (!died) return killChild(pid); + if (!died) return kill_child(pid); return WIFEXITED(status) == 0 ? NO_ERROR : -WEXITSTATUS(status); } +// ================================================================================ +static const Privacy* +get_privacy_of_section(int id) +{ + if (id < 0) return NULL; + int i=0; + while (PRIVACY_POLICY_LIST[i] != NULL) { + const Privacy* p = PRIVACY_POLICY_LIST[i]; + if (p->field_id == (uint32_t)id) return p; + if (p->field_id > (uint32_t)id) return NULL; + i++; + } + return NULL; +} + +// ================================================================================ +static status_t +write_section_header(int fd, int sectionId, size_t size) +{ + uint8_t buf[20]; + uint8_t *p = write_length_delimited_tag_header(buf, sectionId, size); + return write_all(fd, buf, p-buf); +} + +static status_t +write_report_requests(const int id, const FdBuffer& buffer, ReportRequestSet* requests) +{ + status_t err = -EBADF; + EncodedBuffer encodedBuffer(buffer, get_privacy_of_section(id)); + int writeable = 0; + + // The streaming ones, group requests by spec in order to save unnecessary strip operations + map<PrivacySpec, vector<sp<ReportRequest>>> requestsBySpec; + for (ReportRequestSet::iterator it = requests->begin(); it != requests->end(); it++) { + sp<ReportRequest> request = *it; + if (!request->ok() || !request->args.containsSection(id)) { + continue; // skip invalid request + } + PrivacySpec spec = new_spec_from_args(request->args.dest()); + requestsBySpec[spec].push_back(request); + } + + for (map<PrivacySpec, vector<sp<ReportRequest>>>::iterator mit = requestsBySpec.begin(); mit != requestsBySpec.end(); mit++) { + PrivacySpec spec = mit->first; + err = encodedBuffer.strip(spec); + if (err != NO_ERROR) return err; // it means the encodedBuffer data is corrupted. + if (encodedBuffer.size() == 0) continue; + + for (vector<sp<ReportRequest>>::iterator it = mit->second.begin(); it != mit->second.end(); it++) { + sp<ReportRequest> request = *it; + err = write_section_header(request->fd, id, encodedBuffer.size()); + if (err != NO_ERROR) { request->err = err; continue; } + err = encodedBuffer.flush(request->fd); + if (err != NO_ERROR) { request->err = err; continue; } + writeable++; + ALOGD("Section %d flushed %zu bytes to fd %d with spec %d", id, encodedBuffer.size(), request->fd, spec.dest); + } + encodedBuffer.clear(); + } + + // The dropbox file + if (requests->mainFd() >= 0) { + err = encodedBuffer.strip(get_default_dropbox_spec()); + if (err != NO_ERROR) return err; // the buffer data is corrupted. + if (encodedBuffer.size() == 0) goto DONE; + + err = write_section_header(requests->mainFd(), id, encodedBuffer.size()); + if (err != NO_ERROR) { requests->setMainFd(-1); goto DONE; } + err = encodedBuffer.flush(requests->mainFd()); + if (err != NO_ERROR) { requests->setMainFd(-1); goto DONE; } + writeable++; + ALOGD("Section %d flushed %zu bytes to dropbox %d", id, encodedBuffer.size(), requests->mainFd()); + } + +DONE: + // only returns error if there is no fd to write to. + return writeable > 0 ? NO_ERROR : err; +} // ================================================================================ Section::Section(int i, const int64_t timeoutMs) - :id(i), timeoutMs(timeoutMs) + :id(i), + timeoutMs(timeoutMs) { } @@ -96,24 +183,50 @@ Section::~Section() { } +// ================================================================================ +HeaderSection::HeaderSection() + :Section(FIELD_ID_INCIDENT_HEADER, 0) +{ +} + +HeaderSection::~HeaderSection() +{ +} + status_t -Section::WriteHeader(ReportRequestSet* requests, size_t size) const +HeaderSection::Execute(ReportRequestSet* requests) const { - ssize_t amt; - uint8_t buf[20]; - uint8_t* p = write_length_delimited_tag_header(buf, this->id, size); - return requests->write(buf, p-buf); + for (ReportRequestSet::iterator it=requests->begin(); it!=requests->end(); it++) { + const sp<ReportRequest> request = *it; + const vector<vector<int8_t>>& headers = request->args.headers(); + + for (vector<vector<int8_t>>::const_iterator buf=headers.begin(); buf!=headers.end(); buf++) { + if (buf->empty()) continue; + + // So the idea is only requests with negative fd are written to dropbox file. + int fd = request->fd >= 0 ? request->fd : requests->mainFd(); + write_section_header(fd, FIELD_ID_INCIDENT_HEADER, buf->size()); + write_all(fd, (uint8_t const*)buf->data(), buf->size()); + // If there was an error now, there will be an error later and we will remove + // it from the list then. + } + } + return NO_ERROR; } // ================================================================================ FileSection::FileSection(int id, const char* filename, const int64_t timeoutMs) - : Section(id, timeoutMs), mFilename(filename) { + :Section(id, timeoutMs), + mFilename(filename) +{ name = filename; } FileSection::~FileSection() {} -status_t FileSection::Execute(ReportRequestSet* requests) const { +status_t +FileSection::Execute(ReportRequestSet* requests) const +{ // read from mFilename first, make sure the file is available // add O_CLOEXEC to make sure it is closed when exec incident helper int fd = open(mFilename, O_RDONLY | O_CLOEXEC); @@ -131,7 +244,7 @@ status_t FileSection::Execute(ReportRequestSet* requests) const { return -errno; } - pid_t pid = forkAndExecuteIncidentHelper(this->id, this->name.string(), p2cPipe, c2pPipe); + pid_t pid = fork_execute_incident_helper(this->id, this->name.string(), p2cPipe, c2pPipe); if (pid == -1) { ALOGW("FileSection '%s' failed to fork", this->name.string()); return -errno; @@ -143,11 +256,11 @@ status_t FileSection::Execute(ReportRequestSet* requests) const { if (readStatus != NO_ERROR || buffer.timedOut()) { ALOGW("FileSection '%s' failed to read data from incident helper: %s, timedout: %s, kill: %s", this->name.string(), strerror(-readStatus), buffer.timedOut() ? "true" : "false", - strerror(-killChild(pid))); + strerror(-kill_child(pid))); return readStatus; } - status_t ihStatus = waitForChild(pid); + status_t ihStatus = wait_child(pid); if (ihStatus != NO_ERROR) { ALOGW("FileSection '%s' abnormal child process: %s", this->name.string(), strerror(-ihStatus)); return ihStatus; @@ -155,8 +268,7 @@ status_t FileSection::Execute(ReportRequestSet* requests) const { ALOGD("FileSection '%s' wrote %zd bytes in %d ms", this->name.string(), buffer.size(), (int)buffer.durationMs()); - WriteHeader(requests, buffer.size()); - status_t err = buffer.write(requests); + status_t err = write_report_requests(this->id, buffer, requests); if (err != NO_ERROR) { ALOGW("FileSection '%s' failed writing: %s", this->name.string(), strerror(-err)); return err; @@ -313,8 +425,7 @@ WorkerThreadSection::Execute(ReportRequestSet* requests) const // Write the data that was collected ALOGD("WorkerThreadSection '%s' wrote %zd bytes in %d ms", name.string(), buffer.size(), (int)buffer.durationMs()); - WriteHeader(requests, buffer.size()); - err = buffer.write(requests); + err = write_report_requests(this->id, buffer, requests); if (err != NO_ERROR) { ALOGW("WorkerThreadSection '%s' failed writing: '%s'", this->name.string(), strerror(-err)); return err; @@ -324,7 +435,8 @@ WorkerThreadSection::Execute(ReportRequestSet* requests) const } // ================================================================================ -void CommandSection::init(const char* command, va_list args) +void +CommandSection::init(const char* command, va_list args) { va_list copied_args; int numOfArgs = 0; @@ -350,7 +462,7 @@ void CommandSection::init(const char* command, va_list args) } CommandSection::CommandSection(int id, const int64_t timeoutMs, const char* command, ...) - : Section(id, timeoutMs) + :Section(id, timeoutMs) { va_list args; va_start(args, command); @@ -359,7 +471,7 @@ CommandSection::CommandSection(int id, const int64_t timeoutMs, const char* comm } CommandSection::CommandSection(int id, const char* command, ...) - : Section(id) + :Section(id) { va_list args; va_start(args, command); @@ -401,7 +513,7 @@ CommandSection::Execute(ReportRequestSet* requests) const ALOGW("CommandSection '%s' failed in executing command: %s", this->name.string(), strerror(errno)); _exit(err); // exit with command error code } - pid_t ihPid = forkAndExecuteIncidentHelper(this->id, this->name.string(), cmdPipe, ihPipe); + pid_t ihPid = fork_execute_incident_helper(this->id, this->name.string(), cmdPipe, ihPipe); if (ihPid == -1) { ALOGW("CommandSection '%s' failed to fork", this->name.string()); return -errno; @@ -413,14 +525,14 @@ CommandSection::Execute(ReportRequestSet* requests) const ALOGW("CommandSection '%s' failed to read data from incident helper: %s, " "timedout: %s, kill command: %s, kill incident helper: %s", this->name.string(), strerror(-readStatus), buffer.timedOut() ? "true" : "false", - strerror(-killChild(cmdPid)), strerror(-killChild(ihPid))); + strerror(-kill_child(cmdPid)), strerror(-kill_child(ihPid))); return readStatus; } // TODO: wait for command here has one trade-off: the failed status of command won't be detected until // buffer timeout, but it has advatage on starting the data stream earlier. - status_t cmdStatus = waitForChild(cmdPid); - status_t ihStatus = waitForChild(ihPid); + status_t cmdStatus = wait_child(cmdPid); + status_t ihStatus = wait_child(ihPid); if (cmdStatus != NO_ERROR || ihStatus != NO_ERROR) { ALOGW("CommandSection '%s' abnormal child processes, return status: command: %s, incident helper: %s", this->name.string(), strerror(-cmdStatus), strerror(-ihStatus)); @@ -429,8 +541,7 @@ CommandSection::Execute(ReportRequestSet* requests) const ALOGD("CommandSection '%s' wrote %zd bytes in %d ms", this->name.string(), buffer.size(), (int)buffer.durationMs()); - WriteHeader(requests, buffer.size()); - status_t err = buffer.write(requests); + status_t err = write_report_requests(this->id, buffer, requests); if (err != NO_ERROR) { ALOGW("CommandSection '%s' failed writing: %s", this->name.string(), strerror(-err)); return err; diff --git a/cmds/incidentd/src/Section.h b/cmds/incidentd/src/Section.h index 93b4848f5bd8..0a1e03eb6f41 100644 --- a/cmds/incidentd/src/Section.h +++ b/cmds/incidentd/src/Section.h @@ -17,7 +17,7 @@ #ifndef SECTIONS_H #define SECTIONS_H -#include "FdBuffer.h" +#include "Reporter.h" #include <stdarg.h> #include <utils/String8.h> @@ -42,8 +42,18 @@ public: virtual ~Section(); virtual status_t Execute(ReportRequestSet* requests) const = 0; +}; - status_t WriteHeader(ReportRequestSet* requests, size_t size) const; +/** + * Section that generates incident headers. + */ +class HeaderSection : public Section +{ +public: + HeaderSection(); + virtual ~HeaderSection(); + + virtual status_t Execute(ReportRequestSet* requests) const; }; /** diff --git a/cmds/incidentd/src/io_util.cpp b/cmds/incidentd/src/io_util.cpp new file mode 100644 index 000000000000..f043d367d982 --- /dev/null +++ b/cmds/incidentd/src/io_util.cpp @@ -0,0 +1,44 @@ +/* + * 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. + */ + +#include "io_util.h" + +#include <unistd.h> + +status_t write_all(int fd, uint8_t const* buf, size_t size) +{ + while (size > 0) { + ssize_t amt = ::write(fd, buf, size); + if (amt < 0) { + return -errno; + } + size -= amt; + buf += amt; + } + return NO_ERROR; +} + +Fpipe::Fpipe() {} + +Fpipe::~Fpipe() { close(); } + +bool Fpipe::close() { return !(::close(mFds[0]) || ::close(mFds[1])); } + +bool Fpipe::init() { return pipe(mFds) != -1; } + +int Fpipe::readFd() const { return mFds[0]; } + +int Fpipe::writeFd() const { return mFds[1]; } diff --git a/cmds/incidentd/src/io_util.h b/cmds/incidentd/src/io_util.h new file mode 100644 index 000000000000..320dd6c386d2 --- /dev/null +++ b/cmds/incidentd/src/io_util.h @@ -0,0 +1,41 @@ +/* + * 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. + */ + +#ifndef IO_UTIL_H +#define IO_UTIL_H + +#include <stdint.h> +#include <utils/Errors.h> + +using namespace android; + +status_t write_all(int fd, uint8_t const* buf, size_t size); + +class Fpipe { +public: + Fpipe(); + ~Fpipe(); + + bool init(); + bool close(); + int readFd() const; + int writeFd() const; + +private: + int mFds[2]; +}; + +#endif // IO_UTIL_H
\ No newline at end of file diff --git a/cmds/incidentd/src/protobuf.cpp b/cmds/incidentd/src/protobuf.cpp index b865339a9b98..05de8314deb4 100644 --- a/cmds/incidentd/src/protobuf.cpp +++ b/cmds/incidentd/src/protobuf.cpp @@ -16,8 +16,17 @@ #include "protobuf.h" +uint8_t read_wire_type(uint32_t varint) +{ + return (uint8_t) (varint & 0x07); +} + +uint32_t read_field_id(uint32_t varint) +{ + return varint >> 3; +} -uint8_t* +uint8_t* write_raw_varint(uint8_t* buf, uint32_t val) { uint8_t* p = buf; @@ -32,7 +41,7 @@ write_raw_varint(uint8_t* buf, uint32_t val) } } -uint8_t* +uint8_t* write_length_delimited_tag_header(uint8_t* buf, uint32_t fieldId, size_t size) { buf = write_raw_varint(buf, (fieldId << 3) | 2); @@ -40,3 +49,24 @@ write_length_delimited_tag_header(uint8_t* buf, uint32_t fieldId, size_t size) return buf; } +size_t +write_raw_varint(vector<uint8_t> &buf, uint32_t val) +{ + size_t size = 0; + while (true) { + size++; + if ((val & ~0x7F) == 0) { + buf.push_back((uint8_t) val); + return size; + } else { + buf.push_back((uint8_t)((val & 0x7F) | 0x80)); + val >>= 7; + } + } +} + +size_t +write_header(vector<uint8_t> &buf, uint32_t fieldId, uint8_t wireType) +{ + return write_raw_varint(buf, (fieldId << 3) | wireType); +}
\ No newline at end of file diff --git a/cmds/incidentd/src/protobuf.h b/cmds/incidentd/src/protobuf.h index f196ddc11967..fb0d69dbf755 100644 --- a/cmds/incidentd/src/protobuf.h +++ b/cmds/incidentd/src/protobuf.h @@ -18,6 +18,24 @@ #define PROTOBUF_H #include <stdint.h> +#include <vector> + +using namespace std; + +const uint8_t WIRE_TYPE_VARINT = 0; +const uint8_t WIRE_TYPE_FIXED64 = 1; +const uint8_t WIRE_TYPE_LENGTH_DELIMITED = 2; +const uint8_t WIRE_TYPE_FIXED32 = 5; + +/** + * Read the wire type from varint, it is the smallest 3 bits. + */ +uint8_t read_wire_type(uint32_t varint); + +/** + * read field id from varint, it is varint >> 3; + */ +uint32_t read_field_id(uint32_t varint); /** * Write a varint into the buffer. Return the next position to write at. @@ -32,6 +50,16 @@ uint8_t* write_raw_varint(uint8_t* buf, uint32_t val); */ uint8_t* write_length_delimited_tag_header(uint8_t* buf, uint32_t fieldId, size_t size); +/** + * Write a varint into a vector. Return the size of the varint. + */ +size_t write_raw_varint(vector<uint8_t> &buf, uint32_t val); + +/** + * Write a protobuf header. Return the size of the header. + */ +size_t write_header(vector<uint8_t> &buf, uint32_t fieldId, uint8_t wireType); + enum { // IncidentProto.header FIELD_ID_INCIDENT_HEADER = 1 diff --git a/cmds/incidentd/src/section_list.h b/cmds/incidentd/src/section_list.h index 1abdb5284001..4d9efd760dee 100644 --- a/cmds/incidentd/src/section_list.h +++ b/cmds/incidentd/src/section_list.h @@ -17,6 +17,7 @@ #ifndef SECTION_LIST_H #define SECTION_LIST_H +#include "Privacy.h" #include "Section.h" /** @@ -25,37 +26,6 @@ */ extern const Section* SECTION_LIST[]; -/* - * In order not to use libprotobuf-cpp-full nor libplatformprotos in incidentd - * privacy options's data structure are explicityly redefined in this file. - */ - -// DESTINATION enum -extern const uint8_t DEST_LOCAL; -extern const uint8_t DEST_EXPLICIT; -extern const uint8_t DEST_AUTOMATIC; - -// This is the default value of DEST enum -// field with this value doesn't generate Privacy to save too much generated code -extern const uint8_t DEST_DEFAULT_VALUE; - -// type of the field, identitical to protobuf definition -extern const uint8_t TYPE_STRING; -extern const uint8_t TYPE_MESSAGE; - -struct Privacy { - int field_id; - uint8_t type; - - // the following two fields are identitical to - // frameworks/base/libs/incident/proto/android/privacy.proto - uint8_t dest; - const char** patterns; - - // ignore parent's privacy flags if children are set, NULL-terminated - const Privacy** children; -}; - /** * This is the mapping of section IDs to each section's privacy policy. * The section IDs are guaranteed in ascending order diff --git a/cmds/incidentd/tests/EncodedBuffer_test.cpp b/cmds/incidentd/tests/EncodedBuffer_test.cpp new file mode 100644 index 000000000000..c51520b36a28 --- /dev/null +++ b/cmds/incidentd/tests/EncodedBuffer_test.cpp @@ -0,0 +1,207 @@ +// 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. + +#include "EncodedBuffer.h" + +#include <android-base/file.h> +#include <android-base/test_utils.h> +#include <gmock/gmock.h> +#include <gtest/gtest.h> +#include <string.h> + +using namespace android; +using namespace android::base; +using namespace std; +using ::testing::StrEq; +using ::testing::Test; +using ::testing::internal::CaptureStdout; +using ::testing::internal::GetCapturedStdout; + +const uint8_t LOCAL = 0; +const uint8_t EXPLICIT = 1; +const uint8_t AUTOMATIC = 2; + +const uint8_t OTHER_TYPE = 1; +const uint8_t STRING_TYPE = 9; +const uint8_t MESSAGE_TYPE = 11; +const string STRING_FIELD_0 = "\x02\viamtestdata"; +const string VARINT_FIELD_1 = "\x08\x96\x01"; // 150 +const string STRING_FIELD_2 = "\x12\vwhatthefuck"; +const string FIX64_FIELD_3 = "\x19\xff\xff\xff\xff\xff\xff\xff\xff"; // -1 +const string FIX32_FIELD_4 = "\x25\xff\xff\xff\xff"; // -1 +const string MESSAGE_FIELD_5 = "\x2a\x10" + VARINT_FIELD_1 + STRING_FIELD_2; + +class EncodedBufferTest : public Test { +public: + virtual void SetUp() override { + ASSERT_NE(tf.fd, -1); + } + + void writeToFdBuffer(string str) { + ASSERT_TRUE(WriteStringToFile(str, tf.path, false)); + ASSERT_EQ(NO_ERROR, buffer.read(tf.fd, 10000)); + } + + void assertBuffer(EncodedBuffer& buf, string expected) { + ASSERT_EQ(buf.size(), expected.size()); + CaptureStdout(); + ASSERT_EQ(buf.flush(STDOUT_FILENO), NO_ERROR); + ASSERT_THAT(GetCapturedStdout(), StrEq(expected)); + } + + void assertStrip(uint8_t dest, string expected, Privacy* policy) { + PrivacySpec spec(dest); + EncodedBuffer encodedBuf(buffer, policy); + ASSERT_EQ(encodedBuf.strip(spec), NO_ERROR); + assertBuffer(encodedBuf, expected); + } + + void assertStripByFields(uint8_t dest, string expected, int size, Privacy* privacy, ...) { + Privacy* list[size+1]; + list[0] = privacy; + va_list args; + va_start(args, privacy); + for (int i=1; i<size; i++) { + Privacy* p = va_arg(args, Privacy*); + list[i] = p; + } + va_end(args); + list[size] = NULL; + assertStrip(dest, expected, new Privacy(300, const_cast<const Privacy**>(list))); + } + + FdBuffer buffer; +private: + TemporaryFile tf; +}; + +TEST_F(EncodedBufferTest, NullFieldPolicy) { + writeToFdBuffer(STRING_FIELD_0); + assertStrip(EXPLICIT, STRING_FIELD_0, new Privacy(300, NULL)); +} + +TEST_F(EncodedBufferTest, StripSpecNotAllowed) { + writeToFdBuffer(STRING_FIELD_0); + assertStripByFields(AUTOMATIC, "", 1, new Privacy(0, STRING_TYPE, EXPLICIT)); +} + +TEST_F(EncodedBufferTest, StripVarintField) { + writeToFdBuffer(VARINT_FIELD_1); + assertStripByFields(EXPLICIT, "", 1, new Privacy(1, OTHER_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripLengthDelimitedField_String) { + writeToFdBuffer(STRING_FIELD_2); + assertStripByFields(EXPLICIT, "", 1, new Privacy(2, STRING_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripFixed64Field) { + writeToFdBuffer(FIX64_FIELD_3); + assertStripByFields(EXPLICIT, "", 1, new Privacy(3, OTHER_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripFixed32Field) { + writeToFdBuffer(FIX32_FIELD_4); + assertStripByFields(EXPLICIT, "", 1, new Privacy(4, OTHER_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripLengthDelimitedField_Message) { + writeToFdBuffer(MESSAGE_FIELD_5); + assertStripByFields(EXPLICIT, "", 1, new Privacy(5, MESSAGE_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, NoStripVarintField) { + writeToFdBuffer(VARINT_FIELD_1); + assertStripByFields(EXPLICIT, VARINT_FIELD_1, 1, new Privacy(1, OTHER_TYPE, AUTOMATIC)); +} + +TEST_F(EncodedBufferTest, NoStripLengthDelimitedField_String) { + writeToFdBuffer(STRING_FIELD_2); + assertStripByFields(EXPLICIT, STRING_FIELD_2, 1, new Privacy(2, STRING_TYPE, AUTOMATIC)); +} + +TEST_F(EncodedBufferTest, NoStripFixed64Field) { + writeToFdBuffer(FIX64_FIELD_3); + assertStripByFields(EXPLICIT, FIX64_FIELD_3, 1, new Privacy(3, OTHER_TYPE, AUTOMATIC)); +} + +TEST_F(EncodedBufferTest, NoStripFixed32Field) { + writeToFdBuffer(FIX32_FIELD_4); + assertStripByFields(EXPLICIT, FIX32_FIELD_4, 1, new Privacy(4, OTHER_TYPE, AUTOMATIC)); +} + +TEST_F(EncodedBufferTest, NoStripLengthDelimitedField_Message) { + writeToFdBuffer(MESSAGE_FIELD_5); + assertStripByFields(EXPLICIT, MESSAGE_FIELD_5, 1, new Privacy(5, MESSAGE_TYPE, AUTOMATIC)); +} + +TEST_F(EncodedBufferTest, StripVarintAndString) { + writeToFdBuffer(STRING_FIELD_0 + VARINT_FIELD_1 + STRING_FIELD_2 + + FIX64_FIELD_3 + FIX32_FIELD_4); + string expected = STRING_FIELD_0 + FIX64_FIELD_3 + FIX32_FIELD_4; + assertStripByFields(EXPLICIT, expected, 2, + new Privacy(1, OTHER_TYPE, LOCAL), new Privacy(2, STRING_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripVarintAndFixed64) { + writeToFdBuffer(STRING_FIELD_0 + VARINT_FIELD_1 + STRING_FIELD_2 + + FIX64_FIELD_3 + FIX32_FIELD_4); + string expected = STRING_FIELD_0 + STRING_FIELD_2 + FIX32_FIELD_4; + assertStripByFields(EXPLICIT, expected, 2, + new Privacy(1, OTHER_TYPE, LOCAL), new Privacy(3, OTHER_TYPE, LOCAL)); +} + +TEST_F(EncodedBufferTest, StripVarintInNestedMessage) { + writeToFdBuffer(STRING_FIELD_0 + MESSAGE_FIELD_5); + const Privacy* list[] = { new Privacy(1, OTHER_TYPE, LOCAL), NULL }; + string expected = STRING_FIELD_0 + "\x2a\xd" + STRING_FIELD_2; + assertStripByFields(EXPLICIT, expected, 1, new Privacy(5, list)); +} + +TEST_F(EncodedBufferTest, StripFix64AndVarintInNestedMessage) { + writeToFdBuffer(STRING_FIELD_0 + FIX64_FIELD_3 + MESSAGE_FIELD_5); + const Privacy* list[] = { new Privacy(1, OTHER_TYPE, LOCAL), NULL }; + string expected = STRING_FIELD_0 + "\x2a\xd" + STRING_FIELD_2; + assertStripByFields(EXPLICIT, expected, 2, new Privacy(3, OTHER_TYPE, LOCAL), new Privacy(5, list)); +} + +TEST_F(EncodedBufferTest, ClearAndStrip) { + string data = STRING_FIELD_0 + VARINT_FIELD_1; + writeToFdBuffer(data); + const Privacy* list[] = { new Privacy(1, OTHER_TYPE, LOCAL), NULL }; + EncodedBuffer encodedBuf(buffer, new Privacy(300, list)); + PrivacySpec spec1(EXPLICIT), spec2(LOCAL); + + ASSERT_EQ(encodedBuf.strip(spec1), NO_ERROR); + assertBuffer(encodedBuf, STRING_FIELD_0); + ASSERT_EQ(encodedBuf.strip(spec2), NO_ERROR); + assertBuffer(encodedBuf, data); +} + +TEST_F(EncodedBufferTest, BadDataInFdBuffer) { + writeToFdBuffer("iambaddata"); + const Privacy* list[] = { new Privacy(4, OTHER_TYPE, AUTOMATIC), NULL }; + EncodedBuffer encodedBuf(buffer, new Privacy(300, list)); + PrivacySpec spec; + ASSERT_EQ(encodedBuf.strip(spec), BAD_VALUE); +} + +TEST_F(EncodedBufferTest, BadDataInNestedMessage) { + writeToFdBuffer(STRING_FIELD_0 + MESSAGE_FIELD_5 + "aoeoe"); + const Privacy* list[] = { new Privacy(1, OTHER_TYPE, LOCAL), NULL }; + const Privacy* field5[] = { new Privacy(5, list), NULL }; + EncodedBuffer encodedBuf(buffer, new Privacy(300, field5)); + PrivacySpec spec; + ASSERT_EQ(encodedBuf.strip(spec), BAD_VALUE); +} diff --git a/cmds/incidentd/tests/FdBuffer_test.cpp b/cmds/incidentd/tests/FdBuffer_test.cpp index 403a2abf670a..d1436b2cc36f 100644 --- a/cmds/incidentd/tests/FdBuffer_test.cpp +++ b/cmds/incidentd/tests/FdBuffer_test.cpp @@ -15,10 +15,11 @@ #define LOG_TAG "incidentd" #include "FdBuffer.h" +#include "io_util.h" #include <android-base/file.h> #include <android-base/test_utils.h> -#include <gmock/gmock.h> +#include <fcntl.h> #include <gtest/gtest.h> #include <signal.h> #include <string.h> @@ -30,10 +31,7 @@ const std::string HEAD = "[OK]"; using namespace android; using namespace android::base; -using ::testing::StrEq; using ::testing::Test; -using ::testing::internal::CaptureStdout; -using ::testing::internal::GetCapturedStdout; class FdBufferTest : public Test { public: @@ -50,12 +48,13 @@ public: } void AssertBufferContent(const char* expected) { - ReportRequestSet requests; - requests.setMainFd(STDOUT_FILENO); - - CaptureStdout(); - ASSERT_EQ(NO_ERROR, buffer.write(&requests)); - EXPECT_THAT(GetCapturedStdout(), StrEq(expected)); + int i=0; + FdBuffer::iterator it = buffer.begin(); + while (expected[i] != '\0') { + ASSERT_EQ(*it, expected[i++]); + it++; + } + ASSERT_EQ(it, buffer.end()); } bool DoDataStream(int rFd, int wFd) { @@ -99,6 +98,16 @@ TEST_F(FdBufferTest, IterateEmpty) { EXPECT_TRUE(it.outOfBound()); } +TEST_F(FdBufferTest, IteratorSnapshot) { + FdBuffer::iterator it = buffer.begin(); + it += 4; + FdBuffer::iterator snapshot = it.snapshot(); + it += 5; + EXPECT_TRUE(snapshot != it); + EXPECT_EQ(it - snapshot, 5); + EXPECT_EQ(snapshot - it, -5); +} + TEST_F(FdBufferTest, ReadAndIterate) { std::string testdata = "FdBuffer test string"; ASSERT_TRUE(WriteStringToFile(testdata, tf.path, false)); @@ -227,7 +236,7 @@ TEST_F(FdBufferTest, ReadInStreamEmpty) { TEST_F(FdBufferTest, ReadInStreamMoreThan4MB) { const std::string testFile = kTestDataPath + "morethan4MB.txt"; size_t fourMB = (size_t) 4 * 1024 * 1024; - int fd = open(testFile.c_str(), O_RDONLY); + int fd = open(testFile.c_str(), O_RDONLY | O_CLOEXEC); ASSERT_NE(fd, -1); int pid = fork(); ASSERT_TRUE(pid != -1); diff --git a/cmds/incidentd/tests/Reporter_test.cpp b/cmds/incidentd/tests/Reporter_test.cpp index a77474199d27..5d074bcb0e4c 100644 --- a/cmds/incidentd/tests/Reporter_test.cpp +++ b/cmds/incidentd/tests/Reporter_test.cpp @@ -76,8 +76,7 @@ public: }; protected: - IBinder* onAsBinder() override { return nullptr; }; - + virtual IBinder* onAsBinder() override { return nullptr; }; }; class ReporterTest : public Test { @@ -127,29 +126,7 @@ TEST_F(ReporterTest, IncidentReportArgs) { TEST_F(ReporterTest, ReportRequestSetEmpty) { requests.setMainFd(STDOUT_FILENO); - - CaptureStdout(); - requests.write((uint8_t *) "abcdef", 6); - EXPECT_THAT(GetCapturedStdout(), StrEq("abcdef")); -} - -TEST_F(ReporterTest, WriteToStreamFdAndMainFd) { - TemporaryFile tf; - IncidentReportArgs args; - sp<ReportRequest> r = new ReportRequest(args, l, tf.fd); - - requests.add(r); - requests.setMainFd(STDOUT_FILENO); - - const char* data = "abcdef"; - - CaptureStdout(); - requests.write((uint8_t *) data, 6); - EXPECT_THAT(GetCapturedStdout(), StrEq(data)); - - string content; - ASSERT_TRUE(ReadFileToString(tf.path, &content)); - EXPECT_THAT(content, StrEq(data)); + ASSERT_EQ(requests.mainFd(), STDOUT_FILENO); } TEST_F(ReporterTest, RunReportEmpty) { diff --git a/cmds/incidentd/tests/Section_test.cpp b/cmds/incidentd/tests/Section_test.cpp index 93771ff30b64..25b05b2b1518 100644 --- a/cmds/incidentd/tests/Section_test.cpp +++ b/cmds/incidentd/tests/Section_test.cpp @@ -22,31 +22,80 @@ #include <gtest/gtest.h> #include <string.h> +const int TIMEOUT_PARSER = -1; +const int NOOP_PARSER = 0; +const int REVERSE_PARSER = 1; + const int QUICK_TIMEOUT_MS = 100; +const string VARINT_FIELD_1 = "\x08\x96\x01"; // 150 +const string STRING_FIELD_2 = "\x12\vwhatthefuck"; +const string FIX64_FIELD_3 = "\x19\xff\xff\xff\xff\xff\xff\xff\xff"; // -1 + using namespace android::base; +using namespace android::binder; using namespace std; using ::testing::StrEq; using ::testing::internal::CaptureStdout; using ::testing::internal::GetCapturedStdout; // NOTICE: this test requires /system/bin/incident_helper is installed. -TEST(SectionTest, WriteHeader) { - int id = 13; // expect output is 13 << 3 & 2 = 106 --> \x6a in ASCII - FileSection s(id, ""); // ignore the path, just used to test the header + +class SimpleListener : public IIncidentReportStatusListener +{ +public: + SimpleListener() {}; + virtual ~SimpleListener() {}; + + virtual Status onReportStarted() { return Status::ok(); }; + virtual Status onReportSectionStatus(int /*section*/, int /*status*/) { return Status::ok(); }; + virtual Status onReportFinished() { return Status::ok(); }; + virtual Status onReportFailed() { return Status::ok(); }; + +protected: + virtual IBinder* onAsBinder() override { return nullptr; }; +}; + +TEST(SectionTest, HeaderSection) { + TemporaryFile output2; + HeaderSection hs; ReportRequestSet requests; + IncidentReportArgs args1, args2; + args1.addSection(1); + args1.addSection(2); + args2.setAll(true); + + vector<int8_t> head1; + head1.push_back('a'); + head1.push_back('x'); + head1.push_back('e'); + + vector<int8_t> head2; + head2.push_back('p'); + head2.push_back('u'); + head2.push_back('p'); + + args1.addHeader(head1); + args1.addHeader(head2); + args2.addHeader(head2); + + requests.add(new ReportRequest(args1, new SimpleListener(), -1)); + requests.add(new ReportRequest(args2, new SimpleListener(), output2.fd)); requests.setMainFd(STDOUT_FILENO); + string content; CaptureStdout(); - ASSERT_EQ(NO_ERROR, s.WriteHeader(&requests, 300)); - // According to protobuf encoding, 300 is "1010 1100 0000 0010" -> \xac \x02 - EXPECT_THAT(GetCapturedStdout(), StrEq("\x6a\xac\x02")); + ASSERT_EQ(NO_ERROR, hs.Execute(&requests)); + EXPECT_THAT(GetCapturedStdout(), StrEq("\n\x3" "axe\n\x03pup")); + + EXPECT_TRUE(ReadFileToString(output2.path, &content)); + EXPECT_THAT(content, StrEq("\n\x03pup")); } TEST(SectionTest, FileSection) { TemporaryFile tf; - FileSection fs(0, tf.path); + FileSection fs(REVERSE_PARSER, tf.path); ReportRequestSet requests; ASSERT_TRUE(tf.fd != -1); @@ -58,13 +107,13 @@ TEST(SectionTest, FileSection) { ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); // The input string is reversed in incident helper // The length is 11, in 128Varint it is "0000 1011" -> \v - EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\vatadtsetmai")); + EXPECT_THAT(GetCapturedStdout(), StrEq("\xa\vatadtsetmai")); } TEST(SectionTest, FileSectionTimeout) { TemporaryFile tf; // id -1 is timeout parser - FileSection fs(-1, tf.path, QUICK_TIMEOUT_MS); + FileSection fs(TIMEOUT_PARSER, tf.path, QUICK_TIMEOUT_MS); ReportRequestSet requests; ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); } @@ -84,36 +133,165 @@ TEST(SectionTest, CommandSectionConstructor) { } TEST(SectionTest, CommandSectionEcho) { - CommandSection cs(0, "/system/bin/echo", "about", NULL); + CommandSection cs(REVERSE_PARSER, "/system/bin/echo", "about", NULL); ReportRequestSet requests; requests.setMainFd(STDOUT_FILENO); CaptureStdout(); ASSERT_EQ(NO_ERROR, cs.Execute(&requests)); - EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\x06\ntuoba")); + EXPECT_THAT(GetCapturedStdout(), StrEq("\xa\x06\ntuoba")); } TEST(SectionTest, CommandSectionCommandTimeout) { - CommandSection cs(0, QUICK_TIMEOUT_MS, "/system/bin/yes", NULL); + CommandSection cs(NOOP_PARSER, QUICK_TIMEOUT_MS, "/system/bin/yes", NULL); ReportRequestSet requests; ASSERT_EQ(NO_ERROR, cs.Execute(&requests)); } TEST(SectionTest, CommandSectionIncidentHelperTimeout) { - CommandSection cs(-1, QUICK_TIMEOUT_MS, "/system/bin/echo", "about", NULL); + CommandSection cs(TIMEOUT_PARSER, QUICK_TIMEOUT_MS, "/system/bin/echo", "about", NULL); ReportRequestSet requests; requests.setMainFd(STDOUT_FILENO); ASSERT_EQ(NO_ERROR, cs.Execute(&requests)); } TEST(SectionTest, CommandSectionBadCommand) { - CommandSection cs(0, "echo", "about", NULL); + CommandSection cs(NOOP_PARSER, "echo", "about", NULL); ReportRequestSet requests; ASSERT_EQ(NAME_NOT_FOUND, cs.Execute(&requests)); } TEST(SectionTest, CommandSectionBadCommandAndTimeout) { - CommandSection cs(-1, QUICK_TIMEOUT_MS, "nonexistcommand", "-opt", NULL); + CommandSection cs(TIMEOUT_PARSER, QUICK_TIMEOUT_MS, "nonexistcommand", "-opt", NULL); ReportRequestSet requests; // timeout will return first ASSERT_EQ(NO_ERROR, cs.Execute(&requests)); +} + +TEST(SectionTest, TestFilterPiiTaggedFields) { + TemporaryFile tf; + FileSection fs(NOOP_PARSER, tf.path); + ReportRequestSet requests; + + ASSERT_TRUE(tf.fd != -1); + ASSERT_TRUE(WriteStringToFile(VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3, tf.path, false)); + + requests.setMainFd(STDOUT_FILENO); + + CaptureStdout(); + ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); + EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\r" + STRING_FIELD_2)); +} + +TEST(SectionTest, TestBadFdRequest) { + TemporaryFile input; + FileSection fs(NOOP_PARSER, input.path); + ReportRequestSet requests; + ASSERT_TRUE(WriteStringToFile(VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3, input.path, false)); + + IncidentReportArgs args; + args.setAll(true); + args.setDest(0); + sp<ReportRequest> badFdRequest = new ReportRequest(args, new SimpleListener(), 1234567); + requests.add(badFdRequest); + requests.setMainFd(STDOUT_FILENO); + + CaptureStdout(); + ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); + EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\r" + STRING_FIELD_2)); + EXPECT_EQ(badFdRequest->err, -EBADF); +} + +TEST(SectionTest, TestBadRequests) { + TemporaryFile input; + FileSection fs(NOOP_PARSER, input.path); + ReportRequestSet requests; + ASSERT_TRUE(WriteStringToFile(VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3, input.path, false)); + + IncidentReportArgs args; + args.setAll(true); + args.setDest(0); + requests.add(new ReportRequest(args, new SimpleListener(), -1)); + EXPECT_EQ(fs.Execute(&requests), -EBADF); +} + +TEST(SectionTest, TestMultipleRequests) { + TemporaryFile input, output1, output2, output3; + FileSection fs(NOOP_PARSER, input.path); + ReportRequestSet requests; + + ASSERT_TRUE(input.fd != -1); + ASSERT_TRUE(output1.fd != -1); + ASSERT_TRUE(output2.fd != -1); + ASSERT_TRUE(output3.fd != -1); + ASSERT_TRUE(WriteStringToFile(VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3, input.path, false)); + + IncidentReportArgs args1, args2, args3; + args1.setAll(true); + args1.setDest(0); // LOCAL + args2.setAll(true); // default to explicit + sp<SimpleListener> l = new SimpleListener(); + requests.add(new ReportRequest(args1, l, output1.fd)); + requests.add(new ReportRequest(args2, l, output2.fd)); + requests.add(new ReportRequest(args3, l, output3.fd)); + requests.setMainFd(STDOUT_FILENO); + + CaptureStdout(); + ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); + EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\r" + STRING_FIELD_2)); + + string content, expect; + expect = VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3; + char c = (char) expect.size(); + EXPECT_TRUE(ReadFileToString(output1.path, &content)); + EXPECT_THAT(content, StrEq(string("\x02") + c + expect)); + + expect = STRING_FIELD_2 + FIX64_FIELD_3; + c = (char) expect.size(); + EXPECT_TRUE(ReadFileToString(output2.path, &content)); + EXPECT_THAT(content, StrEq(string("\x02") + c + expect)); + + // because args3 doesn't set section, so it should receive nothing + EXPECT_TRUE(ReadFileToString(output3.path, &content)); + EXPECT_THAT(content, StrEq("")); +} + +TEST(SectionTest, TestMultipleRequestsBySpec) { + TemporaryFile input, output1, output2, output3; + FileSection fs(NOOP_PARSER, input.path); + ReportRequestSet requests; + + ASSERT_TRUE(input.fd != -1); + ASSERT_TRUE(output1.fd != -1); + ASSERT_TRUE(output2.fd != -1); + ASSERT_TRUE(output3.fd != -1); + + ASSERT_TRUE(WriteStringToFile(VARINT_FIELD_1 + STRING_FIELD_2 + FIX64_FIELD_3, input.path, false)); + + IncidentReportArgs args1, args2, args3, args4; + args1.setAll(true); + args2.setAll(true); + args4.setAll(true); + sp<SimpleListener> l = new SimpleListener(); + requests.add(new ReportRequest(args1, l, output1.fd)); + requests.add(new ReportRequest(args2, l, output2.fd)); + requests.add(new ReportRequest(args3, l, output3.fd)); + requests.setMainFd(STDOUT_FILENO); + + CaptureStdout(); + ASSERT_EQ(NO_ERROR, fs.Execute(&requests)); + EXPECT_THAT(GetCapturedStdout(), StrEq("\x02\r" + STRING_FIELD_2)); + + string content, expect; + expect = STRING_FIELD_2 + FIX64_FIELD_3; + char c = (char) expect.size(); + + // output1 and output2 are the same + EXPECT_TRUE(ReadFileToString(output1.path, &content)); + EXPECT_THAT(content, StrEq(string("\x02") + c + expect)); + EXPECT_TRUE(ReadFileToString(output2.path, &content)); + EXPECT_THAT(content, StrEq(string("\x02") + c + expect)); + + // because args3 doesn't set section, so it should receive nothing + EXPECT_TRUE(ReadFileToString(output3.path, &content)); + EXPECT_THAT(content, StrEq("")); }
\ No newline at end of file diff --git a/cmds/incidentd/tests/section_list.cpp b/cmds/incidentd/tests/section_list.cpp index f0053355bd24..3722c7244ed7 100644 --- a/cmds/incidentd/tests/section_list.cpp +++ b/cmds/incidentd/tests/section_list.cpp @@ -4,3 +4,18 @@ const Section* SECTION_LIST[] = { NULL }; + +const uint8_t LOCAL = 0; +const uint8_t EXPLICIT = 1; +const uint8_t AUTOMATIC = 2; + +const Privacy* list[] = { + new Privacy(1, 1, LOCAL), + new Privacy(2, AUTOMATIC, (const char**)NULL), + NULL }; + +const Privacy* PRIVACY_POLICY_LIST[] = { + new Privacy(0, list), + new Privacy(1, 9, AUTOMATIC), + NULL +};
\ No newline at end of file diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt index efa5dc9ef0d8..40b266fe29d7 100644 --- a/config/boot-image-profile.txt +++ b/config/boot-image-profile.txt @@ -56926,3 +56926,16 @@ PLlibcore/net/http/HttpsHandler;-><init>()V PLlibcore/net/http/HttpsHandler;->createHttpsOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory; PLsun/security/util/DerInputBuffer;->getGeneralizedTime(I)Ljava/util/Date; PLsun/security/util/DerInputStream;->getGeneralizedTime()Ljava/util/Date; +Landroid/icu/impl/coll/CollationRoot; +Landroid/icu/impl/IDNA2003; +Landroid/icu/impl/number/Parse; +Landroid/icu/util/TimeZone; +Landroid/media/ImageReader; +Landroid/media/MediaCodecList; +Landroid/media/MediaPlayer; +Landroid/media/SoundPool; +Landroid/text/format/Formatter; +Landroid/text/Html$HtmlParser; +Lcom/android/org/conscrypt/TrustedCertificateStore; +Lorg/ccil/cowan/tagsoup/HTMLScanner; +Lsun/security/jca/Providers; diff --git a/config/preloaded-classes b/config/preloaded-classes index 5da78091448e..cd2965392c44 100644 --- a/config/preloaded-classes +++ b/config/preloaded-classes @@ -1159,6 +1159,7 @@ android.icu.impl.ICUService android.icu.impl.ICUService$CacheEntry android.icu.impl.ICUService$Factory android.icu.impl.ICUService$Key +android.icu.impl.IDNA2003 android.icu.impl.LocaleIDParser android.icu.impl.LocaleIDs android.icu.impl.Norm2AllModes @@ -1254,6 +1255,7 @@ android.icu.impl.locale.BaseLocale$Key android.icu.impl.locale.LocaleObjectCache android.icu.impl.locale.LocaleObjectCache$CacheEntry android.icu.impl.locale.LocaleSyntaxException +android.icu.impl.number.Parse android.icu.lang.UCharacter android.icu.lang.UCharacterEnums$ECharacterCategory android.icu.lang.UCharacterEnums$ECharacterDirection @@ -1468,6 +1470,7 @@ android.media.IRingtonePlayer android.media.IRingtonePlayer$Stub android.media.IRingtonePlayer$Stub$Proxy android.media.Image +android.media.ImageReader android.media.JetPlayer android.media.MediaCodec$BufferInfo android.media.MediaCodec$BufferMap @@ -1478,9 +1481,11 @@ android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecProfileLevel android.media.MediaCodecInfo$Feature android.media.MediaCodecInfo$VideoCapabilities +android.media.MediaCodecList android.media.MediaFormat android.media.MediaMetadata$1 android.media.MediaMetadata$Builder +android.media.MediaPlayer android.media.MediaPlayer$1 android.media.MediaPlayer$2 android.media.MediaPlayer$EventHandler @@ -1511,6 +1516,7 @@ android.media.PlayerBase$IPlayerWrapper android.media.PlayerBase$PlayerIdCard$1 android.media.RemoteDisplay android.media.Ringtone$MyOnCompletionListener +android.media.SoundPool android.media.SubtitleController$Listener android.media.ToneGenerator android.media.Utils @@ -2050,6 +2056,7 @@ android.text.FontConfig$Font android.text.GetChars android.text.GraphicsOperations android.text.Html +android.text.Html$HtmlParser android.text.HtmlToSpannedConverter$Href android.text.Hyphenator android.text.Hyphenator$HyphenationData @@ -2099,6 +2106,7 @@ android.text.TextUtils$SimpleStringSplitter android.text.TextUtils$StringSplitter android.text.TextUtils$TruncateAt android.text.TextWatcher +android.text.format.Formatter android.text.format.Time$TimeCalculator android.text.method.AllCapsTransformationMethod android.text.method.ArrowKeyMovementMethod @@ -4426,81 +4434,21 @@ org.apache.harmony.xml.ExpatParser$ExpatLocator org.apache.harmony.xml.ExpatReader org.apache.harmony.xml.parsers.SAXParserFactoryImpl org.apache.harmony.xml.parsers.SAXParserImpl -org.apache.http.ConnectionReuseStrategy -org.apache.http.HeaderElement -org.apache.http.HttpEntity -org.apache.http.HttpException -org.apache.http.HttpHost -org.apache.http.HttpMessage -org.apache.http.HttpRequest -org.apache.http.HttpRequestInterceptor -org.apache.http.HttpResponse -org.apache.http.HttpResponseFactory -org.apache.http.NameValuePair -org.apache.http.ProtocolException -org.apache.http.ProtocolVersion -org.apache.http.ReasonPhraseCatalog -org.apache.http.StatusLine -org.apache.http.client.HttpClient -org.apache.http.client.ResponseHandler -org.apache.http.client.methods.AbortableHttpRequest -org.apache.http.client.methods.HttpRequestBase -org.apache.http.client.methods.HttpUriRequest -org.apache.http.client.params.HttpClientParams -org.apache.http.conn.ClientConnectionManager -org.apache.http.conn.ClientConnectionOperator org.apache.http.conn.ConnectTimeoutException -org.apache.http.conn.params.ConnManagerPNames -org.apache.http.conn.params.ConnManagerParams$1 -org.apache.http.conn.params.ConnPerRoute org.apache.http.conn.scheme.LayeredSocketFactory -org.apache.http.conn.scheme.Scheme -org.apache.http.conn.scheme.SchemeRegistry org.apache.http.conn.scheme.SocketFactory org.apache.http.conn.ssl.AllowAllHostnameVerifier org.apache.http.conn.ssl.BrowserCompatHostnameVerifier org.apache.http.conn.ssl.StrictHostnameVerifier org.apache.http.conn.ssl.X509HostnameVerifier -org.apache.http.entity.AbstractHttpEntity -org.apache.http.entity.BasicHttpEntity -org.apache.http.impl.DefaultConnectionReuseStrategy -org.apache.http.impl.DefaultHttpResponseFactory -org.apache.http.impl.client.AbstractHttpClient -org.apache.http.impl.client.DefaultHttpClient -org.apache.http.impl.conn.IdleConnectionHandler -org.apache.http.impl.conn.tsccm.AbstractConnPool -org.apache.http.impl.conn.tsccm.ConnPoolByRoute -org.apache.http.impl.conn.tsccm.RefQueueHandler -org.apache.http.impl.conn.tsccm.RefQueueWorker -org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager -org.apache.http.impl.cookie.DateParseException -org.apache.http.impl.cookie.DateUtils$DateFormatHolder$1 -org.apache.http.message.AbstractHttpMessage -org.apache.http.message.BasicHeader -org.apache.http.message.BasicHeaderElement -org.apache.http.message.BasicHttpResponse -org.apache.http.message.BasicNameValuePair -org.apache.http.message.BasicStatusLine -org.apache.http.message.HeaderGroup -org.apache.http.message.HeaderValueParser -org.apache.http.message.ParserCursor -org.apache.http.params.AbstractHttpParams -org.apache.http.params.BasicHttpParams org.apache.http.params.CoreConnectionPNames -org.apache.http.params.CoreProtocolPNames org.apache.http.params.HttpConnectionParams org.apache.http.params.HttpParams -org.apache.http.params.HttpProtocolParams -org.apache.http.protocol.BasicHttpProcessor -org.apache.http.protocol.HTTP -org.apache.http.protocol.HttpContext -org.apache.http.protocol.HttpRequestInterceptorList -org.apache.http.protocol.HttpResponseInterceptorList -org.apache.http.util.CharArrayBuffer org.ccil.cowan.tagsoup.AttributesImpl org.ccil.cowan.tagsoup.AutoDetector org.ccil.cowan.tagsoup.Element org.ccil.cowan.tagsoup.ElementType +org.ccil.cowan.tagsoup.HTMLScanner org.ccil.cowan.tagsoup.HTMLSchema org.ccil.cowan.tagsoup.Parser$1 org.ccil.cowan.tagsoup.ScanHandler diff --git a/config/preloaded-classes-extra b/config/preloaded-classes-extra index 1934cbca27ad..959fff5c1e5c 100644 --- a/config/preloaded-classes-extra +++ b/config/preloaded-classes-extra @@ -1 +1,13 @@ android.icu.impl.coll.CollationRoot +android.icu.impl.IDNA2003 +android.icu.impl.number.Parse +android.icu.util.TimeZone +android.media.ImageReader +android.media.MediaCodecList +android.media.MediaPlayer +android.media.SoundPool +android.text.format.Formatter +android.text.Html$HtmlParser +com.android.org.conscrypt.TrustedCertificateStore +org.ccil.cowan.tagsoup.HTMLScanner +sun.security.jca.Providers diff --git a/core/java/android/app/usage/UsageStatsManager.java b/core/java/android/app/usage/UsageStatsManager.java index 1f939f996c68..051dccbd86c0 100644 --- a/core/java/android/app/usage/UsageStatsManager.java +++ b/core/java/android/app/usage/UsageStatsManager.java @@ -172,9 +172,6 @@ public final class UsageStatsManager { /** * Query for events in the given time range. Events are only kept by the system for a few * days. - * <p /> - * <b>NOTE:</b> The last few minutes of the event log will be truncated to prevent abuse - * by applications. * * @param beginTime The inclusive beginning of the range of events to include in the results. * @param endTime The exclusive end of the range of events to include in the results. diff --git a/core/java/android/os/IncidentReportArgs.java b/core/java/android/os/IncidentReportArgs.java index abb316171309..fd0ebcfea080 100644 --- a/core/java/android/os/IncidentReportArgs.java +++ b/core/java/android/os/IncidentReportArgs.java @@ -35,6 +35,7 @@ public final class IncidentReportArgs implements Parcelable { private final IntArray mSections = new IntArray(); private final ArrayList<byte[]> mHeaders = new ArrayList<byte[]>(); private boolean mAll; + private int mDest; /** * Construct an incident report args with no fields. @@ -69,6 +70,8 @@ public final class IncidentReportArgs implements Parcelable { for (int i=0; i<N; i++) { out.writeByteArray(mHeaders.get(i)); } + + out.writeInt(mDest); } public void readFromParcel(Parcel in) { @@ -85,6 +88,8 @@ public final class IncidentReportArgs implements Parcelable { for (int i=0; i<N; i++) { mHeaders.add(in.createByteArray()); } + + mDest = in.readInt(); } public static final Parcelable.Creator<IncidentReportArgs> CREATOR @@ -118,7 +123,8 @@ public final class IncidentReportArgs implements Parcelable { } sb.append(", "); sb.append(mHeaders.size()); - sb.append(" headers)"); + sb.append(" headers), "); + sb.append("Dest enum value: ").append(mDest); return sb.toString(); } @@ -133,6 +139,14 @@ public final class IncidentReportArgs implements Parcelable { } /** + * Set this incident report privacy policy spec. + * @hide + */ + public void setPrivacyPolicy(int dest) { + mDest = dest; + } + + /** * Add this section to the incident report. Skip if the input is smaller than 2 since section * id are only valid for positive integer as Protobuf field id. Here 1 is reserved for Header. */ diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index 8533c7efad84..70363468c097 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -41,6 +41,7 @@ import android.os.Binder; import android.os.Environment; import android.os.FileUtils; import android.os.Handler; +import android.os.IVold; import android.os.Looper; import android.os.Message; import android.os.ParcelFileDescriptor; @@ -219,27 +220,33 @@ public class StorageManager { public static final int FLAG_INCLUDE_INVISIBLE = 1 << 10; /** {@hide} */ - public static final int FSTRIM_FLAG_DEEP = 1 << 0; + public static final int FSTRIM_FLAG_DEEP = IVold.FSTRIM_FLAG_DEEP_TRIM; /** {@hide} */ - public static final int FSTRIM_FLAG_BENCHMARK = 1 << 1; + public static final int FSTRIM_FLAG_BENCHMARK = IVold.FSTRIM_FLAG_BENCHMARK_AFTER; /** @hide The volume is not encrypted. */ - public static final int ENCRYPTION_STATE_NONE = 1; + public static final int ENCRYPTION_STATE_NONE = + IVold.ENCRYPTION_STATE_NONE; /** @hide The volume has been encrypted succesfully. */ - public static final int ENCRYPTION_STATE_OK = 0; + public static final int ENCRYPTION_STATE_OK = + IVold.ENCRYPTION_STATE_OK; - /** @hide The volume is in a bad state.*/ - public static final int ENCRYPTION_STATE_ERROR_UNKNOWN = -1; + /** @hide The volume is in a bad state. */ + public static final int ENCRYPTION_STATE_ERROR_UNKNOWN = + IVold.ENCRYPTION_STATE_ERROR_UNKNOWN; /** @hide Encryption is incomplete */ - public static final int ENCRYPTION_STATE_ERROR_INCOMPLETE = -2; + public static final int ENCRYPTION_STATE_ERROR_INCOMPLETE = + IVold.ENCRYPTION_STATE_ERROR_INCOMPLETE; /** @hide Encryption is incomplete and irrecoverable */ - public static final int ENCRYPTION_STATE_ERROR_INCONSISTENT = -3; + public static final int ENCRYPTION_STATE_ERROR_INCONSISTENT = + IVold.ENCRYPTION_STATE_ERROR_INCONSISTENT; /** @hide Underlying data is corrupt */ - public static final int ENCRYPTION_STATE_ERROR_CORRUPT = -4; + public static final int ENCRYPTION_STATE_ERROR_CORRUPT = + IVold.ENCRYPTION_STATE_ERROR_CORRUPT; private static volatile IStorageManager sStorageManager = null; @@ -1973,13 +1980,13 @@ public class StorageManager { /// Consts to match the password types in cryptfs.h /** @hide */ - public static final int CRYPT_TYPE_PASSWORD = 0; + public static final int CRYPT_TYPE_PASSWORD = IVold.PASSWORD_TYPE_PASSWORD; /** @hide */ - public static final int CRYPT_TYPE_DEFAULT = 1; + public static final int CRYPT_TYPE_DEFAULT = IVold.PASSWORD_TYPE_DEFAULT; /** @hide */ - public static final int CRYPT_TYPE_PATTERN = 2; + public static final int CRYPT_TYPE_PATTERN = IVold.PASSWORD_TYPE_PATTERN; /** @hide */ - public static final int CRYPT_TYPE_PIN = 3; + public static final int CRYPT_TYPE_PIN = IVold.PASSWORD_TYPE_PIN; // Constants for the data available via StorageManagerService.getField. /** @hide */ diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 6f8ba489ee0c..2cb3864f9ea4 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7120,6 +7120,11 @@ public final class Settings { public static final String QS_AUTO_ADDED_TILES = "qs_auto_tiles"; /** + * Whether the Lockdown button should be shown in the power menu. + * @hide + */ + public static final String LOCKDOWN_IN_POWER_MENU = "lockdown_in_power_menu"; + /** * This are the settings to be backed up. * * NOTE: Settings are backed up and restored in the order they appear @@ -7221,6 +7226,7 @@ public final class Settings { SCREENSAVER_COMPONENTS, SCREENSAVER_ACTIVATE_ON_DOCK, SCREENSAVER_ACTIVATE_ON_SLEEP, + LOCKDOWN_IN_POWER_MENU, }; /** @hide */ diff --git a/core/java/android/view/FocusFinder.java b/core/java/android/view/FocusFinder.java index af26a88e877c..74555de5f291 100644 --- a/core/java/android/view/FocusFinder.java +++ b/core/java/android/view/FocusFinder.java @@ -574,10 +574,10 @@ public class FocusFinder { switch (direction) { case View.FOCUS_LEFT: case View.FOCUS_RIGHT: - return (rect2.bottom >= rect1.top) && (rect2.top <= rect1.bottom); + return (rect2.bottom > rect1.top) && (rect2.top < rect1.bottom); case View.FOCUS_UP: case View.FOCUS_DOWN: - return (rect2.right >= rect1.left) && (rect2.left <= rect1.right); + return (rect2.right > rect1.left) && (rect2.left < rect1.right); } throw new IllegalArgumentException("direction must be one of " + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT}."); diff --git a/core/java/android/view/textclassifier/TextClassification.java b/core/java/android/view/textclassifier/TextClassification.java index fa7b9a59c669..1849368f6ae9 100644 --- a/core/java/android/view/textclassifier/TextClassification.java +++ b/core/java/android/view/textclassifier/TextClassification.java @@ -261,7 +261,7 @@ public final class TextClassification { * @hide */ Builder setVersionInfo(@NonNull String versionInfo) { - mVersionInfo = Preconditions.checkNotNull(mVersionInfo); + mVersionInfo = Preconditions.checkNotNull(versionInfo); return this; } diff --git a/core/java/android/view/textclassifier/TextSelection.java b/core/java/android/view/textclassifier/TextSelection.java index 085dd32966b0..11ebe8359b9c 100644 --- a/core/java/android/view/textclassifier/TextSelection.java +++ b/core/java/android/view/textclassifier/TextSelection.java @@ -169,7 +169,7 @@ public final class TextSelection { * @hide */ Builder setVersionInfo(@NonNull String versionInfo) { - mVersionInfo = Preconditions.checkNotNull(mVersionInfo); + mVersionInfo = Preconditions.checkNotNull(versionInfo); return this; } diff --git a/core/java/android/view/textclassifier/logging/SmartSelectionEventTracker.java b/core/java/android/view/textclassifier/logging/SmartSelectionEventTracker.java index 45baf912ebb2..77aea2345304 100644 --- a/core/java/android/view/textclassifier/logging/SmartSelectionEventTracker.java +++ b/core/java/android/view/textclassifier/logging/SmartSelectionEventTracker.java @@ -253,6 +253,7 @@ public final class SmartSelectionEventTracker { private static void debugLog(LogMaker log) { if (!DEBUG_LOG_ENABLED) return; + final String tag = Objects.toString(log.getTaggedData(TAG), "tag"); final int index = Integer.parseInt(Objects.toString(log.getTaggedData(INDEX), ZERO)); final String event; @@ -291,7 +292,6 @@ public final class SmartSelectionEventTracker { event = "RESET"; break; case SelectionEvent.EventType.SELECTION_STARTED: - final String tag = Objects.toString(log.getTaggedData(TAG), "tag"); String sessionId = Objects.toString(log.getTaggedData(SESSION_ID), ""); sessionId = sessionId.substring(sessionId.lastIndexOf("-") + 1); Log.d(LOG_TAG, String.format("New selection session: %s(%s)", tag, sessionId)); @@ -326,8 +326,8 @@ public final class SmartSelectionEventTracker { final String entity = Objects.toString( log.getTaggedData(ENTITY_TYPE), TextClassifier.TYPE_UNKNOWN); - Log.d(LOG_TAG, String.format("%2d: %s, context=%d,%d - old=%d,%d [%s]", - index, event, eventStart, eventEnd, smartStart, smartEnd, entity)); + Log.d(LOG_TAG, String.format("%2d: %s, context=%d,%d - old=%d,%d [%s] (%s)", + index, event, eventStart, eventEnd, smartStart, smartEnd, entity, tag)); } /** diff --git a/core/java/android/webkit/SafeBrowsingResponse.java b/core/java/android/webkit/SafeBrowsingResponse.java index 4750dfb81108..1d3a617a6bec 100644 --- a/core/java/android/webkit/SafeBrowsingResponse.java +++ b/core/java/android/webkit/SafeBrowsingResponse.java @@ -25,7 +25,6 @@ package android.webkit; * <p> * If reporting is enabled, all reports will be sent according to the privacy policy referenced by * {@link android.webkit.WebView#getSafeBrowsingPrivacyPolicyUrl()}. - * </p> */ public abstract class SafeBrowsingResponse { diff --git a/core/java/android/webkit/ServiceWorkerController.java b/core/java/android/webkit/ServiceWorkerController.java index 571d45e22d3b..3517c74b680e 100644 --- a/core/java/android/webkit/ServiceWorkerController.java +++ b/core/java/android/webkit/ServiceWorkerController.java @@ -33,7 +33,7 @@ import android.annotation.Nullable; * return null; * } * }); - * </pre></p> + * </pre> */ public abstract class ServiceWorkerController { diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java index 3444d49c05e5..742daa9180eb 100644 --- a/core/java/android/webkit/WebChromeClient.java +++ b/core/java/android/webkit/WebChromeClient.java @@ -289,7 +289,7 @@ public class WebChromeClient { * (API level > {@link android.os.Build.VERSION_CODES#M}) * this method is only called for requests originating from secure * origins such as https. On non-secure origins geolocation requests - * are automatically denied.</p> + * are automatically denied. * * @param origin The origin of the web content attempting to use the * Geolocation API. diff --git a/core/java/android/webkit/WebMessagePort.java b/core/java/android/webkit/WebMessagePort.java index 54dd502ca7de..acd7af955b75 100644 --- a/core/java/android/webkit/WebMessagePort.java +++ b/core/java/android/webkit/WebMessagePort.java @@ -22,30 +22,30 @@ import android.os.Handler; /** * <p>The Java representation of the * <a href="https://html.spec.whatwg.org/multipage/comms.html#messageport"> - * HTML5 message ports.</a> </p> + * HTML5 message ports.</a> * * <p>A Message port represents one endpoint of a Message Channel. In Android * webview, there is no separate Message Channel object. When a message channel * is created, both ports are tangled to each other and started, and then * returned in a MessagePort array, see {@link WebView#createWebMessageChannel} - * for creating a message channel. </p> + * for creating a message channel. * * <p>When a message port is first created or received via transfer, it does not * have a WebMessageCallback to receive web messages. The messages are queued until - * a WebMessageCallback is set. </p> + * a WebMessageCallback is set. * * <p>A message port should be closed when it is not used by the embedder application * anymore. A closed port cannot be transferred or cannot be reopened to send - * messages. Close can be called multiple times. </p> + * messages. Close can be called multiple times. * * <p>When a port is transferred to JS, it cannot be used to send or receive messages * at the Java side anymore. Different from HTML5 Spec, a port cannot be transferred * if one of these has ever happened: i. a message callback was set, ii. a message was * posted on it. A transferred port cannot be closed by the application, since - * the ownership is also transferred. </p> + * the ownership is also transferred. * * <p>It is possible to transfer both ports of a channel to JS, for example for - * communication between subframes.</p> + * communication between subframes. */ public abstract class WebMessagePort { diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index 36a00ab40e46..22d8561dac46 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -1394,11 +1394,9 @@ public abstract class WebSettings { * Safe browsing is disabled by default. The recommended way to enable Safe browsing is using a * manifest tag to change the default value to enabled for all WebViews (read <a * href="{@docRoot}reference/android/webkit/WebView.html">general Safe Browsing info</a>). - * </p> * * <p> * This API overrides the manifest tag value for this WebView. - * </p> * * @param enabled Whether Safe browsing is enabled. */ diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index a930fa80e035..419b7b24fddb 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -75,18 +75,22 @@ import java.util.Map; * can roll your own web browser or simply display some online content within your Activity. * It uses the WebKit rendering engine to display * web pages and includes methods to navigate forward and backward - * through a history, zoom in and out, perform text searches and more.</p> + * through a history, zoom in and out, perform text searches and more. + * * <p>Note that, in order for your Activity to access the Internet and load web pages * in a WebView, you must add the {@code INTERNET} permissions to your - * Android Manifest file:</p> - * <pre><uses-permission android:name="android.permission.INTERNET" /></pre> + * Android Manifest file: + * + * <pre> + * {@code <uses-permission android:name="android.permission.INTERNET" />} + * </pre> * * <p>This must be a child of the <a * href="{@docRoot}guide/topics/manifest/manifest-element.html">{@code <manifest>}</a> - * element.</p> + * element. * * <p>For more information, read - * <a href="{@docRoot}guide/webapps/webview.html">Building Web Apps in WebView</a>.</p> + * <a href="{@docRoot}guide/webapps/webview.html">Building Web Apps in WebView</a>. * * <h3>Basic usage</h3> * @@ -103,17 +107,19 @@ import java.util.Map; * Intent intent = new Intent(Intent.ACTION_VIEW, uri); * startActivity(intent); * </pre> - * <p>See {@link android.content.Intent} for more information.</p> + * <p>See {@link android.content.Intent} for more information. * * <p>To provide a WebView in your own Activity, include a {@code <WebView>} in your layout, * or set the entire Activity window as a WebView during {@link - * android.app.Activity#onCreate(Bundle) onCreate()}:</p> + * android.app.Activity#onCreate(Bundle) onCreate()}: + * * <pre class="prettyprint"> * WebView webview = new WebView(this); * setContentView(webview); * </pre> * - * <p>Then load the desired web page:</p> + * <p>Then load the desired web page: + * * <pre> * // Simplest usage: note that an exception will NOT be thrown * // if there is an error loading this page (see below). @@ -128,7 +134,7 @@ import java.util.Map; * </pre> * * <p>A WebView has several customization points where you can add your - * own behavior. These are:</p> + * own behavior. These are: * * <ul> * <li>Creating and setting a {@link android.webkit.WebChromeClient} subclass. @@ -153,7 +159,7 @@ import java.util.Map; * </ul> * * <p>Here's a more complicated example, showing error handling, - * settings, and progress notification:</p> + * settings, and progress notification: * * <pre class="prettyprint"> * // Let's display the progress in the activity title bar, like the @@ -183,23 +189,23 @@ import java.util.Map; * * <p>To enable the built-in zoom, set * {@link #getSettings() WebSettings}.{@link WebSettings#setBuiltInZoomControls(boolean)} - * (introduced in API level {@link android.os.Build.VERSION_CODES#CUPCAKE}).</p> + * (introduced in API level {@link android.os.Build.VERSION_CODES#CUPCAKE}). + * * <p>NOTE: Using zoom if either the height or width is set to * {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} may lead to undefined behavior - * and should be avoided.</p> + * and should be avoided. * * <h3>Cookie and window management</h3> * * <p>For obvious security reasons, your application has its own * cache, cookie store etc.—it does not share the Browser * application's data. - * </p> * * <p>By default, requests by the HTML to open new windows are * ignored. This is {@code true} whether they be opened by JavaScript or by * the target attribute on a link. You can customize your * {@link WebChromeClient} to provide your own behavior for opening multiple windows, - * and render them in whatever manner you want.</p> + * and render them in whatever manner you want. * * <p>The standard behavior for an Activity is to be destroyed and * recreated when the device orientation or any other configuration changes. This will cause @@ -208,7 +214,7 @@ import java.util.Map; * changes, and then just leave the WebView alone. It'll automatically * re-orient itself as appropriate. Read <a * href="{@docRoot}guide/topics/resources/runtime-changes.html">Handling Runtime Changes</a> for - * more information about how to handle configuration changes during runtime.</p> + * more information about how to handle configuration changes during runtime. * * * <h3>Building web pages to support different screen densities</h3> @@ -220,15 +226,15 @@ import java.util.Map; * height and width are defined in terms of screen pixels will appear larger on the lower density * screen and smaller on the higher density screen. * For simplicity, Android collapses all actual screen densities into three generalized densities: - * high, medium, and low.</p> + * high, medium, and low. * <p>By default, WebView scales a web page so that it is drawn at a size that matches the default * appearance on a medium density screen. So, it applies 1.5x scaling on a high density screen * (because its pixels are smaller) and 0.75x scaling on a low density screen (because its pixels * are bigger). * Starting with API level {@link android.os.Build.VERSION_CODES#ECLAIR}, WebView supports DOM, CSS, * and meta tag features to help you (as a web developer) target screens with different screen - * densities.</p> - * <p>Here's a summary of the features you can use to handle different screen densities:</p> + * densities. + * <p>Here's a summary of the features you can use to handle different screen densities: * <ul> * <li>The {@code window.devicePixelRatio} DOM property. The value of this property specifies the * default scaling factor used for the current device. For example, if the value of {@code @@ -244,7 +250,7 @@ import java.util.Map; * <pre> * <link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio:1.5)" href="hdpi.css" /></pre> * <p>The {@code hdpi.css} stylesheet is only used for devices with a screen pixel ration of 1.5, - * which is the high density pixel ratio.</p> + * which is the high density pixel ratio. * </li> * </ul> * @@ -252,7 +258,6 @@ import java.util.Map; * * <p>In order to support inline HTML5 video in your application you need to have hardware * acceleration turned on. - * </p> * * <h3>Full screen support</h3> * @@ -263,7 +268,6 @@ import java.util.Map; * missing then the web contents will not be allowed to enter full screen. Optionally you can implement * {@link WebChromeClient#getVideoLoadingProgressView()} to customize the View displayed whilst a video * is loading. - * </p> * * <h3>HTML5 Geolocation API support</h3> * @@ -273,7 +277,6 @@ import java.util.Map; * origins are automatically denied without invoking the corresponding * {@link WebChromeClient#onGeolocationPermissionsShowPrompt(String, GeolocationPermissions.Callback)} * method. - * </p> * * <h3>Layout size</h3> * <p> @@ -284,7 +287,6 @@ import java.util.Map; * for the height none of the WebView's parents should use a * {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} layout height since that could result in * incorrect sizing of the views. - * </p> * * <p>Setting the WebView's height to {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} * enables the following behaviors: @@ -294,13 +296,11 @@ import java.util.Map; * <li>For applications targeting {@link android.os.Build.VERSION_CODES#KITKAT} and earlier SDKs the * HTML viewport meta tag will be ignored in order to preserve backwards compatibility. </li> * </ul> - * </p> * * <p> * Using a layout width of {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} is not * supported. If such a width is used the WebView will attempt to use the width of the parent * instead. - * </p> * * <h3>Metrics</h3> * @@ -313,27 +313,22 @@ import java.util.Map; * <meta-data android:name="android.webkit.WebView.MetricsOptOut" * android:value="true" /> * </pre> - * </p> * <p> * Data will only be uploaded for a given app if the user has consented AND the app has not opted * out. - * </p> * * <h3>Safe Browsing</h3> * * <p> * If Safe Browsing is enabled, WebView will block malicious URLs and present a warning UI to the * user to allow them to navigate back safely or proceed to the malicious page. - * </p> * <p> * The recommended way for apps to enable the feature is putting the following tag in the manifest: - * </p> * <p> * <pre> * <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" * android:value="true" /> * </pre> - * </p> * */ // Implementation notes. @@ -1197,11 +1192,11 @@ public class WebView extends AbsoluteLayout * immediately be reflected visually by subsequent {@link WebView#onDraw} invocations. The * {@link VisualStateCallback} provides a mechanism to notify the caller when the contents of * the DOM at the current time are ready to be drawn the next time the {@link WebView} - * draws.</p> + * draws. * * <p>The next draw after the callback completes is guaranteed to reflect all the updates to the * DOM up to the point at which the {@link VisualStateCallback} was posted, but it may also - * contain updates applied after the callback was posted.</p> + * contain updates applied after the callback was posted. * * <p>The state of the DOM covered by this API includes the following: * <ul> @@ -1214,7 +1209,7 @@ public class WebView extends AbsoluteLayout * It does not include the state of: * <ul> * <li>the video tag</li> - * </ul></p> + * </ul> * * <p>To guarantee that the {@link WebView} will successfully render the first frame * after the {@link VisualStateCallback#onComplete} method has been called a set of conditions @@ -1230,11 +1225,11 @@ public class WebView extends AbsoluteLayout * {@link AbsoluteLayout.LayoutParams LayoutParams}'s width and height need to be set to fixed * values and must be made {@link View#VISIBLE VISIBLE} from the * {@link VisualStateCallback#onComplete} method.</li> - * </ul></p> + * </ul> * * <p>When using this API it is also recommended to enable pre-rasterization if the {@link * WebView} is off screen to avoid flickering. See {@link WebSettings#setOffscreenPreRaster} for - * more details and do consider its caveats.</p> + * more details and do consider its caveats. * * @param requestId An id that will be returned in the callback to allow callers to match * requests with callbacks. @@ -1990,7 +1985,7 @@ public class WebView extends AbsoluteLayout * <a href="https://html.spec.whatwg.org/multipage/comms.html#messagechannel">here * </a> * - * <p>The returned message channels are entangled and already in started state.</p> + * <p>The returned message channels are entangled and already in started state. * * @return the two message ports that form the message channel. */ diff --git a/core/java/android/webkit/WebViewClient.java b/core/java/android/webkit/WebViewClient.java index b750adadbf5f..af7026d9f16a 100644 --- a/core/java/android/webkit/WebViewClient.java +++ b/core/java/android/webkit/WebViewClient.java @@ -66,7 +66,6 @@ public class WebViewClient { * with the request's url from inside the method and then return {@code true}, * as this will make WebView to attempt loading a non-http url, and thus fail.</li> * </ul> - * </p> * * @param view The WebView that is initiating the callback. * @param request Object containing the details of the request. @@ -130,15 +129,15 @@ public class WebViewClient { * <p>This method is called when the body of the HTTP response has started loading, is reflected * in the DOM, and will be visible in subsequent draws. This callback occurs early in the * document loading process, and as such you should expect that linked resources (for example, - * css and images) may not be available.</p> + * css and images) may not be available. * * <p>For more fine-grained notification of visual state updates, see {@link - * WebView#postVisualStateCallback}.</p> + * WebView#postVisualStateCallback}. * * <p>Please note that all the conditions and recommendations applicable to - * {@link WebView#postVisualStateCallback} also apply to this API.<p> + * {@link WebView#postVisualStateCallback} also apply to this API. * - * <p>This callback is only called for main frame navigations.</p> + * <p>This callback is only called for main frame navigations. * * @param view The {@link android.webkit.WebView} for which the navigation occurred. * @param url The URL corresponding to the page navigation that triggered this callback. @@ -154,6 +153,10 @@ public class WebViewClient { * other than the UI thread so clients should exercise caution * when accessing private data or the view system. * + * <p>Note: when Safe Browsing is enabled, these URLs still undergo Safe Browsing checks. If + * this is undesired, whitelist the URL with {@link WebView#setSafeBrowsingWhitelist} or ignore + * the warning with {@link #onSafeBrowsingHit}. + * * @param view The {@link android.webkit.WebView} that is requesting the * resource. * @param url The raw url of the resource. @@ -177,6 +180,10 @@ public class WebViewClient { * other than the UI thread so clients should exercise caution * when accessing private data or the view system. * + * <p>Note: when Safe Browsing is enabled, these URLs still undergo Safe Browsing checks. If + * this is undesired, whitelist the URL with {@link WebView#setSafeBrowsingWhitelist} or ignore + * the warning with {@link #onSafeBrowsingHit}. + * * @param view The {@link android.webkit.WebView} that is requesting the * resource. * @param request Object containing the details of the request. diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 8a3744067cd6..d23dfe46742e 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -1262,7 +1262,8 @@ public class Editor { } } - void sendOnTextChanged(int start, int after) { + void sendOnTextChanged(int start, int before, int after) { + getSelectionActionModeHelper().onTextChanged(start, start + before); updateSpellCheckSpans(start, start + after, false); // Flip flag to indicate the word iterator needs to have the text reset. diff --git a/core/java/android/widget/SelectionActionModeHelper.java b/core/java/android/widget/SelectionActionModeHelper.java index 041b515f7e47..36dc3308a721 100644 --- a/core/java/android/widget/SelectionActionModeHelper.java +++ b/core/java/android/widget/SelectionActionModeHelper.java @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UiThread; import android.annotation.WorkerThread; -import android.content.Context; import android.graphics.Canvas; import android.graphics.PointF; import android.graphics.RectF; @@ -48,6 +47,7 @@ import java.util.List; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Supplier; +import java.util.regex.Pattern; /** * Helper class for starting selection action mode @@ -56,7 +56,7 @@ import java.util.function.Supplier; */ @UiThread @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) -final class SelectionActionModeHelper { +public final class SelectionActionModeHelper { /** * Maximum time (in milliseconds) to wait for a result before timing out. @@ -85,8 +85,7 @@ final class SelectionActionModeHelper { mTextClassificationHelper = new TextClassificationHelper( mTextView.getTextClassifier(), mTextView.getText(), 0, 1, mTextView.getTextLocales()); - mSelectionTracker = - new SelectionTracker(mTextView.getContext(), mTextView.isTextEditable()); + mSelectionTracker = new SelectionTracker(mTextView); if (SMART_SELECT_ANIMATION_ENABLED) { mSmartSelectSprite = new SmartSelectSprite(mTextView.getContext(), @@ -147,10 +146,8 @@ final class SelectionActionModeHelper { SelectionEvent.ActionType.DRAG, mTextClassification); } - public void onTypeOverSelection() { - mSelectionTracker.onSelectionAction( - mTextView.getSelectionStart(), mTextView.getSelectionEnd(), - SelectionEvent.ActionType.OVERTYPE, mTextClassification); + public void onTextChanged(int start, int end) { + mSelectionTracker.onTextChanged(start, end, mTextClassification); } public boolean resetSelection(int textIndex) { @@ -235,17 +232,6 @@ final class SelectionActionModeHelper { final List<RectF> selectionRectangles = convertSelectionToRectangles(layout, result.mStart, result.mEnd); - /* - * Do not run the Smart Select animation when there are multiple lines involved, as this - * behavior is currently broken. - * - * TODO fix Smart Select Animation when the selection spans multiple lines - */ - if (selectionRectangles.size() != 1) { - onAnimationEndCallback.run(); - return; - } - final PointF touchPoint = new PointF( mEditor.getLastUpPositionX(), mEditor.getLastUpPositionY()); @@ -262,17 +248,66 @@ final class SelectionActionModeHelper { private List<RectF> convertSelectionToRectangles(final Layout layout, final int start, final int end) { final List<RectF> result = new ArrayList<>(); - // TODO filter out invalid rectangles - // getSelection might give us overlapping and zero-dimension rectangles which will interfere - // with the Smart Select animation layout.getSelection(start, end, (left, top, right, bottom, textSelectionLayout) -> - result.add(new RectF(left, top, right, bottom))); + mergeRectangleIntoList(result, new RectF(left, top, right, bottom))); result.sort(SmartSelectSprite.RECTANGLE_COMPARATOR); - return result; } + /** + * Merges a {@link RectF} into an existing list of rectangles. While merging, this method + * makes sure that: + * + * <ol> + * <li>No rectangle is redundant (contained within a bigger rectangle)</li> + * <li>Rectangles of the same height and vertical position that intersect get merged</li> + * </ol> + * + * @param list the list of rectangles to merge the new rectangle in + * @param candidate the {@link RectF} to merge into the list + * @hide + */ + @VisibleForTesting + public static void mergeRectangleIntoList(List<RectF> list, RectF candidate) { + if (candidate.isEmpty()) { + return; + } + + final int elementCount = list.size(); + for (int index = 0; index < elementCount; ++index) { + final RectF existingRectangle = list.get(index); + if (existingRectangle.contains(candidate)) { + return; + } + if (candidate.contains(existingRectangle)) { + existingRectangle.setEmpty(); + continue; + } + + final boolean rectanglesContinueEachOther = candidate.left == existingRectangle.right + || candidate.right == existingRectangle.left; + final boolean canMerge = candidate.top == existingRectangle.top + && candidate.bottom == existingRectangle.bottom + && (RectF.intersects(candidate, existingRectangle) + || rectanglesContinueEachOther); + + if (canMerge) { + candidate.union(existingRectangle); + existingRectangle.setEmpty(); + } + } + + for (int index = elementCount - 1; index >= 0; --index) { + if (list.get(index).isEmpty()) { + list.remove(index); + } + } + + list.add(candidate); + } + + /** @hide */ @VisibleForTesting public static PointF movePointInsideNearestRectangle(final PointF point, @@ -281,7 +316,9 @@ final class SelectionActionModeHelper { float bestY = -1; double bestDistance = Double.MAX_VALUE; - for (final RectF rectangle : rectangles) { + final int elementCount = rectangles.size(); + for (int index = 0; index < elementCount; ++index) { + final RectF rectangle = rectangles.get(index); final float candidateY = rectangle.centerY(); final float candidateX; @@ -337,19 +374,18 @@ final class SelectionActionModeHelper { */ private static final class SelectionTracker { - private final Context mContext; + private final TextView mTextView; private SelectionMetricsLogger mLogger; private int mOriginalStart; private int mOriginalEnd; private int mSelectionStart; private int mSelectionEnd; - private boolean mSelectionStarted; private boolean mAllowReset; - SelectionTracker(Context context, boolean editable) { - mContext = Preconditions.checkNotNull(context); - mLogger = new SelectionMetricsLogger(context, editable); + SelectionTracker(TextView textView) { + mTextView = Preconditions.checkNotNull(textView); + mLogger = new SelectionMetricsLogger(textView); } /** @@ -357,11 +393,10 @@ final class SelectionActionModeHelper { */ public void onOriginalSelection( CharSequence text, int selectionStart, int selectionEnd, boolean editableText) { - mOriginalStart = selectionStart; - mOriginalEnd = selectionEnd; - mSelectionStarted = true; + mOriginalStart = mSelectionStart = selectionStart; + mOriginalEnd = mSelectionEnd = selectionEnd; mAllowReset = false; - maybeInvalidateLogger(editableText); + maybeInvalidateLogger(); mLogger.logSelectionStarted(text, selectionStart); } @@ -369,7 +404,7 @@ final class SelectionActionModeHelper { * Called when selection action mode is started and the results come from a classifier. */ public void onSmartSelection(SelectionResult result) { - if (mSelectionStarted) { + if (isSelectionStarted()) { mSelectionStart = result.mStart; mSelectionEnd = result.mEnd; mAllowReset = mSelectionStart != mOriginalStart || mSelectionEnd != mOriginalEnd; @@ -384,7 +419,9 @@ final class SelectionActionModeHelper { public void onSelectionUpdated( int selectionStart, int selectionEnd, @Nullable TextClassification classification) { - if (mSelectionStarted) { + if (isSelectionStarted()) { + mSelectionStart = selectionStart; + mSelectionEnd = selectionEnd; mAllowReset = false; mLogger.logSelectionModified(selectionStart, selectionEnd, classification, null); } @@ -395,10 +432,13 @@ final class SelectionActionModeHelper { */ public void onSelectionDestroyed() { mAllowReset = false; - mSelectionStarted = false; - mLogger.logSelectionAction( - mSelectionStart, mSelectionEnd, - SelectionEvent.ActionType.ABANDON, null /* classification */); + // Wait a few ms to see if the selection was destroyed because of a text change event. + mTextView.postDelayed(() -> { + mLogger.logSelectionAction( + mSelectionStart, mSelectionEnd, + SelectionEvent.ActionType.ABANDON, null /* classification */); + mSelectionStart = mSelectionEnd = -1; + }, 100 /* ms */); } /** @@ -408,7 +448,7 @@ final class SelectionActionModeHelper { int selectionStart, int selectionEnd, @SelectionEvent.ActionType int action, @Nullable TextClassification classification) { - if (mSelectionStarted) { + if (isSelectionStarted()) { mAllowReset = false; mLogger.logSelectionAction(selectionStart, selectionEnd, action, classification); } @@ -422,13 +462,15 @@ final class SelectionActionModeHelper { */ public boolean resetSelection(int textIndex, Editor editor) { final TextView textView = editor.getTextView(); - if (mSelectionStarted + if (isSelectionStarted() && mAllowReset && textIndex >= mSelectionStart && textIndex <= mSelectionEnd && textView.getText() instanceof Spannable) { mAllowReset = false; boolean selected = editor.selectCurrentWord(); if (selected) { + mSelectionStart = editor.getTextView().getSelectionStart(); + mSelectionEnd = editor.getTextView().getSelectionEnd(); mLogger.logSelectionAction( textView.getSelectionStart(), textView.getSelectionEnd(), SelectionEvent.ActionType.RESET, null /* classification */); @@ -438,11 +480,21 @@ final class SelectionActionModeHelper { return false; } - private void maybeInvalidateLogger(boolean editableText) { - if (mLogger.isEditTextLogger() != editableText) { - mLogger = new SelectionMetricsLogger(mContext, editableText); + public void onTextChanged(int start, int end, TextClassification classification) { + if (isSelectionStarted() && start == mSelectionStart && end == mSelectionEnd) { + onSelectionAction(start, end, SelectionEvent.ActionType.OVERTYPE, classification); } } + + private void maybeInvalidateLogger() { + if (mLogger.isEditTextLogger() != mTextView.isTextEditable()) { + mLogger = new SelectionMetricsLogger(mTextView); + } + } + + private boolean isSelectionStarted() { + return mSelectionStart >= 0 && mSelectionEnd >= 0 && mSelectionStart != mSelectionEnd; + } } // TODO: Write tests @@ -462,20 +514,22 @@ final class SelectionActionModeHelper { private static final class SelectionMetricsLogger { private static final String LOG_TAG = "SelectionMetricsLogger"; + private static final Pattern PATTERN_WHITESPACE = Pattern.compile("\\s+"); private final SmartSelectionEventTracker mDelegate; private final boolean mEditTextLogger; - private final BreakIterator mWordIterator = BreakIterator.getWordInstance(); + private final BreakIterator mWordIterator; private int mStartIndex; - private int mEndIndex; private String mText; - SelectionMetricsLogger(Context context, boolean editable) { - final @SmartSelectionEventTracker.WidgetType int widgetType = editable + SelectionMetricsLogger(TextView textView) { + Preconditions.checkNotNull(textView); + final @SmartSelectionEventTracker.WidgetType int widgetType = textView.isTextEditable() ? SmartSelectionEventTracker.WidgetType.EDITTEXT : SmartSelectionEventTracker.WidgetType.TEXTVIEW; - mDelegate = new SmartSelectionEventTracker(context, widgetType); - mEditTextLogger = editable; + mDelegate = new SmartSelectionEventTracker(textView.getContext(), widgetType); + mEditTextLogger = textView.isTextEditable(); + mWordIterator = BreakIterator.getWordInstance(textView.getTextLocale()); } public void logSelectionStarted(CharSequence text, int index) { @@ -487,7 +541,6 @@ final class SelectionActionModeHelper { } mWordIterator.setText(mText); mStartIndex = index; - mEndIndex = mWordIterator.following(index); mDelegate.logEvent(SelectionEvent.selectionStarted(0)); } catch (Exception e) { // Avoid crashes due to logging. @@ -550,12 +603,15 @@ final class SelectionActionModeHelper { } else if (start < mStartIndex) { wordIndices[0] = -countWordsForward(start); } else { // start > mStartIndex - if (mStartIndex < start && start < mEndIndex) { - // If the new selection did not move past the original word, - // assume it has not moved. - wordIndices[0] = 0; - } else { - wordIndices[0] = countWordsBackward(start); + wordIndices[0] = countWordsBackward(start); + + // For the selection start index, avoid counting a partial word backwards. + if (!mWordIterator.isBoundary(start) + && !isWhitespace( + mWordIterator.preceding(start), + mWordIterator.following(start))) { + // We counted a partial word. Remove it. + wordIndices[0]--; } } @@ -599,7 +655,7 @@ final class SelectionActionModeHelper { } private boolean isWhitespace(int start, int end) { - return mText.substring(start, end).trim().isEmpty(); + return PATTERN_WHITESPACE.matcher(mText.substring(start, end)).matches(); } } diff --git a/core/java/android/widget/TabHost.java b/core/java/android/widget/TabHost.java index 8de17c072b59..8696d0d5df7f 100644 --- a/core/java/android/widget/TabHost.java +++ b/core/java/android/widget/TabHost.java @@ -146,12 +146,17 @@ mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1"); // and relays them to the tab content. mTabKeyListener = new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { + if (KeyEvent.isModifierKey(keyCode)) { + return false; + } switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_DPAD_DOWN: + case KeyEvent.KEYCODE_TAB: + case KeyEvent.KEYCODE_SPACE: case KeyEvent.KEYCODE_ENTER: return false; diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 3b9f7918ce55..4b6c4d355390 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -9402,7 +9402,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } } - if (mEditor != null) mEditor.sendOnTextChanged(start, after); + if (mEditor != null) mEditor.sendOnTextChanged(start, before, after); } /** diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index f85333eb9588..b8ef82b8c1d9 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1614,7 +1614,8 @@ public class LockPatternUtils { STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW, SOME_AUTH_REQUIRED_AFTER_USER_REQUEST, STRONG_AUTH_REQUIRED_AFTER_LOCKOUT, - STRONG_AUTH_REQUIRED_AFTER_TIMEOUT}) + STRONG_AUTH_REQUIRED_AFTER_TIMEOUT, + STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN}) @Retention(RetentionPolicy.SOURCE) public @interface StrongAuthFlags {} @@ -1651,6 +1652,11 @@ public class LockPatternUtils { public static final int STRONG_AUTH_REQUIRED_AFTER_TIMEOUT = 0x10; /** + * Strong authentication is required because the user has triggered lockdown. + */ + public static final int STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN = 0x20; + + /** * Strong auth flags that do not prevent fingerprint from being accepted as auth. * * If any other flags are set, fingerprint is disabled. diff --git a/core/jni/android/graphics/Picture.cpp b/core/jni/android/graphics/Picture.cpp index 7b381b41bde5..fd1d87ff62f6 100644 --- a/core/jni/android/graphics/Picture.cpp +++ b/core/jni/android/graphics/Picture.cpp @@ -31,7 +31,6 @@ Picture::Picture(const Picture* src) { } else if (NULL != src->mRecorder.get()) { mPicture = src->makePartialCopy(); } - validate(); } else { mWidth = 0; mHeight = 0; @@ -50,18 +49,15 @@ Canvas* Picture::beginRecording(int width, int height) { void Picture::endRecording() { if (NULL != mRecorder.get()) { mPicture = mRecorder->finishRecordingAsPicture(); - validate(); mRecorder.reset(NULL); } } int Picture::width() const { - validate(); return mWidth; } int Picture::height() const { - validate(); return mHeight; } @@ -84,7 +80,6 @@ void Picture::serialize(SkWStream* stream) const { if (NULL != mRecorder.get()) { this->makePartialCopy()->serialize(stream); } else if (NULL != mPicture.get()) { - validate(); mPicture->serialize(stream); } else { // serialize "empty" picture @@ -99,7 +94,6 @@ void Picture::draw(Canvas* canvas) { this->endRecording(); SkASSERT(NULL != mPicture.get()); } - validate(); if (NULL != mPicture.get()) { mPicture->playback(canvas->asSkCanvas()); } @@ -115,14 +109,4 @@ sk_sp<SkPicture> Picture::makePartialCopy() const { return reRecorder.finishRecordingAsPicture(); } -void Picture::validate() const { -#ifdef SK_DEBUG - if (NULL != mPicture.get()) { - SkRect cullRect = mPicture->cullRect(); - SkRect myRect = SkRect::MakeWH(SkIntToScalar(mWidth), SkIntToScalar(mHeight)); - SkASSERT(cullRect == myRect); - } -#endif -} - }; // namespace android diff --git a/core/jni/android/graphics/Picture.h b/core/jni/android/graphics/Picture.h index b73b375ef899..306863174334 100644 --- a/core/jni/android/graphics/Picture.h +++ b/core/jni/android/graphics/Picture.h @@ -61,8 +61,6 @@ private: // Make a copy of a picture that is in the midst of being recorded. The // resulting picture will have balanced saves and restores. sk_sp<SkPicture> makePartialCopy() const; - - void validate() const; }; }; // namespace android diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index 5b0f7768c165..883d4db04890 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -133,6 +133,14 @@ static struct strict_mode_callback_offsets_t jmethodID mCallback; } gStrictModeCallbackOffsets; +static struct thread_dispatch_offsets_t +{ + // Class state. + jclass mClass; + jmethodID mDispatchUncaughtException; + jmethodID mCurrentThread; +} gThreadDispatchOffsets; + // **************************************************************************** // **************************************************************************** // **************************************************************************** @@ -166,6 +174,23 @@ static JNIEnv* javavm_to_jnienv(JavaVM* vm) return vm->GetEnv((void **)&env, JNI_VERSION_1_4) >= 0 ? env : NULL; } +// Report a java.lang.Error (or subclass). This may terminate the runtime. +static void report_java_lang_error(JNIEnv* env, jthrowable error) +{ + // Try to run the uncaught exception machinery. + jobject thread = env->CallStaticObjectMethod(gThreadDispatchOffsets.mClass, + gThreadDispatchOffsets.mCurrentThread); + if (thread != nullptr) { + env->CallVoidMethod(thread, gThreadDispatchOffsets.mDispatchUncaughtException, + error); + // Should not return here, unless more errors occured. + } + // Some error occurred that meant that either dispatchUncaughtException could not be + // called or that it had an error itself (as this should be unreachable under normal + // conditions). Clear the exception. + env->ExceptionClear(); +} + static void report_exception(JNIEnv* env, jthrowable excep, const char* msg) { env->ExceptionClear(); @@ -192,6 +217,10 @@ static void report_exception(JNIEnv* env, jthrowable excep, const char* msg) } if (env->IsInstanceOf(excep, gErrorOffsets.mClass)) { + // Try to report the error. This should not return under normal circumstances. + report_java_lang_error(env, excep); + // The traditional handling: re-raise and abort. + /* * It's an Error: Reraise the exception and ask the runtime to abort. */ @@ -1337,5 +1366,12 @@ int register_android_os_Binder(JNIEnv* env) gStrictModeCallbackOffsets.mCallback = GetStaticMethodIDOrDie(env, clazz, "onBinderStrictModePolicyChange", "(I)V"); + clazz = FindClassOrDie(env, "java/lang/Thread"); + gThreadDispatchOffsets.mClass = MakeGlobalRefOrDie(env, clazz); + gThreadDispatchOffsets.mDispatchUncaughtException = GetMethodIDOrDie(env, clazz, + "dispatchUncaughtException", "(Ljava/lang/Throwable;)V"); + gThreadDispatchOffsets.mCurrentThread = GetStaticMethodIDOrDie(env, clazz, "currentThread", + "()Ljava/lang/Thread;"); + return 0; } diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto index 5dfcd2a63b18..aab4142d252f 100644 --- a/core/proto/android/os/incident.proto +++ b/core/proto/android/os/incident.proto @@ -31,22 +31,12 @@ import "frameworks/base/core/proto/android/service/package.proto"; import "frameworks/base/core/proto/android/service/power.proto"; import "frameworks/base/core/proto/android/service/print.proto"; import "frameworks/base/core/proto/android/providers/settings.proto"; +import "frameworks/base/core/proto/android/os/incidentheader.proto"; import "frameworks/base/core/proto/android/os/kernelwake.proto"; import "frameworks/base/core/proto/android/os/procrank.proto"; package android.os; -message IncidentHeaderProto { - enum Cause { - CAUSE_UNKNOWN = 0; - CAUSE_USER = 1; - CAUSE_ANR = 2; - CAUSE_CRASH = 3; - } - - Cause cause = 1; -} - // privacy field options must not be set at this level because all // the sections are able to be controlled and configured by section ids. // Instead privacy field options need to be configured in each section proto message. diff --git a/core/proto/android/os/incidentheader.proto b/core/proto/android/os/incidentheader.proto new file mode 100644 index 000000000000..55a06162dd2f --- /dev/null +++ b/core/proto/android/os/incidentheader.proto @@ -0,0 +1,34 @@ +/* + * 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. + */ + +syntax = "proto3"; + +option java_multiple_files = true; +option java_outer_classname = "IncidentHeaderProtoMetadata"; + +package android.os; + +message IncidentHeaderProto { + enum Cause { + CAUSE_UNKNOWN = 0; + CAUSE_USER = 1; + CAUSE_ANR = 2; + CAUSE_CRASH = 3; + } + + Cause cause = 1; +} + diff --git a/core/res/res/drawable/ic_close.xml b/core/res/res/drawable/ic_close.xml index 708695994ab6..70565f296a1f 100644 --- a/core/res/res/drawable/ic_close.xml +++ b/core/res/res/drawable/ic_close.xml @@ -19,6 +19,6 @@ Copyright (C) 2016 The Android Open Source Project android:viewportWidth="24.0" android:viewportHeight="24.0"> <path - android:pathData="M19.000000,6.400000l-1.400000,-1.400000 -5.600000,5.600000 -5.600000,-5.600000 -1.400000,1.400000 5.600000,5.600000 -5.600000,5.600000 1.400000,1.400000 5.600000,-5.600000 5.600000,5.600000 1.400000,-1.400000 -5.600000,-5.600000z" + android:pathData="M18.3,5.71a0.996,0.996 0,0 0,-1.41 0L12,10.59 7.11,5.7A0.996,0.996 0,1 0,5.7 7.11L10.59,12 5.7,16.89a0.996,0.996 0,1 0,1.41 1.41L12,13.41l4.89,4.89a0.996,0.996 0,1 0,1.41 -1.41L13.41,12l4.89,-4.89c0.38,-0.38 0.38,-1.02 0,-1.4z" android:fillColor="#FF000000"/> </vector> diff --git a/core/res/res/drawable/ic_eject_24dp.xml b/core/res/res/drawable/ic_eject_24dp.xml index 1bb351a57601..321ee3b6289c 100644 --- a/core/res/res/drawable/ic_eject_24dp.xml +++ b/core/res/res/drawable/ic_eject_24dp.xml @@ -20,5 +20,8 @@ Copyright (C) 2015 The Android Open Source Project android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M5 17h14v2H5zm7,-12L5.33 15h13.34z"/> + android:pathData="M6,17h12c0.55,0 1,0.45 1,1v0c0,0.55 -0.45,1 -1,1H6c-0.55,0 -1,-0.45 -1,-1v0C5,17.45 5.45,17 6,17z"/> + <path + android:fillColor="#FF000000" + android:pathData="M11.1,5.48l-5.22,7.83C5.39,14.03 5.91,15 6.78,15h10.44c0.87,0 1.39,-0.97 0.9,-1.69L12.9,5.48C12.47,4.84 11.53,4.84 11.1,5.48z"/> </vector> diff --git a/core/res/res/drawable/ic_feedback.xml b/core/res/res/drawable/ic_feedback.xml index 365863da31e2..c316e7df5d4b 100644 --- a/core/res/res/drawable/ic_feedback.xml +++ b/core/res/res/drawable/ic_feedback.xml @@ -20,5 +20,5 @@ Copyright (C) 2016 The Android Open Source Project android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M20.0,2.0L4.0,2.0c-1.1,0.0 -1.9,0.9 -1.99,2.0L2.0,22.0l4.0,-4.0l14.0,0.0c1.1,0.0 2.0,-0.9 2.0,-2.0L22.0,4.0c0.0,-1.1 -0.9,-2.0 -2.0,-2.0zm-7.0,12.0l-2.0,0.0l0.0,-2.0l2.0,0.0l0.0,2.0zm0.0,-4.0l-2.0,0.0L11.0,6.0l2.0,0.0l0.0,4.0z"/> + android:pathData="M20,2H4C2.9,2 2,2.9 2,4v17.39c0,0.54 0.65,0.81 1.04,0.43L6.86,18H20c1.1,0 2,-0.9 2,-2V4C22,2.9 21.1,2 20,2zM11,7c0,-0.55 0.45,-1 1,-1s1,0.45 1,1v3c0,0.55 -0.45,1 -1,1s-1,-0.45 -1,-1V7zM12,15.2c-0.61,0 -1.1,-0.49 -1.1,-1.1c0,-0.61 0.49,-1.1 1.1,-1.1c0.61,0 1.1,0.49 1.1,1.1C13.1,14.71 12.61,15.2 12,15.2z"/> </vector> diff --git a/core/res/res/drawable/ic_refresh.xml b/core/res/res/drawable/ic_refresh.xml index 1297407fbb8b..5894f9526ec2 100644 --- a/core/res/res/drawable/ic_refresh.xml +++ b/core/res/res/drawable/ic_refresh.xml @@ -20,5 +20,5 @@ Copyright (C) 2016 The Android Open Source Project android:viewportHeight="24.0"> <path android:fillColor="#FF000000" - android:pathData="M17.65,6.35C16.2,4.9 14.21,4.0 12.0,4.0c-4.42,0.0 -7.99,3.58 -7.99,8.0s3.57,8.0 7.99,8.0c3.73,0.0 6.84,-2.55 7.73,-6.0l-2.08,0.0c-0.82,2.33 -3.04,4.0 -5.65,4.0 -3.31,0.0 -6.0,-2.69 -6.0,-6.0s2.69,-6.0 6.0,-6.0c1.66,0.0 3.1,0.69 4.22,1.78L13.0,11.0l7.0,0.0L20.0,4.0l-2.35,2.35z"/> + android:pathData="M17.65,6.35c-1.63,-1.63 -3.94,-2.57 -6.48,-2.31c-3.67,0.37 -6.69,3.35 -7.1,7.02C3.52,15.91 7.27,20 12,20c3.19,0 5.93,-1.87 7.21,-4.57c0.31,-0.66 -0.16,-1.43 -0.89,-1.43h-0.01c-0.37,0 -0.72,0.2 -0.88,0.53c-1.13,2.43 -3.84,3.97 -6.81,3.32c-2.22,-0.49 -4.01,-2.3 -4.49,-4.52C5.31,9.44 8.26,6 12,6c1.66,0 3.14,0.69 4.22,1.78l-2.37,2.37C13.54,10.46 13.76,11 14.21,11H19c0.55,0 1,-0.45 1,-1V5.21c0,-0.45 -0.54,-0.67 -0.85,-0.35L17.65,6.35z"/> </vector> diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 21f387f500bb..28e1fe19f06f 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Instellings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Help"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Stembystand"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Sluit nou"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nuwe kennisgewing"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuele sleutelbord"</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 857d1f9a5af9..dc5222e8096a 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ቅንብሮች"</string> <string name="global_action_assist" msgid="3892832961594295030">"ደግፍ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"የድምጽ እርዳታ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"አሁን ቆልፍ"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"አዲስ ማሳወቂያ"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ምናባዊ የቁልፍ ሰሌዳ"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index e06c5dbe2e68..7c5822ae925b 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -242,7 +242,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"الإعدادات"</string> <string name="global_action_assist" msgid="3892832961594295030">"مساعدة"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"المساعد الصوتي"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"قفل الآن"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"إشعار جديد"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"لوحة المفاتيح الافتراضية"</string> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 47e7a192f945..c907446a1ba9 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ayarlar"</string> <string name="global_action_assist" msgid="3892832961594295030">"Yardım"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Səs Yardımçısı"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"İndi kilidləyin"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Yeni bildiriş"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual klaviatura"</string> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index e4dc49618043..38b7b90410d1 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -133,7 +133,7 @@ <string name="wfc_mode_wifi_only_summary" msgid="2379919155237869320">"Samo Wi-Fi"</string> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Nije prosleđeno"</string> <string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string> - <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> nakon <xliff:g id="TIME_DELAY">{2}</xliff:g> sekunde(i)"</string> + <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> nakon <xliff:g id="TIME_DELAY">{2}</xliff:g> sekunde/i"</string> <string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Nije prosleđeno"</string> <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Nije prosleđeno"</string> <string name="fcComplete" msgid="3118848230966886575">"Kôd funkcije je izvršen."</string> @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Podešavanja"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomoć"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Glasovna pomoć"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zaključaj odmah"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Novo obaveštenje"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuelna tastatura"</string> @@ -739,19 +740,19 @@ <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Pogledajte Korisnički vodič ili kontaktirajte Korisničku podršku."</string> <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM kartica je zaključana."</string> <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"Otključavanje SIM kartice…"</string> - <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste nepravilno nacrtali šablon za otključavanje. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> - <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste pogrešno uneli lozinku. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> - <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste pogrešno uneli PIN. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste netačno uneli šablon za otključavanje. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string> + <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste nepravilno nacrtali šablon za otključavanje. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> + <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste pogrešno uneli lozinku. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> + <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste pogrešno uneli PIN. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste netačno uneli šablon za otključavanje. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde/i."</string> <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"Neispravno ste nacrtali šablon za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja od vas će biti zatraženo da otključate TV pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste netačno uneli šablon za otključavanje. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"<xliff:g id="NUMBER_0">%1$d</xliff:g> puta ste netačno uneli šablon za otključavanje. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde/i."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Nepravilno ste pokušali da otključate tablet <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još neuspešnih pokušaja (<xliff:g id="NUMBER_1">%2$d</xliff:g>) tablet će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="950408382418270260">"Pokušali ste da otključate TV netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja TV će biti resetovan na podrazumevana fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Neispravno ste pokušali da otključate telefon <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još neuspešnih pokušaja (<xliff:g id="NUMBER_1">%2$d</xliff:g>) telefon će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Neispravno ste pokušali da otključate tablet <xliff:g id="NUMBER">%d</xliff:g> puta. Tablet će sada biti vraćen na podrazumevana fabrička podešavanja."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="3195755534096192191">"Pokušali ste da otključate TV netačno <xliff:g id="NUMBER">%d</xliff:g> puta. TV će sada biti resetovan na podrazumevana fabrička podešavanja."</string> <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Neispravno ste pokušali da otključate telefon <xliff:g id="NUMBER">%d</xliff:g> puta. Telefon će sada biti vraćen na podrazumevana fabrička podešavanja."</string> - <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Probajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> sekunde(i)."</string> + <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Probajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> sekunde/i."</string> <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Zaboravili ste šablon?"</string> <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"Otključavanje naloga"</string> <string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"Previše pokušaja unosa šablona"</string> @@ -883,7 +884,7 @@ <string name="second" msgid="3184235808021478">"sek"</string> <string name="seconds" msgid="3161515347216589235">"sek"</string> <string name="week" msgid="5617961537173061583">"nedelja"</string> - <string name="weeks" msgid="6509623834583944518">"nedelje(a)"</string> + <string name="weeks" msgid="6509623834583944518">"nedelje/a"</string> <string name="year" msgid="4001118221013892076">"godina"</string> <string name="years" msgid="6881577717993213522">"godine(a)"</string> <string name="now_string_shortest" msgid="8912796667087856402">"sada"</string> @@ -1495,18 +1496,18 @@ <string name="kg_login_invalid_input" msgid="5754664119319872197">"Nevažeće korisničko ime ili lozinka."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Zaboravili ste korisničko ime ili lozinku?\nPosetite adresu "<b>"google.com/accounts/recovery"</b>"."</string> <string name="kg_login_checking_password" msgid="1052685197710252395">"Provera naloga…"</string> - <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Uneli ste netačni PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> - <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Uneli ste netačnu lozinku <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> - <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde(i)."</string> + <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Uneli ste netačni PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> + <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Uneli ste netačnu lozinku <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> + <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. \n\nProbajte ponovo za <xliff:g id="NUMBER_1">%2$d</xliff:g> sekunde/i."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"Pokušali ste da otključate tablet netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja tablet će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="5621231220154419413">"Pokušali ste da otključate TV netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja TV će biti resetovan na podrazumevana fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"Pokušali ste da otključate telefon netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja telefon će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni."</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"Pokušali ste da otključate tablet netačno <xliff:g id="NUMBER">%d</xliff:g> puta. Tablet će sada biti vraćen na podrazumevana fabrička podešavanja."</string> <string name="kg_failed_attempts_now_wiping" product="tv" msgid="4987878286750741463">"Pokušali ste da otključate TV netačno <xliff:g id="NUMBER">%d</xliff:g> puta. TV će sada biti resetovan na podrazumevana fabrička podešavanja."</string> <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Pokušali ste da otključate telefon netačno <xliff:g id="NUMBER">%d</xliff:g> puta. Telefon će sada biti vraćen na podrazumevana fabrička podešavanja."</string> - <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string> + <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde/i."</string> <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4224651132862313471">"Neispravno ste nacrtali šablon za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate TV pomoću naloga e-pošte.\n\n Probajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string> - <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde(i)."</string> + <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde/i."</string> <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" – "</string> <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"Ukloni"</string> <string name="safe_media_volume_warning" product="default" msgid="2276318909314492312">"Želite da pojačate zvuk iznad preporučenog nivoa?\n\nSlušanje glasne muzike duže vreme može da vam ošteti sluh."</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index ce4f7dfbb063..4db9d4d39a97 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Налады"</string> <string name="global_action_assist" msgid="3892832961594295030">"Дапамога"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Галас. дапамога"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Заблакір. зараз"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Новае апавяшчэнне"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Віртуальная клавіятура"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 1c253c21d77c..36829048ed6e 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Настройки"</string> <string name="global_action_assist" msgid="3892832961594295030">"Помощ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Гласова помощ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Заключване сега"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ново известие"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуална клавиатура"</string> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index fd99079a171d..ec15c48b8eed 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"সেটিংস"</string> <string name="global_action_assist" msgid="3892832961594295030">"সহযোগিতা"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ভয়েস সহায়তা"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"এখনই লক করুন"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"৯৯৯+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"নতুন বিজ্ঞপ্তি"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ভার্চুয়াল কীবোর্ড"</string> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index 1b90f561471c..ba0f952fb33e 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Postavke"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomoć"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Glasovna pomoć"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zaključaj odmah"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Novo obavještenje"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuelna tastatura"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 81b617e097d1..d79eae1dd75b 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Configuració"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistència"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Assist. per veu"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloqueja ara"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"+999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notificació nova"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclat virtual"</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 490e7c3522a2..c907236620f5 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Nastavení"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asistence"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Hlas. asistence"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zamknout"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nové oznámení"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuální klávesnice"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index a86c415cc622..f3a34ef580b8 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Indstillinger"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistance"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Taleassistent"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lås nu"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ny underretning"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuelt tastatur"</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 8ea997171c6b..d387035645b6 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Einstellungen"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistent"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Sprachassistent"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Jetzt sperren"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Neue Benachrichtigung"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Bildschirmtastatur"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 3518b4eaa74c..ed81487ed526 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -38,7 +38,7 @@ <string name="serviceErased" msgid="1288584695297200972">"Η διαγραφή ήταν επιτυχής."</string> <string name="passwordIncorrect" msgid="7612208839450128715">"Λανθασμένος κωδικός πρόσβασης."</string> <string name="mmiComplete" msgid="8232527495411698359">"Το MMI ολοκληρώθηκε."</string> - <string name="badPin" msgid="9015277645546710014">"Ο παλιός αριθμός PIN που πληκτρολογήσατε είναι λάθος."</string> + <string name="badPin" msgid="9015277645546710014">"Το παλιό PIN που πληκτρολογήσατε είναι λάθος."</string> <string name="badPuk" msgid="5487257647081132201">"Ο κωδικός PUK που πληκτρολογήσατε είναι λάθος."</string> <string name="mismatchPin" msgid="609379054496863419">"Οι αριθμοί PIN που πληκτρολογήσατε δεν ταιριάζουν."</string> <string name="invalidPin" msgid="3850018445187475377">"Πληκτρολογήστε έναν αριθμό PIN μεγέθους 4 έως 8 αριθμών."</string> @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ρυθμίσεις"</string> <string name="global_action_assist" msgid="3892832961594295030">"Βοήθεια"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Φων.υποβοηθ."</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Κλείδωμα τώρα"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Νέα ειδοποίηση"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Εικονικό πληκτρολόγιο"</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index 26eb2e7b6a64..b0ac9df4cfec 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Settings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lock now"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"New notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual keyboard"</string> diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml index 26eb2e7b6a64..b0ac9df4cfec 100644 --- a/core/res/res/values-en-rCA/strings.xml +++ b/core/res/res/values-en-rCA/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Settings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lock now"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"New notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual keyboard"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 26eb2e7b6a64..b0ac9df4cfec 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Settings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lock now"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"New notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual keyboard"</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 26eb2e7b6a64..b0ac9df4cfec 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Settings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lock now"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"New notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual keyboard"</string> diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml index 6fdabbca2b81..03210c93613e 100644 --- a/core/res/res/values-en-rXC/strings.xml +++ b/core/res/res/values-en-rXC/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Settings"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lock now"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"New notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual keyboard"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index bc687362360d..3ed9a2a747b2 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Configuración"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asistencia"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Asistente voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear ahora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notificación nueva"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 2a08b55ded67..06a666901534 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ajustes"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asistencia"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Asistente voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear ahora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"> 999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notificación nueva"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index 5fecf9c4c679..3d703fee28cd 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Seaded"</string> <string name="global_action_assist" msgid="3892832961594295030">"Abi"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Häälabi"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lukusta kohe"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Uus märguanne"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuaalne klaviatuur"</string> diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index 15c360bd1c90..69a8e67f385e 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ezarpenak"</string> <string name="global_action_assist" msgid="3892832961594295030">"Lagundu"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ahots-laguntza"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Blokeatu"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Jakinarazpen berria"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teklatu birtuala"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 5584517fc34e..7a0d81774a10 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"تنظیمات"</string> <string name="global_action_assist" msgid="3892832961594295030">"دستیار"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"دستیار صوتی"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"اکنون قفل شود"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"۹۹۹+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"اعلان جدید"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"صفحهکلید مجازی"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 89ec041edaa5..d586760c81c9 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Asetukset"</string> <string name="global_action_assist" msgid="3892832961594295030">"Auta"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ääniapuri"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lukitse nyt"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Uusi ilmoitus"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuaalinen näppäimistö"</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index 25723d00da89..5ff39ab47b67 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Paramètres"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistance"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Assist. vocale"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Verrouiller"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nouvelle notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Clavier virtuel"</string> @@ -849,9 +850,9 @@ <string name="menu_space_shortcut_label" msgid="2410328639272162537">"espace"</string> <string name="menu_enter_shortcut_label" msgid="2743362785111309668">"entrée"</string> <string name="menu_delete_shortcut_label" msgid="3658178007202748164">"suppr"</string> - <string name="search_go" msgid="8298016669822141719">"Recherche"</string> + <string name="search_go" msgid="8298016669822141719">"Rechercher"</string> <string name="search_hint" msgid="1733947260773056054">"Recherche en cours..."</string> - <string name="searchview_description_search" msgid="6749826639098512120">"Recherche"</string> + <string name="searchview_description_search" msgid="6749826639098512120">"Rechercher"</string> <string name="searchview_description_query" msgid="5911778593125355124">"Requête de recherche"</string> <string name="searchview_description_clear" msgid="1330281990951833033">"Effacer la requête"</string> <string name="searchview_description_submit" msgid="2688450133297983542">"Envoyer la requête"</string> @@ -1262,7 +1263,7 @@ <string name="tutorial_double_tap_to_zoom_message_short" msgid="1311810005957319690">"Appuyer deux fois pour régler le zoom"</string> <string name="gadget_host_error_inflating" msgid="4882004314906466162">"Impossible d\'ajouter le widget."</string> <string name="ime_action_go" msgid="8320845651737369027">"Aller"</string> - <string name="ime_action_search" msgid="658110271822807811">"Recherche"</string> + <string name="ime_action_search" msgid="658110271822807811">"Rechercher"</string> <string name="ime_action_send" msgid="2316166556349314424">"Envoyer"</string> <string name="ime_action_next" msgid="3138843904009813834">"Suivante"</string> <string name="ime_action_done" msgid="8971516117910934605">"Terminé"</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 12b3b165381c..0482d3ad0606 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Paramètres"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistance"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Assistance vocale"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Verrouiller"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nouvelle notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Clavier virtuel"</string> diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index 4a559e37f0c5..54f00c5204b4 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Configuración"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asistencia"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Asistente voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear agora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notificación nova"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index ae2a2430e38b..464f832cddd0 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"સેટિંગ્સ"</string> <string name="global_action_assist" msgid="3892832961594295030">"સહાય"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"વૉઇસ સહાય"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"હવે લૉક કરો"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"નવું નોટિફિકેશન"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"વર્ચ્યુઅલ કીબોર્ડ"</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index df61f8f93516..3fb8cadc63e2 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"सेटिंग"</string> <string name="global_action_assist" msgid="3892832961594295030">"सहायता"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"आवाज़ से डिवाइस का इस्तेमाल"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"अभी लॉक करें"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"नई सूचना"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"वर्चुअल कीबोर्ड"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index ab7e5c27283b..9029f1fae25c 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Postavke"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomoć"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Glasovna pomoć"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zaključaj sada"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nova obavijest"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtualna tipkovnica"</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 43b52939d358..2fa26281506f 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Beállítások"</string> <string name="global_action_assist" msgid="3892832961594295030">"Segítség"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Hangsegéd"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zárolás most"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Új értesítés"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuális billentyűzet"</string> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index 64165dce9768..2b78c71e250b 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Կարգավորումներ"</string> <string name="global_action_assist" msgid="3892832961594295030">"Օգնական"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ձայնային օգնութ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Կողպել հիմա"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Նոր ծանուցում"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Վիրտուալ ստեղնաշար"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 1248abd08dd4..5d41c13fd64a 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Setelan"</string> <string name="global_action_assist" msgid="3892832961594295030">"Bantuan"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Bantuan Suara"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Kunci sekarang"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notifikasi baru"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Keyboard virtual"</string> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index e2cfb4347ff1..7add51d1c3f8 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Stillingar"</string> <string name="global_action_assist" msgid="3892832961594295030">"Aðstoð"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Raddaðstoð"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Læsa núna"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ný tilkynning"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Sýndarlyklaborð"</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index a9d15cbd59fd..fdab6dc2f6e7 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Impostazioni"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistenza"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Blocca ora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nuova notifica"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Tastiera virtuale"</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 3d50d330200f..3d60b4211bff 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"הגדרות"</string> <string name="global_action_assist" msgid="3892832961594295030">"סיוע"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"נעל עכשיו"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"הודעה חדשה"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"מקלדת וירטואלית"</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index fe0ca4aa45f2..83426add9405 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"設定"</string> <string name="global_action_assist" msgid="3892832961594295030">"サポート"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"音声アシスト"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"今すぐロック"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"新しい通知"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"仮想キーボード"</string> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index 8eab42288537..173c16b9c86c 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"პარამეტრები"</string> <string name="global_action_assist" msgid="3892832961594295030">"დახმარება"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ხმოვანი ასისტ."</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ახლა ჩაკეტვა"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"ახალი შეტყობინება"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ვირტუალური კლავიატურა"</string> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index ad0ae185a634..288b72e4871c 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Параметрлер"</string> <string name="global_action_assist" msgid="3892832961594295030">"Көмек"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Дауыс көмекшісі"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Қазір бекіту"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Жаңа хабарландыру"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуалды пернетақта"</string> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 04f3924e9f52..ab23b009e1a8 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ការកំណត់"</string> <string name="global_action_assist" msgid="3892832961594295030">"ជំនួយ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ជំនួយសម្លេង"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ចាក់សោឥឡូវនេះ"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"ការជូនដំណឹងថ្មី"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ក្ដារចុចនិម្មិត"</string> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index b5ce9ea3637a..352f57a87ec8 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="global_action_assist" msgid="3892832961594295030">"ಸಹಾಯ ಮಾಡು"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ಧ್ವನಿ ಸಹಾಯಕ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ಈಗ ಲಾಕ್ ಮಾಡಿ"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"ಹೊಸ ಅಧಿಸೂಚನೆ"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ವರ್ಚುಯಲ್ ಕೀಬೋರ್ಡ್"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 22e9c6b744a5..c9fdc465952d 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"설정"</string> <string name="global_action_assist" msgid="3892832961594295030">"지원"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"음성 지원"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"지금 잠그기"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"새 알림"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"가상 키보드"</string> @@ -269,7 +270,7 @@ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string> <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS 메시지 전송 및 보기"</string> <string name="permgrouprequest_sms" msgid="605618939583628306">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>에서 SMS 메시지를 전송하고 보도록 허용합니다."</string> - <string name="permgrouplab_storage" msgid="1971118770546336966">"저장"</string> + <string name="permgrouplab_storage" msgid="1971118770546336966">"저장용량"</string> <string name="permgroupdesc_storage" msgid="637758554581589203">"기기 사진, 미디어, 파일 액세스"</string> <string name="permgrouprequest_storage" msgid="7429669910547860218">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b>에서 기기의 사진, 미디어, 파일에 액세스하도록 허용합니다."</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"마이크"</string> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index a4d2fe15d541..681df65e489a 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Жөндөөлөр"</string> <string name="global_action_assist" msgid="3892832961594295030">"Жардам"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Үн жардамчысы"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Азыр кулпулоо"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Жаңы эскертме"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуалдык баскычтоп"</string> diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index 9b1c93a28a13..ade01c27d82f 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ການຕັ້ງຄ່າ"</string> <string name="global_action_assist" msgid="3892832961594295030">"ຕົວຊ່ວຍ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ຊ່ວຍເຫຼືອທາງສຽງ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ລັອກດຽວນີ້"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"ການແຈ້ງເຕືອນໃໝ່"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ແປ້ນພິມສະເໝືອນ"</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 7c98161af08b..e7fc04e7350f 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Nustatymai"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pagalba"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Užrakinti dabar"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Naujas pranešimas"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtualioji klaviatūra"</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 8a3379d591dd..6159e1f27aca 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Iestatījumi"</string> <string name="global_action_assist" msgid="3892832961594295030">"Palīdzība"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Balss palīgs"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloķēt tūlīt"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"Pārsniedz"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Jauns paziņojums"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuālā tastatūra"</string> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index c5664ead6cda..b06f45e258ac 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Поставки"</string> <string name="global_action_assist" msgid="3892832961594295030">"Асистенција"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Гласовна помош"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Заклучи сега"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ново известување"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуелна тастатура"</string> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index 78ce0976de0f..2cb564c77fd5 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ക്രമീകരണം"</string> <string name="global_action_assist" msgid="3892832961594295030">"അസിസ്റ്റ്"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"വോയ്സ് സഹായം"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ഇപ്പോൾ ലോക്കുചെയ്യുക"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"പുതിയ അറിയിപ്പ്"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"വെർച്വൽ കീബോർഡ്"</string> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index c123f300cc16..011a2bd394ee 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Тохиргоо"</string> <string name="global_action_assist" msgid="3892832961594295030">"Туслах"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Дуут туслах"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Одоо түгжих"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Шинэ мэдэгдэл"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуал гар"</string> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index ccfdd19181d3..2ef0960effff 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"सेटिंग्ज"</string> <string name="global_action_assist" msgid="3892832961594295030">"सहाय्यता"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"व्हॉइस सहाय्य"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"आता लॉक करा"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"नवीन सूचना"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"व्हर्च्युअल कीबोर्ड"</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index f24ab573f010..b17abd709e28 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Tetapan"</string> <string name="global_action_assist" msgid="3892832961594295030">"Bantu"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Bantuan Suara"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Kunci sekarang"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Pemberitahuan baharu"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Papan kekunci maya"</string> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index d55a02fba132..79bdc566291c 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ဆက်တင်များ"</string> <string name="global_action_assist" msgid="3892832961594295030">"အကူအညီ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"အသံ အကူအညီ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ယခု သော့ပိတ်ရန်"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"၉၉၉+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"အကြောင်းကြားချက်အသစ်"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ပကတိအသွင်ကီးဘုတ်"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 9b96e42242ae..de6a9a820933 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Innstillinger"</string> <string name="global_action_assist" msgid="3892832961594295030">"Hjelp"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Talehjelp"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lås nå"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nytt varsel"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuelt tastatur"</string> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index 99f894b5ed35..ce3683f281f3 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"सेटिङ्हरू"</string> <string name="global_action_assist" msgid="3892832961594295030">"सहायता दिनुहोस्"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"आवाज सहायता"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"अब बन्द गर्नुहोस्"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"९९९+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"नयाँ सूचना"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"भर्चुअल किबोर्ड"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 09b83d3de5d7..123d2917d2ed 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Instellingen"</string> <string name="global_action_assist" msgid="3892832961594295030">"Helpen"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Spraakassistent"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Nu vergrendelen"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999 +"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nieuwe melding"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtueel toetsenbord"</string> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index f75a06a1cb69..8c428088fd67 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -36,7 +36,7 @@ <string name="serviceDisabled" msgid="1937553226592516411">"ਸੇਵਾ ਅਸਮਰੱਥ ਬਣਾਈ ਗਈ ਹੈ।"</string> <string name="serviceRegistered" msgid="6275019082598102493">"ਰਜਿਸਟਰੇਸ਼ਨ ਸਫਲ ਸੀ।"</string> <string name="serviceErased" msgid="1288584695297200972">"ਮਿਟਾਉਣਾ ਸਫ਼ਲ ਰਿਹਾ ਸੀ।"</string> - <string name="passwordIncorrect" msgid="7612208839450128715">"ਗ਼ਲਤ ਪਾਸਵਰਡ।"</string> + <string name="passwordIncorrect" msgid="7612208839450128715">"ਗਲਤ ਪਾਸਵਰਡ।"</string> <string name="mmiComplete" msgid="8232527495411698359">"MMI ਪੂਰਾ।"</string> <string name="badPin" msgid="9015277645546710014">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਪੁਰਾਣਾ ਪਿੰਨ ਠੀਕ ਨਹੀਂ ਹੈ।"</string> <string name="badPuk" msgid="5487257647081132201">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ PUK ਠੀਕ ਨਹੀਂ ਹੈ।"</string> @@ -54,8 +54,8 @@ <string name="meid" msgid="4841221237681254195">"MEID"</string> <string name="ClipMmi" msgid="6952821216480289285">"ਇਨਕਮਿੰਗ ਕਾਲਰ ਆਈ.ਡੀ."</string> <string name="ClirMmi" msgid="7784673673446833091">"ਆਊਟਗੋਇੰਗ ਕਾਲਰ ਆਈ.ਡੀ."</string> - <string name="ColpMmi" msgid="3065121483740183974">"ਕਨੈਕਟ ਕੀਤੀ ਲਾਈਨ ID"</string> - <string name="ColrMmi" msgid="4996540314421889589">"ਕਨੈਕਟ ਕੀਤੀ ਲਾਈਨ ID ਪ੍ਰਤਿਬੰਧ"</string> + <string name="ColpMmi" msgid="3065121483740183974">"ਕਨੈਕਟ ਕੀਤੀ ਲਾਈਨ ਆਈ.ਡੀ."</string> + <string name="ColrMmi" msgid="4996540314421889589">"ਕਨੈਕਟ ਕੀਤੀ ਲਾਈਨ ਆਈ.ਡੀ. ਪ੍ਰਤਿਬੰਧ"</string> <string name="CfMmi" msgid="5123218989141573515">"ਕਾਲ ਫਾਰਵਰਡਿੰਗ"</string> <string name="CwMmi" msgid="9129678056795016867">"ਕਾਲ ਦੀ ਉਡੀਕ"</string> <string name="BaMmi" msgid="455193067926770581">"ਕਾਲ ਬੈਰਿੰਗ"</string> @@ -146,7 +146,7 @@ <string name="httpErrorConnect" msgid="8714273236364640549">"ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string> <string name="httpErrorIO" msgid="2340558197489302188">"ਸਰਵਰ ਨਾਲ ਸੰਚਾਰ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="httpErrorTimeout" msgid="4743403703762883954">"ਸਰਵਰ ਨਾਲ ਕਨੈਕਸ਼ਨ ਦਾ ਸਮਾਂ ਸਮਾਪਤ ਹੋਇਆ।"</string> - <string name="httpErrorRedirectLoop" msgid="8679596090392779516">"ਸਫ਼ੇ ਵਿੱਚ ਬਹੁਤ ਜ਼ਿਆਦਾ ਰੀਡਾਇਰੈਕਟ ਸ਼ਾਮਲ ਹਨ।"</string> + <string name="httpErrorRedirectLoop" msgid="8679596090392779516">"ਪੰਨੇ ਵਿੱਚ ਬਹੁਤ ਜ਼ਿਆਦਾ ਰੀਡਾਇਰੈਕਟ ਸ਼ਾਮਲ ਹਨ।"</string> <string name="httpErrorUnsupportedScheme" msgid="5015730812906192208">"ਪ੍ਰੋਟੋਕੋਲ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।"</string> <string name="httpErrorFailedSslHandshake" msgid="96549606000658641">"ਇੱਕ ਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨ ਸਥਾਪਿਤ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string> <string name="httpErrorBadUrl" msgid="3636929722728881972">"ਪੰਨਾ ਨਹੀਂ ਖੋਲ੍ਹ ਸਕਿਆ ਕਿਉਂਕਿ URL ਅਵੈਧ ਹੈ।"</string> @@ -158,9 +158,9 @@ <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"ਸਿੰਕ ਕਰੋ"</string> <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"ਬਹੁਤ ਜ਼ਿਆਦਾ <xliff:g id="CONTENT_TYPE">%s</xliff:g> ਮਿਟਾਏ।"</string> <string name="low_memory" product="tablet" msgid="6494019234102154896">"ਟੈਬਲੈੱਟ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਜਗ੍ਹਾ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ।"</string> - <string name="low_memory" product="watch" msgid="4415914910770005166">"ਘੜੀ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਸਪੇਸ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫਾਈਲਾਂ ਮਿਟਾਓ।"</string> - <string name="low_memory" product="tv" msgid="516619861191025923">"TV ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਸਪੇਸ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫਾਈਲਾਂ ਮਿਟਾਓ।"</string> - <string name="low_memory" product="default" msgid="3475999286680000541">"ਫੋਨ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਸਪੇਸ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫਾਈਲਾਂ ਮਿਟਾਓ।"</string> + <string name="low_memory" product="watch" msgid="4415914910770005166">"ਘੜੀ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਜਗ੍ਹਾ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ।"</string> + <string name="low_memory" product="tv" msgid="516619861191025923">"ਟੀਵੀ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਜਗ੍ਹਾ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ।"</string> + <string name="low_memory" product="default" msgid="3475999286680000541">"ਫ਼ੋਨ ਸਟੋਰੇਜ ਪੂਰੀ ਭਰੀ ਹੈ। ਜਗ੍ਹਾ ਖਾਲੀ ਕਰਨ ਲਈ ਕੁਝ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ।"</string> <plurals name="ssl_ca_cert_warning" formatted="false" msgid="5106721205300213569"> <item quantity="one">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਅਥਾਰਿਟੀਆਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ</item> <item quantity="other">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਅਥਾਰਿਟੀਆਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ</item> @@ -171,15 +171,15 @@ <string name="work_profile_deleted" msgid="5005572078641980632">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਮਿਟਾਈ ਗਈ"</string> <string name="work_profile_deleted_description" msgid="1100529432509639864">"ਗੁੰਮਸ਼ੁਦਾ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਦੇ ਕਾਰਨ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਮਿਟਾਇਆ ਗਿਆ"</string> <string name="work_profile_deleted_details" msgid="6307630639269092360">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਜਾਂ ਤਾਂ ਗੁੰਮਸ਼ੁਦਾ ਹੈ ਜਾਂ ਖਰਾਬ ਹੈ। ਨਤੀਜੇ ਵਜੋਂ, ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਅਤੇ ਸਬੰਧਿਤ ਡਾਟਾ ਮਿਟਾਇਆ ਗਿਆ ਹੈ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string> - <string name="work_profile_deleted_description_dpm_wipe" msgid="8823792115612348820">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹੁਣ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string> + <string name="work_profile_deleted_description_dpm_wipe" msgid="8823792115612348820">"ਤੁਹਾਡਾ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹੁਣ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string> <string name="network_logging_notification_title" msgid="6399790108123704477">"ਡੀਵਾਈਸ ਪ੍ਰਬੰਧਨ ਅਧੀਨ ਹੈ"</string> <string name="network_logging_notification_text" msgid="7930089249949354026">"ਤੁਹਾਡਾ ਸੰਗਠਨ ਇਸ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ ਅਤੇ ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ। ਵੇਰਵਿਆਂ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="factory_reset_warning" msgid="5423253125642394387">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮਿਟਾਇਆ ਜਾਏਗਾ"</string> - <string name="factory_reset_message" msgid="7972496262232832457">"ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਡਾਟਾ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।\n\nਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਸਵਾਲ ਹਨ, ਤਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string> + <string name="factory_reset_message" msgid="7972496262232832457">"ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਡਾਟਾ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।\n\nਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਸਵਾਲ ਹਨ, ਤਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> <string name="me" msgid="6545696007631404292">"ਮੈਂ"</string> <string name="power_dialog" product="tablet" msgid="8545351420865202853">"ਟੈਬਲੈੱਟ ਵਿਕਲਪ"</string> <string name="power_dialog" product="tv" msgid="6153888706430556356">"TV ਚੋਣਾਂ"</string> - <string name="power_dialog" product="default" msgid="1319919075463988638">"ਫੋਨ ਚੋਣਾਂ"</string> + <string name="power_dialog" product="default" msgid="1319919075463988638">"ਫ਼ੋਨ ਚੋਣਾਂ"</string> <string name="silent_mode" msgid="7167703389802618663">"ਸਾਈਲੈਂਟ ਮੋਡ"</string> <string name="turn_on_radio" msgid="3912793092339962371">"ਵਾਇਰਲੈਸ ਚਾਲੂ ਕਰੋ"</string> <string name="turn_off_radio" msgid="8198784949987062346">"ਵਾਇਰਲੈਸ ਬੰਦ ਕਰੋ"</string> @@ -188,9 +188,9 @@ <string name="silent_mode_silent" msgid="319298163018473078">"ਰਿੰਗਰ ਬੰਦ"</string> <string name="silent_mode_vibrate" msgid="7072043388581551395">"ਰਿੰਗਰ ਥਰਥਰਾਹਟ"</string> <string name="silent_mode_ring" msgid="8592241816194074353">"ਰਿੰਗਰ ਚਾਲੂ"</string> - <string name="reboot_to_update_title" msgid="6212636802536823850">"Android ਸਿਸਟਮ ਅਪਡੇਟ"</string> - <string name="reboot_to_update_prepare" msgid="6305853831955310890">"ਅਪਡੇਟ ਦੀ ਤਿਆਰੀ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="reboot_to_update_package" msgid="3871302324500927291">"ਅਪਡੇਟ ਪੈਕੇਜ ਦੀ ਕਾਰਵਾਈ ਕਰ ਰਿਹਾ ਹੈ..."</string> + <string name="reboot_to_update_title" msgid="6212636802536823850">"Android ਸਿਸਟਮ ਅੱਪਡੇਟ"</string> + <string name="reboot_to_update_prepare" msgid="6305853831955310890">"ਅੱਪਡੇਟ ਦੀ ਤਿਆਰੀ ਕਰ ਰਿਹਾ ਹੈ…"</string> + <string name="reboot_to_update_package" msgid="3871302324500927291">"ਅੱਪਡੇਟ ਪੈਕੇਜ ਦੀ ਕਾਰਵਾਈ ਕਰ ਰਿਹਾ ਹੈ..."</string> <string name="reboot_to_update_reboot" msgid="6428441000951565185">"ਰੀਸਟਾਰਟ ਹੋ ਰਿਹਾ ਹੈ…"</string> <string name="reboot_to_reset_title" msgid="4142355915340627490">"ਫੈਕਟਰੀ ਡਾਟਾ ਰੀਸੈੱਟ"</string> <string name="reboot_to_reset_message" msgid="2432077491101416345">"ਰੀਸਟਾਰਟ ਹੋ ਰਿਹਾ ਹੈ…"</string> @@ -198,7 +198,7 @@ <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਬੰਦ ਕੀਤਾ ਜਾਵੇਗਾ।"</string> <string name="shutdown_confirm" product="tv" msgid="476672373995075359">"ਤੁਹਾਡਾ TV ਬੰਦ ਕੀਤਾ ਜਾਏਗਾ।"</string> <string name="shutdown_confirm" product="watch" msgid="3490275567476369184">"ਤੁਹਾਡੀ ਘੜੀ ਬੰਦ ਕੀਤੀ ਜਾਏਗੀ।"</string> - <string name="shutdown_confirm" product="default" msgid="649792175242821353">"ਤੁਹਾਡਾ ਫੋਨ ਬੰਦ ਕੀਤਾ ਜਾਏਗਾ।"</string> + <string name="shutdown_confirm" product="default" msgid="649792175242821353">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਬੰਦ ਕੀਤਾ ਜਾਏਗਾ।"</string> <string name="shutdown_confirm_question" msgid="2906544768881136183">"ਕੀ ਤੁਸੀਂ ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string> <string name="reboot_safemode_title" msgid="7054509914500140361">"ਮੋਡ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰੋ"</string> <string name="reboot_safemode_confirm" msgid="55293944502784668">"ਕੀ ਤੁਸੀਂ ਸੁਰੱਖਿਅਤ ਮੋਡ ਵਿੱਚ ਰੀਬੂਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਹ ਤੁਹਾਡੇ ਵੱਲੋਂ ਇੰਸਟੌਲ ਕੀਤੀਆਂ ਤੀਜੀ ਪਾਰਟੀ ਦੀਆਂ ਸਾਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾ ਦੇਵੇਗਾ। ਜਦੋਂ ਤੁਸੀਂ ਦੁਬਾਰਾ ਰੀਬੂਟ ਕਰੋਂਗੇ ਤਾਂ ਇਸਨੂੰ ਰੀਸਟੋਰ ਕੀਤਾ ਜਾਏਗਾ।"</string> @@ -206,7 +206,7 @@ <string name="no_recent_tasks" msgid="8794906658732193473">"ਕੋਈ ਹਾਲੀਆ ਐਪਸ ਨਹੀਂ।"</string> <string name="global_actions" product="tablet" msgid="408477140088053665">"ਟੈਬਲੈੱਟ ਵਿਕਲਪ"</string> <string name="global_actions" product="tv" msgid="7240386462508182976">"TV ਚੋਣਾਂ"</string> - <string name="global_actions" product="default" msgid="2406416831541615258">"ਫੋਨ ਚੋਣਾਂ"</string> + <string name="global_actions" product="default" msgid="2406416831541615258">"ਫ਼ੋਨ ਚੋਣਾਂ"</string> <string name="global_action_lock" msgid="2844945191792119712">"ਸਕ੍ਰੀਨ ਲੌਕ"</string> <string name="global_action_power_off" msgid="4471879440839879722">"ਪਾਵਰ ਬੰਦ"</string> <string name="global_action_emergency" msgid="7112311161137421166">"ਸੰਕਟਕਾਲ"</string> @@ -216,10 +216,10 @@ <string name="bugreport_option_interactive_title" msgid="8635056131768862479">"ਅੰਤਰਕਿਰਿਆਤਮਕ ਰਿਪੋਰਟ"</string> <string name="bugreport_option_interactive_summary" msgid="229299488536107968">"ਜ਼ਿਆਦਾਤਰ ਹਾਲਾਤਾਂ ਵਿੱਚ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਰਿਪੋਰਟ ਦੀ ਪ੍ਰਗਤੀ ਨੂੰ ਟਰੈਕ ਕਰਨ, ਸਮੱਸਿਆ ਬਾਰੇ ਹੋਰ ਵੇਰਵੇ ਦਾਖਲ ਕਰਨ, ਅਤੇ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲੈਣ ਦਿੰਦਾ ਹੈ। ਇਹ ਉਹਨਾਂ ਘੱਟ-ਵਰਤੇ ਗਏ ਕੁਝ ਭਾਗਾਂ ਨੂੰ ਨਜ਼ਰ-ਅੰਦਾਜ਼ ਕਰ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੀ ਰਿਪੋਰਟ ਕਰਨ ਵਿੱਚ ਵੱਧ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ।"</string> <string name="bugreport_option_full_title" msgid="6354382025840076439">"ਪੂਰੀ ਰਿਪੋਰਟ"</string> - <string name="bugreport_option_full_summary" msgid="7210859858969115745">"ਜਦੋਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਪ੍ਰਤਿਕਿਰਿਆ ਨਾ ਕਰ ਰਿਹਾ ਹੋਵੇ ਜਾਂ ਬਹੁਤ ਹੀ ਹੌਲੀ ਹੋਵੇ, ਜਾਂ ਜਦੋਂ ਤੁਹਾਨੂੰ ਸਾਰੇ ਰਿਪੋਰਟ ਭਾਗਾਂ ਦੀ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਸ ਚੋਣ ਦੀ ਵਰਤੋਂ ਘੱਟ-ਘੱਟ ਸਿਸਟਮ ਦਖ਼ਲ ਲਈ ਕਰੋ। ਤੁਹਾਨੂੰ ਹੋਰ ਵੇਰਵੇ ਦਾਖਲ ਕਰਨ ਜਾਂ ਵਾਧੂ ਸਕ੍ਰੀਨਸ਼ਾਟ ਨਹੀਂ ਲੈਣ ਦਿੰਦਾ ਹੈ।"</string> + <string name="bugreport_option_full_summary" msgid="7210859858969115745">"ਜਦੋਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਪ੍ਰਤਿਕਿਰਿਆ ਨਾ ਕਰ ਰਿਹਾ ਹੋਵੇ ਜਾਂ ਬਹੁਤ ਹੀ ਹੌਲੀ ਹੋਵੇ, ਜਾਂ ਜਦੋਂ ਤੁਹਾਨੂੰ ਸਾਰੇ ਰਿਪੋਰਟ ਭਾਗਾਂ ਦੀ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਸ ਚੋਣ ਦੀ ਵਰਤੋਂ ਘੱਟ-ਘੱਟ ਸਿਸਟਮ ਦਖਲ ਲਈ ਕਰੋ। ਤੁਹਾਨੂੰ ਹੋਰ ਵੇਰਵੇ ਦਾਖਲ ਕਰਨ ਜਾਂ ਵਾਧੂ ਸਕ੍ਰੀਨਸ਼ਾਟ ਨਹੀਂ ਲੈਣ ਦਿੰਦਾ ਹੈ।"</string> <plurals name="bugreport_countdown" formatted="false" msgid="6878900193900090368"> - <item quantity="one">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item> - <item quantity="other">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item> + <item quantity="one">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item> + <item quantity="other">ਬੱਗ ਰਿਪੋਰਟ ਲਈ <xliff:g id="NUMBER_1">%d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।</item> </plurals> <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"ਸਾਈਲੈਂਟ ਮੋਡ"</string> <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"ਅਵਾਜ਼ ਬੰਦ ਹੈ"</string> @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ਸੈਟਿੰਗਾਂ"</string> <string name="global_action_assist" msgid="3892832961594295030">"ਸਹਾਇਤਾ ਕਰੋ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ਹੁਣ ਲੌਕ ਕਰੋ"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"ਨਵੀਂ ਸੂਚਨਾ"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ਆਭਾਸੀ ਕੀ-ਬੋਰਡ"</string> @@ -261,7 +262,7 @@ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> <string name="permgrouprequest_contacts" msgid="1601591667800538208">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string> <string name="permgrouplab_location" msgid="7275582855722310164">"ਟਿਕਾਣਾ"</string> - <string name="permgroupdesc_location" msgid="1346617465127855033">"ਇਸ ਡੀਵਾਈਸ ਦੇ ਨਿਰਧਾਰਿਤ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> + <string name="permgroupdesc_location" msgid="1346617465127855033">"ਇਸ ਡੀਵਾਈਸ ਦੇ ਨਿਰਧਾਰਤ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚੋ"</string> <string name="permgrouprequest_location" msgid="8903573681261610809">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string> <string name="permgrouplab_calendar" msgid="5863508437783683902">"ਕੈਲੰਡਰ"</string> <string name="permgroupdesc_calendar" msgid="3889615280211184106">"ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> @@ -270,7 +271,7 @@ <string name="permgroupdesc_sms" msgid="4656988620100940350">"SMS ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਦੇਖੋ"</string> <string name="permgrouprequest_sms" msgid="605618939583628306">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ SMS ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਦੇਖਣ ਦਿਓ"</string> <string name="permgrouplab_storage" msgid="1971118770546336966">"ਸਟੋਰੇਜ"</string> - <string name="permgroupdesc_storage" msgid="637758554581589203">"ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ੋਟੋਆਂ, ਮੀਡੀਆ ਅਤੇ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> + <string name="permgroupdesc_storage" msgid="637758554581589203">"ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ੋਟੋਆਂ, ਮੀਡੀਆ ਅਤੇ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨਾ"</string> <string name="permgrouprequest_storage" msgid="7429669910547860218">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ੋਟੋਆਂ, ਮੀਡੀਆ, ਅਤੇ ਫ਼ਾਈਲਾਂ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string> <string name="permgrouplab_microphone" msgid="171539900250043464">"ਮਾਈਕ੍ਰੋਫੋਨ"</string> <string name="permgroupdesc_microphone" msgid="4988812113943554584">" ਆਡੀਓ ਰਿਕਾਰਡ ਕਰਨ"</string> @@ -278,7 +279,7 @@ <string name="permgrouplab_camera" msgid="4820372495894586615">"ਕੈਮਰਾ"</string> <string name="permgroupdesc_camera" msgid="3250611594678347720">"ਤਸਵੀਰਾਂ ਲੈਣ ਅਤੇ ਵੀਡੀਓ ਰਿਕਾਰਡ ਕਰਨ"</string> <string name="permgrouprequest_camera" msgid="810824326507258410">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਤਸਵੀਰਾਂ ਖਿੱਚਣ ਅਤੇ ਵੀਡੀਓ ਰਿਕਾਰਡ ਕਰਨ ਦਿਓ"</string> - <string name="permgrouplab_phone" msgid="5229115638567440675">"ਫੋਨ"</string> + <string name="permgrouplab_phone" msgid="5229115638567440675">"ਫ਼ੋਨ ਕਰੋ"</string> <string name="permgroupdesc_phone" msgid="6234224354060641055">"ਫ਼ੋਨ ਕਾਲਾਂ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ"</string> <string name="permgrouprequest_phone" msgid="7084161459732093690">"<b><xliff:g id="APP_NAME">%1$s</xliff:g></b> ਨੂੰ ਫ਼ੋਨ ਕਾਲਾਂ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦਿਓ"</string> <string name="permgrouplab_sensors" msgid="416037179223226722">"ਸਰੀਰ ਸੰਵੇਦਕ"</string> @@ -291,20 +292,20 @@ <string name="capability_title_canRequestFilterKeyEvents" msgid="2103440391902412174">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਲਿਖਤ ਦਾ ਨਿਰੀਖਣ ਕਰਨਾ"</string> <string name="capability_desc_canRequestFilterKeyEvents" msgid="7463135292204152818">"ਇਸ ਵਿੱਚ ਨਿੱਜੀ ਡਾਟਾ ਸ਼ਾਮਲ ਹੈ ਜਿਵੇਂ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ ਅਤੇ ਪਾਸਵਰਡ।"</string> <string name="capability_title_canControlMagnification" msgid="3593493281059424855">"ਡਿਸਪਲੇ ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨਾ"</string> - <string name="capability_desc_canControlMagnification" msgid="4791858203568383773">"ਡਿਸਪਲੇ ਦੇ ਜ਼ੂਮ ਪੱਧਰ ਅਤੇ ਸਥਿਤੀ ਨੂੰ ਨਿਯੰਤ੍ਰਿਤ ਕਰੋ।"</string> + <string name="capability_desc_canControlMagnification" msgid="4791858203568383773">"ਡਿਸਪਲੇ ਦੇ ਜ਼ੂਮ ਪੱਧਰ ਅਤੇ ਸਥਿਤੀ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ।"</string> <string name="capability_title_canPerformGestures" msgid="7418984730362576862">"ਸੰਕੇਤ ਕਰਦੀ ਹੈ"</string> <string name="capability_desc_canPerformGestures" msgid="8296373021636981249">"ਟੈਪ ਕਰ ਸਕਦੀ ਹੈ, ਸਵਾਈਪ ਕਰ ਸਕਦੀ ਹੈ, ਪਿੰਚ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਹੋਰ ਸੰਕੇਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> <string name="capability_title_canCaptureFingerprintGestures" msgid="6309568287512278670">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੰਕੇਤ"</string> <string name="capability_desc_canCaptureFingerprintGestures" msgid="7102111919385702482">"ਡੀਵਾਈਸਾਂ ਦੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ \'ਤੇ ਕੀਤੇ ਗਏ ਸੰਕੇਤਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_statusBar" msgid="7417192629601890791">"ਸਥਿਤੀ ਬਾਰ ਅਸਮਰੱਥ ਬਣਾਓ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string> - <string name="permdesc_statusBar" msgid="8434669549504290975">"ਐਪ ਨੂੰ ਸਥਿਤੀ ਬਾਰ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣ ਜਾਂ ਸਿਸਟਮ ਆਈਕਨਾਂ ਨੂੰ ਜੋੜਨ ਅਤੇ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_statusBar" msgid="8434669549504290975">"ਐਪ ਨੂੰ ਸਥਿਤੀ ਪੱਟੀ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣ ਜਾਂ ਸਿਸਟਮ ਆਈਕਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਅਤੇ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_statusBarService" msgid="4826835508226139688">"ਸਥਿਤੀ ਪੱਟੀ ਬਣਨ ਦਿਓ"</string> <string name="permdesc_statusBarService" msgid="716113660795976060">"ਐਪ ਨੂੰ ਸਥਿਤੀ ਬਾਰ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_expandStatusBar" msgid="1148198785937489264">"ਸਥਿਤੀ ਪੱਟੀ ਦਾ ਵਿਸਤਾਰ/ਸੰਖਿਪਤ ਕਰੋ"</string> <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_install_shortcut" msgid="4279070216371564234">"ਸ਼ਾਰਟਕੱਟ ਸਥਾਪਤ ਕਰੋ"</string> + <string name="permdesc_install_shortcut" msgid="8341295916286736996">"ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਰਤੋਂਕਾਰ ਦੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਹੋਮਸਕ੍ਰੀਨ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</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> @@ -315,7 +316,7 @@ <string name="permlab_receiveMms" msgid="1821317344668257098">"ਟੈਕਸਟ ਸੁਨੇਹੇ (MMS) ਪੜ੍ਹੋ"</string> <string name="permdesc_receiveMms" msgid="533019437263212260">"ਐਪ ਨੂੰ MMS ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੇ ਭੇਜੇ ਗਏ ਸੁਨੇਹਿਆਂ ਨੂੰ ਤੁਹਾਨੂੰ ਦਿਖਾਏ ਬਿਨਾਂ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ ਜਾਂ ਮਿਟਾ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"ਸੈਲ ਪ੍ਰਸਾਰਨ ਸੁਨੇਹੇ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਵੱਲੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਸੁਨੇਹੇ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਚਿਤਾਵਨੀਆਂ ਤੁਹਾਨੂੰ ਸੰਕਟਕਾਲੀਨ ਸਥਿਤੀਆਂ ਦੀ ਚਿਤਾਵਨੀ ਦੇਣ ਲਈ ਕੁਝ ਨਿਰਧਾਰਿਤ ਟਿਕਾਣਿਆਂ ਤੇ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਜਾਂ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਕਟਕਾਲੀਨ ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।"</string> + <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਵੱਲੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਸੁਨੇਹੇ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਚਿਤਾਵਨੀਆਂ ਤੁਹਾਨੂੰ ਸੰਕਟਕਾਲੀਨ ਸਥਿਤੀਆਂ ਦੀ ਚਿਤਾਵਨੀ ਦੇਣ ਲਈ ਕੁਝ ਨਿਰਧਾਰਤ ਟਿਕਾਣਿਆਂ ਤੇ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਜਾਂ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ ਜਦੋਂ ਇੱਕ ਸੰਕਟਕਾਲੀਨ ਸੈੱਲ ਪ੍ਰਸਾਰਣ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।"</string> <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਫੀਡਸ ਪੜ੍ਹੋ"</string> <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"ਐਪ ਨੂੰ ਵਰਤਮਾਨ ਵਿੱਚ ਸਿੰਕ ਕੀਤੇ ਫੀਡਸ ਬਾਰੇ ਵੇਰਵੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_sendSms" msgid="7544599214260982981">"SMS ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਦੇਖੋ"</string> @@ -325,11 +326,11 @@ <string name="permdesc_readSms" product="tv" msgid="5796670395641116592">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ SMS (ਲਿਖਤ) ਸੁਨੇਹਿਆਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ।"</string> <string name="permdesc_readSms" product="default" msgid="6826832415656437652">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ SMS (ਲਿਖਤ) ਸੁਨੇਹਿਆਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_receiveWapPush" msgid="5991398711936590410">"ਟੈਕਸਟ ਸੁਨੇਹੇ (WAP) ਪ੍ਰਾਪਤ ਕਰੋ"</string> - <string name="permdesc_receiveWapPush" msgid="748232190220583385">"ਐਪ ਨੂੰ WAP ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਅਨੁਮਤੀ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ ਐਪ ਦੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੇ ਭੇਜੇ ਗਏ ਸੁਨੇਹਿਆਂ ਨੂੰ ਤੁਹਾਨੂੰ ਦਿਖਾਏ ਬਿਨਾਂ ਨਿਰੀਖਣ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੀ ਸਮਰੱਥਾ।"</string> + <string name="permdesc_receiveWapPush" msgid="748232190220583385">"ਐਪ ਨੂੰ WAP ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਇਜਾਜ਼ਤ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ ਐਪ ਦੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੇ ਭੇਜੇ ਗਏ ਸੁਨੇਹਿਆਂ ਨੂੰ ਤੁਹਾਨੂੰ ਦਿਖਾਏ ਬਿਨਾਂ ਨਿਰੀਖਣ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੀ ਸਮਰੱਥਾ।"</string> <string name="permlab_getTasks" msgid="6466095396623933906">"ਚੱਲ ਰਹੇ ਐਪਸ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰੋ"</string> <string name="permdesc_getTasks" msgid="7454215995847658102">"ਐਪ ਨੂੰ ਵਰਤਮਾਨ ਵਿੱਚ ਅਤੇ ਹੁਣੇ ਜਿਹੇ ਚੱਲ ਰਹੇ ਕੰਮਾਂ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਜਾਣਕਾਰੀ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਐਪ ਨੂੰ ਇਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਖੋਜਣ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ ਕਿ ਡੀਵਾਈਸ ਤੇ ਕਿਹੜੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।"</string> <string name="permlab_manageProfileAndDeviceOwners" msgid="7918181259098220004">"ਪ੍ਰੋਫਾਈਲ ਅਤੇ ਡੀਵਾਈਸ ਮਾਲਕਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰੋ"</string> - <string name="permdesc_manageProfileAndDeviceOwners" msgid="106894851498657169">"ਪ੍ਰੋਫਾਈਲ ਦੇ ਮਾਲਕ ਅਤੇ ਡੀਵਾਈਸ ਦੇ ਮਾਲਕ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਐਪਾਂ ਨੂੰ ਅਨੁਮਤੀ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_manageProfileAndDeviceOwners" msgid="106894851498657169">"ਪ੍ਰੋਫਾਈਲ ਦੇ ਮਾਲਕ ਅਤੇ ਡੀਵਾਈਸ ਦੇ ਮਾਲਕ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਐਪਾਂ ਨੂੰ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_reorderTasks" msgid="2018575526934422779">"ਚੱਲ ਰਹੇ ਐਪਸ ਨੂੰ ਦੁਬਾਰਾ ਕ੍ਰਮ ਦਿਓ"</string> <string name="permdesc_reorderTasks" msgid="7734217754877439351">"ਐਪ ਨੂੰ ਕੰਮਾਂ ਨੂੰ ਅਗਲੇ ਭਾਗ ਅਤੇ ਪਿਛੋਕੜ ਵਿੱਚ ਮੂਵ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਐਪ ਤੁਹਾਡੇ ਇਨਪੁਟ ਤੋਂ ਬਿਨਾਂ ਇਹ ਕਰ ਸਕਦਾ ਹੈ।"</string> <string name="permlab_enableCarMode" msgid="5684504058192921098">"ਕਾਰ ਮੋਡ ਚਾਲੂ ਕਰੋ"</string> @@ -345,27 +346,27 @@ <string name="permlab_persistentActivity" msgid="8841113627955563938">"ਐਪ ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਲਾਏ ਰੱਖੋ"</string> <string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"ਐਪ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਖੁਦ ਦੇ ਭਾਗਾਂ ਨੂੰ ਸਥਾਈ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਟੈਬਲੈੱਟ ਨੂੰ ਹੌਲੀ ਕਰਦੇ ਹੋਏ ਹੋਰਾਂ ਐਪਾਂ ਲਈ ਉਪਲਬਧ ਮੈਮਰੀ ਨੂੰ ਸੀਮਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string> <string name="permdesc_persistentActivity" product="tv" msgid="5086862529499103587">"ਐਪ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਖੁਦ ਦੇ ਭਾਗਾਂ ਨੂੰ ਸਥਾਈ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ TV ਨੂੰ ਹੌਲੀ ਕਰਦੇ ਹੋਏ ਹੋਰਾਂ ਐਪਸ ਤੇ ਉਪਲਬਧ ਮੈਮਰੀ ਨੂੰ ਸੀਮਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string> - <string name="permdesc_persistentActivity" product="default" msgid="4384760047508278272">"ਐਪ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਖੁਦ ਦੇ ਭਾਗਾਂ ਨੂੰ ਸਥਾਈ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਫੋਨ ਨੂੰ ਹੌਲੀ ਕਰਦੇ ਹੋਏ ਹੋਰਾਂ ਐਪਸ ਤੇ ਉਪਲਬਧ ਮੈਮਰੀ ਨੂੰ ਸੀਮਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string> - <string name="permlab_getPackageSize" msgid="7472921768357981986">"ਐਪ ਸਟੋਰੇਜ ਸਪੇਸ ਮਾਪੋ"</string> - <string name="permdesc_getPackageSize" msgid="3921068154420738296">"ਐਪ ਨੂੰ ਇਸਦਾ ਕੋਡ, ਡਾਟਾ ਅਤੇ ਕੈਸ਼ ਆਕਾਰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_persistentActivity" product="default" msgid="4384760047508278272">"ਐਪ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਖੁਦ ਦੇ ਭਾਗਾਂ ਨੂੰ ਸਥਾਈ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਫ਼ੋਨ ਨੂੰ ਹੌਲੀ ਕਰਦੇ ਹੋਏ ਹੋਰਾਂ ਐਪਾਂ ਤੇ ਉਪਲਬਧ ਮੈਮਰੀ ਨੂੰ ਸੀਮਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string> + <string name="permlab_getPackageSize" msgid="7472921768357981986">"ਐਪ ਸਟੋਰੇਜ ਜਗ੍ਹਾ ਮਾਪੋ"</string> + <string name="permdesc_getPackageSize" msgid="3921068154420738296">"ਐਪ ਨੂੰ ਇਸਦਾ ਕੋਡ, ਡਾਟਾ ਅਤੇ ਕੈਸ਼ੇ ਆਕਾਰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_writeSettings" msgid="2226195290955224730">"ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string> <string name="permdesc_writeSettings" msgid="7775723441558907181">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਦੇ ਸੈਟਿੰਗਾਂ ਡਾਟਾ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੇ ਸਿਸਟਮ ਦੀ ਸੰਰੂਪਣ ਨੂੰ ਕਰਪਟ ਕਰ ਸਕਦੇ ਹਨ।"</string> <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"ਚਾਲੂ ਹੋਣ ਤੇ ਚਲਾਓ"</string> <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਦੇ ਬੂਟਿੰਗ ਖਤਮ ਕਰਨ ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਖੁਦ ਚਾਲੂ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਚਾਲੂ ਹੋਣ ਵਿੱਚ ਥੋੜ੍ਹਾ ਵੱਧ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ ਅਤੇ ਇਹ ਐਪ ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਲਾ ਕੇ ਸਮੁੱਚੇ ਟੈਬਲੈੱਟ ਨੂੰ ਹੌਲਾ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_receiveBootCompleted" product="tv" msgid="4525890122209673621">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਦੇ ਬੂਟਿੰਗ ਖਤਮ ਕਰਨ ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਖੁਦ ਚਾਲੂ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਨਾਲ TV ਨੂੰ ਚਾਲੂ ਹੋਣ ਵਿੱਚ ਥੋੜ੍ਹਾ ਵੱਧ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ ਅਤੇ ਇਹ ਐਪ ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਲਾ ਕੇ ਸਮੁੱਚੇ ਟੈਬਲੈੱਟ ਨੂੰ ਹੌਲਾ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਦੇ ਬੂਟਿੰਗ ਖ਼ਤਮ ਕਰਨ ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਖੁਦ ਚਾਲੂ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਨਾਲ ਫੋਨ ਨੂੰ ਚਾਲੂ ਹੋਣ ਵਿੱਚ ਥੋੜ੍ਹਾ ਵੱਧ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ ਅਤੇ ਇਹ ਐਪ ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਲਾ ਕੇ ਸਮੁੱਚੇ ਫੋਨ ਨੂੰ ਹੌਲਾ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਦੇ ਬੂਟਿੰਗ ਖਤਮ ਕਰਨ ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਖੁਦ ਚਾਲੂ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਚਾਲੂ ਹੋਣ ਵਿੱਚ ਥੋੜ੍ਹਾ ਵੱਧ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ ਅਤੇ ਇਹ ਐਪ ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਲਾ ਕੇ ਸਮੁੱਚੇ ਫ਼ੋਨ ਨੂੰ ਹੌਲਾ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_broadcastSticky" msgid="7919126372606881614">"ਸਟਿਕੀ ਪ੍ਰਸਾਰਨ ਭੇਜੋ"</string> <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"ਐਪ ਨੂੰ ਸਟਿਕੀ ਪ੍ਰਸਾਰਨ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਪ੍ਰਸਾਰਨ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਰਹਿੰਦੇ ਹਨ। ਵਾਧੂ ਵਰਤੋਂ ਟੈਬਲੈੱਟ ਨੂੰ ਹੌਲੀ ਜਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮੈਮਰੀ ਵਰਤ ਕੇ ਇਸਨੂੰ ਅਸਥਿਰ ਬਣਾ ਸਕਦੀ ਹੈ।"</string> <string name="permdesc_broadcastSticky" product="tv" msgid="6839285697565389467">"ਐਪ ਨੂੰ ਸਟਿਕੀ ਪ੍ਰਸਾਰਨ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਪ੍ਰਸਾਰਨ ਦੇ ਖ਼ਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਰਹਿੰਦੇ ਹਨ। ਵਾਧੂ ਵਰਤੋਂ TV ਨੂੰ ਹੌਲੀ ਜਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮੈਮਰੀ ਵਰਤ ਕੇ ਇਸਨੂੰ ਅਸਥਿਰ ਬਣਾ ਸਕਦੀ ਹੈ।"</string> - <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"ਐਪ ਨੂੰ ਸਟਿਕੀ ਪ੍ਰਸਾਰਨ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਪ੍ਰਸਾਰਨ ਦੇ ਖ਼ਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਰਹਿੰਦੇ ਹਨ। ਵਾਧੂ ਵਰਤੋਂ ਫੋਨ ਨੂੰ ਹੌਲੀ ਜਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮੈਮਰੀ ਵਰਤ ਕੇ ਇਸਨੂੰ ਅਸਥਿਰ ਬਣਾ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"ਐਪ ਨੂੰ ਸਟਿਕੀ ਪ੍ਰਸਾਰਨ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਪ੍ਰਸਾਰਨ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਰਹਿੰਦੇ ਹਨ। ਵਾਧੂ ਵਰਤੋਂ ਫ਼ੋਨ ਨੂੰ ਹੌਲੀ ਜਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮੈਮਰੀ ਵਰਤ ਕੇ ਇਸਨੂੰ ਅਸਥਿਰ ਬਣਾ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_readContacts" msgid="8348481131899886131">"ਆਪਣੇ ਸੰਪਰਕ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸਾਂਝਾ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string> - <string name="permdesc_readContacts" product="tv" msgid="1839238344654834087">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ TV ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਅਨੁਮਤੀ ਐਪਸ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖ਼ਰਾਬ ਐਪਸ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸ਼ੇਅਰ ਕਰ ਸਕਦੇ ਹਨ।"</string> - <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫੋਨ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਅਨੁਮਤੀ ਐਪਸ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖ਼ਰਾਬ ਐਪਸ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸ਼ੇਅਰ ਕਰ ਸਕਦੇ ਹਨ।"</string> + <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸਾਂਝਾ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string> + <string name="permdesc_readContacts" product="tv" msgid="1839238344654834087">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸਾਂਝਾ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string> + <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਸੰਪਰਕ ਡਾਟਾ ਸਾਂਝਾ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string> <string name="permlab_writeContacts" msgid="5107492086416793544">"ਆਪਣੇ ਸੰਪਰਕ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string> - <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> - <string name="permdesc_writeContacts" product="tv" msgid="5438230957000018959">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ TV ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਅਨੁਮਤੀ ਐਪਸ ਨੂੰ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> - <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫੋਨ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਅਨੁਮਤੀ ਐਪਸ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> + <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਟੈਬਲੈੱਟ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> + <string name="permdesc_writeContacts" product="tv" msgid="5438230957000018959">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਟੀਵੀ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> + <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਨ ਤੇ ਸਟੋਰ ਕੀਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਬਾਰੇ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਉਸ ਬਾਰੰਬਾਰਤਾ ਸਮੇਤ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਾਲ ਕੀਤੀ ਹੈ, ਈਮੇਲ ਕੀਤੀ ਹੈ ਜਾਂ ਖ਼ਾਸ ਵਿਅਕਤੀਆਂ ਨਾਲ ਹੋਰ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ। ਇਹ ਇਜਾਜ਼ਤ ਐਪਾਂ ਨੂੰ ਤੁਹਾਡਾ ਸੰਪਰਕ ਡਾਟਾ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> <string name="permlab_readCallLog" msgid="3478133184624102739">"ਕਾਲ ਲੌਗ ਪੜ੍ਹੋ"</string> <string name="permdesc_readCallLog" msgid="3204122446463552146">"ਇਹ ਐਪ ਤੁਹਾਡਾ ਕਾਲ ਇਤਿਹਾਸ ਪੜ੍ਹ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_writeCallLog" msgid="8552045664743499354">"ਕਾਲ ਲੌਗ ਲਿਖੋ"</string> @@ -375,17 +376,17 @@ <string name="permlab_bodySensors" msgid="4683341291818520277">"ਸਰੀਰ ਸੰਵੇਦਕਾਂ \'ਤੇ ਪਹੁੰਚ ਕਰੋ (ਜਿਵੇਂ ਦਿਲ ਦੀ ਧੜਕਣ ਦੇ ਨਿਰੀਖਕ)"</string> <string name="permdesc_bodySensors" product="default" msgid="4380015021754180431">"ਐਪ ਨੂੰ ਉਹਨਾਂ ਸੰਵੇਦਕਾਂ ਦੇ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੀ ਸਰੀਰਕ ਸਥਿਤੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ ਤੁਹਾਡੇ ਦਿਲ ਦੀ ਧੜਕਣ।"</string> <string name="permlab_readCalendar" msgid="6716116972752441641">"ਕੈਲੰਡਰ ਵਰਤਾਰਿਆਂ ਅਤੇ ਵੇਰਵਿਆਂ ਨੂੰ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readCalendar" product="tablet" msgid="4993979255403945892">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਉੱਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> - <string name="permdesc_readCalendar" product="tv" msgid="8837931557573064315">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੀਵੀ ਉੱਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਵਰਤਾਰਿਆਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡੈਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> - <string name="permdesc_readCalendar" product="default" msgid="4373978642145196715">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਫ਼ੋਨ ਉੱਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਵਰਤਾਰਿਆਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡੈਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> - <string name="permlab_writeCalendar" msgid="8438874755193825647">"ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਜੋੜੋ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ ਅਤੇ ਮਾਲਕ ਦੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਮਹਿਮਾਨਾਂ ਨੂੰ ਈਮੇਲ ਭੇਜੋ"</string> + <string name="permdesc_readCalendar" product="tablet" msgid="4993979255403945892">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_readCalendar" product="tv" msgid="8837931557573064315">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_readCalendar" product="default" msgid="4373978642145196715">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਜਾਂ ਰੱਖਿਅਤ ਕਰ ਸਕਦੀ ਹੈ।"</string> + <string name="permlab_writeCalendar" msgid="8438874755193825647">"ਕੈਲੰਡਰ ਇਵੈਂਟ ਸ਼ਾਮਲ ਕਰੋ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ ਅਤੇ ਮਾਲਕ ਦੀ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਮਹਿਮਾਨਾਂ ਨੂੰ ਈਮੇਲ ਭੇਜੋ"</string> <string name="permdesc_writeCalendar" product="tablet" msgid="1675270619903625982">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ \'ਤੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ, ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਹ ਐਪ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਭੇਜ ਸਕਦੀ ਹੈ ਜੋ ਕਿ ਕੈਲੰਡਰ ਮਾਲਕਾਂ ਤੋਂ ਆਉਂਦੇ ਜਾਪ ਸਕਦੇ ਹਨ, ਜਾਂ ਉਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਇਵੈਂਟਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string> - <string name="permdesc_writeCalendar" product="tv" msgid="9017809326268135866">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਕੈਲੰਡਰ ਵਰਤਾਰਿਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ, ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਹ ਐਪ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਭੇਜ ਸਕਦੀ ਹੈ ਜੋ ਕੈਲੰਡਰ ਮਾਲਕਾਂ ਤੋਂ ਆਉਂਦੇ ਜਾਪ ਸਕਦੇ ਹਨ, ਜਾਂ ਉਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਵਰਤਾਰਿਆਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string> - <string name="permdesc_writeCalendar" product="default" msgid="7592791790516943173">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਕੈਲੰਡਰ ਵਰਤਾਰਿਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ, ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਹ ਐਪ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਭੇਜ ਸਕਦੀ ਹੈ ਜੋ ਕੈਲੰਡਰ ਮਾਲਕਾਂ ਤੋਂ ਆਉਂਦੇ ਜਾਪ ਸਕਦੇ ਹਨ, ਜਾਂ ਉਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਵਰਤਾਰਿਆਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_writeCalendar" product="tv" msgid="9017809326268135866">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ, ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਹ ਐਪ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਭੇਜ ਸਕਦੀ ਹੈ ਜੋ ਕੈਲੰਡਰ ਮਾਲਕਾਂ ਤੋਂ ਆਉਂਦੇ ਜਾਪ ਸਕਦੇ ਹਨ, ਜਾਂ ਉਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਇਵੈਂਟਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_writeCalendar" product="default" msgid="7592791790516943173">"ਇਹ ਐਪ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ, ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਬਦਲ ਸਕਦੀ ਹੈ। ਇਹ ਐਪ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਭੇਜ ਸਕਦੀ ਹੈ ਜੋ ਕੈਲੰਡਰ ਮਾਲਕਾਂ ਤੋਂ ਆਉਂਦੇ ਜਾਪ ਸਕਦੇ ਹਨ, ਜਾਂ ਉਹਨਾਂ ਦੇ ਮਾਲਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਇਵੈਂਟਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"ਵਾਧੂ ਟਿਕਾਣਾ ਪ੍ਰਦਾਤਾ ਕਮਾਂਡਾਂ ਤੱਕ ਪਹੁੰਚ"</string> <string name="permdesc_accessLocationExtraCommands" msgid="6078307221056649927">"ਐਪ ਨੂੰ ਵਾਧੂ ਟਿਕਾਣਾ ਪ੍ਰਦਾਤਾ ਕਮਾਂਡਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਐਪ ਨੂੰ GPS ਜਾਂ ਹੋਰ ਟਿਕਾਣਾ ਸਰੋਤਾਂ ਦੇ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਵਿਘਨ ਪਾਉਣ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ।"</string> <string name="permlab_accessFineLocation" msgid="251034415460950944">"ਸਟੀਕ ਟਿਕਾਣੇ \'ਤੇ ਪਹੁੰਚ ਕਰੋ (GPS ਅਤੇ ਨੈੱਟਵਰਕ-ਆਧਾਰਿਤ)"</string> - <string name="permdesc_accessFineLocation" msgid="5821994817969957884">"ਇਹ ਐਪ GPS ਜਾਂ ਨੈੱਟਵਰਕ ਸਰੋਤਾਂ ਜਿਵੇਂ ਕਿ ਸੈੱਲ ਟਾਵਰਾਂ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਆਧਾਰਿਤ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਪਤਾ ਕਰ ਸਕਦੀ ਹੈ। ਐਪ ਵੱਲੋਂ ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਜਾਣ ਦੇ ਯੋਗ ਹੋਣ ਲਈ ਇਹ ਸੇਵਾਵਾਂ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਉਪਲਬਧ ਹੋਣੀਆਂ ਅਤੇ ਚਾਲੂ ਕੀਤੀਆਂ ਹੋਣੀਆਂ ਲਾਜ਼ਮੀ ਹਨ। ਇਸ ਨਾਲ ਬੈਟਰੀ ਦੀ ਖਪਤ ਵਧ ਸਕਦੀ ਹੈ।"</string> + <string name="permdesc_accessFineLocation" msgid="5821994817969957884">"ਇਹ ਐਪ GPS ਜਾਂ ਨੈੱਟਵਰਕ ਸਰੋਤਾਂ ਜਿਵੇਂ ਕਿ ਸੈੱਲ ਟਾਵਰਾਂ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਆਧਾਰਿਤ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਪਤਾ ਕਰ ਸਕਦੀ ਹੈ। ਐਪ ਦੁਆਰਾ ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਜਾਣ ਦੇ ਯੋਗ ਹੋਣ ਲਈ ਇਹ ਸੇਵਾਵਾਂ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਉਪਲਬਧ ਹੋਣੀਆਂ ਅਤੇ ਚਾਲੂ ਕੀਤੀਆਂ ਹੋਣੀਆਂ ਲਾਜ਼ਮੀ ਹਨ। ਇਸ ਨਾਲ ਬੈਟਰੀ ਦੀ ਖਪਤ ਵਧ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_accessCoarseLocation" msgid="7715277613928539434">"ਅੰਦਾਜ਼ਨ ਟਿਕਾਣੇ \'ਤੇ ਪਹੁੰਚ ਕਰੋ (ਨੈੱਟਵਰਕ-ਆਧਾਰਿਤ)"</string> <string name="permdesc_accessCoarseLocation" product="tablet" msgid="3373266766487862426">"ਇਹ ਐਪ ਨੈੱਟਵਰਕ ਸਰੋਤਾਂ ਜਿਵੇਂ ਕਿ ਸੈੱਲ ਟਾਵਰਾਂ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਆਧਾਰਿਤ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਪਤਾ ਕਰ ਸਕਦੀ ਹੈ। ਐਪ ਦੁਆਰਾ ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਜਾਣ ਦੇ ਯੋਗ ਹੋਣ ਲਈ ਇਹ ਸੇਵਾਵਾਂ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ \'ਤੇ ਉਪਲਬਧ ਹੋਣੀਆਂ ਅਤੇ ਚਾਲੂ ਕੀਤੀਆਂ ਹੋਣੀਆਂ ਲਾਜ਼ਮੀ ਹਨ।"</string> <string name="permdesc_accessCoarseLocation" product="tv" msgid="1884022719818788511">"ਇਹ ਐਪ ਨੈੱਟਵਰਕ ਸਰੋਤਾਂ ਜਿਵੇਂ ਕਿ ਸੈੱਲ ਟਾਵਰਾਂ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਆਧਾਰਿਤ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਪਤਾ ਕਰ ਸਕਦੀ ਹੈ। ਐਪ ਵੱਲੋਂ ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੇ ਜਾਣ ਦੇ ਯੋਗ ਹੋਣ ਲਈ ਇਹ ਸੇਵਾਵਾਂ ਤੁਹਾਡੇ ਟੀਵੀ \'ਤੇ ਉਪਲਬਧ ਹੋਣੀਆਂ ਅਤੇ ਚਾਲੂ ਕੀਤੀਆਂ ਹੋਣੀਆਂ ਲਾਜ਼ਮੀ ਹਨ।"</string> @@ -404,22 +405,22 @@ <string name="permdesc_callPhone" msgid="3740797576113760827">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦਖਲ ਤੋਂ ਬਿਨਾਂ ਫ਼ੋਨ ਨੰਬਰਾਂ ਤੇ ਕਾਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਅਕਲਪਿਤ ਖਰਚੇ ਜਾਂ ਕਾਲਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਧਿਆਨ ਦਿਓ ਕਿ ਇਹ ਐਪ ਨੂੰ ਸੰਕਟਕਾਲੀਨ ਨੰਬਰਾਂ ਤੇ ਕਾਲ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ। ਖਰਾਬ ਐਪਾਂ ਤੁਹਾਡੀ ਪੁਸ਼ਟੀ ਤੋਂ ਬਿਨਾਂ ਕਾਲਾਂ ਕਰਕੇ ਤੁਹਾਨੂੰ ਖਰਚੇ ਪਾ ਸਕਦੀਆਂ ਹਨ।"</string> <string name="permlab_accessImsCallService" msgid="3574943847181793918">"IMS ਕਾਲ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ"</string> <string name="permdesc_accessImsCallService" msgid="8992884015198298775">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਕਾਲਾਂ ਕਰਨ ਲਈ IMS ਸੇਵਾ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> - <string name="permlab_readPhoneState" msgid="9178228524507610486">"ਫੋਨ ਸਥਿਤੀ ਅਤੇ ਪਛਾਣ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readPhoneState" msgid="1639212771826125528">"ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੀਆਂ ਫ਼ੋਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪ ਨੂੰ ਫ਼ੋਨ ਨੰਬਰ ਅਤੇ ਡੀਵਾਈਸ ਆਈ.ਡੀ. ਨਿਰਧਾਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਇੱਕ ਕਾਲ ਕਿਰਿਆਸ਼ੀਲ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਰਿਮੋਟ ਨੰਬਰ ਇੱਕ ਕਾਲ ਨਾਲ ਕਨੈਕਟ ਹੈ ਜਾਂ ਨਹੀਂ।"</string> + <string name="permlab_readPhoneState" msgid="9178228524507610486">"ਫ਼ੋਨ ਸਥਿਤੀ ਅਤੇ ਪਛਾਣ ਪੜ੍ਹੋ"</string> + <string name="permdesc_readPhoneState" msgid="1639212771826125528">"ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੀਆਂ ਫ਼ੋਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਜਾਜ਼ਤ ਐਪ ਨੂੰ ਫ਼ੋਨ ਨੰਬਰ ਅਤੇ ਡੀਵਾਈਸ ਆਈ.ਡੀ. ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਇੱਕ ਕਾਲ ਕਿਰਿਆਸ਼ੀਲ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਰਿਮੋਟ ਨੰਬਰ ਇੱਕ ਕਾਲ ਨਾਲ ਕਨੈਕਟ ਹੈ ਜਾਂ ਨਹੀਂ।"</string> <string name="permlab_manageOwnCalls" msgid="1503034913274622244">"ਸਿਸਟਮ ਰਾਹੀਂ ਕਾਲਾਂ ਰੂਟ ਕਰੋ"</string> <string name="permdesc_manageOwnCalls" msgid="6552974537554717418">"ਕਾਲ ਕਰਨ ਦੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਐਪ ਨੂੰ ਇਸਦੀਆਂ ਕਾਲਾਂ ਨੂੰ ਸਿਸਟਮ ਰਾਹੀਂ ਰੂਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।"</string> <string name="permlab_readPhoneNumbers" msgid="6108163940932852440">"ਫ਼ੋਨ ਨੰਬਰ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readPhoneNumbers" msgid="8559488833662272354">"ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੇ ਫ਼ੋਨ ਨੰਬਰਾਂ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> + <string name="permdesc_readPhoneNumbers" msgid="8559488833662272354">"ਐਪ ਨੂੰ ਡੀਵਾਈਸ ਦੇ ਫ਼ੋਨ ਨੰਬਰਾਂ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।"</string> <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"ਟੈਬਲੈੱਟ ਨੂੰ ਸਲੀਪ ਤੇ ਜਾਣ ਤੋਂ ਰੋਕੋ"</string> <string name="permlab_wakeLock" product="tv" msgid="2601193288949154131">"TV ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"</string> - <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"ਫੋਨ ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"</string> + <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"ਫ਼ੋਨ ਨੂੰ ਸਲੀਪਿੰਗ ਤੋਂ ਰੋਕੋ"</string> <string name="permdesc_wakeLock" product="tablet" msgid="7311319824400447868">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਨੂੰ ਸਲੀਪ ਤੇ ਜਾਣ ਤੋਂ ਰੋਕਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_wakeLock" product="tv" msgid="3208534859208996974">"ਐਪ ਨੂੰ TV ਨੂੰ ਸਲੀਪ ਤੇ ਜਾਣ ਤੋਂ ਰੋਕਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_wakeLock" product="default" msgid="8559100677372928754">"ਐਪ ਨੂੰ ਫੋਨ ਨੂੰ ਸਲੀਪ ਤੇ ਜਾਣ ਤੋਂ ਰੋਕਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_wakeLock" product="default" msgid="8559100677372928754">"ਐਪ ਨੂੰ ਫ਼ੋਨ ਨੂੰ ਸਲੀਪ ਤੇ ਜਾਣ ਤੋਂ ਰੋਕਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_transmitIr" msgid="7545858504238530105">"ਇੰਫ੍ਰਾਰੈਡ ਟ੍ਰਾਂਸਮਿਟ ਕਰੋ"</string> <string name="permdesc_transmitIr" product="tablet" msgid="5358308854306529170">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਦਾ ਇੰਫਰਾਰੈਡ ਟ੍ਰਾਂਸਮੀਟਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_transmitIr" product="tv" msgid="3926790828514867101">"ਐਪ ਨੂੰ TV ਦਾ ਇੰਫਰਾਰੈਡ ਟ੍ਰਾਂਸਮੀਟਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_transmitIr" product="default" msgid="7957763745020300725">"ਐਪ ਨੂੰ ਫੋਨ ਦਾ ਇੰਫਰਾਰੈਡ ਟ੍ਰਾਂਸਮੀਟਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_transmitIr" product="default" msgid="7957763745020300725">"ਐਪ ਨੂੰ ਫ਼ੋਨ ਦਾ ਇੰਫਰਾਰੈਡ ਟ੍ਰਾਂਸਮੀਟਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_setWallpaper" msgid="6627192333373465143">"ਵਾਲਪੇਪਰ ਸੈੱਟ ਕਰੋ"</string> <string name="permdesc_setWallpaper" msgid="7373447920977624745">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਵਾਲਪੇਪਰ ਸੈਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"ਆਪਣਾ ਵਾਲਪੇਪਰ ਆਕਾਰ ਵਿਵਸਥਿਤ ਕਰੋ"</string> @@ -427,15 +428,15 @@ <string name="permlab_setTimeZone" msgid="2945079801013077340">"ਸਮਾਂ ਜ਼ੋਨ ਸੈੱਟ ਕਰੋ"</string> <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਦਾ ਸਮਾਂ ਜ਼ੋਨ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_setTimeZone" product="tv" msgid="888864653946175955">"ਐਪ ਨੂੰ TV ਦਾ ਸਮਾਂ ਜ਼ੋਨ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"ਐਪ ਨੂੰ ਫੋਨ ਦਾ ਸਮਾਂ ਜ਼ੋਨ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"ਐਪ ਨੂੰ ਫ਼ੋਨ ਦਾ ਸਮਾਂ ਜ਼ੋਨ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_getAccounts" msgid="1086795467760122114">"ਡੀਵਾਈਸ ਤੇ ਖਾਤੇ ਲੱਭੋ"</string> <string name="permdesc_getAccounts" product="tablet" msgid="2741496534769660027">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਵੱਲੋਂ ਗਿਆਤ ਖਾਤਿਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੁਆਰਾ ਬਣਾਏ ਗਏ ਕੋਈ ਵੀ ਖਾਤੇ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ।"</string> <string name="permdesc_getAccounts" product="tv" msgid="4190633395633907543">"ਐਪ ਨੂੰ TV ਵੱਲੋਂ ਗਿਆਤ ਖਾਤਿਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਇੰਸਟੌਲ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵੱਲੋਂ ਬਣਾਏ ਗਏ ਕੋਈ ਵੀ ਖਾਤੇ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ।"</string> - <string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"ਐਪ ਨੂੰ ਫੋਨ ਵੱਲੋਂ ਗਿਆਤ ਖਾਤਿਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਇੰਸਟੌਲ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵੱਲੋਂ ਬਣਾਏ ਗਏ ਕੋਈ ਵੀ ਖਾਤੇ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ।"</string> + <string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"ਐਪ ਨੂੰ ਫ਼ੋਨ ਵੱਲੋਂ ਗਿਆਤ ਖਾਤਿਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵੱਲੋਂ ਬਣਾਏ ਗਏ ਕੋਈ ਵੀ ਖਾਤੇ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ।"</string> <string name="permlab_accessNetworkState" msgid="4951027964348974773">"ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੇਖੋ"</string> <string name="permdesc_accessNetworkState" msgid="8318964424675960975">"ਐਪ ਨੂੰ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿਹੜੇ ਨੈੱਟਵਰਕ ਮੌਜੂਦ ਹਨ ਅਤੇ ਕਨੈਕਟ ਕੀਤੇ ਹੋਏ ਹਨ।"</string> <string name="permlab_createNetworkSockets" msgid="7934516631384168107">"ਪੂਰੀ ਨੈੱਟਵਰਕ ਪਹੁੰਚ ਪਾਓ"</string> - <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"ਐਪ ਨੂੰ ਨੈੱਟਵਰਕ ਸੌਕੇਟ ਬਣਾਉਣ ਅਤੇ ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਨੈੱਟਵਰਕ ਪ੍ਰੋਟੋਕੋਲ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਬ੍ਰਾਊਜ਼ਰ ਅਤੇ ਹੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਇੰਟਰਨੈੱਟ ਨੂੰ ਡਾਟਾ ਭੇਜਣ ਲਈ ਸਾਧਨ ਮੁਹੱਈਆ ਕਰਦਾ ਹੈ, ਇਸਲਈ ਇੰਟਰਨੈੱਟ ਡਾਟਾ ਭੇਜਣ ਲਈ ਇਹ ਅਨੁਮਤੀ ਲੁੜੀਂਦੀ ਨਹੀਂ ਹੈ।"</string> + <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"ਐਪ ਨੂੰ ਨੈੱਟਵਰਕ ਸਾਕੇਟ ਬਣਾਉਣ ਅਤੇ ਕਸਟਮ ਨੈੱਟਵਰਕ ਪ੍ਰੋਟੋਕੋਲ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਬ੍ਰਾਊਜ਼ਰ ਅਤੇ ਹੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਇੰਟਰਨੈੱਟ ਨੂੰ ਡਾਟਾ ਭੇਜਣ ਲਈ ਸਾਧਨ ਮੁਹੱਈਆ ਕਰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਇੰਟਰਨੈੱਟ ਡਾਟਾ ਭੇਜਣ ਲਈ ਇਹ ਅਨੁਮਤੀ ਲੋੜੀਂਦੀ ਨਹੀਂ ਹੈ।"</string> <string name="permlab_changeNetworkState" msgid="958884291454327309">"ਨੈੱਟਵਰਕ ਕਨੈਕਟੀਵਿਟੀ ਬਦਲੋ"</string> <string name="permdesc_changeNetworkState" msgid="6789123912476416214">"ਐਪ ਨੂੰ ਨੈੱਟਵਰਕ ਕਨੈਕਟੀਵਿਟੀ ਦੀ ਸਥਿਤੀ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_changeTetherState" msgid="5952584964373017960">"ਟੀਥਰ ਕੀਤੀ ਕਨੈਕਟੀਵਿਟੀ ਬਦਲੋ"</string> @@ -443,31 +444,31 @@ <string name="permlab_accessWifiState" msgid="5202012949247040011">"ਵਾਈ-ਫਾਈ ਕਨੈਕਸ਼ਨ ਦੇਖੋ"</string> <string name="permdesc_accessWifiState" msgid="5002798077387803726">"ਐਪ ਨੂੰ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਿੰਗ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਵਾਈ-ਫਾਈ ਸਮਰਥਿਤ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਕਨੈਕਟ ਕੀਤੇ ਵਾਈ-ਫਾਈ ਡੀਵਾਈਸਾਂ ਦਾ ਨਾਮ।"</string> <string name="permlab_changeWifiState" msgid="6550641188749128035">"ਵਾਈ-ਫਾਈ ਤੋਂ ਕਨੈਕਟ ਅਤੇ ਡਿਸਕਨੈਕਟ ਕਰੋ"</string> - <string name="permdesc_changeWifiState" msgid="7137950297386127533">"ਐਪ ਨੂੰ ਵਾਈ-ਫਾਈ ਐਕਸੈੱਸ ਪੁਆਇੰਟਆਂ ਤੇ ਕਨੈਕਟ ਅਤੇ ਇਹਨਾਂ ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰਨ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਲਈ ਡੀਵਾਈਸ ਸੰਰੂਪਣ ਵਿੱਚ ਬਦਲਾਵ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_changeWifiState" msgid="7137950297386127533">"ਐਪ ਨੂੰ ਵਾਈ-ਫਾਈ ਪਹੁੰਚ ਬਿੰਦੂਆਂ ਤੇ ਕਨੈਕਟ ਅਤੇ ਇਹਨਾਂ ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰਨ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੈਟਵਰਕਾਂ ਲਈ ਡੀਵਾਈਸ ਸੰਰੂਪਣ ਵਿੱਚ ਬਦਲਾਵ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"ਵਾਈ-ਫਾਈ ਮਲਟੀਕਾਸਟ ਰਿਸੈਪਸ਼ਨ ਦੀ ਆਗਿਆ ਦਿਓ"</string> <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"ਐਪ ਨੂੰ ਮਲਟੀਕਾਸਟ ਪਤੇ ਵਰਤਦੇ ਹੋਏ ਇੱਕ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਤੇ ਸਾਰੀਆਂ ਡੀਵਾਈਸਾਂ ਤੇ ਭੇਜੇ ਗਏ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਕੇਵਲ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਨਹੀਂ। ਇਹ ਗੈਰ-ਮਲਟੀਕਾਸਟ ਮੋਡ ਦੇ ਮੁਕਾਬਲੇ ਵੱਧ ਪਾਵਰ ਵਰਤਦਾ ਹੈ।"</string> <string name="permdesc_changeWifiMulticastState" product="tv" msgid="9031975661145014160">"ਐਪ ਨੂੰ ਮਲਟੀਕਾਸਟ ਪਤੇ ਵਰਤਦੇ ਹੋਏ ਇੱਕ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਤੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ ਤੇ ਭੇਜੇ ਗਏ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਸਿਰਫ਼ ਤੁਹਾਡਾ ਟੀਵੀ ਨਹੀਂ। ਇਹ ਗ਼ੈਰ-ਮਲਟੀਕਾਸਟ ਮੋਡ ਦੇ ਮੁਕਾਬਲੇ ਵੱਧ ਪਾਵਰ ਵਰਤਦਾ ਹੈ।"</string> - <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"ਐਪ ਨੂੰ ਮਲਟੀਕਾਸਟ ਪਤੇ, ਵਰਤਦੇ ਹੋਏ ਇੱਕ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਤੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ ਤੇ ਭੇਜੇ ਗਏ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਸਿਰਫ਼ ਤੁਹਾਡਾ ਫ਼ੋਨ ਨਹੀਂ। ਇਹ ਗ਼ੈਰ-ਮਲਟੀਕਾਸਟ ਮੋਡ ਦੇ ਮੁਕਾਬਲੇ ਵੱਧ ਪਾਵਰ ਵਰਤਦਾ ਹੈ।"</string> + <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"ਐਪ ਨੂੰ ਮਲਟੀਕਾਸਟ ਪਤੇ, ਵਰਤਦੇ ਹੋਏ ਇੱਕ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਤੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ ਤੇ ਭੇਜੇ ਗਏ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਸਿਰਫ਼ ਤੁਹਾਡਾ ਫ਼ੋਨ ਨਹੀਂ। ਇਹ ਗੈਰ-ਮਲਟੀਕਾਸਟ ਮੋਡ ਦੇ ਮੁਕਾਬਲੇ ਵੱਧ ਪਾਵਰ ਵਰਤਦਾ ਹੈ।"</string> <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"ਬਲੂਟੁੱਥ ਸੈਟਿੰਗਾਂ ਤੱਕ ਪਹੁੰਚ"</string> <string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"ਐਪ ਨੂੰ ਸਥਾਨਕ ਬਲੂਟੁੱਥ ਟੈਬਲੈੱਟ ਸੰਰੂਪਣ ਕਰਨ ਅਤੇ ਰਿਮੋਟ ਡੀਵਾਈਸਾਂ ਨੂੰ ਖੋਜਣ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਜੋੜਾਬੱਧ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_bluetoothAdmin" product="tv" msgid="3373125682645601429">"ਐਪ ਨੂੰ ਸਥਾਨਕ Bluetooth ਟੀਵੀ ਦੀ ਰੂਪ-ਰੇਖਾ ਬਦਲਣ ਅਤੇ ਰਿਮੋਟ ਡਿਵਾਈਸਾਂ ਨੂੰ ਖੋਜਣ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਪੇਅਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"ਐਪ ਨੂੰ ਸਥਾਨਕ Bluetooth ਫ਼ੋਨ ਦੀ ਰੂਪ-ਰੇਖਾ ਬਦਲਣ ਅਤੇ ਰਿਮੋਟ ਡਿਵਾਈਸਾਂ ਨੂੰ ਖੋਜਣ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਪੇਅਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"ਐਪ ਨੂੰ ਸਥਾਨਕ ਬਲੂਟੁੱਥ ਫ਼ੋਨ ਦੀ ਰੂਪ-ਰੇਖਾ ਬਦਲਣ ਅਤੇ ਰਿਮੋਟ ਡਿਵਾਈਸਾਂ ਨੂੰ ਖੋਜਣ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਪੇਅਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX ਤੋਂ ਕਨੈਕਟ ਅਤੇ ਡਿਸਕਨੈਕਟ ਕਰੋ"</string> <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"ਐਪ ਨੂੰ ਇਹ ਨਿਰਧਾਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਕਿ WiMAX ਸਮਰਥਿਤ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਕਿਸੇ ਵੀ WiMAX ਨੈਟਵਰਕਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਜੋ ਕਨੈਕਟ ਕੀਤੇ ਹੋਏ ਹਨ।"</string> <string name="permlab_changeWimaxState" msgid="340465839241528618">"WiMAX ਸਥਿਤੀ ਬਦਲੋ"</string> <string name="permdesc_changeWimaxState" product="tablet" msgid="3156456504084201805">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਨੂੰ ਕਨੈਕਟ ਕਰਨ ਅਤੇ WiMAX ਨੈਟਵਰਕਾਂ ਤੋਂ ਟੈਬਲੈੱਟ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_changeWimaxState" product="tv" msgid="6022307083934827718">"ਐਪ ਨੂੰ TV ਨੂੰ ਕਨੈਕਟ ਕਰਨ ਅਤੇ WiMAX ਨੈਟਵਰਕਾਂ ਤੋਂ TV ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_changeWimaxState" product="default" msgid="697025043004923798">"ਐਪ ਨੂੰ ਫੋਨ ਨੂੰ ਕਨੈਕਟ ਕਰਨ ਅਤੇ WiMAX ਨੈਟਵਰਕਾਂ ਤੋਂ ਫੋਨ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_changeWimaxState" product="default" msgid="697025043004923798">"ਐਪ ਨੂੰ ਫ਼ੋਨ ਨੂੰ ਕਨੈਕਟ ਕਰਨ ਅਤੇ WiMAX ਨੈੱਟਵਰਕਾਂ ਤੋਂ ਫ਼ੋਨ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_bluetooth" msgid="6127769336339276828">"Bluetooth ਡਿਵਾਈਸਾਂ ਨਾਲ ਪੇਅਰ ਕਰੋ"</string> <string name="permdesc_bluetooth" product="tablet" msgid="3480722181852438628">"ਐਪ ਨੂੰ ਟੈਬਲੈੱਟ ਤੇ ਬਲੂਟੁੱਥ ਦਾ ਸੰਰੂਪਣ ਦੇਖਣ, ਜੋੜਾਬੱਧ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣ ਅਤੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_bluetooth" product="tv" msgid="3974124940101104206">"ਐਪ ਨੂੰ TV ਤੇ Bluetooth ਦੀ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੇਖਣ, ਪੇਅਰ ਕੀਤੀਆਂ ਡਿਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣ ਅਤੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"ਐਪ ਨੂੰ ਫੋਨ ਤੇ Bluetooth ਦੀ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੇਖਣ, ਪੇਅਰ ਕੀਤੀਆਂ ਡਿਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣ ਅਤੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_bluetooth" product="tv" msgid="3974124940101104206">"ਐਪ ਨੂੰ ਟੀਵੀ ਤੇ Bluetooth ਦੀ ਸੰਰੂਪਣ ਦੇਖਣ, ਜੋੜਾਬੱਧ ਕੀਤੇ ਡਿਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣ ਅਤੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"ਐਪ ਨੂੰ ਬਲੂਟੁੱਥ ਤੇ ਬਲੂਟੁੱਥ ਦਾ ਸੰਰੂਪਣ ਦੇਖਣ, ਜੋੜਾਬੱਧ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣ ਅਤੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_nfc" msgid="4423351274757876953">"ਨਜ਼ਦੀਕੀ ਖੇਤਰ ਸੰਚਾਰ ਤੇ ਨਿਯੰਤਰਣ ਪਾਓ"</string> <string name="permdesc_nfc" msgid="7120611819401789907">"ਐਪ ਨੂੰ ਨਜ਼ਦੀਕੀ ਖੇਤਰ ਸੰਚਾਰ (NFC) ਟੈਗਾਂ, ਕਾਰਡਾਂ ਅਤੇ ਰੀਡਰਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_disableKeyguard" msgid="3598496301486439258">"ਆਪਣਾ ਸਕ੍ਰੀਨ ਲੌਕ ਅਸਮਰੱਥ ਬਣਾਓ"</string> - <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"ਐਪ ਨੂੰ ਕੀਲਾਕ ਅਤੇ ਕਿਸੇ ਵੀ ਸੰਬੰਧਿਤ ਪਾਸਵਰਡ ਸੁਰੱਖਿਆ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਫ਼ੋਨ ਇੱਕ ਇਨਕਮਿੰਗ ਫ਼ੋਨ ਕਾਲ ਪ੍ਰਾਪਤ ਕਰਨ ਵੇਲੇ ਅਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ, ਫਿਰ ਜਦੋਂ ਕਾਲ ਖਤਮ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕੀਲਾਕ ਨੂੰ ਮੁੜ-ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।"</string> + <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"ਐਪ ਨੂੰ ਕੀਲਾਕ ਅਤੇ ਕਿਸੇ ਵੀ ਸੰਬੰਧਿਤ ਪਾਸਵਰਡ ਸੁਰੱਖਿਆ ਨੂੰ ਬੰਦ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਫ਼ੋਨ ਇੱਕ ਇਨਕਮਿੰਗ ਫ਼ੋਨ ਕਾਲ ਪ੍ਰਾਪਤ ਕਰਨ ਵੇਲੇ ਬੰਦ ਕਰਦਾ ਹੈ, ਫਿਰ ਜਦੋਂ ਕਾਲ ਖਤਮ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕੀਲਾਕ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਦਾ ਹੈ।"</string> <string name="permlab_manageFingerprint" msgid="5640858826254575638">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਵਿਵਸਥਿਤ ਕਰੋ"</string> - <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ਐਪ ਨੂੰ ਵਰਤੋਂ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਜੋੜਨ ਅਤੇ ਮਿਟਾਣ ਦੀਆਂ ਵਿਧੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permdesc_manageFingerprint" msgid="178208705828055464">"ਐਪ ਨੂੰ ਵਰਤੋਂ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੀਆਂ ਵਿਧੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_useFingerprint" msgid="3150478619915124905">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਵਰਤੋ"</string> <string name="permdesc_useFingerprint" msgid="9165097460730684114">"ਐਪ ਨੂੰ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ"</string> <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ਅਧੂਰਾ ਫਿੰਗਰਪ੍ਰਿਟ ਮਿਲਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> @@ -487,14 +488,14 @@ <string name="fingerprint_name_template" msgid="5870957565512716938">"ਉਂਗਲ <xliff:g id="FINGERID">%d</xliff:g>"</string> <string-array name="fingerprint_error_vendor"> </string-array> - <string name="fingerprint_icon_content_description" msgid="2340202869968465936">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਆਈਕਨ"</string> + <string name="fingerprint_icon_content_description" msgid="2340202869968465936">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਪ੍ਰਤੀਕ"</string> <string name="permlab_readSyncSettings" msgid="6201810008230503052">"ਸਿੰਕ ਸੈਟਿੰਗਾਂ ਪੜ੍ਹੋ"</string> <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"ਐਪ ਨੂੰ ਕਿਸੇ ਖਾਤੇ ਲਈ ਸਮਕਾਲੀਕਰਨ ਸੈਟਿੰਗਾਂ ਪੜ੍ਹਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਹ ਪਤਾ ਕਰ ਸਕਦਾ ਹੈ ਕਿ People ਐਪ ਦਾ ਕਿਸੇ ਖਾਤੇ ਨਾਲ ਸਮਕਾਲੀਕਿਰਤ ਕੀਤਾ ਗਿਆ ਹੈ ਜਾਂ ਨਹੀਂ।"</string> <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"ਸਿੰਕ ਟੌਗਲ ਚਾਲੂ ਅਤੇ ਬੰਦ"</string> <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ਐਪ ਨੂੰ ਇੱਕ ਖਾਤੇ ਲਈ ਸਮਕਾਲੀਕਰਨ ਸੈਟਿੰਗਾਂ ਸੋਧਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸਦੀ ਵਰਤੋਂ ਕਿਸੇ ਖਾਤੇ ਨਾਲ People ਐਪ ਦਾ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।"</string> <string name="permlab_readSyncStats" msgid="7396577451360202448">"ਸਿੰਕ ਅੰਕੜੇ ਪੜ੍ਹੋ"</string> <string name="permdesc_readSyncStats" msgid="1510143761757606156">"ਐਪ ਨੂੰ ਇੱਕ ਖਾਤੇ ਲਈ ਸਮਕਾਲੀਕਰਨ ਸਥਿਤੀ ਪੜ੍ਹਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਇਸ ਵਿੱਚ ਸਮਕਾਲੀਕਰਨ ਵਰਤਾਰਿਆਂ ਦਾ ਇਤਿਹਾਸ ਅਤੇ ਕਿੰਨੇ ਡਾਟਾ ਦਾ ਸਮਕਾਲੀਕਿਰਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਵੀ ਸ਼ਾਮਲ ਹੈ।"</string> - <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"ਆਪਣੀ USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹੋ"</string> + <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹੋ"</string> <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"ਆਪਣੇ SD ਕਾਰਡ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹੋ"</string> <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"ਐਪ ਨੂੰ ਆਪਣੀ USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_sdcardRead" product="default" msgid="2607362473654975411">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ SD ਕਾਰਡ ਦੀਆਂ ਸਮੱਗਰੀਆਂ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> @@ -527,7 +528,7 @@ <string name="permlab_bindNotificationListenerService" msgid="7057764742211656654">"ਇੱਕ ਸੂਚਨਾ ਸੁਣਨ ਵਾਲੀ ਸੇਵਾ ਨਾਲ ਜੋੜੋ"</string> <string name="permdesc_bindNotificationListenerService" msgid="985697918576902986">"ਹੋਲਡਰ ਨੂੰ ਇੱਕ ਸੂਚਨਾ ਸੁਣਨ ਵਾਲੀ ਸੇਵਾ ਦੇ ਉੱਚ-ਪੱਧਰ ਦੇ ਇੰਟਰਫੇਸ ਨਾਲ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਧਾਰਨ ਐਪਾਂ ਲਈ ਕਦੇ ਵੀ ਲੋੜੀਂਦਾ ਨਹੀਂ ਹੋਵੇਗਾ।"</string> <string name="permlab_bindConditionProviderService" msgid="1180107672332704641">"ਇੱਕ ਸਥਿਤੀ ਪ੍ਰਦਾਤਾ ਸੇਵਾ ਨਾਲ ਜੋੜੋ"</string> - <string name="permdesc_bindConditionProviderService" msgid="1680513931165058425">"ਹੋਲਡਰ ਨੂੰ ਇੱਕ ਸਥਿਤੀ ਪ੍ਰਦਾਤਾ ਸੇਵਾ ਦੇ ਉੱਚ-ਪੱਧਰ ਦੇ ਇੰਟਰਫੇਸ ਨਾਲ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਧਾਰਨ ਐਪਾਂ ਲਈ ਕਦੇ ਵੀ ਲੋੜੀਂਦਾ ਨਹੀਂ ਹੋਵੇਗਾ।"</string> + <string name="permdesc_bindConditionProviderService" msgid="1680513931165058425">"ਧਾਰਕ ਨੂੰ ਇੱਕ ਸਥਿਤੀ ਪ੍ਰਦਾਤਾ ਸੇਵਾ ਦੇ ਉੱਚ-ਪੱਧਰ ਦੇ ਇੰਟਰਫੇਸ ਨਾਲ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਧਾਰਨ ਐਪਾਂ ਲਈ ਕਦੇ ਵੀ ਲੋੜੀਂਦਾ ਨਹੀਂ ਹੋਵੇਗਾ।"</string> <string name="permlab_bindDreamService" msgid="4153646965978563462">"ਇੱਕ ਡ੍ਰੀਮ ਸੇਵਾ ਨਾਲ ਜੋੜੋ"</string> <string name="permdesc_bindDreamService" msgid="7325825272223347863">"ਹੋਲਡਰ ਨੂੰ ਇੱਕ ਡ੍ਰੀਮ ਸੇਵਾ ਦੇ ਉੱਚ-ਪੱਧਰ ਦੇ ਇੰਟਰਫੇਸ ਨਾਲ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਧਾਰਨ ਐਪਾਂ ਲਈ ਕਦੇ ਵੀ ਲੋੜੀਂਦਾ ਨਹੀਂ ਹੋਵੇਗਾ।"</string> <string name="permlab_invokeCarrierSetup" msgid="3699600833975117478">"ਕੈਰੀਅਰ-ਵੱਲੋਂ ਮੁਹੱਈਆ ਕੀਤੇ ਕੌਂਫਿਗਰੇਸ਼ਨ ਐਪ ਦੀ ਬੇਨਤੀ ਕਰੋ"</string> @@ -550,13 +551,13 @@ <string name="permdesc_access_notification_policy" msgid="3296832375218749580">"ਐਪ ਨੂੰ ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="policylab_limitPassword" msgid="4497420728857585791">"ਪਾਸਵਰਡ ਨਿਯਮ ਸੈੱਟ ਕਰੋ"</string> <string name="policydesc_limitPassword" msgid="2502021457917874968">"ਸਕ੍ਰੀਨ ਲੌਕ ਪਾਸਵਰਡਾਂ ਅਤੇ ਪਿੰਨ ਵਿੱਚ ਆਗਿਆ ਦਿੱਤੀ ਲੰਮਾਈ ਅਤੇ ਅੱਖਰਾਂ ਤੇ ਨਿਯੰਤਰਣ ਪਾਓ।"</string> - <string name="policylab_watchLogin" msgid="5091404125971980158">"ਸਕ੍ਰੀਨ ਅਨਲੌਕ ਕਰਨ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ \'ਤੇ ਨਿਗਰਾਨੀ ਰੱਖੋ"</string> + <string name="policylab_watchLogin" msgid="5091404125971980158">"ਸਕ੍ਰੀਨ ਅਣਲਾਕ ਕਰਨ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ \'ਤੇ ਨਿਗਰਾਨੀ ਰੱਖੋ"</string> <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਹੋਏ ਟਾਈਪ ਕੀਤੇ ਗਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਟੈਬਲੈੱਟ ਨੂੰ ਲਾਕ ਕਰੋ ਜਾਂ ਟੈਬਲੈੱਟ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ, ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> <string name="policydesc_watchLogin" product="TV" msgid="2707817988309890256">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਲੌਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗ਼ਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ TV ਨੂੰ ਲੌਕ ਕਰੋ ਜਾਂ TV ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗ਼ਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> - <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਲੌਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗ਼ਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਫੋਨ ਨੂੰ ਲੌਕ ਕਰੋ ਜਾਂ ਫੋਨ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗ਼ਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> + <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਫ਼ੋਨ ਨੂੰ ਲਾਕ ਕਰੋ ਜਾਂ ਫ਼ੋਨ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> <string name="policydesc_watchLogin_secondaryUser" product="tablet" msgid="4280246270601044505">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਹੋਏ ਟਾਈਪ ਕੀਤੇ ਗਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਟੈਬਲੈੱਟ ਨੂੰ ਲਾਕ ਕਰੋ ਜਾਂ ਟੈਬਲੈੱਟ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ, ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> <string name="policydesc_watchLogin_secondaryUser" product="TV" msgid="3484832653564483250">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਲੌਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗ਼ਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ TV ਨੂੰ ਲੌਕ ਕਰੋ ਜਾਂ TV ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗ਼ਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> - <string name="policydesc_watchLogin_secondaryUser" product="default" msgid="2185480427217127147">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਲੌਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗ਼ਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਫੋਨ ਨੂੰ ਲੌਕ ਕਰੋ ਜਾਂ ਫੋਨ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗ਼ਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> + <string name="policydesc_watchLogin_secondaryUser" product="default" msgid="2185480427217127147">"ਸਕ੍ਰੀਨ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਸਮੇਂ ਟਾਈਪ ਕੀਤੇ ਗਲਤ ਪਾਸਵਰਡਾਂ ਦੀ ਸੰਖਿਆ ਦਾ ਨਿਰੀਖਣ ਕਰੋ ਅਤੇ ਫ਼ੋਨ ਨੂੰ ਲਾਕ ਕਰੋ ਜਾਂ ਫ਼ੋਨ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ ਜੇਕਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗਲਤ ਪਾਸਵਰਡ ਟਾਈਪ ਕੀਤੇ ਹਨ।"</string> <string name="policylab_resetPassword" msgid="4934707632423915395">"ਸਕ੍ਰੀਨ ਲੌਕ ਬਦਲੋ"</string> <string name="policydesc_resetPassword" msgid="1278323891710619128">"ਸਕ੍ਰੀਨ ਲੌਕ ਬਦਲੋ।"</string> <string name="policylab_forceLock" msgid="2274085384704248431">"ਸਕ੍ਰੀਨ ਲੌਕ ਕਰੋ"</string> @@ -564,14 +565,14 @@ <string name="policylab_wipeData" msgid="3910545446758639713">"ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ"</string> <string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"ਇੱਕ ਫੈਕਟਰੀ ਡਾਟਾ ਰੀਸੈੱਟ ਕਰਕੇ ਚਿਤਾਵਨੀ ਤੋਂ ਬਿਨਾਂ ਟੈਬਲੈੱਟ ਦਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> <string name="policydesc_wipeData" product="tv" msgid="5816221315214527028">"ਇੱਕ ਫੈਕਟਰੀ ਡਾਟਾ ਰੀਸੈੱਟ ਕਰਕੇ ਚਿਤਾਵਨੀ ਤੋਂ ਬਿਨਾਂ ਟੀਵੀ ਦਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> - <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"ਇੱਕ ਫੈਕਟਰੀ ਡਾਟਾ ਰੀਸੈੱਟ ਕਰਕੇ ਚਿਤਾਵਨੀ ਤੋਂ ਬਿਨਾਂ ਫੋਨ ਦਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> + <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"ਇੱਕ ਫੈਕਟਰੀ ਡਾਟਾ ਰੀਸੈੱਟ ਕਰਕੇ ਚਿਤਾਵਨੀ ਤੋਂ ਬਿਨਾਂ ਫ਼ੋਨ ਦਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> <string name="policylab_wipeData_secondaryUser" msgid="8362863289455531813">"ਉਪਭੋਗਤਾ ਡਾਟਾ ਮਿਟਾਓ"</string> <string name="policydesc_wipeData_secondaryUser" product="tablet" msgid="6336255514635308054">"ਬਿਨਾਂ ਚਿਤਾਵਨੀ ਦੇ ਇਸ ਟੈਬਲੈੱਟ ਤੇ ਮੌਜੂਦ ਇਸ ਵਰਤੋਂਕਾਰ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> <string name="policydesc_wipeData_secondaryUser" product="tv" msgid="2086473496848351810">"ਬਿਨਾਂ ਚਿਤਾਵਨੀ ਦੇ ਇਸ TV ਤੇ ਮੌਜੂਦ ਇਸ ਉਪਭੋਗਤਾ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> - <string name="policydesc_wipeData_secondaryUser" product="default" msgid="6787904546711590238">"ਬਿਨਾਂ ਚਿਤਾਵਨੀ ਦੇ ਇਸ ਫੋਨ ਤੇ ਮੌਜੂਦ ਇਸ ਉਪਭੋਗਤਾ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> + <string name="policydesc_wipeData_secondaryUser" product="default" msgid="6787904546711590238">"ਬਿਨਾਂ ਚਿਤਾਵਨੀ ਦੇ ਇਸ ਫ਼ੋਨ ਤੇ ਮੌਜੂਦ ਇਸ ਵਰਤੋਂਕਾਰ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ।"</string> <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"ਡੀਵਾਈਸ ਗਲੋਬਲ ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰੋ"</string> <string name="policydesc_setGlobalProxy" msgid="8459859731153370499">"ਜਦੋਂ ਨੀਤੀ ਚਾਲੂ ਹੋਵੇ ਤਾਂ ਵਰਤੇ ਜਾਣ ਲਈ ਡੀਵਾਈਸ ਗਲੋਬਲ ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰੋ। ਕੇਵਲ ਡੀਵਾਈਸ ਮਾਲਕ ਗਲੋਬਲ ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰ ਸਕਦਾ ਹੈ।"</string> - <string name="policylab_expirePassword" msgid="5610055012328825874">"ਸਕ੍ਰੀਨ ਲੌਕ ਪਾਸਵਰਡ ਸਮਾਪਤੀ ਮਿਆਦ ਸੈੱਟ ਕਰੋ"</string> + <string name="policylab_expirePassword" msgid="5610055012328825874">"ਸਕ੍ਰੀਨ ਲਾਕ ਪਾਸਵਰਡ ਸਮਾਪਤੀ ਮਿਆਦ ਸੈੱਟ ਕਰੋ"</string> <string name="policydesc_expirePassword" msgid="5367525762204416046">"ਇਸ ਵਿੱਚ ਬਦਲਾਵ ਕਰੋ ਕਿ ਸਕ੍ਰੀਨ ਲਾਕ ਪਾਸਵਰਡ, ਪਿੰਨ ਜਾਂ ਪੈਟਰਨ ਨੂੰ ਕਿੰਨੀ ਵਾਰ ਬਦਲਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।"</string> <string name="policylab_encryptedStorage" msgid="8901326199909132915">"ਸਟੋਰੇਜ ਇਨਕ੍ਰਿਪਸ਼ਨ ਸੈੱਟ ਕਰੋ"</string> <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"ਲੋੜ ਹੈ ਕਿ ਸਟੋਰ ਕੀਤਾ ਐਪ ਡਾਟਾ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾਏ।"</string> @@ -587,30 +588,30 @@ <item msgid="1735177144948329370">"ਘਰ ਦੀ ਫੈਕਸ"</item> <item msgid="603878674477207394">"ਪੇਜਰ"</item> <item msgid="1650824275177931637">"ਹੋਰ"</item> - <item msgid="9192514806975898961">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</item> + <item msgid="9192514806975898961">"ਵਿਉਂਂਤੀ"</item> </string-array> <string-array name="emailAddressTypes"> <item msgid="8073994352956129127">"ਘਰ"</item> <item msgid="7084237356602625604">"ਕੰਮ"</item> <item msgid="1112044410659011023">"ਹੋਰ"</item> - <item msgid="2374913952870110618">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</item> + <item msgid="2374913952870110618">"ਵਿਉਂਂਤੀ"</item> </string-array> <string-array name="postalAddressTypes"> <item msgid="6880257626740047286">"ਘਰ"</item> <item msgid="5629153956045109251">"ਕੰਮ"</item> <item msgid="4966604264500343469">"ਹੋਰ"</item> - <item msgid="4932682847595299369">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</item> + <item msgid="4932682847595299369">"ਵਿਉਂਂਤੀ"</item> </string-array> <string-array name="imAddressTypes"> <item msgid="1738585194601476694">"ਘਰ"</item> <item msgid="1359644565647383708">"ਕੰਮ"</item> <item msgid="7868549401053615677">"ਹੋਰ"</item> - <item msgid="3145118944639869809">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</item> + <item msgid="3145118944639869809">"ਵਿਉਂਂਤੀ"</item> </string-array> <string-array name="organizationTypes"> <item msgid="7546335612189115615">"ਕੰਮ"</item> <item msgid="4378074129049520373">"ਹੋਰ"</item> - <item msgid="3455047468583965104">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</item> + <item msgid="3455047468583965104">"ਵਿਉਂਂਤੀ"</item> </string-array> <string-array name="imProtocols"> <item msgid="8595261363518459565">"AIM"</item> @@ -622,7 +623,7 @@ <item msgid="2506857312718630823">"ICQ"</item> <item msgid="1648797903785279353">"Jabber"</item> </string-array> - <string name="phoneTypeCustom" msgid="1644738059053355820">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="phoneTypeCustom" msgid="1644738059053355820">"ਵਿਉਂਂਤੀ"</string> <string name="phoneTypeHome" msgid="2570923463033985887">"ਘਰ"</string> <string name="phoneTypeMobile" msgid="6501463557754751037">"ਮੋਬਾਈਲ"</string> <string name="phoneTypeWork" msgid="8863939667059911633">"ਕੰਮ"</string> @@ -643,24 +644,24 @@ <string name="phoneTypeWorkPager" msgid="649938731231157056">"ਦਫ਼ਤਰ ਦਾ ਪੇਜਰ"</string> <string name="phoneTypeAssistant" msgid="5596772636128562884">"ਸਹਾਇਕ"</string> <string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string> - <string name="eventTypeCustom" msgid="7837586198458073404">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="eventTypeCustom" msgid="7837586198458073404">"ਵਿਉਂਂਤੀ"</string> <string name="eventTypeBirthday" msgid="2813379844211390740">"ਜਨਮਦਿਨ"</string> <string name="eventTypeAnniversary" msgid="3876779744518284000">"ਵਰ੍ਹੇਗੰਢ"</string> <string name="eventTypeOther" msgid="7388178939010143077">"ਹੋਰ"</string> - <string name="emailTypeCustom" msgid="8525960257804213846">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="emailTypeCustom" msgid="8525960257804213846">"ਵਿਉਂਂਤੀ"</string> <string name="emailTypeHome" msgid="449227236140433919">"ਘਰ"</string> <string name="emailTypeWork" msgid="3548058059601149973">"ਕੰਮ"</string> <string name="emailTypeOther" msgid="2923008695272639549">"ਹੋਰ"</string> <string name="emailTypeMobile" msgid="119919005321166205">"ਮੋਬਾਈਲ"</string> - <string name="postalTypeCustom" msgid="8903206903060479902">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="postalTypeCustom" msgid="8903206903060479902">"ਵਿਉਂਂਤੀ"</string> <string name="postalTypeHome" msgid="8165756977184483097">"ਘਰ"</string> <string name="postalTypeWork" msgid="5268172772387694495">"ਕੰਮ"</string> <string name="postalTypeOther" msgid="2726111966623584341">"ਹੋਰ"</string> - <string name="imTypeCustom" msgid="2074028755527826046">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="imTypeCustom" msgid="2074028755527826046">"ਵਿਉਂਂਤੀ"</string> <string name="imTypeHome" msgid="6241181032954263892">"ਘਰ"</string> <string name="imTypeWork" msgid="1371489290242433090">"ਕੰਮ"</string> <string name="imTypeOther" msgid="5377007495735915478">"ਹੋਰ"</string> - <string name="imProtocolCustom" msgid="6919453836618749992">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="imProtocolCustom" msgid="6919453836618749992">"ਵਿਉਂਂਤੀ"</string> <string name="imProtocolAim" msgid="7050360612368383417">"AIM"</string> <string name="imProtocolMsn" msgid="144556545420769442">"Windows Live"</string> <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string> @@ -672,8 +673,8 @@ <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string> <string name="orgTypeWork" msgid="29268870505363872">"ਕੰਮ"</string> <string name="orgTypeOther" msgid="3951781131570124082">"ਹੋਰ"</string> - <string name="orgTypeCustom" msgid="225523415372088322">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> - <string name="relationTypeCustom" msgid="3542403679827297300">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="orgTypeCustom" msgid="225523415372088322">"ਵਿਉਂਂਤੀ"</string> + <string name="relationTypeCustom" msgid="3542403679827297300">"ਵਿਉਂਂਤੀ"</string> <string name="relationTypeAssistant" msgid="6274334825195379076">"ਸਹਾਇਕ"</string> <string name="relationTypeBrother" msgid="8757913506784067713">"ਭਰਾ"</string> <string name="relationTypeChild" msgid="1890746277276881626">"ਬੱਚਾ"</string> @@ -688,7 +689,7 @@ <string name="relationTypeRelative" msgid="1799819930085610271">"ਰਿਸ਼ਤੇਦਾਰ"</string> <string name="relationTypeSister" msgid="1735983554479076481">"ਭੈਣ"</string> <string name="relationTypeSpouse" msgid="394136939428698117">"ਜੀਵਨਸਾਥੀ"</string> - <string name="sipAddressTypeCustom" msgid="2473580593111590945">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string> + <string name="sipAddressTypeCustom" msgid="2473580593111590945">"ਵਿਉਂਂਤੀ"</string> <string name="sipAddressTypeHome" msgid="6093598181069359295">"ਘਰ"</string> <string name="sipAddressTypeWork" msgid="6920725730797099047">"ਕੰਮ"</string> <string name="sipAddressTypeOther" msgid="4408436162950119849">"ਹੋਰ"</string> @@ -698,31 +699,31 @@ <string name="keyguard_password_enter_puk_prompt" msgid="1341112146710087048">"PUK ਕੋਡ"</string> <string name="keyguard_password_enter_pin_prompt" msgid="8027680321614196258">"ਨਵਾਂ ਪਿੰਨ ਕੋਡ"</string> <string name="keyguard_password_entry_touch_hint" msgid="2644215452200037944"><font size="17">"ਪਾਸਵਰਡ ਟਾਈਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</font></string> - <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਟਾਈਪ ਕਰੋ"</string> + <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਟਾਈਪ ਕਰੋ"</string> <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਪਿੰਨ ਟਾਈਪ ਕਰੋ"</string> <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"ਗਲਤ ਪਿੰਨ ਕੋਡ।"</string> - <string name="keyguard_label_text" msgid="861796461028298424">"ਅਨਲੌਕ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਮੀਨੂ ਫਿਰ 0 ਦਬਾਓ।"</string> + <string name="keyguard_label_text" msgid="861796461028298424">"ਅਣਲਾਕ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਮੀਨੂ ਫਿਰ 0 ਦਬਾਓ।"</string> <string name="emergency_call_dialog_number_for_display" msgid="696192103195090970">"ਐਮਰਜੈਂਸੀ ਨੰਬਰ"</string> <string name="lockscreen_carrier_default" msgid="6169005837238288522">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ"</string> <string name="lockscreen_screen_locked" msgid="7288443074806832904">"ਸਕ੍ਰੀਨ ਲੌਕ ਕੀਤੀ।"</string> <string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਮੀਨੂ ਦਬਾਓ ਜਾਂ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਕਰੋ।"</string> - <string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਮੀਨੂ ਦਬਾਓ।"</string> - <string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਪੈਟਰਨ ਡ੍ਰਾ ਕਰੋ"</string> + <string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਮੀਨੂ ਦਬਾਓ।"</string> + <string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਪੈਟਰਨ ਡ੍ਰਾ ਕਰੋ"</string> <string name="lockscreen_emergency_call" msgid="5298642613417801888">"ਸੰਕਟਕਾਲ"</string> <string name="lockscreen_return_to_call" msgid="5244259785500040021">"ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string> <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ਸਹੀ!"</string> <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> <string name="lockscreen_password_wrong" msgid="5737815393253165301">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> - <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਡੈਟੇ ਲਈ ਅਨਲੌਕ ਕਰੋ"</string> - <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ਅਧਿਕਤਮ ਚਿਹਰਾ ਅਨਲੌਕ ਕੋਸ਼ਿਸ਼ਾਂ ਵਧੀਆਂ"</string> + <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਡਾਟੇ ਲਈ ਅਣਲਾਕ ਕਰੋ"</string> + <string name="faceunlock_multiple_failures" msgid="754137583022792429">"ਅਧਿਕਤਮ ਚਿਹਰਾ ਅਣਲਾਕ ਕੋਸ਼ਿਸ਼ਾਂ ਵਧੀਆਂ"</string> <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ"</string> <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ਟੈਬਲੈੱਟ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ ਹੈ।"</string> <string name="lockscreen_missing_sim_message" product="tv" msgid="1943633865476989599">"TV ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ।"</string> - <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ਫੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ।"</string> + <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ਫ਼ੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ।"</string> <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string> <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM ਕਾਰਡ ਲੁਪਤ ਹੈ ਜਾਂ ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ ਹੈ। ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string> <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ਨਾਵਰਤਣਯੋਗ SIM ਕਾਰਡ।"</string> - <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ਤੁਹਾਡਾ SIM ਕਾਰਡ ਸਥਾਈ ਤੌਰ ਤੇ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।\n ਦੂਜੇ SIM ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈਸ ਸੇਵਾ ਪ੍ਰਦਾਤਾ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> + <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ਤੁਹਾਡਾ ਸਿਮ ਕਾਰਡ ਸਥਾਈ ਤੌਰ \'ਤੇ ਅਯੋਗ ਬਣਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।\n ਇੱਕ ਹੋਰ ਸਿਮ ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈੱਸ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"ਪਿਛਲਾ ਟਰੈਕ"</string> <string name="lockscreen_transport_next_description" msgid="573285210424377338">"ਅਗਲਾ ਟਰੈਕ"</string> <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ਰੋਕੋ"</string> @@ -736,12 +737,12 @@ <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"ਉਪਭੋਗਤਾ ਗਾਈਡ ਦੇਖੋ ਜਾਂ ਗਾਹਕ ਸੇਵਾ ਨੂੰ ਫੋਨ ਕਰੋ।"</string> <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM ਕਾਰਡ ਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string> <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"SIM ਕਾਰਡ ਅਨਲੌਕ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ।\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"ਤੁਸੀਂ ਆਪਣਾ ਪਿੰਨ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨ-ਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਟੈਬਲੈੱਟ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ। \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ TV ਅਨਲੌਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫੋਨ ਅਨਲੌਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨ-ਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣੀ ਟੈਬਲੈੱਟ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ। \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨ-ਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਟੀਵੀ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਆਪਣਾ Google ਸਾਈਨਇਨ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਵੇਗਾ।"</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="950408382418270260">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੀਵੀ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਟੀਵੀ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਫ਼ੋਨ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string> @@ -756,10 +757,10 @@ <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"ਵਰਤੋਂਕਾਰ ਨਾਮ (ਈਮੇਲ)"</string> <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"ਪਾਸਵਰਡ"</string> <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"ਸਾਈਨ-ਇਨ ਕਰੋ"</string> - <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"ਅਪ੍ਰਮਾਣਿਕ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string> + <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"ਅਵੈਧ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string> <string name="lockscreen_glogin_account_recovery_hint" msgid="1696924763690379073">"ਕੀ ਤੁਸੀਂ ਆਪਣਾ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ ਹੋ?\n"<b>"google.com/accounts/recovery"</b>" ਤੇ ਜਾਓ।"</string> <string name="lockscreen_glogin_checking_password" msgid="7114627351286933867">"ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ..."</string> - <string name="lockscreen_unlock_label" msgid="737440483220667054">"ਅਨਲੌਕ ਕਰੋ"</string> + <string name="lockscreen_unlock_label" msgid="737440483220667054">"ਅਣਲਾਕ ਕਰੋ"</string> <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"ਅਵਾਜ਼ ਚਾਲੂ"</string> <string name="lockscreen_sound_off_label" msgid="996822825154319026">"ਅਵਾਜ਼ ਬੰਦ"</string> <string name="lockscreen_access_pattern_start" msgid="3941045502933142847">"ਪੈਟਰਨ ਚਾਲੂ ਕੀਤਾ"</string> @@ -769,10 +770,10 @@ <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"ਪੈਟਰਨ ਪੂਰਾ ਕੀਤਾ"</string> <string name="lockscreen_access_pattern_area" msgid="400813207572953209">"ਪੈਟਰਨ ਖੇਤਰ।"</string> <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s। %3$d ਦਾ ਵਿਜੇਟ %2$d।"</string> - <string name="keyguard_accessibility_add_widget" msgid="8273277058724924654">"ਵਿਜੇਟ ਜੋੜੋ।"</string> + <string name="keyguard_accessibility_add_widget" msgid="8273277058724924654">"ਵਿਜੇਟ ਸ਼ਾਮਲ ਕਰੋ।"</string> <string name="keyguard_accessibility_widget_empty_slot" msgid="1281505703307930757">"ਖਾਲੀ"</string> - <string name="keyguard_accessibility_unlock_area_expanded" msgid="2278106022311170299">"ਅਨਲੌਕ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕੀਤਾ।"</string> - <string name="keyguard_accessibility_unlock_area_collapsed" msgid="6366992066936076396">"ਅਨਲੌਕ ਖੇਤਰ ਨਸ਼ਟ ਕੀਤਾ।"</string> + <string name="keyguard_accessibility_unlock_area_expanded" msgid="2278106022311170299">"ਅਣਲਾਕ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕੀਤਾ।"</string> + <string name="keyguard_accessibility_unlock_area_collapsed" msgid="6366992066936076396">"ਅਣਲਾਕ ਖੇਤਰ ਨਸ਼ਟ ਕੀਤਾ।"</string> <string name="keyguard_accessibility_widget" msgid="6527131039741808240">"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g> ਵਿਜੇਟ।"</string> <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"ਉਪਭੋਗਤਾ ਚੋਣਕਾਰ"</string> <string name="keyguard_accessibility_status" msgid="8008264603935930611">"ਅਵਸਥਾ"</string> @@ -781,12 +782,12 @@ <string name="keyguard_accessibility_widget_reorder_start" msgid="8736853615588828197">"ਵਿਜੇਟ ਨੂੰ ਪੁਨਰ ਤਰਤੀਬ ਦੇਣਾ ਸ਼ੁਰੂ ਹੋਇਆ।"</string> <string name="keyguard_accessibility_widget_reorder_end" msgid="7170190950870468320">"ਵਿਜੇਟ ਨੂੰ ਪੁਨਰ ਤਰਤੀਬ ਦੇਣਾ ਖ਼ਤਮ ਹੋਇਆ।"</string> <string name="keyguard_accessibility_widget_deleted" msgid="4426204263929224434">"ਵਿਜੇਟ <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> ਮਿਟਾਇਆ।"</string> - <string name="keyguard_accessibility_expand_lock_area" msgid="519859720934178024">"ਅਨਲੌਕ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕਰੋ।"</string> - <string name="keyguard_accessibility_slide_unlock" msgid="2959928478764697254">"ਅਨਲੌਕ ਸਲਾਈਡ ਕਰੋ।"</string> - <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ਪੈਟਰਨ ਅਨਲੌਕ।"</string> - <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"ਚਿਹਰਾ ਅਨਲੌਕ।"</string> + <string name="keyguard_accessibility_expand_lock_area" msgid="519859720934178024">"ਅਣਲਾਕ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕਰੋ।"</string> + <string name="keyguard_accessibility_slide_unlock" msgid="2959928478764697254">"ਅਣਲਾਕ ਸਲਾਈਡ ਕਰੋ।"</string> + <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"ਪੈਟਰਨ ਅਣਲਾਕ।"</string> + <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"ਚਿਹਰਾ ਅਣਲਾਕ।"</string> <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"ਪਿੰਨ ਅਣਲਾਕ।"</string> - <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ਪਾਸਵਰਡ ਅਨਲੌਕ।"</string> + <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"ਪਾਸਵਰਡ ਅਣਲਾਕ।"</string> <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"ਪੈਟਰਨ ਖੇਤਰ।"</string> <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"ਖੇਤਰ ਸਲਾਈਡ ਕਰੋ।"</string> <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string> @@ -797,15 +798,15 @@ <string name="granularity_label_link" msgid="5815508880782488267">"ਲਿੰਕ"</string> <string name="granularity_label_line" msgid="5764267235026120888">"ਲਾਈਨ"</string> <string name="factorytest_failed" msgid="5410270329114212041">"ਫੈਕਟਰੀ ਜਾਂਚ ਅਸਫਲ"</string> - <string name="factorytest_not_system" msgid="4435201656767276723">"FACTORY_TEST ਕਿਰਿਆ ਕੇਵਲ /ਸਿਸਟਮ/ਐਪ ਵਿੱਚ ਇੰਸਟੌਲ ਕੀਤੇ ਪੈਕੇਜਾਂ ਲਈ ਸਮਰਥਿਤ ਹੈ।"</string> - <string name="factorytest_no_action" msgid="872991874799998561">"ਅਜਿਹਾ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਮਿਲਿਆ ਜੋ FACTORY_TEST ਕਿਰਿਆ ਮੁਹੱਈਆ ਕਰਦਾ ਹੈ।"</string> + <string name="factorytest_not_system" msgid="4435201656767276723">"FACTORY_TEST ਕਾਰਵਾਈ ਕੇਵਲ /ਸਿਸਟਮ/ਐਪ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੇ ਪੈਕੇਜਾਂ ਲਈ ਸਮਰਥਿਤ ਹੈ।"</string> + <string name="factorytest_no_action" msgid="872991874799998561">"ਅਜਿਹਾ ਕੋਈ ਪੈਕੇਜ ਨਹੀਂ ਮਿਲਿਆ ਜੋ FACTORY_TEST ਕਾਰਵਾਈ ਮੁਹੱਈਆ ਕਰਦਾ ਹੈ।"</string> <string name="factorytest_reboot" msgid="6320168203050791643">"ਰੀਬੂਟ ਕਰੋ"</string> <string name="js_dialog_title" msgid="1987483977834603872">"\"<xliff:g id="TITLE">%s</xliff:g>\" ਤੇ ਸਫ਼ੇ ਦੇ ਮੁਤਾਬਕ:"</string> <string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string> <string name="js_dialog_before_unload_title" msgid="2619376555525116593">"ਨੈਵੀਗੇਸ਼ਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string> <string name="js_dialog_before_unload_positive_button" msgid="3112752010600484130">"ਇਹ ਸਫ਼ਾ ਛੱਡੋ"</string> <string name="js_dialog_before_unload_negative_button" msgid="5614861293026099715">"ਇਸ ਸ਼ਫ਼ੇ ਤੇ ਰਹੋ"</string> - <string name="js_dialog_before_unload" msgid="3468816357095378590">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ ਤੇ ਇਸ ਪੇਜ ਤੋਂ ਦੂਰ ਨੈਵੀਗੇਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string> + <string name="js_dialog_before_unload" msgid="3468816357095378590">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ ਤੇ ਇਸ ਪੇਜ ਤੋਂ ਦੂਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?"</string> <string name="save_password_label" msgid="6860261758665825069">"ਪੁਸ਼ਟੀ ਕਰੋ"</string> <string name="double_tap_toast" msgid="4595046515400268881">"ਨੁਕਤਾ: ਜ਼ੂਮ ਵਧਾਉਣ ਅਤੇ ਘਟਾਉਣ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string> <string name="autofill_this_form" msgid="4616758841157816676">"ਆਟੋਫਿਲ"</string> @@ -834,8 +835,8 @@ <string name="permdesc_writeHistoryBookmarks" product="default" msgid="8497389531014185509">"ਐਪ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਇਤਿਹਾਸ ਅਤੇ ਤੁਹਾਡੇ ਫ਼ੋਨ ਤੇ ਸਟੋਰ ਕੀਤੇ ਬੁੱਕਮਾਰਕਾਂ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਐਪ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਡਾਟਾ ਮਿਟਾਉਣ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ। ਨੋਟ: ਇਹ ਅਨੁਮਤੀ ਤੀਜੀ-ਪਾਰਟੀ ਬ੍ਰਾਊਜ਼ਰਾਂ ਜਾਂ ਵੈੱਬ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਮਰੱਥਤਾਵਂ ਵਾਲੀਆਂ ਹੋਰਾਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵੱਲੋਂ ਲਾਗੂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string> <string name="permlab_setAlarm" msgid="1379294556362091814">"ਇੱਕ ਅਲਾਰਮ ਸੈੱਟ ਕਰੋ"</string> <string name="permdesc_setAlarm" msgid="316392039157473848">"ਐਪ ਨੂੰ ਇੱਕ ਇੰਸਟੌਲ ਕੀਤੀ ਅਲਾਰਮ ਘੜੀ ਐਪ ਵਿੱਚ ਇੱਕ ਅਲਾਰਮ ਸੈਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਕੁਝ ਅਲਾਰਮ ਘੜੀ ਐਪਲ ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਲਾਗੂ ਨਹੀਂ ਵੀ ਕਰ ਸਕਦੇ।"</string> - <string name="permlab_addVoicemail" msgid="5525660026090959044">"ਵੌਇਸਮੇਲ ਜੋੜੋ"</string> - <string name="permdesc_addVoicemail" msgid="6604508651428252437">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਵੌਇਸਮੇਲ ਇਨਬੌਕਸ ਵਿੱਚ ਸੁਨੇਹੇ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permlab_addVoicemail" msgid="5525660026090959044">"ਵੌਇਸਮੇਲ ਸ਼ਾਮਲ ਕਰੋ"</string> + <string name="permdesc_addVoicemail" msgid="6604508651428252437">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਵੌਇਸਮੇਲ ਇਨਬਾਕਸ ਵਿੱਚ ਸੁਨੇਹੇ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_writeGeolocationPermissions" msgid="5962224158955273932">"ਬ੍ਰਾਊਜ਼ਰ ਜਿਓਲੋਕੇਸ਼ਨ ਇਜਾਜ਼ਤਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string> <string name="permdesc_writeGeolocationPermissions" msgid="1083743234522638747">"ਐਪ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਦੀਆਂ ਜਿਓਲੋਕੇਸ਼ਨ ਅਨੁਮਤੀਆਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਖਰਾਬ ਐਪਾਂ ਇਸਦੀ ਵਰਤੋਂ ਆਰਬਿਟਰੇਰੀ ਵੈੱਬ ਸਾਈਟਾਂ ਨੂੰ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦੇਣ ਲਈ ਕਰ ਸਕਦੇ ਹਨ।"</string> <string name="save_password_message" msgid="767344687139195790">"ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਬ੍ਰਾਊਜ਼ਰ ਇਹ ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੇ?"</string> @@ -858,7 +859,7 @@ <string name="searchview_description_voice" msgid="2453203695674994440">"ਵੌਇਸ ਖੋਜ"</string> <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"ਕੀ ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string> <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> \'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ\' ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਾ ਚਾਹੁੰਦੀ ਹੈ। ਜਦੋਂ \'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ\' ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਬਾਰੇ ਵੇਰਵੇ ਸੁਣ ਜਾਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੀ ਉਂਗਲੀ ਦੇ ਹੇਠਾਂ ਕੀ ਹੈ ਜਾਂ ਟੈਬਲੈੱਟ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਸੰਕੇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰ ਸਕਦੇ ਹੋ।"</string> - <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਬਾਰੇ ਵੇਰਵੇ ਸੁਣ ਜਾਂ ਦੇਖ ਸਕਦੇ ਹੋ ਤਿ ਤੁਹਾਡੀ ਉਂਗਲੀ ਦੇ ਹੇਠਾਂ ਕੀ ਹੈ ਜਾਂ ਫ਼ੋਨ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਸੰਕੇਤ ਪਰਫੌਰਮ ਕਰ ਸਕਦੇ ਹੋ।"</string> + <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ਸਪਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਸਪਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਬਾਰੇ ਵੇਰਵੇ ਸੁਣ ਜਾਂ ਦੇਖ ਸਕਦੇ ਹੋ ਤਿ ਤੁਹਾਡੀ ਉਂਗਲੀ ਦੇ ਹੇਠਾਂ ਕੀ ਹੈ ਜਾਂ ਫ਼ੋਨ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਸੰਕੇਤ ਪਰਫੌਰਮ ਕਰ ਸਕਦੇ ਹੋ।"</string> <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 ਮਹੀਨੇ ਪਹਿਲਾਂ"</string> <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"1 ਮਹੀਨਾ ਪਹਿਲਾਂ ਤੋਂ ਪਹਿਲਾਂ"</string> <plurals name="last_num_days" formatted="false" msgid="5104533550723932025"> @@ -948,7 +949,7 @@ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ਸਾਲ ਵਿੱਚ</item> </plurals> <string name="VideoView_error_title" msgid="3534509135438353077">"ਵੀਡੀਓ ਸਮੱਸਿਆ"</string> - <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"ਇਹ ਵੀਡੀਓ ਇਸ ਡੀਵਾਈਸ ਤੇ ਸਟ੍ਰੀਮਿੰਗ ਲਈ ਵੈਧ ਨਹੀਂ ਹੈ।"</string> + <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"ਇਹ ਵੀਡੀਓ ਇਸ ਡੀਵਾਈਸ ਤੇ ਸਟ੍ਰੀਮਿੰਗ ਲਈ ਪ੍ਰਮਾਣਕ ਨਹੀਂ ਹੈ।"</string> <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"ਇਹ ਵੀਡੀਓ ਪਲੇ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string> <string name="VideoView_error_button" msgid="2822238215100679592">"ਠੀਕ"</string> <string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string> @@ -972,7 +973,7 @@ <string name="redo" msgid="7759464876566803888">"ਮੁੜ-ਓਹੀ ਕਰੋ"</string> <string name="autofill" msgid="3035779615680565188">"ਆਟੋਫਿਲ"</string> <string name="textSelectionCABTitle" msgid="5236850394370820357">"ਟੈਕਸਟ ਚੋਣ"</string> - <string name="addToDictionary" msgid="4352161534510057874">"ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਜੋੜੋ"</string> + <string name="addToDictionary" msgid="4352161534510057874">"ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="deleteText" msgid="6979668428458199034">"ਮਿਟਾਓ"</string> <string name="inputMethod" msgid="1653630062304567879">"ਇਨਪੁੱਟ ਵਿਧੀ"</string> <string name="editTextMenuTitle" msgid="4909135564941815494">"ਟੈਕਸਟ ਕਿਰਿਆਵਾਂ"</string> @@ -980,9 +981,9 @@ <string name="dial" msgid="4204975095406423102">"ਫ਼ੋਨ ਕਰੋ"</string> <string name="map" msgid="6068210738233985748">"ਨਕਸ਼ੇ"</string> <string name="browse" msgid="6993590095938149861">"ਬ੍ਰਾਊਜ਼ਰ"</string> - <string name="low_internal_storage_view_title" msgid="5576272496365684834">"ਸਟੋਰੇਜ ਸਪੇਸ ਖ਼ਤਮ ਹੋ ਰਿਹਾ ਹੈ"</string> + <string name="low_internal_storage_view_title" msgid="5576272496365684834">"ਸਟੋਰੇਜ ਦੀ ਜਗ੍ਹਾ ਖਤਮ ਹੋ ਰਹੀ ਹੈ"</string> <string name="low_internal_storage_view_text" msgid="6640505817617414371">"ਕੁਝ ਸਿਸਟਮ ਫੰਕਸ਼ਨ ਕੰਮ ਨਹੀਂ ਵੀ ਕਰ ਸਕਦੇ"</string> - <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ਸਿਸਟਮ ਲਈ ਪੂਰੀ ਸਟੋਰੇਜ ਨਹੀਂ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ 250MB ਖਾਲੀ ਸਪੇਸ ਹੈ ਅਤੇ ਰੀਸਟਾਰਟ ਕਰੋ।"</string> + <string name="low_internal_storage_view_text_no_boot" msgid="6935190099204693424">"ਸਿਸਟਮ ਲਈ ਲੋੜੀਂਦੀ ਸਟੋਰੇਜ ਨਹੀਂ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ 250MB ਖਾਲੀ ਜਗ੍ਹਾ ਹੈ ਅਤੇ ਮੁੜ-ਚਾਲੂ ਕਰੋ।"</string> <string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਚੱਲ ਰਿਹਾ ਹੈ"</string> <string name="app_running_notification_text" msgid="1197581823314971177">"ਹੋਰ ਜਾਣਕਾਰੀ ਜਾਂ ਐਪ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="ok" msgid="5970060430562524910">"ਠੀਕ"</string> @@ -993,14 +994,14 @@ <string name="loading" msgid="7933681260296021180">"ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..."</string> <string name="capital_on" msgid="1544682755514494298">"ਚਾਲੂ"</string> <string name="capital_off" msgid="6815870386972805832">"ਬੰਦ"</string> - <string name="whichApplication" msgid="4533185947064773386">"ਇਸਨੂੰ ਵਰਤਦੇ ਹੋਏ ਕਿਰਿਆ ਪੂਰੀ ਕਰੋ"</string> - <string name="whichApplicationNamed" msgid="8260158865936942783">"%1$s ਵਰਤਦੇ ਹੋਏ ਕਿਰਿਆ ਪੂਰੀ ਕਰੋ"</string> + <string name="whichApplication" msgid="4533185947064773386">"ਇਸਨੂੰ ਵਰਤਦੇ ਹੋਏ ਕਾਰਵਾਈ ਪੂਰੀ ਕਰੋ"</string> + <string name="whichApplicationNamed" msgid="8260158865936942783">"%1$s ਵਰਤਦੇ ਹੋਏ ਕਾਰਵਾਈ ਪੂਰੀ ਕਰੋ"</string> <string name="whichApplicationLabel" msgid="7425855495383818784">"ਕਾਰਵਾਈ ਪੂਰੀ ਕਰੋ"</string> <string name="whichViewApplication" msgid="3272778576700572102">"ਨਾਲ ਖੋਲ੍ਹੋ"</string> <string name="whichViewApplicationNamed" msgid="2286418824011249620">"%1$s ਨਾਲ ਖੋਲ੍ਹੋ"</string> <string name="whichViewApplicationLabel" msgid="2666774233008808473">"ਖੋਲ੍ਹੋ"</string> - <string name="whichEditApplication" msgid="144727838241402655">"ਨਾਲ ਸੰਪਾਦਿਤ ਕਰੋ"</string> - <string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ਨਾਲ ਸੰਪਾਦਿਤ ਕਰੋ"</string> + <string name="whichEditApplication" msgid="144727838241402655">"ਇਸ ਨਾਲ ਸੰਪਾਦਨ ਕਰੋ"</string> + <string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s ਨਾਲ ਸੰਪਾਦਨ ਕਰੋ"</string> <string name="whichEditApplicationLabel" msgid="7183524181625290300">"ਸੰਪਾਦਨ ਕਰੋ"</string> <string name="whichSendApplication" msgid="6902512414057341668">"ਇਸ ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string> <string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string> @@ -1014,12 +1015,12 @@ <string name="whichImageCaptureApplication" msgid="3680261417470652882">"ਇਸ ਨਾਲ ਚਿਤਰ ਕੈਪਚਰ ਕਰੋ"</string> <string name="whichImageCaptureApplicationNamed" msgid="8619384150737825003">"%1$s ਨਾਲ ਚਿਤਰ ਕੈਪਚਰ ਕਰੋ"</string> <string name="whichImageCaptureApplicationLabel" msgid="6390303445371527066">"ਚਿਤਰ ਕੈਪਚਰ ਕਰੋ"</string> - <string name="alwaysUse" msgid="4583018368000610438">"ਇਸ ਕਾਰਵਾਈ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੌਰ \'ਤੇ ਵਰਤੋ।"</string> + <string name="alwaysUse" msgid="4583018368000610438">"ਇਸ ਕਾਰਵਾਈ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਵਰਤੋ।"</string> <string name="use_a_different_app" msgid="8134926230585710243">"ਇੱਕ ਵੱਖਰਾ ਖਾਤਾ ਵਰਤੋ"</string> <string name="clearDefaultHintMsg" msgid="3252584689512077257">"ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ > ਐਪਾਂ > ਡਾਊਨਲੋਡ ਕੀਤਿਆਂ ਵਿੱਚ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਹਟਾਓ।"</string> - <string name="chooseActivity" msgid="7486876147751803333">"ਇੱਕ ਕਿਰਿਆ ਚੁਣੋ"</string> + <string name="chooseActivity" msgid="7486876147751803333">"ਇੱਕ ਕਾਰਵਾਈ ਚੁਣੋ"</string> <string name="chooseUsbActivity" msgid="6894748416073583509">"USB ਡੀਵਾਈਸ ਲਈ ਇੱਕ ਐਪ ਚੁਣੋ"</string> - <string name="noApplications" msgid="2991814273936504689">"ਕੋਈ ਐਪਸ ਇਸ ਕਿਰਿਆ ਨੂੰ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string> + <string name="noApplications" msgid="2991814273936504689">"ਕੋਈ ਐਪਾਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ।"</string> <string name="aerr_application" msgid="250320989337856518">"<xliff:g id="APPLICATION">%1$s</xliff:g> ਰੁਕ ਗਈ ਹੈ"</string> <string name="aerr_process" msgid="6201597323218674729">"<xliff:g id="PROCESS">%1$s</xliff:g> ਰੁਕ ਗਿਆ ਹੈ"</string> <string name="aerr_application_repeated" msgid="3146328699537439573">"<xliff:g id="APPLICATION">%1$s</xliff:g> ਵਾਰ-ਵਾਰ ਰੁਕ ਰਹੀ ਹੈ"</string> @@ -1051,7 +1052,7 @@ <string name="smv_process" msgid="5120397012047462446">"ਪ੍ਰਕਿਰਿਆ <xliff:g id="PROCESS">%1$s</xliff:g> ਨੇ ਆਪਣੀ ਖੁਦ-ਲਾਗੂ ਕੀਤੀ ਸਟ੍ਰਿਕਟਮੋਡ ਨੀਤੀ ਦੀ ਉਲੰਘਣਾ ਕੀਤੀ ਹੈ।"</string> <string name="android_upgrading_title" msgid="1584192285441405746">"Android ਅਪਗ੍ਰੇਡ ਕਰ ਰਿਹਾ ਹੈ…"</string> <string name="android_start_title" msgid="8418054686415318207">"Android ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ਸਟੋਰੇਜ ਅਨੁਕੂਲ ਕਰ ਰਿਹਾ ਹੈ।"</string> + <string name="android_upgrading_fstrim" msgid="8036718871534640010">"ਸਟੋਰੇਜ ਅਨੁਕੂਲ ਹੋ ਰਹੀ ਹੈ।"</string> <string name="android_upgrading_notification_title" msgid="8428357096969413169">"Android ਅੱਪਡੇਟ ਮੁਕੰਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> <string name="android_upgrading_notification_body" msgid="5761201379457064286">"ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਐਪਾਂ ਅੱਪਗ੍ਰੇਡ ਪੂਰਾ ਹੋਣ ਤੱਕ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਾ ਕਰਨ"</string> <string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ਅੱਪਗ੍ਰੇਡ ਹੋ ਰਹੀ ਹੈ…"</string> @@ -1070,8 +1071,8 @@ <string name="dump_heap_notification" msgid="2618183274836056542">"<xliff:g id="PROC">%1$s</xliff:g> ਦੀ ਮੈਮਰੀ ਸੀਮਾ ਵਧ ਗਈ ਹੈ"</string> <string name="dump_heap_notification_detail" msgid="6901391084243999274">"ਹੀਪ ਡੰਪ ਇਕੱਤਰ ਕੀਤਾ ਗਿਆ; ਸਾਂਝਾ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="dump_heap_title" msgid="5864292264307651673">"ਕੀ ਹੀਪ ਡੰਪ ਸ਼ੇਅਰ ਕਰਨਾ ਹੈ?"</string> - <string name="dump_heap_text" msgid="4809417337240334941">"ਪ੍ਰਕਿਰਿਆ <xliff:g id="PROC">%1$s</xliff:g> ਦੀ ਆਪਣੀ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਸੀਮਾ <xliff:g id="SIZE">%2$s</xliff:g> ਵਧ ਗਈ ਹੈ। ਇਸਦੇ ਵਿਕਾਸਕਾਰ ਨਾਲ ਸਾਂਂਝਾ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਲਈ ਇੱਕ ਹੀਪ ਡੰਪ ਉਪਲਬਧ ਹੈ। ਸਾਵਧਾਨ ਰਹੋ: ਇਸ ਹੀਪ ਡੰਪ ਵਿੱਚ ਤੁਹਾਡੀ ਕੋਈ ਵੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਪਹੁੰਚ ਹੈ।"</string> - <string name="sendText" msgid="5209874571959469142">"ਟੈਕਸਟ ਲਈ ਇੱਕ ਕਿਰਿਆ ਚੁਣੋ"</string> + <string name="dump_heap_text" msgid="4809417337240334941">"ਪ੍ਰਕਿਰਿਆ <xliff:g id="PROC">%1$s</xliff:g> ਦੀ ਆਪਣੀ ਪ੍ਰਕਿਰਿਆ ਮੈਮਰੀ ਸੀਮਾ <xliff:g id="SIZE">%2$s</xliff:g> ਵਧ ਗਈ ਹੈ। ਇਸਦੇ ਵਿਕਾਸਕਾਰ ਨਾਲ ਸਾਂਝਾ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਲਈ ਇੱਕ ਹੀਪ ਡੰਪ ਉਪਲਬਧ ਹੈ। ਸਾਵਧਾਨ ਰਹੋ: ਇਸ ਹੀਪ ਡੰਪ ਵਿੱਚ ਤੁਹਾਡੀ ਕੋਈ ਵੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ \'ਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਪਹੁੰਚ ਹੈ।"</string> + <string name="sendText" msgid="5209874571959469142">"ਲਿਖਤ ਲਈ ਕੋਈ ਕਾਰਵਾਈ ਚੁਣੋ"</string> <string name="volume_ringtone" msgid="6885421406845734650">"ਰਿੰਗਰ ਵੌਲਿਊਮ"</string> <string name="volume_music" msgid="5421651157138628171">"ਮੀਡੀਆ ਵੌਲਿਊਮ"</string> <string name="volume_music_hint_playing_through_bluetooth" msgid="9165984379394601533">"Bluetooth ਰਾਹੀਂ ਪਲੇ ਕਰ ਰਿਹਾ ਹੈ"</string> @@ -1166,7 +1167,7 @@ <string name="sim_added_title" msgid="3719670512889674693">"SIM ਕਾਰਡ ਜੋੜਿਆ ਗਿਆ"</string> <string name="sim_added_message" msgid="6599945301141050216">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਤੱਕ ਪਹੁੰਚ ਲਈ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮੁੜ-ਚਾਲੂ ਕਰੋ।"</string> <string name="sim_restart_button" msgid="4722407842815232347">"ਰੀਸਟਾਰਟ ਕਰੋ"</string> - <string name="carrier_app_dialog_message" msgid="7066156088266319533">"ਤੁਹਾਡੀ ਨਵੀਂ SIM ਦੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਤੋਂ ਇੱਕ ਐਪ ਸਥਾਪਤ ਕਰਨ ਅਤੇ ਖੋਲ੍ਹਣ ਦੀ ਲੋੜ ਪਵੇਗੀ।"</string> + <string name="carrier_app_dialog_message" msgid="7066156088266319533">"ਤੁਹਾਡੀ ਨਵੀਂ ਸਿਮ ਦੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਤੋਂ ਇੱਕ ਐਪ ਸਥਾਪਤ ਕਰਨ ਅਤੇ ਖੋਲ੍ਹਣ ਦੀ ਲੋੜ ਪਵੇਗੀ।"</string> <string name="carrier_app_dialog_button" msgid="7900235513678617329">"ਐਪ ਪ੍ਰਾਪਤ ਕਰੋ"</string> <string name="carrier_app_dialog_not_now" msgid="6361378684292268027">"ਅਜੇ ਨਹੀਂ"</string> <string name="carrier_app_notification_title" msgid="8921767385872554621">"ਨਵੀਂ SIM ਦਾਖਲ ਕੀਤੀ ਗਈ"</string> @@ -1188,14 +1189,14 @@ <string name="usb_accessory_notification_title" msgid="7848236974087653666">"ਇੱਕ USB ਐਕਸੈਸਰੀ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="usb_notification_message" msgid="3370903770828407960">"ਹੋਰ ਵਿਕਲਪਾਂ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="usb_unsupported_audio_accessory_title" msgid="3529881374464628084">"ਐਨਾਲੌਗ ਆਡੀਓ ਉਪਸਾਧਨ ਦਾ ਪਤਾ ਲੱਗਿਆ"</string> - <string name="usb_unsupported_audio_accessory_message" msgid="6309553946441565215">"ਨੱਥੀ ਕੀਤੀ ਡੀਵਾਈਸ ਇਸ ਫ਼ੋਨ ਦੇ ਅਨੁਰੂਪ ਨਹੀਂ ਹੈ। ਹੋਰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ।"</string> + <string name="usb_unsupported_audio_accessory_message" msgid="6309553946441565215">"ਨੱਥੀ ਕੀਤਾ ਡੀਵਾਈਸ ਇਸ ਫ਼ੋਨ ਦੇ ਅਨੁਰੂਪ ਨਹੀਂ ਹੈ। ਹੋਰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="adb_active_notification_title" msgid="6729044778949189918">"USB ਡੀਬਗਿੰਗ ਕਨੈਕਟ ਕੀਤੀ"</string> <string name="adb_active_notification_message" msgid="4948470599328424059">"USB ਡੀਬੱਗਿੰਗ ਬੰਦ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="adb_active_notification_message" product="tv" msgid="8470296818270110396">"USB ਡੀਬੱਗਿੰਗ ਅਯੋਗ ਬਣਾਉਣ ਲਈ ਚੁਣੋ।"</string> <string name="taking_remote_bugreport_notification_title" msgid="6742483073875060934">"ਬੱਗ ਰਿਪਰੋਟ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."</string> <string name="share_remote_bugreport_notification_title" msgid="4987095013583691873">"ਕੀ ਬੱਗ ਰਿਪੋਰਟ ਸਾਂਝੀ ਕਰਨੀ ਹੈ?"</string> <string name="sharing_remote_bugreport_notification_title" msgid="7572089031496651372">"ਬੱਗ ਰਿਪੋਰਟ ਸਾਂਝੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string> - <string name="share_remote_bugreport_notification_message_finished" msgid="6029609949340992866">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਇਸ ਡੀਵਾਈਸ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ ਬੱਗ ਰਿਪੋਰਟ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ। ਐਪਾਂ ਅਤੇ ਡਾਟਾ ਨੂੰ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"</string> + <string name="share_remote_bugreport_notification_message_finished" msgid="6029609949340992866">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਇਸ ਡੀਵਾਈਸ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ ਬੱਗ ਰਿਪੋਰਟ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ। ਐਪਾਂ ਅਤੇ ਡਾਟੇ ਨੂੰ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"</string> <string name="share_remote_bugreport_action" msgid="6249476773913384948">"ਸਾਂਝਾ ਕਰੋ"</string> <string name="decline_remote_bugreport_action" msgid="6230987241608770062">"ਅਸਵੀਕਾਰ ਕਰੋ"</string> <string name="select_input_method" msgid="8547250819326693584">"ਕੀ-ਬੋਰਡ ਬਦਲੋ"</string> @@ -1219,7 +1220,7 @@ <string name="ext_media_unmountable_notification_message" product="tv" msgid="3941179940297874950">"<xliff:g id="NAME">%s</xliff:g> ਖਰਾਬ ਹੈ। ਠੀਕ ਕਰਨ ਲਈ ਚੁਣੋ।"</string> <string name="ext_media_unsupported_notification_title" msgid="3797642322958803257">"ਅਸਮਰਥਿਤ <xliff:g id="NAME">%s</xliff:g>"</string> <string name="ext_media_unsupported_notification_message" msgid="6121601473787888589">"ਇਹ ਡੀਵਾਈਸ ਇਸ <xliff:g id="NAME">%s</xliff:g> ਨੂੰ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਸਮਰਥਿਤ ਫਾਰਮੈਟ ਵਿੱਚ ਸਥਾਪਤ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string> - <string name="ext_media_unsupported_notification_message" product="tv" msgid="3725436899820390906">"ਇਹ ਡੀਵਾਈਸ ਇਸ <xliff:g id="NAME">%s</xliff:g> ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਸਮਰਥਿਤ ਵੰਨਗੀ ਵਿੱਚ ਸਥਾਪਤ ਕਰਨ ਲਈ ਚੁਣੋ।"</string> + <string name="ext_media_unsupported_notification_message" product="tv" msgid="3725436899820390906">"ਇਹ ਡੀਵਾਈਸ ਇਸ <xliff:g id="NAME">%s</xliff:g> ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਸਮਰਥਿਤ ਫਾਰਮੈਟ ਵਿੱਚ ਸਥਾਪਤ ਕਰਨ ਲਈ ਚੁਣੋ।"</string> <string name="ext_media_badremoval_notification_title" msgid="3206248947375505416">"<xliff:g id="NAME">%s</xliff:g> ਨੂੰ ਅਚਨਚੇਤ ਹਟਾਇਆ ਗਿਆ"</string> <string name="ext_media_badremoval_notification_message" msgid="380176703346946313">"ਡੇਟਾ ਦੇ ਨੁਕਸਾਨ ਤੋਂ ਬੱਚਣ ਲਈ ਹਟਾਉਣ ਤੋਂ ਪਹਿਲਾਂ <xliff:g id="NAME">%s</xliff:g> ਅਨਮਾਊਂਟ ਕਰੋ"</string> <string name="ext_media_nomedia_notification_title" msgid="1704840188641749091">"ਹਟਾਇਆ <xliff:g id="NAME">%s</xliff:g>"</string> @@ -1251,8 +1252,8 @@ <string name="activity_list_empty" msgid="1675388330786841066">"ਕੋਈ ਮੇਲ ਖਾਂਦੀਆਂ ਗਤੀਵਿਧੀਆਂ ਨਹੀਂ ਮਿਲੀਆਂ।"</string> <string name="permlab_route_media_output" msgid="6243022988998972085">"ਰੂਟ ਮੀਡੀਆ ਆਊਟਪੁਟ"</string> <string name="permdesc_route_media_output" msgid="4932818749547244346">"ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੂੰ ਹੋਰਾਂ ਬਾਹਰੀ ਡਿਵਾਈਸਾਂ ਲਈ ਮੀਡੀਆ ਆਊਟਪੁਟ ਰੂਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> - <string name="permlab_readInstallSessions" msgid="3713753067455750349">"ਸਥਾਪਿਤ ਸੈਸ਼ਨਾਂ ਨੂੰ ਪੜ੍ਹੋ"</string> - <string name="permdesc_readInstallSessions" msgid="2049771699626019849">"ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਇੰਸਟੌਲ ਸੈਸ਼ਨ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਸਨੂੰ ਸਕਿਰਿਆ ਪੈਕੇਜ ਇੰਸਟੌਲੇਸ਼ਨਾਂ ਬਾਰੇ ਵੇਰਵੇ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> + <string name="permlab_readInstallSessions" msgid="3713753067455750349">"ਸਥਾਪਤ ਸੈਸ਼ਨਾਂ ਨੂੰ ਪੜ੍ਹੋ"</string> + <string name="permdesc_readInstallSessions" msgid="2049771699626019849">"ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸਥਾਪਤ ਸੈਸ਼ਨ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਸਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਪੈਕੇਜ ਸਥਾਪਨਾਵਾਂ ਬਾਰੇ ਵੇਰਵੇ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_requestInstallPackages" msgid="5782013576218172577">"ਪੈਕੇਜ ਸਥਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕਰੋ"</string> <string name="permdesc_requestInstallPackages" msgid="5740101072486783082">"ਪੈਕੇਜ ਦੀ ਸਥਾਪਨਾ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਆਗਿਆ ਦਿੰਦਾ ਹੈ"</string> <string name="permlab_requestDeletePackages" msgid="1703686454657781242">"ਪੈਕੇਜਾਂ ਨੂੰ ਮਿਟਾਉਣ ਦੀ ਬੇਨਤੀ ਕਰੋ"</string> @@ -1260,7 +1261,7 @@ <string name="permlab_requestIgnoreBatteryOptimizations" msgid="8021256345643918264">"ਬੈਟਰੀ ਸੁਯੋਗਤਾਵਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਨ ਲਈ ਪੁੱਛੋ"</string> <string name="permdesc_requestIgnoreBatteryOptimizations" msgid="8359147856007447638">"ਕਿਸੇ ਐਪ ਨੂੰ ਉਸ ਵਾਸਤੇ ਬੈਟਰੀ ਸੁਯੋਗਤਾਵਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਵਾਸਤੇ ਪੁੱਛਣ ਲਈ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> <string name="tutorial_double_tap_to_zoom_message_short" msgid="1311810005957319690">"ਜ਼ੂਮ ਕੰਟਰੋਲ ਲਈ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ"</string> - <string name="gadget_host_error_inflating" msgid="4882004314906466162">"ਵਿਜੇਟ ਨਹੀਂ ਜੋੜ ਸਕਿਆ।"</string> + <string name="gadget_host_error_inflating" msgid="4882004314906466162">"ਵਿਜੇਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋ ਸਕਿਆ।"</string> <string name="ime_action_go" msgid="8320845651737369027">"ਜਾਓ"</string> <string name="ime_action_search" msgid="658110271822807811">"ਖੋਜੋ"</string> <string name="ime_action_send" msgid="2316166556349314424">"ਭੇਜੋ"</string> @@ -1332,7 +1333,7 @@ <string name="sync_too_many_deletes" msgid="5296321850662746890">"ਵਧੀ ਸੀਮਾ ਮਿਟਾਓ"</string> <string name="sync_too_many_deletes_desc" msgid="496551671008694245">"<xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>, ਖਾਤੇ <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g> ਲਈ <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g> ਆਈਟਮਾਂ ਮਿਟਾਈਆਂ ਗਈਆਂ ਹਨ। ਤੁਸੀਂ ਕੀ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string> <string name="sync_really_delete" msgid="2572600103122596243">"ਆਈਟਮਾਂ ਹਟਾਓ"</string> - <string name="sync_undo_deletes" msgid="2941317360600338602">"ਮਿਟਾਏ ਗਏ ਅਨਡੂ ਕਰੋ"</string> + <string name="sync_undo_deletes" msgid="2941317360600338602">"ਮਿਟਾਏ ਗਏ ਨੂੰ ਅਣਕੀਤਾ ਕਰੋ"</string> <string name="sync_do_nothing" msgid="3743764740430821845">"ਹੁਣ ਕੁਝ ਨਾ ਕਰੋ"</string> <string name="choose_account_label" msgid="5655203089746423927">"ਇੱਕ ਖਾਤਾ ਚੁਣੋ"</string> <string name="add_account_label" msgid="2935267344849993553">"ਇੱਕ ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string> @@ -1366,20 +1367,20 @@ <string name="activitychooserview_choose_application_error" msgid="8624618365481126668">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ਨੂੰ ਲਾਂਚ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string> <string name="shareactionprovider_share_with" msgid="806688056141131819">"ਇਸ ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string> <string name="shareactionprovider_share_with_application" msgid="5627411384638389738">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string> - <string name="content_description_sliding_handle" msgid="415975056159262248">"ਹੈਂਡਲ ਸਲਾਈਡ ਕਰ ਰਿਹਾ ਹੈ। ਸਪੱਰਸ਼ ਕਰੋ & ਹੋਲਡ ਕਰੋ।"</string> - <string name="description_target_unlock_tablet" msgid="3833195335629795055">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਸਵਾਈਪ ਕਰੋ।"</string> - <string name="action_bar_home_description" msgid="5293600496601490216">"ਹੋਮ ਨੈਵੀਗੇਟ ਕਰੋ"</string> - <string name="action_bar_up_description" msgid="2237496562952152589">"ਉੱਪਰ ਨੈਵੀਗੇਟ ਕਰੋ"</string> + <string name="content_description_sliding_handle" msgid="415975056159262248">"ਹੈਂਡਲ ਸਲਾਈਡ ਕਰ ਰਿਹਾ ਹੈ। ਛੋਹਵੋ & ਹੋਲਡ ਕਰੋ।"</string> + <string name="description_target_unlock_tablet" msgid="3833195335629795055">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਸਵਾਈਪ ਕਰੋ।"</string> + <string name="action_bar_home_description" msgid="5293600496601490216">"ਹੋਮ \'ਤੇ ਜਾਓ"</string> + <string name="action_bar_up_description" msgid="2237496562952152589">"ਉੱਪਰ ਜਾਓ"</string> <string name="action_menu_overflow_description" msgid="2295659037509008453">"ਹੋਰ ਚੋਣਾਂ"</string> <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string> <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string> - <string name="storage_internal" msgid="3570990907910199483">"ਅੰਦਰੂਨੀ ਸਾਂਝੀ ਕੀਤੀ ਗਈ ਸਟੋਰੇਜ"</string> + <string name="storage_internal" msgid="3570990907910199483">"ਸਾਂਝੀ ਕੀਤੀ ਗਈ ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ"</string> <string name="storage_sd_card" msgid="3282948861378286745">"SD ਕਾਰਡ"</string> <string name="storage_sd_card_label" msgid="6347111320774379257">"<xliff:g id="MANUFACTURER">%s</xliff:g> SD ਕਾਰਡ"</string> <string name="storage_usb_drive" msgid="6261899683292244209">"USB ਡ੍ਰਾਇਵ"</string> <string name="storage_usb_drive_label" msgid="4501418548927759953">"<xliff:g id="MANUFACTURER">%s</xliff:g> USB ਡ੍ਰਾਇਵ"</string> <string name="storage_usb" msgid="3017954059538517278">"USB ਸਟੋਰੇਜ"</string> - <string name="extract_edit_menu_button" msgid="8940478730496610137">"ਸੰਪਾਦਿਤ ਕਰੋ"</string> + <string name="extract_edit_menu_button" msgid="8940478730496610137">"ਸੰਪਾਦਨ ਕਰੋ"</string> <string name="data_usage_warning_title" msgid="3620440638180218181">" ਡਾਟਾ ਵਰਤੋਂ ਚਿਤਾਵਨੀ"</string> <string name="data_usage_warning_body" msgid="6660692274311972007">"ਵਰਤੋਂ ਅਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।"</string> <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"2G-3G ਡਾਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ"</string> @@ -1419,13 +1420,13 @@ <string name="activity_resolver_work_profiles_support" msgid="185598180676883455">"%1$s ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string> <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ਟੈਬਲੈੱਟ"</string> <string name="default_audio_route_name" product="tv" msgid="9158088547603019321">"TV"</string> - <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ਫੋਨ"</string> - <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ਹੈਡਫੋਨ"</string> + <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ਫ਼ੋਨ ਕਰੋ"</string> + <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ਹੈੱਡਫ਼ੋਨ"</string> <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"ਡੌਕ ਸਪੀਕਰਸ"</string> <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string> <string name="default_audio_route_category_name" msgid="3722811174003886946">"ਸਿਸਟਮ"</string> <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth ਆਡੀਓ"</string> - <string name="wireless_display_route_description" msgid="9070346425023979651">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ"</string> + <string name="wireless_display_route_description" msgid="9070346425023979651">"ਵਾਇਰਲੈੱਸ ਡਿਸਪਲੇ"</string> <string name="media_route_button_content_description" msgid="591703006349356016">"ਪ੍ਰਸਾਰਿਤ ਕਰੋ"</string> <string name="media_route_chooser_title" msgid="1751618554539087622">"ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string> <string name="media_route_chooser_title_for_remote_display" msgid="3395541745872017583">"ਡੀਵਾਈਸ ਨਾਲ ਸਕ੍ਰੀਨ ਜੋੜੋ"</string> @@ -1444,7 +1445,7 @@ <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ਸੁਰੱਖਿਅਤ"</string> <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ਪੈਟਰਨ ਭੁੱਲ ਗਏ"</string> <string name="kg_wrong_pattern" msgid="1850806070801358830">"ਗ਼ਲਤ ਪੈਟਰਨ"</string> - <string name="kg_wrong_password" msgid="2333281762128113157">"ਗ਼ਲਤ ਪਾਸਵਰਡ"</string> + <string name="kg_wrong_password" msgid="2333281762128113157">"ਗਲਤ ਪਾਸਵਰਡ"</string> <string name="kg_wrong_pin" msgid="1131306510833563801">"ਗਲਤ ਪਿੰਨ"</string> <plurals name="kg_too_many_failed_attempts_countdown" formatted="false" msgid="8790651267324125694"> <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> ਸਕਿੰਟ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</item> @@ -1468,26 +1469,26 @@ <string name="kg_login_username_hint" msgid="5718534272070920364">"ਵਰਤੋਂਕਾਰ ਨਾਮ (ਈਮੇਲ)"</string> <string name="kg_login_password_hint" msgid="9057289103827298549">"ਪਾਸਵਰਡ"</string> <string name="kg_login_submit_button" msgid="5355904582674054702">"ਸਾਈਨ-ਇਨ ਕਰੋ"</string> - <string name="kg_login_invalid_input" msgid="5754664119319872197">"ਅਪ੍ਰਮਾਣਿਕ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string> + <string name="kg_login_invalid_input" msgid="5754664119319872197">"ਅਵੈਧ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"ਕੀ ਤੁਸੀਂ ਆਪਣਾ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ ਹੋ?\n"<b>"google.com/accounts/recovery"</b>" ਤੇ ਜਾਓ।"</string> <string name="kg_login_checking_password" msgid="1052685197710252395">"ਖਾਤੇ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ…"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"ਤੁਸੀਂ ਆਪਣਾ ਪਿੰਨ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗ਼ਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਵੇਗਾ।"</string> + <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ।\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="5621231220154419413">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੀਵੀ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਟੀਵੀ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string> <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਵੱਧ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਫ਼ੋਨ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ ਅਤੇ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਹੁਣ ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_now_wiping" product="tv" msgid="4987878286750741463">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੀਵੀ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਹੁਣ ਟੀਵੀ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ।"</string> <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਹੁਣ ਫ਼ੋਨ ਫੈਕਟਰੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਏਗਾ।"</string> - <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਟੈਬਲੈੱਟ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4224651132862313471">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਟੀਵੀ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string> <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"ਹਟਾਓ"</string> <string name="safe_media_volume_warning" product="default" msgid="2276318909314492312">"ਕੀ ਵੌਲਿਊਮ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੇ ਪੱਧਰ ਤੋਂ ਵਧਾਉਣੀ ਹੈ?\n\nਲੰਮੇ ਸਮੇਂ ਤੱਕ ਉੱਚ ਵੌਲਿਊਮ ਤੇ ਸੁਣਨ ਨਾਲ ਤੁਹਾਡੀ ਸੁਣਨ ਸ਼ਕਤੀ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।"</string> <string name="accessibility_shortcut_warning_dialog_title" msgid="8404780875025725199">"ਕੀ ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਵਰਤਣਾ ਹੈ?"</string> - <string name="accessibility_shortcut_toogle_warning" msgid="7256507885737444807">"ਸ਼ਾਰਟਕੱਟ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਵੌਲਿਊਮ ਬਟਨਾਂ ਨੂੰ 3 ਸਕਿੰਟ ਲਈ ਦਬਾ ਕੇ ਰੱਖੋ।\n\n ਵਰਤਮਾਨ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ > ਪਹੁੰਚਯੋਗਤਾ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।"</string> + <string name="accessibility_shortcut_toogle_warning" msgid="7256507885737444807">"ਸ਼ਾਰਟਕੱਟ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਵਾਜ਼ ਬਟਨਾਂ ਨੂੰ 3 ਸਕਿੰਟ ਲਈ ਦਬਾ ਕੇ ਰੱਖੋ।\n\n ਵਰਤਮਾਨ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ > ਪਹੁੰਚਯੋਗਤਾ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।"</string> <string name="disable_accessibility_shortcut" msgid="627625354248453445">"ਸ਼ਾਰਟਕੱਟ ਬੰਦ ਕਰੋ"</string> <string name="leave_accessibility_shortcut_on" msgid="7653111894438512680">"ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string> <string name="accessibility_shortcut_enabling_service" msgid="7771852911861522636">"ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਨੇ <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ਨੂੰ ਚਾਲੂ ਕੀਤਾ"</string> @@ -1501,7 +1502,7 @@ <string name="owner_name" msgid="2716755460376028154">"ਮਾਲਕ"</string> <string name="error_message_title" msgid="4510373083082500195">"ਅਸ਼ੁੱਧੀ"</string> <string name="error_message_change_not_allowed" msgid="1238035947357923497">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਇਸ ਤਬਦੀਲੀ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ"</string> - <string name="app_not_found" msgid="3429141853498927379">"ਇਸ ਕਿਰਿਆ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਮਿਲੀ।"</string> + <string name="app_not_found" msgid="3429141853498927379">"ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਮਿਲੀ।"</string> <string name="revoke" msgid="5404479185228271586">"ਰੱਦ ਕਰੋ"</string> <string name="mediasize_iso_a0" msgid="1994474252931294172">"ISO A0"</string> <string name="mediasize_iso_a1" msgid="3333060421529791786">"ISO A1"</string> @@ -1625,13 +1626,13 @@ <string name="lock_to_app_start" msgid="6643342070839862795">"ਸਕ੍ਰੀਨ ਪਿੰਨ ਕੀਤੀ"</string> <string name="lock_to_app_exit" msgid="8598219838213787430">"ਸਕ੍ਰੀਨ ਅਨਪਿਨ ਕੀਤੀ"</string> <string name="lock_to_app_unlock_pin" msgid="2552556656504331634">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਿੰਨ ਮੰਗੋ"</string> - <string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"ਅਨਪਿਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅਨਲੌਕ ਪੈਟਰਨ ਵਾਸਤੇ ਪੁੱਛੋ"</string> - <string name="lock_to_app_unlock_password" msgid="6380979775916974414">"ਅਨਪਿਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਸਵਰਡ ਮੰਗੋ"</string> + <string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅਣਲਾਕ ਪੈਟਰਨ ਵਾਸਤੇ ਪੁੱਛੋ"</string> + <string name="lock_to_app_unlock_password" msgid="6380979775916974414">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਸਵਰਡ ਮੰਗੋ"</string> <string name="package_installed_device_owner" msgid="6875717669960212648">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ"</string> <string name="package_updated_device_owner" msgid="1847154566357862089">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string> <string name="package_deleted_device_owner" msgid="2307122077550236438">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਮਿਟਾਇਆ ਗਿਆ"</string> - <string name="battery_saver_description" msgid="1960431123816253034">"ਬੈਟਰੀ ਲਾਈਫ਼ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ, ਬੈਟਰੀ ਸੇਵਰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਘਟਾਉਂਦਾ ਹੈ ਅਤੇ ਵਾਈਬ੍ਰੇਸ਼ਨ, ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਅਤੇ ਜ਼ਿਆਦਾਤਰ ਬੈਕਗ੍ਰਾਊਂਡ ਡਾਟਾ ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ। ਈਮੇਲ, ਸੁਨੇਹਾ ਭੇਜਣ ਅਤੇ ਹੋਰ ਐਪਾਂ, ਜੋ ਸਮਕਾਲੀਕਰਨ \'ਤੇ ਨਿਰਭਰ ਹਨ, ਉਹ ਉਦੋਂ ਤੱਕ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਖੋਲ੍ਹਦੇ ਨਹੀਂ।\n\nਬੈਟਰੀ ਸੇਵਰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਬੰਦ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੁੰਦਾ ਹੈ।"</string> - <string name="data_saver_description" msgid="6015391409098303235">"ਡਾਟਾ ਵਰਤੋਂ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਡਾਟਾ ਸੇਵਰ ਕੁਝ ਐਪਾਂ ਨੂੰ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਡਾਟਾ ਭੇਜਣ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤਮਾਨ ਤੌਰ \'ਤੇ ਵਰਤੀ ਜਾ ਰਹੀ ਐਪ ਡਾਟਾ \'ਤੇ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ, ਪਰ ਉਹ ਇੰਝ ਕਦੇ-ਕਦਾਈਂ ਕਰ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਚਿੱਤਰ ਤਦ ਤੱਕ ਨਹੀਂ ਦਿਖਾਏ ਜਾਂਦੇ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ \'ਤੇ ਟੈਪ ਨਹੀਂ ਕਰਦੇ।"</string> + <string name="battery_saver_description" msgid="1960431123816253034">"ਬੈਟਰੀ ਲਾਈਫ਼ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਨ ਲਈ, ਬੈਟਰੀ ਸੇਵਰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਘਟਾਉਂਦਾ ਹੈ ਅਤੇ ਵਾਈਬ੍ਰੇਸ਼ਨ, ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਅਤੇ ਜ਼ਿਆਦਾਤਰ ਬੈਕਗ੍ਰਾਊਂਡ ਡਾਟੇ ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ। ਈਮੇਲ, ਸੁਨੇਹਾ ਭੇਜਣ ਅਤੇ ਹੋਰ ਐਪਾਂ, ਜੋ ਸਮਕਾਲੀਕਰਨ \'ਤੇ ਨਿਰਭਰ ਹਨ, ਉਹ ਉਦੋਂ ਤੱਕ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਖੋਲ੍ਹਦੇ ਨਹੀਂ।\n\nਬੈਟਰੀ ਸੇਵਰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਬੰਦ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੁੰਦਾ ਹੈ।"</string> + <string name="data_saver_description" msgid="6015391409098303235">"ਡਾਟਾ ਵਰਤੋਂ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਡਾਟਾ ਸੇਵਰ ਕੁਝ ਐਪਾਂ ਨੂੰ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਡਾਟਾ ਭੇਜਣ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤਮਾਨ ਤੌਰ \'ਤੇ ਵਰਤੀ ਜਾ ਰਹੀ ਐਪ ਡਾਟਾ \'ਤੇ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ, ਪਰ ਉਹ ਇੰਝ ਕਦੇ-ਕਦਾਈਂ ਕਰ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਚਿੱਤਰ ਤਦ ਤੱਕ ਨਹੀਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੇ ਜਾਂਦੇ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ \'ਤੇ ਟੈਪ ਨਹੀਂ ਕਰਦੇ।"</string> <string name="data_saver_enable_title" msgid="4674073932722787417">"ਕੀ ਡਾਟਾ ਸੇਵਰ ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string> <string name="data_saver_enable_button" msgid="7147735965247211818">"ਚਾਲੂ ਕਰੋ"</string> <plurals name="zen_mode_duration_minutes_summary" formatted="false" msgid="4367877408072000848"> @@ -1713,25 +1714,25 @@ <string name="language_picker_section_suggested" msgid="8414489646861640885">"ਸੁਝਾਈਆਂ ਗਈਆਂ"</string> <string name="language_picker_section_all" msgid="3097279199511617537">"ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ"</string> <string name="region_picker_section_all" msgid="8966316787153001779">"ਸਾਰੇ ਖੇਤਰ"</string> - <string name="locale_search_menu" msgid="2560710726687249178">"ਖੋਜ"</string> + <string name="locale_search_menu" msgid="2560710726687249178">"ਖੋਜੋ"</string> <string name="work_mode_off_title" msgid="2615362773958585967">"ਕੀ ਕਾਰਜ ਮੋਡ ਚਾਲੂ ਕਰੀਏ?"</string> <string name="work_mode_off_message" msgid="2961559609199223594">"ਇਸ ਨਾਲ ਐਪਾਂ, ਬੈਕਗ੍ਰਾਊਂਡ ਸਮਕਾਲੀਕਰਨ, ਅਤੇ ਸਬੰਧਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਮੇਤ ਤੁਹਾਡੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਵੇਗਾ"</string> <string name="work_mode_turn_on" msgid="2062544985670564875">"ਚਾਲੂ ਕਰੋ"</string> <string name="new_sms_notification_title" msgid="8442817549127555977">"ਤੁਹਾਨੂੰ ਨਵੇਂ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਹੋਏ ਹਨ"</string> <string name="new_sms_notification_content" msgid="7002938807812083463">"ਦੇਖਣ ਲਈ SMS ਐਪ ਖੋਲ੍ਹੋ"</string> <string name="user_encrypted_title" msgid="9054897468831672082">"ਕੁਝ ਪ੍ਰਕਾਰਜਾਤਮਕਤਾ ਸੀਮਿਤ ਹੋ ਸਕਦੀ ਹੈ"</string> - <string name="user_encrypted_message" msgid="4923292604515744267">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> + <string name="user_encrypted_message" msgid="4923292604515744267">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="user_encrypted_detail" msgid="5708447464349420392">"ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਲੌਕ ਕੀਤਾ ਗਿਆ"</string> <string name="profile_encrypted_detail" msgid="3700965619978314974">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਾਕ ਕੀਤੀ ਗਈ"</string> <string name="profile_encrypted_message" msgid="6964994232310195874">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="usb_mtp_launch_notification_title" msgid="8359219638312208932">"<xliff:g id="PRODUCT_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋਈ"</string> - <string name="usb_mtp_launch_notification_description" msgid="8541876176425411358">"ਫ਼ਾਈਲਾਂ ਵੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string> + <string name="usb_mtp_launch_notification_description" msgid="8541876176425411358">"ਫ਼ਾਈਲਾਂ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="pin_target" msgid="3052256031352291362">"ਪਿੰਨ ਕਰੋ"</string> <string name="unpin_target" msgid="3556545602439143442">"ਅਨਪਿੰਨ ਕਰੋ"</string> <string name="app_info" msgid="6856026610594615344">"ਐਪ ਜਾਣਕਾਰੀ"</string> <string name="negative_duration" msgid="5688706061127375131">"−<xliff:g id="TIME">%1$s</xliff:g>"</string> <string name="demo_starting_message" msgid="5268556852031489931">"ਡੈਮੋ ਚਾਲੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> - <string name="demo_restarting_message" msgid="952118052531642451">"ਡੀਵਾਈਸ ਮੁੜ-ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> + <string name="demo_restarting_message" msgid="952118052531642451">"ਡੀਵਾਈਸ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> <string name="suspended_widget_accessibility" msgid="6712143096475264190">"ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="conference_call" msgid="3751093130790472426">"ਕਾਨਫਰੰਸ ਕਾਲ"</string> <string name="tooltip_popup_title" msgid="5253721848739260181">"ਟੂਲ-ਟਿੱਪ"</string> @@ -1760,10 +1761,10 @@ <item quantity="one"><xliff:g id="COUNT">%1$s</xliff:g> ਆਟੋਫਿਲ ਸੁਝਾਅ</item> <item quantity="other"><xliff:g id="COUNT">%1$s</xliff:g> ਆਟੋਫਿਲ ਸੁਝਾਅ</item> </plurals> - <string name="autofill_save_title" msgid="3345527308992082601">"<b><xliff:g id="LABEL">%1$s</xliff:g></b> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੀਏ?"</string> - <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_save_title" msgid="3345527308992082601">"ਕੀ <b><xliff:g id="LABEL">%1$s</xliff:g></b> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?"</string> + <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_save_yes" msgid="6398026094049005921">"ਰੱਖਿਅਤ ਕਰੋ"</string> <string name="autofill_save_no" msgid="2625132258725581787">"ਨਹੀਂ ਧੰਨਵਾਦ"</string> <string name="autofill_save_type_password" msgid="5288448918465971568">"ਪਾਸਵਰਡ"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 5b6bf1e8bba6..0f4e2e87d7c6 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ustawienia"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomoc"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Asystent głosowy"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zablokuj teraz"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nowe powiadomienie"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Klawiatura wirtualna"</string> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index e96608055765..bb370553763c 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Configurações"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistência"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ajuda de voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear agora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nova notificação"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 5ce96f9ef89c..60d79000b8e9 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Definições"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistência"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Assist. de voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear agora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nova notificação"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index e96608055765..bb370553763c 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Configurações"</string> <string name="global_action_assist" msgid="3892832961594295030">"Assistência"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ajuda de voz"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Bloquear agora"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nova notificação"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Teclado virtual"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 232770cc743d..81ab4dd6a3e3 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Setări"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asistență"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Asistent vocal"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Blocați acum"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"˃999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Notificare nouă"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Tastatură virtuală"</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 43d4ad0b8647..b01a6fc23888 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Настройки"</string> <string name="global_action_assist" msgid="3892832961594295030">"Помощник"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Аудиоподсказки"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Заблокировать"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">">999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Новое уведомление"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуальная клавиатура"</string> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index f2dd65dc69f3..25558253e5b0 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"සැකසීම්"</string> <string name="global_action_assist" msgid="3892832961594295030">"සහාය දීම"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"හඬ සහායක"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"දැන් අගුළු දමන්න"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"නව දැනුම්දීම"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"අතථ්ය යතුරු පුවරුව"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 7c2fa8255d59..4bf240a10f22 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Nastavenia"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomôcť"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Hlasový asistent"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Uzamknúť"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Nové upozornenie"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuálna klávesnica"</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index ee9191d5ab9d..31582d240b6f 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Nastavitve"</string> <string name="global_action_assist" msgid="3892832961594295030">"Pomoč"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Glas. pomočnik"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Zakleni zdaj"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999 +"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Novo obvestilo"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Navidezna tipkovnica"</string> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index 1f5219231bce..d9bbed001ada 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Cilësimet"</string> <string name="global_action_assist" msgid="3892832961594295030">"Ndihma"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ndihma zanore"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Kyç tani"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Njoftim i ri"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Tastiera virtuale"</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 28b9d41a063b..138df3b8bd69 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -133,7 +133,7 @@ <string name="wfc_mode_wifi_only_summary" msgid="2379919155237869320">"Само Wi-Fi"</string> <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Није прослеђено"</string> <string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string> - <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> након <xliff:g id="TIME_DELAY">{2}</xliff:g> секунде(и)"</string> + <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> након <xliff:g id="TIME_DELAY">{2}</xliff:g> секунде/и"</string> <string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Није прослеђено"</string> <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Није прослеђено"</string> <string name="fcComplete" msgid="3118848230966886575">"Кôд функције је извршен."</string> @@ -233,7 +233,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Подешавања"</string> <string name="global_action_assist" msgid="3892832961594295030">"Помоћ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Гласовна помоћ"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Закључај одмах"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ново обавештење"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Виртуелна тастатура"</string> @@ -739,19 +740,19 @@ <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Погледајте Кориснички водич или контактирајте Корисничку подршку."</string> <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM картица је закључана."</string> <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"Откључавање SIM картице…"</string> - <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте неправилно нацртали шаблон за откључавање. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> - <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте погрешно унели лозинку. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> - <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте погрешно унели PIN. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још <xliff:g id="NUMBER_1">%2$d</xliff:g> несупешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string> + <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте неправилно нацртали шаблон за откључавање. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> + <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте погрешно унели лозинку. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> + <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте погрешно унели PIN. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још <xliff:g id="NUMBER_1">%2$d</xliff:g> несупешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде/и."</string> <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="5316664559603394684">"Неисправно сте нацртали шаблон за откључавање <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја од вас ће бити затражено да откључате ТВ помоћу података за пријављивање на Google.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још <xliff:g id="NUMBER_1">%2$d</xliff:g> несупешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу података за пријављивање на Google.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"<xliff:g id="NUMBER_0">%1$d</xliff:g> пута сте нетачно унели шаблон за откључавање. Након још <xliff:g id="NUMBER_1">%2$d</xliff:g> несупешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу података за пријављивање на Google.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде/и."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Неправилно сте покушали да откључате таблет <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. Након још неуспешних покушаја (<xliff:g id="NUMBER_1">%2$d</xliff:g>) таблет ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="950408382418270260">"Покушали сте да откључате ТВ нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја ТВ ће бити ресетован на подразумевана фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Неисправно сте покушали да откључате телефон <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. Након још неуспешних покушаја (<xliff:g id="NUMBER_1">%2$d</xliff:g>) телефон ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Неисправно сте покушали да откључате таблет <xliff:g id="NUMBER">%d</xliff:g> пута. Таблет ће сада бити враћен на подразумевана фабричка подешавања."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="3195755534096192191">"Покушали сте да откључате ТВ нетачно <xliff:g id="NUMBER">%d</xliff:g> пута. ТВ ће сада бити ресетован на подразумевана фабричка подешавања."</string> <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Неисправно сте покушали да откључате телефон <xliff:g id="NUMBER">%d</xliff:g> пута. Телефон ће сада бити враћен на подразумевана фабричка подешавања."</string> - <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Пробајте поново за <xliff:g id="NUMBER">%d</xliff:g> секунде(и)."</string> + <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Пробајте поново за <xliff:g id="NUMBER">%d</xliff:g> секунде/и."</string> <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Заборавили сте шаблон?"</string> <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"Откључавање налога"</string> <string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"Превише покушаја уноса шаблона"</string> @@ -883,7 +884,7 @@ <string name="second" msgid="3184235808021478">"сек"</string> <string name="seconds" msgid="3161515347216589235">"сек"</string> <string name="week" msgid="5617961537173061583">"недеља"</string> - <string name="weeks" msgid="6509623834583944518">"недеље(а)"</string> + <string name="weeks" msgid="6509623834583944518">"недеље/а"</string> <string name="year" msgid="4001118221013892076">"година"</string> <string name="years" msgid="6881577717993213522">"годинe(а)"</string> <string name="now_string_shortest" msgid="8912796667087856402">"сада"</string> @@ -1495,18 +1496,18 @@ <string name="kg_login_invalid_input" msgid="5754664119319872197">"Неважеће корисничко име или лозинка."</string> <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Заборавили сте корисничко име или лозинку?\nПосетите адресу "<b>"google.com/accounts/recovery"</b>"."</string> <string name="kg_login_checking_password" msgid="1052685197710252395">"Провера налога…"</string> - <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Унели сте нетачни PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> - <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Унели сте нетачну лозинку <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> - <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде(и)."</string> + <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Унели сте нетачни PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> + <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Унели сте нетачну лозинку <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> + <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. \n\nПробајте поново за <xliff:g id="NUMBER_1">%2$d</xliff:g> секунде/и."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"Покушали сте да откључате таблет нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. Након још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја таблет ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="5621231220154419413">"Покушали сте да откључате ТВ нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја ТВ ће бити ресетован на подразумевана фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"Покушали сте да откључате телефон нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја телефон ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени."</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"Покушали сте да откључате таблет нетачно <xliff:g id="NUMBER">%d</xliff:g> пута. Таблет ће сада бити враћен на подразумевана фабричка подешавања."</string> <string name="kg_failed_attempts_now_wiping" product="tv" msgid="4987878286750741463">"Покушали сте да откључате ТВ нетачно <xliff:g id="NUMBER">%d</xliff:g> пута. ТВ ће сада бити ресетован на подразумевана фабричка подешавања."</string> <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Покушали сте да откључате телефон нетачно <xliff:g id="NUMBER">%d</xliff:g> пута. Телефон ће сада бити враћен на подразумевана фабричка подешавања."</string> - <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string> + <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде/и."</string> <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4224651132862313471">"Неисправно сте нацртали шаблон за откључавање <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате ТВ помоћу налога е-поште.\n\n Пробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string> - <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде(и)."</string> + <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде/и."</string> <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" – "</string> <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"Уклони"</string> <string name="safe_media_volume_warning" product="default" msgid="2276318909314492312">"Желите да појачате звук изнад препорученог нивоа?\n\nСлушање гласне музике дуже време може да вам оштети слух."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 80a4ed2b97ab..0edf2773e2b3 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Inställningar"</string> <string name="global_action_assist" msgid="3892832961594295030">"Hjälp"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Lås nu"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Ny avisering"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtuellt tangentbord"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 0219c3822466..08d930a7456c 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -228,7 +228,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Mipangilio"</string> <string name="global_action_assist" msgid="3892832961594295030">"Mapendekezo"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Usaidizi wa Sauti"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Funga sasa"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Arifa mpya"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Kibodi pepe"</string> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index a313f750e5c4..c76f53f3c2b7 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"அமைப்பு"</string> <string name="global_action_assist" msgid="3892832961594295030">"உதவி"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"குரல் உதவி"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"இப்போது பூட்டு"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"புதிய அறிவிப்பு"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"விர்ச்சுவல் விசைப்பலகை"</string> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 49f48b7da07d..1117cea64ecd 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"సెట్టింగ్లు"</string> <string name="global_action_assist" msgid="3892832961594295030">"సహాయం"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"వాయిస్ అసిస్టెంట్"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ఇప్పుడు లాక్ చేయండి"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"కొత్త నోటిఫికేషన్"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"వర్చువల్ కీబోర్డ్"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 4052e4514945..dd1b62deef45 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"การตั้งค่า"</string> <string name="global_action_assist" msgid="3892832961594295030">"ผู้ช่วย"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"ตัวช่วยเสียง"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ล็อกเลย"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"การแจ้งเตือนใหม่"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"แป้นพิมพ์เสมือน"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 0eb81751eb84..1a8751f544c9 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Mga Setting"</string> <string name="global_action_assist" msgid="3892832961594295030">"Tulong"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"I-lock ngayon"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Bagong notification"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual na keyboard"</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 88f751be4a56..803233850a15 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Ayarlar"</string> <string name="global_action_assist" msgid="3892832961594295030">"Asist"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Sesli Yardım"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Şimdi kilitle"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Yeni bildirim"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Sanal klavye"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 06ff06c67b67..ee06099e54af 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -236,7 +236,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Налаштування"</string> <string name="global_action_assist" msgid="3892832961594295030">"Підказки"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Голос. підказки"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Блокувати зараз"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Нове сповіщення"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Віртуальна клавіатура"</string> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index 773634fef209..df6af2b69e9b 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"ترتیبات"</string> <string name="global_action_assist" msgid="3892832961594295030">"اسسٹ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Voice Assist"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"ابھی مقفل کریں"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"نئی اطلاع"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"ورچوئل کی بورڈ"</string> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index 82fd1768310e..d91b8f43b9ea 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Sozlamalar"</string> <string name="global_action_assist" msgid="3892832961594295030">"Yordam"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Ovozli yordam"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Qulflash"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Yangi bildirishnoma"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Virtual klaviatura"</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 47c49451fdcc..08c257d57ee8 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Cài đặt"</string> <string name="global_action_assist" msgid="3892832961594295030">"Hỗ trợ"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Trợ lý thoại"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Khóa ngay"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Thông báo mới"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Bàn phím ảo"</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 47b1656e739b..2f6439aafd7e 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"设置"</string> <string name="global_action_assist" msgid="3892832961594295030">"助理"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"语音助理"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"立即锁定"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"新通知"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"虚拟键盘"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index 98818b25a553..69133b82559c 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"設定"</string> <string name="global_action_assist" msgid="3892832961594295030">"協助"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"語音助手"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"立即鎖定"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"新通知"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"虛擬鍵盤"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 90e5d836bfe5..b34d1ef32f70 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"設定"</string> <string name="global_action_assist" msgid="3892832961594295030">"協助"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"語音小幫手"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"立即鎖定"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"超過 999"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"新通知"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"虛擬鍵盤"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 6c66fc9263dd..6ddddfb6a9aa 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -230,7 +230,8 @@ <string name="global_action_settings" msgid="1756531602592545966">"Izilungiselelo"</string> <string name="global_action_assist" msgid="3892832961594295030">"Siza"</string> <string name="global_action_voice_assist" msgid="7751191495200504480">"Isisekeli sezwi"</string> - <string name="global_action_lockdown" msgid="8751542514724332873">"Khiya manje"</string> + <!-- no translation found for global_action_lockdown (2277328351790053477) --> + <skip /> <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string> <string name="notification_hidden_text" msgid="6351207030447943784">"Isaziso esisha"</string> <string name="notification_channel_virtual_keyboard" msgid="6969925135507955575">"Ikhibhodi ebonakalayo"</string> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index c6bb52ecdeed..83bb443e1b72 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2367,12 +2367,14 @@ "silent" = silent mode "users" = list of users "restart" = restart device + "lockdown" = Lock down device until the user authenticates --> <string-array translatable="false" name="config_globalActionsList"> <item>power</item> <item>restart</item> <item>bugreport</item> <item>users</item> + <item>lockdown</item> </string-array> <!-- Number of milliseconds to hold a wake lock to ensure that drawing is fully diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 9bd779e8cfb2..bd5b7116c435 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -526,8 +526,8 @@ <!-- label for item that launches voice assist in phone options dialog [CHAR LIMIT=15]--> <string name="global_action_voice_assist">Voice Assist</string> - <!-- label for item that locks the phone and enforces that it can't be unlocked without entering a credential. [CHAR LIMIT=15] --> - <string name="global_action_lockdown">Lock now</string> + <!-- label for item that locks the phone and enforces that it can't be unlocked without strong authentication. [CHAR LIMIT=15] --> + <string name="global_action_lockdown">Enter lockdown</string> <!-- Text to use when the number in a notification info is too large (greater than status_bar_notification_info_maxnum, defined in diff --git a/core/tests/coretests/src/android/widget/SelectionActionModeHelperTest.java b/core/tests/coretests/src/android/widget/SelectionActionModeHelperTest.java index d94a017c27fd..b881053a5872 100644 --- a/core/tests/coretests/src/android/widget/SelectionActionModeHelperTest.java +++ b/core/tests/coretests/src/android/widget/SelectionActionModeHelperTest.java @@ -25,6 +25,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -110,4 +111,154 @@ public final class SelectionActionModeHelperTest { assertEquals(expectedPointY, adjustedPoint.y, 0.0f); } + @Test + public void testMergeRectangleIntoList_addThreeDisjointRectangles() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(10, 10, 11, 11), + new RectF(20, 20, 21, 21) + }, + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(10, 10, 11, 11), + new RectF(20, 20, 21, 21) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addAnEmptyRectangle() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 0, 0) + }, + new RectF[] { + } + ); + } + + @Test + public void testMergeRectangleIntoList_addAContainedRectangle() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 10, 10), + new RectF(9, 0, 10, 10) + }, + new RectF[] { + new RectF(0, 0, 10, 10) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addARectangleThatContainsExistingRectangles() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(1, 0, 2, 1), + new RectF(0, 0, 2, 1) + }, + new RectF[] { + new RectF(0, 0, 2, 1) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addRectangleThatIntersectsAndHasTheSameHeightOnRight() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(0.5f, 0, 1.5f, 1) + }, + new RectF[] { + new RectF(0, 0, 1.5f, 1) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addRectangleThatIntersectsAndHasTheSameHeightOnLeft() { + testExpandRectangleList( + new RectF[] { + new RectF(0.5f, 0, 1.5f, 1), + new RectF(0, 0, 1, 1) + }, + new RectF[] { + new RectF(0, 0, 1.5f, 1) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addRectangleThatExpandsToTheRight() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(1, 0, 1.5f, 1) + }, + new RectF[] { + new RectF(0, 0, 1.5f, 1) + } + ); + } + + @Test + public void testMergeRectangleIntoList_addRectangleThatExpandsToTheLeft() { + testExpandRectangleList( + new RectF[] { + new RectF(1, 0, 1.5f, 1), + new RectF(0, 0, 1, 1) + }, + new RectF[] { + new RectF(0, 0, 1.5f, 1) + } + ); + } + + + @Test + public void testMergeRectangleIntoList_addRectangleMadeObsoleteByMultipleExistingRectangles() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(0.5f, 0, 1.5f, 1), + new RectF(0.25f, 0, 1.25f, 1) + }, + new RectF[] { + new RectF(0, 0, 1.5f, 1) + } + ); + } + + @Test + public void testMergeRectangleIntoList_threeRectanglesThatTouchEachOther() { + testExpandRectangleList( + new RectF[] { + new RectF(0, 0, 1, 1), + new RectF(1, 0, 2, 1), + new RectF(2, 0, 3, 1) + }, + new RectF[] { + new RectF(0, 0, 3, 1) + } + ); + } + + + private void testExpandRectangleList(final RectF[] inputRectangles, + final RectF[] outputRectangles) { + final List<RectF> expectedOutput = Arrays.asList(outputRectangles); + + final List<RectF> result = new ArrayList<>(); + final int size = inputRectangles.length; + for (int index = 0; index < size; ++index) { + SelectionActionModeHelper.mergeRectangleIntoList(result, inputRectangles[index]); + } + + assertEquals(expectedOutput, result); + } + + } diff --git a/data/keyboards/Vendor_054c_Product_05c4.kl b/data/keyboards/Vendor_054c_Product_05c4.kl new file mode 100644 index 000000000000..f46573376ade --- /dev/null +++ b/data/keyboards/Vendor_054c_Product_05c4.kl @@ -0,0 +1,67 @@ +# 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. + +# +# Sony Playstation(R) DualShock 4 Controller +# + + +# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html + +# Square +key 0x130 BUTTON_X +# Cross +key 0x131 BUTTON_A +# Circle +key 0x132 BUTTON_B +# Triangle +key 0x133 BUTTON_Y + +key 0x134 BUTTON_L1 +key 0x135 BUTTON_R1 +key 0x136 BUTTON_L2 +key 0x137 BUTTON_R2 + +# L2 axis +axis 0x03 LTRIGGER +# R2 axis +axis 0x04 RTRIGGER + + +# Left Analog Stick +axis 0x00 X +axis 0x01 Y +# Right Analog Stick +axis 0x02 Z +axis 0x05 RZ + +# Left stick click +key 0x13a BUTTON_THUMBL +# Right stick click +key 0x13b BUTTON_THUMBR + +# Hat +axis 0x10 HAT_X +axis 0x11 HAT_Y + +# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt +# Share +key 0x138 BUTTON_SELECT +# Options +key 0x139 BUTTON_START + +# PS key +key 0x13c HOME +# Touchpad press +key 0x13d BUTTON_MODE diff --git a/data/sounds/AudioPackageGo.mk b/data/sounds/AudioPackageGo.mk index 3756d3056da9..ae742df8f9bb 100644 --- a/data/sounds/AudioPackageGo.mk +++ b/data/sounds/AudioPackageGo.mk @@ -40,3 +40,9 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/Alarm_Beep_03.ogg:system/media/audio/alarms/Alarm_Beep_03.ogg \ $(LOCAL_PATH)/alarms/ogg/Helium.ogg:system/media/audio/alarms/Helium.ogg \ $(LOCAL_PATH)/alarms/ogg/Oxygen.ogg:system/media/audio/alarms/Oxygen.ogg \ + $(LOCAL_PATH)/effects/ogg/Effect_Tick.ogg:system/media/audio/ui/Effect_Tick.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressStandard.ogg:system/media/audio/ui/KeypressStandard.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressSpacebar.ogg:system/media/audio/ui/KeypressSpacebar.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressDelete.ogg:system/media/audio/ui/KeypressDelete.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressInvalid.ogg:system/media/audio/ui/KeypressInvalid.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressReturn.ogg:system/media/audio/ui/KeypressReturn.ogg \ diff --git a/data/sounds/AudioTv.mk b/data/sounds/AudioTv.mk new file mode 100644 index 000000000000..ee37cb943872 --- /dev/null +++ b/data/sounds/AudioTv.mk @@ -0,0 +1,125 @@ +# Copyright 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. + +LOCAL_PATH := frameworks/base/data/sounds + +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/Alarm_Beep_01.ogg:system/media/audio/alarms/Alarm_Beep_01.ogg \ + $(LOCAL_PATH)/Alarm_Beep_02.ogg:system/media/audio/alarms/Alarm_Beep_02.ogg \ + $(LOCAL_PATH)/Alarm_Beep_03.ogg:system/media/audio/alarms/Alarm_Beep_03.ogg \ + $(LOCAL_PATH)/Alarm_Buzzer.ogg:system/media/audio/alarms/Alarm_Buzzer.ogg \ + $(LOCAL_PATH)/Alarm_Classic.ogg:system/media/audio/alarms/Alarm_Classic.ogg \ + $(LOCAL_PATH)/Alarm_Rooster_02.ogg:system/media/audio/alarms/Alarm_Rooster_02.ogg \ + $(LOCAL_PATH)/alarms/ogg/Argon.ogg:system/media/audio/alarms/Argon.ogg \ + $(LOCAL_PATH)/alarms/ogg/Barium.ogg:system/media/audio/alarms/Barium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Carbon.ogg:system/media/audio/alarms/Carbon.ogg \ + $(LOCAL_PATH)/alarms/ogg/Cesium.ogg:system/media/audio/alarms/Cesium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Fermium.ogg:system/media/audio/alarms/Fermium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Hassium.ogg:system/media/audio/alarms/Hassium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Helium.ogg:system/media/audio/alarms/Helium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Krypton.ogg:system/media/audio/alarms/Krypton.ogg \ + $(LOCAL_PATH)/alarms/ogg/Neon.ogg:system/media/audio/alarms/Neon.ogg \ + $(LOCAL_PATH)/alarms/ogg/Neptunium.ogg:system/media/audio/alarms/Neptunium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Nobelium.ogg:system/media/audio/alarms/Nobelium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Osmium.ogg:system/media/audio/alarms/Osmium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Oxygen.ogg:system/media/audio/alarms/Oxygen.ogg \ + $(LOCAL_PATH)/alarms/ogg/Platinum.ogg:system/media/audio/alarms/Platinum.ogg \ + $(LOCAL_PATH)/alarms/ogg/Plutonium.ogg:system/media/audio/alarms/Plutonium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Promethium.ogg:system/media/audio/alarms/Promethium.ogg \ + $(LOCAL_PATH)/alarms/ogg/Scandium.ogg:system/media/audio/alarms/Scandium.ogg \ + $(LOCAL_PATH)/effects/ogg/camera_click_48k.ogg:system/media/audio/ui/camera_click.ogg \ + $(LOCAL_PATH)/effects/ogg/camera_focus.ogg:system/media/audio/ui/camera_focus.ogg \ + $(LOCAL_PATH)/effects/ogg/Dock.ogg:system/media/audio/ui/Dock.ogg \ + $(LOCAL_PATH)/effects/ogg/Effect_Tick_48k.ogg:system/media/audio/ui/Effect_Tick.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressDelete_120_48k.ogg:system/media/audio/ui/KeypressDelete.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressInvalid_120_48k.ogg:system/media/audio/ui/KeypressInvalid.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressReturn_120_48k.ogg:system/media/audio/ui/KeypressReturn.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressSpacebar_120_48k.ogg:system/media/audio/ui/KeypressSpacebar.ogg \ + $(LOCAL_PATH)/effects/ogg/KeypressStandard_120_48k.ogg:system/media/audio/ui/KeypressStandard.ogg \ + $(LOCAL_PATH)/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg \ + $(LOCAL_PATH)/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.ogg \ + $(LOCAL_PATH)/effects/ogg/Trusted_48k.ogg:system/media/audio/ui/Trusted.ogg \ + $(LOCAL_PATH)/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg \ + $(LOCAL_PATH)/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg \ + $(LOCAL_PATH)/effects/ogg/VideoRecord_48k.ogg:system/media/audio/ui/VideoRecord.ogg \ + $(LOCAL_PATH)/effects/ogg/VideoStop_48k.ogg:system/media/audio/ui/VideoStop.ogg \ + $(LOCAL_PATH)/effects/ogg/WirelessChargingStarted.ogg:system/media/audio/ui/WirelessChargingStarted.ogg \ + $(LOCAL_PATH)/F1_MissedCall.ogg:system/media/audio/notifications/F1_MissedCall.ogg \ + $(LOCAL_PATH)/F1_New_MMS.ogg:system/media/audio/notifications/F1_New_MMS.ogg \ + $(LOCAL_PATH)/F1_New_SMS.ogg:system/media/audio/notifications/F1_New_SMS.ogg \ + $(LOCAL_PATH)/notifications/Aldebaran.ogg:system/media/audio/notifications/Aldebaran.ogg \ + $(LOCAL_PATH)/notifications/Altair.ogg:system/media/audio/notifications/Altair.ogg \ + $(LOCAL_PATH)/notifications/Antares.ogg:system/media/audio/notifications/Antares.ogg \ + $(LOCAL_PATH)/notifications/arcturus.ogg:system/media/audio/notifications/arcturus.ogg \ + $(LOCAL_PATH)/notifications/Beat_Box_Android.ogg:system/media/audio/notifications/Beat_Box_Android.ogg \ + $(LOCAL_PATH)/notifications/Betelgeuse.ogg:system/media/audio/notifications/Betelgeuse.ogg \ + $(LOCAL_PATH)/notifications/Canopus.ogg:system/media/audio/notifications/Canopus.ogg \ + $(LOCAL_PATH)/notifications/Castor.ogg:system/media/audio/notifications/Castor.ogg \ + $(LOCAL_PATH)/notifications/Cricket.ogg:system/media/audio/notifications/Cricket.ogg \ + $(LOCAL_PATH)/notifications/Deneb.ogg:system/media/audio/notifications/Deneb.ogg \ + $(LOCAL_PATH)/notifications/Doink.ogg:system/media/audio/notifications/Doink.ogg \ + $(LOCAL_PATH)/notifications/Drip.ogg:system/media/audio/notifications/Drip.ogg \ + $(LOCAL_PATH)/notifications/Electra.ogg:system/media/audio/notifications/Electra.ogg \ + $(LOCAL_PATH)/notifications/Fomalhaut.ogg:system/media/audio/notifications/Fomalhaut.ogg \ + $(LOCAL_PATH)/notifications/Heaven.ogg:system/media/audio/notifications/Heaven.ogg \ + $(LOCAL_PATH)/notifications/Merope.ogg:system/media/audio/notifications/Merope.ogg \ + $(LOCAL_PATH)/notifications/moonbeam.ogg:system/media/audio/notifications/moonbeam.ogg \ + $(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \ + $(LOCAL_PATH)/notifications/ogg/Alya.ogg:system/media/audio/notifications/Alya.ogg \ + $(LOCAL_PATH)/notifications/ogg/Antimony.ogg:system/media/audio/notifications/Antimony.ogg \ + $(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \ + $(LOCAL_PATH)/notifications/ogg/Argon.ogg:system/media/audio/notifications/Argon.ogg \ + $(LOCAL_PATH)/notifications/ogg/Bellatrix.ogg:system/media/audio/notifications/Bellatrix.ogg \ + $(LOCAL_PATH)/notifications/ogg/Beryllium.ogg:system/media/audio/notifications/Beryllium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Capella.ogg:system/media/audio/notifications/Capella.ogg \ + $(LOCAL_PATH)/notifications/ogg/CetiAlpha.ogg:system/media/audio/notifications/CetiAlpha.ogg \ + $(LOCAL_PATH)/notifications/ogg/Cobalt.ogg:system/media/audio/notifications/Cobalt.ogg \ + $(LOCAL_PATH)/notifications/ogg/Fluorine.ogg:system/media/audio/notifications/Fluorine.ogg \ + $(LOCAL_PATH)/notifications/ogg/Gallium.ogg:system/media/audio/notifications/Gallium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Helium.ogg:system/media/audio/notifications/Helium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Hojus.ogg:system/media/audio/notifications/Hojus.ogg \ + $(LOCAL_PATH)/notifications/ogg/Iridium.ogg:system/media/audio/notifications/Iridium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Krypton.ogg:system/media/audio/notifications/Krypton.ogg \ + $(LOCAL_PATH)/notifications/ogg/Lalande.ogg:system/media/audio/notifications/Lalande.ogg \ + $(LOCAL_PATH)/notifications/ogg/Mira.ogg:system/media/audio/notifications/Mira.ogg \ + $(LOCAL_PATH)/notifications/ogg/Palladium.ogg:system/media/audio/notifications/Palladium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Polaris.ogg:system/media/audio/notifications/Polaris.ogg \ + $(LOCAL_PATH)/notifications/ogg/Pollux.ogg:system/media/audio/notifications/Pollux.ogg \ + $(LOCAL_PATH)/notifications/ogg/Procyon.ogg:system/media/audio/notifications/Procyon.ogg \ + $(LOCAL_PATH)/notifications/ogg/Proxima.ogg:system/media/audio/notifications/Proxima.ogg \ + $(LOCAL_PATH)/notifications/ogg/Radon.ogg:system/media/audio/notifications/Radon.ogg \ + $(LOCAL_PATH)/notifications/ogg/Rubidium.ogg:system/media/audio/notifications/Rubidium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Selenium.ogg:system/media/audio/notifications/Selenium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Shaula.ogg:system/media/audio/notifications/Shaula.ogg \ + $(LOCAL_PATH)/notifications/ogg/Spica.ogg:system/media/audio/notifications/Spica.ogg \ + $(LOCAL_PATH)/notifications/ogg/Strontium.ogg:system/media/audio/notifications/Strontium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Syrma.ogg:system/media/audio/notifications/Syrma.ogg \ + $(LOCAL_PATH)/notifications/ogg/Talitha.ogg:system/media/audio/notifications/Talitha.ogg \ + $(LOCAL_PATH)/notifications/ogg/Tejat.ogg:system/media/audio/notifications/Tejat.ogg \ + $(LOCAL_PATH)/notifications/ogg/Thallium.ogg:system/media/audio/notifications/Thallium.ogg \ + $(LOCAL_PATH)/notifications/ogg/Upsilon.ogg:system/media/audio/notifications/Upsilon.ogg \ + $(LOCAL_PATH)/notifications/ogg/Vega.ogg:system/media/audio/notifications/Vega.ogg \ + $(LOCAL_PATH)/notifications/ogg/Xenon.ogg:system/media/audio/notifications/Xenon.ogg \ + $(LOCAL_PATH)/notifications/ogg/Zirconium.ogg:system/media/audio/notifications/Zirconium.ogg \ + $(LOCAL_PATH)/notifications/pixiedust.ogg:system/media/audio/notifications/pixiedust.ogg \ + $(LOCAL_PATH)/notifications/pizzicato.ogg:system/media/audio/notifications/pizzicato.ogg \ + $(LOCAL_PATH)/notifications/Plastic_Pipe.ogg:system/media/audio/notifications/Plastic_Pipe.ogg \ + $(LOCAL_PATH)/notifications/regulus.ogg:system/media/audio/notifications/regulus.ogg \ + $(LOCAL_PATH)/notifications/sirius.ogg:system/media/audio/notifications/sirius.ogg \ + $(LOCAL_PATH)/notifications/Sirrah.ogg:system/media/audio/notifications/Sirrah.ogg \ + $(LOCAL_PATH)/notifications/SpaceSeed.ogg:system/media/audio/notifications/SpaceSeed.ogg \ + $(LOCAL_PATH)/notifications/TaDa.ogg:system/media/audio/notifications/TaDa.ogg \ + $(LOCAL_PATH)/notifications/Tinkerbell.ogg:system/media/audio/notifications/Tinkerbell.ogg \ + $(LOCAL_PATH)/notifications/tweeters.ogg:system/media/audio/notifications/tweeters.ogg \ + $(LOCAL_PATH)/notifications/vega.ogg:system/media/audio/notifications/vega.ogg diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index ccf9de0abdb4..7e959a87da5d 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -754,6 +754,8 @@ public class KeyStore { // None of the key's SIDs can ever be authenticated return new KeyPermanentlyInvalidatedException(); } + case UNINITIALIZED: + return new KeyPermanentlyInvalidatedException(); default: return new InvalidKeyException("Keystore operation failed", e); } diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h index aa6d2f3513d7..4a5b2c72b02a 100644 --- a/libs/hwui/renderthread/CanvasContext.h +++ b/libs/hwui/renderthread/CanvasContext.h @@ -162,8 +162,8 @@ public: void addRenderNode(RenderNode* node, bool placeFront); void removeRenderNode(RenderNode* node); - void setContentDrawBounds(int left, int top, int right, int bottom) { - mContentDrawBounds.set(left, top, right, bottom); + void setContentDrawBounds(const Rect& bounds) { + mContentDrawBounds = bounds; } RenderState& getRenderState() { diff --git a/libs/hwui/renderthread/DrawFrameTask.cpp b/libs/hwui/renderthread/DrawFrameTask.cpp index 7d641d3ac7c7..a097272df359 100644 --- a/libs/hwui/renderthread/DrawFrameTask.cpp +++ b/libs/hwui/renderthread/DrawFrameTask.cpp @@ -32,6 +32,7 @@ namespace renderthread { DrawFrameTask::DrawFrameTask() : mRenderThread(nullptr) , mContext(nullptr) + , mContentDrawBounds(0, 0, 0, 0) , mSyncResult(SyncResult::OK) { } @@ -123,6 +124,7 @@ bool DrawFrameTask::syncFrameState(TreeInfo& info) { mLayers[i]->apply(); } mLayers.clear(); + mContext->setContentDrawBounds(mContentDrawBounds); mContext->prepareTree(info, mFrameInfo, mSyncQueued, mTargetNode); // This is after the prepareTree so that any pending operations diff --git a/libs/hwui/renderthread/DrawFrameTask.h b/libs/hwui/renderthread/DrawFrameTask.h index fb480626d421..83ecb98f548f 100644 --- a/libs/hwui/renderthread/DrawFrameTask.h +++ b/libs/hwui/renderthread/DrawFrameTask.h @@ -61,6 +61,9 @@ public: virtual ~DrawFrameTask(); void setContext(RenderThread* thread, CanvasContext* context, RenderNode* targetNode); + void setContentDrawBounds(int left, int top, int right, int bottom) { + mContentDrawBounds.set(left, top, right, bottom); + } void pushLayerUpdate(DeferredLayerUpdater* layer); void removeLayerUpdate(DeferredLayerUpdater* layer); @@ -82,6 +85,7 @@ private: RenderThread* mRenderThread; CanvasContext* mContext; RenderNode* mTargetNode = nullptr; + Rect mContentDrawBounds; /********************************************* * Single frame data diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 690474376bef..a6aa301021e2 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -551,20 +551,8 @@ void RenderProxy::drawRenderNode(RenderNode* node) { staticPostAndWait(task); } -CREATE_BRIDGE5(setContentDrawBounds, CanvasContext* context, int left, int top, - int right, int bottom) { - args->context->setContentDrawBounds(args->left, args->top, args->right, args->bottom); - return nullptr; -} - void RenderProxy::setContentDrawBounds(int left, int top, int right, int bottom) { - SETUP_TASK(setContentDrawBounds); - args->context = mContext; - args->left = left; - args->top = top; - args->right = right; - args->bottom = bottom; - staticPostAndWait(task); + mDrawFrameTask.setContentDrawBounds(left, top, right, bottom); } CREATE_BRIDGE1(serializeDisplayListTree, CanvasContext* context) { diff --git a/libs/incident/include/android/os/IncidentReportArgs.h b/libs/incident/include/android/os/IncidentReportArgs.h index 956ef6c39b99..da8098970962 100644 --- a/libs/incident/include/android/os/IncidentReportArgs.h +++ b/libs/incident/include/android/os/IncidentReportArgs.h @@ -39,12 +39,13 @@ public: virtual status_t readFromParcel(const Parcel* in); void setAll(bool all); + void setDest(int dest); void addSection(int section); void addHeader(const vector<int8_t>& header); - inline bool all() const { return mAll; }; + inline bool all() const { return mAll; } bool containsSection(int section) const; - + inline int dest() const { return mDest; } inline const set<int>& sections() const { return mSections; } inline const vector<vector<int8_t>>& headers() const { return mHeaders; } @@ -54,6 +55,7 @@ private: set<int> mSections; vector<vector<int8_t>> mHeaders; bool mAll; + int mDest; }; } diff --git a/libs/incident/src/IncidentReportArgs.cpp b/libs/incident/src/IncidentReportArgs.cpp index f60490911aed..e62872238387 100644 --- a/libs/incident/src/IncidentReportArgs.cpp +++ b/libs/incident/src/IncidentReportArgs.cpp @@ -25,14 +25,16 @@ namespace os { IncidentReportArgs::IncidentReportArgs() :mSections(), - mAll(false) + mAll(false), + mDest(-1) { } IncidentReportArgs::IncidentReportArgs(const IncidentReportArgs& that) :mSections(that.mSections), mHeaders(that.mHeaders), - mAll(that.mAll) + mAll(that.mAll), + mDest(that.mDest) { } @@ -74,6 +76,11 @@ IncidentReportArgs::writeToParcel(Parcel* out) const } } + err = out->writeInt32(mDest); + if (err != NO_ERROR) { + return err; + } + return NO_ERROR; } @@ -120,6 +127,13 @@ IncidentReportArgs::readFromParcel(const Parcel* in) } } + int32_t dest; + err = in->readInt32(&dest); + if (err != NO_ERROR) { + return err; + } + mDest = dest; + return OK; } @@ -133,6 +147,12 @@ IncidentReportArgs::setAll(bool all) } void +IncidentReportArgs::setDest(int dest) +{ + mDest = dest; +} + +void IncidentReportArgs::addSection(int section) { if (!mAll) { diff --git a/packages/BackupRestoreConfirmation/res/values-pa/strings.xml b/packages/BackupRestoreConfirmation/res/values-pa/strings.xml index 916a91343c3c..72513bacabb6 100644 --- a/packages/BackupRestoreConfirmation/res/values-pa/strings.xml +++ b/packages/BackupRestoreConfirmation/res/values-pa/strings.xml @@ -21,7 +21,7 @@ <string name="backup_confirm_text" msgid="1878021282758896593">"ਇੱਕ ਕਨੈਕਟ ਕੀਤੇ ਡੈਸਕਟਾਪ ਕੰਪਿਊਟਰ ਦੇ ਸਾਰੇ ਡਾਟਾ ਦੇ ਇੱਕ ਪੁੂਰੇ ਬੈਕਅੱਪ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ। ਕੀ ਤੁਸੀਂ ਅਜਿਹਾ ਹੋਣ ਦੀ ਆਗਿਆ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?\n\nਜੇਕਰ ਤੁਸੀਂ ਖੁਦ ਬੈਕਅੱਪ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਸੀ, ਤਾਂ ਓਪਰੇਸ਼ਨ ਜਾਰੀ ਰੱਖਣ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ।"</string> <string name="allow_backup_button_label" msgid="4217228747769644068">"ਮੇਰਾ ਡਾਟਾ ਬੈਕ ਅੱਪ ਲਓ"</string> <string name="deny_backup_button_label" msgid="6009119115581097708">"ਬੈਕ ਅੱਪ ਨਾ ਕਰੋ"</string> - <string name="restore_confirm_text" msgid="7499866728030461776">"ਇੱਕ ਕਨੈਕਟ ਕੀਤੇ ਡੈਸਕਟਾਪ ਕੰਪਿਊਟਰ ਦੇ ਸਾਰੇ ਡਾਟਾ ਦੇ ਇੱਕ ਪੁੂਰੇ ਰੀਸਟੋਰ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ। ਕੀ ਤੁਸੀਂ ਅਜਿਹਾ ਹੋਣ ਦੀ ਆਗਿਆ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?\n\nਜੇਕਰ ਤੁਸੀਂ ਖੁਦ ਰੀਸਟੋਰ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਸੀ, ਤਾਂ ਓਪਰੇਸ਼ਨ ਜਾਰੀ ਰੱਖਣ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ। ਇਹ ਡੀਵਾਈਸ ਤੇ ਇਸ ਵੇਲੇ ਮੌਜੂਦ ਕਿਸੇ ਵੀ ਡਾਟਾ ਨੂੰ ਬਦਲ ਦੇਵੇਗਾ!"</string> + <string name="restore_confirm_text" msgid="7499866728030461776">"ਇੱਕ ਕਨੈਕਟ ਕੀਤੇ ਡੈਸਕਟਾਪ ਕੰਪਿਊਟਰ ਦੇ ਸਾਰੇ ਡਾਟਾ ਦੇ ਇੱਕ ਪੁੂਰੇ ਰੀਸਟੋਰ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ। ਕੀ ਤੁਸੀਂ ਅਜਿਹਾ ਹੋਣ ਦੀ ਆਗਿਆ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ?\n\nਜੇਕਰ ਤੁਸੀਂ ਖੁਦ ਰੀਸਟੋਰ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਸੀ, ਤਾਂ ਓਪਰੇਸ਼ਨ ਜਾਰੀ ਰੱਖਣ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ। ਇਹ ਡੀਵਾਈਸ \'ਤੇ ਇਸ ਵੇਲੇ ਮੌਜੂਦ ਕਿਸੇ ਵੀ ਡਾਟਾ ਨੂੰ ਬਦਲ ਦੇਵੇਗਾ!"</string> <string name="allow_restore_button_label" msgid="3081286752277127827">"ਮੇਰਾ ਡਾਟਾ ਰੀਸਟੋਰ ਕਰੋ"</string> <string name="deny_restore_button_label" msgid="1724367334453104378">"ਰੀਸਟੋਰ ਨਾ ਕਰੋ"</string> <string name="current_password_text" msgid="8268189555578298067">"ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਆਪਣਾ ਮੌਜੂਦਾ ਬੈਕਅੱਪ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> @@ -29,8 +29,8 @@ <string name="device_encryption_backup_text" msgid="5866590762672844664">"ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਆਪਣਾ ਡੀਵਾਈਸ ਇਨਕ੍ਰਿਪਸ਼ਨ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ। ਇਹ ਬੈਕਅੱਪ ਪੁਰਾਲੇਖ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਵੀ ਵਰਤਿਆ ਜਾਏਗਾ।"</string> <string name="backup_enc_password_text" msgid="4981585714795233099">"ਕਿਰਪਾ ਕਰਕੇ ਪੂਰਾ ਬੈਕਅੱਪ ਡਾਟਾ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਦੀ ਵਰਤੋਂ ਲਈ ਇੱਕ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ। ਜੇਕਰ ਇਸਨੂੰ ਖਾਲੀ ਛੱਡਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ ਵਰਤਮਾਨ ਬੈਕਅੱਪ ਪਾਸਵਰਡ ਵਰਤਿਆ ਜਾਏਗਾ:"</string> <string name="backup_enc_password_optional" msgid="1350137345907579306">"ਜੇਕਰ ਤੁਸੀਂ ਪੂਰਾ ਬੈਕਅੱਪ ਡਾਟਾ ਇਨਕ੍ਰਿਪਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਇੱਕ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> - <string name="backup_enc_password_required" msgid="7889652203371654149">"ਕਿਉਂਕਿ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਨਕ੍ਰਿਪਟਿਡ ਹੈ, ਇਸਲਈ ਤੁਹਾਡੇ ਤੋਂ ਆਪਣਾ ਬੈਕਅੱਪ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਇੱਕ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> - <string name="restore_enc_password_text" msgid="6140898525580710823">"ਜੇਕਰ ਰੀਸਟੋਰ ਡਾਟਾ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਹੇਠਾਂ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> + <string name="backup_enc_password_required" msgid="7889652203371654149">"ਕਿਉਂਕਿ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਨਕ੍ਰਿਪਟਡ ਹੈ, ਇਸਲਈ ਤੁਹਾਡੇ ਤੋਂ ਆਪਣਾ ਬੈਕਅੱਪ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਇੱਕ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> + <string name="restore_enc_password_text" msgid="6140898525580710823">"ਜੇਕਰ ਰੀਸਟੋਰ ਡਾਟਾ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਹੇਠਾਂ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ:"</string> <string name="toast_backup_started" msgid="550354281452756121">"ਬੈਕਅੱਪ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ..."</string> <string name="toast_backup_ended" msgid="3818080769548726424">"ਬੈਕਅੱਪ ਪੂਰਾ ਹੋਇਆ"</string> <string name="toast_restore_started" msgid="7881679218971277385">"ਰੀਸਟੋਰ ਚਾਲੂ ਹੋ ਰਿਹਾ ਹੈ..."</string> diff --git a/packages/CarrierDefaultApp/res/values-pa/strings.xml b/packages/CarrierDefaultApp/res/values-pa/strings.xml index 35dd6d859458..f4d4053bf492 100644 --- a/packages/CarrierDefaultApp/res/values-pa/strings.xml +++ b/packages/CarrierDefaultApp/res/values-pa/strings.xml @@ -8,7 +8,7 @@ <string name="portal_notification_detail" msgid="2295729385924660881">"%s ਵੈੱਬਸਾਈਟ \'ਤੇ ਜਾਣ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="no_data_notification_detail" msgid="3112125343857014825">"ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਸੇਵਾ ਪ੍ਰਦਾਨਕ %s ਨੂੰ ਸੰਪਰਕ ਕਰੋ"</string> <string name="no_mobile_data_connection_title" msgid="7449525772416200578">"ਕੋਈ ਮੋਬਾਈਲ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਨਹੀਂ"</string> - <string name="no_mobile_data_connection" msgid="544980465184147010">"%s ਰਾਹੀਂ ਡਾਟਾ ਜਾਂ ਰੋਮਿੰਗ ਯੋਜਨਾ ਸ਼ਾਮਲ ਕਰੋ"</string> + <string name="no_mobile_data_connection" msgid="544980465184147010">"%s ਰਾਹੀਂ ਡਾਟਾ ਜਾਂ ਰੋਮਿੰਗ ਯੋਜਨਾ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="mobile_data_status_notification_channel_name" msgid="833999690121305708">"ਮੋਬਾਈਲ ਡਾਟੇ ਦੀ ਸਥਿਤੀ"</string> <string name="action_bar_label" msgid="4290345990334377177">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ"</string> <string name="ssl_error_warning" msgid="3127935140338254180">"ਤੁਸੀਂ ਜਿਸ ਨੈੱਟਵਰਕ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ ਉਸ ਵਿੱਚ ਸੁਰੱਖਿਆ ਸਬੰਧੀ ਸਮੱਸਿਆਵਾਂ ਹਨ।"</string> diff --git a/packages/PrintSpooler/res/values-pa/strings.xml b/packages/PrintSpooler/res/values-pa/strings.xml index e1b7d5eb3082..634ce90b8220 100644 --- a/packages/PrintSpooler/res/values-pa/strings.xml +++ b/packages/PrintSpooler/res/values-pa/strings.xml @@ -32,10 +32,10 @@ <string name="template_page_range" msgid="428638530038286328">"<xliff:g id="PAGE_COUNT">%1$s</xliff:g> ਦੀ ਰੇਂਜ"</string> <string name="pages_range_example" msgid="8558694453556945172">"ਉਦਾਹਰਨ ਲਈ 1—5,8,11—13"</string> <string name="print_preview" msgid="8010217796057763343">"ਪ੍ਰਿੰਟ ਪ੍ਰੀਵਿਊ"</string> - <string name="install_for_print_preview" msgid="6366303997385509332">"ਪ੍ਰੀਵਿਊ ਲਈ PDF ਵਿਊਅਰ ਸਥਾਪਤ ਕਰੋ"</string> + <string name="install_for_print_preview" msgid="6366303997385509332">"ਪੂਰਵ-ਝਲਕ ਲਈ PDF ਵਿਊਅਰ ਸਥਾਪਤ ਕਰੋ"</string> <string name="printing_app_crashed" msgid="854477616686566398">"ਪ੍ਰਿੰਟਿੰਗ ਐਪ ਕ੍ਰੈਸ਼ ਹੋਇਆ"</string> <string name="generating_print_job" msgid="3119608742651698916">"ਪ੍ਰਿੰਟ ਜੌਬ ਬਣਾ ਰਿਹਾ ਹੈ"</string> - <string name="save_as_pdf" msgid="5718454119847596853">"PDF ਦੇ ਤੌਰ ਤੇ ਰੱਖਿਅਤ ਕਰੋ"</string> + <string name="save_as_pdf" msgid="5718454119847596853">"PDF ਦੇ ਤੌਰ \'ਤੇ ਰੱਖਿਅਤ ਕਰੋ"</string> <string name="all_printers" msgid="5018829726861876202">"ਸਾਰੇ ਪ੍ਰਿੰਟਰ…"</string> <string name="print_dialog" msgid="32628687461331979">"ਪ੍ਰਿੰਟ ਡਾਇਲੌਗ"</string> <string name="current_page_template" msgid="5145005201131935302">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="PAGE_COUNT">%2$d</xliff:g>"</string> @@ -49,10 +49,10 @@ <string name="print_options_collapsed" msgid="7455930445670414332">"ਪ੍ਰਿੰਟ ਚੋਣਾਂ ਇਕੱਠਾ ਹੋਈਆਂ"</string> <string name="search" msgid="5421724265322228497">"ਖੋਜੋ"</string> <string name="all_printers_label" msgid="3178848870161526399">"ਸਾਰੇ ਪ੍ਰਿੰਟਰ"</string> - <string name="add_print_service_label" msgid="5356702546188981940">"ਸੇਵਾ ਜੋੜੋ"</string> - <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"ਖੋਜ ਬੌਕਸ ਦਿਖਾਇਆ"</string> - <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"ਖੋਜ ਬੌਕਸ ਲੁਕਾਇਆ"</string> - <string name="print_add_printer" msgid="1088656468360653455">"ਪ੍ਰਿੰਟਰ ਜੋੜੋ"</string> + <string name="add_print_service_label" msgid="5356702546188981940">"ਸੇਵਾ ਸ਼ਾਮਲ ਕਰੋ"</string> + <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"ਖੋਜ ਬਾਕਸ ਦਿਖਾਇਆ"</string> + <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"ਖੋਜ ਬਾਕਸ ਲੁਕਾਇਆ"</string> + <string name="print_add_printer" msgid="1088656468360653455">"ਪ੍ਰਿੰਟਰ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="print_select_printer" msgid="7388760939873368698">"ਪ੍ਰਿੰਟਰ ਚੁਣੋ"</string> <string name="print_forget_printer" msgid="5035287497291910766">"ਪ੍ਰਿੰਟਰ ਭੁੱਲੋ"</string> <plurals name="print_search_result_count_utterance" formatted="false" msgid="6997663738361080868"> @@ -106,6 +106,6 @@ <string name="print_error_default_message" msgid="8602678405502922346">"ਮਾਫ਼ ਕਰਨਾ, ਉਸਨੇ ਲਾਭਕਾਰੀ ਨਹੀਂ ਹੋਇਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="print_error_retry" msgid="1426421728784259538">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> <string name="print_error_printer_unavailable" msgid="8985614415253203381">"ਇਹ ਪ੍ਰਿੰਟਰ ਇਸ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string> - <string name="print_cannot_load_page" msgid="6179560924492912009">"ਝਲਕ ਨਹੀਂ ਵਿਖਾਈ ਜਾ ਸਕਦੀ"</string> + <string name="print_cannot_load_page" msgid="6179560924492912009">"ਪੂਰਵ-ਝਲਕ ਨਹੀਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string> <string name="print_preparing_preview" msgid="3939930735671364712">"ਪ੍ਰੀਵਿਊ ਦੀ ਤਿਆਰੀ ਕਰ ਰਿਹਾ ਹੈ…"</string> </resources> diff --git a/packages/SettingsLib/res/values-af/arrays.xml b/packages/SettingsLib/res/values-af/arrays.xml index 53d5220f65f5..771abe666dc9 100644 --- a/packages/SettingsLib/res/values-af/arrays.xml +++ b/packages/SettingsLib/res/values-af/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Gebruik HDCP-kontrolering net vir DRM-inhoud"</item> <item msgid="45075631231212732">"Gebruik altyd HDCP-kontrolering"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (verstek)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Gebruik stelselkeuse (verstek)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-am/arrays.xml b/packages/SettingsLib/res/values-am/arrays.xml index 039af7f86b3e..a5fb9cf61058 100644 --- a/packages/SettingsLib/res/values-am/arrays.xml +++ b/packages/SettingsLib/res/values-am/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ለDRM ይዘት ብቻ HDCP ምልከታን ተጠቀም"</item> <item msgid="45075631231212732">"ሁልጊዜ የHDCP ምልከታ ተጠቀም"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ነባሪ)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"የስርዓቱን ምርጫ (ነባሪ) ተጠቀም"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ar/arrays.xml b/packages/SettingsLib/res/values-ar/arrays.xml index bcbbcc60d3b4..603dcc8c3e14 100644 --- a/packages/SettingsLib/res/values-ar/arrays.xml +++ b/packages/SettingsLib/res/values-ar/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"استخدام التحقق من HDCP لمحتوى DRM فقط"</item> <item msgid="45075631231212732">"استخدام التحقق من HDCP دومًا"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (الافتراضي)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"استخدام اختيار النظام (افتراضي)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml index ba5968a5b786..aaf67e7d85bb 100644 --- a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml +++ b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Koristi HDCP proveru samo za DRM sadržaj"</item> <item msgid="45075631231212732">"Uvek koristi HDCP proveru"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (podrazumevano)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Koristi izbor sistema (podrazumevano)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-be/arrays.xml b/packages/SettingsLib/res/values-be/arrays.xml index 7fc966aacfc2..ce5ca02eb8df 100644 --- a/packages/SettingsLib/res/values-be/arrays.xml +++ b/packages/SettingsLib/res/values-be/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Выкарыстанне праверкі HDCP только для змесціва, абароненага DRM"</item> <item msgid="45075631231212732">"Заўсёды выкарыстоўваць праверку HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (стандартная)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Выбар сістэмы (стандартны)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-bg/arrays.xml b/packages/SettingsLib/res/values-bg/arrays.xml index 3acd2099e346..7eec6ed3664c 100644 --- a/packages/SettingsLib/res/values-bg/arrays.xml +++ b/packages/SettingsLib/res/values-bg/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Да се използва проверка с HDCP само за DRM съдържание"</item> <item msgid="45075631231212732">"Винаги да се използва проверка с HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (по подразбиране)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Използване на сист. избор (стандартно)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-bn/arrays.xml b/packages/SettingsLib/res/values-bn/arrays.xml index 9dfc7febcabd..60869c4d56a0 100644 --- a/packages/SettingsLib/res/values-bn/arrays.xml +++ b/packages/SettingsLib/res/values-bn/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"শুধুমাত্র DRM সামগ্রীর জন্য HDCP চেক করা ব্যবহার করুন"</item> <item msgid="45075631231212732">"সর্বদা HDCP পরীক্ষণ ব্যবহার করুন"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ডিফল্ট)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"সিস্টেমের নির্বাচন ব্যবহার করুন (ডিফল্ট)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-bs/arrays.xml b/packages/SettingsLib/res/values-bs/arrays.xml index 10be7fec39d2..c274d4c29825 100644 --- a/packages/SettingsLib/res/values-bs/arrays.xml +++ b/packages/SettingsLib/res/values-bs/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Koristi HDCP provjeru samo za DRM sadržaj"</item> <item msgid="45075631231212732">"Uvijek koristi HDCP provjeru"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Zadano)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Koristi odabir sistema (Zadano)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ca/arrays.xml b/packages/SettingsLib/res/values-ca/arrays.xml index fce5e9991ed5..b1636421e341 100644 --- a/packages/SettingsLib/res/values-ca/arrays.xml +++ b/packages/SettingsLib/res/values-ca/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utilitza la comprovació HDCP només per a contingut DRM"</item> <item msgid="45075631231212732">"Utilitza sempre la comprovació HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predeterminada)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Utilitza selecció del sistema (predeterminada)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-cs/arrays.xml b/packages/SettingsLib/res/values-cs/arrays.xml index 5776b84205ab..9d665a3bed55 100644 --- a/packages/SettingsLib/res/values-cs/arrays.xml +++ b/packages/SettingsLib/res/values-cs/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Použít kontrolu HDCP pouze pro obsah DRM"</item> <item msgid="45075631231212732">"Vždy používat kontrolu HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (výchozí)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Použít systémový výběr (výchozí)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-da/arrays.xml b/packages/SettingsLib/res/values-da/arrays.xml index 15c2514fc598..0993d3140097 100644 --- a/packages/SettingsLib/res/values-da/arrays.xml +++ b/packages/SettingsLib/res/values-da/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Brug kun HDCP-kontrol ved DRM-indhold"</item> <item msgid="45075631231212732">"Brug altid HDCP-kontrol"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (standard)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Brug systemvalg (standard)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-de/arrays.xml b/packages/SettingsLib/res/values-de/arrays.xml index 1b9d25aacf75..b5e349179fb2 100644 --- a/packages/SettingsLib/res/values-de/arrays.xml +++ b/packages/SettingsLib/res/values-de/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP-Prüfung nur für DRM-Inhalte verwenden"</item> <item msgid="45075631231212732">"HDCP-Prüfung immer verwenden"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Standard)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Systemauswahl verwenden (Standard)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-el/arrays.xml b/packages/SettingsLib/res/values-el/arrays.xml index 3794ce4c50c1..1b740e624165 100644 --- a/packages/SettingsLib/res/values-el/arrays.xml +++ b/packages/SettingsLib/res/values-el/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Χρήση ελέγχου HDCP μόνο για περιεχόμενο DRM"</item> <item msgid="45075631231212732">"Να χρησιμοποιείται πάντα έλεγχος HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Προεπιλογή)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Χρήση επιλογής συστήματος (Προεπιλογή)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-en-rAU/arrays.xml b/packages/SettingsLib/res/values-en-rAU/arrays.xml index 9abe5d953e5d..f4fceaea1b56 100644 --- a/packages/SettingsLib/res/values-en-rAU/arrays.xml +++ b/packages/SettingsLib/res/values-en-rAU/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Use HDCP checking for DRM content only"</item> <item msgid="45075631231212732">"Always use HDCP checking"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Use System Selection (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-en-rCA/arrays.xml b/packages/SettingsLib/res/values-en-rCA/arrays.xml index 9abe5d953e5d..f4fceaea1b56 100644 --- a/packages/SettingsLib/res/values-en-rCA/arrays.xml +++ b/packages/SettingsLib/res/values-en-rCA/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Use HDCP checking for DRM content only"</item> <item msgid="45075631231212732">"Always use HDCP checking"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Use System Selection (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-en-rGB/arrays.xml b/packages/SettingsLib/res/values-en-rGB/arrays.xml index 9abe5d953e5d..f4fceaea1b56 100644 --- a/packages/SettingsLib/res/values-en-rGB/arrays.xml +++ b/packages/SettingsLib/res/values-en-rGB/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Use HDCP checking for DRM content only"</item> <item msgid="45075631231212732">"Always use HDCP checking"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Use System Selection (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-en-rIN/arrays.xml b/packages/SettingsLib/res/values-en-rIN/arrays.xml index 9abe5d953e5d..f4fceaea1b56 100644 --- a/packages/SettingsLib/res/values-en-rIN/arrays.xml +++ b/packages/SettingsLib/res/values-en-rIN/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Use HDCP checking for DRM content only"</item> <item msgid="45075631231212732">"Always use HDCP checking"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Use System Selection (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-es-rUS/arrays.xml b/packages/SettingsLib/res/values-es-rUS/arrays.xml index f370f9ece9ea..16f725ad9a5b 100644 --- a/packages/SettingsLib/res/values-es-rUS/arrays.xml +++ b/packages/SettingsLib/res/values-es-rUS/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Usar comprobación HDCP para contenido DRM solamente"</item> <item msgid="45075631231212732">"Siempre utilizar comprobación HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predeterminado)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usar selección del sistema (predeterminado)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-es/arrays.xml b/packages/SettingsLib/res/values-es/arrays.xml index 22e4ac02d40c..a752db9b3703 100644 --- a/packages/SettingsLib/res/values-es/arrays.xml +++ b/packages/SettingsLib/res/values-es/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utilizar comprobación de HDCP solo para contenido DRM"</item> <item msgid="45075631231212732">"Utilizar siempre comprobación de HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Predeterminada)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usar preferencia del sistema (predeter.)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-et/arrays.xml b/packages/SettingsLib/res/values-et/arrays.xml index 5b742d68b048..db796f15fb99 100644 --- a/packages/SettingsLib/res/values-et/arrays.xml +++ b/packages/SettingsLib/res/values-et/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Kasuta HDCP-kontrolli ainult DRM-sisu korral"</item> <item msgid="45075631231212732">"Kasuta alati HDCP-kontrollimist"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (vaikeseade)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Süsteemi valiku kasutamine (vaikeseade)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-fa/arrays.xml b/packages/SettingsLib/res/values-fa/arrays.xml index 2d6aada0d62f..2436e79d6bca 100644 --- a/packages/SettingsLib/res/values-fa/arrays.xml +++ b/packages/SettingsLib/res/values-fa/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"استفاده از بررسی HDCP فقط برای محتوای DRM"</item> <item msgid="45075631231212732">"همیشه از بررسی HDCP استفاده شود"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP نسخه ۱.۴ (پیشفرض)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp نسخه ۱۴"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"استفاده از انتخاب سیستم (پیشفرض)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-fi/arrays.xml b/packages/SettingsLib/res/values-fi/arrays.xml index 4eb925916cba..9ed0c8961f46 100644 --- a/packages/SettingsLib/res/values-fi/arrays.xml +++ b/packages/SettingsLib/res/values-fi/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Käytä HDCP-tarkistusta vain DRM-suojatulle sisällölle"</item> <item msgid="45075631231212732">"Käytä aina HDCP-tarkistusta"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (oletus)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Käytä järjestelmän valintaa (oletus)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-fr-rCA/arrays.xml b/packages/SettingsLib/res/values-fr-rCA/arrays.xml index 9d96f405c712..be568ed46e77 100644 --- a/packages/SettingsLib/res/values-fr-rCA/arrays.xml +++ b/packages/SettingsLib/res/values-fr-rCA/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utiliser la vérification HDCP uniquement pour le contenu GDN"</item> <item msgid="45075631231212732">"Toujours utiliser la vérification HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (par défaut)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Utiliser sélect. du système (par défaut)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-fr/arrays.xml b/packages/SettingsLib/res/values-fr/arrays.xml index d2521f6a2787..995a1ff1c04c 100644 --- a/packages/SettingsLib/res/values-fr/arrays.xml +++ b/packages/SettingsLib/res/values-fr/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utiliser la vérification HDCP uniquement pour le contenu DRM"</item> <item msgid="45075631231212732">"Toujours utiliser la vérification HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (par défaut)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Utiliser sélection système (par défaut)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-gl/arrays.xml b/packages/SettingsLib/res/values-gl/arrays.xml index 9c6b9a9dc76b..d06fe9ce890d 100644 --- a/packages/SettingsLib/res/values-gl/arrays.xml +++ b/packages/SettingsLib/res/values-gl/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utiliza a comprobación HDCP só para contido DRM"</item> <item msgid="45075631231212732">"Utilizar sempre a comprobación HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predeterminado)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usar selección sistema (predeterminado)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-gu/arrays.xml b/packages/SettingsLib/res/values-gu/arrays.xml index d97767e49bd8..00eb29ce5d5f 100644 --- a/packages/SettingsLib/res/values-gu/arrays.xml +++ b/packages/SettingsLib/res/values-gu/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ફક્ત DRM કન્ટેન્ટ માટે HDCP તપાસનો ઉપયોગ કરો"</item> <item msgid="45075631231212732">"હંમેશા HDCP તપાસનો ઉપયોગ કરો"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ડિફૉલ્ટ)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"સિસ્ટમ પસંદગીનો ઉપયોગ કરો (ડિફૉલ્ટ)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-hr/arrays.xml b/packages/SettingsLib/res/values-hr/arrays.xml index 7f1174d9d942..ffc76e8c221b 100644 --- a/packages/SettingsLib/res/values-hr/arrays.xml +++ b/packages/SettingsLib/res/values-hr/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Upotrebljavaj HDCP provjeru samo za DRM sadržaj"</item> <item msgid="45075631231212732">"Uvijek upotrebljavaj HDCP provjeru"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (zadano)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Upotreba odabira sustava (zadano)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-hu/arrays.xml b/packages/SettingsLib/res/values-hu/arrays.xml index 740b0cdf4593..7ad170a6d401 100644 --- a/packages/SettingsLib/res/values-hu/arrays.xml +++ b/packages/SettingsLib/res/values-hu/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Csak DRM-tartalomhoz használjon HDCP ellenőrzést"</item> <item msgid="45075631231212732">"Mindig használjon HDCP ellenőrzést"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (alapértelmezett)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Rendszerérték (alapértelmezett)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-hy/arrays.xml b/packages/SettingsLib/res/values-hy/arrays.xml index d552ea533a5b..7406554701d4 100644 --- a/packages/SettingsLib/res/values-hy/arrays.xml +++ b/packages/SettingsLib/res/values-hy/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Օգտագործել HDCP-ը` միայն DRM-ի բովանդակությունը ստուգելու համար"</item> <item msgid="45075631231212732">"Միշտ օգտագործել HDCP ստուգումը"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (կանխադրված)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Օգտագործել համակարգի կարգավորումը (կանխադրված)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-in/arrays.xml b/packages/SettingsLib/res/values-in/arrays.xml index b516a059065e..0e2217de1ea4 100644 --- a/packages/SettingsLib/res/values-in/arrays.xml +++ b/packages/SettingsLib/res/values-in/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Gunakan pemeriksaan HDCP untuk konten DRM saja"</item> <item msgid="45075631231212732">"Selalu gunakan pemeriksaan HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Gunakan Pilihan Sistem (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-is/arrays.xml b/packages/SettingsLib/res/values-is/arrays.xml index 33b2b72ebc7e..a8a01a4f1f83 100644 --- a/packages/SettingsLib/res/values-is/arrays.xml +++ b/packages/SettingsLib/res/values-is/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Nota HDCP-athugun aðeins fyrir höfundarréttarvarið efni"</item> <item msgid="45075631231212732">"Nota alltaf HDCP-eftirlit"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (sjálfgefið)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Nota val kerfisins (sjálfgefið)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-it/arrays.xml b/packages/SettingsLib/res/values-it/arrays.xml index b235812af722..42a246d43a35 100644 --- a/packages/SettingsLib/res/values-it/arrays.xml +++ b/packages/SettingsLib/res/values-it/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Usa la verifica HDCP solo per contenuti DRM"</item> <item msgid="45075631231212732">"Usa sempre la verifica HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predefinita)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usa selezione di sistema (predefinita)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-iw/arrays.xml b/packages/SettingsLib/res/values-iw/arrays.xml index 5daa1ef3b027..b8197a8bb6eb 100644 --- a/packages/SettingsLib/res/values-iw/arrays.xml +++ b/packages/SettingsLib/res/values-iw/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"השתמש בבדיקת HDCP עבור תוכן DRM בלבד"</item> <item msgid="45075631231212732">"תמיד השתמש בבדיקת HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ברירת המחדל)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"שימוש בבחירת המערכת (ברירת המחדל)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ja/arrays.xml b/packages/SettingsLib/res/values-ja/arrays.xml index d2a59aa9a569..aa20097322a0 100644 --- a/packages/SettingsLib/res/values-ja/arrays.xml +++ b/packages/SettingsLib/res/values-ja/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRMコンテンツにのみHDCPチェックを使用する"</item> <item msgid="45075631231212732">"HDCPチェックを常に使用する"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4(デフォルト)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"システムの選択(デフォルト)を使用"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ka/arrays.xml b/packages/SettingsLib/res/values-ka/arrays.xml index b4fc19fdbbb8..7e36f86a465f 100644 --- a/packages/SettingsLib/res/values-ka/arrays.xml +++ b/packages/SettingsLib/res/values-ka/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP შემოწმების გამოყენება მხოლოდ DRM კონტენტის შემთხვევაში"</item> <item msgid="45075631231212732">"ყოველთვის გამოიყენე HDCP შემოწმება"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ნაგულისხმევი)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"სისტემის არჩეულის გამოყენება (ნაგულისხმევი)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-kk/arrays.xml b/packages/SettingsLib/res/values-kk/arrays.xml index 3037dc8cd9ad..b0ba2ff20a02 100644 --- a/packages/SettingsLib/res/values-kk/arrays.xml +++ b/packages/SettingsLib/res/values-kk/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP (кең жолақты сандық мазмұн қорғау) тексеруді DRM (авторлық құқықты техникалық қорғау) мазмұны үшін ғана қолданыңыз"</item> <item msgid="45075631231212732">"Әрқашан HDCP (жоғары кең жолақты сандық мазмұн қорғаушы) тексерулерін қолданыңыз"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (әдепкі)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Жүйені таңдау (әдепкі)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-km/arrays.xml b/packages/SettingsLib/res/values-km/arrays.xml index 85b927b754bc..3cbdc37aff1c 100644 --- a/packages/SettingsLib/res/values-km/arrays.xml +++ b/packages/SettingsLib/res/values-km/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ប្រើការពិនិត្យ HDCP សម្រាប់តែមាតិកា DRM ប៉ុណ្ណោះ"</item> <item msgid="45075631231212732">"ប្រើការពិនិត្យ HDCP ជានិច្ច"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (លំនាំដើម)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"ប្រើការជ្រើសរើសប្រព័ន្ធ (លំនាំដើម)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-kn/arrays.xml b/packages/SettingsLib/res/values-kn/arrays.xml index 510cc7ea620c..455b0a9e1a63 100644 --- a/packages/SettingsLib/res/values-kn/arrays.xml +++ b/packages/SettingsLib/res/values-kn/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM ವಿಷಯಗಳಿಗೆ ಮಾತ್ರ HDCP ಪರೀಕ್ಷಿಸುವಿಕೆಯನ್ನು ಬಳಸು"</item> <item msgid="45075631231212732">"HDCP ಪರಿಶೀಲನೆಯನ್ನು ಯಾವಾಗಲೂ ಬಳಸು"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ಡಿಫಾಲ್ಟ್)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"ಸಿಸ್ಟಂ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ (ಡಿಫಾಲ್ಟ್)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ko/arrays.xml b/packages/SettingsLib/res/values-ko/arrays.xml index cf1062469e1d..3dbf759f2f16 100644 --- a/packages/SettingsLib/res/values-ko/arrays.xml +++ b/packages/SettingsLib/res/values-ko/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM 콘텐츠에 대해서만 HDCP 확인 사용"</item> <item msgid="45075631231212732">"항상 HDCP 확인 사용"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4(기본)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"시스템 설정 사용(기본)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ky/arrays.xml b/packages/SettingsLib/res/values-ky/arrays.xml index 28f00ab238f9..721bfaa7ac54 100644 --- a/packages/SettingsLib/res/values-ky/arrays.xml +++ b/packages/SettingsLib/res/values-ky/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP текшерүү DRM мазмунуна гана колдонулсун"</item> <item msgid="45075631231212732">"Ар дайым HDCP текшерүү колдонулсун"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Демейки)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Тутум тандаганды колдонуу (демейки)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-lo/arrays.xml b/packages/SettingsLib/res/values-lo/arrays.xml index 4a11eecb6b52..6aa8ffca0c96 100644 --- a/packages/SettingsLib/res/values-lo/arrays.xml +++ b/packages/SettingsLib/res/values-lo/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ໃຊ້ການກວດສອບ HDCP ສຳລັບເນື້ອຫາ DRM ເທົ່ານັ້ນ"</item> <item msgid="45075631231212732">"ໃຊ້ການກວດສອບ HDCP ສະເໝີ"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Use System Selection (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-lt/arrays.xml b/packages/SettingsLib/res/values-lt/arrays.xml index 92a6c7295e93..b4407ea72886 100644 --- a/packages/SettingsLib/res/values-lt/arrays.xml +++ b/packages/SettingsLib/res/values-lt/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Taikyti HDCP tikrinimą tik DRM turiniui"</item> <item msgid="45075631231212732">"Visada naudoti HDCP tikrinimą"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (numatytoji)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Naudoti sistemos pasirink. (numatytasis)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-lv/arrays.xml b/packages/SettingsLib/res/values-lv/arrays.xml index 9e73abe32281..09fc6136b73e 100644 --- a/packages/SettingsLib/res/values-lv/arrays.xml +++ b/packages/SettingsLib/res/values-lv/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Izmantot HDCP pārbaudi tikai DRM saturam"</item> <item msgid="45075631231212732">"Vienmēr izmantot HDCP pārbaudi"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (noklusējuma)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Sistēmas atlases izmantošana (nokl.)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-mk/arrays.xml b/packages/SettingsLib/res/values-mk/arrays.xml index 594c508c291a..2d9d73ce7923 100644 --- a/packages/SettingsLib/res/values-mk/arrays.xml +++ b/packages/SettingsLib/res/values-mk/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Користи ХДЦП проверка само за ДРМ содржина"</item> <item msgid="45075631231212732">"Секогаш користи ХДЦП проверка"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Стандардно)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Користи избор на системот (стандардно)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ml/arrays.xml b/packages/SettingsLib/res/values-ml/arrays.xml index 359b75877f33..121c28758c05 100644 --- a/packages/SettingsLib/res/values-ml/arrays.xml +++ b/packages/SettingsLib/res/values-ml/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM ഉള്ളടക്കത്തിനുമാത്രമായി HDCP പരിശോധന ഉപയോഗിക്കുക"</item> <item msgid="45075631231212732">"എല്ലായ്പ്പോഴും HDCP പരിശോധന ഉപയോഗിക്കുക"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ഡിഫോൾട്ട്)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"സിസ്റ്റം സെലക്ഷൻ ഉപയോഗിക്കൂ (ഡിഫോൾട്ട്)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-mn/arrays.xml b/packages/SettingsLib/res/values-mn/arrays.xml index 7c547bb72d58..73f409956962 100644 --- a/packages/SettingsLib/res/values-mn/arrays.xml +++ b/packages/SettingsLib/res/values-mn/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP шалгахыг зөвхөн DRM контентэд ашиглах"</item> <item msgid="45075631231212732">"Байнга HDCP шалгахыг ашиглах"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Өгөгдмөл)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Системийн сонголтыг ашиглах (Өгөгдмөл)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-mr/arrays.xml b/packages/SettingsLib/res/values-mr/arrays.xml index ed1c4e757759..606494911c13 100644 --- a/packages/SettingsLib/res/values-mr/arrays.xml +++ b/packages/SettingsLib/res/values-mr/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"केवळ DRM सामग्रीसाठी HDCP तपासणी वापरा"</item> <item msgid="45075631231212732">"नेहमी HDCP तपासणी वापरा"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (डीफॉल्ट)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"प्रणाली निवड वापरा (डीफॉल्ट)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml index 4386c8f70c9d..99dd3a185295 100644 --- a/packages/SettingsLib/res/values-mr/strings.xml +++ b/packages/SettingsLib/res/values-mr/strings.xml @@ -66,7 +66,7 @@ <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"मीडिया ऑडिओ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"फोन कॉल"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"फाइल स्थानांतरण"</string> - <string name="bluetooth_profile_hid" msgid="3680729023366986480">"इनपुट डीव्हाइस"</string> + <string name="bluetooth_profile_hid" msgid="3680729023366986480">"इनपुट डिव्हाइस"</string> <string name="bluetooth_profile_pan" msgid="3391606497945147673">"इंटरनेट अॅक्सेस"</string> <string name="bluetooth_profile_pbap" msgid="5372051906968576809">"संपर्क सामायिकरण"</string> <string name="bluetooth_profile_pbap_summary" msgid="6605229608108852198">"संपर्क सामायिकरणासाठी वापरा"</string> @@ -182,7 +182,7 @@ <string name="oem_unlock_enable" msgid="6040763321967327691">"OEM अनलॉक करणे"</string> <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"बूटलोडर अनलॉक करण्यासाठी अनुमती द्या"</string> <string name="confirm_enable_oem_unlock_title" msgid="4802157344812385674">"OEM अनलॉक करण्यास अनुमती द्यायची?"</string> - <string name="confirm_enable_oem_unlock_text" msgid="5517144575601647022">"चेतावणी: हे सेटिंग चालू असताना या डीव्हाइस वर डीव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत."</string> + <string name="confirm_enable_oem_unlock_text" msgid="5517144575601647022">"चेतावणी: हे सेटिंग चालू असताना या डिव्हाइस वर डिव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत."</string> <string name="mock_location_app" msgid="7966220972812881854">"बनावट स्थान अॅप निवडा"</string> <string name="mock_location_app_not_set" msgid="809543285495344223">"कोणताही बनावट स्थान अॅप सेट केला नाही"</string> <string name="mock_location_app_set" msgid="8966420655295102685">"बनावट स्थान अॅप: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> @@ -227,10 +227,10 @@ <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"जरी वाय-फाय चालू असले तरीही, मोबाईल डेटा नेहमी चालू ठेवा (नेटवर्क जलदरीत्या स्विच करण्यासाठी)."</string> <string name="tethering_hardware_offload_summary" msgid="7726082075333346982">"उपलब्ध असल्यास टेदरिंग हार्डवेअर प्रवेग वापरा"</string> <string name="adb_warning_title" msgid="6234463310896563253">"USB डीबग करण्यास अनुमती द्यायची?"</string> - <string name="adb_warning_message" msgid="7316799925425402244">"USB डीबग करण्याचा हेतू फक्त विकास उद्देशांसाठी आहे. याचा वापर तुमचा कॉंप्युटर आणि तुमचे डीव्हाइस यांच्या दरम्यान डेटा कॉपी करण्यासाठी करा, सूचनेशिवाय तुमच्या डीव्हाइस वर अॅप्स इंस्टॉल करा आणि लॉग डेटा वाचा."</string> + <string name="adb_warning_message" msgid="7316799925425402244">"USB डीबग करण्याचा हेतू फक्त विकास उद्देशांसाठी आहे. याचा वापर तुमचा कॉंप्युटर आणि तुमचे डिव्हाइस यांच्या दरम्यान डेटा कॉपी करण्यासाठी करा, सूचनेशिवाय तुमच्या डिव्हाइस वर अॅप्स इंस्टॉल करा आणि लॉग डेटा वाचा."</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"आपण पूर्वी अॉथोराइझ केलेल्या सर्व संगणकांवरुन USB डीबग करण्यासाठी अॅक्सेस रीव्होक करायचा?"</string> <string name="dev_settings_warning_title" msgid="7244607768088540165">"विकास सेटिंग्जला अनुमती द्यायची?"</string> - <string name="dev_settings_warning_message" msgid="2298337781139097964">"या सेटिंग्जचा हेतू फक्त विकास वापरासाठी आहे. त्यामुळे तुमचे डीव्हाइस आणि त्यावरील अॅप्लिकेशन ब्रेक होऊ शकतात किंवा नेहमीपेक्षा वेगळे वर्तन करू शकतात."</string> + <string name="dev_settings_warning_message" msgid="2298337781139097964">"या सेटिंग्जचा हेतू फक्त विकास वापरासाठी आहे. त्यामुळे तुमचे डिव्हाइस आणि त्यावरील अॅप्लिकेशन ब्रेक होऊ शकतात किंवा नेहमीपेक्षा वेगळे वर्तन करू शकतात."</string> <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"USB वर अॅप्स पडताळून पाहा"</string> <string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"हानिकारक वर्तनासाठी ADB/ADT द्वारे इंस्टॉल अॅप्स तपासा."</string> <string name="bluetooth_show_devices_without_names_summary" msgid="2351196058115755520">"नावांशिवाय ब्लूटूथ डीव्हाइस (फक्त MAC पत्ते) दाखवले जातील"</string> @@ -386,7 +386,7 @@ <string name="retail_demo_reset_next" msgid="8356731459226304963">"पुढील"</string> <string name="retail_demo_reset_title" msgid="696589204029930100">"संकेतशब्द आवश्यक"</string> <string name="active_input_method_subtypes" msgid="3596398805424733238">"सक्रिय इनपुट पद्धती"</string> - <string name="use_system_language_to_select_input_method_subtypes" msgid="5747329075020379587">"सिस्टीम भाषा वापरा"</string> + <string name="use_system_language_to_select_input_method_subtypes" msgid="5747329075020379587">"सिस्टम भाषा वापरा"</string> <string name="failed_to_open_app_settings_toast" msgid="1251067459298072462">"<xliff:g id="SPELL_APPLICATION_NAME">%1$s</xliff:g> साठी सेटिंग्ज उघडण्यात अयशस्वी"</string> <string name="ime_security_warning" msgid="4135828934735934248">"ही इनपुट पद्धत संकेतशब्द आणि क्रेडिट कार्ड नंबर यासह, आपण टाइप करता तो सर्व मजकूर संकलित करण्यात सक्षम होऊ शकते. ही <xliff:g id="IME_APPLICATION_NAME">%1$s</xliff:g> अॅपवरून येते. ही इनपुट पद्धत वापरायची?"</string> <string name="direct_boot_unaware_dialog_message" msgid="7870273558547549125">"टीप: रीबूट केल्यानंतर, तुम्ही आपला फोन अनलॉक करे पर्यंत हे अॅप सुरू होऊ शकत नाही"</string> diff --git a/packages/SettingsLib/res/values-ms/arrays.xml b/packages/SettingsLib/res/values-ms/arrays.xml index f4942aac3172..915814fe414d 100644 --- a/packages/SettingsLib/res/values-ms/arrays.xml +++ b/packages/SettingsLib/res/values-ms/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Gunakan penyemakan HDCP untuk kandungan DRM sahaja"</item> <item msgid="45075631231212732">"Sentiasa gunakan penyemakan HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Lalai)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Gunakan Pilihan Sistem (Lalai)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-nb/arrays.xml b/packages/SettingsLib/res/values-nb/arrays.xml index f2bb7601ce3b..1882e2e026c6 100644 --- a/packages/SettingsLib/res/values-nb/arrays.xml +++ b/packages/SettingsLib/res/values-nb/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Bruk HDCP-kontroll kun for DRM-innhold"</item> <item msgid="45075631231212732">"Bruk alltid HDCP-kontroll"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (standard)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Bruk systemvalg (standard)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ne/arrays.xml b/packages/SettingsLib/res/values-ne/arrays.xml index b5a19deb76b3..de6b86e393b6 100644 --- a/packages/SettingsLib/res/values-ne/arrays.xml +++ b/packages/SettingsLib/res/values-ne/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM सामग्रीको लागि मात्र HDCP जाँचको प्रयोग गर्नुहोस्"</item> <item msgid="45075631231212732">"सधैँ HDCP जाँच प्रयोग गर्नुहोस्"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP १.४ (पूर्वनिर्धारित)"</item> + <item msgid="2809759619990248160">"AVRCP १.३"</item> + <item msgid="6199178154704729352">"AVRCP १.५"</item> + <item msgid="5172170854953034852">"AVRCP १.६"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp १३"</item> + <item msgid="8837606198371920819">"avrcp १५"</item> + <item msgid="3422726142222090896">"avrcp १६"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"प्रणालीको चयन प्रयोग गर्नुहोस् (पूर्वनिर्धारित)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-pa/arrays.xml b/packages/SettingsLib/res/values-pa/arrays.xml index 7a50cb962f24..b6e97ca99eda 100644 --- a/packages/SettingsLib/res/values-pa/arrays.xml +++ b/packages/SettingsLib/res/values-pa/arrays.xml @@ -50,7 +50,7 @@ </string-array> <string-array name="hdcp_checking_titles"> <item msgid="441827799230089869">"ਕਦੇ ਵੀ ਜਾਂਚ ਨਾ ਕਰੋ"</item> - <item msgid="6042769699089883931">"ਕੇਵਲ DRM ਸਮੱਗਰੀ ਲਈ ਜਾਂਚ ਕਰੋ"</item> + <item msgid="6042769699089883931">"ਸਿਰਫ਼ DRM ਸਮੱਗਰੀ ਲਈ ਜਾਂਚ ਕਰੋ"</item> <item msgid="9174900380056846820">"ਹਮੇਸ਼ਾਂ ਜਾਂਚ ਕਰੋ"</item> </string-array> <string-array name="hdcp_checking_summaries"> @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ਕੇਵਲ DRM ਸਮੱਗਰੀ ਲਈ HDCP ਜਾਂਚ"</item> <item msgid="45075631231212732">"ਹਮੇਸਾਂ HDCP ਜਾਂਚ ਵਰਤੋ"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ਪੂਰਵ-ਨਿਰਧਾਰਤ)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"ਸਿਸਟਮ ਚੋਣ ਦੀ ਵਰਤੋਂ ਕਰੋ (ਪੂਰਵ-ਨਿਰਧਾਰਤ)"</item> <item msgid="7539690996561263909">"SBC"</item> @@ -216,7 +222,7 @@ <string-array name="show_non_rect_clip_entries"> <item msgid="993742912147090253">"ਬੰਦ"</item> <item msgid="675719912558941285">"ਨੀਲੇ ਵਿੱਚ ਗ਼ੈਰ-ਆਇਤਾਕਾਰ ਕਲਿਪ ਖੇਤਰ ਡ੍ਰਾ ਕਰੋ"</item> - <item msgid="1064373276095698656">"ਹਾਈਲਾਈਟ ਜਾਂਚ ਕੀਤੀਆਂ ਡ੍ਰਾਇੰਗ ਕਮਾਂਡਾਂ ਹਰੇ ਵਿੱਚ ਹਨ"</item> + <item msgid="1064373276095698656">"ਜਾਂਚ ਕੀਤੀਆਂ ਡ੍ਰਾਇੰਗ ਕਮਾਂਡਾਂ ਹਰੇ ਵਿੱਚ ਉਜਾਗਰ ਕਰੋ"</item> </string-array> <string-array name="track_frame_time_entries"> <item msgid="2193584639058893150">"ਬੰਦ"</item> diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml index a825b0792998..10a1b0de1880 100644 --- a/packages/SettingsLib/res/values-pa/strings.xml +++ b/packages/SettingsLib/res/values-pa/strings.xml @@ -30,7 +30,7 @@ <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"ਪ੍ਰਮਾਣੀਕਰਨ ਸਮੱਸਿਆ"</string> <string name="wifi_cant_connect" msgid="5410016875644565884">"ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string> <string name="wifi_cant_connect_to_ap" msgid="1222553274052685331">"\'<xliff:g id="AP_NAME">%1$s</xliff:g>\' ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string> - <string name="wifi_check_password_try_again" msgid="516958988102584767">"ਪਾਸਵਰਡ ਜਾਂਚੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> + <string name="wifi_check_password_try_again" msgid="516958988102584767">"ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> <string name="wifi_not_in_range" msgid="1136191511238508967">"ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ"</string> <string name="wifi_no_internet_no_reconnect" msgid="5724903347310541706">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ"</string> <string name="wifi_no_internet" msgid="3880396223819116454">"ਕੋਈ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਨਹੀਂ"</string> @@ -55,14 +55,14 @@ <string name="bluetooth_connecting" msgid="8555009514614320497">"ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ…"</string> <string name="bluetooth_connected" msgid="6038755206916626419">"ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_pairing" msgid="1426882272690346242">"ਪੇਅਰ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="bluetooth_connected_no_headset" msgid="2866994875046035609">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫੋਨ ਨਹੀਂ)"</string> + <string name="bluetooth_connected_no_headset" msgid="2866994875046035609">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫ਼ੋਨ ਨਹੀਂ)"</string> <string name="bluetooth_connected_no_a2dp" msgid="4576188601581440337">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ)"</string> <string name="bluetooth_connected_no_map" msgid="6504436917057479986">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਸੁਨੇਹਾ ਪਹੁੰਚ ਨਹੀਂ)"</string> - <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ)"</string> + <string name="bluetooth_connected_no_headset_no_a2dp" msgid="9195757766755553810">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫ਼ੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ)"</string> <string name="bluetooth_connected_battery_level" msgid="7049181126136692368">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ, ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> - <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਫ਼ੋਨ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_battery_level" msgid="5504193961248406027">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫ਼ੋਨ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_connected_no_a2dp_battery_level" msgid="4751724026365870779">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> - <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ਕਨੈਕਟ ਕੀਤੀ ਗਈ (ਕੋਈ ਫ਼ੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> + <string name="bluetooth_connected_no_headset_no_a2dp_battery_level" msgid="1549265779323455261">"ਕਨੈਕਟ ਕੀਤਾ (ਕੋਈ ਫ਼ੋਨ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ), ਬੈਟਰੀ <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"ਮੀਡੀਆ ਆਡੀਓ"</string> <string name="bluetooth_profile_headset" msgid="7815495680863246034">"ਫ਼ੋਨ ਕਾਲਾਂ"</string> <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ"</string> @@ -76,11 +76,11 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"HD ਆਡੀਓ: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"HD ਆਡੀਓ"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"ਮੀਡੀਆ ਆਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> - <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"ਫੋਨ ਆਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> - <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> + <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"ਫ਼ੋਨ ਔਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> + <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"ਫਾਈਲ ਟ੍ਰਾਂਸਫ਼ਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_map_profile_summary_connected" msgid="8191407438851351713">"ਨਕਸ਼ੇ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_sap_profile_summary_connected" msgid="8561765057453083838">"SAP ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> - <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ"</string> + <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"ਫਾਈਲ ਟ੍ਰਾਂਸਫ਼ਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ"</string> <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"ਇਨਪੁੱਟ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਲਈ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"ਡੀਵਾਈਸ ਨਾਲ ਸਥਾਨਕ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਸਾਂਝਾ ਕਰ ਰਿਹਾ ਹੈ"</string> @@ -88,7 +88,7 @@ <string name="bluetooth_map_profile_summary_use_for" msgid="5154200119919927434">"ਨਕਸ਼ੇ ਲਈ ਵਰਤੋ"</string> <string name="bluetooth_sap_profile_summary_use_for" msgid="7085362712786907993">"ਸਿਮ ਪਹੁੰਚ ਲਈ ਵਰਤੋ"</string> <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"ਮੀਡੀਆ ਆਡੀਓ ਲਈ ਵਰਤੋ"</string> - <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"ਫੋਨ ਆਡੀਓ ਲਈ ਵਰਤੋ"</string> + <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"ਫ਼ੋਨ ਔਡੀਓ ਲਈ ਵਰਤੋ"</string> <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਲਈ ਵਰਤੋ"</string> <string name="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"ਇਨਪੁਟ ਲਈ ਵਰਤੋ"</string> <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"ਪੇਅਰ ਕਰੋ"</string> @@ -122,7 +122,7 @@ <string name="launch_defaults_some" msgid="313159469856372621">"ਕੁਝ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੈੱਟ ਕੀਤੇ"</string> <string name="launch_defaults_none" msgid="4241129108140034876">"ਕੋਈ ਡਿਫੌਲਟਸ ਸੈਟ ਨਹੀਂ ਕੀਤੇ"</string> <string name="tts_settings" msgid="8186971894801348327">"ਲਿਖਤ ਤੋਂ ਬੋਲੀ ਸੈਟਿੰਗਾਂ"</string> - <string name="tts_settings_title" msgid="1237820681016639683">"ਲਿਖਤ-ਤੋਂ-ਬੋਲੀ ਆਊਟਪੁੱਟ"</string> + <string name="tts_settings_title" msgid="1237820681016639683">"ਲਿਖਤ ਤੋਂ ਬੋਲੀ ਆਊਟਪੁਟ"</string> <string name="tts_default_rate_title" msgid="6030550998379310088">"ਸਪੀਚ ਰੇਟ"</string> <string name="tts_default_rate_summary" msgid="4061815292287182801">"ਸਪੀਡ ਜਿਸਤੇ ਟੈਕਸਟ ਬੋਲਿਆ ਜਾਂਦਾ ਹੈ"</string> <string name="tts_default_pitch_title" msgid="6135942113172488671">"ਪਿਚ"</string> @@ -133,10 +133,10 @@ <string name="tts_default_lang_summary" msgid="5219362163902707785">"ਬੋਲੇ ਗਏ ਟੈਕਸਟ ਲਈ ਭਾਸ਼ਾ-ਵਿਸ਼ੇਸ਼ ਵੌਇਸ ਸੈਟ ਕਰਦਾ ਹੈ"</string> <string name="tts_play_example_title" msgid="7094780383253097230">"ਇੱਕ ਉਦਾਹਰਨ ਲਈ ਸੁਣੋ"</string> <string name="tts_play_example_summary" msgid="8029071615047894486">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਦਾ ਇੱਕ ਛੋਟਾ ਪ੍ਰਦਰਸ਼ਨ ਪਲੇ ਕਰੋ"</string> - <string name="tts_install_data_title" msgid="4264378440508149986">"ਵੌਇਸ ਡਾਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string> - <string name="tts_install_data_summary" msgid="5742135732511822589">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਲਈ ਲੁੜੀਂਦਾ ਵੌਇਸ ਡਾਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string> + <string name="tts_install_data_title" msgid="4264378440508149986">"ਵੌਇਸ ਡਾਟਾ ਸਥਾਪਤ ਕਰੋ"</string> + <string name="tts_install_data_summary" msgid="5742135732511822589">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਲਈ ਲੋੜੀਂਦਾ ਵੌਇਸ ਡਾਟਾ ਸਥਾਪਤ ਕਰੋ"</string> <string name="tts_engine_security_warning" msgid="8786238102020223650">"ਇਹ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਉਹ ਸਭ ਲਿਖਤ ਇਕੱਤਰ ਕਰਨ ਵਿੱਚ ਸਮਰੱਥ ਹੋ ਸਕਦਾ ਹੈ, ਜੋ ਬੋਲਿਆ ਜਾਏਗਾ, ਨਿੱਜੀ ਡਾਟਾ ਸਮੇਤ ਜਿਵੇਂ ਪਾਸਵਰਡ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ। ਇਹ <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g> ਇੰਜਣ ਤੋਂ ਆਉਂਦਾ ਹੈ। ਕੀ ਇਸ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਦੀ ਵਰਤੋਂ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈੈ?"</string> - <string name="tts_engine_network_required" msgid="1190837151485314743">"ਇਸ ਭਾਸ਼ਾ ਲਈ ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਆਊਟਪੁਟ ਲਈ ਇੱਕ ਚਾਲੂ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ।"</string> + <string name="tts_engine_network_required" msgid="1190837151485314743">"ਇਸ ਭਾਸ਼ਾ ਲਈ ਲਿਖਤ ਤੋਂ ਬੋਲੀ ਆਊਟਪੁੱਟ ਲਈ ਇੱਕ ਚਾਲੂ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ।"</string> <string name="tts_default_sample_string" msgid="4040835213373086322">"ਇਹ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਦਾ ਇੱਕ ਉਦਾਹਰਨ ਹੈ"</string> <string name="tts_status_title" msgid="7268566550242584413">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਭਾਸ਼ਾ ਸਥਿਤੀ"</string> <string name="tts_status_ok" msgid="1309762510278029765">"<xliff:g id="LOCALE">%1$s</xliff:g> ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਰਥਿਤ ਹੈ"</string> @@ -163,10 +163,10 @@ <string name="choose_profile" msgid="6921016979430278661">"ਪ੍ਰੋਫਾਈਲ ਚੁਣੋ"</string> <string name="category_personal" msgid="1299663247844969448">"ਨਿੱਜੀ"</string> <string name="category_work" msgid="8699184680584175622">"ਦਫ਼ਤਰ"</string> - <string name="development_settings_title" msgid="215179176067683667">"ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ"</string> - <string name="development_settings_enable" msgid="542530994778109538">"ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string> + <string name="development_settings_title" msgid="215179176067683667">"ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ"</string> + <string name="development_settings_enable" msgid="542530994778109538">"ਵਿਕਾਸਕਾਰ ਵਿਕਲਪਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string> <string name="development_settings_summary" msgid="1815795401632854041">"ਐਪ ਵਿਕਾਸ ਲਈ ਚੋਣਾਂ ਸੈੱਟ ਕਰੋ"</string> - <string name="development_settings_not_available" msgid="4308569041701535607">"ਇਸ ਉਪਭੋਗਤਾ ਲਈ ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> + <string name="development_settings_not_available" msgid="4308569041701535607">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> <string name="vpn_settings_not_available" msgid="956841430176985598">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ VPN ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> <string name="tethering_settings_not_available" msgid="6765770438438291012">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਟੈਦਰਿੰਗ ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> <string name="apn_settings_not_available" msgid="7873729032165324000">"ਐਕਸੈੱਸ ਪੁਆਇੰਟ ਨਾਮ ਸੈਟਿੰਗਾਂ ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string> @@ -177,7 +177,7 @@ <string name="bugreport_in_power_summary" msgid="1778455732762984579">"ਇੱਕ ਬੱਗ ਰਿਪੋਰਟ ਲੈਣ ਲਈ ਪਾਵਰ ਮੀਨੂ ਵਿੱਚ ਇੱਕ ਬਟਨ ਦਿਖਾਓ"</string> <string name="keep_screen_on" msgid="1146389631208760344">"ਸਕਿਰਿਆ ਰੱਖੋ"</string> <string name="keep_screen_on_summary" msgid="2173114350754293009">"ਸਕ੍ਰੀਨ ਚਾਰਜਿੰਗ ਦੇ ਸਮੇਂ ਕਦੇ ਵੀ ਸਲੀਪ ਨਹੀਂ ਹੋਵੇਗੀ"</string> - <string name="bt_hci_snoop_log" msgid="3340699311158865670">"Bluetooth HCI ਸਨੂਪ ਲੌਗ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string> + <string name="bt_hci_snoop_log" msgid="3340699311158865670">"ਬਲੂਟੁੱਥ HCI ਸਨੂਪ ਲੌਗ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string> <string name="bt_hci_snoop_log_summary" msgid="730247028210113851">"ਇੱਕ ਫਾਈਲ ਵਿੱਚ ਸਾਰੇ bluetooth HCI ਪੈਕੇਟ ਕੈਪਚਰ ਕਰੋ"</string> <string name="oem_unlock_enable" msgid="6040763321967327691">"OEM ਅਣਲਾਕ ਕਰਨਾ"</string> <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"ਬੂਟਲੋਡਰ ਨੂੰ ਅਨਲੌਕ ਕੀਤੇ ਜਾਣ ਦੀ ਆਗਿਆ ਦਿਓ"</string> @@ -187,7 +187,7 @@ <string name="mock_location_app_not_set" msgid="809543285495344223">"ਕੋਈ ਵੀ ਮੌਕ ਸਥਾਨ ਐਪ ਸੈੱਟ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string> <string name="mock_location_app_set" msgid="8966420655295102685">"ਮੌਕ ਸਥਾਨ ਐਪ: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="debug_networking_category" msgid="7044075693643009662">"ਨੈੱਟਵਰਕਿੰਗ"</string> - <string name="wifi_display_certification" msgid="8611569543791307533">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ"</string> + <string name="wifi_display_certification" msgid="8611569543791307533">"ਵਾਇਰਲੈੱਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ"</string> <string name="wifi_verbose_logging" msgid="4203729756047242344">"ਵਾਈ-ਫਾਈ ਵਰਬੋਸ ਲੌਗਿੰਗ ਚਾਲੂ ਕਰੋ"</string> <string name="wifi_aggressive_handover" msgid="5309131983693661320">"ਆਕਰਮਣਸ਼ੀਲ ਵਾਈ‑ਫਾਈ ਤੋਂ ਮੋਬਾਈਲ ਹੈਂਡਓਵਰ"</string> <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"ਹਮੇਸ਼ਾਂ ਵਾਈ‑ਫਾਈ ਰੋਮ ਸਕੈਨਾਂ ਦੀ ਆਗਿਆ ਦਿਓ"</string> @@ -209,7 +209,7 @@ <string name="bluetooth_select_a2dp_codec_ldac_playback_quality" msgid="3619694372407843405">"ਬਲੂਟੁੱਥ ਔਡੀਓ LDAC ਕੋਡੇਕ: ਪਲੇਬੈਕ ਗੁਣਵੱਤਾ"</string> <string name="bluetooth_select_a2dp_codec_ldac_playback_quality_dialog_title" msgid="3181967377574368400">"ਬਲੂਟੁੱਥ ਔਡੀਓ LDAC ਕੋਡੇਕ ਚੁਣੋ:\nਪਲੇਬੈਕ ਗੁਣਵੱਤਾ"</string> <string name="bluetooth_select_a2dp_codec_streaming_label" msgid="5347862512596240506">"ਸਟ੍ਰੀਮਿੰਗ: <xliff:g id="STREAMING_PARAMETER">%1$s</xliff:g>"</string> - <string name="wifi_display_certification_summary" msgid="1155182309166746973">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਚੋਣਾਂ ਦਿਖਾਓ"</string> + <string name="wifi_display_certification_summary" msgid="1155182309166746973">"ਵਾਇਰਲੈੱਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਚੋਣਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ"</string> <string name="wifi_verbose_logging_summary" msgid="6615071616111731958">"ਵਾਈ‑ਫਾਈ ਲੌਗਿੰਗ ਪੱਧਰ ਵਧਾਓ, ਵਾਈ‑ਫਾਈ Picker ਵਿੱਚ ਪ੍ਰਤੀ SSID RSSI ਦਿਖਾਓ"</string> <string name="wifi_aggressive_handover_summary" msgid="7266329646559808827">"ਜਦੋਂ ਯੋਗ ਬਣਾਇਆ ਹੋਵੇ, ਤਾਂ ਵਾਈ‑ਫਾਈ ਸਿਗਨਲ ਘੱਟ ਹੋਣ \'ਤੇ ਵਾਈ‑ਫਾਈ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਮੋਬਾਈਲ ਨੂੰ ਹੈਂਡ ਓਵਰ ਕਰਨ ਵਿੱਚ ਵੱਧ ਆਕਰਮਣਸ਼ੀਲ ਹੋਵੇਗਾ।"</string> <string name="wifi_allow_scan_with_traffic_summary" msgid="2575101424972686310">"ਇੰਟਰਫੇਸ ਤੇ ਮੌਜੂਦ ਡਾਟਾ ਟ੍ਰੈਫਿਕ ਦੀ ਮਾਤਰਾ ਦੇ ਆਧਾਰ ਤੇ ਵਾਈ-ਫਾਈ ਰੋਮ ਸਕੈਨ ਦੀ ਆਗਿਆ ਦਿਓ/ਅਸਵੀਕਾਰ ਕਰੋ"</string> @@ -227,12 +227,12 @@ <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ਹਮੇਸ਼ਾਂ ਮੋਬਾਈਲ ਡਾਟਾ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਰੱਖੋ ਭਾਵੇਂ ਵਾਈ‑ਫਾਈ ਕਿਰਿਆਸ਼ੀਲ ਹੋਵੇ (ਤੇਜ਼ ਨੈੱਟਵਰਕ ਸਵਿੱਚਿੰਗ ਲਈ)।"</string> <string name="tethering_hardware_offload_summary" msgid="7726082075333346982">"ਉਪਲਬਧ ਹੋਣ \'ਤੇ ਟੈਦਰਿੰਗ ਹਾਰਡਵੇਅਰ ਐਕਸੈੱਲਰੇਸ਼ਨ ਵਰਤੋ"</string> <string name="adb_warning_title" msgid="6234463310896563253">"ਕੀ USB ਡੀਬਗਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string> - <string name="adb_warning_message" msgid="7316799925425402244">"USB ਡੀਬੱਗਿੰਗ ਕੇਵਲ ਵਿਕਾਸ ਮੰਤਵਾਂ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਅਤੇ ਆਪਣੇ ਡੀਵਾਈਸ ਵਿਚਕਾਰ ਡਾਟਾ ਕਾਪੀ ਕਰਨ ਲਈ ਵਰਤੋ, ਸੂਚਨਾ ਦੇ ਬਿਨਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਤੇ ਐਪਾਂ ਸਥਾਪਤ ਕਰੋ ਅਤੇ ਲੌਗ ਡਾਟਾ ਪੜ੍ਹੋ।"</string> + <string name="adb_warning_message" msgid="7316799925425402244">"USB ਡੀਬਗਿੰਗ ਸਿਰਫ਼ ਵਿਕਾਸ ਮੰਤਵਾਂ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਅਤੇ ਆਪਣੇ ਡੀਵਾਈਸ ਵਿਚਕਾਰ ਡਾਟਾ ਕਾਪੀ ਕਰਨ ਲਈ ਵਰਤੋ, ਸੂਚਨਾ ਦੇ ਬਿਨਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਤੇ ਐਪਾਂ ਸਥਾਪਤ ਕਰੋ ਅਤੇ ਲੌਗ ਡਾਟਾ ਪੜ੍ਹੋ।"</string> <string name="adb_keys_warning_message" msgid="5659849457135841625">"ਕੀ ਉਹਨਾਂ ਸਾਰੇ ਕੰਪਿਊਟਰਾਂ ਤੋਂ USB ਡੀਬੱਗਿੰਗ ਤੱਕ ਪਹੁੰਚ ਰੱਦ ਕਰਨੀ ਹੈ, ਜਿਹਨਾਂ ਲਈ ਪਹਿਲਾਂ ਤੁਸੀਂ ਅਧਿਕਾਰਤ ਕੀਤਾ ਹੈ?"</string> <string name="dev_settings_warning_title" msgid="7244607768088540165">"ਕੀ ਵਿਕਾਸ ਸੈਟਿੰਗਾਂ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string> <string name="dev_settings_warning_message" msgid="2298337781139097964">"ਇਹ ਸੈਟਿੰਗਾਂ ਕੇਵਲ ਵਿਕਾਸਕਾਰ ਦੀ ਵਰਤੋਂ ਲਈ ਹਨ। ਇਹ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਅਤੇ ਇਸਤੇ ਮੌਜੂਦ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਬ੍ਰੇਕ ਕਰਨ ਜਾਂ ਦੁਰਵਿਵਹਾਰ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੇ ਹਨ।"</string> <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"USB ਤੇ ਐਪਾਂ ਦੀ ਜਾਂਚ ਕਰੋ"</string> - <string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"ਹਾਨੀਕਾਰਕ ਵਿਵਹਾਰ ਲਈ ADB/ADT ਰਾਹੀਂ ਇੰਸਟੌਲ ਕੀਤੇ ਐਪਸ ਦੀ ਜਾਂਚ ਕਰੋ।"</string> + <string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"ਹਾਨੀਕਾਰਕ ਵਿਵਹਾਰ ਲਈ ADB/ADT ਰਾਹੀਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਐਪਾਂ ਦੀ ਜਾਂਚ ਕਰੋ।"</string> <string name="bluetooth_show_devices_without_names_summary" msgid="2351196058115755520">"ਅਨਾਮ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦਿਖਾਈਆਂ ਜਾਣਗੀਆਂ (ਸਿਰਫ਼ MAC ਪਤੇ)"</string> <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"ਰਿਮੋਟ ਡੀਵਾਈਸਾਂ ਨਾਲ ਵੌਲਿਊਮ ਸਮੱਸਿਆਵਾਂ ਜਿਵੇਂ ਕਿ ਨਾ ਪਸੰਦ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਉੱਚੀ ਵੌਲਿਊਮ ਜਾਂ ਕੰਟਰੋਲ ਦੀ ਕਮੀ ਵਰਗੀ ਹਾਲਤ ਵਿੱਚ ਬਲੂਟੁੱਥ ਪੂਰਨ ਵੌਲਿਊਮ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।"</string> <string name="bluetooth_enable_inband_ringing_summary" msgid="2787866074741784975">"ਤੁਹਾਡੇ ਫ਼ੋਨ ਦੀਆਂ ਰਿੰਗਟੋਨਾਂ ਨੂੰ ਬਲੂਟੁੱਥ ਹੈੱਡਸੈੱਟਾਂ \'ਤੇ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ"</string> @@ -262,11 +262,11 @@ <string name="show_touches" msgid="2642976305235070316">"ਟੈਪਾਂ ਦਿਖਾਓ"</string> <string name="show_touches_summary" msgid="6101183132903926324">"ਟੈਪਾਂ ਲਈ ਨਜ਼ਰ ਸਬੰਧੀ ਪ੍ਰਤੀਕਰਮ ਦਿਖਾਓ"</string> <string name="show_screen_updates" msgid="5470814345876056420">"ਸਰਫਸ ਅਪਡੇਟਾਂ ਦਿਖਾਓ"</string> - <string name="show_screen_updates_summary" msgid="2569622766672785529">"ਸਮੁੱਚੀ ਵਿੰਡੋ ਸਰਫੇਸਾਂ ਫਲੈਸ਼ ਕਰੋ ਜਦੋਂ ਉਹ ਅੱਪਡੇਟ ਹੁੰਦੀਆਂ ਹਨ"</string> + <string name="show_screen_updates_summary" msgid="2569622766672785529">"ਵਿੰਡੋ ਦੇ ਸਮੁੱਚੇ ਤਲਾਂ ਦੇ ਅੱਪਡੇਟ ਹੋਣ \'ਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਰੌਸ਼ਨ ਕਰੋ"</string> <string name="show_hw_screen_updates" msgid="5036904558145941590">"GPU ਦ੍ਰਿਸ਼ ਅੱਪਡੇਟਾਂ ਦਿਖਾਓ"</string> <string name="show_hw_screen_updates_summary" msgid="1115593565980196197">"ਜਦੋਂ GPU ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਜਾਏ ਤਾਂ ਵਿੰਡੋਜ਼ ਦੇ ਅੰਦਰ ਦ੍ਰਿਸ਼ ਫਲੈਸ਼ ਕਰੋ"</string> <string name="show_hw_layers_updates" msgid="5645728765605699821">"ਹਾਰਡਵੇਅਰ ਲੇਅਰਾਂ ਦੇ ਅੱਪਡੇਟਾਂ ਦਿਖਾਓ"</string> - <string name="show_hw_layers_updates_summary" msgid="5296917233236661465">"ਹਾਰਡਵੇਅਰ ਲੇਅਰਾਂ ਹਰੀਆਂ ਫਲੈਸ਼ ਕਰੋ ਜਦੋਂ ਉਹ ਅੱਪਡੇਟ ਹੁੰਦੀਆਂ ਹਨ"</string> + <string name="show_hw_layers_updates_summary" msgid="5296917233236661465">"ਹਾਰਡਵੇਅਰ ਲੇਅਰਾਂ ਅੱਪਡੇਟ ਹੋਣ \'ਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਹਰਾ ਕਰੋ"</string> <string name="debug_hw_overdraw" msgid="2968692419951565417">"GPU ਓਵਰਡ੍ਰਾ ਡੀਬੱਗ ਕਰੋ"</string> <string name="debug_hw_renderer" msgid="7568529019431785816">"GPU ਰੈਂਡਰਰ ਸੈੱਟ ਕਰੋ"</string> <string name="disable_overlays" msgid="2074488440505934665">"HW ਓਵਰਲੇਜ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ"</string> @@ -304,7 +304,7 @@ <string name="enable_freeform_support" msgid="1461893351278940416">"freeform windows ਨੂੰ ਚਾਲੂ ਕਰੋ"</string> <string name="enable_freeform_support_summary" msgid="8247310463288834487">"ਪ੍ਰਯੋਗਮਈ ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋਜ਼ ਲਈ ਸਮਰਥਨ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string> <string name="local_backup_password_title" msgid="3860471654439418822">"ਡੈਸਕਟਾਪ ਬੈਕਅੱਪ ਪਾਸਵਰਡ"</string> - <string name="local_backup_password_summary_none" msgid="6951095485537767956">"ਡੈਸਕਟੌਪ ਪੂਰੇ ਬੈਕਅਪਸ ਇਸ ਵੇਲੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ"</string> + <string name="local_backup_password_summary_none" msgid="6951095485537767956">"ਡੈਸਕਟਾਪ ਪੂਰੇ ਬੈਕਅੱਪ ਇਸ ਵੇਲੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ"</string> <string name="local_backup_password_summary_change" msgid="5376206246809190364">"ਡੈਸਕਟਾਪ ਦੇ ਮੁਕੰਮਲ ਬੈਕਅੱਪਾਂ ਲਈ ਪਾਸਵਰਡ ਨੂੰ ਬਦਲਣ ਜਾਂ ਹਟਾਉਣ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="local_backup_password_toast_success" msgid="582016086228434290">"ਨਵਾਂ ਬੈਕਅੱਪ ਪਾਸਵਰਡ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string> <string name="local_backup_password_toast_confirmation_mismatch" msgid="7805892532752708288">"ਨਵਾਂ ਪਾਸਵਰਡ ਅਤੇ ਪੁਸ਼ਟੀ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ"</string> @@ -365,7 +365,7 @@ <string name="disabled" msgid="9206776641295849915">"ਅਯੋਗ ਬਣਾਇਆ"</string> <string name="external_source_trusted" msgid="2707996266575928037">"ਇਜਾਜ਼ਤ ਹੈ"</string> <string name="external_source_untrusted" msgid="2677442511837596726">"ਇਜਾਜ਼ਤ ਨਹੀਂ"</string> - <string name="install_other_apps" msgid="6986686991775883017">"ਅਗਿਆਤ ਐਪਾਂ ਸਥਾਪਿਤ ਕਰੋ"</string> + <string name="install_other_apps" msgid="6986686991775883017">"ਅਗਿਆਤ ਐਪਾਂ ਸਥਾਪਤ ਕਰੋ"</string> <string name="home" msgid="3256884684164448244">"ਸੈਟਿੰਗਾਂ ਮੁੱਖ ਪੰਨਾ"</string> <string-array name="battery_labels"> <item msgid="8494684293649631252">"0%"</item> @@ -379,7 +379,7 @@ <string name="screen_zoom_summary_large" msgid="4835294730065424084">"ਵੱਡੀ"</string> <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"ਥੋੜ੍ਹਾ ਵੱਡੀ"</string> <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ਸਭ ਤੋਂ ਵੱਡੀ"</string> - <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string> + <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ਵਿਉਂਂਤੀ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string> <string name="help_feedback_label" msgid="6815040660801785649">"ਮਦਦ & ਫੀਡਬੈਕ"</string> <string name="content_description_menu_button" msgid="8182594799812351266">"ਮੀਨੂ"</string> <string name="retail_demo_reset_message" msgid="118771671364131297">"ਡੈਮੋ ਮੋਡ \'ਚ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਲਈ ਪਾਸਵਰਡ ਦਿਓ"</string> @@ -389,5 +389,5 @@ <string name="use_system_language_to_select_input_method_subtypes" msgid="5747329075020379587">"ਸਿਸਟਮ ਭਾਸ਼ਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string> <string name="failed_to_open_app_settings_toast" msgid="1251067459298072462">"<xliff:g id="SPELL_APPLICATION_NAME">%1$s</xliff:g> ਲਈ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ"</string> <string name="ime_security_warning" msgid="4135828934735934248">"ਇਹ ਇਨਪੁੱਟ ਵਿਧੀ ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਜਾਣ ਵਾਲੀ ਸਾਰੀ ਲਿਖਤ ਇਕੱਤਰ ਕਰਨ ਵਿੱਚ ਸਮਰੱਥ ਹੋ ਸਕਦੀ ਹੈ, ਨਿੱਜੀ ਡਾਟਾ ਸਮੇਤ ਜਿਵੇਂ ਪਾਸਵਰਡ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ। ਇਹ <xliff:g id="IME_APPLICATION_NAME">%1$s</xliff:g> ਐਪ ਤੋਂ ਆਉਂਦਾ ਹੈ। ਕੀ ਇਹ ਸਪੈੱਲ ਚੈਕਰ ਵਰਤਣਾ ਹੈ?"</string> - <string name="direct_boot_unaware_dialog_message" msgid="7870273558547549125">"ਨੋਟ ਕਰੋ: ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਆਪਣਾ ਫ਼ੋਨ ਅਨਲੌਕ ਨਹੀਂ ਕਰਦੇ ਤਦ ਤੱਕ ਇਹ ਐਪ ਚਾਲੂ ਨਹੀਂ ਹੋ ਸਕਦੀ"</string> + <string name="direct_boot_unaware_dialog_message" msgid="7870273558547549125">"ਨੋਟ ਕਰੋ: ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਨਹੀਂ ਕਰਦੇ ਤਦ ਤੱਕ ਇਹ ਐਪ ਚਾਲੂ ਨਹੀਂ ਹੋ ਸਕਦੀ"</string> </resources> diff --git a/packages/SettingsLib/res/values-pl/arrays.xml b/packages/SettingsLib/res/values-pl/arrays.xml index b47a7e7ef746..c0427c891faa 100644 --- a/packages/SettingsLib/res/values-pl/arrays.xml +++ b/packages/SettingsLib/res/values-pl/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Użyj sprawdzania HDCP tylko w przypadku treści chronionych DRM"</item> <item msgid="45075631231212732">"Zawsze używaj sprawdzania HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (domyślna)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Użyj wyboru systemu (domyślnie)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-pt-rBR/arrays.xml b/packages/SettingsLib/res/values-pt-rBR/arrays.xml index eb7d9675d96e..46958297c464 100644 --- a/packages/SettingsLib/res/values-pt-rBR/arrays.xml +++ b/packages/SettingsLib/res/values-pt-rBR/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Usar a verificação HDCP somente para conteúdo DRM"</item> <item msgid="45075631231212732">"Sempre usar a verificação HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (padrão)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usar seleção do sistema (padrão)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-pt-rPT/arrays.xml b/packages/SettingsLib/res/values-pt-rPT/arrays.xml index 4774391ddaa4..78a24c4d3bb5 100644 --- a/packages/SettingsLib/res/values-pt-rPT/arrays.xml +++ b/packages/SettingsLib/res/values-pt-rPT/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utilizar a verificação HDCP para conteúdo DRM apenas"</item> <item msgid="45075631231212732">"Utilizar sempre a verificação HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predefinição)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Utilizar seleção do sistema (predef.)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-pt/arrays.xml b/packages/SettingsLib/res/values-pt/arrays.xml index eb7d9675d96e..46958297c464 100644 --- a/packages/SettingsLib/res/values-pt/arrays.xml +++ b/packages/SettingsLib/res/values-pt/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Usar a verificação HDCP somente para conteúdo DRM"</item> <item msgid="45075631231212732">"Sempre usar a verificação HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (padrão)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Usar seleção do sistema (padrão)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ro/arrays.xml b/packages/SettingsLib/res/values-ro/arrays.xml index ccd7718d34a0..b62014e8f732 100644 --- a/packages/SettingsLib/res/values-ro/arrays.xml +++ b/packages/SettingsLib/res/values-ro/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Utilizează verificarea HDCP numai pentru conținut DRM"</item> <item msgid="45075631231212732">"Utilizează întotdeauna verificarea HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (prestabilit)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Folosiți selectarea sist. (prestabilit)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ru/arrays.xml b/packages/SettingsLib/res/values-ru/arrays.xml index 6f4748400bcb..05ccc80f37c3 100644 --- a/packages/SettingsLib/res/values-ru/arrays.xml +++ b/packages/SettingsLib/res/values-ru/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Использовать проверку HDCP только для DRM-контента"</item> <item msgid="45075631231212732">"Всегда использовать проверку HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (по умолчанию)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Выбор системы (по умолчанию)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-si/arrays.xml b/packages/SettingsLib/res/values-si/arrays.xml index 19bd549fe985..2808ba387a26 100644 --- a/packages/SettingsLib/res/values-si/arrays.xml +++ b/packages/SettingsLib/res/values-si/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM අන්තර්ගත සඳහා පමණක් HDCP පරික්ෂාව භාවිතා කරන්න"</item> <item msgid="45075631231212732">"සැමවිටම HDCP පිරික්සුම භාවිතා කරන්න"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (පෙරනිමි)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"පද්ධති තේරීම භාවිත කරන්න (පෙරනිමි)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-sk/arrays.xml b/packages/SettingsLib/res/values-sk/arrays.xml index ab948761438e..f3c25b4df13a 100644 --- a/packages/SettingsLib/res/values-sk/arrays.xml +++ b/packages/SettingsLib/res/values-sk/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Použiť kontrolu HDCP len pre obsah DRM"</item> <item msgid="45075631231212732">"Vždy používať kontrolu HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (predvolené)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Použiť voľbu systému (predvolené)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-sl/arrays.xml b/packages/SettingsLib/res/values-sl/arrays.xml index c291624ffed0..a924bdbed8d7 100644 --- a/packages/SettingsLib/res/values-sl/arrays.xml +++ b/packages/SettingsLib/res/values-sl/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Preverjanje HDCP uporabi samo za vsebino DRM"</item> <item msgid="45075631231212732">"Vedno uporabi preverjanje HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (privzeto)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Uporabi sistemsko izbiro (privzeto)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-sq/arrays.xml b/packages/SettingsLib/res/values-sq/arrays.xml index 64fdc6360728..244a534c4af8 100644 --- a/packages/SettingsLib/res/values-sq/arrays.xml +++ b/packages/SettingsLib/res/values-sq/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Përdor kontrollin e HDCP-së vetëm për përmbajtjet DRM"</item> <item msgid="45075631231212732">"Përdor gjithmonë kontrollin e HDCP-së"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (I parazgjedhur)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Përdor përzgjedhjen e sistemit (e parazgjedhur)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-sr/arrays.xml b/packages/SettingsLib/res/values-sr/arrays.xml index 02ed63640b12..4486bf193698 100644 --- a/packages/SettingsLib/res/values-sr/arrays.xml +++ b/packages/SettingsLib/res/values-sr/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Користи HDCP проверу само за DRM садржај"</item> <item msgid="45075631231212732">"Увек користи HDCP проверу"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (подразумевано)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Користи избор система (подразумевано)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-sv/arrays.xml b/packages/SettingsLib/res/values-sv/arrays.xml index 51f8c19e7722..cc7bcc8e06fd 100644 --- a/packages/SettingsLib/res/values-sv/arrays.xml +++ b/packages/SettingsLib/res/values-sv/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Använd bara HDCP-kontroll för DRM-innehåll"</item> <item msgid="45075631231212732">"Använd alltid HDCP-kontroll"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (standard)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Använd systemval (standardinställning)"</item> <item msgid="7539690996561263909">"SBC"</item> @@ -167,31 +173,31 @@ <item msgid="8489661142527693381">"endast buffert av kernellogg"</item> </string-array> <string-array name="window_animation_scale_entries"> - <item msgid="8134156599370824081">"Animering avstängd"</item> - <item msgid="6624864048416710414">"Animering i skala 0,5x"</item> - <item msgid="2219332261255416635">"Animering i skala 1x"</item> - <item msgid="3544428804137048509">"Animering i skala 1,5x"</item> - <item msgid="3110710404225974514">"Animering i skala 2x"</item> - <item msgid="4402738611528318731">"Animering i skala 5x"</item> - <item msgid="6189539267968330656">"Animering i skala 10x"</item> + <item msgid="8134156599370824081">"Animation avstängd"</item> + <item msgid="6624864048416710414">"Animation i skala 0,5x"</item> + <item msgid="2219332261255416635">"Animation i skala 1x"</item> + <item msgid="3544428804137048509">"Animation i skala 1,5x"</item> + <item msgid="3110710404225974514">"Animation i skala 2x"</item> + <item msgid="4402738611528318731">"Animation i skala 5x"</item> + <item msgid="6189539267968330656">"Animation i skala 10x"</item> </string-array> <string-array name="transition_animation_scale_entries"> - <item msgid="8464255836173039442">"Animering avstängd"</item> - <item msgid="3375781541913316411">"Animering i skala 0,5x"</item> - <item msgid="1991041427801869945">"Animering i skala 1x"</item> - <item msgid="4012689927622382874">"Animering i skala 1,5x"</item> - <item msgid="3289156759925947169">"Animering i skala 2x"</item> - <item msgid="7705857441213621835">"Animering i skala 5x"</item> - <item msgid="6660750935954853365">"Animering i skala 10x"</item> + <item msgid="8464255836173039442">"Animation avstängd"</item> + <item msgid="3375781541913316411">"Animation i skala 0,5x"</item> + <item msgid="1991041427801869945">"Animation i skala 1x"</item> + <item msgid="4012689927622382874">"Animation i skala 1,5x"</item> + <item msgid="3289156759925947169">"Animation i skala 2x"</item> + <item msgid="7705857441213621835">"Animation i skala 5x"</item> + <item msgid="6660750935954853365">"Animation i skala 10x"</item> </string-array> <string-array name="animator_duration_scale_entries"> - <item msgid="6039901060648228241">"Animering avstängd"</item> - <item msgid="1138649021950863198">"Animering i skala 0,5x"</item> - <item msgid="4394388961370833040">"Animering i skala 1x"</item> - <item msgid="8125427921655194973">"Animering i skala 1,5x"</item> - <item msgid="3334024790739189573">"Animering i skala 2x"</item> - <item msgid="3170120558236848008">"Animering i skala 5x"</item> - <item msgid="1069584980746680398">"Animering i skala 10x"</item> + <item msgid="6039901060648228241">"Animation avstängd"</item> + <item msgid="1138649021950863198">"Animation i skala 0,5x"</item> + <item msgid="4394388961370833040">"Animation i skala 1x"</item> + <item msgid="8125427921655194973">"Animation i skala 1,5x"</item> + <item msgid="3334024790739189573">"Animation i skala 2x"</item> + <item msgid="3170120558236848008">"Animation i skala 5x"</item> + <item msgid="1069584980746680398">"Animation i skala 10x"</item> </string-array> <string-array name="overlay_display_devices_entries"> <item msgid="1606809880904982133">"Inga"</item> diff --git a/packages/SettingsLib/res/values-sw/arrays.xml b/packages/SettingsLib/res/values-sw/arrays.xml index fdc1baf0bda9..b694687d8bde 100644 --- a/packages/SettingsLib/res/values-sw/arrays.xml +++ b/packages/SettingsLib/res/values-sw/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Tumia ukaguaji wa HDCP kwa maudhui ya DRM pekee"</item> <item msgid="45075631231212732">"Kila wakati tumia ukakuaji wa HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Chaguo-msingi)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Tumia Uteuzi wa Mfumo (Chaguo-msingi)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ta/arrays.xml b/packages/SettingsLib/res/values-ta/arrays.xml index 62d66f557c59..2d75c0164f7c 100644 --- a/packages/SettingsLib/res/values-ta/arrays.xml +++ b/packages/SettingsLib/res/values-ta/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM உள்ளடக்கத்திற்கு மட்டும் HDCP சோதனையைப் பயன்படுத்து"</item> <item msgid="45075631231212732">"HDCP சரிபார்ப்பை எப்போதும் பயன்படுத்து"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (இயல்பு)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"சாதனத் தேர்வைப் பயன்படுத்து (இயல்பு)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-te/arrays.xml b/packages/SettingsLib/res/values-te/arrays.xml index 5915fb717dbe..39d84dda5d31 100644 --- a/packages/SettingsLib/res/values-te/arrays.xml +++ b/packages/SettingsLib/res/values-te/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"DRM కంటెంట్కు మాత్రమే HDCP తనిఖీని ఉపయోగించండి"</item> <item msgid="45075631231212732">"ఎప్పటికీ HDCP తనిఖీని ఉపయోగించు"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (డిఫాల్ట్)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"సిస్టమ్ ఎంపికను ఉపయోగించండి (డిఫాల్ట్)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-th/arrays.xml b/packages/SettingsLib/res/values-th/arrays.xml index 3d3d8f4b44e3..6d1c5d768d90 100644 --- a/packages/SettingsLib/res/values-th/arrays.xml +++ b/packages/SettingsLib/res/values-th/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"ใช้การตรวจสอบ HDCP สำหรับเนื้อหา DRM เท่านั้น"</item> <item msgid="45075631231212732">"ใช้การตรวจสอบ HDCP เสมอ"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ค่าเริ่มต้น)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"ใช้การเลือกระบบ (ค่าเริ่มต้น)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-tl/arrays.xml b/packages/SettingsLib/res/values-tl/arrays.xml index 886da9533e37..7a3fd30714fe 100644 --- a/packages/SettingsLib/res/values-tl/arrays.xml +++ b/packages/SettingsLib/res/values-tl/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Gamitin lang ang pagsusuring HDCP para sa nilalamang DRM"</item> <item msgid="45075631231212732">"Palaging gumamit ng pagsusuring HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Default)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Gamitin ang Pagpili ng System (Default)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-tr/arrays.xml b/packages/SettingsLib/res/values-tr/arrays.xml index 8c410dc25142..2a70fdaf947c 100644 --- a/packages/SettingsLib/res/values-tr/arrays.xml +++ b/packages/SettingsLib/res/values-tr/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP denetimini yalnızca DRM içeriği için kullan"</item> <item msgid="45075631231212732">"HDCP denetimini her zaman kullan"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Varsayılan)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Sistem Seçimini Kullan (Varsayılan)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-uk/arrays.xml b/packages/SettingsLib/res/values-uk/arrays.xml index 4ed308ceaf15..e3f21ad6b6f1 100644 --- a/packages/SettingsLib/res/values-uk/arrays.xml +++ b/packages/SettingsLib/res/values-uk/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Використовувати перевірку HDCP лише для вмісту, захищеного DRM"</item> <item msgid="45075631231212732">"Завжди використовувати перевірку HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (за умовчанням)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"acrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Використовувати вибір системи (за умовчанням)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-ur/arrays.xml b/packages/SettingsLib/res/values-ur/arrays.xml index 8b4ae4003c6e..8d46582e7fb2 100644 --- a/packages/SettingsLib/res/values-ur/arrays.xml +++ b/packages/SettingsLib/res/values-ur/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP چیکنگ صرف DRM مواد کیلئے استعمال کریں"</item> <item msgid="45075631231212732">"ہمیشہ HDCP چیکنگ استعمال کریں"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (ڈیفالٹ)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"سسٹم انتخاب کا استعمال کریں (ڈیفالٹ)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-uz/arrays.xml b/packages/SettingsLib/res/values-uz/arrays.xml index 4fa26c2b857d..16d325fec08a 100644 --- a/packages/SettingsLib/res/values-uz/arrays.xml +++ b/packages/SettingsLib/res/values-uz/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"HDCP tekshiruvi faqat DRM kontent uchun ishlatilsin"</item> <item msgid="45075631231212732">"Har doim HDCP tekshiruvidan foydalanilsin"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (asosiy)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Tizim tanlovi (birlamchi)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-vi/arrays.xml b/packages/SettingsLib/res/values-vi/arrays.xml index c9f3c33f714f..57e749fd1e75 100644 --- a/packages/SettingsLib/res/values-vi/arrays.xml +++ b/packages/SettingsLib/res/values-vi/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Chỉ sử dụng kiểm tra HDCP cho nội dung DRM"</item> <item msgid="45075631231212732">"Luôn sử dụng kiểm tra HDCP"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (Mặc định)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Sử dụng lựa chọn hệ thống (Mặc định)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-zh-rCN/arrays.xml b/packages/SettingsLib/res/values-zh-rCN/arrays.xml index 655bb6220703..3a80e7b6262f 100644 --- a/packages/SettingsLib/res/values-zh-rCN/arrays.xml +++ b/packages/SettingsLib/res/values-zh-rCN/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"仅使用 HDCP 检查 DRM 内容"</item> <item msgid="45075631231212732">"始终使用 HDCP 检查"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4(默认)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"使用系统选择(默认)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-zh-rHK/arrays.xml b/packages/SettingsLib/res/values-zh-rHK/arrays.xml index 7432ab41b769..85c151eea12a 100644 --- a/packages/SettingsLib/res/values-zh-rHK/arrays.xml +++ b/packages/SettingsLib/res/values-zh-rHK/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"僅使用 HDCP 檢查 DRM 內容"</item> <item msgid="45075631231212732">"永遠使用 HDCP 檢查"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (預設)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"使用系統選擇 (預設)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-zh-rTW/arrays.xml b/packages/SettingsLib/res/values-zh-rTW/arrays.xml index f5f3424a3d64..ce2e89fd6047 100644 --- a/packages/SettingsLib/res/values-zh-rTW/arrays.xml +++ b/packages/SettingsLib/res/values-zh-rTW/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"僅使用 HDCP 檢查 DRM 內容"</item> <item msgid="45075631231212732">"一律使用 HDCP 檢查"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"AVRCP 1.4 (預設)"</item> + <item msgid="2809759619990248160">"AVRCP 1.3"</item> + <item msgid="6199178154704729352">"AVRCP 1.5"</item> + <item msgid="5172170854953034852">"AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"avrcp14"</item> + <item msgid="3011533352527449572">"avrcp13"</item> + <item msgid="8837606198371920819">"avrcp15"</item> + <item msgid="3422726142222090896">"avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"使用系統選擇 (預設)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/res/values-zu/arrays.xml b/packages/SettingsLib/res/values-zu/arrays.xml index 7ec474527672..3d0de36adb02 100644 --- a/packages/SettingsLib/res/values-zu/arrays.xml +++ b/packages/SettingsLib/res/values-zu/arrays.xml @@ -58,12 +58,18 @@ <item msgid="3878793616631049349">"Sebenzisa ukuhlola kwe-HDCP kokuqukethwe i-DRM kuphela"</item> <item msgid="45075631231212732">"Sebenzisa njalo ukuhlola kwe-HDPC"</item> </string-array> - <!-- no translation found for bluetooth_avrcp_versions:1 (2809759619990248160) --> - <!-- no translation found for bluetooth_avrcp_versions:2 (6199178154704729352) --> - <!-- no translation found for bluetooth_avrcp_versions:3 (5172170854953034852) --> - <!-- no translation found for bluetooth_avrcp_version_values:1 (3011533352527449572) --> - <!-- no translation found for bluetooth_avrcp_version_values:2 (8837606198371920819) --> - <!-- no translation found for bluetooth_avrcp_version_values:3 (3422726142222090896) --> + <string-array name="bluetooth_avrcp_versions"> + <item msgid="5347678900838034763">"I-AVRCP 1.4 (Okuzenzakalelayo)"</item> + <item msgid="2809759619990248160">"I-AVRCP 1.3"</item> + <item msgid="6199178154704729352">"I-AVRCP 1.5"</item> + <item msgid="5172170854953034852">"I-AVRCP 1.6"</item> + </string-array> + <string-array name="bluetooth_avrcp_version_values"> + <item msgid="2838624067805073303">"I-avrcp14"</item> + <item msgid="3011533352527449572">"I-avrcp13"</item> + <item msgid="8837606198371920819">"I-avrcp15"</item> + <item msgid="3422726142222090896">"I-avrcp16"</item> + </string-array> <string-array name="bluetooth_a2dp_codec_titles"> <item msgid="7065842274271279580">"Sebenzisa ukukhetha kwesistimu (Okuzenzakalelayo)"</item> <item msgid="7539690996561263909">"SBC"</item> diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java index 713e9675cccd..9b75c00aeb3a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java @@ -26,6 +26,7 @@ import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.graphics.drawable.Icon; import android.net.Uri; +import android.os.AsyncTask; import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; @@ -534,24 +535,35 @@ public class TileUtils { } } - public static void updateTileUsingSummaryUri(Context context, Tile tile) { + public static void updateTileUsingSummaryUri(Context context, final Tile tile) { if (tile == null || tile.metaData == null || - !tile.metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) { + !tile.metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) { return; } - final Map<String, IContentProvider> providerMap = new HashMap<>(); + new AsyncTask<Void, Void, Bundle>() { + @Override + protected Bundle doInBackground(Void... params) { + return getBundleFromUri(context, + tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI), new HashMap<>()); + } - final String uriString = tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI); - final Bundle bundle = getBundleFromUri(context, uriString, providerMap); - final String overrideSummary = getString(bundle, META_DATA_PREFERENCE_SUMMARY); - final String overrideTitle = getString(bundle, META_DATA_PREFERENCE_TITLE); - if (overrideSummary != null) { - tile.remoteViews.setTextViewText(android.R.id.summary, overrideSummary); - } - if (overrideTitle != null) { - tile.remoteViews.setTextViewText(android.R.id.title, overrideTitle); - } + @Override + protected void onPostExecute(Bundle bundle) { + if (bundle == null) { + return; + } + final String overrideSummary = getString(bundle, META_DATA_PREFERENCE_SUMMARY); + final String overrideTitle = getString(bundle, META_DATA_PREFERENCE_TITLE); + + if (overrideSummary != null) { + tile.remoteViews.setTextViewText(android.R.id.summary, overrideSummary); + } + if (overrideTitle != null) { + tile.remoteViews.setTextViewText(android.R.id.title, overrideTitle); + } + } + }.execute(); } private static String getString(Bundle bundle, String key) { diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index ae0ee2b74b67..58f122619cd6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -134,7 +134,7 @@ public class AccessPoint implements Comparable<AccessPoint> { private final Map<String, TimestampedScoredNetwork> mScoredNetworkCache = new HashMap<>(); /** Maximum age of scan results to hold onto while actively scanning. **/ - private static final long MAX_SCAN_RESULT_AGE_MILLIS = 15000; + private static final long MAX_SCAN_RESULT_AGE_MILLIS = 25000; static final String KEY_NETWORKINFO = "key_networkinfo"; static final String KEY_WIFIINFO = "key_wifiinfo"; @@ -424,6 +424,11 @@ public class AccessPoint implements Comparable<AccessPoint> { } builder.append(",metered=").append(isMetered()); + if (WifiTracker.sVerboseLogging) { + builder.append(",rssi=").append(mRssi); + builder.append(",scan cache size=").append(mScanResultCache.size()); + } + return builder.append(')').toString(); } @@ -933,6 +938,7 @@ public class AccessPoint implements Comparable<AccessPoint> { evictOldScanResults(); // TODO: sort list by RSSI or age + long nowMs = SystemClock.elapsedRealtime(); for (ScanResult result : mScanResultCache.values()) { if (result.frequency >= LOWER_FREQ_5GHZ && result.frequency <= HIGHER_FREQ_5GHZ) { @@ -943,7 +949,7 @@ public class AccessPoint implements Comparable<AccessPoint> { maxRssi5 = result.level; } if (num5 <= maxDisplayedScans) { - scans5GHz.append(verboseScanResultSummary(result, bssid)); + scans5GHz.append(verboseScanResultSummary(result, bssid, nowMs)); } } else if (result.frequency >= LOWER_FREQ_24GHZ && result.frequency <= HIGHER_FREQ_24GHZ) { @@ -954,7 +960,7 @@ public class AccessPoint implements Comparable<AccessPoint> { maxRssi24 = result.level; } if (num24 <= maxDisplayedScans) { - scans24GHz.append(verboseScanResultSummary(result, bssid)); + scans24GHz.append(verboseScanResultSummary(result, bssid, nowMs)); } } } @@ -982,7 +988,7 @@ public class AccessPoint implements Comparable<AccessPoint> { } @VisibleForTesting - /* package */ String verboseScanResultSummary(ScanResult result, String bssid) { + /* package */ String verboseScanResultSummary(ScanResult result, String bssid, long nowMs) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(" \n{").append(result.BSSID); if (result.BSSID.equals(bssid)) { @@ -995,6 +1001,8 @@ public class AccessPoint implements Comparable<AccessPoint> { stringBuilder.append(",") .append(getSpeedLabel(speed)); } + int ageSeconds = (int) (nowMs - result.timestamp / 1000) / 1000; + stringBuilder.append(",").append(ageSeconds).append("s"); stringBuilder.append("}"); return stringBuilder.toString(); } @@ -1189,6 +1197,7 @@ public class AccessPoint implements Comparable<AccessPoint> { /** Attempt to update the AccessPoint and return true if an update occurred. */ public boolean update( @Nullable WifiConfiguration config, WifiInfo info, NetworkInfo networkInfo) { + boolean updated = false; final int oldLevel = getLevel(); if (info != null && isInfoForThisAccessPoint(config, info)) { @@ -1220,6 +1229,7 @@ public class AccessPoint implements Comparable<AccessPoint> { mAccessPointListener.onLevelChanged(this); } } + return updated; } diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/TimestampedScoredNetwork.java b/packages/SettingsLib/src/com/android/settingslib/wifi/TimestampedScoredNetwork.java index abc9b022b90b..1286d57b4959 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/TimestampedScoredNetwork.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/TimestampedScoredNetwork.java @@ -33,7 +33,7 @@ class TimestampedScoredNetwork implements Parcelable { } protected TimestampedScoredNetwork(Parcel in) { - mScore = ScoredNetwork.CREATOR.createFromParcel(in); + mScore = in.readParcelable(ScoredNetwork.class.getClassLoader()); mUpdatedTimestampMillis = in.readLong(); } @@ -57,7 +57,7 @@ class TimestampedScoredNetwork implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { - mScore.writeToParcel(dest, flags); + dest.writeParcelable(mScore, flags); dest.writeLong(mUpdatedTimestampMillis); } diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index 27cab07d9ebc..664dcfcb9608 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java @@ -20,7 +20,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.database.ContentObserver; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; @@ -70,8 +69,7 @@ public class WifiTracker { * Default maximum age in millis of cached scored networks in * {@link AccessPoint#mScoredNetworkCache} to be used for speed label generation. */ - private static final long MAX_CACHED_SCORE_AGE_MILLIS_DEFAULT = - 20 * DateUtils.MINUTE_IN_MILLIS; + private static final long DEFAULT_MAX_CACHED_SCORE_AGE_MILLIS = 20 * DateUtils.MINUTE_IN_MILLIS; private static final String TAG = "WifiTracker"; private static final boolean DBG() { @@ -146,8 +144,6 @@ public class WifiTracker { private final NetworkScoreManager mNetworkScoreManager; private final WifiNetworkScoreCache mScoreCache; private boolean mNetworkScoringUiEnabled; - private final ContentObserver mScoringEnabledObserver; - private final ContentObserver mSpeedLabelCacheAgeObserver; private long mMaxSpeedLabelScoreCacheAge; @GuardedBy("mLock") @@ -246,27 +242,6 @@ public class WifiTracker { updateNetworkScores(); } }); - - mScoringEnabledObserver = new ContentObserver(mWorkHandler) { - @Override - public void onChange(boolean selfChange) { - mNetworkScoringUiEnabled = - Settings.Global.getInt( - mContext.getContentResolver(), - Settings.Global.NETWORK_SCORING_UI_ENABLED, 0) == 1; - } - }; - - mSpeedLabelCacheAgeObserver = new ContentObserver(mWorkHandler) { - @Override - public void onChange(boolean selfChange) { - mMaxSpeedLabelScoreCacheAge = - Settings.Global.getLong( - mContext.getContentResolver(), - Settings.Global.SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS, - MAX_CACHED_SCORE_AGE_MILLIS_DEFAULT); - } - }; } /** Synchronously update the list of access points with the latest information. */ @@ -342,18 +317,16 @@ public class WifiTracker { synchronized (mLock) { registerScoreCache(); - mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor(Settings.Global.NETWORK_SCORING_UI_ENABLED), - false /* notifyForDescendants */, - mScoringEnabledObserver); - mScoringEnabledObserver.onChange(false /* selfChange */); // Set mScoringUiEnabled + mNetworkScoringUiEnabled = + Settings.Global.getInt( + mContext.getContentResolver(), + Settings.Global.NETWORK_SCORING_UI_ENABLED, 0) == 1; - mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor( - Settings.Global.SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS), - false /* notifyForDescendants */, - mSpeedLabelCacheAgeObserver); - mSpeedLabelCacheAgeObserver.onChange(false /* selfChange */); // Set initial value + mMaxSpeedLabelScoreCacheAge = + Settings.Global.getLong( + mContext.getContentResolver(), + Settings.Global.SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS, + DEFAULT_MAX_CACHED_SCORE_AGE_MILLIS); resumeScanning(); if (!mRegistered) { @@ -405,8 +378,6 @@ public class WifiTracker { } unregisterScoreCache(); pauseScanning(); - mContext.getContentResolver().unregisterContentObserver(mScoringEnabledObserver); - mContext.getContentResolver().unregisterContentObserver(mSpeedLabelCacheAgeObserver); mWorkHandler.removePendingMessages(); mMainHandler.removePendingMessages(); @@ -660,7 +631,7 @@ public class WifiTracker { String prevSsid = prevAccessPoint.getSsidStr(); boolean found = false; for (AccessPoint newAccessPoint : accessPoints) { - if (newAccessPoint.getSsid() != null && newAccessPoint.getSsid() + if (newAccessPoint.getSsidStr() != null && newAccessPoint.getSsidStr() .equals(prevSsid)) { found = true; break; @@ -712,24 +683,23 @@ public class WifiTracker { private void updateNetworkInfo(NetworkInfo networkInfo) { /* sticky broadcasts can call this when wifi is disabled */ if (!mWifiManager.isWifiEnabled()) { - mMainHandler.sendEmptyMessage(MainHandler.MSG_PAUSE_SCANNING); clearAccessPointsAndConditionallyUpdate(); return; } - if (networkInfo != null && - networkInfo.getDetailedState() == DetailedState.OBTAINING_IPADDR) { - mMainHandler.sendEmptyMessage(MainHandler.MSG_PAUSE_SCANNING); - } else { - mMainHandler.sendEmptyMessage(MainHandler.MSG_RESUME_SCANNING); - } - if (networkInfo != null) { mLastNetworkInfo = networkInfo; + if (DBG()) { + Log.d(TAG, "mLastNetworkInfo set: " + mLastNetworkInfo); + } } WifiConfiguration connectionConfig = null; + mLastInfo = mWifiManager.getConnectionInfo(); + if (DBG()) { + Log.d(TAG, "mLastInfo set as: " + mLastInfo); + } if (mLastInfo != null) { connectionConfig = getWifiConfigurationForNetworkId(mLastInfo.getNetworkId(), mWifiManager.getConfiguredNetworks()); @@ -753,7 +723,6 @@ public class WifiTracker { } if (reorder) Collections.sort(mInternalAccessPoints); - if (updated) mMainHandler.sendEmptyMessage(MainHandler.MSG_ACCESS_POINT_CHANGED); } } @@ -902,6 +871,9 @@ public class WifiTracker { if (mScanner != null) { mScanner.pause(); } + synchronized (mLock) { + mStaleScanResults = true; + } break; } } @@ -964,6 +936,9 @@ public class WifiTracker { if (mScanner != null) { mScanner.pause(); } + synchronized (mLock) { + mStaleScanResults = true; + } } mMainHandler.obtainMessage(MainHandler.MSG_WIFI_STATE_CHANGED, msg.arg1, 0) .sendToTarget(); @@ -1018,7 +993,7 @@ public class WifiTracker { } return; } - sendEmptyMessageDelayed(0, WIFI_RESCAN_INTERVAL_MS); + sendEmptyMessageDelayed(MSG_SCAN, WIFI_RESCAN_INTERVAL_MS); } } @@ -1111,10 +1086,12 @@ public class WifiTracker { oldAccessPoints.put(accessPoint.mId, accessPoint); } - if (DBG()) { - Log.d(TAG, "Starting to copy AP items on the MainHandler"); - } synchronized (mLock) { + if (DBG()) { + Log.d(TAG, "Starting to copy AP items on the MainHandler. Internal APs: " + + mInternalAccessPoints); + } + if (notifyListeners) { notificationMap = mAccessPointListenerAdapter.mPendingNotifications.clone(); } diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java index 37a69706a390..66f4a0114dc1 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java @@ -453,7 +453,7 @@ public class AccessPointTest { ap.update(mockWifiNetworkScoreCache, true /* scoringUiEnabled */, MAX_SCORE_CACHE_AGE_MILLIS); - String summary = ap.verboseScanResultSummary(scanResults.get(0), null); + String summary = ap.verboseScanResultSummary(scanResults.get(0), null, 0); assertThat(summary.contains(mContext.getString(R.string.speed_label_very_fast))).isTrue(); } diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java index 3d01f6bce565..f25bb28717fa 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java @@ -106,15 +106,30 @@ public class WifiTrackerTest { private static final byte SCORE_2 = 15; private static final int BADGE_2 = AccessPoint.Speed.FAST; - private static final int CONNECTED_NETWORK_ID = 123; + // TODO(b/65594609): Convert mutable Data objects to instance variables / builder pattern + private static final int NETWORK_ID_1 = 123; private static final int CONNECTED_RSSI = -50; private static final WifiInfo CONNECTED_AP_1_INFO = new WifiInfo(); static { CONNECTED_AP_1_INFO.setSSID(WifiSsid.createFromAsciiEncoded(SSID_1)); CONNECTED_AP_1_INFO.setBSSID(BSSID_1); - CONNECTED_AP_1_INFO.setNetworkId(CONNECTED_NETWORK_ID); + CONNECTED_AP_1_INFO.setNetworkId(NETWORK_ID_1); CONNECTED_AP_1_INFO.setRssi(CONNECTED_RSSI); } + private static final WifiConfiguration CONFIGURATION_1 = new WifiConfiguration(); + static { + CONFIGURATION_1.SSID = SSID_1; + CONFIGURATION_1.BSSID = BSSID_1; + CONFIGURATION_1.networkId = NETWORK_ID_1; + } + + private static final int NETWORK_ID_2 = 2; + private static final WifiConfiguration CONFIGURATION_2 = new WifiConfiguration(); + static { + CONFIGURATION_2.SSID = SSID_2; + CONFIGURATION_2.BSSID = BSSID_2; + CONFIGURATION_2.networkId = NETWORK_ID_2; + } @Captor ArgumentCaptor<WifiNetworkScoreCache> mScoreCacheCaptor; @Mock private ConnectivityManager mockConnectivityManager; @@ -160,6 +175,8 @@ public class WifiTrackerTest { when(mockWifiManager.isWifiEnabled()).thenReturn(true); when(mockWifiManager.getScanResults()) .thenReturn(Arrays.asList(buildScanResult1(), buildScanResult2())); + when(mockWifiManager.getConfiguredNetworks()) + .thenReturn(Arrays.asList(CONFIGURATION_1, CONFIGURATION_2)); when(mockCurve1.lookupScore(RSSI_1)).thenReturn(SCORE_1); @@ -331,8 +348,7 @@ public class WifiTrackerTest { WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = SSID_1; configuration.BSSID = BSSID_1; - configuration.networkId = CONNECTED_NETWORK_ID; - when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); + configuration.networkId = NETWORK_ID_1; NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); @@ -363,6 +379,24 @@ public class WifiTrackerTest { mainLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS)); } + private void switchToNetwork2(WifiTracker tracker) throws InterruptedException { + NetworkInfo networkInfo = new NetworkInfo( + ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); + networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTING, "connecting", "test"); + + WifiInfo info = new WifiInfo(); + info.setSSID(WifiSsid.createFromAsciiEncoded(SSID_2)); + info.setBSSID(BSSID_2); + info.setRssi(CONNECTED_RSSI); + info.setNetworkId(NETWORK_ID_2); + when(mockWifiManager.getConnectionInfo()).thenReturn(info); + + Intent intent = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); + intent.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); + tracker.mReceiver.onReceive(mContext, intent); + waitForHandlersToProcessCurrentlyEnqueuedMessages(tracker); + } + @Test public void testAccessPointListenerSetWhenLookingUpUsingScanResults() { ScanResult scanResult = new ScanResult(); @@ -720,12 +754,6 @@ public class WifiTrackerTest { when(mockWifiManager.getConnectionInfo()).thenReturn(CONNECTED_AP_1_INFO); - WifiConfiguration configuration = new WifiConfiguration(); - configuration.SSID = SSID_1; - configuration.BSSID = BSSID_1; - configuration.networkId = CONNECTED_NETWORK_ID; - when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); - NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test"); @@ -879,4 +907,17 @@ public class WifiTrackerTest { assertThat(tracker.isConnected()).isFalse(); verify(mockWifiListener, times(2)).onConnectedChanged(); } + + @Test + public void updateNetworkInfoWithNewConnectedNetwork_switchesNetworks() throws Exception { + WifiTracker tracker = createTrackerWithScanResultsAndAccessPoint1Connected(); + + switchToNetwork2(tracker); + + List<AccessPoint> aps = tracker.getAccessPoints(); + assertThat(aps.get(0).getSsidStr()).isEqualTo(SSID_2); + + assertThat(aps.get(0).isReachable()).isTrue(); + assertThat(aps.get(1).isReachable()).isTrue(); + } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java index 88035e4fc600..76f6a20959fb 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java @@ -66,6 +66,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowApplication; import java.util.ArrayList; import java.util.Collections; @@ -438,6 +439,8 @@ public class TileUtilsTest { tile.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, URI_GET_SUMMARY); tile.remoteViews = mock(RemoteViews.class); TileUtils.updateTileUsingSummaryUri(mContext, tile); + ShadowApplication.runBackgroundTasks(); + verify(tile.remoteViews, times(1)).setTextViewText(anyInt(), eq(expectedSummary)); } diff --git a/packages/Shell/res/values-pa/strings.xml b/packages/Shell/res/values-pa/strings.xml index 4ba2c51d44ad..de29ff1a4ee6 100644 --- a/packages/Shell/res/values-pa/strings.xml +++ b/packages/Shell/res/values-pa/strings.xml @@ -22,7 +22,7 @@ <string name="bugreport_finished_title" msgid="4429132808670114081">"ਬੱਗ ਰਿਪੋਰਟ <xliff:g id="ID">#%d</xliff:g> ਕੈਪਚਰ ਕੀਤੀ ਗਈ"</string> <string name="bugreport_updating_title" msgid="4423539949559634214">"ਬੱਗ ਰਿਪੋਰਟ ਵਿੱਚ ਵੇਰਵਿਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string> <string name="bugreport_updating_wait" msgid="3322151947853929470">"ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ..."</string> - <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"ਬੱਗ ਰਿਪੋਰਟ ਜਲਦ ਹੀ ਫ਼ੋਨ \'ਤੇ ਵਿਖਾਈ ਦੇਵੇਗੀ"</string> + <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"ਬੱਗ ਰਿਪੋਰਟ ਜਲਦ ਹੀ ਫ਼ੋਨ \'ਤੇ ਦਿਖਾਈ ਦੇਵੇਗੀ"</string> <string name="bugreport_finished_text" product="tv" msgid="5758325479058638893">"ਆਪਣੀ ਬੱਗ ਰਿਪੋਰਟ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਚੁਣੋ"</string> <string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"ਆਪਣੀ ਬੱਗ ਰਿਪੋਰਟ ਸਾਂਝੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string> <string name="bugreport_finished_pending_screenshot_text" product="tv" msgid="2343263822812016950">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਦੇ ਬਿਨਾਂ ਆਪਣੀ ਬੱਗ ਰਿਪੋਰਟ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਚੁਣੋ ਜਾਂ ਸਕ੍ਰੀਨਸ਼ਾਟ ਦੇ ਪੂਰੇ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ"</string> diff --git a/packages/SystemUI/res-keyguard/values-el/strings.xml b/packages/SystemUI/res-keyguard/values-el/strings.xml index 34c42950a359..5a21c2e96ae8 100644 --- a/packages/SystemUI/res-keyguard/values-el/strings.xml +++ b/packages/SystemUI/res-keyguard/values-el/strings.xml @@ -56,7 +56,7 @@ <string name="kg_forgot_pattern_button_text" msgid="534245177645252620">"Ξεχάσατε το μοτίβο"</string> <string name="kg_wrong_pattern" msgid="7620081431514773802">"Λάθος μοτίβο"</string> <string name="kg_wrong_password" msgid="4580683060277329277">"Λανθασμένος κωδικός πρόσβασης"</string> - <string name="kg_wrong_pin" msgid="4785660766909463466">"Λανθασμένος αριθμός PIN"</string> + <string name="kg_wrong_pin" msgid="4785660766909463466">"Λανθασμένο PIN"</string> <plurals name="kg_too_many_failed_attempts_countdown" formatted="false" msgid="4368805541257003755"> <item quantity="other">Δοκιμάστε ξανά σε <xliff:g id="NUMBER">%d</xliff:g> δευτερόλεπτα.</item> <item quantity="one">Δοκιμάστε ξανά σε 1 δευτερόλεπτο.</item> @@ -111,13 +111,13 @@ <string name="accessibility_ime_switch_button" msgid="2695096475319405612">"Εναλλαγή μεθόδου εισαγωγής"</string> <string name="airplane_mode" msgid="3807209033737676010">"Λειτουργία πτήσης"</string> <string name="kg_prompt_reason_restart_pattern" msgid="7246972020562621506">"Απαιτείται μοτίβο μετά από την επανεκκίνηση της συσκευής"</string> - <string name="kg_prompt_reason_restart_pin" msgid="6303592361322290145">"Απαιτείται αριθμός PIN μετά από την επανεκκίνηση της συσκευής"</string> + <string name="kg_prompt_reason_restart_pin" msgid="6303592361322290145">"Απαιτείται PIN μετά από την επανεκκίνηση της συσκευής"</string> <string name="kg_prompt_reason_restart_password" msgid="6984641181515902406">"Απαιτείται κωδικός πρόσβασης μετά από την επανεκκίνηση της συσκευής"</string> <string name="kg_prompt_reason_timeout_pattern" msgid="5304487696073914063">"Απαιτείται μοτίβο για πρόσθετη ασφάλεια"</string> - <string name="kg_prompt_reason_timeout_pin" msgid="8851462864335757813">"Απαιτείται αριθμός PIN για πρόσθετη ασφάλεια"</string> + <string name="kg_prompt_reason_timeout_pin" msgid="8851462864335757813">"Απαιτείται PIN για πρόσθετη ασφάλεια"</string> <string name="kg_prompt_reason_timeout_password" msgid="6563904839641583441">"Απαιτείται κωδικός πρόσβασης για πρόσθετη ασφάλεια"</string> <string name="kg_prompt_reason_switch_profiles_pattern" msgid="3398054847288438444">"Απαιτείται μοτίβο κατά την εναλλαγή προφίλ"</string> - <string name="kg_prompt_reason_switch_profiles_pin" msgid="7426368139226961699">"Απαιτείται αριθμός PIN κατά την εναλλαγή προφίλ"</string> + <string name="kg_prompt_reason_switch_profiles_pin" msgid="7426368139226961699">"Απαιτείται PIN κατά την εναλλαγή προφίλ"</string> <string name="kg_prompt_reason_switch_profiles_password" msgid="8383831046318421845">"Απαιτείται κωδικός πρόσβασης κατά την εναλλαγή προφίλ"</string> <string name="kg_prompt_reason_device_admin" msgid="3452168247888906179">"Η συσκευή κλειδώθηκε από τον διαχειριστή"</string> <string name="kg_prompt_reason_user_request" msgid="8236951765212462286">"Η συσκευή κλειδώθηκε με μη αυτόματο τρόπο"</string> diff --git a/packages/SystemUI/res-keyguard/values-pa/strings.xml b/packages/SystemUI/res-keyguard/values-pa/strings.xml index ce865b6de36e..82f7227c7411 100644 --- a/packages/SystemUI/res-keyguard/values-pa/strings.xml +++ b/packages/SystemUI/res-keyguard/values-pa/strings.xml @@ -25,8 +25,8 @@ <string name="keyguard_password_enter_puk_code" msgid="670683628782925409">"ਸਿਮ PUK ਅਤੇ ਨਵਾਂ ਪਿੰਨ ਕੋਡ ਟਾਈਪ ਕਰੋ"</string> <string name="keyguard_password_enter_puk_prompt" msgid="3747778500166059332">"ਸਿਮ PUK ਕੋਡ"</string> <string name="keyguard_password_enter_pin_prompt" msgid="8188243197504453830">"ਨਵਾਂ ਸਿਮ ਪਿੰਨ ਕੋਡ"</string> - <string name="keyguard_password_entry_touch_hint" msgid="5790410752696806482"><font size="17">"ਪਾਸਵਰਡ ਟਾਈਪ ਕਰਨ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ"</font></string> - <string name="keyguard_password_enter_password_code" msgid="595980919238127672">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਟਾਈਪ ਕਰੋ"</string> + <string name="keyguard_password_entry_touch_hint" msgid="5790410752696806482"><font size="17">"ਪਾਸਵਰਡ ਟਾਈਪ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ"</font></string> + <string name="keyguard_password_enter_password_code" msgid="595980919238127672">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਟਾਈਪ ਕਰੋ"</string> <string name="keyguard_password_enter_pin_password_code" msgid="7504123374204446086">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਪਿੰਨ ਟਾਈਪ ਕਰੋ"</string> <string name="keyguard_password_wrong_pin_code" msgid="6535018036285012028">"ਗਲਤ ਪਿੰਨ ਕੋਡ।"</string> <string name="keyguard_charged" msgid="2222329688813033109">"ਚਾਰਜ ਹੋ ਗਿਆ"</string> @@ -34,15 +34,15 @@ <string name="keyguard_plugged_in_charging_fast" msgid="8869226755413795173">"ਤੇਜ਼ੀ ਨਾਲ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ"</string> <string name="keyguard_plugged_in_charging_slowly" msgid="6637043106038550407">"ਹੌਲੀ-ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ"</string> <string name="keyguard_low_battery" msgid="9218432555787624490">"ਆਪਣਾ ਚਾਰਜਰ ਕਨੈਕਟ ਕਰੋ।"</string> - <string name="keyguard_instructions_when_pattern_disabled" msgid="8566679946700751371">"ਅਨਲੌਕ ਕਰਨ ਲਈ \'ਮੀਨੂ\' ਦਬਾਓ।"</string> + <string name="keyguard_instructions_when_pattern_disabled" msgid="8566679946700751371">"ਅਣਲਾਕ ਕਰਨ ਲਈ \"ਮੀਨੂ\" ਦਬਾਓ।"</string> <string name="keyguard_network_locked_message" msgid="6743537524631420759">"ਨੈੱਟਵਰਕ ਲੌਕ ਕੀਤਾ ਗਿਆ"</string> <string name="keyguard_missing_sim_message_short" msgid="6327533369959764518">"ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ"</string> <string name="keyguard_missing_sim_message" product="tablet" msgid="4550152848200783542">"ਟੈਬਲੈੱਟ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ।"</string> - <string name="keyguard_missing_sim_message" product="default" msgid="6585414237800161146">"ਫ਼ੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ।"</string> + <string name="keyguard_missing_sim_message" product="default" msgid="6585414237800161146">"ਫ਼ੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ।"</string> <string name="keyguard_missing_sim_instructions" msgid="7350295932015220392">"ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string> <string name="keyguard_missing_sim_instructions_long" msgid="589889372883904477">"SIM ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ ਹੈ। ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"</string> <string name="keyguard_permanent_disabled_sim_message_short" msgid="654102080186420706">"ਨਾ-ਵਰਤਣਯੋਗ SIM ਕਾਰਡ।"</string> - <string name="keyguard_permanent_disabled_sim_instructions" msgid="4683178224791318347">"ਤੁਹਾਡਾ SIM ਕਾਰਡ ਸਥਾਈ ਤੌਰ \'ਤੇ ਅਯੋਗ ਬਣਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।\n ਇੱਕ ਹੋਰ SIM ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈੱਸ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> + <string name="keyguard_permanent_disabled_sim_instructions" msgid="4683178224791318347">"ਤੁਹਾਡਾ ਸਿਮ ਕਾਰਡ ਸਥਾਈ ਤੌਰ \'ਤੇ ਅਯੋਗ ਬਣਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।\n ਇੱਕ ਹੋਰ ਸਿਮ ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈੱਸ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> <string name="keyguard_sim_locked_message" msgid="953766009432168127">"SIM ਕਾਰਡ ਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string> <string name="keyguard_sim_puk_locked_message" msgid="1772789643694942073">"SIM ਕਾਰਡ PUK-ਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string> <string name="keyguard_sim_unlock_progress_dialog_message" msgid="3586601150825821675">"SIM ਕਾਰਡ ਨੂੰ ਅਨਲੌਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> @@ -64,7 +64,7 @@ <string name="kg_pattern_instructions" msgid="5547646893001491340">"ਆਪਣਾ ਪੈਟਰਨ ਉਲੀਕੋ"</string> <string name="kg_sim_pin_instructions" msgid="6389000973113699187">"ਸਿਮ ਪਿੰਨ ਦਾਖਲ ਕਰੋ।"</string> <string name="kg_sim_pin_instructions_multi" msgid="1643757228644271861">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" ਲਈ ਸਿਮ ਪਿੰਨ ਦਾਖਲ ਕਰੋ।"</string> - <string name="kg_sim_lock_instructions_esim" msgid="4957650659201013804">"ਮੋਬਾਈਲ ਸੇਵਾ ਤੋਂ ਬਿਨਾਂ ਡੀਵਾਈਸ ਨੂੰ ਵਰਤਣ ਲਈ eSIM ਅਯੋਗ ਬਣਾਓ।"</string> + <string name="kg_sim_lock_instructions_esim" msgid="4957650659201013804">"ਮੋਬਾਈਲ ਸੇਵਾ ਤੋਂ ਬਿਨਾਂ ਡੀਵਾਈਸ ਨੂੰ ਵਰਤਣ ਲਈ eSIM ਬੰਦ ਕਰੋ।"</string> <string name="kg_pin_instructions" msgid="4069609316644030034">"ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string> <string name="kg_password_instructions" msgid="136952397352976538">"ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string> <string name="kg_puk_enter_puk_hint" msgid="2288964170039899277">"ਸਿਮ ਹੁਣ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਾਰੀ ਰੱਖਣ ਲਈ PUK ਕੋਡ ਦਾਖਲ ਕਰੋ। ਵੇਰਵਿਆਂ ਲਈ ਕੈਰੀਅਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string> @@ -79,21 +79,21 @@ <string name="kg_login_too_many_attempts" msgid="6604574268387867255">"ਬਹੁਤ ਜ਼ਿਆਦਾ ਪੈਟਰਨ ਕੋਸ਼ਿਸ਼ਾਂ"</string> <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8637788033282252027">"ਤੁਸੀਂ ਆਪਣਾ ਪਿੰਨ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7724148763268377734">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ।\n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4820967667848302092">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4820967667848302092">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1629351522209932316">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਹ ਟੈਬਲੈੱਟ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> - <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="3921998703529189931">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਹ ਫ਼ੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> + <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="3921998703529189931">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਹ ਫ਼ੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="4694232971224663735">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਹ ਟੈਬਲੈੱਟ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> - <string name="kg_failed_attempts_now_wiping" product="default" msgid="2365964340830006961">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਹ ਫ਼ੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> + <string name="kg_failed_attempts_now_wiping" product="default" msgid="2365964340830006961">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਹ ਫ਼ੋਨ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਇਸਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="1365418870560228936">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> - <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="2151286957817486128">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> + <string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="2151286957817486128">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="5464020754932560928">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> - <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="6171564974118059">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> + <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="6171564974118059">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="9154513795928824239">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਪ੍ਰੋਫਾਈਲ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="2162434417489128282">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਪ੍ਰੋਫਾਈਲ ਦਾ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="8966727588974691544">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="8476407539834855">"ਤੁਸੀਂ <xliff:g id="NUMBER">%d</xliff:g> ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਜਿਸ ਨਾਲ ਸਾਰਾ ਪ੍ਰੋਫਾਈਲ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।"</string> - <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="956706236554092172">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> - <string name="kg_failed_attempts_almost_at_login" product="default" msgid="8364140853305528449">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਨਲੌਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="956706236554092172">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> + <string name="kg_failed_attempts_almost_at_login" product="default" msgid="8364140853305528449">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string> <string name="kg_password_wrong_pin_code_pukked" msgid="3389829202093674267">"ਗਲਤ ਸਿਮ ਪਿੰਨ ਕੋਡ, ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਹੁਣ ਤੁਹਾਨੂੰ ਲਾਜ਼ਮੀ ਤੌਰ \'ਤੇ ਆਪਣੇ ਕੈਰੀਅਰ ਨਾਲ ਸੰਪਰਕ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।"</string> <plurals name="kg_password_wrong_pin_code" formatted="false" msgid="4314341367727055967"> <item quantity="one">ਗਲਤ ਸਿਮ ਪਿੰਨ ਕੋਡ, ਤੁਹਾਡੇ ਕੋਲ <xliff:g id="NUMBER_1">%d</xliff:g> ਕੋਸ਼ਿਸ਼ ਬਾਕੀ ਹੈ।</item> @@ -118,20 +118,20 @@ <string name="kg_prompt_reason_timeout_password" msgid="6563904839641583441">"ਵਧੀਕ ਸੁਰੱਖਿਆ ਲਈ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ"</string> <string name="kg_prompt_reason_switch_profiles_pattern" msgid="3398054847288438444">"ਜਦ ਤੁਸੀਂ ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਸਵਿੱਚ ਕਰਦੇ ਹੋ ਤਾਂ ਪੈਟਰਨ ਦੀ ਲੋੜ ਹੈ"</string> <string name="kg_prompt_reason_switch_profiles_pin" msgid="7426368139226961699">"ਜਦ ਤੁਸੀਂ ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਸਵਿੱਚ ਕਰਦੇ ਹੋ ਤਾਂ ਪਿੰਨ ਦੀ ਲੋੜ ਹੈ"</string> - <string name="kg_prompt_reason_switch_profiles_password" msgid="8383831046318421845">"ਜਦ ਤੁਸੀਂ ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਸਵਿੱਚ ਕਰਦੇ ਹੋ ਤਾਂ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ"</string> - <string name="kg_prompt_reason_device_admin" msgid="3452168247888906179">"ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਡੀਵਾਈਸ ਨੂੰ ਲੌਕ ਕੀਤਾ ਗਿਆ"</string> - <string name="kg_prompt_reason_user_request" msgid="8236951765212462286">"ਡੀਵਾਈਸ ਨੂੰ ਹੱਥੀਂ ਲੌਕ ਕੀਤਾ ਗਿਆ"</string> + <string name="kg_prompt_reason_switch_profiles_password" msgid="8383831046318421845">"ਜਦ ਤੁਸੀਂ ਇੱਕ ਪ੍ਰੋਫਾਈਲ ਤੋਂ ਦੂਜੇ \'ਤੇ ਜਾਂਦੇ ਹੋ ਤਾਂ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ"</string> + <string name="kg_prompt_reason_device_admin" msgid="3452168247888906179">"ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਡੀਵਾਈਸ ਨੂੰ ਲਾਕ ਕੀਤਾ ਗਿਆ"</string> + <string name="kg_prompt_reason_user_request" msgid="8236951765212462286">"ਡੀਵਾਈਸ ਨੂੰ ਹੱਥੀਂ ਲਾਕ ਕੀਤਾ ਗਿਆ"</string> <plurals name="kg_prompt_reason_time_pattern" formatted="false" msgid="71299470072448533"> - <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟੇ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> - <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> + <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟੇ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> + <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> </plurals> <plurals name="kg_prompt_reason_time_pin" formatted="false" msgid="34586942088144385"> <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟੇ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਿੰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਿੰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</item> </plurals> <plurals name="kg_prompt_reason_time_password" formatted="false" msgid="257297696215346527"> - <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟੇ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item> - <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਨਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item> + <item quantity="one">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟੇ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item> + <item quantity="other">ਡੀਵਾਈਸ <xliff:g id="NUMBER_1">%d</xliff:g> ਘੰਟਿਆਂ ਤੋਂ ਅਣਲਾਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</item> </plurals> <string name="fingerprint_not_recognized" msgid="348813995267914625">"ਪਛਾਣ ਨਹੀਂ ਹੋਈ"</string> </resources> diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml index 0cee705a6adf..cd0e9a81277c 100644 --- a/packages/SystemUI/res/values-eu/strings.xml +++ b/packages/SystemUI/res/values-eu/strings.xml @@ -342,9 +342,9 @@ <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Zatitze horizontala"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Zatitze bertikala"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Zatitze pertsonalizatua"</string> - <string name="recents_accessibility_split_screen_top" msgid="9056056469282256287">"Banandu pantaila eta ezarri goian"</string> - <string name="recents_accessibility_split_screen_left" msgid="8987144699630620019">"Banandu pantaila eta ezarri ezkerrean"</string> - <string name="recents_accessibility_split_screen_right" msgid="275069779299592867">"Banandu pantaila eta ezarri eskuinean"</string> + <string name="recents_accessibility_split_screen_top" msgid="9056056469282256287">"Zatitu pantaila eta ezarri goian"</string> + <string name="recents_accessibility_split_screen_left" msgid="8987144699630620019">"Zatitu pantaila eta ezarri ezkerrean"</string> + <string name="recents_accessibility_split_screen_right" msgid="275069779299592867">"Zatitu pantaila eta ezarri eskuinean"</string> <string-array name="recents_blacklist_array"> </string-array> <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Kargatuta"</string> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 8c384f3caf6b..6cab2ec064e6 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -352,7 +352,7 @@ <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"Chargée dans <xliff:g id="CHARGING_TIME">%s</xliff:g>"</string> <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"N\'est pas en charge"</string> <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"Le réseau peut\nêtre surveillé."</string> - <string name="description_target_search" msgid="3091587249776033139">"Recherche"</string> + <string name="description_target_search" msgid="3091587249776033139">"Rechercher"</string> <string name="description_direction_up" msgid="7169032478259485180">"Faire glisser le doigt vers le haut : <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="7207478719805562165">"Faites glisser votre doigt vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="zen_priority_introduction" msgid="1149025108714420281">"Vous ne serez pas dérangé par les sons et les vibrations, sauf pour les alarmes, les rappels, les événements et les appelants que vous sélectionnez. Vous entendrez tout ce que vous choisissez d\'écouter, y compris la musique, les vidéos et les jeux."</string> diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml index e94e95ba7c1f..b746182d6007 100644 --- a/packages/SystemUI/res/values-pa/strings.xml +++ b/packages/SystemUI/res/values-pa/strings.xml @@ -67,19 +67,19 @@ <string name="usb_debugging_secondary_user_message" msgid="6067122453571699801">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user."</string> <string name="compat_mode_on" msgid="6623839244840638213">"ਸਕ੍ਰੀਨ ਭਰਨ ਲਈ ਜ਼ੂਮ ਕਰੋ"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ਸਕ੍ਰੀਨ ਭਰਨ ਲਈ ਸਟ੍ਰੈਚ ਕਰੋ"</string> - <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ਸਕ੍ਰੀਨਸ਼ੌਟ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="screenshot_saving_title" msgid="8242282144535555697">"ਸਕ੍ਰੀਨਸ਼ੌਟ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string> - <string name="screenshot_saving_text" msgid="2419718443411738818">"ਸਕ੍ਰੀਨਸ਼ੌਟ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"</string> + <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string> + <string name="screenshot_saving_title" msgid="8242282144535555697">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string> + <string name="screenshot_saving_text" msgid="2419718443411738818">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"</string> <string name="screenshot_saved_title" msgid="6461865960961414961">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਕੈਪਚਰ ਕੀਤਾ।"</string> - <string name="screenshot_saved_text" msgid="2685605830386712477">"ਆਪਣਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਵੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।"</string> - <string name="screenshot_failed_title" msgid="705781116746922771">"ਸਕ੍ਰੀਨਸ਼ੌਟ ਕੈਪਚਰ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string> + <string name="screenshot_saved_text" msgid="2685605830386712477">"ਆਪਣਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।"</string> + <string name="screenshot_failed_title" msgid="705781116746922771">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਕੈਪਚਰ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string> <string name="screenshot_failed_to_save_unknown_text" msgid="7887826345701753830">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਰੱਖਿਅਤ ਕਰਨ ਦੌਰਾਨ ਸਮੱਸਿਆ ਆਈ।"</string> - <string name="screenshot_failed_to_save_text" msgid="2592658083866306296">"ਸੀਮਿਤ ਸਟੋਰੇਜ ਥਾਂ ਦੇ ਕਾਰਨ ਸਕ੍ਰੀਨਸ਼ਾਟ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਸਕਦਾ।"</string> + <string name="screenshot_failed_to_save_text" msgid="2592658083866306296">"ਸਟੋਰੇਜ ਦੀ ਸੀਮਿਤ ਜਗ੍ਹਾ ਹੋਣ ਕਾਰਨ ਸਕ੍ਰੀਨਸ਼ਾਟ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਸਕਦਾ।"</string> <string name="screenshot_failed_to_capture_text" msgid="173674476457581486">"ਐਪ ਜਾਂ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲੈਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਗਈ ਹੈ"</string> <string name="usb_preference_title" msgid="6551050377388882787">"USB ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਚੋਣਾਂ"</string> <string name="use_mtp_button_title" msgid="4333504413563023626">"ਇੱਕ ਮੀਡੀਆ ਪਲੇਅਰ (MTP) ਦੇ ਤੌਰ ਤੇ ਮਾਊਂਟ ਕਰੋ"</string> <string name="use_ptp_button_title" msgid="7517127540301625751">"ਇੱਕ ਕੈਮਰੇ (PTP) ਦੇ ਤੌਰ ਤੇ ਮਾਊਂਟ ਕਰੋ"</string> - <string name="installer_cd_button_title" msgid="2312667578562201583">"Mac ਲਈ Android ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਐਪ ਇੰਸਟੌਲ ਕਰੋ"</string> + <string name="installer_cd_button_title" msgid="2312667578562201583">"Mac ਲਈ Android ਫ਼ਾਈਲ ਟ੍ਰਾਂਸਫਰ ਐਪ ਸਥਾਪਤ ਕਰੋ"</string> <string name="accessibility_back" msgid="567011538994429120">"ਪਿੱਛੇ"</string> <string name="accessibility_home" msgid="8217216074895377641">"ਘਰ"</string> <string name="accessibility_menu" msgid="316839303324695949">"ਮੀਨੂ"</string> @@ -87,13 +87,13 @@ <string name="accessibility_recent" msgid="5208608566793607626">"ਰੂਪ-ਰੇਖਾ"</string> <string name="accessibility_search_light" msgid="1103867596330271848">"ਖੋਜੋ"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ਕੈਮਰਾ"</string> - <string name="accessibility_phone_button" msgid="6738112589538563574">"ਫੋਨ"</string> + <string name="accessibility_phone_button" msgid="6738112589538563574">"ਫ਼ੋਨ ਕਰੋ"</string> <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ"</string> - <string name="accessibility_unlock_button" msgid="128158454631118828">"ਅਨਲੌਕ ਕਰੋ"</string> + <string name="accessibility_unlock_button" msgid="128158454631118828">"ਅਣਲਾਕ ਕਰੋ"</string> <string name="accessibility_waiting_for_fingerprint" msgid="4808860050517462885">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਉਡੀਕ ਹੋ ਰਹੀ ਹੈ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ਆਪਣਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤੇ ਬਿਨਾਂ ਅਨਲੌਕ ਕਰੋ"</string> - <string name="unlock_label" msgid="8779712358041029439">"ਅਨਲੌਕ ਕਰੋ"</string> - <string name="phone_label" msgid="2320074140205331708">"ਫੋਨ ਖੋਲ੍ਹੋ"</string> + <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ਆਪਣਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤੇ ਬਿਨਾਂ ਅਣਲਾਕ ਕਰੋ"</string> + <string name="unlock_label" msgid="8779712358041029439">"ਅਣਲਾਕ ਕਰੋ"</string> + <string name="phone_label" msgid="2320074140205331708">"ਫ਼ੋਨ ਖੋਲ੍ਹੋ"</string> <string name="voice_assist_label" msgid="3956854378310019854">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ ਖੋਲ੍ਹੋ"</string> <string name="camera_label" msgid="7261107956054836961">"ਕੈਮਰਾ ਖੋਲ੍ਹੋ"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"ਨਵਾਂ ਕੰਮ ਲੇਆਉਟ ਚੁਣੋ"</string> @@ -107,11 +107,11 @@ <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"ਬੈਟਰੀ ਦੋ ਬਾਰਸ।"</string> <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"ਬੈਟਰੀ ਤਿੰਨ ਬਾਰਸ।"</string> <string name="accessibility_battery_full" msgid="8909122401720158582">"ਬੈਟਰੀ ਪੂਰੀ।"</string> - <string name="accessibility_no_phone" msgid="4894708937052611281">"ਕੋਈ ਫੋਨ ਨਹੀਂ।"</string> - <string name="accessibility_phone_one_bar" msgid="687699278132664115">"ਫੋਨ ਇੱਕ ਬਾਰ।"</string> - <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"ਫੋਨ ਦੋ ਬਾਰਸ।"</string> - <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"ਫੋਨ ਤਿੰਨ ਬਾਰਸ।"</string> - <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"ਫੋਨ ਸਿਗਨਲ ਪੂਰਾ।"</string> + <string name="accessibility_no_phone" msgid="4894708937052611281">"ਕੋਈ ਫ਼ੋਨ ਨਹੀਂ।"</string> + <string name="accessibility_phone_one_bar" msgid="687699278132664115">"ਫ਼ੋਨ ਇੱਕ ਬਾਰ।"</string> + <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"ਫ਼ੋਨ ਦੋ ਬਾਰਸ।"</string> + <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"ਫ਼ੋਨ ਤਿੰਨ ਬਾਰਸ।"</string> + <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"ਫ਼ੋਨ ਸਿਗਨਲ ਪੂਰਾ।"</string> <string name="accessibility_no_data" msgid="4791966295096867555">"ਕੋਈ ਡਾਟਾ ਨਹੀਂ।"</string> <string name="accessibility_data_one_bar" msgid="1415625833238273628">" ਡਾਟਾ ਇੱਕ ਬਾਰ।"</string> <string name="accessibility_data_two_bars" msgid="6166018492360432091">" ਡਾਟਾ ਦੋ ਬਾਰਸ।"</string> @@ -339,7 +339,7 @@ <string name="recents_drag_hint_message" msgid="2649739267073203985">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਇੱਥੇ ਘਸੀਟੋ"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"ਹੌਰੀਜ਼ੌਂਟਲ ਸਪਲਿਟ"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"ਵਰਟੀਕਲ ਸਪਲਿਟ"</string> - <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ਕਸਟਮ ਸਪਲਿਟ"</string> + <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"ਵਿਉਂਂਤੀ ਸਪਲਿਟ"</string> <string name="recents_accessibility_split_screen_top" msgid="9056056469282256287">"ਸਕ੍ਰੀਨ ਨੂੰ ਉੱਪਰ ਵੱਲ ਵਿਭਾਜਿਤ ਕਰੋ"</string> <string name="recents_accessibility_split_screen_left" msgid="8987144699630620019">"ਸਕ੍ਰੀਨ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਵਿਭਾਜਿਤ ਕਰੋ"</string> <string name="recents_accessibility_split_screen_right" msgid="275069779299592867">"ਸਕ੍ਰੀਨ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਵਿਭਾਜਿਤ ਕਰੋ"</string> @@ -355,18 +355,18 @@ <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਖੱਬੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string> <string name="zen_priority_introduction" msgid="1149025108714420281">"ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਤੁਹਾਨੂੰ ਪਰੇਸ਼ਾਨ ਨਹੀਂ ਕਰਨਗੀਆਂ, ਸਿਵਾਏ ਅਲਾਰਮਾਂ, ਯਾਦ-ਦਹਾਨੀਆਂ, ਵਰਤਾਰਿਆਂ, ਅਤੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਕਾਲਰਾਂ ਦੀ ਸੂਰਤ ਵਿੱਚ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਸੰਗੀਤ, ਵੀਡੀਓ ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ ਆਪਣੀ ਚੋਣ ਅਨੁਸਾਰ ਕੁਝ ਵੀ ਸੁਣ ਸਕਦੇ ਹੋ।"</string> <string name="zen_alarms_introduction" msgid="4934328096749380201">"ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਤੁਹਾਨੂੰ ਪਰੇਸ਼ਾਨ ਨਹੀਂ ਕਰਨਗੀਆਂ, ਸਿਵਾਏ ਅਲਾਰਮਾਂ ਦੀ ਸੂਰਤ ਵਿੱਚ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਸੰਗੀਤ, ਵੀਡੀਓ ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ ਆਪਣੀ ਚੋਣ ਅਨੁਸਾਰ ਕੁਝ ਵੀ ਸੁਣ ਸਕਦੇ ਹੋ।"</string> - <string name="zen_priority_customize_button" msgid="7948043278226955063">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕਰੋ"</string> - <string name="zen_silence_introduction_voice" msgid="3948778066295728085">"ਇਹ ਅਲਾਰਮ, ਸੰਗੀਤ, ਵੀਡੀਓ, ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ, ਸਾਰੀਆਂ ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਨੂੰ ਬਲੌਕ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਫ਼ੋਨ ਕਾਲ ਕਰਨ ਦੇ ਯੋਗ ਹੋਵੋਂਗੇ।"</string> + <string name="zen_priority_customize_button" msgid="7948043278226955063">"ਵਿਉਂਤਬੱਧ ਕਰੋ"</string> + <string name="zen_silence_introduction_voice" msgid="3948778066295728085">"ਇਹ ਅਲਾਰਮ, ਸੰਗੀਤ, ਵੀਡੀਓ, ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ, ਸਾਰੀਆਂ ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਨੂੰ ਬਲਾਕ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਫ਼ੋਨ ਕਾਲ ਕਰਨ ਦੇ ਯੋਗ ਹੋਵੋਂਗੇ।"</string> <string name="zen_silence_introduction" msgid="3137882381093271568">"ਇਹ ਅਲਾਰਮ, ਸੰਗੀਤ, ਵੀਡੀਓਜ਼, ਅਤੇ ਗੇਮਸ ਸਮੇਤ, ਸਾਰੀਆਂ ਧੁਨੀਆਂ ਅਤੇ ਵਾਇਬ੍ਰੇਸ਼ਨ ਨੂੰ ਬਲੌਕ ਕਰਦਾ ਹੈ।"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ਹੇਠਾਂ ਘੱਟ ਲਾਜ਼ਮੀ ਸੂਚਨਾਵਾਂ"</string> <string name="notification_tap_again" msgid="7590196980943943842">"ਖੋਲ੍ਹਣ ਲਈ ਦੁਬਾਰਾ ਟੈਪ ਕਰੋ"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"ਅਨਲੌਕ ਕਰਨ ਲਈ ਉੱਪਰ ਸਵਾਈਪ ਕਰੋ।"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਉੱਪਰ ਸਵਾਈਪ ਕਰੋ।"</string> <string name="do_disclosure_generic" msgid="5615898451805157556">"ਇਸ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਤੁਹਾਡੇ ਸੰਗਠਨ ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string> <string name="do_disclosure_with_name" msgid="5640615509915445501">"ਇਹ ਡੀਵਾਈਸ <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ"</string> - <string name="phone_hint" msgid="4872890986869209950">"ਫ਼ੋਨ ਲਈ ਆਈਕਨ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> - <string name="voice_hint" msgid="8939888732119726665">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ ਲਈ ਆਈਕਨ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> - <string name="camera_hint" msgid="7939688436797157483">"ਕੈਮਰੇ ਲਈ ਆਈਕਨ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> + <string name="phone_hint" msgid="4872890986869209950">"ਫ਼ੋਨ ਲਈ ਪ੍ਰਤੀਕ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> + <string name="voice_hint" msgid="8939888732119726665">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ ਲਈ ਪ੍ਰਤੀਕ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> + <string name="camera_hint" msgid="7939688436797157483">"ਕੈਮਰੇ ਲਈ ਪ੍ਰਤੀਕ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string> <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"ਪੂਰਾ ਸ਼ਾਂਤ। ਇਹ ਸਕ੍ਰੀਨ ਰੀਡਰਾਂ ਨੂੰ ਵੀ ਸ਼ਾਂਤ ਕਰ ਦੇਵੇਗਾ।"</string> <string name="interruption_level_none" msgid="6000083681244492992">"ਪੂਰਾ ਸ਼ਾਂਤ"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ਕੇਵਲ ਤਰਜੀਹੀ"</string> @@ -438,7 +438,7 @@ <string name="monitoring_subtitle_ca_certificate" msgid="3874151893894355988">"CA ਪ੍ਰਮਾਣ-ਪੱਤਰ"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPN ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ"</string> - <string name="monitoring_button_view_policies" msgid="100913612638514424">"ਨੀਤੀਆਂ ਵੇਖੋ"</string> + <string name="monitoring_button_view_policies" msgid="100913612638514424">"ਨੀਤੀਆਂ ਦੇਖੋ"</string> <string name="monitoring_description_named_management" msgid="5281789135578986303">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨਾਲ ਸਬੰਧਿਤ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਾਂ, ਡਾਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਦੀ ਨਿਗਰਾਨੀ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> <string name="monitoring_description_management" msgid="4573721970278370790">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨਾਲ ਸਬੰਧਿਤ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਾਂ, ਡਾਟਾ ਅਤੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> <string name="monitoring_description_management_ca_certificate" msgid="5202023784131001751">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਅਥਾਰਟੀ ਸਥਾਪਤ ਕੀਤੀ ਗਈ ਹੈ। ਤੁਹਾਡੇ ਸੁਰੱਖਿਅਤ ਨੈੱਟਵਰਕ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਜਾਂ ਉਸਨੂੰ ਸੋਧਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string> @@ -459,8 +459,8 @@ <string name="monitoring_description_vpn_settings" msgid="6434859242636063861">"VPN ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ"</string> <string name="monitoring_description_ca_cert_settings_separator" msgid="4987350385906393626">" "</string> <string name="monitoring_description_ca_cert_settings" msgid="5489969458872997092">"ਭਰੋਸੇਯੋਗ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਖੋਲ੍ਹੋ"</string> - <string name="monitoring_description_network_logging" msgid="7223505523384076027">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਨੈੱਟਵਰਕ ਲੌਗਿੰਗ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਹੋਇਆ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਨੂੰ ਇੱਕ VPN ਕਨੈਕਸ਼ਨ ਸੈੱਟ ਅੱਪ ਕਰਨ ਦੀ ਅਨੁਮਤੀ ਦਿੱਤੀ ਹੈ।\n\nਇਹ ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਅਤੇ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ, ਈਮੇਲਾਂ, ਐਪਾਂ ਅਤੇ ਸੁਰੱਖਿਅਤ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ।"</string> + <string name="monitoring_description_network_logging" msgid="7223505523384076027">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਨੈੱਟਵਰਕ ਲੌਗਿੰਗ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਹੋਇਆ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਟਰੈਫਿਕ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string> + <string name="monitoring_description_vpn" msgid="4445150119515393526">"ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਨੂੰ ਇੱਕ VPN ਕਨੈਕਸ਼ਨ ਸੈੱਟ ਅੱਪ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਹੈ।\n\nਇਹ ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਅਤੇ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ, ਈਮੇਲਾਂ, ਐਪਾਂ ਅਤੇ ਸੁਰੱਖਿਅਤ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ।"</string> <string name="monitoring_description_vpn_profile_owned" msgid="2958019119161161530">"ਤੁਹਾਡੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਦਾ ਪ੍ਰਬੰਧਨ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਈਮੇਲ, ਐਪਾਂ, ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਦੇ ਸਮਰੱਥ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।\n\nਤੁਸੀਂ ਇੱਕ VPN ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋਂ, ਜੋ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ।"</string> <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> <string name="monitoring_description_app" msgid="1828472472674709532">"ਤੁਸੀਂ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲਾਂ, ਐਪਾਂ ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੀ ਹੈ।"</string> @@ -470,9 +470,9 @@ <string name="monitoring_description_app_personal_work" msgid="5664165460056859391">"ਤੁਹਾਡੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਦਾ ਪ੍ਰਬੰਧਨ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪ੍ਰੋਫਾਈਲ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਈਮੇਲਾਂ, ਐਪਾਂ, ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ ਤੁਹਾਡੀ ਕਾਰਜ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੀ ਹੈ।\n\nਤੁਸੀਂ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋਂ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੀ ਹੈ।"</string> <string name="keyguard_indication_trust_granted" msgid="4985003749105182372">"<xliff:g id="USER_NAME">%1$s</xliff:g> ਲਈ ਅਨਲੌਕ ਕੀਤੀ ਗਈ"</string> <string name="keyguard_indication_trust_managed" msgid="8319646760022357585">"<xliff:g id="TRUST_AGENT">%1$s</xliff:g> ਚੱਲ ਰਿਹਾ ਹੈ"</string> - <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ਡੀਵਾਈਸ ਲੌਕ ਰਹੇਗਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਮੈਨੂਅਲੀ ਅਨਲੌਕ ਨਹੀਂ ਕਰਦੇ"</string> + <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ਡੀਵਾਈਸ ਲਾਕ ਰਹੇਗਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਮੈਨੂਅਲੀ ਅਣਲਾਕ ਨਹੀਂ ਕਰਦੇ"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"ਤੇਜ਼ੀ ਨਾਲ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string> - <string name="hidden_notifications_text" msgid="2326409389088668981">"ਅਨਲੌਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਦੇਖੋ"</string> + <string name="hidden_notifications_text" msgid="2326409389088668981">"ਅਣਲਾਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਦੇਖੋ"</string> <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ਨਹੀਂ ਧੰਨਵਾਦ"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ਸਥਾਪਤ ਕਰੋ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> @@ -506,7 +506,7 @@ <string name="volume_dialog_accessibility_dismissed_message" msgid="51543526013711399">"ਵੌਲਿਊਮ ਕੰਟਰੋਲ ਲੁਕਾਏ ਗਏ ਹਨ"</string> <string name="system_ui_tuner" msgid="708224127392452018">"System UI ਟਿਊਨਰ"</string> <string name="show_battery_percentage" msgid="5444136600512968798">"ਜੋਡ਼ੀ ਗਈ ਬੈਟਰੀ ਪ੍ਰਤਿਸ਼ਤਤਾ ਦਿਖਾਓ"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ਜਦੋਂ ਚਾਰਜ ਨਾ ਹੋ ਰਹੀ ਹੋਵੇ ਤਾਂ ਸਥਿਤੀ ਬਾਰ ਦੇ ਅੰਦਰ ਬੈਟਰੀ ਪੱਧਰ ਪ੍ਰਤਿਸ਼ਤਤਾ ਦਿਖਾਓ"</string> + <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ਜਦੋਂ ਚਾਰਜ ਨਾ ਹੋ ਰਹੀ ਹੋਵੇ ਤਾਂ ਸਥਿਤੀ ਪੱਟੀ ਪ੍ਰਤੀਕ ਦੇ ਅੰਦਰ ਬੈਟਰੀ ਪੱਧਰ ਪ੍ਰਤਿਸ਼ਤਤਾ ਦਿਖਾਓ"</string> <string name="quick_settings" msgid="10042998191725428">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ"</string> <string name="status_bar" msgid="4877645476959324760">"ਸਥਿਤੀ ਬਾਰ"</string> <string name="overview" msgid="4018602013895926956">"ਰੂਪ-ਰੇਖਾ"</string> @@ -517,7 +517,7 @@ <string name="status_bar_alarm" msgid="8536256753575881818">"ਅਲਾਰਮ"</string> <string name="status_bar_work" msgid="6022553324802866373">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ"</string> <string name="status_bar_airplane" msgid="7057575501472249002">"ਜਹਾਜ਼ ਮੋਡ"</string> - <string name="add_tile" msgid="2995389510240786221">"ਟਾਇਲ ਜੋੜੋ"</string> + <string name="add_tile" msgid="2995389510240786221">"ਟਾਇਲ ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="broadcast_tile" msgid="3894036511763289383">"ਪ੍ਰਸਾਰਨ ਟਾਇਲ"</string> <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ਤੁਸੀਂ <xliff:g id="WHEN">%1$s</xliff:g> ਵਜੇ ਆਪਣਾ ਅਗਲਾ ਅਲਾਰਮ ਨਹੀਂ ਸੁਣੋਗੇ ਜਦੋਂ ਤੱਕ ਉਸਤੋਂ ਪਹਿਲਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਬੰਦ ਨਹੀਂ ਕਰਦੇ"</string> <string name="zen_alarm_warning" msgid="444533119582244293">"ਤੁਸੀਂ <xliff:g id="WHEN">%1$s</xliff:g> ਵਜੇ ਆਪਣਾ ਅਗਲਾ ਅਲਾਰਮ ਨਹੀਂ ਸੁਣੋਗੇ"</string> @@ -569,7 +569,7 @@ <string name="notification_channel_switch_accessibility" msgid="3420796005601900717">"ਇਸ ਚੈਨਲ ਤੋਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string> <string name="notification_all_categories" msgid="5407190218055113282">"ਸਭ ਸ਼੍ਰੇਣੀਆਂ"</string> <string name="notification_more_settings" msgid="816306283396553571">"ਹੋਰ ਸੈਟਿੰਗਾਂ"</string> - <string name="notification_app_settings" msgid="3743278649182392015">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕਰੋ: <xliff:g id="SUB_CATEGORY">%1$s</xliff:g>"</string> + <string name="notification_app_settings" msgid="3743278649182392015">"ਵਿਉਂਤਬੱਧ ਕਰੋ: <xliff:g id="SUB_CATEGORY">%1$s</xliff:g>"</string> <string name="notification_done" msgid="5279426047273930175">"ਹੋ ਗਿਆ"</string> <string name="notification_menu_accessibility" msgid="2046162834248888553">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string> <string name="notification_menu_gear_description" msgid="2204480013726775108">"ਸੂਚਨਾ ਕੰਟਰੋਲ"</string> @@ -596,19 +596,19 @@ <string name="keyboard_key_dpad_left" msgid="1346446024676962251">"Left"</string> <string name="keyboard_key_dpad_right" msgid="3317323247127515341">"Right"</string> <string name="keyboard_key_dpad_center" msgid="2566737770049304658">"Center"</string> - <string name="keyboard_key_tab" msgid="3871485650463164476">"Tab"</string> + <string name="keyboard_key_tab" msgid="3871485650463164476">"ਟੈਬ"</string> <string name="keyboard_key_space" msgid="2499861316311153293">"Space"</string> <string name="keyboard_key_enter" msgid="5739632123216118137">"Enter"</string> <string name="keyboard_key_backspace" msgid="1559580097512385854">"Backspace"</string> <string name="keyboard_key_media_play_pause" msgid="3861975717393887428">"Play/Pause"</string> <string name="keyboard_key_media_stop" msgid="2859963958595908962">"Stop"</string> - <string name="keyboard_key_media_next" msgid="1894394911630345607">"Next"</string> - <string name="keyboard_key_media_previous" msgid="4256072387192967261">"Previous"</string> + <string name="keyboard_key_media_next" msgid="1894394911630345607">"ਅੱਗੇ"</string> + <string name="keyboard_key_media_previous" msgid="4256072387192967261">"ਪਿਛਲਾ"</string> <string name="keyboard_key_media_rewind" msgid="2654808213360820186">"Rewind"</string> <string name="keyboard_key_media_fast_forward" msgid="3849417047738200605">"Fast Forward"</string> <string name="keyboard_key_page_up" msgid="5654098530106845603">"Page Up"</string> <string name="keyboard_key_page_down" msgid="8720502083731906136">"Page Down"</string> - <string name="keyboard_key_forward_del" msgid="1391451334716490176">"Delete"</string> + <string name="keyboard_key_forward_del" msgid="1391451334716490176">"ਮਿਟਾਓ"</string> <string name="keyboard_key_move_home" msgid="2765693292069487486">"Home"</string> <string name="keyboard_key_move_end" msgid="5901174332047975247">"End"</string> <string name="keyboard_key_insert" msgid="8530501581636082614">"Insert"</string> @@ -637,7 +637,7 @@ <string name="battery" msgid="7498329822413202973">"ਬੈਟਰੀ"</string> <string name="clock" msgid="7416090374234785905">"ਘੜੀ"</string> <string name="headset" msgid="4534219457597457353">"ਹੈੱਡਸੈੱਟ"</string> - <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"ਹੈੱਡਫੋਨਾਂ ਨੂੰ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string> + <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"ਹੈੱਡਫ਼ੋਨ ਨੂੰ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string> <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"ਹੈੱਡਸੈੱਟ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string> <string name="data_saver" msgid="5037565123367048522">"ਡਾਟਾ ਸੇਵਰ"</string> <string name="accessibility_data_saver_on" msgid="8454111686783887148">"ਡਾਟਾ ਸੇਵਰ ਚਾਲੂ ਹੈ"</string> @@ -666,7 +666,7 @@ <string name="reset" msgid="2448168080964209908">"ਰੀਸੈੱਟ ਕਰੋ"</string> <string name="adjust_button_width" msgid="6138616087197632947">"ਬਟਨ ਚੁੜਾਈ ਵਿਵਸਥਿਤ ਕਰੋ"</string> <string name="clipboard" msgid="1313879395099896312">"ਕਲਿੱਪਬੋਰਡ"</string> - <string name="accessibility_key" msgid="5701989859305675896">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਆਵਾਗੌਣ ਬਟਨ"</string> + <string name="accessibility_key" msgid="5701989859305675896">"ਵਿਉਂਂਤੀ ਨੈਵੀਗੇਟ ਬਟਨ"</string> <string name="left_keycode" msgid="2010948862498918135">"ਖੱਬਾ ਕੀ-ਕੋਡ"</string> <string name="right_keycode" msgid="708447961000848163">"ਸੱਜਾ ਕੀ-ਕੋਡ"</string> <string name="left_icon" msgid="3096287125959387541">"ਖੱਬਾ ਪ੍ਰਤੀਕ"</string> @@ -678,12 +678,12 @@ <string-array name="clock_options"> <item msgid="5965318737560463480">"ਘੰਟੇ, ਮਿੰਟ, ਅਤੇ ਸਕਿੰਟ ਦਿਖਾਓ"</item> <item msgid="1427801730816895300">"ਘੰਟੇ ਅਤੇ ਮਿੰਟ ਦਿਖਾਓ (ਪੂਰਵ-ਨਿਰਧਾਰਤ)"</item> - <item msgid="3830170141562534721">"ਇਸ ਚਿੰਨ੍ਹ ਨੂੰ ਨਾ ਦਿਖਾਓ"</item> + <item msgid="3830170141562534721">"ਇਸ ਪ੍ਰਤੀਕ ਨੂੰ ਨਾ ਦਿਖਾਓ"</item> </string-array> <string-array name="battery_options"> <item msgid="3160236755818672034">"ਹਮੇਸ਼ਾਂ ਪ੍ਰਤੀਸ਼ਤਤਾ ਦਿਖਾਓ"</item> <item msgid="2139628951880142927">"ਚਾਰਜਿੰਗ ਦੌਰਾਨ ਪ੍ਰਤੀਸ਼ਤਤਾ ਦਿਖਾਓ (ਪੂਰਵ-ਨਿਰਧਾਰਤ)"</item> - <item msgid="3327323682209964956">"ਇਸ ਚਿੰਨ੍ਹ ਨੂੰ ਨਾ ਦਿਖਾਓ"</item> + <item msgid="3327323682209964956">"ਇਸ ਪ੍ਰਤੀਕ ਨੂੰ ਨਾ ਦਿਖਾਓ"</item> </string-array> <string name="other" msgid="4060683095962566764">"ਹੋਰ"</string> <string name="accessibility_divider" msgid="5903423481953635044">"ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਡਿਵਾਈਡਰ"</string> @@ -697,8 +697,8 @@ <string name="accessibility_action_divider_top_50" msgid="6385859741925078668">"ਉੱਪਰ 50%"</string> <string name="accessibility_action_divider_top_30" msgid="6201455163864841205">"ਉੱਪਰ 30%"</string> <string name="accessibility_action_divider_bottom_full" msgid="301433196679548001">"ਹੇਠਾਂ ਪੂਰੀ ਸਕ੍ਰੀਨ"</string> - <string name="accessibility_qs_edit_tile_label" msgid="8374924053307764245">"ਸਥਿਤੀ <xliff:g id="POSITION">%1$d</xliff:g>, <xliff:g id="TILE_NAME">%2$s</xliff:g>। ਸੰਪਾਦਨ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string> - <string name="accessibility_qs_edit_add_tile_label" msgid="8133209638023882667">"<xliff:g id="TILE_NAME">%1$s</xliff:g>। ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string> + <string name="accessibility_qs_edit_tile_label" msgid="8374924053307764245">"ਸਥਿਤੀ <xliff:g id="POSITION">%1$d</xliff:g>, <xliff:g id="TILE_NAME">%2$s</xliff:g>। ਸੰਪਾਦਨ ਲਈ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ।"</string> + <string name="accessibility_qs_edit_add_tile_label" msgid="8133209638023882667">"<xliff:g id="TILE_NAME">%1$s</xliff:g>। ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ।"</string> <string name="accessibility_qs_edit_position_label" msgid="5055306305919289819">"ਸਥਿਤੀ <xliff:g id="POSITION">%1$d</xliff:g>। ਚੁਣਨ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string> <string name="accessibility_qs_edit_move_tile" msgid="2461819993780159542">"<xliff:g id="TILE_NAME">%1$s</xliff:g> ਨੂੰ ਤਬਦੀਲ ਕਰੋ"</string> <string name="accessibility_qs_edit_remove_tile" msgid="7484493384665907197">"<xliff:g id="TILE_NAME">%1$s</xliff:g> ਹਟਾਓ"</string> @@ -735,7 +735,7 @@ <string name="pip_skip_to_prev" msgid="1955311326688637914">"ਪਿਛਲੇ \'ਤੇ ਜਾਓ"</string> <string name="thermal_shutdown_title" msgid="4458304833443861111">"ਗਰਮ ਹੋਣ ਕਾਰਨ ਫ਼ੋਨ ਬੰਦ ਹੋ ਗਿਆ"</string> <string name="thermal_shutdown_message" msgid="9006456746902370523">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੁਣ ਸਹੀ ਚੱਲ ਰਿਹਾ ਹੈ"</string> - <string name="thermal_shutdown_dialog_message" msgid="566347880005304139">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਬਹੁਤ ਗਰਮ ਸੀ, ਇਸ ਲਈ ਇਹ ਠੰਡਾ ਹੋਣ ਵਾਸਤੇ ਬੰਦ ਹੋ ਗਿਆ ਸੀ। ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੁਣ ਸਹੀ ਚੱਲ ਰਿਹਾ ਹੈ।\n\nਤੁਹਾਡਾ ਫ਼ੋਨ ਬਹੁਤ ਗਰਮ ਹੋ ਸਕਦਾ ਹੈ ਜੇ:\n • ਤੁਸੀਂ ਸਰੋਤਾਂ ਦੀ ਵੱਧ ਵਰਤੋਂ ਵਾਲੀਆਂ ਐਪਾਂ (ਜਿਵੇਂ ਗੇਮਿੰਗ, ਵੀਡੀਓ, ਜਾਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਐਪਾਂ) ਵਰਤਦੇ ਹੋ \n • ਵੱਡੀਆਂ ਫ਼ਾਈਲਾਂ ਡਾਊਨਲੋਡ ਜਾਂ ਅੱਪਲੋਡ ਕਰਦੇ ਹੋ\n • ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਉੱਚ ਤਾਪਮਾਨਾਂ ਵਿੱਚ ਵਰਤਦੇ ਹੋ"</string> + <string name="thermal_shutdown_dialog_message" msgid="566347880005304139">\n"ਤੁਹਾਡਾ ਫ਼ੋਨ ਬਹੁਤ ਗਰਮ ਸੀ, ਇਸ ਲਈ ਇਹ ਠੰਡਾ ਹੋਣ ਵਾਸਤੇ ਬੰਦ ਹੋ ਗਿਆ ਸੀ। ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੁਣ ਸਹੀ ਚੱਲ ਰਿਹਾ ਹੈ।\n\nਤੁਹਾਡਾ ਫ਼ੋਨ ਬਹੁਤ ਗਰਮ ਹੋ ਸਕਦਾ ਹੈ ਜੇ:\n • ਤੁਸੀਂ ਸਰੋਤਾਂ ਦੀ ਵੱਧ ਵਰਤੋਂ ਵਾਲੀਆਂ ਐਪਾਂ (ਜਿਵੇਂ ਗੇਮਿੰਗ, ਵੀਡੀਓ, ਜਾਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਐਪਾਂ) ਵਰਤਦੇ ਹੋ • ਵੱਡੀਆਂ ਫ਼ਾਈਲਾਂ ਡਾਊਨਲੋਡ ਜਾਂ ਅੱਪਲੋਡ ਕਰਦੇ ਹੋ\n • ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਉੱਚ ਤਾਪਮਾਨਾਂ ਵਿੱਚ ਵਰਤਦੇ ਹੋ"</string> <string name="high_temp_title" msgid="4589508026407318374">"ਫ਼ੋਨ ਗਰਮ ਹੋ ਰਿਹਾ ਹੈ"</string> <string name="high_temp_notif_message" msgid="5642466103153429279">"ਫ਼ੋਨ ਦੇ ਠੰਡਾ ਹੋਣ ਦੇ ਦੌਰਾਨ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸੀਮਿਤ ਹੁੰਦੀਆਂ ਹਨ"</string> <string name="high_temp_dialog_message" msgid="6840700639374113553">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਸਵੈਚਲਿਤ ਰੂਪ ਵਿੱਚ ਠੰਡਾ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ। ਤੁਸੀਂ ਹਾਲੇ ਵੀ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ, ਪਰੰਤੂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹ ਵਧੇਰੇ ਹੌਲੀ ਚੱਲੇ।\n\nਇੱਕ ਵਾਰ ਠੰਡਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡਾ ਫ਼ੋਨ ਸਧਾਰਨ ਤੌਰ \'ਤੇ ਚੱਲੇਗਾ।"</string> diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index c596398cf804..d95402cdb5dc 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -50,6 +50,7 @@ import android.media.AudioManager; import android.os.BatteryManager; import android.os.CancellationSignal; import android.os.Handler; +import android.os.IBinder; import android.os.IRemoteCallback; import android.os.Message; import android.os.RemoteException; @@ -58,6 +59,8 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; +import android.service.dreams.DreamService; +import android.service.dreams.IDreamManager; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; @@ -67,8 +70,6 @@ import android.util.Log; import android.util.SparseBooleanArray; import android.util.SparseIntArray; -import com.google.android.collect.Lists; - import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.PhoneConstants; @@ -77,6 +78,8 @@ import com.android.internal.widget.LockPatternUtils; import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.recents.misc.SystemServicesProxy.TaskStackListener; +import com.google.android.collect.Lists; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.ref.WeakReference; @@ -217,6 +220,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private UserManager mUserManager; private int mFingerprintRunningState = FINGERPRINT_STATE_STOPPED; private LockPatternUtils mLockPatternUtils; + private final IDreamManager mDreamManager; + private boolean mIsDreaming; /** * Short delay before restarting fingerprint authentication after a successful try @@ -458,6 +463,26 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { updateFingerprintListeningState(); } + /** + * @return a cached version of DreamManager.isDreaming() + */ + public boolean isDreaming() { + return mIsDreaming; + } + + /** + * If the device is dreaming, awakens the device + */ + public void awakenFromDream() { + if (mIsDreaming && mDreamManager != null) { + try { + mDreamManager.awaken(); + } catch (RemoteException e) { + Log.e(TAG, "Unable to awaken from dream"); + } + } + } + private void onFingerprintAuthenticated(int userId) { Trace.beginSection("KeyGuardUpdateMonitor#onFingerPrintAuthenticated"); mUserFingerprintAuthenticated.put(userId, true); @@ -1037,11 +1062,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private void handleDreamingStateChanged(int dreamStart) { final int count = mCallbacks.size(); - boolean showingDream = dreamStart == 1; + mIsDreaming = dreamStart == 1; for (int i = 0; i < count; i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { - cb.onDreamingStateChanged(showingDream); + cb.onDreamingStateChanged(mIsDreaming); } } } @@ -1146,6 +1171,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mLockPatternUtils = new LockPatternUtils(context); mLockPatternUtils.registerStrongAuthTracker(mStrongAuthTracker); + mDreamManager = IDreamManager.Stub.asInterface( + ServiceManager.getService(DreamService.DREAM_SERVICE)); + if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) { mFpm = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); } @@ -1183,7 +1211,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private boolean shouldListenForFingerprint() { return (mKeyguardIsVisible || !mDeviceInteractive || (mBouncer && !mKeyguardGoingAway) || mGoingToSleep || - shouldListenForFingerprintAssistant()) + shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming)) && !mSwitchingUser && !isFingerprintDisabled(getCurrentUser()) && !mKeyguardGoingAway; } diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index a9a915b23a0c..2937a250140a 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -348,7 +348,8 @@ public class Dependency extends SystemUI { @SuppressWarnings("unchecked") DependencyProvider<T> provider = mProviders.get(cls); if (provider == null) { - throw new IllegalArgumentException("Unsupported dependency " + cls); + throw new IllegalArgumentException("Unsupported dependency " + cls + + ". " + mProviders.size() + " providers known."); } return provider.createDependency(); } diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java index 33d5617c0397..4cbbbd6c2e90 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java @@ -14,6 +14,8 @@ package com.android.systemui.globalactions; +import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN; + import com.android.internal.R; import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.colorextraction.ColorExtractor.GradientColors; @@ -310,7 +312,10 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, DialogIn } else if (GLOBAL_ACTION_KEY_SETTINGS.equals(actionKey)) { mItems.add(getSettingsAction()); } else if (GLOBAL_ACTION_KEY_LOCKDOWN.equals(actionKey)) { - mItems.add(getLockdownAction()); + if (Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCKDOWN_IN_POWER_MENU, 0) != 0) { + mItems.add(getLockdownAction()); + } } else if (GLOBAL_ACTION_KEY_VOICEASSIST.equals(actionKey)) { mItems.add(getVoiceAssistAction()); } else if (GLOBAL_ACTION_KEY_ASSIST.equals(actionKey)) { @@ -575,7 +580,9 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener, DialogIn @Override public void onPress() { - new LockPatternUtils(mContext).requireCredentialEntry(UserHandle.USER_ALL); + new LockPatternUtils(mContext) + .requireStrongAuth(STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN, + UserHandle.USER_ALL); try { WindowManagerGlobal.getWindowManagerService().lockNow(null); } catch (RemoteException e) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index 7bc1a39dfff5..7067bc1ba1bf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -80,6 +80,7 @@ import com.android.systemui.statusbar.stack.StackScrollState; import java.util.ArrayList; import java.util.List; +import java.util.function.BooleanSupplier; public class ExpandableNotificationRow extends ActivatableNotificationView implements PluginListener<NotificationMenuRowPlugin> { @@ -93,6 +94,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView } private LayoutListener mLayoutListener; + private boolean mDark; private boolean mLowPriorityStateUpdated; private final NotificationInflater mNotificationInflater; private int mIconTransformContentShift; @@ -175,6 +177,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private boolean mGroupExpansionChanging; /** + * A supplier that returns true if keyguard is secure. + */ + private BooleanSupplier mSecureStateProvider; + + /** * Whether or not a notification that is not part of a group of notifications can be manually * expanded by the user. */ @@ -395,6 +402,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView mAboveShelfChangedListener = aboveShelfChangedListener; } + /** + * Sets a supplier that can determine whether the keyguard is secure or not. + * @param secureStateProvider A function that returns true if keyguard is secure. + */ + public void setSecureStateProvider(BooleanSupplier secureStateProvider) { + mSecureStateProvider = secureStateProvider; + } + @Override public boolean isDimmable() { if (!getShowingLayout().isDimmable()) { @@ -1454,6 +1469,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView @Override public void setDark(boolean dark, boolean fade, long delay) { super.setDark(dark, fade, delay); + mDark = dark; if (!mIsHeadsUp) { // Only fade the showing view of the pulsing notification. fade = false; @@ -1468,6 +1484,17 @@ public class ExpandableNotificationRow extends ActivatableNotificationView updateShelfIconColor(); } + /** + * Tap sounds should not be played when we're unlocking. + * Doing so would cause audio collision and the system would feel unpolished. + */ + @Override + public boolean isSoundEffectsEnabled() { + final boolean mute = mDark && mSecureStateProvider != null && + !mSecureStateProvider.getAsBoolean(); + return !mute && super.isSoundEffectsEnabled(); + } + public boolean isExpandable() { if (mIsSummaryWithChildren && !mShowingPublic) { return !mChildrenExpanded; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java index 184b95d56260..5557dde7a5d6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java @@ -380,6 +380,15 @@ public class NotificationShelf extends ActivatableNotificationView implements } } + @Override + public void setFakeShadowIntensity(float shadowIntensity, float outlineAlpha, int shadowYEnd, + int outlineTranslation) { + if (!mHasItemsInStableShelf) { + shadowIntensity = 0.0f; + } + super.setFakeShadowIntensity(shadowIntensity, outlineAlpha, shadowYEnd, outlineTranslation); + } + /** * @return the icon amount how much this notification is in the shelf; */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java index 316d229e4f1a..91369dbd5f89 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java @@ -85,6 +85,11 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { public static final int MODE_DISMISS_BOUNCER = 6; /** + * Mode in which fingerprint wakes and unlocks the device from a dream. + */ + public static final int MODE_WAKE_AND_UNLOCK_FROM_DREAM = 7; + + /** * How much faster we collapse the lockscreen when authenticating with fingerprint. */ private static final float FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR = 1.1f; @@ -193,6 +198,8 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { } public void startWakeAndUnlock(int mode) { + // TODO(b/62444020): remove when this bug is fixed + Log.v(TAG, "startWakeAndUnlock(" + mode + ")"); boolean wasDeviceInteractive = mUpdateMonitor.isDeviceInteractive(); mMode = mode; mHasScreenTurnedOnSinceAuthenticating = false; @@ -230,16 +237,19 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { } Trace.endSection(); break; + case MODE_WAKE_AND_UNLOCK_FROM_DREAM: case MODE_WAKE_AND_UNLOCK_PULSING: case MODE_WAKE_AND_UNLOCK: if (mMode == MODE_WAKE_AND_UNLOCK_PULSING) { Trace.beginSection("MODE_WAKE_AND_UNLOCK_PULSING"); mStatusBar.updateMediaMetaData(false /* metaDataChanged */, true /* allowEnterAnimation */); - } else { + } else if (mMode == MODE_WAKE_AND_UNLOCK){ Trace.beginSection("MODE_WAKE_AND_UNLOCK"); - mDozeScrimController.abortDoze(); + } else { + Trace.beginSection("MODE_WAKE_AND_UNLOCK_FROM_DREAM"); + mUpdateMonitor.awakenFromDream(); } mStatusBarWindowManager.setStatusBarFocusable(false); mKeyguardViewMediator.onWakeAndUnlocking(); @@ -299,6 +309,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { private int calculateMode() { boolean unlockingAllowed = mUpdateMonitor.isUnlockingWithFingerprintAllowed(); + boolean deviceDreaming = mUpdateMonitor.isDreaming(); if (!mUpdateMonitor.isDeviceInteractive()) { if (!mStatusBarKeyguardViewManager.isShowing()) { @@ -311,6 +322,9 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { return MODE_SHOW_BOUNCER; } } + if (unlockingAllowed && deviceDreaming) { + return MODE_WAKE_AND_UNLOCK_FROM_DREAM; + } if (mStatusBarKeyguardViewManager.isShowing()) { if (mStatusBarKeyguardViewManager.isBouncerShowing() && unlockingAllowed) { return MODE_DISMISS_BOUNCER; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index fd95cc4adc1d..165ed78996b2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -27,6 +27,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.WindowInsets; import android.view.accessibility.AccessibilityEvent; import com.android.internal.widget.LockPatternUtils; @@ -247,12 +248,16 @@ public class KeyguardBouncer { removeView(); mHandler.removeCallbacks(mRemoveViewRunnable); mRoot = (ViewGroup) LayoutInflater.from(mContext).inflate(R.layout.keyguard_bouncer, null); - mKeyguardView = (KeyguardHostView) mRoot.findViewById(R.id.keyguard_host_view); + mKeyguardView = mRoot.findViewById(R.id.keyguard_host_view); mKeyguardView.setLockPatternUtils(mLockPatternUtils); mKeyguardView.setViewMediatorCallback(mCallback); mContainer.addView(mRoot, mContainer.getChildCount()); mRoot.setVisibility(View.INVISIBLE); - mRoot.dispatchApplyWindowInsets(mRoot.getRootWindowInsets()); + + final WindowInsets rootInsets = mRoot.getRootWindowInsets(); + if (rootInsets != null) { + mRoot.dispatchApplyWindowInsets(rootInsets); + } } protected void removeView() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 00ba1f293b8a..efc8d8b97114 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -6809,6 +6809,7 @@ public class StatusBar extends SystemUI implements DemoMode, row.setOnExpandClickListener(this); row.setRemoteViewClickHandler(mOnClickHandler); row.setInflationCallback(this); + row.setSecureStateProvider(this::isKeyguardCurrentlySecure); // Get the app name. // Note that Notification.Builder#bindHeaderAppName has similar logic diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index 34a03bf36c47..652f8bb646d3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -182,6 +182,7 @@ public class MobileSignalController extends SignalController< mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EVDO_B, TelephonyIcons.THREE_G); mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_EHRPD, TelephonyIcons.THREE_G); mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_UMTS, TelephonyIcons.THREE_G); + mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_TD_SCDMA, TelephonyIcons.THREE_G); if (!mConfig.showAtLeast3G) { mNetworkToIconLookup.put(TelephonyManager.NETWORK_TYPE_UNKNOWN, diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java index 66d00dd6c5c6..65d969932ef5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java @@ -54,6 +54,7 @@ public abstract class SysuiTestCase { @Before public void SysuiSetup() throws Exception { System.setProperty("dexmaker.share_classloader", "true"); + mContext.setTheme(R.style.Theme_SystemUI); SystemUIFactory.createFromConfig(mContext); mRealInstrumentation = InstrumentationRegistry.getInstrumentation(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java index 2f6511c8481e..58ff46ad54ee 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java @@ -134,4 +134,16 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { row.setAboveShelf(false); verify(listener).onAboveShelfStateChanged(false); } + + @Test + public void testClickSound() throws Exception { + Assert.assertTrue("Should play sounds by default.", mGroup.isSoundEffectsEnabled()); + mGroup.setDark(true /* dark */, false /* fade */, 0 /* delay */); + mGroup.setSecureStateProvider(()-> false); + Assert.assertFalse("Shouldn't play sounds when dark and trusted.", + mGroup.isSoundEffectsEnabled()); + mGroup.setSecureStateProvider(()-> true); + Assert.assertTrue("Should always play sounds when not trusted.", + mGroup.isSoundEffectsEnabled()); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java new file mode 100644 index 000000000000..40512205a8f8 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java @@ -0,0 +1,54 @@ +/* + * 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 + */ + +package com.android.systemui.statusbar.phone; + +import static org.mockito.Mockito.mock; + +import android.content.Context; +import android.support.test.filters.SmallTest; +import android.support.test.runner.AndroidJUnit4; +import android.test.UiThreadTest; +import android.view.ContextThemeWrapper; +import android.view.ViewGroup; +import android.widget.FrameLayout; + +import com.android.internal.widget.LockPatternUtils; +import com.android.keyguard.ViewMediatorCallback; +import com.android.systemui.R; +import com.android.systemui.SysuiTestCase; +import com.android.systemui.keyguard.DismissCallbackRegistry; + +import org.junit.Test; +import org.junit.runner.RunWith; + +@SmallTest +@RunWith(AndroidJUnit4.class) +public class KeyguardBouncerTest extends SysuiTestCase { + + @UiThreadTest + @Test + public void inflateDetached() { + final ViewGroup container = new FrameLayout(getContext()); + final KeyguardBouncer bouncer = new KeyguardBouncer(getContext(), + mock(ViewMediatorCallback.class), mock(LockPatternUtils.class), container, mock( + DismissCallbackRegistry.class)); + + // Detached bouncer should still be able to be inflated + bouncer.inflateView(); + } + +} diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index 104ac23db620..2bdd73707777 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -4311,6 +4311,12 @@ message MetricsEvent { // OS: O MR FIELD_SETTINGS_SMART_SUGGESTIONS_ENABLED = 1097; + // ACTION: The device boots + ACTION_BOOT = 1098; + + // FIELD: A string value representing some state of the platform, e.g., boot reason + FIELD_PLATFORM_REASON = 1099; + // ---- End O-MR1 Constants, all O-MR1 constants go above this line ---- // OPEN: Settings > Network & Internet > Mobile network @@ -4392,7 +4398,7 @@ message MetricsEvent { // OPEN: Settings > Developer options > Enable > Info dialog // CATEGORY: SETTINGS // OS: P - DIALOG_ENABLE_DEVEMENT_OPTIONS = 1158; + DIALOG_ENABLE_DEVELOPMENT_OPTIONS = 1158; // Add new aosp constants above this line. // END OF AOSP CONSTANTS diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index d2f8bacef5f2..2a2e1fbade5d 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -4535,7 +4535,7 @@ public class BackupManagerService implements BackupManagerServiceInterface { } mOutputFile.close(); } catch (IOException e) { - /* nothing we can do about this */ + Slog.e(TAG, "IO error closing adb backup file: " + e.getMessage()); } synchronized (mLatch) { mLatch.set(true); @@ -10112,7 +10112,7 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF try { fd.close(); } catch (IOException e) { - // just eat it + Slog.e(TAG, "IO error closing output for adb backup: " + e.getMessage()); } Binder.restoreCallingIdentity(oldId); Slog.d(TAG, "Adb backup processing complete."); diff --git a/services/backup/java/com/android/server/backup/RefactoredBackupManagerService.java b/services/backup/java/com/android/server/backup/RefactoredBackupManagerService.java index b6e3f0f4f19e..9e8ec64d024f 100644 --- a/services/backup/java/com/android/server/backup/RefactoredBackupManagerService.java +++ b/services/backup/java/com/android/server/backup/RefactoredBackupManagerService.java @@ -2396,7 +2396,7 @@ public class RefactoredBackupManagerService implements BackupManagerServiceInter try { fd.close(); } catch (IOException e) { - // just eat it + Slog.e(TAG, "IO error closing output for adb backup: " + e.getMessage()); } Binder.restoreCallingIdentity(oldId); Slog.d(TAG, "Adb backup processing complete."); diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java index 804e92c88eb7..4085f63afa8c 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java +++ b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java @@ -459,7 +459,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor } mOutputFile.close(); } catch (IOException e) { - /* nothing we can do about this */ + Slog.e(TAG, "IO error closing adb backup file: " + e.getMessage()); } synchronized (mLatch) { mLatch.set(true); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index f1ea85374db3..e70a294d4684 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4649,7 +4649,8 @@ public class ConnectivityService extends IConnectivityManager.Stub // Ignore updates for disconnected networks return; } - + // newLp is already a defensive copy. + newLp.ensureDirectlyConnectedRoutes(); if (VDBG) { log("Update of LinkProperties for " + nai.name() + "; created=" + nai.created + @@ -4659,8 +4660,6 @@ public class ConnectivityService extends IConnectivityManager.Stub synchronized (nai) { nai.linkProperties = newLp; } - // msg.obj is already a defensive copy. - nai.linkProperties.ensureDirectlyConnectedRoutes(); if (nai.everConnected) { updateLinkProperties(nai, oldLp); } diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 0d6b30b5bd99..ceb94ffff383 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -530,13 +530,13 @@ class StorageManagerService extends IStorageManager.Stub class ObbState implements IBinder.DeathRecipient { public ObbState(String rawPath, String canonicalPath, int callingUid, - IObbActionListener token, int nonce) { + IObbActionListener token, int nonce, String volId) { this.rawPath = rawPath; this.canonicalPath = canonicalPath; - this.ownerGid = UserHandle.getSharedAppGid(callingUid); this.token = token; this.nonce = nonce; + this.volId = volId; } final String rawPath; @@ -550,6 +550,8 @@ class StorageManagerService extends IStorageManager.Stub // Identifier to pass back to the token final int nonce; + String volId; + public IBinder getBinder() { return token.asBinder(); } @@ -576,6 +578,7 @@ class StorageManagerService extends IStorageManager.Stub sb.append(",ownerGid=").append(ownerGid); sb.append(",token=").append(token); sb.append(",binder=").append(getBinder()); + sb.append(",volId=").append(volId); sb.append('}'); return sb.toString(); } @@ -686,6 +689,7 @@ class StorageManagerService extends IStorageManager.Stub try { if (ENABLE_BINDER) { mVold.shutdown(); + success = true; } else { success = mConnector.execute("volume", "shutdown").isClassOk(); } @@ -913,13 +917,22 @@ class StorageManagerService extends IStorageManager.Stub for (UserInfo user : users) { try { if (initLocked) { - mCryptConnector.execute("cryptfs", "lock_user_key", user.id); + if (ENABLE_BINDER) { + mVold.lockUserKey(user.id); + } else { + mCryptConnector.execute("cryptfs", "lock_user_key", user.id); + } } else { - mCryptConnector.execute("cryptfs", "unlock_user_key", user.id, - user.serialNumber, "!", "!"); + if (ENABLE_BINDER) { + mVold.unlockUserKey(user.id, user.serialNumber, encodeBytes(null), + encodeBytes(null)); + } else { + mCryptConnector.execute("cryptfs", "unlock_user_key", user.id, + user.serialNumber, "!", "!"); + } } - } catch (NativeDaemonConnectorException e) { - Slog.w(TAG, "Failed to init vold", e); + } catch (Exception e) { + Slog.wtf(TAG, e); } } } @@ -2087,9 +2100,13 @@ class StorageManagerService extends IStorageManager.Stub } try { - mConnector.execute("fstrim", cmd); - } catch (NativeDaemonConnectorException e) { - Slog.e(TAG, "Failed to run fstrim: " + e); + if (ENABLE_BINDER) { + mVold.fstrim(flags); + } else { + mConnector.execute("fstrim", cmd); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -2651,6 +2668,10 @@ class StorageManagerService extends IStorageManager.Stub return null; } + if (ENABLE_BINDER) { + return findVolumeByIdOrThrow(state.volId).getPath().getAbsolutePath(); + } + final NativeDaemonEvent event; try { event = mConnector.execute("obb", "path", state.canonicalPath); @@ -2682,7 +2703,8 @@ class StorageManagerService extends IStorageManager.Stub Preconditions.checkNotNull(token, "token cannot be null"); final int callingUid = Binder.getCallingUid(); - final ObbState obbState = new ObbState(rawPath, canonicalPath, callingUid, token, nonce); + final ObbState obbState = new ObbState(rawPath, canonicalPath, + callingUid, token, nonce, null); final ObbAction action = new MountObbAction(obbState, key, callingUid); mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(OBB_RUN_ACTION, action)); @@ -2702,8 +2724,8 @@ class StorageManagerService extends IStorageManager.Stub if (existingState != null) { // TODO: separate state object from request data final int callingUid = Binder.getCallingUid(); - final ObbState newState = new ObbState( - rawPath, existingState.canonicalPath, callingUid, token, nonce); + final ObbState newState = new ObbState(rawPath, existingState.canonicalPath, + callingUid, token, nonce, existingState.volId); final ObbAction action = new UnmountObbAction(newState, force); mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(OBB_RUN_ACTION, action)); @@ -2721,6 +2743,15 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); + if (ENABLE_BINDER) { + try { + return mVold.fdeComplete(); + } catch (Exception e) { + Slog.wtf(TAG, e); + return StorageManager.ENCRYPTION_STATE_ERROR_UNKNOWN; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "cryptocomplete"); @@ -2751,6 +2782,22 @@ class StorageManagerService extends IStorageManager.Stub Slog.i(TAG, "decrypting storage..."); } + if (ENABLE_BINDER) { + try { + mVold.fdeCheckPassword(password); + mHandler.postDelayed(() -> { + try { + mVold.fdeRestart(); + } catch (Exception e) { + Slog.wtf(TAG, e); + } + }, DateUtils.SECOND_IN_MILLIS); + } catch (Exception e) { + Slog.wtf(TAG, e); + return StorageManager.ENCRYPTION_STATE_ERROR_UNKNOWN; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "checkpw", new SensitiveArg(password)); @@ -2793,15 +2840,23 @@ class StorageManagerService extends IStorageManager.Stub try { if (type == StorageManager.CRYPT_TYPE_DEFAULT) { - mCryptConnector.execute("cryptfs", "enablecrypto", "inplace", - CRYPTO_TYPES[type]); + if (ENABLE_BINDER) { + mVold.fdeEnable(type, null, IVold.ENCRYPTION_FLAG_IN_PLACE); + } else { + mCryptConnector.execute("cryptfs", "enablecrypto", "inplace", + CRYPTO_TYPES[type]); + } } else { - mCryptConnector.execute("cryptfs", "enablecrypto", "inplace", - CRYPTO_TYPES[type], new SensitiveArg(password)); + if (ENABLE_BINDER) { + mVold.fdeEnable(type, password, IVold.ENCRYPTION_FLAG_IN_PLACE); + } else { + mCryptConnector.execute("cryptfs", "enablecrypto", "inplace", + CRYPTO_TYPES[type], new SensitiveArg(password)); + } } - } catch (NativeDaemonConnectorException e) { - // Encryption failed - return e.getCode(); + } catch (Exception e) { + Slog.wtf(TAG, e); + return -1; } return 0; @@ -2821,6 +2876,16 @@ class StorageManagerService extends IStorageManager.Stub Slog.i(TAG, "changing encryption password..."); } + if (ENABLE_BINDER) { + try { + mVold.fdeChangePassword(type, password); + return 0; + } catch (Exception e) { + Slog.wtf(TAG, e); + return -1; + } + } + try { NativeDaemonEvent event = mCryptConnector.execute("cryptfs", "changepw", CRYPTO_TYPES[type], new SensitiveArg(password)); @@ -2854,6 +2919,16 @@ class StorageManagerService extends IStorageManager.Stub Slog.i(TAG, "validating encryption password..."); } + if (ENABLE_BINDER) { + try { + mVold.fdeVerifyPassword(password); + return 0; + } catch (Exception e) { + Slog.wtf(TAG, e); + return -1; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "verifypw", new SensitiveArg(password)); @@ -2876,6 +2951,15 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); + if (ENABLE_BINDER) { + try { + return mVold.fdeGetPasswordType(); + } catch (Exception e) { + Slog.wtf(TAG, e); + return -1; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "getpwtype"); @@ -2902,6 +2986,16 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); + if (ENABLE_BINDER) { + try { + mVold.fdeSetField(field, contents); + return; + } catch (Exception e) { + Slog.wtf(TAG, e); + return; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "setfield", field, contents); @@ -2922,6 +3016,15 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); + if (ENABLE_BINDER) { + try { + return mVold.fdeGetField(field); + } catch (Exception e) { + Slog.wtf(TAG, e); + return null; + } + } + final NativeDaemonEvent event; try { final String[] contents = NativeDaemonEvent.filterMessageList( @@ -2948,6 +3051,15 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); + if (ENABLE_BINDER) { + try { + return mVold.isConvertibleToFbe(); + } catch (Exception e) { + Slog.wtf(TAG, e); + return false; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "isConvertibleToFBE"); @@ -2966,6 +3078,15 @@ class StorageManagerService extends IStorageManager.Stub return new String(); } + if (ENABLE_BINDER) { + try { + return mVold.fdeGetPassword(); + } catch (Exception e) { + Slog.wtf(TAG, e); + return null; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "getpw"); @@ -2991,6 +3112,16 @@ class StorageManagerService extends IStorageManager.Stub return; } + if (ENABLE_BINDER) { + try { + mVold.fdeClearPassword(); + return; + } catch (Exception e) { + Slog.wtf(TAG, e); + return; + } + } + final NativeDaemonEvent event; try { event = mCryptConnector.execute("cryptfs", "clearpw"); @@ -3005,10 +3136,14 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "create_user_key", userId, serialNumber, - ephemeral ? 1 : 0); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.createUserKey(userId, serialNumber, ephemeral); + } else { + mCryptConnector.execute("cryptfs", "create_user_key", userId, serialNumber, + ephemeral ? 1 : 0); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3018,17 +3153,21 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "destroy_user_key", userId); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.destroyUserKey(userId); + } else { + mCryptConnector.execute("cryptfs", "destroy_user_key", userId); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } - private SensitiveArg encodeBytes(byte[] bytes) { + private String encodeBytes(byte[] bytes) { if (ArrayUtils.isEmpty(bytes)) { - return new SensitiveArg("!"); + return "!"; } else { - return new SensitiveArg(HexDump.toHexString(bytes)); + return HexDump.toHexString(bytes); } } @@ -3045,10 +3184,15 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "add_user_key_auth", userId, serialNumber, - encodeBytes(token), encodeBytes(secret)); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.addUserKeyAuth(userId, serialNumber, encodeBytes(token), encodeBytes(secret)); + } else { + mCryptConnector.execute("cryptfs", "add_user_key_auth", userId, serialNumber, + new SensitiveArg(encodeBytes(token)), + new SensitiveArg(encodeBytes(secret))); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3061,9 +3205,13 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "fixate_newest_user_key_auth", userId); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.fixateNewestUserKeyAuth(userId); + } else { + mCryptConnector.execute("cryptfs", "fixate_newest_user_key_auth", userId); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3080,10 +3228,17 @@ class StorageManagerService extends IStorageManager.Stub } try { - mCryptConnector.execute("cryptfs", "unlock_user_key", userId, serialNumber, - encodeBytes(token), encodeBytes(secret)); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.unlockUserKey(userId, serialNumber, encodeBytes(token), + encodeBytes(secret)); + } else { + mCryptConnector.execute("cryptfs", "unlock_user_key", userId, serialNumber, + new SensitiveArg(encodeBytes(token)), + new SensitiveArg(encodeBytes(secret))); + } + } catch (Exception e) { + Slog.wtf(TAG, e); + return; } } @@ -3103,9 +3258,14 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "lock_user_key", userId); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.lockUserKey(userId); + } else { + mCryptConnector.execute("cryptfs", "lock_user_key", userId); + } + } catch (Exception e) { + Slog.wtf(TAG, e); + return; } synchronized (mLock) { @@ -3126,10 +3286,14 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "prepare_user_storage", escapeNull(volumeUuid), - userId, serialNumber, flags); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.prepareUserStorage(volumeUuid, userId, serialNumber, flags); + } else { + mCryptConnector.execute("cryptfs", "prepare_user_storage", escapeNull(volumeUuid), + userId, serialNumber, flags); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3139,10 +3303,14 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "destroy_user_storage", escapeNull(volumeUuid), - userId, flags); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.destroyUserStorage(volumeUuid, userId, flags); + } else { + mCryptConnector.execute("cryptfs", "destroy_user_storage", escapeNull(volumeUuid), + userId, flags); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3152,9 +3320,13 @@ class StorageManagerService extends IStorageManager.Stub waitForReady(); try { - mCryptConnector.execute("cryptfs", "secdiscard", escapeNull(path)); - } catch (NativeDaemonConnectorException e) { - throw e.rethrowAsParcelableException(); + if (ENABLE_BINDER) { + mVold.secdiscard(path); + } else { + mCryptConnector.execute("cryptfs", "secdiscard", escapeNull(path)); + } + } catch (Exception e) { + Slog.wtf(TAG, e); } } @@ -3167,20 +3339,33 @@ class StorageManagerService extends IStorageManager.Stub @Override public ParcelFileDescriptor open() throws NativeDaemonConnectorException { - final NativeDaemonEvent event = StorageManagerService.this.mConnector.execute( - "appfuse", "mount", uid, Process.myPid(), mountId); - opened = true; - if (event.getFileDescriptors() == null || - event.getFileDescriptors().length == 0) { - throw new NativeDaemonConnectorException("Cannot obtain device FD"); + if (ENABLE_BINDER) { + try { + return new ParcelFileDescriptor( + mVold.mountAppFuse(uid, Process.myPid(), mountId)); + } catch (Exception e) { + throw new NativeDaemonConnectorException("Failed to mount", e); + } + } else { + final NativeDaemonEvent event = mConnector.execute( + "appfuse", "mount", uid, Process.myPid(), mountId); + opened = true; + if (event.getFileDescriptors() == null || + event.getFileDescriptors().length == 0) { + throw new NativeDaemonConnectorException("Cannot obtain device FD"); + } + return new ParcelFileDescriptor(event.getFileDescriptors()[0]); } - return new ParcelFileDescriptor(event.getFileDescriptors()[0]); } @Override public void close() throws Exception { if (opened) { - mConnector.execute("appfuse", "unmount", uid, Process.myPid(), mountId); + if (ENABLE_BINDER) { + mVold.unmountAppFuse(uid, Process.myPid(), mountId); + } else { + mConnector.execute("appfuse", "unmount", uid, Process.myPid(), mountId); + } opened = false; } } @@ -3848,8 +4033,10 @@ class StorageManagerService extends IStorageManager.Stub } final String hashedKey; + final String binderKey; if (mKey == null) { hashedKey = "none"; + binderKey = ""; } else { try { SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); @@ -3859,6 +4046,7 @@ class StorageManagerService extends IStorageManager.Stub SecretKey key = factory.generateSecret(ks); BigInteger bi = new BigInteger(key.getEncoded()); hashedKey = bi.toString(16); + binderKey = hashedKey; } catch (NoSuchAlgorithmException e) { Slog.e(TAG, "Could not load PBKDF2 algorithm", e); sendNewStatusOrIgnore(OnObbStateChangeListener.ERROR_INTERNAL); @@ -3872,13 +4060,22 @@ class StorageManagerService extends IStorageManager.Stub int rc = StorageResultCode.OperationSucceeded; try { - mConnector.execute("obb", "mount", mObbState.canonicalPath, new SensitiveArg(hashedKey), - mObbState.ownerGid); + if (ENABLE_BINDER) { + mObbState.volId = mVold.createObb(mObbState.canonicalPath, binderKey, + mObbState.ownerGid); + mVold.mount(mObbState.volId, 0, -1); + } else { + mConnector.execute("obb", "mount", mObbState.canonicalPath, + new SensitiveArg(hashedKey), mObbState.ownerGid); + } } catch (NativeDaemonConnectorException e) { int code = e.getCode(); if (code != VoldResponseCode.OpFailedStorageBusy) { rc = StorageResultCode.OperationFailedInternalError; } + } catch (Exception e) { + Slog.w(TAG, e); + rc = StorageResultCode.OperationFailedInternalError; } if (rc == StorageResultCode.OperationSucceeded) { @@ -3944,11 +4141,17 @@ class StorageManagerService extends IStorageManager.Stub int rc = StorageResultCode.OperationSucceeded; try { - final Command cmd = new Command("obb", "unmount", mObbState.canonicalPath); - if (mForceUnmount) { - cmd.appendArg("force"); + if (ENABLE_BINDER) { + mVold.unmount(mObbState.volId); + mVold.destroyObb(mObbState.volId); + mObbState.volId = null; + } else { + final Command cmd = new Command("obb", "unmount", mObbState.canonicalPath); + if (mForceUnmount) { + cmd.appendArg("force"); + } + mConnector.execute(cmd); } - mConnector.execute(cmd); } catch (NativeDaemonConnectorException e) { int code = e.getCode(); if (code == VoldResponseCode.OpFailedStorageBusy) { @@ -3959,6 +4162,9 @@ class StorageManagerService extends IStorageManager.Stub } else { rc = StorageResultCode.OperationFailedInternalError; } + } catch (Exception e) { + Slog.w(TAG, e); + rc = StorageResultCode.OperationFailedInternalError; } if (rc == StorageResultCode.OperationSucceeded) { diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index a6a702fbfc13..8c9e399ed81d 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1199,6 +1199,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai * process of going to sleep (checkReadyForSleep will be called when that process finishes). */ boolean goToSleepIfPossible(boolean shuttingDown) { + final ActivityRecord topActivity = topActivity(); boolean shouldSleep = true; if (mResumedActivity != null) { @@ -1223,6 +1224,11 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai // Still waiting for something to pause; can't sleep yet. if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep still waiting to pause " + mPausingActivity); shouldSleep = false; + } else if (topActivity != null && topActivity.state == ActivityState.PAUSED) { + // Our top activity is currently paused, we need to ensure we move it to the stopped + // state. + stopActivityLocked(topActivity); + shouldSleep = false; } if (!shuttingDown) { diff --git a/services/core/java/com/android/server/broadcastradio/Tuner.java b/services/core/java/com/android/server/broadcastradio/Tuner.java index 06a5af5f482e..e6ae320cf38d 100644 --- a/services/core/java/com/android/server/broadcastradio/Tuner.java +++ b/services/core/java/com/android/server/broadcastradio/Tuner.java @@ -77,6 +77,8 @@ class Tuner extends ITuner.Stub { @NonNull RadioManager.BandConfig config); private native RadioManager.BandConfig nativeGetConfiguration(long nativeContext, int region); + private native void nativeSetMuted(long nativeContext, boolean mute); + private native void nativeStep(long nativeContext, boolean directionDown, boolean skipSubChannel); private native void nativeScan(long nativeContext, boolean directionDown, boolean skipSubChannel); private native void nativeTune(long nativeContext, @NonNull ProgramSelector selector); @@ -148,8 +150,7 @@ class Tuner extends ITuner.Stub { if (mIsMuted == mute) return; mIsMuted = mute; - // TODO(b/62713378): notifify audio policy manager of media activity on radio audio - // device. This task is pulled directly from previous implementation of native service. + nativeSetMuted(mNativeContext, mute); } } diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index efc930ebf8ea..e6228d46e15c 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -435,9 +435,14 @@ public class ClipboardService extends SystemService { } private boolean isDeviceLocked() { - final KeyguardManager keyguardManager = getContext().getSystemService( + final long token = Binder.clearCallingIdentity(); + try { + final KeyguardManager keyguardManager = getContext().getSystemService( KeyguardManager.class); - return keyguardManager != null && keyguardManager.isDeviceLocked(); + return keyguardManager != null && keyguardManager.isDeviceLocked(); + } finally { + Binder.restoreCallingIdentity(token); + } } private final void checkUriOwnerLocked(Uri uri, int uid) { diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java index 553fd8c453a0..76195c4ac7d4 100644 --- a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java +++ b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java @@ -109,6 +109,10 @@ public class OffloadHardwareInterface { mLog.e("tethering offload control not supported: " + e); return false; } + if (mOffloadControl == null) { + mLog.e("tethering IOffloadControl.getService() returned null"); + return false; + } } final String logmsg = String.format("initOffloadControl(%s)", diff --git a/services/core/java/com/android/server/notification/ManagedServices.java b/services/core/java/com/android/server/notification/ManagedServices.java index 34f1bfaf996f..add4184fc129 100644 --- a/services/core/java/com/android/server/notification/ManagedServices.java +++ b/services/core/java/com/android/server/notification/ManagedServices.java @@ -99,6 +99,7 @@ abstract public class ManagedServices { protected final Object mMutex; private final UserProfiles mUserProfiles; private final IPackageManager mPm; + private final UserManager mUm; private final Config mConfig; // contains connections to all connected services, including app services @@ -138,6 +139,7 @@ abstract public class ManagedServices { mPm = pm; mConfig = getConfig(); mApprovalLevel = APPROVAL_BY_COMPONENT; + mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE); } abstract protected Config getConfig(); @@ -296,7 +298,9 @@ abstract public class ManagedServices { final int userId = XmlUtils.readIntAttribute(parser, ATT_USER_ID, 0); final boolean isPrimary = XmlUtils.readBooleanAttribute(parser, ATT_IS_PRIMARY, true); - addApprovedList(approved, userId, isPrimary); + if (mUm.getUserInfo(userId) != null) { + addApprovedList(approved, userId, isPrimary); + } mUseXml = true; } } @@ -494,7 +498,7 @@ abstract public class ManagedServices { return info; } throw new SecurityException("Disallowed call from unknown " + getCaption() + ": " - + service); + + service + " " + service.getClass()); } public void unregisterService(IInterface service, int userid) { diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 3194c520b810..ffdafc562673 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -737,6 +737,9 @@ public class ZenModeHelper { mConfig = config; mHandler.postApplyConfig(config, reason, setRingerMode); return true; + } catch (SecurityException e) { + Log.wtf(TAG, "Invalid rule in config", e); + return false; } finally { Binder.restoreCallingIdentity(identity); } diff --git a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java index c3957f432f4c..db6e9749535b 100644 --- a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java +++ b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java @@ -169,9 +169,8 @@ final class OverlayManagerServiceImpl { } final PackageInfo targetPackage = mPackageManager.getPackageInfo(packageName, userId); - if (updateAllOverlaysForTarget(packageName, userId, targetPackage)) { - mListener.onOverlaysChanged(packageName, userId); - } + updateAllOverlaysForTarget(packageName, userId, targetPackage); + mListener.onOverlaysChanged(packageName, userId); } void onTargetPackageChanged(@NonNull final String packageName, final int userId) { @@ -211,9 +210,7 @@ final class OverlayManagerServiceImpl { Slog.d(TAG, "onTargetPackageRemoved packageName=" + packageName + " userId=" + userId); } - if (updateAllOverlaysForTarget(packageName, userId, null)) { - mListener.onOverlaysChanged(packageName, userId); - } + updateAllOverlaysForTarget(packageName, userId, null); } /** diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 1082eae7df84..a3811baf2657 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -18,6 +18,7 @@ package com.android.server.pm; import android.Manifest; import android.annotation.NonNull; +import android.app.ActivityManager; import android.app.DownloadManager; import android.app.admin.DevicePolicyManager; import android.companion.CompanionDeviceManager; @@ -582,6 +583,21 @@ final class DefaultPermissionGrantPolicy { } } + if (ActivityManager.isLowRamDeviceStatic()) { + // Allow voice search on low-ram devices + Intent globalSearchIntent = new Intent("android.search.action.GLOBAL_SEARCH"); + PackageParser.Package globalSearchPickerPackage = + getDefaultSystemHandlerActivityPackageLPr(globalSearchIntent, userId); + + if (globalSearchPickerPackage != null + && doesPackageSupportRuntimePermissions(globalSearchPickerPackage)) { + grantRuntimePermissionsLPw(globalSearchPickerPackage, + MICROPHONE_PERMISSIONS, true, userId); + grantRuntimePermissionsLPw(globalSearchPickerPackage, + LOCATION_PERMISSIONS, true, userId); + } + } + // Voice recognition Intent voiceRecoIntent = new Intent("android.speech.RecognitionService"); voiceRecoIntent.addCategory(Intent.CATEGORY_DEFAULT); diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 73ac05738f0f..6253857d1aa4 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -323,11 +323,6 @@ public class OtaDexoptService extends IOtaDexopt.Stub { new DexoptOptions(pkg.packageName, compilationReason, DexoptOptions.DEXOPT_BOOT_COMPLETE)); - mPackageManagerService.getDexManager().dexoptSecondaryDex( - new DexoptOptions(pkg.packageName, compilationReason, - DexoptOptions.DEXOPT_ONLY_SECONDARY_DEX | - DexoptOptions.DEXOPT_BOOT_COMPLETE)); - return commands; } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index eb736348229b..71854205402a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -22294,13 +22294,21 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); mDefaultPermissionPolicy.grantDefaultPermissions(userId); } - // If we did not grant default permissions, we preload from this the - // default permission exceptions lazily to ensure we don't hit the - // disk on a new user creation. if (grantPermissionsUserIds == EMPTY_INT_ARRAY) { + // If we did not grant default permissions, we preload from this the + // default permission exceptions lazily to ensure we don't hit the + // disk on a new user creation. mDefaultPermissionPolicy.scheduleReadDefaultPermissionExceptions(); } + // Now that we've scanned all packages, and granted any default + // permissions, ensure permissions are updated. Beware of dragons if you + // try optimizing this. + synchronized (mPackages) { + updatePermissionsLPw(null, null, StorageManager.UUID_PRIVATE_INTERNAL, + UPDATE_PERMISSIONS_ALL); + } + // Kick off any messages waiting for system ready if (mPostSystemReadyMessages != null) { for (Message msg : mPostSystemReadyMessages) { diff --git a/services/core/java/com/android/server/webkit/WebViewUpdater.java b/services/core/java/com/android/server/webkit/WebViewUpdater.java index 203bbf61dc51..7fc907f95c93 100644 --- a/services/core/java/com/android/server/webkit/WebViewUpdater.java +++ b/services/core/java/com/android/server/webkit/WebViewUpdater.java @@ -569,6 +569,7 @@ class WebViewUpdater { PackageInfo systemUserPackageInfo = userPackages.get(UserHandle.USER_SYSTEM).getPackageInfo(); if (systemUserPackageInfo == null) { + pw.println(String.format(" %s is NOT installed.", provider.packageName)); continue; } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index d74e48253132..f0b9f1794019 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1915,9 +1915,13 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo super.removeImmediately(); if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Removing display=" + this); mDimLayerController.close(); - if (mDisplayId == DEFAULT_DISPLAY && mService.canDispatchPointerEvents()) { - mService.unregisterPointerEventListener(mTapDetector); - mService.unregisterPointerEventListener(mService.mMousePositionTracker); + if (mService.canDispatchPointerEvents()) { + if (mTapDetector != null) { + mService.unregisterPointerEventListener(mTapDetector); + } + if (mDisplayId == DEFAULT_DISPLAY && mService.mMousePositionTracker != null) { + mService.unregisterPointerEventListener(mService.mMousePositionTracker); + } } } finally { mRemovingDisplay = false; diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 54dd19961999..8a749762f993 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -249,13 +249,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> { // Tap Listeners are supported for: // 1. All physical displays (multi-display). - // 2. VirtualDisplays that support virtual touch input. (Only VR for now) - // TODO(multi-display): Support VirtualDisplays with no virtual touch input. - if ((display.getType() != Display.TYPE_VIRTUAL - || (display.getType() == Display.TYPE_VIRTUAL - // Only VR VirtualDisplays - && displayId == mService.mVr2dDisplayId)) - && mService.canDispatchPointerEvents()) { + // 2. VirtualDisplays on VR, AA (and everything else). + if (mService.canDispatchPointerEvents()) { if (DEBUG_DISPLAY) { Slog.d(TAG, "Registering PointerEventListener for DisplayId: " + displayId); diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index e8e40a78554c..1b055664093f 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1475,7 +1475,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // TODO: Another visibility method that was added late in the release to minimize risk. @Override public boolean canAffectSystemUiFlags() { - final boolean shown = mWinAnimator.getShown() && mWinAnimator.mShownAlpha > 0f; + final boolean shown = mWinAnimator.getShown(); // We only consider the app to be exiting when the animation has started. After the app // transition is executed the windows are marked exiting before the new windows have been @@ -1489,7 +1489,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP final boolean exiting = exitingSelf || mDestroying || appExiting; final boolean translucent = mAttrs.alpha == 0.0f; - return shown && !exiting && !translucent; + + // If we are entering with a dummy animation, avoid affecting SystemUI flags until the + // transition is starting. + final boolean enteringWithDummyAnimation = + mWinAnimator.isDummyAnimation() && mWinAnimator.mShownAlpha == 0f; + return shown && !exiting && !translucent && !enteringWithDummyAnimation; } /** diff --git a/services/core/jni/BroadcastRadio/Tuner.cpp b/services/core/jni/BroadcastRadio/Tuner.cpp index 85603d5e3608..e1ade4dc02da 100644 --- a/services/core/jni/BroadcastRadio/Tuner.cpp +++ b/services/core/jni/BroadcastRadio/Tuner.cpp @@ -84,6 +84,7 @@ struct TunerContext { bool mIsClosed = false; HalRevision mHalRev; bool mWithAudio; + bool mIsAudioConnected = false; Band mBand; wp<V1_0::IBroadcastRadio> mHalModule; wp<V1_1::IBroadcastRadio> mHalModule11; @@ -142,6 +143,8 @@ void HalDeathRecipient::serviceDied(uint64_t cookie __unused, // TODO(b/62713378): implement support for multiple tuners open at the same time static void notifyAudioService(TunerContext& ctx, bool connected) { if (!ctx.mWithAudio) return; + if (ctx.mIsAudioConnected == connected) return; + ctx.mIsAudioConnected = connected; ALOGD("Notifying AudioService about new state: %d", connected); auto token = IPCThreadState::self()->clearCallingIdentity(); @@ -265,6 +268,14 @@ static jobject nativeGetConfiguration(JNIEnv *env, jobject obj, jlong nativeCont return convert::BandConfigFromHal(env, halConfig, region).release(); } +static void nativeSetMuted(JNIEnv *env, jobject obj, jlong nativeContext, bool mute) { + ALOGV("%s(%d)", __func__, mute); + lock_guard<mutex> lk(gContextMutex); + auto& ctx = getNativeContext(nativeContext); + + notifyAudioService(ctx, !mute); +} + static void nativeStep(JNIEnv *env, jobject obj, jlong nativeContext, bool directionDown, bool skipSubChannel) { ALOGV("%s", __func__); @@ -497,6 +508,7 @@ static const JNINativeMethod gTunerMethods[] = { (void*)nativeSetConfiguration }, { "nativeGetConfiguration", "(JI)Landroid/hardware/radio/RadioManager$BandConfig;", (void*)nativeGetConfiguration }, + { "nativeSetMuted", "(JZ)V", (void*)nativeSetMuted }, { "nativeStep", "(JZZ)V", (void*)nativeStep }, { "nativeScan", "(JZZ)V", (void*)nativeScan }, { "nativeTune", "(JLandroid/hardware/radio/ProgramSelector;)V", (void*)nativeTune }, diff --git a/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp b/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp index f9cbd1601290..9a17635721b8 100644 --- a/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp +++ b/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp @@ -113,7 +113,7 @@ static jboolean android_server_connectivity_tethering_OffloadHardwareInterface_c hidl_handle h1(handleFromFileDescriptor(std::move(fd1))), h2(handleFromFileDescriptor(std::move(fd2))); - bool rval; + bool rval(false); hidl_string msg; const auto status = configInterface->setHandles(h1, h2, [&rval, &msg](bool success, const hidl_string& errMsg) { @@ -123,6 +123,8 @@ static jboolean android_server_connectivity_tethering_OffloadHardwareInterface_c if (!status.isOk() || !rval) { ALOGE("IOffloadConfig::setHandles() error: '%s' / '%s'", status.description().c_str(), msg.c_str()); + // If status is somehow not ok, make sure rval captures this too. + rval = false; } return rval; diff --git a/services/tests/notification/src/com/android/server/notification/ManagedServicesTest.java b/services/tests/notification/src/com/android/server/notification/ManagedServicesTest.java index 613f01c20300..a4b9b256aa07 100644 --- a/services/tests/notification/src/com/android/server/notification/ManagedServicesTest.java +++ b/services/tests/notification/src/com/android/server/notification/ManagedServicesTest.java @@ -254,6 +254,14 @@ public class ManagedServicesTest extends NotificationTestCase { loadXml(service); verifyExpectedApprovedEntries(service); + + int[] invalidUsers = new int[] {98, 99}; + for (int invalidUser : invalidUsers) { + assertFalse("service type " + service.mApprovalLevel + ":" + + invalidUser + " is allowed for user " + invalidUser, + service.isPackageOrComponentAllowed( + String.valueOf(invalidUser), invalidUser)); + } } } @@ -616,6 +624,14 @@ public class ManagedServicesTest extends NotificationTestCase { xml.append(getXmlEntry( mExpectedSecondary.get(service.mApprovalLevel).get(userId), userId, false)); } + xml.append("<" + ManagedServices.TAG_MANAGED_SERVICES + " " + + ManagedServices.ATT_USER_ID + "=\"99\" " + + ManagedServices.ATT_IS_PRIMARY + "=\"true\" " + + ManagedServices.ATT_APPROVED_LIST + "=\"99\" />\n"); + xml.append("<" + ManagedServices.TAG_MANAGED_SERVICES + " " + + ManagedServices.ATT_USER_ID + "=\"98\" " + + ManagedServices.ATT_IS_PRIMARY + "=\"false\" " + + ManagedServices.ATT_APPROVED_LIST + "=\"98\" />\n"); xml.append("</" + service.getConfig().xmlTag + ">"); XmlPullParser parser = Xml.newPullParser(); diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index b1eedf5cad4b..9e52c71be264 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -1345,10 +1345,8 @@ public class TelecomManager { /** * Returns whether TTY is supported on this device. - * - * @hide */ - @SystemApi + @RequiresPermission(anyOf = { android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index d26bf3984e58..cde0bdfd08b0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -48,6 +48,7 @@ import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; +import android.telecom.TelecomManager; import android.telephony.VisualVoicemailService.VisualVoicemailTask; import android.telephony.ims.feature.ImsFeature; import android.util.Log; @@ -1678,6 +1679,10 @@ public class TelephonyManager { } } + /* + * When adding a network type to the list below, make sure to add the correct icon to + * MobileSignalController.mapIconSets(). + */ /** Network type is unknown */ public static final int NETWORK_TYPE_UNKNOWN = 0; /** Current network is GPRS */ @@ -5771,7 +5776,7 @@ public class TelephonyManager { } /** - * @deprecated Use {@link android.telecom.TelecomManager#silenceRinger} instead + * @deprecated Use {@link TelecomManager#isTtySupported()} instead * Whether the phone supports TTY mode. * * @return {@code true} if the device supports TTY mode, and {@code false} otherwise. diff --git a/tools/aapt2/xml/XmlDom.cpp b/tools/aapt2/xml/XmlDom.cpp index 19de3afb9d62..32ec7bc60c78 100644 --- a/tools/aapt2/xml/XmlDom.cpp +++ b/tools/aapt2/xml/XmlDom.cpp @@ -236,16 +236,22 @@ static void CopyAttributes(Element* el, android::ResXMLParser* parser, StringPoo attr.name = util::Utf16ToUtf8(StringPiece16(str16, len)); } + uint32_t res_id = parser->getAttributeNameResID(i); + if (res_id > 0) { + attr.compiled_attribute = AaptAttribute(::aapt::Attribute(), {res_id}); + } + str16 = parser->getAttributeStringValue(i, &len); if (str16) { attr.value = util::Utf16ToUtf8(StringPiece16(str16, len)); + } else { + android::Res_value res_value; + if (parser->getAttributeValue(i, &res_value) > 0) { + attr.compiled_value = ResourceUtils::ParseBinaryResValue( + ResourceType::kAnim, {}, parser->getStrings(), res_value, out_pool); + } } - android::Res_value res_value; - if (parser->getAttributeValue(i, &res_value) > 0) { - attr.compiled_value = ResourceUtils::ParseBinaryResValue( - ResourceType::kAnim, {}, parser->getStrings(), res_value, out_pool); - } el->attributes.push_back(std::move(attr)); } diff --git a/tools/incident_section_gen/main.cpp b/tools/incident_section_gen/main.cpp index 23aafb2626b8..7966d886d5a0 100644 --- a/tools/incident_section_gen/main.cpp +++ b/tools/incident_section_gen/main.cpp @@ -135,27 +135,24 @@ static bool generatePrivacyFlags(const Descriptor* descriptor, const char* alias if (generatePrivacyFlags(field->message_type(), field_name, msgNames) && isDefaultDest(field)) break; - printf("static Privacy %s = { %d, %d, %d, NULL, %s_LIST };\n", field_name, field->number(), - (int) field->type(), p.dest(), field_name); + printf("Privacy %s(%d, %s_LIST);\n", field_name, field->number(), field_name); hasDefaultFlags[i] = false; break; case FieldDescriptor::TYPE_STRING: if (isDefaultDest(field) && p.patterns_size() == 0) break; - printf("static const char* %s_patterns[] = {\n", field_name); + printf("const char* %s_patterns[] = {\n", field_name); for (int i=0; i<p.patterns_size(); i++) { // the generated string need to escape backslash as well, need to dup it here printf(" \"%s\",\n", replaceAll(p.patterns(i), '\\', "\\\\").c_str()); } printf(" NULL };\n"); - printf("static Privacy %s = { %d, %d, %d, %s_patterns };\n", field_name, field->number(), - (int) field->type(), p.dest(), field_name); + printf("Privacy %s(%d, %d, %s_patterns);\n", field_name, field->number(), p.dest(), field_name); hasDefaultFlags[i] = false; break; default: if (isDefaultDest(field)) break; - printf("static Privacy %s = { %d, %d, %d };\n", field_name, field->number(), - (int) field->type(), p.dest()); + printf("Privacy %s(%d, %d, %d);\n", field_name, field->number(), (int) field->type(), p.dest()); hasDefaultFlags[i] = false; } // add the field name to message map, true means it has default flags @@ -213,20 +210,6 @@ static bool generateSectionListCpp(Descriptor const* descriptor) { printf(" NULL };\n"); emptyline(); - // generates DESTINATION enum values - EnumDescriptor const* destination = Destination_descriptor(); - for (int i=0; i<destination->value_count(); i++) { - EnumValueDescriptor const* val = destination->value(i); - printf("const uint8_t %s = %d;\n", val->name().c_str(), val->number()); - } - emptyline(); - printf("const uint8_t DEST_DEFAULT_VALUE = %d;\n", PrivacyFlags::default_instance().dest()); - emptyline(); - // populates string type and message type values - printf("const uint8_t TYPE_STRING = %d;\n", (int) FieldDescriptor::TYPE_STRING); - printf("const uint8_t TYPE_MESSAGE = %d;\n", (int) FieldDescriptor::TYPE_MESSAGE); - emptyline(); - // generates PRIVACY_POLICY map<string, bool> messageNames; if (generatePrivacyFlags(descriptor, "PRIVACY_POLICY", messageNames)) { |